PT09IHJlbGVhc2UgMS44LjAgPT09CgoyMDE2LTAzLTI0ICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0Bjb2F4aW9uLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDEuOC4wCgoyMDE2LTAzLTEzIDExOjA1OjI5IC0wNDAwICBBbnRob255IEcuIEJhc2lsZSA8Ymx1ZW5lc3NAZ2VudG9vLm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOgoJICBsaWJjb21wYXQuaDogc3Ryc2lnbmFsKCkgc2hvdWxkIGJlIG5vdCBiZSBkZWNsZWFyZWQgY29uc3QKCSAgUE9TSVggc3RhbmRhcmRzIHJlcXVpcmVzIHN0cnNpZ25hbCgpIHRvIHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaGFyLAoJICBub3QgYSBjb25zdCBwb2ludGVyIHRvIGEgY2hhci4gWzFdICBPbiB1Q2xpYmMsIGFuZCBwb3NzaWJseSBvdGhlcgoJICBsaWJjJ3MsIHRoYXQgZG8gbm90IEhBVkVfREVDTF9TVFJTSUdOQUwsIGxpYmNvbXBhdC5oIGRlY2xhcmVzCgkgIGNvbnN0IGNoYXIgKnN0cnNpZ25hbCAoaW50IHNpZykgd2hpY2ggY2F1c2VzIGEgdHlwZSBlcnJvci4KCSAgWzFdIG1hbiAzIHN0cnNpZ25hbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNTY3CgoyMDE2LTAzLTIyIDE5OjA0OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IFVzZSBHU1RfUFJFU0VUX1BBVEggYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBzeXN0ZW0gcGF0aCwgbm90IGEgcmVwbGFjZW1lbnQgb2YgdGhlIHVzZXIgcGF0aAoJICBGaXJzdCBsb2FkIGFsbCBzeXN0ZW0gcHJlc2V0cywgdGhlbiBhbGwgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZW4KCSAgZnJvbSB0aGUgYXBwIGRpcmVjdG9yeSwgdGhlbiBmcm9tIHRoZSB1c2VyIGRpcmVjdG9yeS4gQW55IG9uZSBpbiB0aGUgY2hhaW4KCSAgd2l0aCB0aGUgaGlnaGVzdCB2ZXJzaW9uIGNvbXBsZXRlbHkgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMsIGxhdGVyIG9uZXMKCSAgd2l0aCBsb3dlciB2ZXJzaW9ucyBhcmUgbWVyZ2VkIGluIHdpdGhvdXQgcmVwbGFjaW5nIGV4aXN0aW5nIHByZXNldHMuCgkgIFRoaXMgaXMgYmFzaWNhbGx5IHRoZSBzYW1lIGJlaGF2aW91ciBhcyBiZWZvcmUsIGp1c3QgdGhhdCBHU1RfUFJFU0VUX1BBVEggaXMKCSAgaW5zZXJ0ZWQgYXMgYW5vdGhlciBzb3VyY2Ugb2YgZGlyZWN0b3JpZXMgYmV0d2VlbiB0aGUgc3lzdGVtIGFuZCBhcHAgcHJlc2V0cy4KCSAgSXQgd2FzIGFkZGVkIGluIGNhMDhhZjFmMTdkMmNlMzZiODM5OThhMGJhM2E3YjhiY2FmZDc4NzIsIGJ1dCB3YXMKCSAgYWNjaWRlbnRpYWxseSBvdmVycmlkaW5nIHRoZSB1c2VyIHByZXNldCBwYXRoIHRoZXJlLiBXaGljaCBjYXVzZWQgaW5jb25zaXN0ZW50CgkgIGJlaGF2aW91ciBhcyBuZXcgcHJlc2V0cyB3ZXJlIHN0aWxsIHN0b3JlZCBpbiB0aGUgc3lzdGVtIHBhdGgsIGp1c3Qgbm90IGxvYWRlZAoJICBmcm9tIHRoZXJlLiBNZWFuaW5nIHlvdSBjb3VsZCBzdG9yZSBhIG5ldyBwcmVzZXQgKGluIHRoZSB1c2VyIHBhdGgpLCBqdXN0IGZvcgoJICBHc3RQcmVzZXQgdG8gbm90IGZpbmQgaXQgYW55bW9yZSBsYXRlciAoYmVjYXVzZSBpdCBvbmx5IGxvb2tlZCBpbiB0aGUKCSAgR1NUX1BSRVNFVF9QQVRIIGluc3RlYWQgb2YgdGhlIHVzZXIgcGF0aCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQwMzQKCjIwMTYtMDMtMTkgMTI6NTU6MDkgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhZGQgJ3RyYW5zZmVyIGZ1bGwnIGFubm90YXRpb24gdG8gZ3N0X3BhZF9wZWVyX3F1ZXJ5X2NhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzkxMgoKMjAxNi0wMy0xOSAxMjozOToxOCArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkICd0cmFuc2ZlciBmdWxsJyBhbmQgJ251bGxhYmxlJyBhbm5vdGF0aW9ucyB0byBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMKCSAgYW5kIGFsc28gY2hhbmdlIHRoZSBkZXNjcmlwdGlvbiBhY2NvcmRpbmdseSBzaW5jZSBmdW5jdGlvbiByZXR1cm5zIGFuCgkgIGluY3JlbWVudGVkIGNhcHMgb2JqZWN0IG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gY2FwcyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM5MTIKCjIwMTYtMDMtMTggMTY6MDI6NDMgLTA0MDAgIEJlbiBJb2ZlbCA8aW9mZWxiZW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZ2lyIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzODk1CgoyMDE2LTAzLTE3IDAxOjQyOjU1ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IENoZWNrIG11bHRpcXVldWUgbm90LWxpbmtlZCBFT1MgaGFuZGxpbmcKCSAgQWRkIGEgdGVzdCB3aGljaCBjaGVja3MgdGhhdCBub3QtbGlua2VkIHBhZHMgY29udGludWUKCSAgdG8gb3V0cHV0IGRhdGEgYWZ0ZXIgbGlua2VkIHBhZHMgaGF2ZSBnb25lIEVPUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzcwCgoyMDE2LTAzLTE4IDAzOjA4OjM5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggbm90LWxpbmtlZCBwYWQgaGFuZGxpbmcgYXQgRU9TCgkgIEVuc3VyZSB0aGF0IG5vdC1saW5rZWQgcGFkcyB3aWxsIGRyYWluIG91dCBhdCBFT1MgYnkKCSAgY29ycmVjdGx5IGRldGVjdGluZyB0aGUgRU9TIGNvbmRpdGlvbiBiYXNlZCBvbiB0aGUgRU9TCgkgIHBhZCBmbGFnICh3aGljaCBpbmRpY2F0ZXMgd2UgYWN0dWFsbHkgcHVzaGVkIGFuIEVPUyksCgkgIGFuZCBtYWtlIHN1cmUgdGhhdCBub3QtbGlua2VkIHBhZHMgYXJlIHdva2VuIHdoZW4gZG9pbmcKCSAgRU9TIHByb2Nlc3Npbmcgb24gbGlua2VkIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NzAKCjIwMTYtMDMtMTUgMTY6Mzc6MzMgKzAxMDAgIFJvbWFpbiBQaWNhcmQgPHJvbWFpbi5waWNhcmRAb2FrYml0cy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWxsb3cgY2FwcyBxdWVyeSBpbiAiaGF2ZS10eXBlIiBzaWduYWwgaGFuZGxlcnMKCSAgSWYgYW4gYXBwbGljYXRpb24gY2FsbHMgZ3N0X3BhZF9xdWVyeV9jYXBzIGZyb20gaXRzICJoYXZlLXR5cGUiIHNpZ25hbCBoYW5kbGVyLAoJICB0aGVuIHRoZSBxdWVyeSBmYWlscyBiZWNhdXNlIHR5cGVmaW5kLT5jYXBzIGhhcyBub3QgYmVlbiBzZXQgeWV0LgoJICBUaGlzIHBhdGNoIHNldHMgdHlwZWZpbmQtPmNhcHMgaW4gdGhlIG9iamVjdCBtZXRob2QgaGFuZGxlciwgYmVmb3JlIHRoZSBzaWduYWwKCSAgaGFuZGxlcnMgYXJlIGNhbGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKPT09IHJlbGVhc2UgMS43LjkxID09PQoKMjAxNi0wMy0xNSAxMTo1NjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuOTEKCjIwMTYtMDMtMTUgMTE6NDQ6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vdHIucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTAzLTE1IDExOjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDMtMTEgMTQ6MTc6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3RvcmUgY2FwcyBvbiB0aGUgcGFkIGJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUgYnV0IHNlbmQgaXQgZG93bnN0cmVhbSBvbmx5IGluIHRoZSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTEKCjIwMTYtMDMtMTMgMTA6MzM6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlY2hlY2sgYWZ0ZXIgcHJlX3B1c2hfZnJhbWUoKSBpZiB0aGVyZSBhcmUgdGFncyBwZW5kaW5nCgkgIE1hbnkgcGFyc2VycyBhcmUgc3RvcmluZyB0YWdzIG9ubHkgaW4gcHJlX3B1c2hfZnJhbWUoKSwgaWYgd2Ugd291bGRuJ3QgY2hlY2sKCSAgYWZ0ZXJ3YXJkcyB3ZSB3b3VsZCBwdXNoIGJ1ZmZlcnMgYmVmb3JlIHRob3NlIHRhZ3MgYW5kIGEgbG90IG9mIGNvZGUgYXNzdW1lcyB0aGF0CgkgIHRhZ3MgYXJlIGF2YWlsYWJsZSBiZWZvcmUgcHJlcm9sbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzU1MwoKMjAxNi0wMy0xNCAxMToxNTowNyArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBGaXggY29tbWVudCB0eXBvCgoyMDE2LTAzLTEyIDEyOjU2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJ0eXBlZmluZDogU3RvcmUgY2FwcyBvbiB0aGUgcGFkIGJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUgYnV0IHNlbmQgaXQgZG93bnN0cmVhbSBvbmx5IGluIHRoZSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDA4MzVjM2Q2NTY5ZGRlMGVjOWU1NTI0NDM2MzY3Yzc2NzhjYzRhNGEuCgkgIEl0IGNhdXNlcyBkZWFkbG9ja3MgaW4gZGVjb2RlYmluLCB3aGljaCBjdXJyZW50bHkgd291bGQgZGVhZGxvY2sgaWYgdGhlIGNhcHMKCSAgYXJlIGFscmVhZHkgb24gdGhlIHBhZCBpbiBoYXZlLXR5cGUgYW5kIGFyZSBmb3J3YXJkZWQgd2hpbGUgY29weWluZyB0aGUgc3RpY2t5CgkgIGV2ZW50cyAod2hpbGUgaG9sZGluZyB0aGUgZGVjb2RlYmluIGxvY2spLi4uIGFzIHRoYXQgbWlnaHQgY2F1c2UgdGhlIG5leHQKCSAgZWxlbWVudCB0byBleHBvc2UgcGFkcywgd2hpY2ggdGhlbiBjYWxscyBiYWNrIGludG8gZGVjb2RlYmluIGFuZCB0YWtlcyB0aGUKCSAgZGVjb2RlYmluIGxvY2suCgkgIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoKMjAxNi0wMy0xMSAxNDoxNzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKMjAxNi0wMy0xMCAxMDozNTo0MCArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBkb2NzOiBGbGVzaCBvdXQgZWxlbWVudCBhbmQgb2JqZWN0IG1hY3JvIGFjY2Vzc29yIGRvY3MgYSBiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzIxMwoKMjAxNi0wMy0wOSAxNjowNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogUmVtb3ZlIHNvbWUgb2Jzb2xldGUgY29kZSB0aGF0IGNhbiBjYXVzZSB3YXJuaW5ncwoKMjAxNi0wMy0wOSAxMzo0NDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRG9uJ3QgcmVzZXQgY2FsaWJyYXRpb24gb2YgaW50ZXJuYWwgY2xvY2sgd2hlbmV2ZXIgYSBuZXcgbmV0Y2xpZW50IGNsb2NrIGlzIGNyZWF0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzMyNQoKMjAxNi0wMy0wNCAxODoyMzoxOCArMDEwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBmaXggR3N0UGFyZW50QnVmZmVyTWV0YSBHVHlwZSBuYW1lCgkgIFRoZSBhbGlhcyBkZWZpbmUgR1NUX1RZUEVfUEFSRU5UX0JVRkZFUl9NRVRBX0FQSV9UWVBFIGlzIHdyb25nIGFuZAoJICBicmVha3MgdGhlIHVzYWdlIG9mIGdzdF9idWZmZXJfZ2V0X3BhcmVudF9idWZmZXJfbWV0YSgpLgoJICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBHVHlwZSBhbGlhcyBhbmQgbWFrZSBhbm90aGVyIGFsaWFzIHRvIGtlZXAgdGhlIEFQSQoJICBjb21wYXRpYmlsaXR5IGd1YXJkZWQgYnkgR1NUX0RJU0FCTEVfREVQUkVDQVRFRC4KCSAgQWxzbyBhZGRlZCBhIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzExMgoKMjAxNi0wMy0wMiAxMDozNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBSZW1vdmUgdXNlbGVzcyBOVUxMIGNoZWNrIGFuZCBhZGQgYXNzZXJ0aW9uIGZvciBtYWtpbmcgYXNzdW1wdGlvbnMgZXhwbGljaXQKCSAgZ3N0X3N0cnVjdHVyZV9uZXdfZW1wdHkoKSBpcyBub3QgcmV0dXJuaW5nIE5VTEwgaW4gYW55IHZhbGlkIHNjZW5hcmlvcywKCSAgY2hlY2tpbmcgZm9yIE5VTEwgaGVyZSBpcyB1c2VsZXNzLiBFc3BlY2lhbGx5IGJlY2F1c2Ugd2Ugd291bGQgZGVyZWZlcmVuY2UgYW55CgkgIE5VTEwgcmlnaHQgYWZ0ZXIgdGhlIE5VTEwgY2hlY2sgYWdhaW4uCgkgIENJRCAxMzUyMDM3LgoJICBXZSBwcmV2aW91c2x5IGNoZWNrIGlmIHRoZSBzdHJpbmcgZW5kcyBvbiAuY2xhc3MsIGFzIHN1Y2ggc3RycmNocigpIHNob3VsZAoJICByZXR1cm4gc29tZXRoaW5nIG5vbi1OVUxMLiBBZGQgYW4gYXNzZXJ0aW9uIGZvciB0aGF0LgoJICBDSUQgMTM0OTY0Mi4KCjIwMTYtMDMtMDEgMTk6NTA6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBtaW5vciBkb2NzIGZpeAoJICBNYWtlIGd0ay1kb2MgaGFwcHkuCgo9PT0gcmVsZWFzZSAxLjcuOTAgPT09CgoyMDE2LTAzLTAxIDE4OjE0OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy45MAoKMjAxNi0wMy0wMSAxNjo1Mjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAyLTI5IDIzOjMzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgUmV2ZXJ0ICJidXM6IGNoYW5nZSBHc3RCdXNTb3VyY2UgdG8gaG9sZCBhIHdlYWsgcmVmIHRvIEdzdEJ1cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4OTRjNjdlNjQyYzBmODU4YjViMTgwOTdmYTdjOTk1YmYzY2M1MGMxLgoKMjAxNi0wMi0yOSAyMzozMjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IE1ha2Ugc3VyZSB0byByZW1vdmUgdGhlIEdQb2xsRkQgZnJvbSB0aGUgR1NvdXJjZXMgd2hlbiBkZXN0cm95aW5nIHRoZSBidXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDU3MDBhNzA4MmMxNDUwNTdjY2MwYmU3NjMwNjdiY2MyNjMyMzllYi4KCjIwMTYtMDItMjkgMTc6MDY6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBSZW1vdmUgR1NUX1NUQVRFX0xPQ0tfRlVMTCgpIC8gVU5MT0NLX0ZVTEwoKQoJICBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIEFQSSBmb3IgdGhhdCBpbiBHTGliIGFuZCBub2JvZHkgY291bGQndmUgZXZlciB1c2VkCgkgIHRoZXNlIG1hY3JvcyB3aXRob3V0IGNvbXBpbGVyIGVycm9ycyBhbnl3YXkuCgoyMDE2LTAyLTI5IDEwOjAxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IE1ha2Ugc3VyZSB0byByZW1vdmUgdGhlIEdQb2xsRkQgZnJvbSB0aGUgR1NvdXJjZXMgd2hlbiBkZXN0cm95aW5nIHRoZSBidXMKCSAgT3RoZXJ3aXNlIHRoZSBHU291cmNlIGNhbiBsb29rIGludG8gb3VyIGFscmVhZHkgZGVzdHJveWVkIGJ1cyB3aGVyZSB0aGUKCSAgR1BvbGxGRCBpcyBzdG9yZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI4NDkKCjIwMTYtMDItMjkgMTE6MDY6NTAgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IGdob3N0cGFkOiBGaXggbWVtb3J5IGxlYWtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI4NDUKCjIwMTYtMDItMjggMTM6NTk6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhZGQgZ3VhcmQgdG8gY2hlY2sgd3JpdGFiaWxpdHkgd2hlbiByZW1vdmluZyB0YWdzIGZyb20gYSB0YWdsaXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3OTMKCjIwMTYtMDItMjcgMTU6MzY6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzc4CgoyMDE2LTAyLTI3IDE1OjI4OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIFByZXR0eSBtdWNoIGV2ZXJ5IHNpbmdsZSBlbGVtZW50IGRvZXMKCSAgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSAoZWxlbWVudF9jbGFzcywKCSAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0ICgmc29tZV90ZW1wbCkpOwoJICB3aGljaCBpcyBib3RoIGNvbmZ1c2luZyBhbmQgdW5uZWNlc3NhcnkuIFdlIG1pZ2h0IGp1c3QKCSAgYXMgd2VsbCBhZGQgYSBmdW5jdGlvbiB0byBkbyB0aGF0IGluIG9uZSBzdGVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzc4CgoyMDE2LTAyLTI3IDE1OjMyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMi0yNiAxMjo0MDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjY0ZjAzZiB0byA2ZjJkMjA5CgoyMDE2LTAyLTI1IDIyOjM2OjE0ICswMDAwICBKYW1lcyBTdGV2ZW5zb24gPGphbWVzQHN0ZXYub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFByZXZlbnQgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbF91bmxvY2tlZCBmcm9tIGEgc2VnZmF1bHQgaWYgcHJpdi0+cG9sbCA9PSBOVUxMCgkgIFRoaXMgaGFwcGVucyBpZiB0aGUgcHJvY2VzcyBydW5zIG91dCBvZiBmaWxlIGRlc2NyaXB0b3JzLiBCZXR0ZXIgcHJpbnQKCSAgYSBjcml0aWNhbCB3YXJuaW5nIGluc3RlYWQgb2YganVzdCBjcmFzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjcwMgoKMjAxNi0wMi0yNCAxMDo1NjoyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYnVzOiBjaGFuZ2UgR3N0QnVzU291cmNlIHRvIGhvbGQgYSB3ZWFrIHJlZiB0byBHc3RCdXMKCSAgV2hlbiBob2xkaW5nIGEgcmVndWxhciByZWYgaXQgd2lsbCBjYXVzZSB0aGUgR3N0QnVzIHRvIG5ldmVyCgkgIHJlYWNoIDAgcmVmZXJlbmNlcyBhbmQgaXQgd29uJ3QgYmUgZGVzdHJveWVkIHVubGVzcyB0aGUgYXBwbGljYXRpb24KCSAgZXhwbGljaXRseSBjYWxscyBnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2goKS4KCSAgU3dpdGNoaW5nIHRvIHdlYWtyZWYgd2lsbCBhbGxvdyB0aGUgR3N0QnVzIHRvIGJlIGRlc3Ryb3llZC4KCSAgVGhlIGFwcGxpY2F0aW9uIGlzIHN0aWxsIHJlc3BvbnNpYmxlIGZvciBkZXN0cm95aW5nIHRoZQoJICBHU291cmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNTUyCgoyMDE2LTAyLTI1IDE0OjExOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogQWRkIGEgIiAiIGFmdGVyIHB0czogaW4gdGhlIHNpbGVudD1mYWxzZSBvdXRwdXQKCjIwMTQtMDQtMTYgMTE6NDI6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGV4YW1wbGVzIHRvIGNoZWNrIGZvciBnc3RfYnVmZmVyX21hcCByZXR1cm4gdmFsdWVzCgkgIE90aGVyd2lzZSBwZW9wbGUgcmVhZGluZyB0aGUgbWFudWFsIHdpbGwgZXhwZWN0IGl0IHRvIGFsd2F5cwoJICBzdWNjZWVkIDopCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTQtMDQtMTYgMTE6NDA6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnc3RfYnVmZmVyX21hcAoJICBXZSBjYW4ndCBjaGVjayBjb250ZW50cyBpZiB3ZSBkb24ndCBoYXZlIGFjY2VzcyB0byBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE0LTA0LTE2IDExOjM5OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogQ2hlY2sgcmV0dXJuIHZhbHVlcyBvZiBnc3RfYnVmZmVyX21hcCgpCgkgIFRoZXkgY2FuIGZhaWwgZm9yIHZhcmlvdXMgcmVhc29ucy4KCSAgRm9yIG5vbi1mYXRhbCBjYXNlcyAoc3VjaCBhcyB0aGUgZHVtcCBmZWF0dXJlIG9mIGlkZW50aXkgYW5kIGZha2VzaW5rKSwKCSAgd2UganVzdCBzaWxlbnRseSBza2lwIGl0LgoJICBGb3Igb3RoZXIgY2FzZXMgcG9zdCBhbiBlcnJvciBtZXNzYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE2LTAyLTIzIDE3OjIzOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnc3RfbWVtb3J5X21hcCgpCgkgIE9ubHkgZG8gbWVtb3J5IG9wZXJhdGlvbnMgaWYgdGhlIG1lbW9yeSB3YXMgc3VjY2VzZnVsbHkgbWFwJ2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTUtMTItMTAgMTU6MzI6MjcgKzAxMDAgIEFkYW0gTWlhcnR1cyA8YWRhbS5taWFydHVzQHN0cmVhbXVubGltaXRlZC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgR1NUX1RBR19DT05EVUNUT1IKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIG1ldGFkYXRhIHdoaWNoIGV4cGxpY2l0ZWx5IGRpc3Rpbmd1aXNoZXMKCSAgYmV0d2VlbiBhcnRpc3QvY29tcG9zZXIgYW5kIGNvbmR1Y3Rvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQ1MAoKMjAxNi0wMi0yMiAxNDowOTo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24gb24gc3RyZWFtLWlkCgkgIC4uLiB3aGVyZSBpdCBtaWdodCBlbmQgdXAgYmVpbmcgdXNlZCBmb3IuCgoyMDE2LTAxLTIyIDExOjI1OjMwICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VyOiBJbml0aWFsaXplIEdzdFRyYWNlciBfcHJpdl90cmFjZXJzIGFuZCBxdWFya3MgdW5jb25kaXRpb25uYWxseQoJICBTb21lIHBlb3BsZSBtaWdodCB1c2UgdHJhY2VyIGhvb2tzIGV2ZW4gaWYgR1NUX1RSQUNFUl9QTFVHSU5TIGlzIG5vdAoJICBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA5NzkKCjIwMTYtMDItMjAgMTA6MTg6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IG1hbnVhbDogcmVtb3ZlIGRlYWQgbGluayBmcm9tIGludGVncmF0aW9uIHBhZ2UKCjIwMTYtMDItMjAgMTA6MTM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgZG9jczogbWFudWFsOiBmaXggZm9ybWF0dGluZwoJICBhZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoxMjEwOiBlbGVtZW50IGxpc3RpdGVtOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQKCSAgbGlzdGl0ZW0gY29udGVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIERURCwgZXhwZWN0aW5nICguLi4pLAoJICBnb3QgKHBhcmEgQ0RBVEEgcGFyYSApCgkgIDwvbGlzdGl0ZW0+CgoyMDE2LTAyLTIwIDAwOjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNoZWNrIGZvciBnaXQgaW4gY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoIGFzIHdlbGwKCjIwMTYtMDItMTkgMjA6MjY6MjYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrLmNoYXVoYW5AZ21haWwuY29tPgoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBXaGVuZXZlciB3ZSBpbmNsdWRlIHdpbmRvd3MuaCwgYWxzbyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgoJICBUaGlzIHJlZHVjZXMgdGhlIG51bWJlciBvZiBzeW1ib2xzIGFuZCBjb2RlIHB1bGxlZCBpbiBkcmFzdGljYWxseQoKMjAxNi0wMi0xMyAwNjo1MzoyNCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogT24gTVNWQywgYWxzbyBkZWZpbmUgSEFWRV9TVERJTlRfSF9XSVRIX1VJTlRNQVgKCSAgTVNWQyBwcm92aWRlcyBzdGRpbnQuaCBidXQgbm90IGludHR5cGVzLmgsIGFuZCB3ZSBuZWVkIHRvIGluY2x1ZGUgc3RkaW50LmggdG8KCSAgZ2V0IGludG1heF90CgoyMDE2LTAyLTEzIDA2OjQyOjA2ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IE9ubHkgaW5jbHVkZSB1bmlzdGQuaCBpZiBmb3VuZAoJICB1bmlzdGQuaCBpcyBub3QgcHJvdmlkZWQgYnkgdGhlICBNaWNyb3NvZnQgVmlzdWFsIEMrKyBjb21waWxlci4gSXQgaW5zdGVhZAoJICBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5IGRlZmluZXMgdGhyb3VnaCBpby5oCgoyMDE2LTAyLTEzIDA2OjE5OjUyICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogT25seSBjaGVjayBmb3IgU19JRkJMSyBpZiBpdCBpcyBkZWZpbmVkCgkgIFdpbmRvd3MgZG9lcyBub3QgZGVmaW5lIFNfSUZCTEsgc2luY2UgaXQgZG9lc24ndCBoYXZlIGJsb2NrIGRldmljZXMKCjIwMTYtMDItMTkgMjA6MTc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9ndGNoYXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkqIHdpbjMyL3ZzMTAvQ29tbW9uLnByb3BzOgoJKiB3aW4zMi92czEwL0xpYnJhcnkucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUGx1Z2luLnByb3BzOgoJKiB3aW4zMi92czEwL1JlYWRNZS50eHQ6CgkqIHdpbjMyL3ZzMTAvVG9vbC5wcm9wczoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkqIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0cmVhbWVyLnNsbjoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3Rjb3JlZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJKiB3aW4zMi92czgvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czgvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czgvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICB3aW4zMjogdXBkYXRlIFJFQURNRSBhbmQgcmVtb3ZlIG91dGRhdGVkIGJ1aWxkIGNydWZ0CgkgIFRoaXMgaGFzbid0IGJlZW4gdG91Y2hlZCBmb3IgZ2VuZXJhdGlvbnMsIGRvZXNuJ3Qgd29yaywKCSAgYW5kIGlzIGp1c3QgY2F1c2luZyBjb25mdXNpb24uIFdlIGFsc28gZG9uJ3Qgd2FudCB0bwoJICBtYWludGFpbiB0aGVzZSBmaWxlcyBtYW51YWxseS4KCjIwMTYtMDItMTkgMDg6NDM6MDAgKzAwMDAgIEdlb3JnZSBZdW5hZXYgPGd5dW5hZXZAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRXhwbGFpbiB3aGF0IGhhcHBlbnMgaWYgdXBzdHJlYW0gZWxlbWVudHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcGlwZWxpbmUgd2l0aG91dCBkcmFpbmluZyB0aGVtIGZpcnN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIzMDIKCjIwMTYtMDItMTkgMTQ6NDE6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgdGVzdHM6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMi0xOSAxMjozODoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS43LjIgPT09CgoyMDE2LTAyLTE5IDExOjQ3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjIKCjIwMTYtMDItMTkgMTA6Mjk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMi0xOCAxNDoyMDoxNyArMDAwMCAgSnVsaWVuIElzb3JjZSA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHVuaW5zdGFsbGVkLnBjOiBhZGQgc3VwcG9ydCBmb3Igbm9uIGxpYnRvb2wgYnVpbGQgc3lzdGVtcwoJICBDdXJyZW50bHkgdGhlIC5sYSBwYXRoIGlzIHByb3ZpZGVkIHdoaWNoIHJlcXVpcmVzIHRvIHVzZSBsaWJ0b29sIGFzCgkgIG1lbnRpb25lZCBpbiB0aGUgR1N0cmVhbWVyIG1hbnVhbCBzZWN0aW9uLWhlbGxvd29ybGQtY29tcGlsZXJ1bi5odG1sLgoJICBJdCBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlIGFwcGxpY2F0aW9uIGlzIGJ1aWx0IHVzaW5nIGxpYnRvb2wuCgkgIFNvIGN1cnJlbnRseSBpdCBpcyBub3QgcG9zc2libGUgdG8gY29tcGlsZSBhIEdTdHJlYW1lciBhcHBsaWNhdGlvbgoJICB3aXRoaW4gZ3N0LXVuaW5zdGFsbGVkIHdpdGggQ01ha2Ugb3Igb3RoZXIgYnVpbGQgc3lzdGVtIGRpZmZlcmVudAoJICB0aGFuIGF1dG90b29scy4KCSAgVGhpcyBwYXRjaCBhbGxvd3MgdG8gZG8gdGhlIGZvbGxvd2luZyBpbiBnc3QtdW5pbnN0YWxsZWQgZW52OgoJICBnY2MgdGVzdC5jIC1vIHRlc3QgJChwa2ctY29uZmlnIC0tY2ZsYWdzIC0tbGlicyBnc3RyZWFtZXItMS4wKQoJICBQcmV2aW91c2x5IGl0IHJlcXVpcmVkIHRvIHByZXBlbmQgbGlidG9vbCAtLW1vZGU9bGluawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwNzc4CgoyMDE2LTAyLTE4IDExOjQzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogUFVMTCBwcm9iZXMgYXJlIGNhbGxlZCB3aXRob3V0IGEgYnVmZmVyIHNvIGRvbid0IHJlcXVpcmUgYW55IG9mIHRoZSBkYXRhIGZsYWdzIHRvIGJlIHNldCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiODlmYTQ3ODZiM2RmNmNiNzlmNjYyYzAzN2RlZTc0YjNmNzQyOGQ2LgoJICBUaGUgY2hhbmdlcyBicmVhayB2YXJpb3VzIHRlc3RzLgoKMjAxNi0wMi0xOCAxMTo0MzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IEFkZCB0ZXN0IGZvciBibG9ja2luZyBwdWxsIHByb2JlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDE3ZDMwZTk0NGJlMDQyNWViYjRmYjYwNDZmODJkMWY2MTcwMWZlOGYuCgkgIFRoZSBQVUxMIHByb2JlIGNoYW5nZXMgYnJlYWsgdmFyaW91cyB0ZXN0cy4KCjIwMTYtMDItMTggMTE6MDk6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogUHJvdGVjdCBhZ2FpbnN0IGZhaWxpbmcgdG8gbWFwIGlucHV0IG1lbW9yeSB3aGVuIG1lcmdpbmcgbWVtb3JpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjIzOQoKMjAxNi0wMS0yOCAxNjoyMjoxNyArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgdGVzdCBmb3IgYmxvY2tpbmcgcHVsbCBwcm9iZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAyLTE3IDE2OjU3OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFBVTEwgcHJvYmVzIGFyZSBjYWxsZWQgd2l0aG91dCBhIGJ1ZmZlciBzbyBkb24ndCByZXF1aXJlIGFueSBvZiB0aGUgZGF0YSBmbGFncyB0byBiZSBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMi0xNyAxNjo0MTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogRG9uJ3QgaG9sZCBzdGF0ZSBsb2NrIGFsbCB0aGUgdGltZSB3aGlsZSBzZW5kaW5nIGFuIGV2ZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI0Mjc5OTcxMTlhMmI2YWFjYmViNTUwZjcyOTkzNmY4Yjk2M2UyNGIuCgkgIEl0IGJyZWFrcyB0aGluZ3MgdGhhdCB1c2VkIHRvIHdvcmsgYmVmb3JlLCBldmVuIGlmIHRoZSBjaGFuZ2UgYnkgaXRzZWxmIGlzCgkgIGNvcnJlY3QgYW5kIHRoZSBwcmV2aW91cyBjb2RlIGlzIGp1c3Qgd29ya2luZyBhcm91bmQgZGVlcGVyIGJ1Z3MgaW4gdGhlIGFzeW5jCgkgIHN0YXRlIGNoYW5nZSBjb2RlLiBMZXQncyBnbyBiYWNrIHRvIHdoYXQgcHJldmlvdXNseSB3b3JrZWQgYW5kIHRoZW4gZml4IGFzeW5jCgkgIHN0YXRlIGNoYW5nZXMgaW4gZ2VuZXJhbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDUzMgoKMjAxNi0wMi0xNyAxNToyNjo0OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBSZXZlcnQgImdob3N0cGFkOiBEbyBub3RoaW5nIGluIF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQiCgkgIFRoYXQgY29tbWl0IHdvdWxkIGJyZWFrIHNjaGVkdWxpbmcgcmVjb25maWd1cmF0aW9uIHdpdGggZ2hvc3RwYWRzCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWI1NWFkN2VhYWQ0ZmEyYzBiMTZjNzg5MzUwZTg4MmNmNzBhMjdlZC4KCjIwMTYtMDItMTcgMTU6MjU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2s6IEFkZCB0ZXN0IGZvciBjaGVja2luZyBzY2hlZHVsaW5nIHJlY29uZmlndXJhdGlvbiB3aXRoIGdob3N0cGFkcwoJICBTaG93Y2FzZXMgdGhlIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSB0aGlzIGNvbW1pdDoKCSAgQ29tbWl0OiBhYjU1YWQ3ZWFhZDRmYTJjMGIxNmM3ODkzNTBlODgyY2Y3MGEyN2VkCgkgIEF1dGhvcjogU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgkgIERhdGU6ICAgV2VkIEphbiAyNyAxMzoyMDoyMyAyMDE2ICswMTAwCgkgIGdob3N0cGFkOiBEbyBub3RoaW5nIGluIF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCjIwMTYtMDItMTcgMTE6MDI6MzQgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYWRkIHNvbWUgdGVzdHMgZm9yIGFjdGl2YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMwoKMjAxNi0wMS0yNyAxMzoyMDoyMyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoJICBXaGVuIGNhbGxpbmcgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgb24gYSBnaG9zdHBhZAoJICBnc3RfZ2hvc3RfcGFkX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpIHdpbGwgYmUgY2FsbGVkLiBUaGlzIHdpbGwgY2FsbAoJICBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBvbiB0aGUgcHJveHlwYWQgKHdoaWNoIGlzIGludGVybmFsIG9mIHRoZQoJICBnaG9zdHBhZCksIGNhbGxpbmcgZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSwgd2hpY2gKCSAgYWdhaW4gd2lsbCBjYWxsIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIG9uIHRoZSBvcmlnaW5hbCBnaG9zdHBhZC4KCSAgQnkgc2ltcGx5IHJldHVybmluZyBUUlVFIGluCgkgIGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCkgdGhlIHJlZHVuZGFudCBjYWxsIHRvCgkgIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIChmb3IgdGhlIHNhbWUgcGFkKSBpcyBhdm9pZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEzCgoyMDE2LTAyLTE2IDE3OjUzOjEwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IHJlbW92ZSB1bnVzZWQgbWFjcm8KCSAgbWFjcm8gd2FzIGFkZGVkIGluIDIwMTEgYW5kIGlzbid0IHVzZWQgYW55bW9yZQoKMjAxNi0wMi0xNiAxOToxMTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBSZXZlcnQgInF1ZXVlMjogYWRkIG92ZXJydW4gc2lnbmFsIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhhZThiMjcyM2QwY2YxNzlhNGYwOWIyZjZjNWY3OTdlMmQ5NzAzNGQuCgkgIEl0J3Mgbm90IHVzZWQgYW55bW9yZSBieSBhbnl0aGluZyBhbmQgd2FzIGNvbnNpZGVyZWQgYSBiYWQgaWRlYSBpbiBnZW5lcmFsLgoKMjAxNC0wNi0wNSAxMzoyNzoyOCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogYW5ub3RhdGUgQyBleGFtcGxlcyBhcyBzdWNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEyOTIKCjIwMTYtMDItMTUgMTE6MTM6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogdHJhY2Vyc2VyaWFsaXplOiBhZGQgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50CgkgIHRyYWNlcnNlcmlhbGl6ZS5jOjExNzoxOiBlcnJvcjogY29udHJvbCByZWFjaGVzIGVuZCBvZgoJICBub24tdm9pZCBmdW5jdGlvbiBbLVdlcnJvcj1yZXR1cm4tdHlwZV0KCjIwMTYtMDItMTUgMTA6MDY6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHByb3RlY3Rpb24vaGFybmVzcy9zeXN0ZW1jbG9jazogbW92ZSBkZWNsYXJhdGlvbiBvdXQgb2YgZm9yIGxvb3AgaW5pdGlhbGl6YXRpb24KCSAgQzkwIGNvbXBpbGVycyBjb21wbGFpbiBhYm91dCBpdAoJICBlcnJvcjog4oCYZm9y4oCZIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbnMgYXJlIG9ubHkgYWxsb3dlZCBpbiBDOTkgb3IgQzExIG1vZGUKCSAgQWxzbyBydW4gZ3N0LWluZGVudCBvbiBzeXN0ZW1jbG9jayB0ZXN0cy4KCjIwMTYtMDEtMjcgMTU6MTY6MDMgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogYWx3YXlzIHNldCBvdXIgdGVzdC1jbG9jayBvbiB0aGUgaGFybmVzc2VkIGVsZW1lbnQKCSAgVGhlIGludGVncmF0aW9uIGlzIGFscmVhZHkgc28gdGlnaHQsIHRoZXJlIGlzIG5vIHJlYXNvbiB0bwoJICBub3QgZnVydGhlciBmb3JtYWxpemUgaXQhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTQKCjIwMTYtMDItMTMgMTY6MTA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBjb21waWxhdGlvbgoJICBXYXMgc3VwcG9zZWQgdG8gYmUgc3F1YXNoZWQgd2l0aCAzMzZjN2JiNgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEwCgoyMDE2LTAyLTEzIDE2OjEwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggaW5kZW50YXRpb24KCjIwMTYtMDEtMjEgMTM6MzM6MTUgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IE1UIGlzc3VlcyB3aGVuIGZvcndhcmRpbmcgZXZlbnQvcXVlcnkgdG8gc2luayBoYXJuZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTAKCjIwMTYtMDItMTMgMTA6MDQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgbmV3IC1iYWQgbGlicmFyaWVzIGF1ZGlvLCBwbGF5ZXIgYW5kIHdheWxhbmQgdG8gcGF0aHMKCSAgQW5kIHJlbW92ZSBlZ2wgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cy4KCjIwMTYtMDItMTIgMTE6NTc6NTUgLTA4MDAgIE1hcnRpbiBLZWxseSA8bWFydGluQHN1cnJvdW5kLmlvPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIHB1c2hzcmM6IGZpeCBtaW5vciB0eXBvcyBpbiBoZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTk3MAoKMjAxNi0wMS0yMSAxMzoyODoyMyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IEFkZCBldmVudCBzdHJlc3MgdGVzdCBmdW5jdGlvbnMgd2l0aCBjYWxsYmFjawoJICBTaW1pbGFyIHRvIHRoZSBzdHJlc3MgdGVzdCBmdW5jdGlvbnMgZm9yIGJ1ZmZlcnMgdGhhdCBoYXMgYSBjYWxsYmFjayB0bwoJICBjcmVhdGUgdGhlIGJ1ZmZlciB0byBiZSBwdXNoZWQsIGl0J3MgdXNlZnVsIHRvIGhhdmUgZnVuY3Rpb25zIHRoYXQgdXNlIGEKCSAgY2FsbGJhY2sgdG8gY3JlYXRlIHRoZSBldmVudCB0byBiZSBwdXNoZWQuCgkgIEFQSTogZ3N0X2hhcm5lc3Nfc3RyZXNzX3B1c2hfZXZlbnRfd2l0aF9jYl9zdGFydCgpCgkgIEFQSTogZ3N0X2hhcm5lc3Nfc3RyZXNzX3B1c2hfZXZlbnRfd2l0aF9jYl9zdGFydF9mdWxsKCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3Nfc2VuZF91cHN0cmVhbV9ldmVudF93aXRoX2NiX3N0YXJ0KCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF91cHN0cmVhbV9ldmVudF93aXRoX2NiX3N0YXJ0X2Z1bGwoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTMyCgoyMDE2LTAxLTE0IDIxOjU0OjQyICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogYWRkIGNyYW5rIG1ldGhvZAoJICBBbmQgdXNlIGl0IGluc2lkZSBHc3RIYXJuZXNzCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfY3JhbmsoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTA2CgoyMDE1LTEyLTA5IDEzOjQzOjM4ICsxMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IGVuYWJsZSBlbXB0eSBoYXJuZXNzIGNyZWF0aW9uIGFuZCByZWZhY3RvciBhcm91bmQgdGhpcwoJICBBbHNvIG1ha2UgdGhlIHRlc3RjbG9jayBhIG1lbWJlciBvZiB0aGUgaGFybmVzcywgYWxsb3dpbmcgc29tZQoJICBtb3JlIGludGVyYWN0aW9ucyB3aXRoIHRoZSBjbG9jayBwcmlvciB0byBhZGRpbmcgZWxlbWVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDUKCjIwMTYtMDItMTIgMTU6MTI6NDMgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGVyIHdhcm5pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxOQoKMjAxNS0wOC0wNCAxNzowOTozNSArMDIwMCAgTWlraGFpbCBGbHVka292IDxtaXNoYUBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCB0aGUgcmFjZSBpbiBibG9ja2luZyBwdXNoIG1vZGUKCSAgRGVwZW5kaW5nIG9uIHdoZW4gZ3N0X2hhcm5lc3NfcHVsbCB3YXMgY2FsbGVkIC0gYmVmb3JlIHRoZSBidWZmZXIgcmVhY2hlZAoJICBnc3RfaGFybmVzc19jaGFpbiBvciBhZnRlciB3ZSBjYW4gZ2V0IGRpZmZlcmVudCBiZWhhdmlvcnMgb2YgdGhlIHRlc3QKCSAgd2l0aCBlbmFibGVkIGJsb2NraW5nIHB1c2ggbW9kZS4gVGhlIGZpeCBtYWtlcyB0aGUgYmVoYXZpb3IgYWx3YXlzIHRoZQoJICBzYW1lLiBJbiBwdWxsIGZ1bmN0aW9uIHdlIGdldCB0aGUgYnVmZmVyIGZpcnN0LCB0aHVzIG1ha2luZyBzdXJlCgkgIGdzdF9oYXJuZXNzX2NoYWluIHdhaXRzIGZvciB0aGUgc2lnbmFsLCBhbmQgZW1pdHRpbmcgdGhlIHNpZ25hbCBhZnRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkzMQoKMjAxNi0wMi0wNCAxNToxNjo0MSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIHRjYXNlX3NraXBfYnJva2VuX2xvb3BfdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE3CgoyMDE2LTAxLTIxIDEzOjI1OjQwICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IGRvY3MgZm9yIHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucwoJICBub3RpZnkgaXMgbm90IGNhbGxlZCBwZXIgYnVmZmVyLCBidXQgd2hlbiB0aGUgdGhyZWFkIGlzIGZyZWVkLgoJICBDb21tZW50IGFib3V0IHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCBPT0IgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdXBzdHJlYW0KCSAgZXZlbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTA5CgoyMDE1LTEyLTA4IDE0OjE4OjIxICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogVW5zZXQgc2lua19mb3J3YXJkX3BhZCBiZWZvcmUgdGVhcmluZyBkb3duIHNpbmtfaGFybmVzcwoJICBTZXQgdGhlIHNpbmtfZm9yd2FyZF9wYWQgdG8gTlVMTCBiZWZvcmUgdGVhcmluZyBkb3duIHNpbmtfaGFybmVzcyB0bwoJICBhdm9pZCB0aGF0IHRoZSBoYXJuZXNzIHRyaWVzIHRvIGZvcndhcmQgZXZlbnRzL3F1ZXJpZXMgdG8gaXQgd2hpbGUgaXQncwoJICB0ZWFyaW5nIGRvd24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDQKCjIwMTUtMDktMjkgMTI6MTI6MjQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHVwIGRvY3MgdG8gcmVmZXJlbmNlIGZ1bmN0aW9ucyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTAxCgoyMDE2LTAyLTEwIDE0OjAxOjU0ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHBhc3MgYWNxdWlyZSBwYXJhbXMgdG8gYWxsb2NfYnVmZmVyCgkgIFdoZW4gYWxsb2NhdGluZyBhIG5ldyBidWZmZXIgaW4gdGhlIHBvb2wsIGJvdGggdGhlIGRvX2FsbG9jX2J1ZmZlcigpIGFuZCB0aGUKCSAgdm1ldGhvZCwgYWxsb2NfYnVmZmVyKCksIHJlY2VpdmUgdGhlIHBhcmFtZXRlciBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcy4KCSAgTm9uZXRoZWxlc3MsIHdoZW4gZGVmYXVsdF9hY3F1aXJlX2J1ZmZlcigpIGNhbGxzIHRoZSBkb19hbGxvY19idWZmZXIoKSBpdCBkb2VzCgkgIG5vdCBwYXNzIHRoZSByZWNlaXZlZCBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcywgc28gd2hlbiB0aGUgdXNlciBwYXNzIHRob3NlCgkgIHBhcmFtZXRlcnMgdGhleSBhcmUgaWdub3JlZCBieSBhbGxvY19idWZmZXIoKSB2bWV0aG9kLgoJICBUaGlzIG9uZS1saW5lciBwYXRjaCBwYXNzIHRoZSByZWNlaXZlZCBhY3F1aXJlIHBhcmFtcyB0byBkb19hbGxvY19idWZmZXIoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTgyNAoKMjAxNi0wMi0xMCAwOTowOToyOSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBGaXggd2FpdC91bnNjaGVkdWxlIHJhY2UKCSAgRml4ZXMgYSByYWNlIHdoZXJlIGFuIGVudHJ5IGlzIHNldCB0byBCVVNZIGluCgkgIGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIoKSBhbmQgaXMgVU5TQ0hFRFVMRUQgYmVmb3JlCgkgIGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQoKSBzdGFydHMgcHJvY2Vzc2luZyBpdC4gVGhlCgkgIHdha2V1cCBhZGRlZCBieSBnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUoKSBtdXN0IGJlIGNsZWFuZWQgdXAuCgkgIFR3byBzdHJlc3MgdGVzdHMgYXJlIGFkZGVkLiBPbmUgdGVzdCB0aGF0IHRyaWdnZXJzIHRoZSBzcGVjaWZpYyBpc3N1ZQoJICBkZXNjcmliZWQgYWJvdmUuIFRoZSBzZWNvbmQgc3RyZXNzZXMgdGhlIGNvZGUgcGF0aCB3aGVyZSBhIHdhaXQgaXMKCSAgcmVzY2hlZHVsZWQgYmVjYXVzZSB0aGUgcG9sbCByZXR1cm5lZCBlYXJseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTU4NgoKMjAxNi0wMi0wNSAxNTozNDo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBoYW5kbGUgdW5zY2hlZHVsZSBvZiBsYXRlIGVudHJpZXMKCSAgSWYgdGhlIGNsb2NrZW50cnkgaXMgdG9vIGxhdGUgYW5kIGlzIHVuc2NoZWR1bGVkIGJlZm9yZSBpdCBnZXRzCgkgIGEgY2hhbmdlIHRvIGRldGVjdCBpdHMgbGF0ZW5lc3MgdGhlIHdha2V1cCBjb3VudCBhbmQgdGhlIHBvbGwgYXJlCgkgIHVzZWQgYnV0IG5ldmVyIHByb3Blcmx5IGNsZWFuZWQgdXAuIFRoaXMgbGVhdmVzIGl0IGluIGEgZGlydHkgc3RhdGUKCSAgdGhhdCBpcyBnb2luZyB0byBtZXNzIHdpdGggdGhlIG5leHQgY2xvY2sgZW50cnkgd2FpdGluZyByZXF1ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTU4NgoKMjAxNi0wMi0wNSAxOTowODoxOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBleHRlbmQgdGhlIEFNX1RFU1RTX0VOVklST05NRU5UIGZyb20gY2hlY2subWFrCgkgIFRvIGdldCB0aGUgQ0tfREVGQVVMVF9USU1FT1VUIGRlZmluZWQgZm9yIGFsbCB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNDcyCgoyMDE2LTAyLTA1IDE4OjAxOjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg2ZTQ2NjMgdG8gYjY0ZjAzZgoKMjAxNi0wMi0wNCAxMDowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHN0cmF5IGRpc2NvbnQgZmxhZyBzZXQgb24gb3V0Z29pbmcgYnVmZmVycyBpbiBwdXNoIG1vZGUKCSAgV2UgaGF2ZSBubyBndWFyYW50ZWVzIGFib3V0IHdoYXQgZmxhZ3MgYXJlIHNldCBvbiBidWZmZXJzIHdlIHRha2UKCSAgb3V0IG9mIHRoZSBHc3RBZGFwdGVyLiBJZiB3ZSBwdXNoIG91dCBtdWx0aXBsZSBidWZmZXJzIGZyb20gdGhlCgkgIGZpcnN0IGlucHV0IGJ1ZmZlciAod2hpY2ggd2lsbCBoYXZlIGRpc2NvbnQgc2V0KSwgb25seSB0aGUgZmlyc3QKCSAgYnVmZmVyIHdlIHB1c2ggb3V0IHNob3VsZCBiZSBmbGFnZ2VkIGFzIGRpc2NvbnQsIG5vdCBhbGwgb2YgdGhlCgkgIGJ1ZmZlcnMgcHJvZHVjZWQgZnJvbSB0aGF0IGZpcnN0IGluaXRpYWwgaW5wdXQgYnVmZmVyLgoJICBGaXhlcyBpc3N1ZSB3aGVyZSB0aGUgZmlyc3QgZmV3IG1wMyBmcmFtZXMvc2Vjb25kcyBvZiBkYXRhIGluIHB1c2gKCSAgbW9kZSB3ZXJlIHNraXBwZWQgb3IgZ2FyYmxlZCBpbiBzb21lIGNhc2VzLCBhbmQgdGhlIGRpc2NvbnQgZmxhZ3MKCSAgd291bGQgYWxzbyB0cmlwIHVwIGRlY29kZXJzIHdoaWNoIHdlcmUgZ2V0dGluZyBkcmFpbmVkL2ZsdXNoZWQgZm9yCgkgIGV2ZXJ5IGJ1ZmZlci4gVGhpcyB3YXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gMS42IGFwcGFyZW50bHkuCgoyMDE2LTAyLTAyIDE2OjM1OjM0ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IERvIG5vdCB1bnNldCB1bmluaXRpYWxsaXplZCBHVmFsdWUKCSAgSW4gY2FzZSB0aGUgcHJvcGVydHkgd2FzIG5vdCBpbnRlcnBvbGxhYmxlIHdlIG1pZ2h0IG5ldmVyIGluaXRpYWxpemUKCSAgdGhlIEdWYWx1ZSwgd2Ugc2hvdWxkIHRodXMgbmV2ZXIgdW5zZXQgaXQuCgoyMDE2LTAyLTAyIDE2OjM0OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIGRvY3M6IHB3ZzogZml4IG1pc3NpbmcgZW5kIG9mIGxpbmUgc2VtaWNvbG9uIGluIGN1c3RvbSBtZXRhIGV4YW1wbGUKCjIwMTYtMDItMDIgMTA6NTY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogYWRkIGd1YXJkIHRvIG1ha2Ugc3VyZSBnc3RyZWFtZXIgaXMgaW5pdGlhbGl6ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTQ0OAoKMjAxNi0wMi0wMSAxODo0MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgcnRzcCBzZXJ2ZXIgcGx1Z2luIGxvY2F0aW9uIHRvIHBsdWdpbnMgcGF0aAoKMjAxNi0wMS0yNSAxNjozMDowNCArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFRyeSB0byBnZW5lcmF0ZSBjYXBzIG9uIHRoZSBzcmNwYWQgYmVmb3JlIGZvcndhcmRpbmcgR0FQIGV2ZW50CgkgIFRvIGNvbmZpZ3VyZSBkb3duc3RyZWFtIGVsZW1lbnRzIGFuZCBjb21wbGV0ZSBpbml0aWFsIHByZS1yb2xsaW5nLAoJICBlbnN1cmUgd2UgaGF2ZSBkZWZhdWx0IG91dHB1dCBjYXBzIGJlZm9yZSBmb3J3YXJkaW5nIEdBUCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg5OQoKMjAxNi0wMS0yOCAyMDoxODo1NSAtMDcwMCAgQWxleCBIZW5yaWUgPGFsZXhoZW5yaWUyNEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IEltcHJvdmUgRW5nbGlzaCBncmFtbWFyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyNzMKCjIwMTYtMDEtMjcgMTI6NDU6MjAgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBmaXggYW4gb3RoZXIgdHlwbyBpbiBjbG9jayBjaGFwdGVyCgkgIFNob2NraW5nbHkgSSBtaXNzZWQgdGhpcyBiaWdnZXIgdHlwbyBpbiB0aGUgcHJldmlvcyBmaXgKCjIwMTYtMDEtMjcgMTI6MjQ6NTcgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBjbG9jayBjaGFwdGVyCgoyMDE2LTAxLTI1IDEyOjA5OjU0ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6Z3N0aW5mbzogRml4IHN0cmluZyBtZW1vcnkgbGVhawoJICBpbmZvX2ZvdXJjYyB0ZXN0IGxlYWtzIHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTA3MQoKMjAxNi0wMS0yMyAxNjowMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBtYWtlIHdvcmsgd2l0aG91dCByZWdpc3RyeQoKMjAxNi0wMS0yMiAxMjo1MDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIHRyYWNlcjogcmVuYW1lIEdTVF9UUkFDRVJfUExVR0lOUyBlbnYgdmFyIHRvIEdTVF9UUkFDRVJTCgoyMDE2LTAxLTIxIDA4OjEyOjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBkb24ndCBsZWFrIHRoZSBzcGVjIHN0cnVjdHVyZXMKCSAgQ2hhbmdlIHRoZSBnc3RfdHJhY2VyX3JlY29yZF9uZXcoKSBhcGkgdG8gdGFrZSB0aGUgcGFyYW1ldGVycyB0aGUgbWFrZSB0aGUKCSAgc3BlYyBzdHJ1Y3R1cmUgZGlyZWN0bHkuIFRoaXMgYWxsb3dzIHVzIHRvIG93biB0aGUgdG9wLWxldmVsIHN0cnVjdHVyZSBhbmQKCSAgYWxzbyBjb2xsZWN0IHRoZSBhcmdzIHNvIHRoYXQgd2UgY2FuIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBzdWItc3RydWN0dXJlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0yMSAxNTo0NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBmaXggY29tcGFyaXNvbiBpbiBfaGFzX2NsYXNzZXN2KCkKCSAgV2UncmUgY29tcGFyaW5nIGEgcG9pbnRlciB0eXBlIHdpdGggJ1wwJyBoZXJlLCB3aGljaAoJICBwcm9iYWJseSBpc24ndCByaWdodCwgYW5kIHRoZSBsb29wIGNvbmRpdGlvbiBtYWRlIHN1cmUKCSAgdGhhdCBjbGFzc2VzWzBdIGlzICE9IE5VTEwgYWxyZWFkeSwgc28gaXQncyBwb2ludGxlc3MuCgkgIFdhcyBwcm9iYWJ5IG1lYW50IHRvIGNoZWNrIGlmIHRoZSBzdHJpbmcgcG9pbnRlZCB0byBpcwoJICBub3QgZW1wdHksIHNvIG1ha2UgaXQgZG8gdGhhdCBpbnN0ZWFkLgoKMjAxNi0wMS0yMCAyMDozMjoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdGVzdC90cmFjZXJyZWNvcmQ6IHVucmVmIG9iamVjdHMgYW5kIGZyZWUgc3RyaW5nCgoyMDE2LTAxLTE4IDIyOjQ1OjU4ICswMDAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdGVzdHM6IGFkZGVkIHN0cmVzcyB0ZXN0IGZvciBhc3luYyBvcmRlcgoJICBLZWVwIGluc2VydGluZyBhbGFybXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdC4gRHVlIHRvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NTcKCSAgYWxhcm0gdGhyZWFkIHdpbGwgZ2V0IGNvbmZ1c2VkIGFuZCBub3Qgc2VydmUgdGhlbSBpbiBvcmRlci4KCjIwMTYtMDEtMTggMTY6MjU6MjAgKzAwMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXhlZCByYWNlIGNvbmRpdGlvbiBpbiBoYW5kbGluZyBhbGFybXMKCSAgV2hlbiBjaG9vc2luZyB0aGUgZmlyc3QgZW50cnkgZnJvbSB0aGUgbGlzdCwgZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQKCSAgbXVzdCBzZXQgdGhlIGVudHJ5IHN0YXRlIHRvIGJ1c3kgYmVmb3JlIHJlbGVhc2luZyB0aGUgY2xvY2sgbG9jay4gT3RoZXJ3aXNlCgkgIGEgbmV3IGVudHJ5IGNvdWxkIGJlIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QgYW5kCgkgIGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkIHdpbGwgYmUgdW5hd2FyZSBhbmQga2VlcCB3YWl0aW5nIG9uIHRoZSBlbnRyeQoJICBpdCBoYXMgYWxyZWFkeSBjaG9zZW4uCgkgIEFsc28gaW1wcm92ZWQgbWVzc2FnZXMgYWJvdXQgZXhwZWN0ZWQgc3RhdGUgYW5kIGJ1bXBlZCB0aGVtIHRvIEVSUk9SIGxldmVsCgkgIHRvIGRldGVjdCB1bmV4cGVjdGVkIHN0YXRlIGNoYW5nZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NTcKCjIwMTYtMDEtMjAgMTE6MDc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJlbW92ZSBkdXBsaWNhdGUgY2hlY2sKCjIwMTYtMDEtMjAgMDk6NTc6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdHdvIHNtYWxsIGZpeGVzIGZvciB3aGVuIGFuIGV4aXN0aW5nIHBhZCBpcyByZXF1ZXN0ZWQKCSAgVW5sb2NrIHdoZW4gcmV0dXJuaW5nIE5VTEwgZnJvbSBnc3Rfc2luZ2xlX3F1ZXVlX25ldygpLCBhbmQgZG9uJ3QKCSAgY3Jhc2ggd2l0aCBkZWJ1ZyBsb2dnaW5nIGVuYWJsZWQgaWYgTlVMTCBpcyByZXR1cm5lZC4KCSAgU3BvdHRlZCBieSBTdGV2ZW4gSG92aW5nLgoKMjAxNi0wMS0yMCAxMDowMjozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcmVtb3ZlIGEgaGFsZiBmaW5pc2hlc2ggc2VudGVuY2UgaW4gdGhlIGRvY3MKCSAgTm8gaWRlYSB3aGF0IHdhcyB0aGUgaWRlYSBoZXJlLiBTTyBsZXRzIGp1c3QgZHJvcCBpdC4KCjIwMTYtMDEtMTkgMTQ6Mzk6MDYgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogRml4IHNlbGYtPnNwZWMgc3RydWN0dXJlIGludmFsaWQgZnJlZQoJICBzZWxmLT5zcGVjIGlzIGdvdCB1c2luZyBnX3ZhbHVlX2dldF9ib3hlZCgpLCB3aGljaCBpcyBhIHRyYW5zZmVyIG5vbmUgZnVuY3Rpb24uCgkgIFNvIHRoZSBzYW1lIHNob3VsZCBub3QgYmUgZnJlZWQsIHdoaWNoIGlzIHJlc3VsdGluZyBpbiB3cm9uZyBiZWhhdmlvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0yMCAwOToyNTo0NCArMDEwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBJbml0aWFsaXNlIGZsYWdzIHRvIGF2b2lkIHdyb25nIGNvbXBhcmlzaW9uCgkgIEdzdFRyYWNlclZhbHVlRmxhZ3MgaXMgbm90IGJlaW5nIGluaXRpYWxpemVkIGFuZCB0aGUgc2FtZSBjb3VsZCByZXN1bHQgaW4gd3JvbmcKCSAgY29tcGFyaXNpb24gYW5kIGJlaGF2aW9yLiBIZW5jZSBpbml0aWFsaXppbmcgaXQgdG8gR1NUX1RSQUNFUl9WQUxVRV9GTEFHU19OT05FLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIwIDA5OjE4OjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHMvZ3N0L2luZm86IEZpeCBtZXNzYWdlcyBnbGlzdCBtZW1vcnkgbGVhawoKMjAxNi0wMS0xOSAxNTowMzo1NSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdGVzdHM6IHRyYWNlcnJlY29yZDogRml4IG1lc3NhZ2VzIGdsaXN0IG1lbW9yeSBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMTggMjE6MTI6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdHJhY2VyOiBhZGQgYW4gaW50ZXJuYWwgcHRyIGZvcm1hdCBmb3IgdHJhY2VyIHNlcmlhbGlzYXRpb24KCSAgV2UgbmVlZCB0byBhcHBseSB0aGUgc3RyaW5nIHdyYXBwaW5nIHRoYXQgdmFsdWUgc2VyaWFsaXNhdGlvbiBkb2VzIGFsc28gaW4gdGhlCgkgIHRyYWNlciBsb2dnaW5nLCBvdGhlcndpc2Ugd2UgY2FuJ3QgcGFyc2UgbmVzdGVkIHN0cnVjdHVyZXMuCgoyMDE2LTAxLTE4IDIxOjA5OjQ5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0cmFjZXIvZ3N0c3RhdHM6IGZpeCBtaXNtYXRjaCBiZXR3ZWVuICcuY2xhc3MnIGFuZCB0cmFjZXIgYXJncwoJICBDbGVhbiB1cCBmcm9tIHRoZSByZWNlbnQgY2hhbmdlcy4gVGhlIGxvZ2dpbmcgZGVzY3JpcHRpb3JzIGRpZCBub3QgbWF0Y2ggd2hhdCB3ZSBsb2dnZWQuCgoyMDE1LTExLTEyIDAxOjE0OjM0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHVzZS10YWdzLWJpdHJhdGUgcHJvcGVydHkKCSAgVGhlIHVzZS10YWdzLWJpdHJhdGUgcHJvcGVydHkgbWFrZXMgcXVldWUyIGxvb2sgYXQKCSAgdGFnIGV2ZW50cyBpbiB0aGUgc3RyZWFtIGFuZCBleHRyYWN0IGEgYml0cmF0ZSBmb3IgdGhlCgkgIHN0cmVhbSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyBhIGR1cmF0aW9uIGZvciBidWZmZXJzCgkgIHRoYXQgZG9uJ3QgaGF2ZSBvbmUgZXhwbGljaXRseSBzZXQuCgkgIFRoaXMgbGV0cyBxdWV1ZTIgc2Vuc2libHkgYnVmZmVyIHRvIGEgdGltZSB0aHJlc2hvbGQKCSAgZm9yIGFueSBieXRlc3RyZWFtIGZvciB3aGljaCB0aGUgZ2VuZXJhbCBiaXRyYXRlIGlzIGtub3duLgoKMjAxNi0wMS0xOSAxMjowNDoxNiArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBhdm9pZCBvdmVyd3JpdGluZyB2YWx1ZQoJICByZXMgdmFsdWUgaXMgb3ZlcndyaXR0ZW4sIHJlbW92ZSB0aGUgYXNzaWdubWVudC4KCSAgcHJpdl9fZ3N0X3N0cnVjdHVyZV9hcHBlbmRfdGVtcGxhdGVfdG9fZ3N0cmluZyAoKSBhbHdheXMgcmV0dXJucyBUUlVFCgkgIGFueXdheS4KCSAgQ0lEIDEzNDk2NDUKCjIwMTYtMDEtMTkgMTE6MTE6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICBiZW5jaG1hcmtzOiBEaXNhYmxlIHRyYWNlcnNlcmlhbGl6ZSBiZW5jaG1hcmsgb24gR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIG5vIGdzdC1kZWJ1Z2dpbmcgPT4gbm8gdHJhY2VyIGxvZ2dpbmcgKGFuZCBubyBwb255IGVpdGhlcikKCjIwMTYtMDEtMTkgMTE6MTA6MzAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSAgdHJhY2VycmVjb3JkOiBEaXNhYmxlIGxvZ2dpbmcgaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIE1ha2UgdGhlIGdzdF90cmFjZXJfcmVjb3JkX2xvZygpIGEgbm8tb3AgaWYgdGhlIGdzdC1kZWJ1ZyBzdWJzeXN0ZW0KCSAgaXMgZGlzYWJsZWQuCgoyMDE2LTAxLTE4IDE5OjE3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZmFpbCBmbGFnIGRlc2VyaWFsaXphdGlvbiBvbiBpbnZhbGlkIGZsYWcgbmFtZXMKCjIwMTYtMDEtMTggMTk6MTA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBzdHJ1Y3R1cmU6IGZpeCB3cm9uZyBmbGFnIG5hbWUgaW4gZGVzZXJpYWxpemF0aW9uIHRlc3QKCSAgVGhlcmUgaXMgbm8gR1NUX1NFRUtfRkxBR1NfTk9ORSBvbmx5IEdTVF9TRUVLX0ZMQUdfTk9ORSAoYnV0CgkgIHRoZSBkZXNlcmlhbGl6ZXIgc2lsZW50bHkgc2tpcHMgYmFkIGZsYWcgbmFtZXMgY3VycmVudGx5KS4KCjIwMTYtMDEtMTcgMjM6NDk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgdHJhY2VyczogZml4IHRocmVhZC1pZCBjYXN0cyB0byA2NC1iaXQgaW50cyBvbiAzMi1iaXQgc3lzdGVtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzYyCgoyMDE2LTAxLTE4IDEwOjEzOjAyICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZi91bnJlZiBuZXcgZW51bSB0eXBlcyBpbiBnc3RfaW5pdC9kZWluaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc2NwoKMjAxNi0wMS0xNyAwMDowODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZm9yIG5ldyBmbGFncyBnZXRfdHlwZSgpCgoyMDE2LTAxLTE2IDIyOjQzOjIzICswMTAwICBQaGlsaXAgVmFuIEhvb2YgPHBoaWxpcEBjb2RlbWluZGVkLmJlPgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlci5oOiBkb24ndCBpbmNsdWRlIHByaXZhdGUgbm9pbnN0IGhlYWRlciBnc3R0cmFjZXJ1dGlscy5oIGluIGEgcHVibGljIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzMyCgoyMDE2LTAxLTE2IDIxOjI0OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjaW5nLnNoOgoJICBiZW5jaG1hcms6IGltcHJvdmUgc2NyaXB0CgkgIFVzZSBhIHRlbXAgZmlsZSBmb3IgdGhlIGxvZyBhbmQgZml4IG9uZSBlbnYtdmFyLgoKMjAxNi0wMS0xNiAyMToyMzoxMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXIvc3RhdHM6IHVzZSB0aGUgcmlnaHQgbG9nIHRlbXBsYXRlCgkgIFdoZW4gcG9ydGluZyB3ZSB1c2VkIHRoZSB3cm9uZyByZWNvcmQgKGNvcHkgYW5kIHBhc3RlKS4KCjIwMTYtMDEtMTYgMjE6MDQ6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkgIHRyYWNlcjogdXBkYXRlIHRoZSBkb2NzCgkgIEFkZCB0aGUgbmV3IGVudW0gYW5kIGZsYWdzLiBSZW1vdmUgdGhlIEdzdFRyYWNlclJlY29yZFByaXZhdGUuCgoyMDE2LTAxLTE2IDIxOjAyOjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIGdzdC1zdGF0czogdXBkYXRlIHRvIGxhdGVzdCB0YXJjZXIgYXBpCgkgIFRoZSB0aHJlYWQtaWRzIGFyZSBzZXJpYWxpemVkIGFzIHVpbnQ2NC4gVGhlICdlbGVtLWl4JyBnb3QgY2hhbmdlZCB0bwoJICAnZWxlbWVudC1peCcuIE1ha2UgdGhlIGNvZGUgYSBiaXQgbW9yZSByb2J1c3QuCgoyMDE2LTAxLTE2IDE4OjU1OjA3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHVzZSB0aGUgbmV3IGZsYWdzIHRvIGNyZWF0ZSB0aGUgb3B0aW9uYWwgZmllbGQgaW4gdGhlIGZvcm1hdCBzdHJpbmcKCSAgVGhpcyBzcGFyZXMgdXMgZXhwbGljaXRseSBsaXN0aW5nIHRoZSBmaWVsZCBpbiB0aGUgc3BlYy4gYW5kIHRodXMgaGlkZSB0aGlzCgkgIGltcGxlbWVudGF0aW9uIGRldGFpbC4KCjIwMTYtMDEtMTYgMTg6NTI6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogYWRkIGEgR3N0VHJhY2VyVmFsdWVGbGFncyBhbmQgcmVwbGFjZSBzdHJpbmdzCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGRvY3VtZW50IHRoZSBmbGFncyBhbmQgbWFrZXMgdGhlIGxvZ3MgYSBiaXQgc21hbGxlci4KCjIwMTYtMDEtMTYgMTY6MDE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgZnVuY3Rpb24gZ3VhcmQgdG8gZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3MDQKCjIwMTYtMDEtMTYgMTQ6NTE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdzdC5oOiBEb24ndCBzcGV3IHdhcm5pbmdzIGlmIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGlzIG5vdCBkZWZpbmVkCgkgIE9ubHkgaGlkZSBHc3RUcmFjZXIgYW5kIEdzdFRyYWNlclJlY29yZCBBUEkgYmVoaW5kIEdTVF9VU0VfVU5TVEFCTEVfQVBJLAoJICBidXQgZG9uJ3Qgc3BldyBhbnkgd2FybmluZ3MsIG90aGVyd2lzZSBldmVyeW9uZSBoYXMgdG8gZGVmaW5lIHRoaXMKCSAgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkgIFRoaXMgcmV2ZXJ0cyBwYXJ0cyBvZiBjb21taXQgODllZTVkOTQ4ZGZmNTYwMjA0ZTZlZGQyMTBjNDRlZDJiODY1NGI4ZS4KCjIwMTYtMDEtMTYgMTM6MzA6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIGJlbmNobWFya3M6IHVwZGF0ZSB0aGUgdHJhY2VyIGJlbmNobWFyayBhbmQgYWRkIGEgc2hlbGwgYmVuY2htYXJrCgoyMDE2LTAxLTE2IDEzOjI4OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jcy9kZXNpZ246IHVwZGF0ZSB0cmFjZXJzcGVjIGV4YW1wbGVzCgoyMDE2LTAxLTE2IDEzOjI3OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIGRvY3MvZGVzaWduOiBzcGVsbCBjaGVja2luZwoKMjAxNi0wMS0xNiAxMzoyNDoxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0cmFjZXI6IGFkZCBhIEdGbGFnIGZvciB0aGUgdHJhY2VyIHNjb3BlCgkgIFBvcnQgYWxsIHRyYWNlcnMuIEFkZCB0aGUgR1NUX1VTRV9VTlNUQUJMRV9BUEkgZmxhZyB0byB0aGUgaW50ZXJuYWwgQ0ZMQUdTIHNvCgkgIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBzcGVjaWZ5IHRoaXMgZm9yIGdpciwgZG9jcywgbWtlbnVtLCAuLi4KCjIwMTYtMDEtMTYgMTA6NDg6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogTWFrZSBhY2Nlc3MgdG8gdGhlIGFjdGl2ZSBwYWQgYW5kIGxhc3QgYnVmZmVyIHRocmVhZC1zYWZlCgkgIEJvdGggY2FuIGJlIG1vZGlmaWVkIGZyb20gZGlmZmVyZW50IHRocmVhZHMgYXQgdGhlIHNhbWUgdGltZS4KCjIwMTYtMDEtMTYgMTA6NDc6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogTm90aWZ5IHdoZW4gdGhlIGFjdGl2ZS1wYWQgcHJvcGVydHkgaXMgY2hhbmdpbmcKCjIwMTYtMDEtMTIgMTQ6NTk6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlcnJlY29yZDogYWRkIGEgbG9nIHJlY29yZCBjbGFzcwoJICBXZSB1c2UgdGhpcyBjbGFzcyB0byByZWdpc3RlciB0cmFjZXIgbG9nIGVudHJ5IG1ldGFkYXRhIGFuZCBidWlsZCBhIGxvZwoJICB0ZW1wbGF0ZS4gV2l0aCB0aGUgbG9nIHRlbXBsYXRlIHdlIGNhbiBzZXJpYWxpemUgbG9nIGRhdGEgdmVyeSBlZmZpY2llbnRseS4KCSAgVGhpcyBhbHNvIHNpbXBsaWZpZXMgdGhlIGxvZ2dpbmcgY29kZSwgc2luY2UgdGhhdCBpcyBub3cgYSBzaW1wbGUgdmFyYXJncwoJICBmdW5jdGlvbiB0aGF0IGlzIG5vdCBleHBvc2luZyB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4KCSAgQWRkIGRvY3MgZm9yIHRoZSBuZXcgY2xhc3MgYW5kIGJhc2ljIHRlc3RzLgoJICBSZW1vdmUgdGhlIHByZXZpb3VzIGxvZyBoYW5kbGVyLgoJICBGaXhlcyAjNzYwMjY3CgoyMDE2LTAxLTE1IDA5OjQ4OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZ19zb2NrZXRfY2xvc2UoKQoJICBDSUQgMTM0ODQ1MgoKMjAxNi0wMS0xNSAwOTowMjo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRnJlZSBkYXRhIGFmdGVyIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QKCSAgRG9lcyBub3QgbWF0dGVyIGhlcmUgYnV0IG1ha2VzIENvdmVyaXR5IG1vcmUgaGFwcHkuIEl0IGNhbid0CgkgIGtub3cgdGhhdCBnX2xpc3RfcmVtb3ZlKCkgb25seSBsb29rcyBhdCB0aGUgcG9pbnRlciB2YWx1ZSBidXQKCSAgZG9lcyBub3QgZGVyZWZlcmVuY2UgaXQuCgkgIENJRCAxMzQ4NDU0CgoyMDE2LTAxLTE1IDAwOjMwOjU5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBHc3REZXZpY2VNb25pdG9yOiBDbGFyaWZ5IHRoZSBiZWhhdmlvdXIgb2YgZ3N0X2RldmljZV9tb25pdG9yX2FkZF9maWx0ZXIKCjIwMTYtMDEtMTUgMDA6MjU6MDUgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIEdzdERldmljZU1vbml0b3I6IERvbid0IHJlbW92ZSB1bm1hdGNoZWQgY2xhc3MgZmlsdGVycwoJICBJZiBubyBwcm92aWRlcnMgZm9yIGEgcGFydGljdWxhciBjbGFzcyBjb3VsZCBiZSBmb3VuZCwgdGhlbiByZW1vdmluZyB1bm1hdGNoZWQKCSAgZmlsdGVycyB3b3VsZCBjYXVzZSBhbGwgZGV2aWNlcyB0byBiZSByZXR1cm5lZCBpbnN0ZWFkIHdoaWNoIGlzIG5vdCBhdCBhbGwgd2hhdAoJICB0aGUgdXNlciBpbnRlbmRlZC4gV2Ugc3RpbGwgcmV0dXJuIDAgZm9yIHVubWF0Y2hlZCBmaWx0ZXJzLgoKMjAxNi0wMS0xMyAyMTozMjoyMCArMDAwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEZpeCBHRXJyb3IgbWVtb3J5IGxlYWsgaW4gaGFuZGxpbmcgTlRQIHJlc3BvbnNlCgkgIEVycm9yIHdhcyBub3QgcmVsZWFzZWQgaWYgZ3N0X250cF9wYWNrZXRfcmVjZWl2ZSBmYWlsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA1OTgKCjIwMTYtMDEtMTMgMTM6MTA6MTAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZm9yIEFQSSBhZGRpdGlvbnMKCjIwMTYtMDEtMTEgMTY6MzE6MzkgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGV4cG9zZSBkZWJ1Z2dpbmcgcHJpbnRmIGZ1bmN0aW9ucwoJICBPdGhlciBnc3QgbGlicmFyaWVzIGFuZC9vciBlbGVtZW50cyBtYXkgd2FudCB0byBhZGQgc29tZSBkZWJ1ZyBsb2dnaW5nIHRvIGFuCgkgIGV4dGVybmFsIGRlYnVnIHN5c3RlbSBvciBpbXBsZW1lbnQgZGVsYXllZCBkZWJ1Z2dpbmcgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCgkgIEV4cG9zZXMgdGhlIGludGVybmFsIF9fZ3N0X3Zhc3ByaW50ZiBhcyBnc3RfaW5mb192YXNwcmludGYgd2hpY2ggaGFzIGEgZmFsbGJhY2sKCSAgdG8gZ192YXNwcmludGYgaWYgdGhlIGRlYnVnIHN5c3RlbSBpcyBkaXNhYmxlZC4KCSAgQVBJOiBnc3RfaW5mb192YXNwcmludGYKCSAgQVBJOiBnc3RfaW5mb19zdHJkdXBfdnByaW50ZgoJICBBUEk6IGdzdF9pbmZvX3N0cmR1cF9wcmludGYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDQyMQoKMjAxNi0wMS0xMSAyMToxNzoyNSArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgc2V0IGR1cmF0aW9uL3Bvc2l0aW9uIHF1ZXJ5IHZhbHVlcyBpbiBjYXNlIG9mIHF1ZXJ5IHN1Y2Nlc3MKCSAgQ3VycmVudGx5LCB0aGUgcXVlcnkgdmFsdWVzIGFyZSBiZWluZyBzZXQgZXZlbiBpZiB0aGUgcXVlcnkgaXRzZWxmIHdhcwoJICBkZXRlcm1pbmVkIHRvIGhhdmUgZmFpbGVkLiBGaXggdGhpcyB0byBlbnN1cmUgdGhlIHZhbHVlcyBhcmUgb25seSBzZXQgaW4KCSAgY2FzZSBvZiBhIHF1ZXJ5IHN1Y2Nlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA0NzkKCjIwMTYtMDEtMTAgMTQ6MzA6MDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogY29kZSBjbGVhbiB1cHMKCSAgRHJvcCBzb21lIHRyYWlsaW5nIHdoaWxlc3BhY2UuIE1ha2UgZmllbGQgb3JkZXIgY29uc2lzdGVudC4KCjIwMTYtMDEtMDggMjM6MzU6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJICBiZW5jaG1hcms6IGZpeCBjb3B5J24ncGFzdCBvZiB0aGUgZmlsZS1kZXNjcmlwdGlvbiBjb21tZW50CgoyMDE2LTAxLTA4IDIzOjA2OjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJICBiZW5jaG1hcms6IGFkZCBhIGJlbmNobWFyayBmb3IgYmdvLzc2MDI2NwoJICBCaWcgc3VwcmlzZSAtIEdzdFN0cnVjdHVyZSBpcyBmYXN0ZXIgdGhhbiBHVmFyaWFudC4KCjIwMTUtMDMtMTAgMTM6MDc6MTggKzA5MDAgIEhvb25IZWUgTGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBpbXByb3ZlIGRlYnVnIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTkzOQoKMjAxNi0wMS0wOCAxOToyNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBidWZmZXIgbGlzdCBzdXBwb3J0IHRvIEdTVF9QVFJfRk9STUFUCgoyMDE1LTExLTI1IDE3OjM2OjI1ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbHNvdXJjZTogZml4IEdldFZhbHVlIGFuZCBHZXRWYWx1ZUFycmF5IGRvY3VtZW50YXRpb24KCSAgR3N0Q29udHJvbFNvdXJjZUdldFZhbHVlKCkgdmFsdWUgcGFyYW1hdGVyIGlzIGEgZ2RvdWJsZSwgbm90IGEgR1ZhbHVlCgkgIGFuZCBHc3RDb250cm9sU291cmNlR2V0VmFsdWVBcnJheSBkb2Vzbid0IHJldHVybiBhIEdzdFZhbHVlQXJyYXkgYnV0CgkgIGFuIGFycmF5IG9mIGRvdWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODY2OAoKMjAxNi0wMS0wNyAyMzowMzo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogaGFybW9uaXplIHRoZSBxdWVyeSBob29rcwoJICBJbiBwb3N0IGhvb2tzIGFsd2F5cyBwYXNzIHRoZSByZXR1cm4gdmFsdWUgYXMgdGhlIGxhc3QgcGFyYW0uIFBhc3MgdGhlIHF1ZXJ5CgkgIGFsc28gdG8gcG9zdCBob29rcyBzaW5jZSBpdCBpcyBzdGlsbCBhbGl2ZS4KCjIwMTYtMDEtMDcgMjI6NDc6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2Vycy9zdGF0czogYWRkIG1pc3NpbmcgcGFyYW1ldGVycyB0byBjYWxsYmFjayBmdW5jdGlvbnMKCjIwMTYtMDEtMDcgMjI6NDM6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VydXRpbHM6IHVwZGF0ZSAjZW5kaWYgY29tbWVudAoJICBXZSBjaGFuZ2VkIHRoZSBkZWZpbmUsIGJ1dCBsZWZ0IHRoZSBjb21tZW50IGluY29uc2lzdGVudC4KCjIwMTYtMDEtMDcgMTk6MTM6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcnV0aWxzOiBkb2N1bWVudCB0aGUgdHJhY2VyIGhvb2sgZnVuY3Rpb25zCgkgIERvY3VtZW50IGFsbCB0cmFjZXIgaG9vayBmdW5jdGlvbiBwb2ludGVyIHRvZ2V0aGVyIHdpdGggdGhlIGRldGFpbCBzdHJpbmcgdGhhdAoJICBvbmUgbmVlZHMgdG8gdXNlIHdpdGggZ3N0X3RyYWNpbmdfcmVnaXN0ZXJfaG9vaygpLgoKMjAxNi0wMS0wNyAxODo0NjoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IFVzZSBHU1RfRElTQUJMRV9HU1RfVFJBQ0VSX0hPT0tTIGluc3RlYWQgb2YgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGV2ZXJ5d2hlcmUKCSAgUHJldmlvdXNseSB3ZSB1c2VkIHRoZSBsYXR0ZXIgb25lIHN0aWxsIGZvciB0aGUgdHJhY2VyIHV0aWxpdHkgY29kZSwgY2F1c2luZwoJICB1bmRlZmluZWQgcmVmZXJlbmNlcyBpbiB0aGUgcmVzdWx0aW5nIGJpbmFyeSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSB3YXMKCSAgZGlzYWJsZWQgYnV0IHRoZSB0cmFjZXIgc3lzdGVtIG5vdC4KCjIwMTYtMDEtMDcgMTg6NDE6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgZ3N0OiBSZW5hbWUgX3ByaXZfZ3N0X2luZm9fc3RhcnRfdGltZSB0byBfcHJpdl9nc3Rfc3RhcnRfdGltZSBhbmQgaW5pdGlhbGl6ZSBpdCBjZW50cmFsbHkKCSAgSXQncyB1c2VkIGJ5IHRoZSBkZWJ1Z2dpbmcgYW5kIHRyYWNlciBzdWJzeXN0ZW0gYW5kIGluIHZhcmlvdXMgZmlsZXMsIG1ha2UgaXQKCSAgYSBjZW50cmFsIHRoaW5nIHRoYXQgaXMgaW5pdGlhbGl6ZWQgaW5kZXBlbmQgb2YgdGhlIGV4aXN0ZW5jZSBvZiB0aG9zZQoJICBzdWJzeXN0ZW1zLgoKMjAxNi0wMS0wNiAyMTo0MjozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIHdpbjMyIGV4cG9ydHMKCSAgUmVtb3ZlIHRoZSBfaG9va19pZCgpIG1ldGhvZHMgd2UgbWFkZSBpbnRlcm5hbCBpbiB0aGUgcHJldiBjb21taXQuCgoyMDE2LTAxLTA2IDIxOjE3OjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGxvZyBhIHdhcm5pbmcgaWYgd2UgY2FuJ3Qgc2VyaWFsaXplIGEgZmllbGQKCSAgVGhlIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zIFRSVUUgcmlnaHQgbm93LCBzbyBhdGxlYXN0IGxvZyBzb21ldGhpbmcuCgoyMDE1LTEwLTA2IDEyOjQ5OjAwICswMDAwICBBbGVrc2FuZGVyIFdhYmlrIDxhd2FiaWtAb3BlcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBxdWV1ZTI6IGFkZCB0ZXN0IGZvciBmaWxsIGxldmVsIGFyaXRobWV0aWMgb3ZlcmZsb3cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTk3MQoKMjAxNi0wMS0wNiAxOTo1MTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgY2FsY3VsYXRpbmcgZmlsbCBsZXZlbHMgbXVsdGlwbGUgdGltZXMKCSAgTWFjcm8gZXhwYW5zaW9uIG1lYW5zIHdlIG1pZ2h0IGNhbGN1bGF0ZSB0aGUgZmlsbCBsZXZlbCBvbmNlCgkgIGZvciB0aGUgY2hlY2sgYW5kIHRoZW4gcG9zc2libHkgYWdhaW4gZm9yIHRoZSByZXR1cm4gdmFsdWUuCgoyMDE2LTAxLTA2IDE5OjUwOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZmlsbCBsZXZlbCBhcml0aG1ldGljIG92ZXJmbG93IHdpdGggbGFyZ2UgdmFsdWVzCgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBBbGVrc2FuZGVyIFdhYmlrIDxhd2FiaWtAb3BlcmEuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTcxCgoyMDE2LTAxLTA2IDIwOjQxOjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICB0cmFjZXI6IG1ha2UgZ3N0X3RyYWNpbmdfcmVnaXN0ZXJfaG9va19pZCBzdGF0aWMKCSAgV2UgZG9uJ3QgbmVlZCB0byBleHBvc2UgdGhpcyBhcyBwdWJsaWMgQVBJLiBDaGFuZ2UgdGhlIG9ubHkgcGx1Z2luIHRoYXQgd2FzCgkgIHVzaW5nIGl0LgoKMjAxNi0wMS0wNiAxODo1NjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkZXNpZ246IHVwZGF0ZSBsaXN0IG9mIGRpc3RlZCBmaWxlcyBhZnRlciBmaWxlIHJlbmFtZQoKMjAxNi0wMS0wNiAxOTo0Mjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogSGlkZSBOVFAgcGFja2V0IEFQSSBhbmQgYWRkIEdTVF9QVFBfU1RBVElTVElDU18qIGRlZmluZXMgdG8gdGhlIGRvY3MKCjIwMTYtMDEtMDYgMTg6MTc6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgZG9jczogcmVtb3ZlIHBhcmVudCBkb2NzIGZvciBHc3RQdHBDbG9jawoJICBJbnN0YW5jZSBkb2NzIGRvbid0IG5lZWQgdG8gZG9jdWVtbnQgdGhlIHBhcmVudCAoZmlyc3QgbWVtYmVyKS4KCjIwMTYtMDEtMDYgMTg6MTQ6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGNsZWFudXAgLXVudXNlZC50eHQgcmVwb3J0IGZvciBsaWJzCgkgIFRoZSBJR05PUkVfSF9GSUxFUyBjYW4gb25seSBjb250YWluIGZpbGVzIG9yIGRpcnMuCgoyMDE2LTAxLTA2IDE3OjU4OjExICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG1vcmUgY29yZSBhcGkgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zCgkgIEFkZCBuZXcgYW5kIGRvY3VtZW50ZWQgYXBpIHJlcG9ydGVkIGluIC11bnVzZWQudHh0IHRvIC1zZWN0aW9uLnR4dC4KCjIwMTYtMDEtMDYgMTc6NTQ6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZG9jczogZXhjbHVkZSBtb3JlIGhlYWRlciBmcm9tIGRvYy1zY2FuCgkgIEV4Y2x1ZGUgZ3N0L3ByaW50Zi8qLmggYW5kIGEgZmV3IGdlbmVyYXRlZCAuaCBmaWxlcyBmcm9tIHRoZSBhcGktc2Nhbi4gVGhpcwoJICBtYWtlcyAtdW51c2VkLnR4dCByZXBvcnQgZmlsZSBmcm9tIGd0a2RvYyB1c2VmdWwgYWdhaW4uCgoyMDE2LTAxLTA2IDE2OjIxOjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBhZGp1c3QvdW5hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpIGhhdmUgYSBjbG9jayBwYXJhbWV0ZXIgYnV0IGl0J3MgdXNlbGVzcwoJICBEb2N1bWVudCB0aGlzLCBmb3IgMi4wIHdlIHNob3VsZCBqdXN0IHJlbW92ZSB0aGF0IHBhcmFtZXRlci4KCjIwMTYtMDEtMDYgMTY6MTk6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIGdzdF9jbG9ja191bmFkanVzdF93aXRoX2NhbGlicmF0aW9uKCkKCSAgV2UgYWxyZWFkeSBoYXZlIGdzdF9jbG9ja19hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpIGFuZAoJICBnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQoKSwgaGF2aW5nIHRoZSBvdGhlciB2YXJpYW50IGlzIHVzZWZ1bC4KCjIwMTYtMDEtMDYgMTM6MzM6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHBhZC1ldmVudCBmdW5jdGlvbiB0byB0aGUgZG9jcwoKMjAxNi0wMS0wNiAxMzoyNjoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGRvY3M6IGhpZGUgaW50ZXJuYWwgdHJhY2VyIGFwaSBmcm9tIGRvY3MKCSAgQWxzbyBhZGRyZXNzIHdhcm5pZ25zIHJlZ2FyZGluZyB0aGUgdW5zdGFibGUgdHJhY2VyIGFwaS4KCjIwMTYtMDEtMDYgMTI6NDc6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgZG9jczogYWRkIHRoZSB0cmFjZXIgdG8gdGhlIGRvY3MKCSAgQWRkIEdzdFRyYWNlciBhbmQgR3N0VHJhY2VyRmFjdG9yeSB0byB0aGUgY29yZSBkb2NzLgoKMjAxNi0wMS0wNiAxMTo1Mjo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzOiByZW5hbWUgdGhlIHRyYWNlciBkb2MgdG8gcGFydCBzaW5jZSBpdCBpcyBub3cgbWVyZ2VkCgoyMDE2LTAxLTA2IDExOjM1OjQ2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB0cmFjZXJ1dGlsczogbW92ZSBoZWFkZXIgdG8gbm9pbnN0IHNlY3Rpb24KCSAgVGhpcyBpcyBpbnRlcm5hbCBjb2RlLCB0aGF0IGlzIG9ubHkgdG8gYmUgdXNlZCBpbiBjb3JlLgoKMjAxNi0wMS0wNiAxMTozMToxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIGNvbmZpZ3VyZTogYWRkIGEgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHRoZSB0cmFjZXIgaG9va3MKCSAgVGhpcyB3YXMgcHJldmlvdXNseSBkb25lIHZpYSB7ZW5hYmxlLGRpc2FibGV9LWdzdC1kZWJ1Zy4gU2luY2UgYm90aCBzdWJzeXN0ZW1zCgkgIGFyZSBpbmRlcGVuZGVudCBoYXZpbmcgc2VwYXJhdGUgb3B0aW9ucyBpcyBiZXR0ZXIuCgoyMDE2LTAxLTA1IDE2OjQ0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBjbG9jazogRml4IHR5cG8KCSAgY2xvY2tlZCAtPiBjbG9jawoKMjAxNi0wMS0wNSAxNDo1OTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRGlzY29ubmVjdCB0aGUgInN5bmNlZCIgc2lnbmFsIGhhbmRsZXIgZnJvbSB0aGUgaW50ZXJuYWwgY2xvY2sKCSAgTm90IGZyb20gdGhlIGV4dGVybmFsIG9uZS4KCjIwMTYtMDEtMDUgMTM6NTc6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiByZW5hbWUgbmV3IGN1YmljIGludGVycG9sYXRpb24gbW9kZQoJICBEb24ndCBhYmJyZXZpYXRlIHRvICdtb25vJyBhbmQgdXNlICdtb25vdG9uaWMnIGluc3RlYWQuCgoyMDE2LTAxLTA1IDE0OjIzOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBEb24ndCBhbGxvdyBzZXR0aW5nIGFuIHVuc3luY2VkIGNsb2NrIGFzIG1hc3RlcgoKMjAxNi0wMS0wNSAxNDoyMTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogRG9uJ3QgdHJ5IHRvIHNsYXZlIHVuc3luY2VkIGNsb2NrcwoJICBUaGV5IHdpbGwgcmV0dXJuIHVzZWxlc3MgdmFsdWVzIGZyb20gZ2V0X3RpbWUoKS4KCjIwMTYtMDEtMDUgMTM6NDE6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbnRwOiBUaGUgY2xvY2sgaW5oZXJpdHMgZnJvbSBHc3ROZXRDbGllbnRDbG9jaywgbm90IGp1c3QgR3N0U3lzdGVtQ2xvY2sKCjIwMTYtMDEtMDQgMTc6MTg6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IERlc3Ryb3kgYSBjYWNoZWQgY2xvY2sgNjAgc2Vjb25kcyBhZnRlciBpdHMgbGFzdCB1c2UKCSAgVGhlcmUncyBub3QgbXVjaCBsb3N0IGJ5IGhhdmluZyB0aGUgY2xvY2sgaWRsZSBhcm91bmQgYSBiaXQgbG9uZ2VyIGJ1dCBpdCB3aWxsCgkgIHBvdGVudGlhbGx5IGFsbG93IGFueWJvZHkgd2FudGluZyB0byB1c2UgdGhlIHNhbWUgY2xvY2sgc2VydmVyIGFnYWluIHRvIHN5bmMKCSAgbXVjaCBmYXN0ZXIuCgoyMDE2LTAxLTA0IDE2OjMxOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBPbmx5IGV2ZXIgcnVuIG9uZSBjbG9jayBhZ2FpbnN0IGEgc3BlY2lmaWMgc2VydmVyCgkgIElmIG11bHRpcGxlIG5ldC9OVFAgY2xvY2tzIGFyZSBjcmVhdGVkIGZvciB0aGUgc2FtZSBzZXJ2ZXIsIHJldXNlIHRoZSBzYW1lCgkgIGludGVybmFsIGNsb2NrIGZvciBhbGwgb2YgdGhlbS4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QgZmxvb2QgdGhlIHNlcnZlcgoJICB3aXRoIHRvbyBtYW55IHJlcXVlc3RzIGFuZCBhbHNvIHBvc3NpYmx5IGFsbG93cyBmYXN0ZXIgc3luY2hyb25pemF0aW9uIGlmCgkgIHRoZXJlIGFscmVhZHkgd2FzIGFuIGVhcmxpZXIgc3luY2hyb25pemVkIGNsb2NrIHdoZW4gY3JlYXRpbmcgYSBuZXcgb25lLgoKMjAxNi0wMS0wNCAxMDozOToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBVc2UgR0luaXRhYmxlIGluc3RlYWQgb2YgaGF2aW5nIGEgbmV3KCkgZnVuY3Rpb24gdGhhdCBjYW4gcmV0dXJuIE5VTEwKCSAgQmluZGluZ3MgZG9uJ3QgbGlrZSB0aGF0IG11Y2ggYW5kIGFzIHdlJ3JlIHVzaW5nIEdJTyBoZXJlIGFueXdheSB3ZSBjYW4gYXMKCSAgd2VsbCB1c2UgR0luaXRhYmxlIGZvciBwb3NzaWJseSBmYWlsaW5nIGluaXRpYWxpemF0aW9uLgoKMjAxNi0wMS0wMyAxNDowNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBNYXJrIGFkZHJlc3MsIHBvcnQgYW5kIGNsb2NrIHByb3BlcnRpZXMgQ09OU1RSVUNUX09OTFkKCSAgVGhleSBjYW4ndCBzZW5zaWJseSBiZSBjaGFuZ2VkIGFmdGVyIGNvbnN0cnVjdGlvbi4KCjIwMTYtMDEtMDMgMjI6NTU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZV9sYXVuY2g6IG1ha2UgbmljZXIgbG9nIG1lc3NhZ2VzCgkgIEFkZCB0d28gbWFjcm9zIHRvIGJ1aWxkIG5pY2VyIGVsZW1lbnQvcGFkIG5hbWUgc3RyaW5ncy4gVGhlIG1hY3JvcyBhdm9pZAoJICBwcmludGluZyAiKE5VTEwpIiBhbmQgcHJpbnQgdGhlIGVsZW1lbnQgdHlwZSBpbiBhZGRpdGlvbiB0byB0aGUgbmFtZS4KCjIwMTYtMDEtMDIgMTk6NDI6MTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiB3YXJuIHdoZW4gc3RpbGwgd2FpdGluZyB0byBwbHVnIHN1Yi1waXBlbGluZXMgYWZ0ZXIgbm8tbW9yZS1wYWRzCgkgIFRoZSBwYXJzZS1sYXVuY2ggQVBJIGF1dG9tYWdpY2FsbHkgaGFuZGxlcyBkeW5hbWljIHBhZHMgYW5kIHBlcmZvcm1zIGRlbGF5ZWQKCSAgbGlua2luZyBhcyBuZWVkZWQsIHdpdGhvdXQgYW55IGZlZWRiYWNrIGFib3V0IHdoZXRoZXIgdGhlIGxpbmtpbmcgc3VjY2VlZGVkIG9yCgkgIG5vdCBob3dldmVyLiBJZiBhIGRlbGF5ZWQgZHluYW1pYyBsaW5rIGNhbid0IGJlIGNvbXBsZXRlZCBmb3Igd2hhdGV2ZXIgcmVhc29uLAoJICBwYXJzZS1sYXVuY2ggd2lsbCBzaW1wbHkgd2FpdCBpbiBjYXNlIGEgc3VpdGFibGUgcGFkIGFwcGVhcnMgbGF0ZXIuIFRoaXMgbWF5CgkgIG5ldmVyIGhhcHBlbiB0aG91Z2gsIGluIHdoaWNoIGNhc2UgdGhlIHBpcGVsaW5lIG1heSBqdXN0IGhhbmcgZm9yZXZlci4KCSAgVHJ5IHRvIGltcHJvdmUgdGhpcyBieSBjb25uZWN0aW5nIHRvIHRoZSAibm8tbW9yZS1wYWRzIiBzaWduYWwgb2YgYW55IGVsZW1lbnQKCSAgd2l0aCBkeW5hbWljIHBhZHMgYW5kIHBvc3RpbmcgYSB3YXJuaW5nIG1lc3NhZ2UgZm9yIHRoZSByZWxhdGVkIG91dHN0YW5kaW5nCgkgIGR5bmFtaWMgbGlua3Mgd2hlbiAibm8tbW9yZS1wYWRzIiBpcyBlbWl0dGVkLgoJICBGaXhlcyAjNzYwMDAzCgoyMDE1LTEyLTMxIDE5OjI3OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJICBkb2NzOiBmaXggc29tZSB3YXJuaW5ncyBhbmQgYWRkIHNvbWUgc2luY2UgbWFya2VycwoKMjAxNi0wMS0wMyAxMTozOToyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICB0cmFjaW5nOiBhZGQgc29tZSBwb2ludGVycyBhYm91dCBtZW1vcnkgdHJhY2luZwoKMjAxNi0wMS0wMyAxMTozNzo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdyYW1tYXIueTogcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTUtMTItMzEgMDA6MDQ6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IHZhbHVlOiB0ZXN0IGJ1ZmZlciBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBtb3JlIHRob3JvdWdobHkKCSAgVGVzdHMgZGF0YS9zdHJpbmdzIGFzIHdlbGwsIG5vdCBqdXN0IHRoYXQgd2UgcmVjZWl2ZWQKCSAgc29tZXRoaW5nIG5vbi1OVUxMIGJhY2suCgoyMDE1LTEyLTMxIDEwOjU3OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTUtMTItMzAgMTY6NTc6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEltcGxlbWVudCByZXNvbHZhbCBvZiBob3N0bmFtZXMKCSAgSnVzdCBhbGxvd2luZyBJUHMgaGVyZSBpcyBub3QgaWRlYWwgYW5kIGltcGxlbWVudGluZyBETlMgcmVzb2x2YWwgaXMgZWFzeS4KCjIwMTUtMTItMjkgMTY6Mjg6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IEFkZCByZWFkLW9ubHkgcHJvcGVydGllcyB0byBnZXQgdGhlIG1hc3RlciBhbmQgZ3JhbmRtYXN0ZXIgY2xvY2sgaWRzCgoyMDE1LTEyLTI5IDE0OjMyOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkICh0cmFuc2ZlciBmdWxsKSBhbm5vdGF0aW9uIHRvIHNpbXBsaWZ5KCkgYW5kIHN1YnRyYWN0KCkgcmV0dXJuIHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk5NDgKCjIwMTUtMTItMjkgMTE6MDY6MzkgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgJ3RyYW5zZmVyIGZ1bGwnIGFubm90YXRpb24gdG8gY2FwcyByZXR1cm5lZCBieSBpbnRlcnNlcmN0aW9uIGZ1bmN0aW9ucwoJICBUbyBtYWtlIGNsZWFyIGNhbGxlciBpcyByZXNwb25zaWJsZSB0byB1bnJlZiB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5OTQ4CgoyMDE1LTEyLTI4IDE5OjQxOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBuZXQ6IEFkZCBOVFAgYW5kIFBUUCBjbG9jayB0eXBlcyB0byB0aGUgZG9jcwoJICBUaGlzIGdpdmVzIHVzIHRoZSBwcm9wZXJ0eSBkb2N1bWVudGF0aW9uIGZvciBleGFtcGxlLgoKMjAxNS0xMi0yNyAxOTo0MjozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBkb24ndCBtZW1jbXAgdHdpY2UKCSAgU2ltcGx5IGNhbGwgZmFpbCgpIGluIHRoZSBjb25kaXRpb24gYWZ0ZXIgdGhlIGZpcnN0IG1lbWNtcC4KCjIwMTUtMTItMjQgMTU6Mjc6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNy4xID09PQoKMjAxNS0xMi0yNCAxMzo1ODo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy4xCgoyMDE1LTEyLTI0IDEyOjUwOjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0xMi0yNCAxMjoyMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTEyLTIxIDAwOjQzOjQ5ICswMTAwICBLb29wIE1hc3QgPGt3bUByYWluYm93LXJ1bm5lci5ubD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBNYWtlIC1Cc3ltYm9saWMgY2hlY2sgd29yayB3aXRoIGNsYW5nLgoJICBVcGRhdGUgdGhlIC1Cc3ltYm9saWMgY2hlY2sgd2l0aCB0aGUgdmVyc2lvbiBnbGliIGhhcy4gVGhpcyB2ZXJzaW9uCgkgIHdvcmtzIHdpdGggY2xhbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk3MTMKCjIwMTUtMTItMTYgMDk6MzU6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgdG8gZ2l0CgoyMDE1LTExLTEwIDEyOjM4OjU5IC0wNTAwICBYYXZpZXIgQ2xhZXNzZW5zIDx4YXZpZXIuY2xhZXNzZW5zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBjb3JlOiBBZGQgZ19hdXRvcHRyKCkgc3VwcG9ydCB0byBhbGwgdHlwZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDQ2NAoKMjAxNS0xMi0xNCAxMzowNjo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogQ2hlY2sgaWYgcGFyc2luZyB0aGUgbmFtZSB0ZW1wbGF0ZSB3aXRoIHNzY2FuZigpIHdhcyBzdWNjZXNzZnVsCgkgIElmIG5vdCwgZ28gYmFjayB0byB0aGUgYXV0b21hdGljIHBhZCBudW1iZXJpbmcuCgkgIENJRCAxMTk1MTI5CgoyMDE1LTEyLTE0IDExOjIwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWUvbXVsdGlxdWV1ZTogRG9uJ3Qgc3BlY2lhbC1jYXNlIENBUFMgZXZlbnRzIGluIHRoZSBldmVudCBoYW5kbGVycwoJICBGb3IgQ0FQUyBldmVudHMgd2Ugd2lsbCBuZXZlciBldmVyIGhhdmUgYSBGQUxTRSByZXR1cm4gdmFsdWUgaGVyZSwgc28ganVzdAoJICByZW1vdmUgdGhlIGRlYWQgY29kZSBpbnN0ZWFkIG9mIGNhdXNpbmcgZnV0dXJlIGNvbmZ1c2lvbi4KCjIwMTUtMTItMTQgMTE6MTY6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFJldmVydCAicXVldWU6IElsbGVnYWwgbWVtb3J5IGFjY2VzcyBvZiBzaW5rIGV2ZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc4NjE0YzUwNWEyYTc2MWNiNGRjYjdmNGU1ZjNlOWY5N2M5YThlODguCgkgIFRoZSBjb2RlIGl0IHdhcyBmaXhpbmcgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IGFueXdheSBhbmQgd2lsbCBiZSByZW1vdmVkIGluCgkgIHRoZSBuZXh0IGNvbW1pdC4KCjIwMTUtMTItMTQgMTA6MzI6MTQgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBJbGxlZ2FsIG1lbW9yeSBhY2Nlc3Mgb2Ygc2luayBldmVudAoJICBPbmNlIGV2ZW50IGlzIHB1c2hlZCB0byBwYWQsIHRoZW4gcXVldWUgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGV2ZW50LgoJICBUaGlzIGlzIGxlYWRpbmcgdG8gaW52YWxpZCByZWFkIHZhbGdyaW5kIGVycm9ycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDMwCgoyMDE1LTEyLTE0IDEwOjEwOjA0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogVW5yZWYgZXZlbnQgaWYgR3N0RWxlbWVudDo6c2VuZF9ldmVudCgpIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBPdGhlcndpc2Ugd2UnbGwgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50IG9ubHkgaWYgaXQncyBpbXBsZW1lbnRlZCwgYW5kCgkgIGxlYWsgdGhlIGV2ZW50IGluIGFsbCBvdGhlciBzaXR1YXRpb25zLgoKMjAxNS0xMi0xNCAxMDowNDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBkeW5hbWljIHBpcGVsaW5lIGV4YW1wbGUKCSAgVXNlIEdTVF9QQURfUFJPQkVfUEFTUyB0byBwYXNzIHRocm91Z2ggYWxsIGV2ZW50cyBvdGhlciB0aGFuIEVPUyBpbnN0ZWFkIG9mCgkgIGJsb2NraW5nIG9uIHRoZSBmaXJzdCBub24tRU9TIGV2ZW50IGZvcmV2ZXIuIEFsc28gZml4IGEgdHlwbyBpbiBhIGNvbW1lbnQgaW4KCSAgdGhhdCBmdW5jdGlvbi4KCSAgVGhhbmtzIHRvIERhdmlkIEphZ2dhcmQgZm9yIHJlcG9ydGluZyB0aGlzIG9uIHRoZSBtYWlsaW5nIGxpc3QuCgoyMDE1LTEyLTEzIDAwOjM3OjM5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogIHR5cG8gaW4gdGhlIGxvY2F0aW9uIG9mIG1ha2VfZWxlbWVudCB0b29sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzNTIKCjIwMTUtMTItMTIgMDE6MTM6NTkgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGRyb3AgdW5uZWVkZWQgbWFjcm9zIGZvciBHX09TX1dJTjMyCgoyMDE1LTEyLTEyIDAxOjA5OjIwIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBkcm9wIHVubmVlZGVkIG1hY3JvcyBmb3IgR19PU19XSU4zMgoKMjAxNS0xMi0xMiAwMTowNjo0MyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMjI6MTQ6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMjA6NTI6NTcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHNvbWUgdHlwb3MKCjIwMTUtMTItMTEgMjA6NDI6MDUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMTk6MTE6MDEgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGZpeCBzb21lIHR5cG9zCgoyMDE1LTEyLTExIDE4OjU5OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAxNDozNjoyOSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGRyb3AgYm9ndXMgcmVmZXJlbmNlIHRvIGZpbGUgZGVzY3JpcHRvcgoJICArZml4IHR5cG8gb24gcmV0dXJuIHZhbHVlIGNvbW1lbnQKCjIwMTUtMTItMTEgMTQ6MDc6MjcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMCAxNDozMjoyNyArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVucmVmIG1lc3NhZ2UgaW4gX3Bvc3RfbWVzc2FnZSB3aGVuIHRoZXJlIGlzIG5vIGltcGxlbWVudGF0aW9uCgkgICdnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UnIHRha2VzIHRoZSBvd25lcnNoaXAgb2YgdGhlIG1lc3NhZ2UsIHNvIGl0CgkgIHNoYWxsIHVucmVmIGl0IHdoZW4gdGhlcmUgaXMgbm8gcG9zdF9tZXNzYWdlIGltcGxlbWVudGF0aW9uLiBPdGhlcndpc2UKCSAgbWVzc2FnZSBpcyBsZWFrZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzMDAKCjIwMTUtMTItMTAgMTE6MzU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBEb24ndCBob2xkIHN0YXRlIGxvY2sgYWxsIHRoZSB0aW1lIHdoaWxlIHNlbmRpbmcgYW4gZXZlbnQKCSAgVGhpcyBsb2NrIHNlZW1zIHRvIGV4aXN0IG9ubHkgdG8gcHJldmVudCBlbGVtZW50cyBmcm9tIGNoYW5naW5nIHN0YXRlcyB3aGlsZQoJICBldmVudHMgYXJlIGJlaW5nIHByb2Nlc3NlZC4gSG93ZXZlciBldmVudHMgYXJlIGdvaW5nIHRvIGJlIHByb2Nlc3NlZAoJICBub25ldGhlbGVzcyBpbiB0aG9zZSBlbGVtZW50cyBpZiBzZW50IGRpcmVjdGx5IHZpYSBwYWRzLCBzbyBwcm90ZWN0aW9uIG11c3QKCSAgYWxyZWFkeSBiZSBpbXBsZW1lbnRlZCBpbnNpZGUgdGhlIGVsZW1lbnRzIGZvciBldmVudCBoYW5kbGluZyBpZiBpdCBpcyBuZWVkZWQuCgkgIEFzIHN1Y2ggaGF2aW5nIHRoZSBsb2NrIGhlcmUgaXMgbm90IHZlcnkgdXNlZnVsIGFuZCBpcyBhY3R1YWxseSBjYXVzaW5nCgkgIHZhcmlvdXMgZGVhZGxvY2tzIGluIGRpZmZlcmVudCBzaXR1YXRpb25zIGFzIGRlc2NyaWJlZCBpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MDQwCgoyMDE1LTEyLTA3IDIwOjI3OjQ1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMDMgMTU6MDQ6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTAzIDE1OjAxOjI3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IGluZGVudGF0aW9uIGZpeGVzCgoyMDE1LTEyLTA5IDE3OjQwOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHVzZSByYW5kb20gc2VnbWVudC5wb3NpdGlvbiBmcm9tIHVwc3RyZWFtCgkgIHNlZ21lbnQucG9zaXRpb24gaXMgbWVhbnQgZm9yIGludGVybmFsIHVzYWdlIG9ubHksIGJ1dCB0aGUgdmFyaW91cwoJICBHU1RfRVZFTlRfU0VHTUVOVCBjcmVhdGlvbmcvcGFyc2luZyBmdW5jdGlvbnMgd29uJ3QgY2xlYXIgdGhhdCBmaWVsZC4KCSAgVXNlIHRoZSBhcHByb3ByaWF0ZSBzZWdtZW50IGJvdW5kYXJ5IGFzIGFuIGluaXRpYWwgdmFsdWUgaW5zdGVhZAoKMjAxNS0xMi0wNyAxNzoyNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBQb3N0IGEgTEFURU5DWSBtZXNzYWdlIHdpdGggYXN5bmMtaGFuZGxpbmc9VFJVRSBpZiB0aGUgUExBWUlORyBzdGF0ZSBpcyByZWFjaGVkCgkgIE90aGVyd2lzZSBlYWNoIGJpbiBtaWdodCBoYXZlIGEgZGlmZmVyZW50IGxhdGVuY3kgaW4gdGhlIGVuZCwgY2F1c2luZwoJICBzeW5jaHJvbml6YXRpb24gcHJvYmxlbXMuCgkgIFRoZSBiaW4gd2lsbCBzdGlsbCBmaXJzdCBoYW5kbGUgbGF0ZW5jeSBpbnRlcm5hbGx5IGFzIGJlZm9yZSwgYnV0IGdpdmVzIHRoZQoJICBvdmVyYWxsIHBpcGVsaW5lIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlIGxhdGVuY3kgb2YgdGhlIHdob2xlIHBpcGVsaW5lCgkgIGFmdGVyd2FyZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkxMjUKCjIwMTUtMTItMDcgMTg6MjA6MzUgKzAyMDAgIEF0aGFuYXNpb3MgT2lrb25vbW91IDxhdGhvaWtAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3N0IHRhZyBsaXN0IHdoZW4gYXZnIGJpdHJhdGUgY2hhbmdlcyBhdCBsZWFzdCAyJQoJICBXYXRjaGluZyB2aWRlb3Mgd2l0aCB2YXJpYW50IGJpdHJhdGUgaXMgY29tbW9uIHRvIGhhdmUgZGVsdGEKCSAgbW9yZSB0aGFuIDEwIGticHMsIHJlc3VsdGluZyBpbiB0YWcgbGlzdCBzcGFtLgoJICBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gZml4ZWQgMTAga3BicyBkZWx0YSwgaXQgaXMgYmV0dGVyIHRvCgkgIGNhbGN1bGFsZSB0aGUgZGlmZmVyZW5jZSBpbiBwZXJjZW50YWdlIGFuZCB1cGRhdGUgdGFnIGxpc3QKCSAgb25seSB3aGVuIGJpdHJhdGUgY2hhbmdlcyBtb3JlIHRoYW4gMiUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwNTUKCjIwMTUtMTItMDcgMDk6MDg6MDEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiMzE5OTA5IHRvIDg2ZTQ2NjMKCjIwMTUtMTItMDcgMTI6NTk6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDaGVjayBmb3IgYW4gYWN0aXZhdGVkIHBhZCBiZWZvcmUgYWRkaW5nLCBub3QgYSBub24tZmx1c2hpbmcgb25lCgkgIFRoZSBwYWQgY291bGQgYmUgYWN0aXZhdGVkIGJ1dCBmbHVzaGluZyBiZWNhdXNlIG9mIGEgRkxVU0hfU1RBUlQgZXZlbnQuIFRoYXQncwoJICBub3Qgd2hhdCB3ZSdyZSBsb29raW5nIGZvciBoZXJlLCB3ZSB3YW50IHRvIGNoZWNrIGZvciBhY3RpdmF0ZWQgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODkyOAoKMjAxNS0xMS0xOSAxNTozMzowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBmdW5uZWw6IHJlbW92ZSBzdGF0ZSBjaGFuZ2UgZnJvbSBzdHJlc3MgdGVzdHMKCSAgQ2hhbmdpbmcgc3RhdGVzIHVwIGFuZCBkb3duIHdoaWxlIGJ1ZmZlcnMgYXJlIGJlaW5nIHB1c2hlZCBpcyBub3QKCSAgYSB2YWxpZCB1c2UgY2FzZS4gSWYgYSBwYWQgaXMgZGVhY3RpdmF0ZWQgYW5kIHJlYWN0aXZhdGVkIGR1cmluZwoJICBhIGJ1ZmZlciBwdXNoIGl0IGlzIHJhY3kgd2l0aCB0aGUgY2hlY2sgb2YgcHVzaGVkIHN0aWNreSBldmVudHMKCSAgYW5kIHRoZSBhY3R1YWwgY2hhaW5mdW5jdGlvbiBjYWxsLiBBcyBpdCBtaWdodCBjYWxsIHRoZSBjaGFpbgoJICB3aXRob3V0IG5vdGljaW5nIHRoZSBwZWVyIHBhZCBsb3N0IGl0cyBwcmV2aW91cyBzdGlja3kgZXZlbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MzQwCgoyMDE1LTEyLTA0IDEwOjIyOjU2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4IHByb2Nlc3MgcmV0dXJuIHZhbHVlIG9uIGVycm9yCgkgIEluIGNhc2Ugb2YgYSBydW4tdGltZSBlcnJvciBtZXNzYWdlLCB0aGUgcHJvY2VzcyByZXR1cm4gdmFsdWUgd2FzIGxlZnQKCSAgdW5zZXQuIFRoaXMgd291bGQgbGVhZCB0byBlcnJvciBub3QgYmVpbmcgY2F1Z2h0IGF0IHNoZWxsIGxldmVsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDE5CgoyMDE1LTEyLTA0IDEwOjQ1OjI1IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogZ3N0LWxhdW5jaDogcmV0dXJuIG5vbi0wIGV4aXQgY29kZSBvbiBhc3luYyBlcnJvciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyZWU0Y2JhMjQ4NWQ3ZjE2NDZkNDhlNDU1OTQyNmFlZDRiYTk5Yzg1LgoKMjAxNS0xMi0wNCAxNTowOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHJldHVybiBub24tMCBleGl0IGNvZGUgb24gYXN5bmMgZXJyb3IKCSAgV2hlbiBhbiBlcnJvciBoYXBwZW5zIGluIHBsYXlpbmcgc3RhdGUsIHN0aWxsIHJldHVybiBhCgkgIG5vbi0wIGV4aXQgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTAxOQoKMjAxNS0xMi0wNCAxNDozOToyOSArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHJlYWxseSBmaXggaW5zdGFsbCByYWNlCgkgIE15IHByZXZpb3VzIGZpeCBmb3IgIzc1ODAyOSB3YXNuJ3QgcXVpdGUgcmlnaHQgYW5kIHNpbXBseSBtYWRlIHRoZSByYWNlIHJhcmVyLgoJICBTb21lIG9mIHRoZSBmaWxlcyBhcmUgaW5zdGFsbGVkIGJ5IGluc3RhbGwtZXhlYyBhbmQgb3RoZXJzIGJ5IGluc3RhbGwtZXhlYywgc28KCSAgdGhlIGhvb2tzIG5lZWQgdG8gYmUgc3BsaXQgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDI5CgoyMDE1LTEyLTA0IDExOjU2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGRvY3MKCSAgVGhlIGFsbG9jYXRpb24gcXVlcnkgaGFzIHBhcmFtZXRlcnMgd2l0aCB0aGUgbWV0YSBBUEksIG5vdCBmbGFncy4KCjIwMTUtMTItMDIgMTU6MDI6MjUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIERyb3AgdXNhZ2Ugb2YgZGVwcmVjYXRlZCBnLWlyLXNjYW5uZXIgLS1zdHJpcC1wcmVmaXggZmxhZwoKMjAxNS0xMi0wMiAxNjoyODoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggc2V0L2dldCBwcm9wZXJ0eQoJICBCbGFtZSBpdCBvbiB0aGUgcmViYXNpbmcgOikKCjIwMTUtMTEtMTIgMTc6MTU6MzcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogSW1wbGVtZW50IEdzdFBhZEV2ZW50RnVsbEZ1bmN0aW9uCgkgIEFQSTogR3N0UGFkRXZlbnRGdWxsRnVuY3Rpb24KCSAgUmV0dXJucyBhIEdzdEZsb3dSZXR1cm4sIGFsbG93cyBhc3luY2hyb25vdXMgZWxlbWVudHMgdG8gcHJvcGVybHkKCSAgcHJvcGFnYXRlIGZsb3cgcmV0dXJucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3ODIxCgoyMDE1LTExLTMwIDE3OjA5OjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBVc2Ugc2lnbmVkIGNsb2NrIHZhbHVlcyBmb3IgcnVubmluZyB0aW1lIGNhbGN1bGF0aW9uCgkgIFRoaXMgaW1wcm92ZXMgdGhlIGFjY3VyYWN5IG9mIHF1ZXVlIGxldmVscyBhbmQgd2hlbiB0byBwdXNoIGJ1ZmZlcnMKCSAgZm9yIGJ1ZmZlcnMgZmFsbGluZyBvdXRzaWRlIG9mIHRoZSBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTMKCjIwMTUtMTEtMjcgMDk6NDU6MjkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBhbiBleHRyYSBjYWNoZSB0aW1lIGZvciB1bmxpbmtlZCBzdHJlYW1zCgkgIFdoZW4gc3luY2hyb25pemluZyB0aGUgb3V0cHV0IGJ5IHRpbWUsIHRoZXJlIGFyZSBzb21lIHVzZS1jYXNlcyAobGlrZQoJICBhbGxvd2luZyBnYXBsZXNzIHBsYXliYWNrIGRvd25zdHJlYW0pIHdoZXJlIHdlIHdhbnQgdGhlIHVubGlua2VkIHN0cmVhbXMKCSAgdG8gc3RheSBzbGlnaHRseSBiZWhpbmQgdGhlIGxpbmtlZCBzdHJlYW1zLgoJICBUaGUgInVubGlua2VkLWNhY2hlLXRpbWUiIHByb3BlcnR5IGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5IGJ5IGhvdwoJICBtdWNoIHRpbWUgdGhlIHVubGlua2VkIHN0cmVhbXMgc2hvdWxkIHdhaXQgYmVmb3JlIHB1c2hpbmcgYWdhaW4uCgoyMDE1LTEwLTI2IDA4OjA2OjAxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBPcHRpbWl6ZSBtdWx0aXF1ZXVlIHNpemVzIGJhc2VkIG9uIGludGVybGVhdmUKCSAgTXVsdGlxdWV1ZSBzaG91bGQgb25seSBiZSB1c2VkIHRvIGNvcGUgd2l0aDoKCSAgKiBkZWNvdXBsaW5nIHVwc3RyZWFtIGFuZCBkb3dzdHJlYW0gdGhyZWFkaW5nIChpLmUuIGhhdmluZyBzZXBhcmF0ZSB0aHJlYWRzCgkgIGZvciBlbGVtZW50YXJ5IHN0cmVhbXMpLgoJICAqIEVuc3VyaW5nIGluZGl2aWR1YWwgcXVldWVzIGhhdmUgZW5vdWdoIHNwYWNlIHRvIGNvcGUgd2l0aCB1cHN0cmVhbSBpbnRlcmxlYXZlCgkgIChkaXN0YW5jZSBpbiBzdHJlYW0gdGltZSBiZXR3ZWVuIGNvLWxvY2F0ZWQgc2FtcGxlcykuIFRoaXMgaXMgdG8gZ3VhcmFudGVlCgkgIHRoYXQgd2UgaGF2ZSBlbm91Z2ggcm9vbSBpbiBlYWNoIGluZGl2aWR1YWwgcXVldWVzIHRvIHByb3ZpZGUgbmV3IGRhdGEgaW4KCSAgZWFjaCwgd2l0aG91dCBiZWluZyBibG9ja2VkLgoJICAqIExpbWl0IHRoZSBxdWV1ZSBzaXplcyB0byB0aGF0IGludGVybGVhdmUgZGlzdGFuY2UgKGFuZCBhbiBleHRyYSBtaW5pbWFsCgkgIGJ1ZmZlcmluZyBzaXplKS4gVGhpcyBpcyB0byBlbnN1cmUgd2UgZG9uJ3QgY29uc3VtZSB0b28gbXVjaCBtZW1vcnkuCgkgIEJhc2VkIG9uIHRoYXQsIG11bHRpcXVldWUgbm93IGNvbnRpbnVvdXNseSBjYWxjdWxhdGVzIHRoZSBpbnB1dCBpbnRlcmxlYXZlCgkgIChwZXIgaW5jb21pbmcgc3RyZWFtaW5nIHRocmVhZCkuIEJhc2VkIG9uIHRoYXQsIGl0IGNhbGN1bGF0ZXMgYSB0YXJnZXQKCSAgaW50ZXJsZWF2ZSAoY3VycmVudGx5IDEuNSB4IHJlYWxfaW50ZXJsZWF2ZSArIDI1MG1zIHBhZGRpbmcpLgoJICBJZiB0aGUgdGFyZ2V0IGludGVybGVhdmUgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IG1heF9zaXplLnRpbWUsIGl0IHdpbGwKCSAgdXBkYXRlIGl0IGFjY29yZGluZ2x5ICh0byBhbGxvdyBlbm91Z2ggbWFyZ2luIHRvIG5vdCBibG9jaykuCgkgIElmIHRoZSB0YXJnZXQgaW50ZXJsZWF2ZSBnb2VzIGRvd24gYnkgbW9yZSB0aGFuIDUwJSwgd2UgcmUtYWRqdXN0IGl0IG9uY2UKCSAgd2Uga25vdyB3ZSBoYXZlIGdvbmUgcGFzdCBhIHNhZmUgZGlzdGFuY2UgKDIgeCBjdXJyZW50IG1heF9zaXplLnRpbWUpLgoJICBUaGlzIG1vZGUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgaW5jb21pbmcgc3RyZWFtcyB0aGF0IGFyZSBndWFyYW50ZWVkIHRvIGJlCgkgIHByb3Blcmx5IHRpbWVzdGFtcGVkLgoJICBGdXJ0aGVybW9yZSwgd2UgaWdub3JlIHNwYXJzZSBzdHJlYW1zIHdoZW4gY2FsY3VsYXRpbmcgaW50ZXJsZWF2ZSBhbmQgbWF4aW11bQoJICBzaXplIG9mIHF1ZXVlcy4KCSAgRm9yIHRoZSBzaW1wbGVzdCBvZiB1c2UtY2FzZXMgKHNpbmdsZSBzdHJlYW0pLCBtdWx0aXF1ZXVlIGFjdHMgYXMgYSBzaW5nbGUKCSAgcXVldWUgd2l0aCBhIHRpbWUgbGltaXQgb2YgMjUwbXMuCgkgIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBpbnB1dHMsIGJ1dCBlYWNoIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBzdHJlYW1pbmcgdGhyZWFkLAoJICB0aGUgbWF4aW11bSB0aW1lIGxpbWl0IHdpbGwgYWxzbyBlbmQgdXAgYmVpbmcgMjUwbXMuCgkgIE9uIHJlZ3VsYXIgZmlsZXMgKG1vcmUgdGhhbiBvbmUgaW5wdXQgc3RyZWFtIGZyb20gdGhlIHNhbWUgdXBzdHJlYW0gc3RyZWFtaW5nCgkgIHRocmVhZCksIGl0IGNhbiByZWR1Y2UgdGhlIHRvdGFsIG1lbW9yeSB1c2VkIGFzIG11Y2ggYXMgMTB4LCBlbmRpbmcgdXAgd2l0aAoJICBtYXhfc2l6ZS50aW1lIGFyb3VuZCA1MDBtcy4KCSAgRHVlIHRvIHRoZSBhZGFwdGl2ZSBuYXR1cmUsIGl0IGNhbiBhbHNvIGNvcGUgd2l0aCBjaGFuZ2luZyBpbnRlcmxlYXZlICh3aGljaAoJICBjYW4gaGFwcGVuIGNvbW1vbmx5IG9uIHNvbWUgZmlsZXMgYXQgc3RhcnR1cC9wcmUtcm9sbCB0aW1lKQoKMjAxMy0wMS0wOCAyMToxNjo0MiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdXNlIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnQgc3BhcnNlIGZsYWcgdG8gYXZvaWQgb3ZlcnJlYWRpbmcgc3VidGl0bGVzCgkgIFRoaXMgd2lsbCBtZWFuIGEgbXVjaCBsb3dlciBkZWxheSBiZWZvcmUgYSBzdWJ0aXRsZXMgdHJhY2sgY2hhbmdlcyB0YWtlCgkgIGVmZmVjdC4gQWxzbyBhdm9pZHMgZXhjZXNzaXZlIG1lbW9yeSB1c2FnZSBpbiBtYW55IGNhc2VzLgoJICBUaGlzIHdpbGwgYWxzbyBjb25zaWRlciBzcGFyc2Ugc3RyZWFtcyBhcyAoaW5kaXZpZHVhbGx5KSBuZXZlciBmdWxsLCBzbwoJICBhcyB0byBhdm9pZCBibG9ja2luZyBhbGwgcGxheWJhY2sgZHVlIHRvIG9uZSBzcGFyc2Ugc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAwNjQ4CgoyMDE1LTEwLTMwIDEwOjIyOjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBoaWdoX3RpbWUgY29tcHV0YXRpb24KCSAgKiBBdm9pZCB0aGUgY29tcHV0YXRpb24gY29tcGxldGVseSBpZiB3ZSBrbm93IHdlIGRvbid0IG5lZWQgaXQgKG5vdCBpbgoJICBzeW5jIHRpbWUgbW9kZSkKCSAgKiBNYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgaGlnaGVzdCB0aW1lIHdpdGggR1NUX0NMT0NLX1RJTUVfTk9ORSBvbgoJICB1bmxpbmtlZCBwYWRzCgkgICogRW5zdXJlIHRoZSBoaWdoX3RpbWUgZ2V0cyBwcm9wZXJseSB1cGRhdGVkIGlmIGFsbCBwYWRzIGFyZSBub3QgbGlua2VkCgkgICogRml4IHRoZSBjb21wYXJpc2lvbiBpbiB0aGUgbG9vcCB3aGV0aGVyIHRoZSB0YXJnZXQgaGlnaCB0aW1lIGlzIHRoZSBzYW1lCgkgIGFzIHRoZSBjdXJyZW50IHRpbWUKCSAgKiBTcGxpdCB3YWtlX3VwX25leHRfbm9uX2xpbmtlZCBtZXRob2QgdG8gYXZvaWQgdXNlbGVzcyBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MzUzCgoyMDE1LTExLTA2IDAzOjAyOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRG9uJ3QgcmVwb3J0IDAlIHVubGVzcyBlbXB0eQoJICBXaGVuIHByZXBhcmluZyBhIGJ1ZmZlcmluZyBtZXNzYWdlLCBkb24ndCByZXBvcnQgMCUgaWYgdGhlcmUKCSAgaXMgYW55IGJ5dGVzIGxlZnQgaW4gdGhlIHF1ZXVlIGF0IGFsbC4gV2Ugc3RpbGwgaGF2ZSBzb21ldGhpbmcKCSAgdG8gcHVzaCwgc28gZG9uJ3QgdGVsbCB0aGUgYXBwIHRvIHN0YXJ0IGJ1ZmZlcmluZyAtIG1heWJlCgkgIHdlJ2xsIGdldCBtb3JlIGRhdGEgYmVmb3JlIGFjdHVhbGx5IHJ1bm5pbmcgZHJ5LgoKMjAxNS0xMS0zMCAxNzoxMTozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3RjbG9jazogRml4IEdTVF9TVElNRV9BUkdTCgkgIEl0IHdhc24ndCBwcm9wZXJseSBoYW5kbGluZyBHU1RfQ0xPQ0tfU1RJTUVfTk9ORSBhbmQgYWx3YXlzIHVzZSB0aGUKCSAgc2lnbiBtYXJrZXIgKCsvLSkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gaWRlbnRpZnkgc2lnbmVkIHZhbHVlcyBpbgoJICBsb2dzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg4NzAKCjIwMTUtMTEtMzAgMjM6MDg6NTAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IEFubm90YXRlIGdldF92YWx1ZVtfYXJyYXldIGFzIChtZXRob2QpCgkgIEFzIHRoZSBuYW1lcyBjbGFzaCB3aXRoIGdzdF9vYmplY3RfZ2V0X3ZhbHVlW19hcnJheV0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njk1MAoKMjAxNS0xMS0xMyAxNzozMjo1NyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogQWRkIHByZWZpeCBzdXBwb3J0IHRvIGRlcGVuZGVuY2llcwoJICBUaGlzIGFkZHMgYSBuZXcgZmxhZ3MsIEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX0ZJTEVfTkFNRV9JU19QUkVGSVgsCgkgIHdoaWNoIGFsbG93IHVzaW5nIHRoZSBuYW1lcyBhcyBwcmVmaXggZm9yIHBsdWdpbiBkZXBlbmNpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwODMKCjIwMTUtMTEtMTMgMTY6MzI6MzEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBBbGxvdyBkZXZpY2Ugbm9kZXMgYXMgZGVwZW5kZW5jeQoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgZmVhdHVyZSB0aGF0IGFyZSBwcm9kdWNlZCBhZnRlciBwcm9iaW5nIGEgc3BlY2lmaWMKCSAgbm9kZS4gWW91IHdhbnQgdG8gcmVsb2FkIHRoaXMgcGx1Z2luIGlmIHRoZSBzcGVjaWZpYyBub2RlKHMpIGhhdmUgYmVlbgoJICByZW1vdmVkLCBhZGRlZCwgb3IgcmVsb2FkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwODAKCjIwMTUtMTEtMTMgMTY6MjA6NDIgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBEb24ndCBkbyBsb3NzeSBzaGlmdCBvbiBoYXNoCgkgIEluIHBsdWdpbiBpcyByZXNwb25zaWJsZSBmb3IgY2FsY3VsYXRpbmcgYSBoYXNoIG9mIHRoZSBkZXBlbmRlbmNpZXMKCSAgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjYWNoZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgb3Igbm90LgoJICBDdXJyZW50bHksIHRoZSBoYXNoIGNvbWJpbmluZyBtZXRob2QgcmVtb3ZlcyBhIGJpdCBvZiB0aGUgb3JpZ2luYWwKCSAgaGF2ZSBiZWZvcmUgY29tYmluaW5nIHdpdGggYW4gYWRkaXRpb24uIEFzIHdlIHVzZSAzMmJpdHMgZm9yIG91ciBoYXNoCgkgIGFuZCBzaGlmdCAxIGJpdCBmb3IgZWFjaCBmaWxlIGFuZCBkaXJlY3RvcnksIHRoYXQgcmVzdWx0aW5nIGhhc2ggb25seQoJICBhY2NvdW50IGZvciB0aGUgbGFzdCAzMiBmaWxlcy4gQW5kIGlzIG1vcmUgYWZmZWN0ZWQgYnkgdGhlIGxhc3QgZmlsZS4KCSAgUm90YXRpbmcgdGVjaG5pcXVlIChzaGlmdGluZywgYW5kIGFkZGluZyBiYWNrIHRoZSBlbmRpbmcgYml0KSwgY2FuIGJlCgkgIHVzZSB0byBtYWtlIHRoZSBhZGRpdGlvbiBub24tY29tbXV0YXRpdmUuIEluIGEgd2F5IHRoYXQgZGlmZmVyZW50IG9yZGVyCgkgIGdpdmVzIGRpZmZlcmVudCBoYXNoZXMuIEluIHRoaXMgY2FzZSwgSSBkb24ndCBwcmVzZXJ2ZSB0aGlzIGJlaGF2aW91cgoJICBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgZmlsZXMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBPUyBpcwoJICBpcnJlbGV2YW50LgoJICBJbiBtb3N0IGNhc2VzLCB0aGUgWE9SIG9wZXJhdGlvbiBpcyB1c2VkIHRvIGNvbWJpbmUgaGFzaGVzLiBJbiB0aGlzCgkgIGNvZGUgd2UgdXNlIHRoZSBhZGRpdGlvbi4gSSBkZWNpZGVkIHRvIHByZXNlcnZlIHRoZSBhZGRpdGlvbiBiZWNhdXNlCgkgIHdlIG1ha2UgdXNlIG9mIG5vbi1yYW5kb20gaGFzaCAoKGd1aW50KSAtMSkgaW4gdGhlIGFsZ29yaXRobSBmb3IKCSAgbWF0Y2hpbmcgZmlsZXMgdGhhdCBhcmUgbm90IHJlYWxseSBwYXJ0IG9mIHRoZSBoYXNoIChzeW1saW5rcywgc3BlY2lhbAoJICBmaWxlcykuIERvaW5nIHN1Y2Nlc3NpdmUgWE9SIG9uIHRoaXMgdmFsdWUsIHdpbGwgc2ltcGx5IHN3aXRjaCBmcm9tCgkgIGZ1bGwgb25lcywgdG8gZnVsbCB6ZXJvLiBUaGUgWE9SIHVzZWQgd2l0aCB3aGl0ZWxpc3QgaGFzIGJlZW4gcHJlc2VydmVkCgkgIGFzIGl0J3MgYmFzZWQgb24gYSBmYWlybHkgcmFuZG9taXplZCBoYXNoIChnX3N0cl9oYXNoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA3OAoKMjAxNS0xMS0yMyAyMTo0MDozNCArMDAwMCAgTHVrYXN6IEZvcnluc2tpIDxsdWthc3ouZm9yeW5za2lAeW91dmlldy5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBmaXggY29tcGlsZXIgd2FybmluZyB3aXRoIC1XcGVkYW50aWMgYW5kIGdjYyA1CgkgIEdzdHJlYW1lciBjb21waWxlZCB3aXRoIGdjYyA1LjIgYW5kIC1XcGVkYW50aWMgcHJvZHVjZXMgdGhlCgkgIGZvbGxvd2luZyB3YXJuaW5nOgoJICAnSVNPIEMgZG9lcyBub3Qgc3VwcG9ydCAnX19GVU5DVElPTl9fJyBwcmVkZWZpbmVkIGlkZW50aWZpZXIgWy1XcGVkYW50aWNdCgkgIGNvbnN0IGNoYXIgKnMgPSBfX0ZVTkNUSU9OX187JwoJICBTaW5jZSBnY2MgNSBlbmFibGVzIEM5OSBieSBkZWZhdWx0LCB1c2UgX19mdW5jX18gaWYgaXQncyBhdmFpbGFibGUKCSAgaW5zdGVhZCBvZiB0aGUgbm9uLXN0YW5kYXJkIF9fRlVOQ1RJT05fXyAoYXMgc3VnZ2VzdGVkIGluIFsyXSkuCgkgIFsxXTogaHR0cHM6Ly9nY2MuZ251Lm9yZy9nY2MtNS9jaGFuZ2VzLmh0bWwKCSAgWzJdOiBodHRwczovL2djYy5nbnUub3JnL2djYy01L3BvcnRpbmdfdG8uaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NTQxCgoyMDE1LTExLTIwIDE5OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgY29udHJvbGxlcjogZml4IGFubm90YXRpb24gdG8gbWFrZSBnLWlyLXNjYW5uZXIgaGFwcHkKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDo1OTogV2FybmluZzogR3N0Q29udHJvbGxlcjogbWlzc2luZyAiOiIgYXQgY29sdW1uIDUxOgoJICAqIEBHU1RfSU5URVJQT0xBVElPTl9NT0RFX0NVQklDX01PTk86IChTaW5jZSAxLjgpIG1vbm90b25pYyBjdWJpYyBpbnRlcnBvbGF0aW9uLCB3aWxsIG5vdAoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOjU5OiBXYXJuaW5nOiBHc3RDb250cm9sbGVyOiB1bmtub3duIGFubm90YXRpb246IHNpbmNlCgoyMDE0LTA5LTI5IDE0OjAzOjEzICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBHU1RfVEFHX1BSSVZBVEVfREFUQQoJICBDYW4gYmUgdXNlZCB0byByZXByZXNlbnQgcHJpdmF0ZSBkYXRhIHRoYXQgbWF5IGJlCgkgIGNvbnRhaW5lZCBpbiB0YWdzLCBzdWNoIGFzIElEM3YyIFBSSVYgZnJhbWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTI2CgoyMDE1LTExLTE5IDAwOjUxOjQ0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogZG8gbm90IG92ZXJ3cml0ZSBoZWFkZXIgYnVmZmVyIHRpbWVzdGFtcHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmM0NzVhMDM1NTQzZWZjMDIwMmVjZGM1MjA3MDI5NWE0MjFlZDRiNC4KCSAgVGhpcyBjYXVzZXMgaXNzdWVzIHdpdGggaDI2NHBhcnNlLiBJdCBicmVha3MgdGltZXN0YW1wcyBhcwoJICB0aGVyZSBhcmUgaGVhZGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzdHJlYW0gYW5kIHRoaXMgcGF0Y2gKCSAgbWFrZXMgdGhlIHRpbWVzdGFtcHMgZm9yIHRob3NlIGRpZmZlciBmcm9tIHRoZSBvbmVzIHRoYXQKCSAgYXJlIGFkanVzdGVkLCBjcmVhdGluZyBhIGRpc2NvbnRpbnVpdHkgYW5kIGxlYWRpbmcgdG8gc3luYwoJICBpc3N1ZXMuCgoyMDE1LTExLTE3IDE4OjQ3OjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogc2ltcGxpZnkgY29kZSBhIGJpdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTg0ZjcxNTlhNzJjMmVlYmUwMTkwNWVlNTM3MTZlM2IyYWJjYjMwLgoKMjAxNS0xMS0xOCAxMTo0Njo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgcHJpbnQgY3JpdGljYWxzIHdoZW4gcmVjZWl2aW5nIGN1c3RvbSBldmVudHMgaW4gcmluZyBidWZmZXIgbW9kZQoJICBEb3duZ3JhZGUgZnJvbSBnX3dhcm5pbmcgdG8gR1NUX1dBUk5JTkcgbG9nIG1lc3NhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNzYKCjIwMTUtMTEtMTggMDk6MjE6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IERpc2FibGUgbXVsdGljYXN0IGxvb3BiYWNrCgkgIFdlJ3JlIG5vdCByZWFsbHkgaW50ZXJlc3RlZCBpbiBvdXIgb3duIHBhY2tldHMgYW5kIGlnbm9yZSB0aGVtIGFueXdheS4KCjIwMTUtMTEtMTcgMDk6MTc6NTggKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggc3RyaW5nIG1lbW9yeSBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyMDcKCjIwMTUtMTEtMTYgMDg6MjI6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2ltcGxpZnkgY29kZSBhIGJpdAoJICBBdm9pZCByZXBlYXRlZCBjaGVja3MgZm9yIHRlc3RpbmcgaWYgYSBidWZmZXIgaXMgYSBoZWFkZXIKCjIwMTUtMTEtMTMgMjA6NDQ6NTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGhhbmRsZSBidWZmZXIgd2l0aCBkdHMtb25seSB3aGVuIG1hcHBpbmcgdG8gcnVubmluZyB0aW1lCgkgIE90aGVyd2lzZSB0aGUgYnVmZmVyIHdhcyBsZWZ0IHdpdGggdGhlIG9yaWdpbmFsIHZhbHVlcyBhbmQgbGF0ZXIgd291bGQKCSAgYmUgY29tcGFyZWQgd2l0aCBvdGhlciBidWZmZXJzIHRoYXQgd2VyZSBjb252ZXJ0ZWQgdG8gcnVubmlubiB0aW1lLAoJICBsZWFkaW5nIHRvIGJhZCBpbnRlcmxlYXZpbmcgb2YgbXVsdGlwbGUgc3RyZWFtcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzk2MQoKMjAxNS0xMS0xMyAxNjozMTowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3Qgb3ZlcndyaXRlIGhlYWRlciBidWZmZXIgdGltZXN0YW1wcwoJICBiYXNlcGFyc2UgdHJpZXMgdG8gcHJlc2VydmUgdGltZXN0YW1wcyBmcm9tIHVwc3RyZWFtIGlmCgkgIGl0IGlzIHJ1bm5pbmcgb24gYSB0aW1lIHNlZ21lbnQgYW5kIHdyaXRlIHRoYXQgdG8KCSAgb3V0cHV0IGJ1ZmZlcnMuIEl0IGFzc3VtZXMgdGhlIGZpcnN0IERUUyBpcyBnb2luZyB0byBiZQoJICBzZWdtZW50LnN0YXJ0IGFuZCBzZXRzIHRoYXQgdG8gdGhlIGZpcnN0IGJ1ZmZlcnMuIEluIGNhc2UKCSAgdGhlIGJ1ZmZlciBpcyBhIGhlYWRlciBidWZmZXIsIGl0IGhhZCBubyB0aW1lc3RhbXBzIGFuZAoJICB3aWxsIGhhdmUgb25seSB0aGUgRFRTIHNldCBkdWUgdG8gdGhpcyBtZWNoYW5pc20uCgkgIFRoaXMgcGF0Y2ggcHJldmVudHMgdGhpcyBieSBza2lwcGluZyB0aGlzIGJlaGF2aW9yIGZvcgoJICBoZWFkZXIgYnVmZmVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzk2MQoKMjAxNS0wNi0xOCAxMzo1Njo1MyAtMDcwMCAgQWxlaXggQ29uY2hpbGxvIEZsYXF1w6kgPGFsZWl4QG9ibG9uZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IGFkZCBkcm9wLWJ1ZmZlci1mbGFncyBwcm9wZXJ0eQoJICBOZXcgcHJvcGVydHkgZHJvcC1idWZmZXItZmxhZ3MgdGhhdCB3aWxsIGRpc2NhcmQgYnVmZmVycyB0aGF0IGhhdmUgdGhlCgkgIGdpdmVuIGZsYWdzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTE4MgoKMjAxNS0xMS0xMiAxOTo0Njo0NCArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IGZpeCBpbnN0YWxsIHJhY2UKCSAgVGhlIGluc3RhbGwgaG9vayBuZWVkcyB0byBiZSBhIGluc3RhbGwtZGF0YS1ob29rIG5vdCBhbiBpbnN0YWxsLWV4ZWMtaG9vayBhcyB0aGUKCSAgaGVscGVycyBhcmUgaW5zdGFsbGVkIGludG8gaGVscGVyZGlyIHdoaWNoIGlzIGNvbnNpZGVyZWQgZGF0YSAob25seSBwYXRoCgkgIHZhcmlhYmxlcyB3aXRoICJleGVjIiBpbiBhcmUgY29uc2lkZXJlZCBleGVjdXRhYmxlcykuCgkgIFRoZSBleHBsaWNpdCBkZXBlbmRlbmN5IG9uIGluc3RhbGwtaGVscGVyc1BST0dSQU1TIHdhcyBhbiBhdHRlbXB0IGF0IHNvbHZpbmcKCSAgdGhpcywgYnV0IHRoaXMgY2F1c2VzIG9jY2FzaW9uYWwgcmFjZXMgd2hlcmUgaW5zdGFsbC1oZWxwZXJzUFJPR1JBTVMgY2FuIHJ1bgoJICB0d2ljZSBpbiBwYXJhbGxlbCAob25jZSB2aWEgaW5zdGFsbC1hbGwsIG9uY2UgdmlhIHRoZSBob29rJ3MgZGVwZW5kZW5jeSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMjkKCjIwMTUtMTEtMTIgMTY6MTQ6MTggKzAxMDAgIEhlaW5yaWNoIEZpbmsgPGhmaW5rQHRvb2xzb25haXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBBZGQgdGVzdCBmb3IgZ3N0X2Nsb2NrX2dldF9yZXNvbHV0aW9uCgkgIEluIGEgc2VyaWVzIG9mIHRpbWUgbWVhc3VyZW1lbnRzLCB0aGUgZGlmZiBiZXR3ZWVuIG5vdyBhbmQgcHJldmlvdXMKCSAgdGltZXN0YW1wcyBpcyBlaXRoZXIgMCBvciBhdCBsZWFzdCBhcyBsb25nIGFzIGdldF9yZXNvbHV0aW9uIHJldHVybmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDEyCgoyMDE1LTExLTEyIDExOjI2OjU2ICswMTAwICBIZWlucmljaCBGaW5rIDxoZmlua0B0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogVXNlIG1hY2hfdGltZSBvbiBBcHBsZSBwbGF0Zm9ybXMKCSAgT24gaU9TL09TWCBnX2dldF9jdXJyZW50X3RpbWUgd2FzIHVzZWQgYnkgZGVmYXVsdC4gSG93ZXZlciwgbWFjaF90aW1lIGlzCgkgIHRoZSBwcmVmZXJyZWQgaGlnaC1yZXNvbHV0aW9uIG1vbm90b25pYyBjbG9jayB0byBiZSB1c2VkIG9uIEFwcGxlCgkgIHBsYXRmb3Jtcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAxMgoKMjAxNS0xMS0xMSAxMToxMToyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXJzOiBsb2c6IGFkZCBtaXNzaW5nIGhvb2tzCgkgIExvZyBhbGwgcG9zc2libGUgaG9va3MKCjIwMTUtMTAtMjkgMDg6NDA6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBhZGQgZWxlbWVudC1jaGFuZ2Utc3RhdGUtcHJlL3Bvc3QgaG9vawoJICBIZWxwcyBjYXRjaGluZyB3aGVuIGEgc3RhdGUgY2hhbmdlIGlzIHN0YXJ0aW5nIGFuZCBlbmRpbmcuCgkgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gdHJhY2sgdGhlIGVuZCBvZiBzdGF0ZSBjaGFuZ2VzIGJ5IGNoZWNraW5nIHRoZQoJICBhc3luYy1kb25lIG9yIHN0YXRlLWNoYW5nZSBtZXNzYWdlcy4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGZvciBlbGVtZW50cyB0aGF0IGRvIGFzeW5jIHN0YXRlIGNoYW5nZXMuCgoyMDE1LTExLTExIDE0OjMyOjQ0ICswMTAwICBNaWd1ZWwgUGFyw61zIETDrWF6IDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiB0ZXN0IGZvciBjaGVja2luZyB0aGUgb3JkZXIgb2YgdGhlIHByb2JlIGNhbGxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTcKCjIwMTUtMTEtMTAgMTQ6NDE6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IGZpeCBzb21lIGNvcHkgYW5kIHBhc3RlIGxlZnRvdmVyIGluIGRvY3MKCjIwMTUtMTEtMTAgMTQ6Mzc6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IGFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbgoJICBBZGQgYSBzaG9ydCBwYXJhZ3JhcGggb24gd2hhdCBtZWFucyBmb3IgYSBjb250ZXh0IHRvIGJlIHBlcnNpc3RlbnQKCjIwMTUtMTEtMDkgMTg6MDI6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHVzZSAnc3RhdGljIGlubGluZScgaW5zdGVhZCBvZiAnaW5saW5lIHN0YXRpYycgZm9yIGd0ay1kb2MKCSAgZ3RrLWRvYyBkb2Vzbid0IHNlZW0gdG8gcmVjb2duaXNlIHRoZSBmb3JtZXIgdmFyaWFudC4KCjIwMTUtMTEtMDkgMTc6NTk6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBkb2NzOiByZW1vdmUgZHVtbXkgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHdpdGggR19JTkxJTkVfRlVOQ1RJT04gZm9yIGd0ay1kb2MKCSAgZ3RrLWRvYyBjYW4gaGFuZGxlIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGp1c3QgZmluZSB0aGVzZSBkYXlzLAoJICB0aGVyZSdzIG5vIG5lZWQgZm9yIHRoaXMgc3R1ZmYgYW55IG1vcmUuCgoyMDE1LTAyLTIzIDEzOjE2OjE5ICsxMDAwICBEdW5jYW4gUGFsbWVyIDxkcGFsbWVyQGRpZ2lzb2Z0LnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdGhlIGF2Zy1pbi1yYXRlIHByb3BlcnR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzOTU5CgoyMDE1LTExLTA0IDEyOjAyOjUxICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIG92ZXJydW4gc2lnbmFsCgkgIE5vdGlmaWVzIHRoYXQgdGhlIHF1ZXVlMiBpcyBmdWxsLCBzYW1lIGFzIHF1ZXVlIGRvZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzk1OQoKMjAxNS0wOS0yOSAyMToxNDoxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRlc3RzIGZvciBhY2NlcHQtY2FwcyBoYW5kbGluZyB3aXRoIHByb3h5IHBhZHMKCSAgQWRkcyAzIG5ldyB0ZXN0cyBmb3IgdGVzdGluZyBhY2NlcHQtY2FwcyBiZWhhdmlvciB3aXRoCgkgIHByb3h5LWNhcHMgcGFkcy4KCSAgMSkgQSBzY2VuYXJpbyB3aGVyZSB0aGVyZSBpcyBubyBwcm94eS4gVGhlIGNhcHMgc2hvdWxkIGJlIGNvbXBhcmVkIHRvIHRoZQoJICB0ZW1wbGF0ZSBjYXBzIG9mIHRoZSBwYWQKCSAgMikgQSBzY2VuYXJpbyB3aGVyZSB0aGVyZSBpcyBhIGNvbXBhdGlibGUgcGFkLiBUaGUgY2FwcyBzaG91bGQgYmUgY29tcGFyZWQKCSAgdG8gdGhlIHByb3hpZWQgcGFkIGNhcHMgKGFuZCBhbHNvIHdpdGggdGhlIHRlbXBsYXRlKQoJICAzKSBBIHNjZW5hcmlvIHdoZXJlIHRoZXJlIGlzIGFuIGluY29tcGF0aWJsZSBwcm94eSBwYWQuIE5vIGNhcHMgc2hvdWxkIGJlCgkgIHBvc3NpYmxlIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDExMgoKMjAxNS0xMS0wNSAxNjoxNToyMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNoZWNrIHRlbXBsYXRlIGNhcHMgZm9yIHByb3h5IHBhZHMgaW4gYWNjZXB0LWNhcHMKCSAgVmFsaWRhdGUgdGhhdCB0aGUgcHJveHkgcGFkIGluZGVlZCBhY2NlcHRzIHRoZSBjYXBzIGJ5IGFsc28KCSAgY29tcGFyaW5nIHdpdGggdGhlIHBhZCB0ZW1wbGF0ZSBjYXBzLCBvdGhlcndpc2Ugd2hlbiB0aGUgcGFkCgkgIGhhZCBubyBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzIGl0IHdvdWxkIGFsd2F5cyByZXR1cm4gdHJ1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDExMgoKMjAxNS0xMS0wNiAxMjo1ODo0MiArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBGaXggYnVpbGQgd2l0aCAtV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWQKCjIwMTUtMTEtMDYgMTI6MDU6MTggKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHByZXNldDogQWRkIGEgR1NUX1BSRVNFVF9QQVRIIGVudiB2YXJpYWJsZSBmb3IgcHJlc2V0cyB0byBiZSB1c2FibGUgdW5pbnN0YWxsZWQKCSAgQW5kIHN0YXJ0IHNldHRpbmcgdGhlIHZhcmlvdXMgdW5pbnN0YWxsZWQgcHJlc2V0cyBwYXRocy4KCjIwMTUtMTEtMDUgMDg6NTY6NDMgKzAxMDAgIEFudG9uIEJvbmRhcmVua28gPGFudG9uYm9AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBjb250aW51ZSBlbGVtZW50IGNsZWFudXAgZXZlbiBpZiBmY2xvc2UgZmFpbHMKCSAgU29tZXRpbWVzIGZpbGVzaW5rIGNsZWFudXAgZHVyaW5nIHN0b3AgbWF5IGZhaWwgZHVlIHRvIGZjbG9zZSBlcnJvci4KCSAgSW4gdGhpcyBjYXNlIG9iamVjdCBsZWZ0IHBhcnRpYWwgY2xlYW51cCB3aXRoIG5vIGZpbGUgb3BlbmVkCgkgIGJ1dCBzdGlsbCBob2xkaW5nIG9sZCBmaWxlIGRlc2NyaXB0b3IuCgkgIEl0J3Mgbm90IHBvc3NpYmxlIHRvIGNoYW5nZSBsb2NhdGlvbiBwcm9wZXJ0eSBpbiBhIHN1Y2ggc3RhdGUsCgkgIHNvIG5leHQgc3RhcnQgd2lsbCBjYXVzZSBvbGQgZmlsZSBvdmVyd3JpdGUgaWYgJ2FwcGVuZCcgZG9lcyBub3Qgc2V0LgoJICBBY2NvcmRpbmcgdG8gbWFuIHBhZ2UgYW5kIFBPU0lYIHN0YW5kYXJkIGFib3V0IGZjbG9zZSBiZWhhdmlvcihleHRyYWN0KToKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgIFRoZSBmY2xvc2UoKSBmdW5jdGlvbiBzaGFsbCBjYXVzZSB0aGUgc3RyZWFtIHBvaW50ZWQgdG8gYnkgc3RyZWFtCgkgIHRvIGJlIGZsdXNoZWQgYW5kIHRoZSBhc3NvY2lhdGVkIGZpbGUgdG8gYmUgY2xvc2VkLgoJICAuLi4KCSAgV2hldGhlciBvciBub3QgdGhlIGNhbGwgc3VjY2VlZHMsIHRoZSBzdHJlYW0gc2hhbGwgYmUgZGlzYXNzb2NpYXRlZAoJICBmcm9tIHRoZSBmaWxlIGFuZCBhbnkgYnVmZmVyIHNldCBieSB0aGUgc2V0YnVmKCkgb3Igc2V0dmJ1ZigpCgkgIGZ1bmN0aW9uIHNoYWxsIGJlIGRpc2Fzc29jaWF0ZWQgZnJvbSB0aGUgc3RyZWFtLgoJICAuLi4KCSAgVGhlIGZjbG9zZSgpIGZ1bmN0aW9uIHNoYWxsIHBlcmZvcm0gdGhlIGVxdWl2YWxlbnQgb2YgYSBjbG9zZSgpCgkgIG9uIHRoZSBmaWxlIGRlc2NyaXB0b3IgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHN0cmVhbQoJICBwb2ludGVkIHRvIGJ5IHN0cmVhbS4KCSAgQWZ0ZXIgdGhlIGNhbGwgdG8gZmNsb3NlKCksIGFueSB1c2Ugb2Ygc3RyZWFtIHJlc3VsdHMKCSAgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgU28gZmlsZSBpcyBpbiAnY2xvc2VkJyBzdGF0ZSBubyBtYXR0ZXIgaWYgZmNsb3NlIHN1Y2NlZWQgb3Igbm90LgoJICBBbmQgY2xlYW51cCBjb3VsZCBiZSBjb250aW51ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc1OTYKCjIwMTUtMTEtMDEgMDA6MDQ6MjcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1hcmsgc3RpY2t5IGV2ZW50cyBhcyBzZW50IG9uIG5vdC1saW5rZWQKCSAgSW5zdGVhZCBvZiByZS1zZW5kaW5nIHN0aWNreSBldmVudHMgb3ZlciBhbmQgb3ZlciB0byBhIG5vdC1saW5rZWQKCSAgcGFkLCBtYXJrIHRoZW0gYXMgc2VudCB0aGUgZmlyc3QgdGltZS4gSWYgdGhlIG5vdC1saW5rZWQgY2FtZSBmcm9tCgkgIGRvd25zdHJlYW0sIGl0IGFscmVhZHkgcmVjZWl2ZWQgdGhlIGV2ZW50cy4gSWYgdGhlIHBhZCBpcyBhY3R1YWxseQoJICBub3QtbGlua2VkLCB0aGUgc3RpY2t5IGV2ZW50cyB3aWxsIGJlIHJlc2NoZWR1bGVkIHdoZW4gdGhlCgkgIHBhZCBpcyBsaW5rZWQgYW55d2F5LgoKMjAxNS0xMC0yOSAxODo1MzoyOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFsbG93IGRlYWN0aXZhdGlvbiB3aXRoIG5vIHBlZXIuCgkgIEFsbG93IGRlYWN0aXZhdGlvbiBpbiBwdWxsLW1vZGUsIHNpbmNlIHRoYXQgaW1wbGllcyB3ZQoJICBoYWQgYSBwZWVyLCBhY3RpdmF0ZWQgaW4gcHVsbCBtb2RlLCB0aGVuIHRoZSBwZWVyIGRpc2EtcGVlci1lZCA7KQoKMjAxNS0xMC0yOCAxNzozMTowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnQ6IGVtaXQgdHJhY2VyJ3MgZWxlbWVudC1uZXcgaG9vayBmcm9tICdjb25zdHJ1Y3RlZCcKCSAgSXQgYWxsb3dzIHRvIHByb3Blcmx5IGVtaXR0aW5nIGl0IGZvciBhbGwgbmV3bHkgY3JlYXRlZCBlbGVtZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDQ1CgoyMDE1LTEwLTI4IDA2OjAzOjM5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IGxvZyB0aGUgZWxlbWVudC1uZXcgaG9vayBwcm9wZXJseQoJICBUbyBiZSBhYmxlIHRvIGdldCB0aGUgdGltZSB0aGUgZWxlbWVudHMgd2VyZSBjcmVhdGVkIGluc3RlYWQgb2YKCSAganVzdCBsb2dnaW5nIHRoZW0gd2l0aG91dCBhIHRpbWUKCjIwMTUtMTAtMjggMTg6MDQ6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogVW5ibG9jayBibG9ja2luZyBwYWQgcHJvYmVzIHdoZW4gcmVjZWl2aW5nIEZMVVNIX1NUQVJUIGluIHNlbmRfZXZlbnQoKSB0b28KCSAgV2l0aG91dCB0aGlzLCBmbHVzaGluZyBtaWdodCBub3QgdW5ibG9jayB0aGUgc3RyZWFtaW5nIHRocmVhZCBhbmQgY2F1c2UgZGVhZGxvY2tzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MjU3CgoyMDE1LTEwLTI4IDEzOjA0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvY3VtZW50IHRoZSBvcmRlciBpbiB3aGljaCBwYWQgcHJvYmVzIGFyZSBjYWxsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5NwoKMjAxNS0xMC0yNyAxODowNTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBcHBlbmQgaG9va3MgaW5zdGVhZCBvZiBwcmVwZW5kaW5nIHRvIGNhbGwgdGhlbSBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGFkZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTcKCjIwMTUtMTAtMjYgMTI6NTA6MTIgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgbmV0YWRkcmVzc21ldGE6IGdzdF9idWZmZXJfZ2V0X25ldF9hZGRyZXNzX21ldGEoKSBhcyBmdW5jdGlvbgoJICBJbXBsZW1lbnQgZ3N0X2J1ZmZlcl9nZXRfbmV0X2FkZHJlc3NfbWV0YSgpIGFzIGEgZnVuY3Rpb24gaW5zdGVhZAoJICBvZiBhIG1hY3JvIGluIG9yZGVyIHRvIGdldCBnb2JqZWN0LWludHJvc3BlY3Rpb24gdG8gd29yay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjkyMQoKMjAxNS0xMC0yNiAxODowNzoxMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGZsZXNoIG91dCBkb2NzIGZvciBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSBhIGxpdHRsZQoJICBUaGVyZSBpcyBhIHNpbWlsYXIgZXhwbGFuYXRpb24gaW4gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSwgYnV0IHRoZSBleGlzdGluZwoJICBkb2N1bWVudGF0aW9uIGNhbiBiZSBtaXNsZWFkaW5nIHNpbmNlIGl0IGRvZXMgbm90IGRlZmluZSB3aGF0ICdpcyBhbHJlYWR5CgkgIHdyaXRhYmxlJyBtZWFucy4KCSAgQWxzbyBub3RlIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSB1c2VkLgoKMjAxNS0xMC0yNiAxNzozNTozNCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogY2xhcmlmeSBkb2NzIGZvciBhIGZldyBmdW5jdGlvbnMgdGhhdCB0aGV5IGRvbid0IHVwZGF0ZSB0aGluZ3MgaW4tcGxhY2UKCSAgSXQgaXMgbm90IG5lY2Vzc2FyaWx5IGNsZWFyIGZyb20gdGhlIGV4aXN0aW5nIGludHJvc3BlY3Rpb24gdGFncyBhbmQKCSAgZG9jdW1lbnRhdGlvbiBhbG9uZS4KCjIwMTUtMTAtMjcgMDg6NDg6MDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlL3F1ZXVlMjogVXNlIEdTVF9CVUZGRVJfRFRTX09SX1BUUwoJICBUaGUgaW5wdXQgb2YgcXVldWUvcXVldWUyIG1pZ2h0IGhhdmUgRFRTIHNldCwgaW4gd2hpY2ggY2FzIHdlIHdhbnQKCSAgdG8gdGFrZSB0aGF0IGludG8gYWNjb3VudCAoaW5zdGVhZCBvZiB0aGUgUFRTKSB0byBjYWxjdWxhdGUgcG9zaXRpb24KCSAgYW5kIHF1ZXVlIGxldmVscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjUwNwoKMjAxNS0xMC0xMyAxNzoyMDoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVc2UgYnVmZmVyIERUUyBpZiBwcmVzZW50LCBlbHNlIFBUUwoJICBJbiBvcmRlciB0byBhY2N1cmF0ZWx5IGRldGVybWluZSB0aGUgYW1vdW50IChpbiB0aW1lKSBvZiBkYXRhCgkgIHRyYXZlbGxpbmcgaW4gcXVldWVzLCB3ZSBzaG91bGQgdXNlIGFuIGluY3JlYXNpbmcgdmFsdWUuCgkgIElmIGJ1ZmZlcnMgYXJlIGVuY29kZWQgYW5kIHBvdGVudGlhbGx5IHJlb3JkZXJlZCwgd2Ugc2hvdWxkIGJlCgkgIHVzaW5nIHRoZWlyIERUUyAoaW5jcmVhc2luZykgYW5kIG5vdCBQVFMgKHJlb3JkZXJlZCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjUwNwoKMjAxNS0xMC0yNyAwODozMzo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVzZSBHU1RfQlVGRkVSX0RUU19PUl9QVFMKCSAgU2ltcGxpZmllcyBjb2RlIGEgYml0CgoyMDE1LTEwLTI2IDA3OjU5OjU0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IEFkZCBhIEdTVF9CVUZGRVJfRFRTX09SX1BUUyBtYWNybwoJICBBUEk6IEdTVF9CVUZGRVJfRFRTX09SX1BUUwoJICBNYW55IHNjZW5hcmlvcy9lbGVtZW50cyByZXF1aXJlIGRlYWxpbmcgd2l0aCBzdHJlYW1zIG9mIGJ1ZmZlcnMgdGhhdAoJICBtaWdodCBoYXZlIERUUyBzZXQgKGkuZS4gZW5jb2RlZCBkYXRhLCBwb3RlbnRpYWxseSByZW9yZGVyZWQpCgkgIFRvIHNpbXBsaWZ5IGdldHRpbmcgdGhlIGluY3JlYXNpbmcgInRpbWVzdGFtcCIgb2YgdGhvc2UgYnVmZmVycywgY3JlYXRlCgkgIGEgbWFjcm8gdGhhdCB3aWxsIHJldHVybiB0aGUgRFRTIGlmIHZhbGlkLCBhbmQgaWYgbm90IHRoZSBQVFMKCjIwMTUtMTAtMDYgMTI6MjE6MDQgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBhZGQgR1NUX3tQVFIsU0VHTUVOVH1fRk9STUFUCgkgIFZlcnkgdXNlZnVsIGZvcm1hdHMgaW4gZGVidWcgb3V0cHV0IHNvIGJlc3QgdG8gaGF2ZSB0aGVtIGluIHRoZQoJICBnZW5lcmF0ZWQgZG9jLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MTE1CgoyMDE1LTEwLTI2IDEwOjUzOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogUmV0dXJuIC0xIGlmIGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lX2Z1bGwoKSBjb25zaWRlcnMgdGhlIHBvc2l0aW9uIG5vdCBpbnNpZGUgdGhlIHNlZ21lbnQKCSAgRml4ZXMgR3N0UGlwZWxpbmUgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTY0CgoyMDE1LTEwLTI0IDE2OjUyOjQ0ICswMTAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBmaXggYmVoYXZpb3VyIGZvciBtZXJnaW5nIHVyaXMgZW5kaW5nIGluIC4uIHdpdGhvdXQgZm9sbG93aW5nIC8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzA2NQoKMjAxNS0xMC0yNCAxNjo0Mzo1OSArMDEwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogdGVzdHM6IGFkZGVkIHVuaXQgdGVzdCBmb3Igc3RyZWFtcyBlbmRpbmcgaW4gLi4gd2l0aG91dCBmb2xsb3dpbmcgLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDY1CgoyMDE1LTA4LTI3IDEyOjQzOjI4ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1ZzogRHVtcCBwYWQgcHJvcGVydGllcyB2YWx1ZXMKCSAgQ3VycmVudGx5IHdlIG9ubHkgc2hvdyBlbGVtZW50IHByb3BlcnRpZXMgdmFsdWVzLCB3ZSBzaG91bGQgYWxzbyBzaG93CgkgIHBhZCBwcm9wZXJ0aWVzIHZhbHVlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTY2CgoyMDE1LTEwLTIzIDIwOjA0OjQyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogUmVtb3ZlIGxlZnRvdmVyIGRlYnVnIGdfcHJpbnQoKQoKMjAxNS0xMC0xNSAxNDo0OTozNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBBZGQgX2Z1bGwgdmFyaWFudHMgb2YgYWxsIHN0cmVhbS9ydW5uaW5nX3RpbWUgZnJvbS90byBzZWdtZW50IHBvc2l0aW9uIGZ1bmN0aW9ucwoJICBTZWUgZm9ybXVsYSBjbGFyaWZpY2F0aW9ucyBpbiBkZXNpZ24gZG9jcyBmb3IgY2FsY3VsYXRpb24gZGV0YWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjU2NAoKMjAxNS0wOS0yNiAwMToyOTowNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGRlZCBlbnYgdmFyIGZvciB1bmluc3RhbGxlZCBQVFAgaGVscGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2NTEKCjIwMTUtMTAtMjIgMTI6MDA6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVuYW1lIGFyZ3VtZW50IG9mIFBSRVJPTExfe0NPTkQsTE9DS30gbWFjcm9zCgkgIFRoZXkgdGFrZSBhIEdzdEJhc2VTaW5rIGluc3RhbmNlIGFzIGFyZ3VtZW50IGF0IG5vdCBhIEdzdFBhZC4gUmVuYW1lIHRoZQoJICBhcmd1bWVudCB0byAnb2JqJyB3aGljaCBpcyBub3QgbWlzcyBsZWFkaW5nIGFuZCBpbiBsaW5lIHdpdGgKCSAgR1NUX0JBU0VfU0lOS19QQUQob2JqKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njk1NAoKMjAxNS0xMC0yMiAxMDowNToxNCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgZ3N0Y29udHJvbHNvdXJjZTogQWRkIG1pc3NpbmcgKG91dCkgYW5ub3RhdGlvbgoKMjAxNS0xMC0yMSAxNDozNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjk5ODAwYSB0byBiMzE5OTA5CgoyMDE1LTEwLTIxIDE0OjQ5OjQ5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBkb2NzL2Fubm90YXRpb24gb2YgZ3N0X3BhZF9wcm9iZV9pbmZvX2dldF9idWZmZXJfbGlzdCgpCgkgIEl0J3Mgbm90IGdldF9idWZmZXJsaXN0KCkuIEJlY2F1c2Ugb2YgdGhhdCBpdCB3YXMgaWdub3JlZCBieSB0aGUgZG9jcyBhbmQKCSAgRy1JLCBsZWFkaW5nIHRvIGNyYXNoZXMgYmVjYXVzZSBvZiBicm9rZW4gb3duZXJzaGlwIHRyYW5zZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODk4CgoyMDE1LTEwLTIwIDE3OjI5OjQyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBVc2UgbmV3IEdTVF9FTkFCTEVfRVhUUkFfQ0hFQ0tTICNkZWZpbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg3MAoKMjAxNS0xMC0yMSAxNDoyNTo0MCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5YWVkMWQ3IHRvIGI5OTgwMGEKCjIwMTUtMTAtMjAgMTM6NDY6MjQgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGFsd2F5cyBmcmVlIGxvZwoJICBXZSBhbHdheXMgd2FudCB0byBmcmVlIHRoZSBvcGVuIGZpbGUgbG9nIGlmIGZvcGVuKCkgc3VjY2VlZGVkLiBJbmRlcGVuZGVudGx5CgkgIG9mIGlmIGZnZXRzKCkgc3VjY2VlZHMgb3IgZmFpbHMuCgkgIENJRCAxMzI2MDU1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NjQKCjIwMTUtMTAtMTkgMTY6NTA6NTEgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQ29ycmVjdCBzdHJlYW1fdGltZSBjYWxjIGZvciBuZWdhdGl2ZSBhcHBsaWVkIHJhdGUKCSAgVXBkYXRlZCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lIGFuZCBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSB0byByZWZsZWN0IGNvcnJlY3QgY2FsY3VsYXRpb25zIGZvciB0aGUgY2FzZSB3aGVuIHRoZSBhcHBsaWVkIHJhdGUgaXMgbmVnYXRpdmUuCgkgIFBhc3RpbmcgZnJvbSBkZXNpZ24gZG9jczoKCSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJICBTdHJlYW0gdGltZSBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZSBidWZmZXIgdGltZXMgYW5kIHRoZSBwcmVjZWRpbmcgU0VHTUVOVAoJICBldmVudCBhcyBmb2xsb3dzOgoJICBzdHJlYW1fdGltZSA9IChCLnRpbWVzdGFtcCAtIFMuc3RhcnQpICogQUJTIChTLmFwcGxpZWRfcmF0ZSkgKyBTLnRpbWUKCSAgRm9yIG5lZ2F0aXZlIHJhdGVzLCBCLnRpbWVzdGFtcCB3aWxsIGdvIGJhY2t3YXJkcyBmcm9tIFMuc3RvcCB0byBTLnN0YXJ0LAoJICBtYWtpbmcgdGhlIHN0cmVhbSB0aW1lIGdvIGJhY2t3YXJkcy4KCSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJICBUaGVyZWZvcmUsIHRoZSBjYWxjdWxhdGlvbiBmb3IgYXBwbGllZF9yYXRlIDwgMCBzaG91bGQgYmU6CgkgIHN0cmVhbV90aW1lID0gKFMuc3RvcCAtIEIudGltZXN0YW1wKSAqIEFCUyAoUy5hcHBsaWVkX3JhdGUpICsgUy50aW1lCgkgIGFuZCB0aGUgcmV2ZXJzZToKCSAgQi50aW1lc3RhbXAgPSBTLnN0b3AgLSAoc3RyZWFtX3RpbWUgLSBTLnRpbWUpIC8gQUJTIChTLmFwcGxpZWRfcmF0ZSkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjgxMAoKMjAxNS0xMC0xOSAyMTozOToxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VyOiByZW5hbWUgdGhlIGVudnZhciB0byBHU1RfVFJBQ0VSX1BMVUdJTlMKCSAgVGhlIHN1YnN5c3RlbSByZXVzZWQgdGhlIEdTVF9UUkFDRSB2YXIgdGhhdCBpcyBhbGxyZWFkeSBpbiB1c2UgYnkgdGhlIGFsbG9jIHRyYWNlci4KCSAgRml4ZXMgIzc1Njc2MAoKMjAxNS0xMC0xNSAxNjozMjo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbXByb3ZlIGluY29taW5nIFNFR01FTlQgaGFuZGxpbmcKCSAgUHJldmlvdXNseSB0aGlzIGNvZGUgd2FzIGp1c3QgYmxpbmRseSBzZXR0aW5nIHRoZSBjYWNoZWQgZmxvdyByZXR1cm4KCSAgb2YgZG93bnN0cmVhbSB0byBHU1RfRkxPV19PSyB3aGVuIHdlIGdldCBhIFNFR01FTlQuCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyBjYW4gbm90IGJlIGRvbmUgYmxpbmRseS4gSWYgZG93bnN0cmVhbSB3YXMKCSAgbm90IGxpbmtlZCwgdGhlIGNvcnJlc3BvbmRpbmcgc2lucWxlcXVldWUgc291cmNlIHBhZCB0aHJlYWQgbWlnaHQgYmUKCSAgd2FpdGluZyBmb3IgdGhlIG5leHQgSUQgdG8gYmUgd29rZW4gdXAgdXBvbi4KCSAgQnkgYmxpbmRseSBzZXR0aW5nIHRoZSBjYWNoZWQgcmV0dXJuIHZhbHVlIHRvIEdTVF9GTE9XX09LLCBhbmQgaWYgdGhhdAoJICBzdHJlYW0gd2FzIHRoZSBvbmx5IG9uZSB0aGF0IHdhcyBOT1RfTElOS0VELCB0aGVuIHRoZSBuZXh0IHRpbWUgd2UKCSAgY2hlY2sgKGZyb20gYW55IG90aGVyIHRocmVhZCkgdG8gc2VlIGlmIHdlIG5lZWQgdG8gd2FrZSB1cCBhIHNvdXJjZSBwYWQKCSAgdGhyZWFkIC4uLiB3ZSB3b24ndCBldmVuIHRyeSwgYmVjYXVzZSBub25lIG9mIHRoZSBjYWNoZWQgZmxvdyByZXR1cm4KCSAgYXJlIGVxdWFsIHRvIEdTVF9GTE9XX05PVF9MSU5LRUQuCgkgIFRoaXMgd291bGQgcmVzdWx0IGluIHRoYXQgdGhyZWFkIG5ldmVyIGJlaW5nIHdva2VuIHVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY2NDUKCjIwMTUtMDktMjYgMTg6MTY6MDcgKzA4MDAgIFRpbmctV2VpIExhbiA8bGFudHdAc3JjLmdub21lLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogRml4IGJ1aWxkIHdpdGggY2xhbmcgLVdlcnJvcj1jYXN0LWFsaWduCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2NTcKCjIwMTUtMTAtMTcgMjI6MTM6MDggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHRvIGZyZWUgYWxsIGNhY2hlZCBtZXNzYWdlcyB3aGVuIGdvaW5nIHRvIE5VTEwKCSAgQW4gQVNZTkMgUkVBRFktPlBBVVNFRCBtaWdodCBoYXZlIGZhaWxlZCB3aXRob3V0IHRoZSBiaW4gY29kZSBub3RpY2luZyBkdXJpbmcKCSAgdGhlIHN0YXRlIGNoYW5nZSwgaW4gd2hpY2ggY2FzZSB3ZSB3aWxsIG5ldmVyIGdldCBQQVVTRUQtPlJFQURZIGFuZCB3b3VsZCBsZWFrCgkgIG1lc3NhZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NjExCgoyMDE1LTEwLTE2IDE1OjU5OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogbWVudGlvbiB4ZG90IHV0aWxpdHkgdG8gdmlldyAuZG90IGZpbGVzIGRpcmVjdGx5CgoyMDE1LTEwLTE2IDEyOjAwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIGFsbG9jdHJhY2U6IHNob3cgZGV0YWlscyBvZiBldmVudHMgYW5kIG1lc3NhZ2VzIGxlYWtlZAoJICBTbyBpdCdzIGNsZWFyZXIgd2hhdCBsZWFrZWQuCgoyMDE1LTEwLTE2IDExOjU0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBkb2NzOiBtYW51YWw6IGltcHJvdmUgYWR2YW5jZWQgbWV0YWRhdGEgZXhhbXBsZSBhIGJpdAoJICBBY2NlcHQgYm90aCBmaWxlbmFtZSBhbmQgYSBVUkkgYXMgYXJndW1lbnQsIGFuZCBwcmludAoJICB0aGUgZXJyb3IgZnJvbSB0aGUgZXJyb3IgbWVzc2FnZSBpZiB0aGVyZSdzIGFuIGVycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NjMwCgoyMDE1LTEwLTE1IDE5OjA1OjIxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZml4IHR5cG8gaW4gZG9jdW1lbnRhdGlvbgoJICBJdCBzaG91bGQgYmUgMS4yIHVubGVzcyB0aGlzIGlzIGEgZmxhZyBmcm9tIHRoZSBmdXR1cmUKCjIwMTUtMDktMTUgMTg6MDg6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWNjZXB0IFNUUkVBTV9TVEFSVCBhZnRlciBFT1MKCSAgSW4gdGhlIHNhbWUgd2F5IGNvcmUgbm93IGFsbG93cyBTVFJFQU1fU1RBUlQgdG8gcmVtb3ZlIHRoZSBmbHVzaGluZwoJICBzdGF0ZSBmcm9tIHBhZHMsIHdlIG5lZWQgdG8gZG8gdGhlIHNhbWUgdGhpbmcgaW4gbXVsdGlxdWV1ZQoKMjAxNS0xMC0xNCAxMTowMzoyMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IENvbnZlcnQgZnVuY3Rpb24gdG8gbWFjcm8gaW4gdW5pdCB0ZXN0IHRvIGdldCBwcm9wZXIgbGluZSBudW1iZXJzIG9uIGZhaWx1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMTYKCjIwMTUtMTAtMTIgMTc6Mjk6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFVwZGF0ZSBpbnRlcm5hbCBwb3NpdGlvbiBldmVuIGlmIG5vdCBsaW5rZWQKCSAgT3VyIGN1cnJlbnQgcG9zaXRpb24gaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBiZWluZyBsaW5rZWQgb3Igbm90LgoJICBBdm9pZHMgaGF2aW5nIHN0cmF5IHNlZ21lbnQgdXBkYXRlcyBmaXJlZCBldmVyeSAycwoKMjAxNS0xMC0wNyAyMjo1NTo0NCArMDEwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IG1lbW9yeSBsZWFrIHdoZW4gc2VuZGluZyBldmVudHMgdG8gYW4gRU9TIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MjA4CgoyMDE1LTEwLTA3IDEyOjAxOjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJICB0cmFjZXJzOiBPbmx5IGxpbmsgYWdhaW5zdCBsaWJnc3RwcmludGYubGEgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZAoJICBJdCBkb2VzIG5vdCBleGlzdCBvdGhlcndpc2UgYW5kIGxpbmtpbmcgd2lsbCBmYWlsLgoKMjAxNS0xMC0wNyAxMToyNTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgZ3N0LXB0cC1oZWxwZXI6ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+IHRvIGZpeCBuZXQvaWYuaCBpbmNsdWRlIG9uIE9TWCAxMC42CgkgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSBnc3QtcHRwLWhlbHBlci5jOjQwOjA6CgkgIC91c3IvaW5jbHVkZS9uZXQvaWYuaDoyNjU6MTk6IGVycm9yOiBmaWVsZCAnaWZydV9hZGRyJyBoYXMgaW5jb21wbGV0ZSB0eXBlCgkgIHN0cnVjdCBzb2NrYWRkciBpZnJ1X2FkZHI7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYxMzYKCjIwMTUtMTAtMDcgMTI6MjI6MzQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICBSZXZlcnQgInRyYWNlcnM6IE9ubHkgYnVpbGQgZ2V0cnVzYWdlKCkgdHJhY2VyIGlmIFJVU0FHRV9USFJFQUQgaXMgYXZhaWxhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhkZGJmNzY2MjZhNDg0MjAzMDY4NjlkYjFkMTcxZjg1NGNjMjUzMTAuCgoyMDE1LTEwLTA3IDEyOjIxOjU2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICB0cmFjZXJzL3J1c2FnZTogaWZkZWYgdGhlIFJVU0FHRV9USFJFQUQgdXNhZ2UKCSAgU29tZSB2ZXJzaW9ucyBvZiBhbmRvaWQgZG9uJ3Qgc2VlbSB0byBoYXZlIGl0LgoKMjAxNS0xMC0wNyAxMToxMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IE9ubHkgYnVpbGQgZ2V0cnVzYWdlKCkgdHJhY2VyIGlmIFJVU0FHRV9USFJFQUQgaXMgYXZhaWxhYmxlCgoyMDE1LTEwLTA2IDIxOjQ2OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiByZW1vdmUgZ3N0X3RyYWNlcl9xdWFya19pZF9nZXRfdHlwZQoJICBSZXZlcnQgYWRkaXRpb24gZnJvbSA3NzdiYmVlYTYwNTA1MWFlM2QyZmE3ZTAyYWQ4NTg5MDAxZTc4Y2UwLgoKMjAxNS0xMC0wNiAxODo1MjozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogbW92ZSBwcm90b3R5cGUgdG8gdGhlIHJpZ2h0IGhlYWRlcgoJICBGaXhlcyB0aGUgYnVpbGQgd2hlbiB0aGUgdHJhY2luZyBzdWJzeXN0ZW0gaXMgZGlzYWJsZWQuCgoyMDE1LTEwLTA2IDE4OjQ5OjQ2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBtYXJrIEdzdFRyYWNlclF1YXJrSWQgYXMgbm9uIEdFbnVtCgkgIFRoaXMgcmV2ZXJ0cyA3MmNhMDJiMWRlNDA2NmVlYWUzNWM4OTFlMjc1Mzg2NzcwMTE3Nzc4IGFuZCBtYXJrcyB0aGUgZW51bQoJICBhY2NvcmRpbmdseS4KCjIwMTUtMTAtMDYgMTg6NDY6MjQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IGRpc2FibGUgdGhlIGxvZyB0cmFjZXIgaWYgZGVidWcgbG9nZ2luZyBpcyBkaXNhYmxlZAoKMjAxNS0xMC0wNiAxODo0NTo0MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSAgbWFrZWZpbGUuYW06IFJlbW92ZSBvYnNvbGV0ZSBBbmRyb2lkIGJ1aWxkIGNydWZ0CgkgIFRoaXMgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLgoKMjAxNS0xMC0wNiAxNDowMTowMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGZpeCB0aGUgYnVpbGQgd2l0aCBkZWJ1ZyAodHJhY2VyKSBkaXNhYmxlZAoJICBTeW5jIHRoZSBtYWNybyBkZWZpbml0aW9ucy4gVGhlIGR1bW15IGRlZmluZXMgaGFzIGFyZ3VtZW50IG1pc21hdGNoZXMuCgoyMDE1LTEwLTA2IDExOjM5OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogZml4IHRoZSBidWlsZCB3aXRoIGRlYnVnICh0cmFjZXIpIGRpc2FibGVkCgkgIFJlbW92ZSBjb21tYXMgYXQgdGhlIGVuZCBvZiB0aGUgbWFjcm9zLgoKMjAxNS0wOS0wMSAxNjozOTozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IHN0YXRzOiBhZGQgbWVzc2FnZSBzdHJ1Y3R1cmUgdG8gb3V0cHV0CgkgIFRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIGlzIG5vdCBlbm91Z2guIEZvciBleGFtcGxlLCBzdGF0ZS1jaGFuZ2UKCSAgaXMgbm90IGVub3VnaCB0byBrbm93IHRoZSB0cmFuc2l0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NDk2CgoyMDE1LTEwLTA1IDE5OjA1OjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkaW5nIHRyYWNlciBxdWFyayBpZCB0byBnc3QgaW5pdCBhbmQgZGVpbml0CgkgIEZpeGVzIGlzc3VlcyBhdCBtYWtlIGNoZWNrCgoyMDE1LTEwLTA1IDE4OjUwOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGxpYmdzdHJlYW1lcjogYWRkIHRyYWNlciBmdW5jdGlvbnMKCjIwMTUtMTAtMDUgMjE6Mjk6NDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRlc3RzOiBmaXggdGhlIHRhZyB0ZXN0CgkgIFRoZSBwcmV2aW91cyBjaGFuZ2UgKHNlZSBiZ28gIzc1NjA2OSkgd2FzIGNhdXNpbmcgdXMgdG8gZnJlZSB0aGUgc2FtZSBwb2ludGVyCgkgIG11bHRpcGxlIHRpbWVzLiBJZiB3ZSBhY3R1YWxseSBnZXQgYSBzYW1wbGUgYmFjaywgdGhlIHRlc3QgZmFpbHMsIG5vIG5lZWQgdG8KCSAgZnJlZSBhbnl0aGluZyBpbiB0aGF0IGNhc2UuCgoyMDE1LTA2LTA0IDAxOjUwOjM0ICswMjAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBmbHl0cm9uaWMucGw+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogYWRkIG1pc3NpbmcgaG9va3MKCSAgQWRkIGZvbGxvd2luZyBob29rczogZWxlbWVudC1uZXcsIGVsZW1lbnQtYWRkLXBhZCwgZWxlbWVudC1yZW1vdmUtcGFkLAoJICBiaW4tYWRkLXByZSwgYmluLWFkZC1wb3N0LCBiaW4tcmVtb3ZlLXByZSwgYmluLXJlbW92ZS1wb3N0LCBwYWQtbGluay1wcmUsCgkgIHBhZC1saW5rLXBvc3QsIHBhZC11bmxpbmstcHJlLCBwYWQtdW5saW5rLXBvc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxODcKCjIwMTUtMDMtMTMgMTg6MzE6NDAgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGdzdHN0YXRzOiBhZGQgdGhyZWFkLWlkIHRvIGxvZyBsaW5lCgoyMDE1LTAzLTEzIDEzOjEwOjQyICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogYWRkIHBhZCBxdWVyeSBob29rcwoKMjAxNS0wMS0xNSAwNjozMjo0OCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHN0cmR1cCB0aGUgcGFzc2VkIHBhcmFtZXRlcnMuCgoyMDE1LTAxLTEzIDIyOjExOjM0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcjogVXNlIEdTVF9USU1FX0FSR1Mgd2hlbiBwcmludGluZyB3aXRoIEdTVF9USU1FX0ZPUk1BVC4KCjIwMTQtMTAtMTYgMTA6NDI6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgdHJhY2luZzogdXBkYXRlIGRvY3MKCjIwMTQtMTAtMDIgMTk6NTI6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBUSU1FU1RBTVAgLT4gUFRTCgoyMDE0LTA5LTIyIDA5OjU1OjU2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjaW5nOiByZW5hbWUgdGhlIGdsb2JhbCBhcGkgdG8gZ3N0X3RyYWNpbmcKCSAgVGhpcyBtYWtlcyBpdCBtb3JlIG9idmlvdXMgd2hhdCBpcyB0aGUgYXBpIGZvciB0cmFjZXIgZWxlbWVudHMgYW5kIHdoYXQgaXMgYXBpCgkgIGZvciB0aGUgZ2xvYmFsIHN0YXRlLgoKMjAxNC0wOS0xOCAwODoyODo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogZml4IGNwdSBzdGF0cyBwcmludGluZwoJICBPbmx5IHByaW50IHRoZW0gaWYgd2UgaGF2ZSB0aGVtLiBBbHNvIHNjYWxlIHRoZW0gYnkgMTAuMCBhcyB0aGUgYXJlIGluCgkgIHBlci1taWxsZSBub3cuCgoyMDE0LTA5LTE4IDA4OjI2OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogZWxpbWluYXRlIHZhcl9hcmdzCgkgIFJlZ2lzdGVyIHRyYWNlciBob29rcyBhcyBHQ2FsbGJhY2suIFVzZSBtYWNyb3MgZm9yIGhvb2sgZGlzcGF0Y2ggYW5kIGNhc3QgdGhlCgkgIGhvb2sgZnVuY3Rpb25zIGJhY2sgdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUuCgoyMDE0LTA5LTE3IDA5OjQxOjQ2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBkb24ndCB3YXJuIG9uICIuY2xhc3MiIGxvZyBsaW5lcwoKMjAxNC0wOS0xNyAwODozODowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkgIHRyYWNlcnM6IGNvZGUgY2xlYW51cHMKCSAgTW92ZSBzdGF0aWMgdmFyaWFibGVzIHRvIGluc3RhbmNlIHZhcmlhYmxlcy4gQWRkIGZpbmFsaXplIG1ldGhvZHMuIFJlbW92ZSBjb2RlCgkgIHRoYXQgaXMgY29tbWVudGVkIG91dC4gQ2xlYW51cCBsb2NraW5nIGNvZGUuCgoyMDE0LTA5LTE1IDIyOjI3OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiB1c2UgR1F1YXJrIG9yIHN0cmluZ3MgZm9yIHRoZSBob29rIGlkCgkgIFRoaXMgd2F5IG9uZSBjYW4gZGVmaW5lIG5ldyB0cmFjaW5nIHByb2JlcyB3aXRob3V0IGNoYW5naW5nIHRoZSBjb3JlLiBXZSBhcmUKCSAgdXNpbmcgb3VyIG93biBxdWFyayB0YWJsZSwgYXMgMSkgd2Ugb25seSB3YW50IHRvIGluaXRpYWxpemUgdGhlbSBpZiB3ZSdyZQoJICB0cmFjaW5nLCAyKSB3ZSB3YW50IHRvIHNoYXJlIHRoZW0gd2l0aCB0aGUgdHJhY2Vycy4KCjIwMTQtMDktMTUgMTM6MTU6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogc2ltcGxpZnkgaG9vayBhcGkKCSAgSW5zdGVhZCBvZiBhIHNpbmdsZSBpbnZva2UoKSBmdW5jdGlvbiBhbmQgYSAnbWFzaycsIHJlZ2lzdGVyIHRvIGluZGl2aWR1YWwKCSAgaG9va3MuIFRoaXMgYXZvaWRzIG9uZSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBhbmQgYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUKCSAgaG9vayBlbnVtcy4gVGhlIG1lc3NhZ2UgZW5tcyBhcmUgbm93IHJlbmFtZWQgdG8gaG9vayBlbnVtcy4KCjIwMTQtMDktMTIgMTg6NDM6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBkcm9wIHRoZSBIb29rSWQgaGlkIGZyb20gdGhlIGludm9rZSBtZXRob2QKCSAgVGhlIE1lc3NhZ2VJZCBpcyBtb3JlIGRldGFpbGVkIGFuZCBhbnl3YXkgbmVlZGVkIHRvIGludGVycHJldCB0aGUgdmFyYXJncy4KCjIwMTQtMDktMTIgMTE6MTc6NDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IGZpeHVwIGRvYyBuYW1lIGFuZCByZW1vdmUgY29tbWVudGVkIGNvZGUKCjIwMTQtMDktMTIgMDg6NDA6MDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBhZGQgbWV0YWRhdGEgZm9yIHRoZSBsb2dnZWQgdmFsdWVzCgoyMDE0LTA5LTExIDEzOjAyOjUxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICBydXNhZ2U6IGltcHJvdmUgY3B1IGxvYWQgbWVhc3N1cmVtZW50cwoJICBHZXQgdGhlIG51bWJlciBvZiBjcHVzIGFuZCBzY2FsZSBwcm9jZXNzIGNwdS1sb2FkIGFjY29yZGluZ2x5LiBTd2l0Y2ggdGhlCgkgIGNwdWxvYWQgdG8gYmUgcGVyLW1pbGxlIHRvIGdldCBzbW9vdGhlciBncmFwaHMuIEFkZCBhIGJpdCBtb3JlIGxvZ2dpbmcgYW5kIHVzZQoJICB0aGUgX09CSkVDVCB2YXJpYW50LgoKMjAxNC0wOS0xMSAxMzowMDo1OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiByZW1vdmUgY29tbWVudGVkIGNvZGUKCjIwMTQtMDktMTAgMDg6MzM6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdHJhY2VyIGRlc2lnbgoJICBVcGRhdGUgdGhlIHRyYWNlciBldmVudCBjbGFzc2VzIHNlY3Rpb24uIEFkZCBhIHBlcmZvcm1hbmNlIHNlY3Rpb24uCgoyMDE0LTA5LTEwIDA4OjMyOjE4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHVzZSBHU1RfUFRSX0ZPUk1BVCB0byBsb2cgdGhlIHN0cnVjdHVyZQoJICBUaGlzIHdheSB3ZSBvbmx5IGV4cGFuZCB0aGUgc3RydWN0dXJlIHdoZW4gd2UncmUgbG9nZ2luZy4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgbWVhc3N1cmUgdGhlIHB1cmUgdHJhY2luZyBzZXBlcmF0ZWx5IGZyb20gdGhlIGxvZ2dpbmcuCgkgIEFsc28gYWRkIHNvbWUgY29tbWVudHMgb24gZnVydGhlciBpbXByb3ZlbWVudHMuCgoyMDE0LTA5LTEwIDA3OjU1OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgcnVzYWdlOiBpbXBsZW1lbnQgd2luZG93aW5nIG9mIGNwdWxvYWQKCSAgQWRkIGEgbG9jYWwgaGVscCB0byB0aGUgcnVzYWdlIHBsdWdpbiB0aGF0IHN1cHBvcnRzIHdpbmRvd2luZyBvZiB2YWx1ZXMuIFdlIHdhbnQKCSAgdG8gZ2VuZXJhbGl6ZSB0aGlzIGZvciB1c2UgaW4gb3RoZXIgcGx1Z2lucy4KCjIwMTQtMDktMDQgMTA6MTE6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBydXNhZ2U6IGFubm91bmNlIHRoZSBkYXRhIGZvcm1hdAoJICBSdXNhZ2Ugd2lsbCBub3cgYW5ub3VuY2Ugd2hhdCBpcyBtZWFzc3VyZXMgYW5kIGhvdyBpdCBpcyBsb2dnZWQuIFVzZSB0aGUgbmV3IGZvcm1hdCBpbiBzdGF0cy4KCSAgQ2xlYW51cCB0aGUgdGhlIGNvZGUgYW5kIG5hbWluZy4KCjIwMTQtMDctMjggMjI6MDg6NDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogaW1wcm92ZSBjcHUgbG9hZCBtZWFzc3VyZW1lbnRzCgkgIFJlbmFtZSB2YXJpYWJsZXMgZm9yIGNsYXJpdHkuIEhhbmRsZSB0aGUgaW5pdGlhbCBkaXNwYXJpdHkgYmV0d2VlbiBkZWJ1ZyB0aW1lCgkgIGFuZCB0aGUgdGltZSBhbHJlYWR5IHNwZW50IGluIHRoZSBwcm9jIGFuZCBtYWluIHRocmVhZC4KCjIwMTQtMDctMTggMDg6MDk6MzIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdHJhY2VyIGRlc2lnbgoKMjAxNC0wNy0yOCAwODo0OTozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcmtzOiByZXZlcnQgdGhlIHF1YXJrIGNoYW5nZXMsIHdlIG5vdCB1c2luZyB0aGVtIGFueW1vcmUKCjIwMTQtMDctMTggMDc6NDk6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJICB0cmFjZXI6IHNwbGl0IGludG8gdHJhY2VyIGFuZCB0cmFjZXJ1dGlscwoJICBLZWVwIHRyYWNlciBiYXNlIGNsYXNzIGluIHRyYWNlciBhbmQgbW92ZSBjb3JlIHN1cHBvcnQgaW50byB0aGUgdXRpbHMgbW9kdWxlLgoJICBBZGQgYSB1bnN0YWJsZS1hcGkgZ3VhcmQgdG8gdGhlIHRyYWNlci5oIHNvIHRoYXQgZXh0ZXJuYWwgbW9kdWxlcyB3b3VsZCBuZWVkIHRvCgkgIGFja25vd2xlZGdlIHRoZSBzdGF0dXMgYnkgc2V0dGluZyBHU1RfVVNFX1VOU1RBQkxFX0FQSS4KCjIwMTQtMDctMTYgMTg6NDg6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgZG9jczogYWRkIGd0ay1kb2MgYmxvYnMKCjIwMTQtMDItMjAgMTE6MTU6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICBsYXRlbmN5OiB0YWtlIHN0b3AgdGltZSB3aGVuIGJ1ZmZlciBpcyBoYW5kbGVkCgkgIE5vdyB3ZSBtZWFzc3VyZSB0aW1lIGZyb20gJ2JlZm9yZSBidWZmZXIgdHJhbnNmZXIgb24gc3JjJyB0byB3aGVuIHRoZSAnYnVmZmVyIGlzIHByb2Nlc3NlZCBvbiBzaW5rJy4KCjIwMTQtMDctMTUgMDk6NDk6MjMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogYWRkIGEgbG9nZ2luZyBoZWxwZXIgdG8gcmVtb3ZlIGlkZW50aWNhbCBjb3BpZXMgZnJvbSB0aGUgdHJhY2VycwoKMjAxNC0wMi0xOCAxNjoxNTo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiB0d2VhayB0aGUgZ2V0X3JlYWxfcGFkX3BhcmVudCgpCgkgIEJ5IHVzaW5nIHRoZSB3ZSBlbmRlZCB1cCBvbiB0aGUgYWN0dWFsIGVsZW1lbnQsIG5vdCB0aGUgcGFyZW50LgoKMjAxNC0wMi0xOCAxMTowNjoxMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogYWRkIGEgbmV3IGxhdGVuY3kgdHJhY2VyCgkgIEFkZCBhIG5ldyB0cmFjZXIgd2l0aCBwdXNoZXMgZXh0cmEgZXZlbnRzIHRvIG1lYXNzdXJlIHNyYy10by1zaW5rIHByb2Nlc3NpbmcgbGF0ZW5jeS4KCjIwMTQtMDItMTcgMTg6MzA6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduIGRvY3MKCSAgQWRkIG5ldyB0cmFjZXIgaWRlYS4KCjIwMTMtMTEtMjIgMTk6MTA6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiB1c2UgdGhlIHJ1c2FnZSBzdGF0cwoJICBBZGQgY3B1bG9hZCBpbmZvIGZyb20gcnVzYWdlIHRyYWNlcy4KCjIwMTMtMTEtMjAgMDg6MjI6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHJ1c2FnZTogYWRkIGEgbmV3IHJ1c2FnZSB0cmFjZXIKCSAgVGhlIHRyYWNlciBob29rcyB1cCB0byBhbGwgcHJvYmVzIGFuZCBsb2dzIHJlc291cmNlIHVzYWdlIGZpZ3VyZXMuCgoyMDE0LTA3LTE1IDEwOjIwOjIyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIGdzdC1zdGF0czogZmlsdGVyIGNvbXBsZXRlIHRocmVhZCBzZWN0aW9uIGlmIHdlIGhhdmUgbm8gcGFkcwoKMjAxMy0xMS0xOSAwODowNDozOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGltcHJvdmUgdGhlIGhhbmRsaW5nIG9mIHBhcmVudGFnZQoJICBMb2cgbmV3IG9iamVjdCBhZnRlciB3ZSBkaWQgdGhlIGNoZWNrIGZvciBwYXJlbnRzLgoKMjAxMy0xMS0xNyAxMTozNzoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogcHJpbnQgdGhyZWFkIGtleSBmb3Igc3RhdHMgYW5kIGZpbHRlciBlbXB0eSBwYWQtc2VjdGlvbnMKCjIwMTMtMTEtMTcgMTE6MTU6MzYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IHVwZGF0ZSBidWZmZXIgZmxhZ3MKCSAgUmVtb3ZlIHNvbWUgYnVmZmVyIGZsYWdzIHRoYXQgd2VyZSBsZWZ0b3ZlcnMgZnJvbSAwLjEwIGFuZCBoYW5kbGUgbmV3IDEuMCBidWZmZXIKCSAgZmxhZ3MuCgoyMDEzLTExLTA0IDIwOjExOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBhZGQgYSBzdGF0cyBmcm9udGVuZAoJICBQYXJzZSB0aGUgbG9nIGFuZCBjb2xsZWN0IGRhdGEgZnJvbSB0cmFjZXIgbWVzc2FnZXMuCgoyMDEzLTExLTE1IDA5OjM2OjIxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXI6IHVzZSB0aGUgc2FtZSB0aW1lYmFzZSBhcyB0aGUgbG9nZ2luZwoKMjAxNC0wNy0xNiAwOToyMjozNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24KCjIwMTQtMDctMTYgMDk6NDE6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIGxvZzogYWRkIHF1ZXJ5IGxvZyBjYXRlZ29yeQoKMjAxMy0xMS0wMiAxODoyNDo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiBwYXJzZSBwYXJhbWV0ZXJzCgoyMDE0LTA3LTE2IDA5OjIyOjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgbW9yZSBob29rcyBhbmQgaGFuZGxlIGl0IGluIHRoZSBwbHVnaW5zCgoyMDEzLTEwLTMwIDA4OjE5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBoYW5kbGUgYnVmZmVyIGxpc3RzCgoyMDEzLTEwLTMwIDA4OjA0OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgbG9nOiBtYWtlIHRoZSBsb2cgdHJhY2VyIG1vcmUgdmVyYm9zZSBhZ2FpbgoJICBEZWZpbmUgbG9nIGZvcm1hdHMgcGVyIG1lc3NhZ2UgdHlwZSBhbmQgcHJpbnQgZGV0YWlscy4KCjIwMTMtMTAtMjggMjE6NTk6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiB1c2UgYSBtYWNyb3MgZm9yIHRoZSBlbmFibGVkIGNoZWNrCgkgIEF2b2lkIGEgZnVuY3Rpb24gY2FsbCBhbmQgY2hlY2sgdGhlIHZhcmlhYmxlcyBmcm9tIHRoZSBtYWNyby4KCjIwMTMtMTAtMjggMjE6Mzk6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyOiB1c2UgbWFjcm9zIGZvciBob29rcwoJICBXcmFwIHRoZSBob29rIHdpdGggYSBwcmUgYW5kIHBvc3QgbWFjcm8uIFRoaXMgbG9va3MgbGVzcyBpbnRydXNpdmUgdGhhbiB0aGUKCSAgcHJldmlvdXMgdmVyc2lvbiwgYWx0aG91Z2ggaXQgaXMgYSBsaXR0bGUgbGVzcyBvcHRpbWl6ZWQuCgoyMDEzLTEwLTI4IDIxOjI4OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogcGFzcyB0aGUgdGltZXN0YW1wIGRpcmVjdGx5CgkgIEF2b2lkIHRoZSBzdHJ1Y3R1cmUgbWFzaGFsbGluZyAoYW5kIHdlaXJkIGZpZWxkIG5hbWluZykuCgoyMDEzLTEwLTI4IDA4OjA4OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHN0YXRzOiBhZGQgYSB0cmFjZXIgdGhhdCBjb2xsZWN0cyBwaXBlbGluZSBzdGF0aXN0aWNzCgkgIFRoaXMgaXMgbW9yZSBvciBsZXNzIGVxdWl2IHRvIHRoZSB0aGUgc3RhdGlzdGljcyBpbiBnc3QtdHJhY2VsaWIuCgoyMDEzLTEwLTI4IDA4OjA3OjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5oOgoJICBsb2c6IGFkZCBjYXN0IG1hY3JvCgoyMDEzLTEwLTI3IDIwOjQzOjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyOiBwYXNzIHRoZSBpbnN0YW5jZSB0byB0aGUgdm1ldGhvZAoKMjAxMy0xMC0yNyAxNzowNTo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIGRlc2lnbjogbW9yZSBwbGFubmluZwoKMjAxMy0xMC0yNyAxNzowNDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyOiBzd2l0Y2ggdG8gcXVhcmtzIGFuZCBhZGQgYW5vdGhlciBob29rIGZvciBidWZmZXIgZmxvdwoJICBVc2UgcHJlLWRlZmluZXMgcXVhcmtzIGFzIHRoaXMgd2lsbCBiZSBjYWxsZWQgcXVpdGUgb2Z0ZW4uCgoyMDEzLTEwLTI3IDEyOjQ1OjU0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcjogYWRkIHRoZSBob29rLWlkIHRvIHRoZSBpbnZva2Ugc2lnbmF0dXJlCgkgIFRyYWNlcnMgdGhhdCBzdWJzY3JpYmUgdG8gbXVsdGlwbGUgaG9va3MgY2FuIGtub3cgd2hhdCBob29rIHdhcyB1c2VkLgoKMjAxMy0xMC0yNiAyMjowNToxMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IGFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IGZhY3RvcnkKCSAgSGFuZGxlIHRyYWNlciBtb2R1bGVzLgoKMjAxMy0xMC0yNCAxNDo0Nzo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXI6IGluaXRpYWwgcHJvdG90eXBlIGZvciB0aGUgdHJhY2luZyBzdWJzeXN0ZW0KCjIwMTUtMTAtMDUgMTE6MTI6NDcgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdGVzdHMvZ3N0LWxhdW5jaDogRml4IHNhbXBsZSBtZW1vcnkgbGVhawoJICBXaGVuIHNhbXBsZSBpcyBnb3QgdXNpbmcgZ3N0X3RhZ19saXN0X2dldF9zYW1wbGVfaW5kZXgsIGl0IHNob3VsZAoJICBiZSBmcmVlJ2QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYwNjkKCjIwMTUtMTAtMDIgMjI6MTc6MDQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVXBkYXRlIEdMaWIgZGVwZW5kZW5jeSB0byAyLjQwLjAKCjIwMTUtMDgtMjAgMTY6MjE6NTkgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LWNvbXBsZXRpb24taGVscGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvcHRwLXByaW50LXRpbWVzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIGdzdHJlYW1lcjogRml4IG1lbW9yeSBsZWFrcyB3aGVuIGNvbnRleHQgcGFyc2UgZmFpbHMKCSAgV2hlbiBnX29wdGlvbl9jb250ZXh0X3BhcnNlIGZhaWxzLCBjb250ZXh0IGFuZCBlcnJvciB2YXJpYWJsZXMgYXJlIG5vdCBnZXR0aW5nIGZyZWUnZAoJICB3aGljaCByZXN1bHRzIGluIG1lbW9yeSBsZWFrcy4gRnJlZSdpbmcgdGhlIHNhbWUuCgkgIEFuZCByZXBsYWNpbmcgZ19lcnJvcl9mcmVlIHdpdGggZ19jbGVhcl9lcnJvciwgd2hpY2ggY2hlY2tzIGlmIHRoZSBlcnJvciBiZWluZyBwYXNzZWQKCSAgaXMgbm90IE5VTEwgYW5kIHNldHMgdGhlIHZhcmlhYmxlIHRvIE5VTEwgb24gZnJlZSdpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4NTEKCjIwMTUtMDktMjMgMjM6MDM6MjkgKzAyMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBVc2UgZ19zZXF1ZW5jZV9sb29rdXAgd2hlcmUgcG9zc2libGUKCSAgV2hlbiBsb29raW5nIGZvciBleGFjdCBtYXRjaGVzIGluIHRoZSBzZXF1ZW5jZSwgdGhpcyByZXN1bHRzCgkgIGluIG11Y2ggc2ltcGxlciBjb2RlIHRoYW4gd2hlbiB1c2luZyBnX3NlcXVlbmNlX3NlYXJjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTQ5OAoKMjAxNS0xMC0wMSAyMjowOTo1OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGZpeCB3cml0ZSBvdmVyIHRoZSBhcnJheSBzaXplCgkgIFRoZSAnKysnIGdvdCBpbmNpZGVudGlhbGx5IGFkZGVkIGR1cmluZyB0aGUgcmVmYWN0b3JpbmcgaW4KCSAgMmZlMzkzOWNlN2VhODRjNDVkZDkyMmU3ZjEwOTdkZDA3ZjExZmM1ZC4KCjIwMTUtMDktMzAgMTc6Mjk6MTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGNvbnRyb2xwb2ludDogY2hhbmdlIHRoZSBwYWRkaW5nIHRvIGJlIG9mIGFyY2gtaW5kZXBlbmRlbnQgc2l6ZQoJICBUaGUgZGVmYXVsdCBwYWRkaW5nIEkgaW50cm9kdWNlZCBpbiBkNGY4MWZiNGU2MmQzNGE0YzFkYWJjNjViMjNlZGU3Y2U3Njk0YzYzIGlzCgkgIGFjdHVhbGx5IG9ubHkgNCBwb2ludGVycyBhbmQgb24gMzJiaXQgcGxhdGZvcm1zIGFscmVhZHkgc21hbGxlciB0aGFuIHRoZSB1bmlvbi4KCSAgUmVwbGFjZSBpdCB3aXRoIGEgZml4ZWQgNjRieXRlIHBhZGRpbmcuIERvbid0IGFkZCB0aGUgbm9ybWFsIHBhZGRpbmcgZm9yIG5vdy4KCSAgRml4ZXMgIzc1NTgyMgoKMjAxNS0wOC0yMSAxNzo0Mjo1MiArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3RyZWFtZXItdW5pbnN0YWxsZWQ6IGFkZCBwYXRoIGZvciBPcGVuQ1YgaGFhciBjYXNjYWRlIGZpbGVzCgkgIFNvbWUgT3BlbkNWIHBsdWdpbnMgdXNlIGhhYXIgY2FzY2FkZSBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUKCSAgR1N0cmVhbWVyIHNvdXJjZXMuIFRvIGJlIGFibGUgdG8gdXNlIHRoZXNlIGZyb20gdW5pbnN0YWxsZWQsIHRoZXkgbmVlZAoJICB0byBiZSBmb3VuZCB0aHJvdWdoIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBBZGRpbmcgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBwb2ludGluZyB0byBoYWFyIGNhc2NhZGUgZmlsZXMgdG8KCSAgZ3N0LXVuaW5zdGFsbGVkLgoKMjAxNS0wOS0yOCAxNjowMTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBmaXggJ2Zvcm1hdCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIGxpdGVyYWwnIHdhcm5pbmcgd2l0aCBjbGFuZwoJICBCcm9rZSB0aGlzIHdoZW4gSSByZW1vdmVkIHRoZSBHX0dOVUNfUFJJTlRGIGluIGEgcHJldmlvdXMKCSAgY29tbWl0IHRvIGZpeCBpbmRlbnRhdGlvbiwgc2luY2UgaXQgd2FzIG5vdCByZWFsbHkgbmVlZGVkLgoJICBUdXJucyBvdXQgdW5saWtlIGdjYyBjbGFuZyB3YXJucyB0aG91Z2ggaWYgYSBub24tbGl0ZXJhbAoJICBmb3JtYXQgc3RyaW5nIGlzIHBhc3NlZCB0aGVuLiBGaXggaW5kZW50YXRpb24gZGlmZmVyZW50bHkuCgkgIGh0dHA6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0F0dHJpYnV0ZVJlZmVyZW5jZS5odG1sI2Zvcm1hdC1nbnUtZm9ybWF0CgoyMDE1LTA5LTI4IDE2OjQ1OjQ3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZml4IHRoZSBtYW51YWwgdGVzdHMgYnkgc2V0dGluZyB0aGUgcmlnaHQgZW52LXZhcnMKCjIwMTUtMDktMjggMTY6MjI6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGRpcmVjdGNvbnRyb2xiaW5kaW5nOiBmaXggZm9ybWF0dGluZwoKMjAxNS0wOS0yOCAxNjoyMTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSAgaW5kZXg6IG1hcmsgdHdvIHN0cnVjdHMgdGhhdCBkb24ndCBoYXZlIGFiaSBwYWRkaW5nCgoyMDE1LTA5LTI4IDE2OjE5OjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBjb250cm9sbGVyOiBhZGQgdGhlIG1pc3NpbmcgYWJpIHBhZGRpbmcKCSAgV2hpbGUgdGhpcyB0ZWNobmljYWxseSBpcyBhbiBhYmkgYnJlYWssIHdlIGRlY2lkZWQgdG8gZG8gdGhpczoKCSAgMSkgdGhlIHN0cnVjdCBpcyBkb2N1bWVudGVkIHRvIGJlIGludGVybmFsCgkgIDIpIHRoZSBzdHJ1Y3QgaXMgYWxsb2NlZCBhbmQgZnJlZWQgaW5zaWRlIHRoZSBsaWJyYXJ5CgkgIDMpIHRoZXJlIGFyZSBubyBwdWJsaWMgbWV0aG9kcyB0aGF0IHJlY2VpdmUgb3IgcmV0dXJuIGluc3RhbmNlcwoJICA0KSB0aGUgb25seSBjb2RlIGtub3duIHRvIHVzZSB0aGlzIHN0cnVjdCBhcmUgY2xhc3NlcyBjb250YWluZCBoZXJlCgoyMDE1LTA5LTI0IDAwOjA0OjQ4ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBiaW46IGltcGxlbWVudCBjb250ZXh0IHByb3BhZ2F0aW9uIHdoZW4gYWRkaW5nIGVsZW1lbnRzCgkgIFdoZW4gYWRkaW5nIGFuIGVsZW1lbnQgdG8gYSBiaW4gd2UgbmVlZCB0byBwcm9wYWdhdGUgdGhlIEdzdENvbnRleHQncwoJICB0by9mcm9tIHRoZSBlbGVtZW50LgoJICBUaGlzIG1vdmVzIHRoZSBHc3RDb250ZXh0IGxpc3QgZnJvbSBHc3RCaW4gdG8gR3N0RWxlbWVudCBhbmQgYWRkcwoJICBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gZ2V0IHRoZSBjdXJyZW50bHkgc2V0IGxpc3Qgb2YgR3N0Q29udGV4dCdzLgoJICBUaGlzIGRvZXMgbm90IGRlYWwgd2l0aCB0aGUgY29sbGVjdGlvbiBvZiBHc3RDb250ZXh0J3MgcHJvcGFnYXRlZAoJICB1c2luZyBHU1RfQ09OVEVYVF9RVUVSWS4gIEVsZW1lbnQgc3ViY2xhc3NlcyBhcmUgYWR2aXNlZCB0byBjYWxsCgkgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0IGlmIHRoZXkgbmVlZCB0byBwcm9wYWdhdGUgR3N0Q29udGV4dCdzCgkgIHJlY2VpdmVkIGZyb20gdGhlIGNvbnRleHQgcXVlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NzkKCjIwMTUtMDktMDcgMDk6Mzk6MzIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogYWRkIGN1YmljX21vbm8gaW50ZXJwb2xhdGlvbgoJICBUaGlzIG5ldyBtb2RlIHdvbid0IG92ZXJzaG9vdCB0aGUgbWluL21heCB5IHZhbHVlcyBzZXQgYnkgdGhlIGNvbnRyb2wtcG9pbnRzLgoJICBGaXhlcyAjNzU0Njc4CgkgIEFQSTogR1NUX0lOVEVSUE9MQVRJT05fTU9ERV9DVUJJQ19NT05PCgoyMDE1LTA5LTA3IDA5OjM3OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogcmVmYWN0b3IgY29kZQoJICBFeHRyYWN0IGNvbW1vbiBjb2RlIHRoYXQgbG9va3MgdXAgdGhlIGNvbnRyb2wtcG9pbnRzIGFyb3VuZCB0aGUgdGltZXN0YW1wLiBBZGQKCSAgc29tZSBjb21tZW50cyBmb3IgZnV0dXJlIGludmVzdGlnYXRpb24uCgoyMDE1LTA5LTA0IDE2OjM4OjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbGxlci1ncmFwaC5jOgoJICB0ZXN0cy9leGFtcGxlczogYWRkIGEgZGVtbyBmb3IgdGhlIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UgbW9kZXMKCSAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgbmV3IG1vZGVzIHRvIGJlIGFkZGVkLiBJbiBwYXJ0aWN1bGxhciBpdCBkZW1vbnN0cmF0ZXMKCSAgaG93IHRoZSBjdWJpYyBzcGxpbmVzIG92ZXJzaG9vdCB0aGUgcmFuZ2UuCgoyMDE1LTA5LTA5IDExOjU1OjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogcmVtb3ZlIHByb3h5aW5nIG9mIGFjY2VwdC1jYXBzIGRvd25zdHJlYW0KCSAgVGhlIGRlc2lnbiBpcyB0byBvbmx5IGRvIGEgbG9jYWwgY2hlY2sKCjIwMTUtMDgtMjUgMTk6Mzc6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmYWxsYmFjayB0byBjYXBzIHF1ZXJpZXMgd2l0aCBwcm94eSBwYWRzCgkgIEEgcHJveHktcGFkIHNob3VsZCBhbHdheXMgcHJveHkgdGhlIGNhcHMgcmVsYXRlZCBxdWVyaWVzCgkgIGFuZCBldmVudHMgdG8gaXRzIGRvd24gb3IgdXBzdHJlYW0gcGVlcnMgb24gdGhlIG90aGVyIHNpZGUKCSAgb2YgdGhlIGVsZW1lbnQuIEZhbGxpbmcgYmFjayB0byBhIGNhcHMgcXVlcnkgc2VlbXMgd3JvbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxMTIKCjIwMTUtMDktMjYgMTE6MDM6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1pbm9yIGRvYyBmaXhlcwoKMjAxNS0wOS0wMiAxNzo1ODozOCArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBSZXBsYWNlZCBnc3Rfc2VnbWVudF90b19wb3NpdGlvbiB3aXRoIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fcnVubmluZ190aW1lCgkgIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uIG1pZ2h0IGNhdXNlIGNvbmZ1c2lvbiwgZXNwZWNpYWxseSB3aXRoIHRoZSBhZGRpdGlvbiBvZgoJICBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lIC4gRGVwcmVjYXRlZCBnc3Rfc2VnbWVudF90b19wb3NpdGlvbgoJICBub3csIGFuZCByZXBsYWNlZCBpdCB3aXRoIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fcnVubmluZ190aW1lLgoJICBBbHNvIGFkZGVkIHVuaXQgdGVzdHMuCgoyMDE1LTA5LTAyIDE3OjM4OjI1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IEFkZGVkIHVuaXQgdGVzdHMgZm9yIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUKCjIwMTUtMDktMjUgMTU6NTc6MTYgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWU6IFJlbmFtZWQgJ3Jlc3VsdCcgdG8gJ3N0cmVhbV90aW1lJwoJICBSZW5hbWVkIHRoZSAicmVzdWx0IiB2YXJpYWJsZSB0byAic3RyZWFtX3RpbWUiIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDE1LTA5LTI1IDE1OjU2OjQ1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBBZGRlZCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lKCkKCSAgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSgpIHdpbGwgY29udmVydCBzdHJlYW0gdGltZSBpbnRvIGEKCSAgcG9zaXRpb24gaW4gdGhlIHNlZ21lbnQgc28gdGhhdCBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSgpIHdpdGggdGhhdAoJICBwb3NpdGlvbiByZXR1cm5zIHRoZSBzYW1lIHN0cmVhbSB0aW1lLiBJdCB3aWxsIHJldHVybiAtMSBpZiB0aGUgc3RyZWFtIHRpbWUKCSAgZ2l2ZW4gaXMgbm90IGluc2lkZSB0aGUgc2VnbWVudC4KCjIwMTUtMDktMDIgMTY6MzY6MzUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBSZXdvcmRpbmcgb2Ygc3RydWN0IGZpZWxkIGRlc2NyaXB0aW9ucwoJICBUaGUgbmV3IHdvcmRpbmcgbWFrZXMgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgZXhhY3RseSB3aGF0IGVhY2ggZmllbGQgb2YgdGhlCgkgIEdzdFNlZ21lbnQgc3RydWN0IHJlcHJlc2VudHMuCgoyMDE1LTA4LTMxIDE1OjM1OjExICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBNYWtlIHN1cmUgdGhhdCB0aW1lc3RhbXAgKyBkaWZmIGluIFFvUyBldmVudHMgaXMgbmV2ZXIgc21hbGxlciB0aGFuIDAKCSAgV2hlbiBhIHJ1bm5pbmctdGltZS1vZmZzZXQgaXMgc3RvcmVkIGluIHRoZSBldmVudCwgaXQgY291bGQgYmVjb21lIHNtYWxsZXIKCSAgdGhhbiAwIGFsdGhvdWdoIHRoZSBldmVudCBpcyBvdGhlcndpc2UgY29ycmVjdC4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gcGFkCgkgIG9mZnNldHMgYXJlIHVzZWQuCgkgIFRvIHByZXZlbnQgdGhpcywgd2Ugc2V0IHRoZSB0aW1lc3RhbXAgdG8gLWRpZmYsIHNvIHRoYXQgaW4gdGhlIGVuZCB0aGUgc3VtIG9mCgkgIGJvdGggaXMgZXhhY3RseSAwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MzU2CgoyMDE1LTA5LTE2IDIzOjQwOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEFkZCB0ZXN0IGZvciBjb3JyZWN0IGFic29sdXRlIFVSSSBoYW5kbGluZyBpbiBnc3RfdXJpX2Zyb21fc3RyaW5nX3dpdGhfYmFzZSgpCgkgIElmIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGFuIGFic29sdXRlIFVSSSwgdGhlIGJhc2Ugc2hvdWxkIGhhdmUgbm8gZWZmZWN0IGFuZAoJICB0aGUgc2Vjb25kIHBhcmFtZXRlciBzaG91bGQgYmUgcmV0dXJuZWQgYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUxMzQKCjIwMTUtMDktMjUgMjM6NTE6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNi4wID09PQoKMjAxNS0wOS0yNSAyMzoxNDozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjYuMAoKMjAxNS0wOS0yNSAyMjo0MToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDktMjUgMTA6MTg6MDcgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IEZpeCBlcnJvciBsZWFrIGR1cmluZyBmYWlsdXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjA3CgoyMDE1LTA5LTIxIDEzOjU4OjUxICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCByYWN5IHN0YXRlIGNoYW5nZQoJICBJdGVyYXRvciBtYXkgbmVlZCB0byBiZSByZXN5bmNlZCwgZm9yIGluc3RhbmNlIGlmIHBhZHMgYXJlIHJlbGVhc2VkCgkgIGR1cmluZyBzdGF0ZSBjaGFuZ2UuCgkgIGdvdF9lb3Mgc2hvdWxkIGJlIHByb3RlY3RlZCBieSB0aGUgb2JqZWN0IGxvY2sgb2YgdGhlIGVsZW1lbnQsIG5vdCBvZgoJICB0aGUgcGFkLCBhcyBpcyB0aGUgY2FzZSB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoZSBmdW5uZWwgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTM0MwoKMjAxNS0wOS0yMSAxNToyMjoxOSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGJpbjogZWxlbWVudDogSWdub3JlIGFjdGl2YXRlIHJlc3VsdCBmb3IgcmVtb3ZlZCBwYWRzIG9uIHN0YXRlIGNoYW5nZQoJICBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZSBhIHN0YXRlIGNoYW5nZSBtYXkgcmV0dXJuIGZhaWx1cmUgaWYgaXQgaGFzCgkgIHJlcXVlc3QgcGFkcyB0aGF0IGFyZSBkZWFjdGl2YXRlZCBhbmQgcmVtb3ZlZCAoYW5kIHRodXMgaGF2ZSBubwoJICBwYXJlbnQpIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIGVsZW1lbnQgY2hhbmdlcyBzdGF0ZSBhbmQgKGRlKWFjdGl2YXRlcwoJICBpdHMgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTM0MgoKMjAxNS0wOS0yNCAxMDoyMzoxNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZG9uJ3QgY3Jhc2ggd2hlbiBhZGRpbmcgYSBzaW5rLWhhcm5lc3Mgd2l0aG91dCBoLT5zaW5rcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU1MTEKCjIwMTUtMDktMjMgMjA6MzE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJpbnQgYnVmZmVyIFBUUyB3aGVuIHN1Ym1pdHRpbmcgYW4gaW5wdXQgYnVmZmVyCgoyMDE1LTA5LTIxIDE0OjU4OjQ2ICswOTAwICBFdW5oYWUgQ2hvaSA8ZXVuaGFlMS5jaG9pQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBidWZmZXIgbGVhayBpbiBzeW5jX3N0cmVhbXMgJiBjYWNoZV9idWZmZXJzIG1vZGUKCSAgQWZ0ZXIgZG9pbmcgZ3N0X3BhZF9wdXNoKCkgaW4gY2FzZSBvZiBzeW5jX3N0cmVhbXMgYW5kIGNhY2hlX2J1ZmZlcnMsCgkgIGlmIHRoZSBidWZmZXIgY2FuIG5vdCBiZSBrZXB0IGluIGNhY2hlLCBpdCBzaG91bGQgYmUgdW5yZWZmZWQgdG8gYXZvaWQKCSAgbWVtb3J5IGxlYWNrYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MTQxCgoyMDE1LTA5LTE5IDE2OjU3OjI2ICswNTMwICBWaWtyYW0gRnVncm8gPHZpa3JhbS5mdWdyb0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGdzdDogRG9jdW1lbnRhdGlvbiB0eXBvIGZpeCBpbiBjYXBzICYgcGFkIEFQSXMKCSAgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpICYgR1NUX1BBRF9JU19BQ0NFUFRfSU5URVJTRUNUKCkKCSAgZG9jdW1lbnRhdGlvbiB0eXBvIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTI1NwoKPT09IHJlbGVhc2UgMS41LjkxID09PQoKMjAxNS0wOS0xOCAxOTowNzoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuOTEKCjIwMTUtMDktMTggMTk6MDc6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA5LTE4IDExOjQ5OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA5LTE1IDEwOjU2OjQwICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBkb3dubG9hZGJ1ZmZlciwgYmVuY2htYXJrczogZml4IGVycm9yIGxlYWtzIGluIGZhaWx1cmUgY29kZSBwYXRocwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MDE5CgoyMDE1LTA5LTE1IDEwOjUyOjU1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEZpeCBpbmRlbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MDE5CgoyMDE1LTA5LTE1IDE4OjA1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogc3ByaW5rbGUgc29tZSBhbGxvdy1ub25lIGFuZCBvdXQgYW5ub3RhdGlvbnMgZm9yIGctaQoKMjAxNS0wOS0xNCAxMTowMToxMSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggdHlwbyBpbiBsb2cgbWVzc2FnZSB3aGVuIHRocmVhZHBvb2wgYWxsb2MgZmFpbHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDk3NQoKMjAxNS0wOS0xMSAxNzo1ODo0OCArMDMwMCAgSWdvciBSb25kYXJldiA8aWdvci5yb25kYXJldkBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBDaGVjayBmb3Igc29ja2V0cGFpcigpIGluIC1sc29ja2V0IHRvbwoJICBPbiBlLmcuIFFOWCBpdCBpcyBpbiBhbiBleHRlcm5hbCBsaWJyYXJ5LCBub3QgbGliYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDg3NQoKMjAxNS0wOS0wOSAxMzoxMDowNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZXZlcnQgImRvY3M6IE1ha2Ugc3VyZSBnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhKCkgaXMgZG9jdW1lbnRlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwZGZmZWIwMzAxOGQxMmJlNTIyYzJkOTdhYWFmODEwMjE1M2JkN2MwLgoJICBUaGUgY29tbWl0IGlzIGVycm9uZW91cyBhbmQgZG9jdW1lbnRzIHRoZSBmdW5jdGlvbiB0d2ljZS4KCjIwMTUtMDctMjMgMTI6MTg6NTEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogTWFrZSBzdXJlIGdzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEoKSBpcyBkb2N1bWVudGVkCgkgIFRoYW5rcyB0byBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+IGZvciBwb2ludGluZyB0aGlzCgkgIG91dC4KCjIwMTUtMDgtMDUgMTA6MDc6NTAgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IHJhY2UgZm9yIGdzdF9oYXJuZXNzX2VsZW1lbnRfcmVmCgkgIEluIG9yZGVyIGZvciBnc3RfaGFybmVzc19uZXdfZnVsbCB0byBiZSBNVC1zYWZlIHRoZSBpbmNyZWFzZSBhbmQKCSAgZGVjcmVhc2Ugb2YgSEFSTkVTU19SRUYgbXVzdCBiZSBNVC1zYWZlLiBUaGlzIGFsbG93cyBmb3IgY3JlYXRpbmcKCSAgbXVsdGlwbGUgaGFybmVzc2VzIGZyb20gZGlmZmVyZW50IHRocmVhZHMgd3JhcHBpbmcgdGhlIHNhbWUgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDY2MQoKMjAxNS0wOC0wNSAwOTo1OTozOSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEFsbG93LW5vbmUgZm9yIGN1c3RvbSBzdHJlc3MgaW5pdCBmdW5jCgkgIEl0IHNob3VsZCBiZSBhbGxvd2VkIHRvIG5vdCBoYXZlIGEgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgdXNlciBkYXRhCgkgIHNpbmNlIGl0J3Mgb2Z0ZW4gbm90IG5lY2Vzc2FyeTsgaXQgbWF5IGFscmVhZHkgYmUgaW5pdGlhbGl6ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ2NjEKCjIwMTUtMDktMDYgMDk6NTg6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSAgZG9jczogcmVtb3ZlIHNpZ25hbCB0aGF0IG5vIGxvbmdlciBleGlzdHMgZnJvbSBkb2NzCgoyMDE1LTA5LTA1IDExOjIwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgdHJhbnNsYXRlZCBzdHJpbmcgY2hhbmdlcwoKMjAxNS0wOS0wNSAxMToxODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGZpeCAtLWV4Y2x1ZGUgY29tbWFuZCBsaW5lIG9wdGlvbgoJICBUaGlzIGhhcyBub3Qgd29ya2VkIChhcyBpbjogY3Jhc2hlZCkgc2luY2UgMjAwNSwgc28KCSAgcGVyaGFwcyBpdCBzaG91bGQganVzdCBiZSByZW1vdmVkIGluc3RlYWQuCgoyMDE1LTA4LTMxIDEyOjA3OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTI6IFByb2Nlc3MgU0VFS0lORyBxdWVyeSIKCSAgVGhpcyBjYXVzZWQgcHJvYmxlbXMgd2l0aCBvZ2dkZW11eCB3aGVuIHF1ZXVlMiB3YXMKCSAgb3BlcmF0aW5nIGluIHF1ZXVlIG1vZGUgYW5kIHRoZSBzb3VwaHR0cHNyYyB1cHN0cmVhbQoJICBpcyBub3Qgc2Vla2FibGUgYmVjYXVzZSB0aGUgc2VydmVyIGRvZXNuJ3Qgc3VwcG9ydAoJICByYW5nZSByZXF1ZXN0cy4gSXQgd291bGQgdGhlbiBzdGlsbCBjbGFpbSBzZWVrYWJpbGl0eQoJICBhbmQgdGhlbiB0aGluZ3MgZ28gd3JvbmcgZnJvbSB0aGVyZS4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3YjBiOTNkYWZlNGFjNTQ3NTUyY2RiNjZhZGU1ZDhhYTA0MDVlN2I0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODg3CgoyMDE1LTA4LTI5IDIwOjE0OjQ0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1pc2MgYnVnZml4ZXMKCSAgMS4gR2V0IGEgbGlzdCBvZiBwYWQgdGVtcGxhdGVzIGZyb20gdGhlIGVsZW1lbnQgY2xhc3MsIG5vdCB0aGUKCSAgZmFjdG9yeS4gVGhpcyBhbGxvd3MgdXMgdG8gaW50ZXJhY3Qgd2l0aCB0ZXN0LWVsZW1lbnRzIHRoYXQgZG9lcwoJICBub3QgaGF2ZSBhIGZhY3RvcnkuCgkgIDIuIFVzZSB0aGUgcGFkX3RlbXBsYXRlX2NhcHMgaW4gY2Fwcy1xdWVyaWVzIHdoZW4gY2FwcyBpcyBub3Qgc2V0CgkgIGV4cGxpY2l0bHkgb24gdGhlIHBhZC4gTm90IGRvaW5nIHNvIGlzIHNpbXBseSB3cm9uZywgYW5kIHByb2hpYml0cwoJICBpbnRlcmFjdGlvbnMgd2l0aCBzcGVjaWFsIHRlbXBsYXRlcyB1c2VkIGZvciB0ZXN0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTkzCgoyMDE1LTA4LTI2IDA5OjI5OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgdGVzdHM6IGV2ZW50OiBmaXggYnVpbGQgZmFpbHVyZQoJICBnc3QvZ3N0ZXZlbnQuYzoyNTA6NTogZXJyb3I6IOKAmGZvcuKAmSBsb29wIGluaXRpYWwgZGVjbGFyYXRpb25zIGFyZSBvbmx5CgkgIGFsbG93ZWQgaW4gQzk5IG9yIEMxMSBtb2RlCgoyMDE1LTA4LTI0IDIxOjA0OjM3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB3ZSBkb24ndCBhZGQvcmVtb3ZlIGEgYmluIHRvL2Zyb20gaXRzZWxmCgkgIERvaW5nIHNvIHdvdWxkIGRlYWRsb2NrIGZyb20gdHJ5aW5nIHRvIGFjcXVpcmUgdGhlIG9iamVjdCBsb2NrIHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQwMzYKCjIwMTUtMDgtMjEgMTQ6Mjg6NDggLTA3MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZWNvbmZpZ3VyZSBiZWZvcmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIFRoZXJlIGV4aXN0IGNhc2VzIHdoZXJlIGEgcmVjb25maWd1cmUgZXZlbnQgd2FzIHByb3BhZ2F0ZWQgZnJvbQoJICBkb3duc3RyZWFtLCBidXQgY2FwcyBkaWRuJ3QgY2hhbmdlLiBJbiB0aGlzIGNhc2UsIHdlIHdvdWxkCgkgIHJlY29uZmlndXJlIG9ubHkgd2hlbiB0aGUgbmV4dCBidWZmZXIgYXJyaXZlcy4gVGhlIHByb2JsZW0gaXMgdGhhdAoJICBkdWUgdG8gdGhlIGFsbG9jYXRpb24gcXVlcnkgYmVpbmcgY2FjaGVkLCB0aGUgcmV0dXJuIHF1ZXJ5IHBhcmFtZXRlcnMKCSAgZW5kdXAgb3V0ZGF0ZWQuCgkgIEluIHRoaXMgcGF0Y2ggd2UgcmVmYWN0b3IgdGhlIHJlY29uZmlndXJhdGluZyBjb2RlIGludG8gYSBmdW5jdGlvbiwgYW5kCgkgIGFsb25nIHdpdGggcmVjb25maWd1cmluZyB3aGVuIGEgbmV3IGJ1ZmZlciBjb21lcyBpbiwgd2UgYWxzbyByZWNvbmZpZ3VyZQoJICB3aGVuIGEgcXVlcnkgYWxsb2NhdGlvbiBhcnJpdmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODUwCgoyMDE1LTA4LTA3IDE1OjM5OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYy10ZXN0OiBGaXggcmFjZSB0ZXN0aW5nIHNlZ21lbnQgdXBkYXRlCgkgIEFzIHRoaXMgdGVzdCBpcyB1c2luZyBhIHNob3J0IHNsZWVwIChHU1RfVVNFQ09ORCwgd2hpY2ggaXMgMTBtcwoJICBpbiBtaWNyb3NlY29uZCksIHNvbWV0aW1lcyB0aGF0IEVPUyBldmVudCBpcyByZWNlaXZlZCBiZWZvcmUgdGhlCgkgIGxvb3AgaW4gYmFzZXNyYyBoYXZlIHJ1biBfZG9fc2VlaygpIGFuZCBwdXNoZWQgdGhlIHVwZGF0ZSBzZWdtZW50LgoJICBUbyBzb2x2ZSB0aGlzIGlzc3VlLCB3ZSB3YWl0IGZvciB0aGUgaW5pdGlhbCBzZWdtZW50IChhbmQgZmx1c2ggaXQpCgkgIHRoZW4gd2Ugd2FpdCBmb3IgdGhlIHNlY29uZCBzZWdtZW50IGJlZm9yZSBzZW5kaW5nIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzM2NQoKMjAxNS0wOC0xOSAxMTo0NjowNyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGJpbjogQWRkIE5MRSB0byBHU1RfUExVR0lOX1BBVEgKCj09PSByZWxlYXNlIDEuNS45MCA9PT0KCjIwMTUtMDgtMTkgMTI6NTA6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjkwCgoyMDE1LTA4LTE5IDEyOjMzOjQxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wOC0xOSAxMToxNzoyOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wOC0xOCAxNTo0NDowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgdGFnIGxpc3Qgc3BhbSBpZiB1cHN0cmVhbSBwcm92aWRlcyBiaXRyYXRlIHRhZ3MgYWxyZWFkeQoJICBFeHBsaWNpdGx5IGtlZXAgdHJhY2sgYWdhaW4gd2hldGhlciB1cHN0cmVhbSB0YWdzIG9yIHBhcnNlciB0YWdzCgkgIGFscmVhZHkgY29udGFpbiBiaXRyYXRlIGluZm9ybWF0aW9uLCBhbmQgb25seSBmb3JjZSBhIHRhZyB1cGRhdGUKCSAgZm9yIGEgYml0cmF0ZSBpZiB3ZSBhcmUgYWN0dWFsbHkgZ29pbmcgdG8gYWRkIHRoZSBiaXRyYXRlIHRvIHRoZQoJICB0YWdsaXN0IGxhdGVyLiBUaGlzIGZpeGVzIGNvbnN0YW50IHJlLXNlbmRpbmcgb2YgdGhlIHNhbWUgdGFnbGlzdCwKCSAgYmVjYXVzZSB1cHN0cmVhbSBwcm92aWRlZCBhIGJpdHJhdGUgYWxyZWFkeSBhbmQgd2UgZGlkbid0IGFkZCBpdCwKCSAgc28gd2UgZGlkbid0IHNhdmUgdGhlICdwb3N0ZWQnIGJpdHJhdGUsIHdoaWNoIHdvdWxkIHRoZW4gaW4gdHVybgoJICBhZ2FpbiB0cmlnZ2VyIHRoZSAnYml0cmF0ZSBoYXMgY2hhbmdlZCB0b28gbXVjaCwgdXBkYXRlIHRhZ3MnCgkgIGNvZGUgcGF0aC4gRml4ZXMgdGFnIHNwYW0gd2l0aCBtNGEgZmlsZXMgZm9yIGV4YW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTcgMjI6MDY6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBicmluZyB0aGUgZG90IHN0eWxlIGEgYml0IGNsb3NlciB0byB3aGF0IHdlIHVzZSBpbiB0aGUgZG9jcwoJICBVc2Ugcm91bmQgY29ybmVycyBmb3IgYmlucyBhbmQgZWxlbWVudHMuIFB1dCBzaW5rIHBhZHMgb24gdGhlIGxlZnQgYW5kIHNyYyBwYWRzCgkgIG9uIHRoZSByaWdodCBvZiBlbGVtZW50cy4KCjIwMTUtMDgtMTUgMTg6MzA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB0YWcgaGFuZGxpbmcKCSAgSW4gMC4xMCB0aGVyZSB3ZXJlIG5vIHN0aWNreSBldmVudHMsIGFuZCBhbGwgdGFnIGV2ZW50cwoJICBzZW50IHdvdWxkIGp1c3QgYmUgbWVyZ2VkIHdpdGggdGhlIHByZXZpb3VzbHktcmVjZWl2ZWQKCSAgdGFncy4gSW4gMS54IHdlIGhhdmUgc3RpY2t5IGV2ZW50cywgYW5kIHRoZSB0YWdzIGluIHRoZQoJICB0YWcgZXZlbnQocykgc2hvdWxkIGF0IGFsbCB0aW1lcyBjYXJyeSB0aGUgY29tcGxldGUgdGFncywKCSAgc28gd2UgY2FuJ3QganVzdCBwdXNoIHNvbWUgdGFncyBhbmQgdGhlbiBqdXN0IHB1c2ggdGFncwoJICB3aXRoIGp1c3QgYml0cmF0ZXMgdG8gdXBkYXRlIHRoZSBiaXRyYXRlcywgZXRjLgoJICBJbnN0ZWFkIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgdXBzdHJlYW0gc3RyZWFtIHRhZ3MKCSAgcmVjZWl2ZWQsIG9mIHRoZSB0YWdzIHNldCBieSB0aGUgdmlkZW8gZGVjb2RlciBzdWJjbGFzcywKCSAgYW5kIHNlbmQgYW4gdXBkYXRlZCB0YWcgZXZlbnQgd2l0aCB0aGUgY29tYmluZWQgdGFncwoJICBpbmNsdWRpbmcgb3VyIG93biBiaXRyYXRlIHRhZ3MgKGlmIGFwcGxpY2FibGUpIHdoZW5ldmVyCgkgIHRoZSB1cHN0cmVhbSB0YWdzLCB0aGUgc3ViY2xhc3MgdGFncyBvciBhbnkgb2Ygb3VyIGJpdHJhdGVzCgkgIGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNiAxMDoxNTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXBhcnNlOiBhZGQgQVBJIGZvciBzdWJjbGFzcyB0byBzZXQgdGFncwoJICBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IHdlIGNhbiBkbyBwcm9wZXIgdGFnIGhhbmRsaW5nCgkgIGFsbCBhcm91bmQsIGFuZCBjb21iaW5lIHRoZSB1cHN0cmVhbSB0YWdzIHdpdGggdGhlCgkgIHRhZ3Mgc2V0IGJ5IHRoZSBzdWJjbGFzcyBhbmQgYW55IGV4dHJhIHRhZ3MgdGhlCgkgIGJhc2UgY2xhc3MgbWF5IHdhbnQgdG8gYWRkLgoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX21lcmdlX3RhZ3MoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE1IDE2OjAxOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzYXZlIHVwc3RyZWFtIHN0cmVhbSB0YWdzCgkgIFdlJ2xsIG5lZWQgdGhvc2UgbGF0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTUgMTY6Mzk6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIGNvZGUgc2ltcGxpZmljYXRpb24KCSAgVXNlIGdzdF9wYWRfcGVlcl9xdWVyeV9kdXJhdGlvbigpIGFuZCByZW1vdmUgYSBmZXcKCSAgdW5uZWNlc3NhcnkgbGV2ZWxzIG9mIGluZGVudGF0aW9uLiBSZXN0IG9mIGNvZGUgbWlnaHQKCSAgbG9va3MgYSBiaXQgcXVlc3Rpb25hYmxlLCBidXQgbGVhdmUgaXQgYXMgaXMgZm9yIG5vdy4KCjIwMTUtMDgtMTUgMTc6NTk6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQnJlYWsgc3RpY2t5IGV2ZW50IGFycmF5IGl0ZXJhdGlvbnMgaWYgdGhlIHR5cGUgaXMgYmlnZ2VyIHRoYW4gdGhlIG9uZSB3ZSBsb29rIGZvcgoJICBNaWNyb29wdGltaXphdGlvbiB3ZSBjYW4gZG8gYmVjYXVzZSB0aGUgYXJyYXkgaXMgc29ydGVkIGJ5IHR5cGUuCgoyMDE1LTA0LTI5IDE1OjQ5OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBBZGQgYSBuZXcgR1NUX1BST0JFX0hBTkRMRUQgcmV0dXJuIHZhbHVlIGZvciBwcm9iZXMKCSAgSW4gc29tZSBjYXNlcywgcHJvYmVzIG1pZ2h0IHdhbnQgdG8gaGFuZGxlIHRoZSBidWZmZXIvZXZlbnQvcXVlcnkKCSAgdGhlbXNlbHZlcyBhbmQgc3RvcCB0aGUgZGF0YSBmcm9tIHRyYXZlbGxpbmcgZnVydGhlciBkb3duc3RyZWFtLgoJICBXaGlsZSB0aGlzIHdhcyBzb21ld2hhdCBwb3NzaWJsZSB3aXRoIGJ1ZmZlci9ldmVudHMgYW5kIHVzaW5nCgkgIEdTVF9QUk9CRV9EUk9QLCBpdCB3YXMgbm90IGFwcGxpY2FibGUgdG8gcXVlcmllcywgYW5kIHdvdWxkIHJlc3VsdAoJICBpbiB0aGUgcXVlcnkgZmFpbGluZy4KCSAgV2l0aCB0aGlzIG5ldyBHU1RfUFJPQkVfSEFORExFRCB2YWx1ZSwgdGhlIGJ1ZmZlci9ldmVudC9xdWVyeSB3aWxsCgkgIGJlIGNvbnNpZGVyZWQgYXMgc3VjY2Vzc2Z1bGx5IGhhbmRsZWQsIHdpbGwgbm90IGJlIHB1c2hlZCBmdXJ0aGVyCgkgIGFuZCB0aGUgYXBwcm9wcmlhdGUgcmV0dXJuIHZhbHVlIChUUlVFIG9yIEdTVF9GTE9XX09LKSB3aWxsIGJlIHJldHVybmVkCgkgIFRoaXMgYWxzbyBhbGxvd3MgcHJvYmVzIHRvIHJldHVybiBhIG5vbi1kZWZhdWx0IEdzdEZsb3dSZXR1cm4gd2hlbiBkZWFsaW5nCgkgIHdpdGggYnVmZmVyIHB1c2guIFRoaXMgY2FuIGJlIGRvbmUgYnkgc2V0dGluZyB0aGUKCSAgR1NUX1BBRF9QUk9CRV9JTkZPX0ZMT1dfUkVUVVJOKCkgZmllbGQgYWNjb3JkaW5nbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODY0MwoKMjAxNS0wOC0xNSAxMzoyNTozNSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgZ3N0dmVyc2lvbjogQWRkIG1pc3NpbmcgaW5jbHVkZSBpbiAuaW4gZmlsZS4KCjIwMTUtMDgtMTEgMDA6MzU6MjEgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RtYWNyb3MuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICBIZWFkZXJzOiBhZGQgbWlzc2luZyBpbmNsdWRlcy4KCjIwMTUtMDgtMTUgMDY6NDE6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCB0aGUgbmV3IHBhZCBhY2NlcHQtdGVtcGxhdGUgZmxhZyB0byB0aGUgZG9jcwoKMjAxNS0wOC0xNCAyMjo0NDo1MCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogc2VjdGlvbiBlbnRyeSBtaXNzaW5nIGZvciBnc3RfZGlyZWN0X2NvbnRyb2xfYmluZGluZ19uZXdfYWJzb2x1dGUKCjIwMTUtMDgtMTQgMDg6MTQ6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogdGVzdHMgZm9yIGFjY2VwdC1jYXBzIGRlZmF1bHQgaGFuZGxpbmcKCSAgQ2hlY2sgaWYgYWxsIHRoZSBkZWZhdWx0IDQgYWNjZXB0LWNhcHMgcG9zc2liaWxpdGllcyBhcmUgd29ya2luZzoKCSAgc3Vic2V0IG9yIGludGVyc2VjdCBjaGVjayBhbmQgcXVlcnktY2FwcyBvciB0ZW1wbGF0ZSBjYXBzIGNvbXBhcmlzb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNjIzCgoyMDE1LTA4LTE0IDA3OjUxOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgR1NUX1BBRF9GTEFHX0FDQ0VQVF9URU1QTEFURQoJICBJdCB3aWxsIG1ha2UgdGhlIGRlZmF1bHQgYWNjZXB0LWNhcHMgaGFuZGxlciB1c2UgdGhlIHBhZCB0ZW1wbGF0ZQoJICBjYXBzIGluc3RlYWQgb2YgdGhlIHF1ZXJ5LWNhcHMgcmVzdWx0IHRvIGNoZWNrIGlmIHRoZSBjYXBzIGlzCgkgIGFjY2VwdGFibGUuIFRoaXMgaXMgYWxpZ25lZCB3aXRoIHdoYXQgdGhlIGRlc2lnbiBkb2NzIHNheXMgdGhlCgkgIGFjY2VwdC1jYXBzIHNob3VsZCBkbyAoYmUgbm9uLXJlY3Vyc2l2ZSkgYW5kIHNob3VsZCBiZSBmYXN0ZXIuIEl0CgkgIGlzICpub3QqIGVuYWJsZWQgYnkgZGVmYXVsdCwgdGhvdWdoLgoJICBBUEk6IEdTVF9QQURfRkxBR19BQ0NFUFRfVEVNUExBVEUKCSAgQVBJOiBHU1RfUEFEX0lTX0FDQ0VQVF9URU1QTEFURQoJICBBUEk6IEdTVF9QQURfU0VUX0FDQ0VQVF9URU1QTEFURQoJICBBUEk6IEdTVF9QQURfVU5TRVRfQUNDRVBUX1RFTVBMQVRFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM2MjMKCjIwMTUtMDgtMTQgMTE6MTA6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBjaGVjazogUmVuYW1lIHN0YXRlcyB1bml0IHRlc3QKCSAgTWFrZXMgaXQgZWFzaWVyIHRvIGRpZmZlcmVudGlhdGUgZnJvbSBvdGhlciBtb2R1bGVzIHN0YXRlcyB1bml0IHRlc3QKCjIwMTUtMDgtMTMgMTM6MDg6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZXdvcmsgYWNjZXB0LWNhcHMKCSAgQWNjb3JkaW5nIHRvIHRoZSBkZXNpZ24gZG9jczoKCSAgVGhlIEFDQ0VQVF9DQVBTIHF1ZXJ5IGlzIG5vdCByZXF1aXJlZCB0byB3b3JrIHJlY3Vyc2l2ZWx5LCBpdCBjYW4gc2ltcGx5CgkgIHJldHVybiBUUlVFIGlmIGEgc3Vic2VxdWVudCBDQVBTIGV2ZW50IHdpdGggdGhvc2UgY2FwcyB3b3VsZCByZXR1cm4KCSAgc3VjY2Vzcy4KCSAgU28gbWFrZSBpdCBhIHNoYWxsb3cgY2hlY2sgaW5zdGVhZCBvZiByZWN1cnNpdmVsbHkgY2hlY2sgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODYzNQoKMjAxNS0wOC0xMyAxMjo0NDoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIGRlYWQgY29kZQoJICBEb2Vzbid0IHNlZW0gbGlrZSBpdCBpcyBnb2luZyB0byBnZXQgYmFjayB0byBsaWZlIGFueXRpbWUgc29vbgoJICBBbHNvIHJlbW92ZXMgYSB7fSBibG9jayB0aGF0IHdhcyBsaWtlbHkgdXNlZCB0byBrZWVwIHRoZSBkZWFkCgkgIGNvZGUgYXJvdW5kLgoKMjAxNS0wOC0xMSAwODowNzo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlc3BlY3QgYWNjZXB0LWNhcHMgaW50ZXJzZWN0IGZsYWcKCSAgR3N0UGFkIGhhcyBhIGZsYWcgZm9yIHN1Z2dlc3RpbmcgaWYgdGhlIGFjY2VwdC1jYXBzCgkgIHF1ZXJ5IHNob3VsZCB1c2UgaW50ZXJzZWN0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQKCSAgc3Vic2V0IGNhcHMgb3BlcmF0aW9uIHRvIHZlcmlmeSBpZiB0aGUgY2FwcyB3b3VsZCBiZQoJICBhY2NlcHRhYmxlLgoJICBiYXNldHJhbnNmb3JtIGN1cnJlbnRseSBhbHdheXMgdXNlcyB0aGUgc3Vic2V0IGNoZWNrIGFuZAoJICB0aGlzIHBhdGNoIG1ha2VzIGl0IGhvbm9yIHRoZSBmbGFnIGZvciB1c2luZyBpbnRlcnNlY3QKCSAgaWYgaXQgaXMgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjM1CgoyMDE1LTA4LTEyIDEzOjEyOjM4ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSB1bnJlYWNoYWJsZSByZXR1cm4gc3RhdGVtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM1MzgKCjIwMTUtMDgtMTEgMTE6MDk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IGhhcm5lc3MgdGVzdCBiaW5hcnkKCjIwMTUtMDgtMTAgMTU6MzE6MzcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogYWNjZXB0IGp1c3QgYSB0aW1lIGFzIElTTyA4NjAxIHN0cmluZyBhbmQgdXNlIHRvZGF5J3MgZGF0ZSB0aGVuCgkgIElmIG5vIGRhdGUgYW5kIG9ubHkgYSB0aW1lIGlzIGdpdmVuIGluIGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21faXNvODYwMV9zdHJpbmcoKSwKCSAgYXNzdW1lIHRoYXQgaXQgaXMgInRvZGF5IiBhbmQgdHJ5IHRvIHBhcnNlIHRoZSB0aW1lLW9ubHkgc3RyaW5nLiAiVG9kYXkiIGlzCgkgIGFzc3VtZWQgdG8gYmUgaW4gdGhlIHRpbWV6b25lIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIChpZiBhbnkpLCBvdGhlcndpc2UgWiAtCgkgIGp1c3QgbGlrZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGV4aXN0aW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM0NTUKCjIwMTUtMDctMjQgMDA6NDE6NTcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBhZGQgX3NldF9mb3J3YXJkaW5nIGZ1bmN0aW9uCgkgIFRvIGJlIGFibGUgdG8gZGlzYWJsZSB0aGUgc2xpZ2h0bHkgIm1hZ2ljIiBmb3J3YXJkaW5nIG9mIHRoZQoJICBuZWNlc3NhcnkgZXZlbnRzIGJldHdlZW4gdGhlIGhhcm5lc3Nlcy4KCSAgQWxzbyBpbnRyb2R1Y2UgYSBuZXcgdGVzdC1zdWl0ZSBmb3IgR3N0SGFybmVzcywgdGhhdCBkb2N1bWVudHMgdGhlCgkgIGZlYXR1cmUsIGFuZCBzaG91bGQgaG9wZWZ1bGx5IGV4cGFuZCBpbnRvIGRvY3VtZW50aW5nIG1vc3Qgb2YgdGhlCgkgIGZlYXR1cmVzIHRoZSBoYXJuZXNzIHBvc3Nlc3Nlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mjc0NgoKMjAxNS0wOC0wOCAxNzo1OTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBmaXggcHJvdmlkZXIgbGVhawoKMjAxNS0wOC0wOCAxNToyODoxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcHJldmlvdXMgY29tbWl0CgkgIFdlIHdhbnQgdG8gZ2V0IHRoZSBjYXBzIHF1ZXJ5ICpyZXN1bHQqCgoyMDE1LTA3LTE2IDE4OjU2OjAwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZXByb3ZpZGVyOiBBZGQgbWV0aG9kIHRvIGhpZGUgZGV2aWNlcyBmcm9tIGEgcHJvdmlkZXIKCSAgQWRkIG1ldGhvZHMgdG8gYWRkL3JlbW92ZSB0aGUgcHJvdmlkZXJzIHRoYXQgc2hvdWxkIGJlIGhpZGRlbiBieSB0aGlzCgkgIHByb3ZpZGVyLiBBbHNvIG1ha2UgYSBtZXRob2QgdG8gZ2V0IGEgbGlzdCBvZiBoaWRkZW4gcHJvdmlkZXJzLgoJICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgc3lzdGVtcyBtb25pdG9yIHRoZSBzYW1lIGRldmljZXMKCSAgYW5kIHJlbW92ZSBkdXBsaWNhdGVzLgoJICBBZGQgYSBwcm9wZXJ0eSB0byBzZWUgYWxsIGRldmljZXMsIGV2ZW4gZHVwbGljYXRlIG9uZXMgZnJvbSBoaWRkZW4KCSAgcHJvdmlkZXJzLgoKMjAxNS0wOC0wOCAxNDo0Mjo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBnZXRfYWxsb3dlZF9jYXBzKCkgc2hvdWxkIGdvIHRocm91Z2ggYm90aCBwYWRzCgkgIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiB3YXMgZG9pbmcgYSBkaXJlY3QgY2FsbCB0byB0aGUgcGVlciBwYWQsCgkgIHdoaWNoIHJlc3VsdGVkIGluIHF1ZXJ5IHByb2JlcyBuZXZlciBiZWluZyBjYWxsZWQgb24gdGhlIG9yaWdpbmFsIHBhZC4KCSAgSW5zdGVhZCBvZiB0aGF0LCBnZXQgdGhlIHBlZXIgcGFkIGNhcHMgYnkgdXNpbmcgZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkKCSAgd2hpY2ggd2lsbCBjYWxsIHByb2JlcyBpbiB0aGUgZXhwZWN0ZWQgZmFzaGlvbi4KCjIwMTUtMDgtMDcgMTA6MDg6MjEgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZyZWUgY2FwcyBkdXJpbmcgZmFpbHVyZQoJICBXaGlsZSBjYWxsaW5nIGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zYW1wbGUsIGlmIHRoZXJlIGlzIGEgZmFpbHVyZQoJICBhZnRlciBjYXBzIGlzIHJlZidlZCwgdGhlbiBjYXBzIGlzIGdldHRpbmcgbGVha2VkLiBIZW5jZSBjaGVja2luZyBmb3IKCSAgY2FwcyBpbiBmYWlsOiBnb3RvIGNvbmRpdGlvbiBhbmQgdW5yZWYnaW5nIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMzMzgKCjIwMTUtMDctMjEgMTM6MzU6MzMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogQWRkIHBsdWdpbnMgdG8gdGhlIHJlZ2lzdHJ5IHdlIGFyZSBsb2FkaW5nIGFuZCBub3QgZGVmYXVsdCBvbmUKCSAgV2hlbiBydW5uaW5nIGdzdF9yZWdpc3RyeV9zY2FuX3BsdWdpbl9maWxlIHdlIHdlcmUgbG9zaW5nIHRoZQoJICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVnaXN0cnkgYmVpbmcgbG9hZGVkIGFuZCBlbmRlZCB1cCBhZGRpbmcgdGhlCgkgIHBsdWdpbiB0byB0aGUgZGVmYXVsdCByZWdpc3RyeSB3aGljaCB3YXMgbm90IGNvcnJlY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI2NjIKCjIwMTUtMDgtMDUgMTU6NTE6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE9ubHkgZHJvcCBidWZmZXIgaWYgdGhlaXIgUFRTIGlzIG91dCBvZiBzZWdtZW50CgkgIEFzIG9mIG5vdywgZXZlbiBmb3Igc3RyZWFtIGNvbXBsZXRseSBpbnNpZGUgc2VnbWVudCwgdGhlcmUgaXMgbm8KCSAgZ3VhcmFudGllZCB0aGF0IHRoZSBEVFMgd2lsbCBiZSBpbnNpZGUgdGhlIHNlZ21lbnQuIFNwZWNpZmljYWxseQoJICBmb3IgSC4yNjQgd2l0aCBCLUZyYW1lcywgdGhlIGZpcnN0IGZldyBmcmFtZXMgb2Z0ZW4gaGF2ZSBEVFMgdGhhdAoJICBhcmUgYmVmb3JlIHRoZSBzZWdtZW50LgoJICBJbnN0ZWFkIG9mIHVzaW5nIHRoZSBzeW5jIHRpbWVzdGFtcCB0byBjbGlwIG91dCBvZiBzZWdtZW50IGJ1ZmZlciwKCSAgdGFrZSB0aGUgZHVyYXRpb24gZnJvbSB0aGUgc3RhcnQvc3RvcCBwcm92aWRlZCBieSB0aGUgc3ViLWNsYXNzLCBhbmQKCSAgY2hlY2sgaWYgdGhlIHB0cyBhbmQgcHRzX2VuZCBpcyBvdXQgb2Ygc2VnbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mjc5MQoKMjAxNS0wOC0wNSAxNDowNToyNSArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZG9uJ3QgcnVuIGNvZGUgaW5zaWRlIGdfYXNzZXJ0CgkgIEV2ZW4gdGhvdWdoIGFzc2VydHMgY2FuJ3QgYmUgZGlzYWJsZWQgaW4gR3N0SGFybmVzcywgQ292ZXJpdHkgc3RpbGwKCSAgY29tcGxhaW5zIGFib3V0IHJ1bm5pbmcgY29kZSBpbnNpZGUgdGhlbS4gTW92aW5nIHRoZSBjb2RlIHRvIG91dHNpZGUgdGhlCgkgIGdfYXNzZXJ0cygpLgoJICBDSUQgIzEzMTEzMjYsICMxMzExMzI3LCAjMTMxMTMyOAoKMjAxNS0wNy0xNyAxMDoxODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlbW9uaXRvcjogZ2V0IGEgbGlzdCBvZiBjdXJyZW50bHkgbW9uaXRvcmVkIHByb3ZpZGVycwoJICBHZXQgYSBsaXN0IG9mIHRoZSBjdXJyZW50bHkgbW9uaXRvcmVkIHByb3ZpZGVycy4KCjIwMTUtMDgtMDIgMTc6Mzg6MTQgKzAyMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGludmFsaWQgdW5yZWYgYWZ0ZXIgSURMRSBwcm9iZSBvbiBub24tT0sgZmxvdyByZXR1cm4KCSAgSW4gY2FzZSB0aGVyZSBpcyBhbiBJRExFIHByb2JlIGZpcmVkIGZyb20gZ3N0X3BhZF9wdXNoX2RhdGEgYW5kIGl0CgkgIGRvZXNuJ3QgcmV0dXJuIEdTVF9GTE9XX09LLCB0aGUgY29kZSBqdW1wcyB0byB0aGUgcHJvYmVfc3RvcHBlZAoJICBsYWJlbCB3aGljaCB0cmllcyB0byB1bnJlZiB0aGUgZGF0YSBvYmplY3QuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQKCSAgdGhlIGRhdGEgb2JqZWN0IGJlbG9uZ3MgZG93bnN0cmVhbSBhbmQgbXVzdCBub3QgYmUgdG91Y2hlZC4KCSAgQnkgc2V0dGluZyBkYXRhID0gTlVMTCwgdGhlIGNvZGUgc2tpcHMgdGhpcyB1bnJlZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NTMxNTEKCjIwMTUtMDgtMDQgMjA6MDg6MDQgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCB0aGUgbmFtZSBvZiB0aGUgcGFyZW50YnVmZmVybWV0YSBkZWJ1ZyBjYXRlZ29yeS4KCSAgRG9uJ3QgdXNlICdnbGJ1ZmZlcnJlZm1ldGEnIGFzIHRoZSBkZWJ1ZyBjYXRlZ29yeSBmb3IgdGhlCgkgIHBhcmVudCBidWZmZXIgbWV0YS4KCjIwMTUtMDgtMDQgMTM6NDU6MDkgKzA5MDAgIEV1bmhhZSBDaG9pIDxldW5oYWUxLmNob2lAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG5vdCB1cGRhdGUgdXBzdHJlYW0gc2l6ZSB3aXRoIG5lZ2F0aXZlIHZhbHVlCgkgIHVwc3RyZWFtX3NpemUgY2FuIGJlIG5lZ2F0aXZlIGJ1dCBxdWV1ZS0+dXBzdHJlYW1fc2l6ZSBpcyB1bnNpZ25lZCB0eXBlLgoJICB0byBnZXQgYSBjaGFuY2UgdG8gdXBkYXRlIHF1ZXVlLT51cHN0cmVhbV9zaXplIGluIGdzdF9xdWV1ZTJfZ2V0X3JhbmdlKCkKCSAgaXQgc2hvdWxkIGtlZXAgdGhlIGRlZmF1bHQgdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMwMTEKCjIwMTUtMDgtMDQgMTk6NTk6MjggKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBSZW1vdmUgZXh0cmEgZGVidWcgc3ltYm9sIGZyb20gZXhwb3J0cwoJICBEb24ndCBleHBvcnQgdGhlIGRlYnVnIHZhcmlhYmxlIGZvciB0aGUgcGFyZW50X2J1ZmZlcl9tZXRhLgoJICBUaGlzIHdhcyBhY2NpZGVudGFsbHkgZXhwb3J0ZWQgYW5kIHNob3VsZG4ndCBiZSBwdWJsaWMKCjIwMTUtMDgtMDQgMDA6MTE6MjQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2UgR1NUX0lORk9fT0JKRUNUIGZvciBtb3JlIGRldGFpbAoJICBIZWxwcyB0byBkaXN0aWd1aXNoIG11bHRpcGxlIGZpbGVzaW5rcy4KCjIwMTUtMDctMzAgMTc6Mjk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBpbmZvOiByZW1vdmUgMC44IHRlcm1pbm9sb2d5IGZyb20gbG9nIGxldmVsIGRlc2NyaXB0aW9uCgkgIFdlIGRvbid0ICJpdGVyYXRlIiBiaW5zIG9yIHBpcGVsaW5lcyBhbnkgbW9yZS4KCjIwMTUtMDctMzAgMTI6MTc6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBmaXggYnVmZmVyIGxlYWsgaW4gdW5pdCB0ZXN0CgkgIEZpeGVzIG1ha2UgY2hlY2stdmFsZ3JpbmQKCjIwMTUtMDctMjggMjE6MTQ6MjIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgZG9jL3NlZWtmbGFnczogRml4IGNyb3NzIHJlZmVyZW5jZXMKCSAgVGhpcyBmaXhlcyBtaXNzLXVzZSBvZiBAIGluc3RlYWQgb2YgJSB0byByZWZlciB0byBlbnVtZXJhdGlvbgoJICB2YWx1ZXMuCgoyMDE1LTA3LTI4IDIyOjMwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIGEgZmV3IG1vcmUgbmV3IHN5bWJvbHMgYW5kIGRlZmluZXMKCjIwMTUtMDctMjggMTY6NTc6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGRvYy9jYXBzZmlsdGVyOiBEb2N1bWVudCBmaWx0ZXJpbmcgbW9kZXMKCSAgVGhpcyBpcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLgoKMjAxNS0wNy0yOCAxNjo1MDo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZG9jL2ZpbGVzaW5rOiBBZGQgQnVmZmVyTW9kZSBlbnVtZXJhdGlvbgoJICBUaGlzIGlzIHB1cmVseSBmb3IgZG9jdW1lbnRhdGlvbiBwdXJwb3NlLiBUaGlzIHdheSB0aGUgdmFsdWVzIHdpbGwKCSAgc2hvdyB1cCBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLgoKMjAxNS0wNy0yOCAxNTo1MDo0MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGRvYy9nc3RoYXJkbmVzczogRml4IHR5cG8gaW4gR3N0QWxsb2NhdGlvblBhcmFtcwoJICBJdCdzIG5vdCBHc3RBbGxvY2F0b3JQYXJhbXMgYnV0IEdzdEFsbG9jYXRpb25QYXJhbXMuCgoyMDE1LTA3LTI4IDE1OjQ2OjA5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgZG9jL2dzdGhhcm5lc3M6IFJlbW92ZSB1bmtub3duIHBhcmFtZXRlcgoJICBzaW5rX2VsZW5tZW50X25hbWUgaXMgbm90IGEgcGFyYW1ldGVyIG9mIGdzdF9oYXJuZXNzX2FkZF9zaW5rX2hhcm5lc3MoKQoJICBmdW5jdGlvbiwgYnV0IHN0aWxsIGl0IHNob3cgdXAgaW4gZG9jdW1lbnRhdGlvbi4KCjIwMTUtMDctMjggMTI6MTk6MDQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IE9ubHkgcmVtZW1iZXIgcHJldmlvdXMgZmlsdGVyIGNhcHMgaWYgdGhleSB3ZXJlIGFjdHVhbGx5IHVzZWQgZm9yIHNvbWV0aGluZwoJICBJZiBub2JvZHkgZXZlciBzYXcgdGhlIHByZXZpb3VzIGZpbHRlciBjYXBzLCBub3RoaW5nIGNvdWxkJ3ZlIG5lZ290aWF0ZWQgd2l0aAoJICB0aGVtIGFuZCB3ZSBjYW4ganVzdCBwcmV0ZW5kIHRoZXkgbmV2ZXIgZXhpc3RlZCBhdCBhbGwuCgoyMDE1LTA3LTI4IDEyOjE2OjEyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFdoZW4gc3dpdGNoaW5nIGNhcHMgY2hhbmdlIG1vZGVzLCBmb3JnZXQgYWxsIHByZXZpb3VzIGNhcHMKCjIwMTUtMDctMjMgMTg6MTU6MDUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmV0dXJuIEZMT1dfRkxVU0hJTkcgaWYgbmVnb3RpYXRpb24gZmFpbHMgZHVyaW5nIHNodXRkb3duCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI4MDAKCjIwMTUtMDctMjIgMTg6NTU6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZpeCBpbmRlbmRhdGlvbgoKMjAxNS0wNy0yMSAxMzoxNDo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEF2b2lkIGluY3JlYXNpbmcgcXVlcnkgcmVmZXJlbmNlCgkgIGdzdF9xdWVyeV9maW5kX2FsbG9jYXRpb25fbWV0YSgpIHJlcXVpcmVzIHRoZSBxdWVyeSB0byBiZQoJICB3cml0YWJsZSB0byB3b3JrLiBUaGlzIHBhdGNoIGVuc3VyZSBhdm9pZHMgdGFraW5nIGEgcmVmZXJlbmNlCgkgIG9uIHRoZSBxdWVyeSwgc28gd2UgY2FuIG5vdyBjaGVjayBpZiBhIGNlcnRhaW4gYWxsb2NhdGlvbiBtZXRhCgkgIGlzIHByZXNlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI2NjEKCjIwMTUtMDctMjIgMTU6Mzg6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvY3M6IGZpeCBkZXNjcmlwdGlvbiBvZiBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkKCSAgTm8gR0J5dGVzIGludm9sdmVkLgoKMjAxNS0wNy0yMSAwMDoxNzoyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBkb3Qgbm90IHJlc2V0IHBhZCBzdGF0ZXMgdG9vIGVhcmx5CgkgIFJlc2V0dGluZyB0aGUgZmx1c2hpbmcgc3RhdGUgb2YgdGhlIHBhZHMgYXQgdGhlIGVuZCBvZiB0aGUKCSAgUEFVU0VEX1RPX1JFQURZIHRyYW5zaXRpb24gd2lsbCBtYWtlIHBhZHMgaGFuZGxlIHNlcmlhbGl6ZWQKCSAgcXVlcmllcyBhZ2FpbiB3aGljaCB3aWxsIHdhaXQgZm9yIG5vbi1hY3RpdmUgcGFkcyBhbmQgbWlnaHQKCSAgY2F1c2UgZGVhZGxvY2tzIHdoZW4gc3RvcHBpbmcgdGhlIHBpcGVsaW5lLgoJICBNb3ZlIHRoZSByZXNldCB0byB0aGUgUkVBRFlfVE9fUEFVU0VEIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI2MjMKCjIwMTUtMDctMjAgMTY6MTg6MDYgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogYWRkIGZ1bmN0aW9ucyBmb3IgYWRkaW5nIHN1Yi1oYXJuZXNzZXMgZGlyZWN0bHkKCSAgQnkgaW50cm9kdWNpbmcgZ3N0X2hhcm5lc3NfYWRkX3NyY19oYXJuZXNzIGFuZCBnc3RfaGFybmVzc19hZGRfc2lua19oYXJuZXNzCgkgIHdlIGNvbGxlY3QgYWxsIHN1Yi1oYXJuZXNzIHNldHVwIGluIG9uZSBmdW5jdGlvbiwgbWFraW5nIHRoZSBwcmV2aW91cwoJICBzdWItaGFybmVzcyBjcmVhdGlvbiBmdW5jdGlvbnMgbm93IGNhbGxzIHRoZXNlIGRpcmVjdGx5LCBhbmQgbWFraW5nIGl0CgkgIG11Y2ggZWFzaWVyIChhbmQgbGVzcyBlcnJvci1wcm9uZSkgdG8gYWRkIHlvdXIgb3duIHNyYyBvciBzaW5rLWhhcm5lc3MKCSAgdXNpbmcgdGhlIG1vcmUgZ2VuZXJpYyBoYXJuZXNzLWNyZWF0aW9uIGZ1bmN0aW9ucy4KCjIwMTUtMDctMTcgMTc6NDQ6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3Qgb3ZlcnJpZGUgZ3N0X3NlZ21lbnRfZG9fc2VlaygpCgkgIFRoaXMgbGluZSBoYXMgbm8gcHVycG9zZSwgY2xlYXJseSBnc3Rfc2VnbWVudF9kb19zZWVrKCkgaXMgZG9pbmcKCSAgdGhlIHJpZ2h0IGpvYiwgYWxzbywgaGF2aW5nIHRoZSBzdGFydCB0aW1lIChhIHRpbWVzdGFtcCkgYmUgdGhhdAoJICBzYW1lIGFzIHRpbWUgKHRoZSBzdHJlYW0gdGltZSkgaXMgcXVpdGUgb2RkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA3LTE3IDE3OjQzOjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBleHRyYXBvbGF0aW9uIG9mIHNlZWtzZWdtZW50LnN0b3AKCSAgVGhlIHN0b3Agc2hhbGwgYmUgcmVsYXRpdmUgdG8gc3RhcnQgaWYgZXh0cmFwb2xhdGVkIGZyb20gdGhlCgkgIGR1cmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA3LTE2IDE4OjQ3OjIwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGRvIHN0YXJ0IGFuZCBzdG9wIG91dHNpZGUgb2YgdGhlIGxvY2sKCSAgUmVsZWFzZSB0aGUgbW9uaXRvciBsb2NrIHdoZW4gY2FsbGluZyB0aGUgcHJvdmlkZXIgc3RhcnQvc3RvcCBtZXRob2RzLgoJICBCZWNhdXNlIHdlIHJlbGVhc2UgdGhlIGxvY2sgbm93LCBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBjaGVjayB0aGUKCSAgY29va2llIGFnYWluIGFuZCBrZWVwIHRyYWNrIG9mIHN0YXJ0ZWQgYW5kIHJlbW92ZWQgcHJvdmlkZXJzLgoKMjAxNS0wNy0xNiAxODo0MzowNiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkgIGRldmljZXByb3ZpZGVyOiBzbWFsbCBjbGVhbnVwcwoJICBQcm90ZWN0IGFnYWluc3Qgd3JvbmcgYXJndW1lbnRzLgoJICBDbGVhbiB1cCB0aGUgaGVhZGVyIGZpbGUgaW5kZW50YXRpb24uCgoyMDE1LTA3LTE2IDE3OjI1OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGtlZXAgb3JkZXIgb2YgcHJvdmlkZXJzIGFuZCBkZXZpY2VzCgkgIFRoZSBkZXZpY2Vwcm92aWRlcnMgYXJlIGFkZGVkIHRvIHRoZSBhcnJheSBzb3J0ZWQgYnkgdGhlaXIgcmFuay4gTWFrZQoJICBzdXJlIHdlIGtlZXAgdGhpcyBvcmRlcmluZyB3aGVuIHJlbW92aW5nIGEgcHJvdmlkZXIuCgkgIFdlIHVzZSBfcHJlcGVuZCB0byBjb2xsZWN0IHRoZSBkZXZpY2VzLCB1c2UgZ19saXN0X3JldmVyc2UgdG8gZ2V0IHRoZQoJICBkZXZpY2VzIGluIHRoZSByaWdodCBvcmRlcjsgc29ydGVkIGJ5IHJhbmsgYW5kIGluIHRoZSBzYW1lIG9yZGVyIGFzCgkgIHJldHVybmVkIGJ5IHRoZSBwcm92aWRlci4KCjIwMTUtMDctMTYgMTc6NTA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNS0wNy0xNiAxNzo1MDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHBhZCB0ZW1wbGF0ZSBsZWFrCgoyMDE1LTA3LTE2IDE3OjEzOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBkb2NzOiBkcm9wIHJlZmVyZW5jZSB0byBzb3VyY2Vmb3JnZSBtYWlsaW5nIGxpc3QgYWRyZXNzCgoyMDE1LTA3LTE2IDE3OjUzOjQwICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGRvbid0IHJlLWVzdGFibGlzaCB0aGUgaGFybmVzcyBzaW5rIGFuZCBzcmMgcGFkcwoJICBHaXZlbiB0aGF0IHRoZSBlbGVtZW50IGhhcyB0aGUgcG9zc2liaWxpdHkgdG8gaGF2ZSBvbmUsIHRoZXkgc2hvdWxkCgkgIGFscmVhZHkgYmUgdGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0OTgKCjIwMTUtMDctMTMgMTE6MDM6MTMgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IEltcHJvdmUgZGV0ZWN0aW9uIG9mIGVsZW1lbnQgdHlwZQoJICBUaGUgZWxlbWVudCBmbGFnIGRvZXMgbm90IGluZGljYXRlIHdldGhlciBhIGJpbiBzaG91bGQgYmUgdGVzdGVkIGFzIGEKCSAgc291cmNlIG9yIGFzIGEgc2luaywgZWcuIGEgYmluIHdpdGggdGhlIHNpbmsgZmxhZyBtYXkgc3RpbGwgaGF2ZSBhCgkgIHNvdXJjZSBwYWQgYW5kIGEgYmluIHdpdGggdGhlIHNvdXJjZSBmbGFnIG1heSBoYXZlIGEgc2luayBwYWQuIEluIHRoaXMKCSAgY2FzZSBpdCBpcyBiZXR0ZXIgdG8gZGV0ZXJtaW5lIHRoZSBlbGVtZW50IHR5cGUgYnkgbG9va2luZyBhdCB0aGUKCSAgYXZhaWxhYmxlIHBhZHMgYW5kIHBhZCB0ZW1wbGF0ZXMuCgkgIEFsc28gcmVuYW1lIHNyY3BhZCBhbmQgc2lua3BhZCB3aGVyZSBpdCBhY3R1YWxseSByZXByZXNlbnRzCgkgIGVsZW1lbnRfc3JjcGFkX25hbWUgYW5kIGVsZW1lbnRfc2lua3BhZF9uYW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDkzCgoyMDE1LTA3LTEzIDExOjEwOjQ5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIHNpbmsgaGFybmVzcwoJICBGaXhlcyBpc3N1ZSB3aGVyZSBpZiBhIHNpbmsgaGFybmVzcyB3YXMgYWRkZWQgbGF0ZSB0aGUgc3RpY2t5IGV2ZW50cwoJICB3b3VsZCBub3QgYmUgZm9yd2FyZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0OTQKCjIwMTUtMDctMTYgMTI6MzY6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IG1ha2UgaGVhZGVyIG5pY2VyIHRvIHJlYWQKCjIwMTUtMDctMTYgMTA6MzY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGZ1bmN0aW9uIHRvIEFQSSBkb2NzCgoyMDE1LTA3LTE1IDE4OjIxOjEzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlOiBhZGQgZ2VuZXJpYyBzdHJ1Y3Qgd2l0aCBwcm9wZXJ0aWVzCgkgIEFkZCBhIGdlbmVyaWMgc3RydWN0dXJlIHRvIGhvbGQgYW55IGFkZGl0aW9uYWwgcHJvcGVydGllcyBhYm91dCB0aGUKCSAgZGV2aWNlLgoKMjAxNS0wNy0xNCAxMjo0NDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHR5cG8gaW4gYWxsb3ctbm90LWxpbmtlZCBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoKMjAxNS0wNy0xMyAxNDoyNDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogYnVzOiBtZW50aW9uIG1haW4gbG9vcCByZXF1aXJlbWVudCBpbiBnc3RfYnVzX2FkZF93YXRjaCgpIGRvY3MKCjIwMTUtMDMtMTggMTY6MDU6MzQgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgZnVuY3Rpb24gZ3VhcmQgZm9yIF9zZXRfbG9jaygpIGFuZCBmaXggZ3VhcmQgZm9yIF9qb2luKCkKCSAgU2hvdWxkIG9ubHkgYWNjZXNzIHRoZSBvYmplY3Qgc3RydWN0dXJlIGFmdGVyIGNoZWNraW5nCgkgIGl0J3MgdmFsaWQgaW4gZ3N0X3Rhc2tfam9pbigpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2Mzg1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzEKCjIwMTUtMDUtMTkgMTg6NTg6MTEgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBwcm90ZWN0aW9uOiBpbXBsZW1lbnQgbWV0YSB0cmFuc2Zvcm0gZnVuY3Rpb24KCSAgQ29weSB0aGUgR3N0TWV0YSBjb250ZW50cyBvdmVyIHRvIHRoZSBuZXcgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTkwCgoyMDE1LTA3LTEwIDA5OjEyOjE1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlc3RpbWF0ZSBkdXJhdGlvbiBvbiBFT1MKCSAgRm9yIGZpbGVzIHdoaWNoIGFyZSBzbWFsbGVyIHRoYW4gMS41IHNlY29uZHMsIHRoZSBkdXJhdGlvbgoJICBlc3RpbWF0aW9uIGRvZXMgbm90IGhhcHBlbi4gU28gdGhlIGR1cmF0aW9uIHdpbGwgYWx3YXlzIGJlCgkgIGRpc3BsYXllZCBhcyAwLiBVcGRhdGluZyB0aGUgZHVyYXRpb24gb24gRU9TIHdoZW4gdGhlIGVzdGltYXRpb24KCSAgaGFzIG5vdCBoYXBwZW5lZCBhbHJlYWR5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxMzEKCjIwMTUtMDctMTAgMTE6MDE6MjEgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGNoYW5nZSBsb2cgbWVzc2FnZSBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMTE2CgoyMDE1LTA3LTA5IDAwOjEyOjUxICswOTAwICBKdXN0aW4gSm95IDxqdXN0aW4uam95Ljl0bzVAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5oOgoJICBkb2NzOiBhZGQgU3RyZWFtaWREZW11eCB0byBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk4NzMKCjIwMTUtMDctMDkgMDA6MjE6NDIgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCB0byBnZXQgdmFsaWQgKGJ1ZmZlcl8pbGlzdAoJICBnZXRfbGlzdC9nZXRfYnVmZmVyX2xpc3Qgc2hvdWxkIGJlIGRvbmUgd2l0aCBidWZmZXJzIGluIGFkYXB0ZXIgcmVtYWluaW5nCgkgIHdoaWxlIHRha2VfbGlzdC90YWtlX2J1ZmZlcl9saXN0IGZsdXNoZXMgZWFjaCBidWZmZXIgb25lIGJ5IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjExNgoKMjAxNS0wNy0wOCAyMDowNjoyNyArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdW5pdCB0ZXN0IGZvciBuZXcgZ2V0XyhidWZmZXJfKWxpc3QKCjIwMTUtMDctMDggMTI6MDA6NTYgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwdXQgYnVmZmVyIGluIGEgY29ycmVjdCBzdGF0ZSBhZnRlciBnc3RfYWRhcHRlcl9nZXRfYnVmZmVyIGNhbGwKCSAgV2UgbXVzdCBtYWtlIHRoZSBidWZmZXIgd3JpdGFibGUgdG8gd3JpdGUgaXRzIFBUUyBhbmQgRFRTLCBhbmQgYWxzbwoJICByZXNldCBpdHMgZHVyYXRpb24uCgkgIFRoZSBiZWhhdmlvdXIgaXMgbm93IHRoZSBzYW1lIGFzIGJlZm9yZSBjb21taXQgYzNiY2JhZGQsIGV4Y2VwdCBtZXRhcwoJICBtaWdodCBzdGlsbCBiZSBhdHRhY2hlZCB0byB0aGUgYnVmZmVyIGV4dHJhY3RlZCBmcm9tIHRoZSBhZGFwdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMDkyCgoyMDE1LTA3LTA3IDE1OjAyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggaW5kZW50YXRpb24gYW5kIHJlcGxhY2Ugc3RyZXNzIHRlc3QgZnVuY3Rpb24gbWFjcm9zCgkgIFRoZXNlIHNjcmV3IHdpdGggaW5kZW50YXRpb24gYW5kIHNlZW0gYSBiaXQgdHJpdmlhbC4gSnVzdCBjb3B5J24ncGFzdGUuCgoyMDE1LTA3LTA3IDEwOjQ2OjQ4ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogdHJhbnNmb3JtX2Z1bmM6IHJldHVybiBGQUxTRSBpZiBub3Qgc3VwcG9ydGVkIG9yIGZhaWxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNzc4CgoyMDE1LTA3LTA3IDExOjUzOjA3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZWZhY3RvciBhbmQgYWRkIHRlc3RzIHVzaW5nIEdzdEhhcm5lc3MKCSAgV3JpdGluZyBhIHRlc3QgZm9yIHVuc2NoZWR1bGluZyB0aGUgZ3N0X2Nsb2NrX2lkX3dhaXQgaW5zaWRlIHRoZQoJICBpZGVudGl0eSBlbGVtZW50LCBmb3VuZCBhbiBpbnZhbGlkIHJlYWQsIGNhdXNlZCBieSByZW1vdmluZyB0aGUgY2xvY2staWQKCSAgd2hlbiBjYWxsaW5nIF91bnNjaGVkdWxlIGluc3RlYWQgb2YgbGV0dGluZyB0aGUgY29kZSBjYWxsaW5nIF93YWl0IHJlbW92ZQoJICB0aGUgY2xvY2staWQgYWZ0ZXIgYmVpbmcgdW5zY2hlZHVsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIwNTUKCjIwMTQtMDQtMTIgMTk6NDg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtYWtlIHN1cmUgZ19hc3NlcnQoKSBzdGF0ZW1lbnRzIGFyZSBhbHdheXMgYWN0aXZlCgkgIFdlIGhhdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyBpbnNpZGUgZ19hc3NlcnQoKXMsIHNvIG1ha2UKCSAgc3VyZSB0aG9zZSBhcmUgYWx3YXlzIGVuYWJsZWQgaGVyZSAodGhleSBtaWdodCBvdGhlcndpc2UKCSAgZ2V0IGRpc2FibGVkIGZvciByZWxlYXNlIGJ1aWxkcykuCgoyMDE1LTA3LTA3IDAwOjU2OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IHJlbmFtZSBHc3RIYXJuZXNzUHJlcGFyZUJ1ZmZlciAtPiBHc3RIYXJuZXNzUHJlcGFyZUJ1ZmZlckZ1bmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkxNgoKMjAxNS0wNy0wNyAwMDo1Mzo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBkb2NzOiBhZGQgR3N0SGFybmVzcyB0byBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5MTYKCjIwMTMtMTItMTYgMTA6NDc6NDcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgY2hlY2s6IEFkZCBHc3RIYXJuZXNzIGNvbnZlbmllbmNlIEFQSSBmb3IgdW5pdCB0ZXN0cwoJICBodHRwOi8vZ3N0Y29uZi51YmljYXN0LnR2L3ZpZGVvcy9nc3RoYXJuZXNzLWFnYWluLWEtZm9sbG93LXVwLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxOTE2CgoyMDE1LTA3LTA2IDA5OjI2OjU4ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnNlIHBsYXliYWNrIGluIHB1bGwgbW9kZQoJICByaWdodCBub3cgcmV2ZXJzZSBwbGF5YmFjayBpcyBkaXNhYmxlZCBpbiBwdWxsIG1vZGUuCgkgIGVuYWJsaW5nIHRoZSBjb2RlIGZvciB0aGUgc2FtZSBhbmQgY2hhbmdpbmcgYSBiaXQgb2YgbG9naWMKCSAgdG8gbWFrZSByZXZlcnNlIHBsYXliYWNrIHdvcmsuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDYtMjAgMDg6MzM6MjYgKzA5MDAgIFZpbmVldGggVCBNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgcmV2ZXJzZSBwbGF5YmFjayB0ZXN0IGluIHB1bGwgbW9kZQoJICBhZGQgdGVzdCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBpbiBwdWxsIG1vZGUgYW5kIGNvbXBhcmUKCSAgdGhlIGJ1ZmZlcnMgYmVpbmcgcmVjZWl2ZWQgaW4gc2luayBjaGFpbiB0byBtYWtlIHN1cmUKCSAgdGhlIHBsYXliYWNrIGlzIGFsbHJpZ2h0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDctMDYgMTQ6MzE6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBSZXZlcnQgInNjcmlwdHM6IEFsbG93IHBhc3NpbmcgbWFrZSBmbGFncyB0byBnaXQtdXBkYXRlLnNoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGFiNWZkZDcyMTI5ZWE2MWU4ZGZmNTFjZGMwYWZjY2NhYzAzZWJjMmIuCgkgIFdlIGNhbiB1c2UgdGhlIE1BS0VGTEFHUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBwYXNzIG9wdGlvbnMgdG8gbWFrZSwKCSAgc28gYXZvaWQgYWRkaW5nIGFub3RoZXIgbWVjaGFuaXNtIHRoYXQgY291bGQgYmUgY29uZnVzaW5nLgoKMjAxNS0wNy0wNiAxMToxNjoyNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQ2xhcmlmeSBwYWQgcHJvYmUgcmV0dXJuIHR5cGUgZG9jdW1lbnRhdGlvbgoKMjAxNS0wNy0wMiAxNDozMjoyMSArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFNob3VsZG4ndCBkcm9wIGJ1ZmZlciB3aGVuIHN5bmM9ZmFsc2UKCSAgU2hvdWxkbid0IGRyb3AgYnVmZmVyIHdoZW4gc3luYz1mYWxzZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxODE5CgoyMDE1LTA3LTA2IDExOjI1OjUwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogQWxsb3cgcGFzc2luZyBtYWtlIGZsYWdzIHRvIGdpdC11cGRhdGUuc2gKCSAgTW9zdGx5IGFkZGluZyB0aGlzIGZvciBhZGQgYSAtak4gYXMgYXBwcm9wcmlhdGUgd2hpbGUgYnVpbGRpbmcuCgoyMDE1LTA1LTMwIDE0OjI3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYXZvaWQgc2xpY2UgYWxsb2NzL2ZyZWVzIGZvciBlYWNoIGl0ZW0KCSAgTWljcm9vcHRpbWlzYXRpb246IExldCBHc3RRdWV1ZUFycmF5IHN0b3JlIG91cgoJICBpdGVtIHN0cnVjdC4gVGhhdCB3YXkgd2UgZG9uJ3QgaGF2ZSB0byBhbGxvYy9mcmVlCgkgIHRlbXBvcmFyeSBRdWV1ZUl0ZW0gc2xpY2VzIGZvciBldmVyeSBpdGVtIHdlIHdhbnQKCSAgdG8gcHV0IGludG8gdGhlIHF1ZXVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTQ5CgoyMDE1LTA1LTMwIDEzOjA3OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHF1ZXVlYXJyYXk6IGFsbG93IHN0b3Jpbmcgb2Ygc3RydWN0cyBpbiBhZGRpdGlvbiB0byBwb2ludGVycwoJICBUaGlzIHdheSB3ZSBkb24ndCBoYXZlIHRvIGFsbG9jYXRlL2ZyZWUgdGVtcG9yYXJ5IHN0cnVjdHMKCSAgZm9yIHN0b3JpbmcgdGhpbmdzIGluIHRoZSBxdWV1ZSBhcnJheS4KCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfbmV3X2Zvcl9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wdXNoX3RhaWxfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcGVla19oZWFkX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3BvcF9oZWFkX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X2Ryb3Bfc3RydWN0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE0OQoKMjAxNS0wNy0wMyAyMTo1Nzo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjc0YjJkZiB0byA5YWVkMWQ3CgoyMDE1LTA2LTE5IDAwOjA1OjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHBhZDogRW5mb3JjZSBORUVEX1BBUkVOVCBmbGFnIGFsc28gZm9yIGNoYWluCgkgIFRoZSBjaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSBwYXJlbnQgaW4gdGhlIHByZXNlbmNlIG9mCgkgIHRoZSBORUVEX1BBUkVOVCBmbGFnIHdhcyBtaXNzaW5nIGZvciB0aGUgY2hhaW4gZnVuY3Rpb24uIEFsc28ga2VlcAoJICBhIHJlZiBvbiB0aGUgcGFyZW50IGluIGNhc2UgdGhlIHBhZCBpcyByZW1vdmVkIG1pZC1jaGFpbi4KCjIwMTUtMDctMDMgMTU6NTU6MDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgdHdvIG1pc3NpbmcgZWxlbWVudHMKCSAgQ29uY2F0IHdhcyBub3QgbGlua2VkIGFuZCBzdHJlYW1pZGRlbXV4IHdhcyBtaXNzaW5nLgoKMjAxNS0wNy0wMyAxMjozNzo1NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGRvY3M6IGFub3RoZXIgc3dlZXAgY2Fub25pY2FsaXppbmcgdGhlIHBsdWdpbiBkb2NzIHNlY3Rpb25zIGZpbGUKCSAgVXNlIHVuZGVyc2NvcmVzIGZvciBjYXBzZmlsdGVyIG1hY3Jvcy4gQ29ycmVjdCB0aGUgdHlwZS1uYW1lIGZvciBmYWtlc3JjCgkgIGlmIHdlIGV2ZXIgaW1wbGVtZW50IHRoZSBlbnVtLgoKMjAxNS0wNy0wMyAxMTo0NToxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIGRvY3M6IG9yZGVyIGFuZCBjYW5vbmljYWxpemUgdGhlIC1zZWN0aW9ucy50eHQgZmlsZQoJICBIYXZlIGFsbCBzZWN0aW9ucyBpbiBhbHBoYWJldGljYWwgb3JkZXIuIEFsc28gbWFrZSB0aGUgbWFjcm8gb3JkZXIgY29uc2lzdGVudC4KCSAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBnZW5lcmF0aW5nIHRoZSBmaWxlLiBSZW1vdmUgR0VUX0NMQVNTIG1hY3JvIGZvcgoJICB0eXBlZmluZSBlbGVtZW50LCBzaW5jZSBpdCBpcyBub3QgdXNlZCBhbmQgdGhlIGhlYWRlciBpcyBub3QgaW5zdGFsbGVkLgoKMjAxMy0xMi0xNiAxMToyNDoxNyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogQWRkIG1pc3NpbmcgZmllbGQgaW5pdGlhbGl6ZXJzIHRvIEdzdE1hcEluZm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTg4MQoKMjAxNS0wNy0wMiAxNToxMDo0MyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmUgYWx3YXlzLXRydWUgY2hlY2sKCSAgZXZlbnQgY2FuJ3QgYmUgTlVMTCwgaXQgaGFzIGJlZW4gZGVyZWZlcmVuY2VkIGJ5IEdTVF9FVkVOVF9UWVBFICgpLCBhbmQgbm8KCSAgY2FzZSBmcmVlcyB0aGUgcG9pbnRlci4gUmVtb3ZlIHVubmVjZXNzYXJ5IGNoZWNrIHdoaWNoIHdpbGwgYWx3YXlzIGJlIFRydWUuCgkgIENJRCAjMTMwODk1NQoKMjAxNS0wNy0wMSAxMDo1MDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IEFsc28gY29weSBQT09MIG1ldGFzIGFuZCBtYWtlIHN1cmUgdG8gY29weSBvdmVyIG1ldGFzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycwoJICBQT09MIG1ldGEganVzdCBtZWFucyB0aGF0IHRoaXMgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgdGhlIG1ldGEgaXMgcmVsYXRlZCB0byBhCgkgIHBvb2wsIGEgY29weSBzaG91bGQgYmUgbWFkZSB3aGVuIHJlYXNvbmFibGUgYW5kIHRoZSBmbGFnIHNob3VsZCBqdXN0IG5vdCBiZQoJICBzZXQgaW4gdGhlIGNvcHkuCgoyMDE1LTA3LTAxIDEwOjQ1OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IEFsc28gY29weSBQT09MIG1ldGFzIGFuZCBtYWtlIHN1cmUgdG8gY29weSBvdmVyIG1ldGFzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycwoJICBQT09MIG1ldGEganVzdCBtZWFucyB0aGF0IHRoaXMgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgdGhlIG1ldGEgaXMgcmVsYXRlZCB0byBhCgkgIHBvb2wsIGEgY29weSBzaG91bGQgYmUgbWFkZSB3aGVuIHJlYXNvbmFibGUgYW5kIHRoZSBmbGFnIHNob3VsZCBqdXN0IG5vdCBiZQoJICBzZXQgaW4gdGhlIGNvcHkuCgoyMDE1LTA3LTAxIDEwOjM2OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IERvbid0IGNvcHkgIm1lbW9yeSIgbWV0YXMgdW5jb25kaXRpb25hbGx5CgkgIERvbid0IGNvcHkgbWVtb3J5IG1ldGFzIGlmIHdlIG9ubHkgY29waWVkIHBhcnQgb2YgdGhlIGJ1ZmZlciwgZGlkbid0CgkgIGNvcHkgbWVtb3JpZXMgb3IgbWVyZ2VkIG1lbW9yaWVzLiBJbiBhbGwgdGhlc2UgY2FzZXMgdGhlIG1lbW9yeQoJICBzdHJ1Y3R1cmUgaGFzIGNoYW5nZWQgYW5kIHRoZSBtZW1vcnkgbWV0YSBiZWNvbWVzIG1lYW5pbmdsZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNzEyCgoyMDE1LTA3LTAxIDEwOjI1OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBSZXZlcnQgImJ1ZmZlcjogRG9uJ3QgY29weSBQT09MRUQgYW5kIG1lbW9yeSBtZXRhZGF0YSB1bmNvbmRpdGlvbmFsbHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2EwOGZhNWVjNDgwNGYxMDRlOWFhOWY0NTgzMjJmNmViNDlhN2U0OS4KCjIwMTUtMDYtMzAgMTM6Mzg6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRG9uJ3QgY29weSBQT09MRUQgYW5kIG1lbW9yeSBtZXRhZGF0YSB1bmNvbmRpdGlvbmFsbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTcxMgoKMjAxNS0wNi0zMCAxMToxODoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXNlIG5ldyBnc3RfYWRhcHRlcl9nZXRfYnVmZmVyKCkgQVBJIGluc3RlYWQgb2YgZ3N0X2FkYXB0ZXJfbWFwKCkKCSAgVGhpcyBwcmVzZXJ2ZXMgR3N0TWV0YSBwcm9wZXJseSB1bmxlc3MgdGhlIHN1YmNsYXNzIGRvZXMgc3BlY2lhbCB0aGluZ3MuIEl0J3MKCSAgZW5vdWdoIHRvIG1ha2UgaDI2NHBhcnNlJ3Mgc3RyZWFtLWZvcm1hdC9hbGlnbm1lbnQgY29udmVyc2lvbiBwYXNzIHRocm91Z2gKCSAgbWV0YXMgYXMgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMzg1CgoyMDE1LTA2LTMwIDExOjExOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkZCBnZXQgdmFyaWFudHMgb2YgdGhlIGJ1ZmZlciBiYXNlZCB0YWtlIGZ1bmN0aW9ucwoJICBNYWluIGRpZmZlcmVuY2UgdG8gZ3N0X2FkYXB0ZXJfbWFwKCkgZm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMgaXMgdGhhdAoJICBHc3RNZXRhIG9mIHRoZSBidWZmZXJzIHdpbGwgYmUgcHJlc2VydmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMzg1CgoyMDE1LTA2LTI5IDE3OjAzOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IENvcHkgb3ZlciBHc3RNZXRhIGZyb20gdGhlIGlucHV0IGJ1ZmZlcnMgdG8gdGhlIG91dHB1dAoJICBBbGwgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEgR3N0QnVmZmVyIG9yIGEgbGlzdCBvZiB0aGVtIHdpbGwgbm93IGNvcHkKCSAgYWxsIEdzdE1ldGEgZnJvbSB0aGUgaW5wdXQgYnVmZmVycyBleGNlcHQgZm9yIG1ldGEgd2l0aCBHU1RfTUVUQV9GTEFHX1BPT0xFRAoJICBmbGFnIG9yICJtZW1vcnkiIHRhZy4KCSAgVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBleGlzdGluZyBiZWhhdmlvdXIgdGhhdCB0aGUgY2FsbGVyIGNhbid0IGFzc3VtZQoJICBhbnl0aGluZyBhYm91dCB0aGUgYnVmZmVyIGZsYWdzLCB0aW1lc3RhbXBzIG9yIG90aGVyIG1ldGFkYXRhLiBBbmQgaXQncwoJICBhbHNvIHRoZSBzYW1lIHRoYXQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfZmFzdCgpIGRpZCBiZWZvcmUsIGFuZCB3aGF0CgkgIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkgZGlkIGlmIHBhcnQgb2YgdGhlIGZpcnN0IGJ1ZmZlciBvciB0aGUgY29tcGxldGUKCSAgZmlyc3QgYnVmZmVyIHdhcyByZXF1ZXN0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIzODUKCjIwMTUtMDYtMjkgMjA6Mjc6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBJbml0IGZ1bmN0aW9uIGNhbiB0YWtlIGEgTlVMTCBpbnRlcmZhY2VzIGFycmF5CgoyMDE1LTA2LTI5IDEzOjU3OjExICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGNhcHM6IGZpeCB0ZXN0X2ludGVyc2VjdF9mbGFnc2V0IGZhaWx1cmUKCSAgdGVzdF9pbnRlcnNlY3RfZmxhZ3NldCBmYWlscyBiZWNhdXNlIHdoZW4gY2FwcyBpcyBiZWluZwoJICBjcmVhdGVkLCBmbGFncyBhbmQgbWFzayBhcmUgYmVpbmcgY2FzdCB0byB1aW50NjQgd2hpbGUKCSAgdGhleSBzaG91bGQgYmUgdWludC4gVGhpcyByZXN1bHRzIGluIGludmFsaWQgbWVtb3J5IGFjY2VzcwoJICBvciBhIHNlZ2ZhdWx0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNjI4CgoyMDE1LTA2LTI5IDE0OjIyOjQ2ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogRml4IEdTVF9WQUxJREFURV9QTFVHSU5fUEFUSAoJICBJdCBtb3ZlZCByZWNlbnRseQoKMjAxNS0wNi0yOSAxMzo1ODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBGaXggdXAgZG9jdW1lbnRhdGlvbiBvZiB0cmFuc2Zvcm1fbWV0YSB2ZnVuYwoJICBCeSBkZWZhdWx0IHdlIGNvcHkgYWxsIG1ldGFzIHRoYXQgaGF2ZSBubyB0YWdzLgoKMjAxNS0wNi0yOSAxMDo0MToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJICBkaXJlY3Rjb250cm9sYmluZGluZzogZml4IEFCSSBicmVhawoJICBTdHJ1Y3R1cmUgc2l6ZSB3YXMgaW5jcmVhc2VkIHdpdGhvdXQgYWRqdXN0bWVudCBvZiB0aGUgcGFkZGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTYyMgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTAyCgoyMDE1LTAzLTE5IDE1OjU1OjE0ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZ3VhcmQgYWdhaW5zdCBOVUxMIHRhc2sgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzOQoKMjAxNS0wNS0xNCAxMTo0ODo0NSArMDIwMCAgTWlndWVsIFBhcsOtcyBEw61heiA8bXBhcmlzZGlhekBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJICBmdW5uZWw6IGFkZCAiZm9yd2FyZC1zdGlja3ktZXZlbnRzIiBwcm9wZXJ0eQoJICBJdCBpcyB1c2VmdWwgdG8gYXZvaWQgc2VuZGluZyBzdGlja3kgZXZlbnQgb24gc3RyZWFtIGNoYW5nZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzMTUKCjIwMTUtMDYtMjUgMDA6MDQ6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNS4yID09PQoKMjAxNS0wNi0yNCAyMjo0OToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuMgoKMjAxNS0wNi0yNCAyMjo0NTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDYtMjIgMjM6Mzc6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZ3N0dXRpbHM6IGZpeCB3cm9uZyBkZXNjcmlwdGlvbiBvZiB0ZXN0IGVsZW1lbnQKCSAgSXQgaXMgYSBmYWtlc2luayB3aXRoIHJlcXVlc3QgcGFkcywgbm90IGEgc291cmNlCgoyMDE1LTA2LTI0IDE1OjM1OjE2ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEZpeGVkIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhlIHBvb2wgdmFyaWFibGUgd2FzIHVudXNlZCB3aGVuIGJ1aWRsaW5nIHdpdGggZGVidWcgZGlzYWJsZWQuCgoyMDE1LTA2LTI0IDExOjEzOjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9odS5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wNi0yNCAxMToxMjowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxNS0wNi0yNCAxNDoxOTowNCArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBuZWVkIHRvIGRlZXAtY29weSBsYXN0IGJ1ZmZlciBsaXN0IGluIGRyYWluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE0MjAKCjIwMTUtMDYtMjQgMTA6NTI6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBXYXJuIGlmIGNvcHlpbmcgYSBidWZmZXIgZmFpbHMgaW4gZ3N0X2J1ZmZlcl9saXN0X2NvcHlfZGVlcCgpCgoyMDE1LTA2LTI0IDE0OjE4OjQ3ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgbmV3IGFwaSBnc3RfYnVmZmVyX2xpc3RfY29weV9kZWVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE0MjAKCjIwMTUtMDYtMjMgMTY6NTg6NTYgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RjaGVjazogUHJpbnQgbmV3bGluZSBpbiBtZXNzYWdlIGhhbmRsZXIKCSAgVGhlIG1lc3NhZ2UgaGFuZGxlciBpcyBzdXBwb3NlZCB0byBwcmludCBhIG5ld2xpbmUgYWZ0ZXIgdGhlIG1lc3NhZ2UKCSAganVzdCBsaWtlIHRoZSBkZWZhdWx0IG1lc3NhZ2UgaGFuZGxlci4KCjIwMTUtMDYtMTIgMTY6NTQ6MzIgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSGFuZGxlIGRpZmZlcmVudCBkdXJhdGlvbiB0cmFjayBzZWxlY3Rpb24KCSAgU3VwcG9ydCB0cmFjayBzd2l0Y2ggZnJvbSBFT1MgdHJhY2sgdG8gbm9uLUVPUyBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3NjEKCjIwMTUtMDYtMTIgMTY6NTI6NDYgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2xlYXIgRU9TIGZsYWcgYWZ0ZXIgcmVjZWl2ZWQgU1RSRUFNX1NUQVJUIGV2ZW50CgkgIENsZWFyIEVPUyBmbGFnIGFmdGVyIHJlY2VpdmVkIFNUUkVBTV9TVEFSVCBldmVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzYxCgoyMDE1LTA2LTIyIDE0OjMwOjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGdzdHV0aWxzOiBhZGQgdGVzdHMgZm9yIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZAoJICBBZGRzIHRlc3RzIGZvciBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQgZm9yIHdoZW4gaXQgaGFzIHRvCgkgIHJlcXVlc3QgcGFkcy4KCSAgTm90ZSB0aGF0IHRoZXNlIHRlc3RzIGRvbid0IGNvdmVyIHRoZSBjYXNlIHdoZW4gaXQgaGFzIHRvIHJlcXVlc3QKCSAgYSBwYWQgdGhhdCBhbHJlYWR5IGV4aXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTIzNQoKMjAxNS0wNi0xOSAxNTo0Njo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgY2FwcyB3aGVuIGdldHRpbmcgYSBjb21wYXRpYmxlIHBhZCBieSB0ZW1wbGF0ZQoJICBEbyBub3QgaWdub3JlIHRoZSBjYXBzIGFyZ3VtZW50IHdoZW4gcmVxdWVzdGluZyBhIHBhZCBieSB0ZW1wbGF0ZS4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaGFybWZ1bCB3aGVuIHRoZSBwYWQgY2FwcyBxdWVyeSBieSBkZWZhdWx0CgkgIHJldHVybnMgQU5ZIHNvIGl0IHdpbGwgbWF0Y2ggdGhlIGZpcnN0IHRlbXBsYXRlIGluc3RlYWQgb2YgdGhlCgkgIG9uZSB0aGF0IGFjdHVhbGx5IGludGVyc2VjdHMgd2l0aCB0aGUgY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTIzNQoKMjAxNS0wNi0yMyAwMDoxNDozMCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIGdzdHNhbXBsZS5oOiBJbmNsdWRlIGdzdGJ1ZmZlcmxpc3QuaCBub3cgdGhhdCBpdCB1c2VzIEdzdEJ1ZmZlckxpc3QKCjIwMTUtMDYtMTcgMTY6MTI6MTMgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogd2hlbiByZWxlYXNpbmcgcGFkLCBzZW5kIEVPUyBhcHByb3ByaWF0ZWx5LgoJICBQcmV2aW91c2x5LCBjb25jYXQgc2VudCBhbiBFT1MgaWYgdGhlcmUgd2FzIGEgbmV4dCBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTExMDcKCjIwMTUtMDYtMTYgMTY6MTQ6MTggKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0Lmg6CgkgIGNvbmNhdDogQWRkIGFkanVzdC1iYXNlIHByb3BlcnR5CgkgIFRoaXMgZGlzYWJsZXMgdGhlIHNlZ21lbnQuYmFzZSBhZGp1c3RtZW50cywgd2hpY2ggaXMgdXNlZnVsIGlmIGRvd25zdHJlYW0KCSAgdGFrZXMgY2FyZSBvZiBiYXNlIGFkanVzdG1lbnRzIGFscmVhZHkgKGV4YW1wbGU6IGEgY29tYmluYXRpb24gb2YgY29uY2F0CgkgIGFuZCBzdHJlYW1zeW5jaHJvbml6ZXIpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEwNDcKCjIwMTUtMDYtMjIgMTQ6MDQ6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVbnNldCB0aGUgbGFzdCBidWZmZXIgbGlzdCBpZiB3ZSBvbmx5IGdvdCBhIGJ1ZmZlcgoJICBBbHNvIHJlbWVtYmVyIGFueSBwcmVyb2xsIGJ1ZmZlciBsaXN0LgoKMjAxNS0wNi0yMiAxMzozMzoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzYW1wbGU6IEFkZCBuZXcgQVBJIHRvIHRoZSBkb2NzCgoyMDE1LTA2LTIyIDIwOjAyOjU1ICswOTAwICBIeXVuanVuIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGVuYWJsZSB0byBnZXQgbGFzdCBzYW1wbGUgaW5jbHVkaW5nIGJ1ZmZlciBsaXN0IGlmIG5lZWRlZAoJICBJbiBjYXNlIG9mIGEgYnVmZmVyIGxpc3QgcmVuZGVyaW5nLCBsYXN0LXNhbXBsZSBpcyBub3QgdXBkYXRlZC4KCSAgSXQgbmVlZHMgdG8gYmUgdXBkYXRlZCBhbmQgZW5hYmxlIHRvIGdldCBidWZmZXIgbGlzdCBmcm9tIGxhc3Qtc2FtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMDI2CgoyMDE1LTA2LTIyIDE5OjM1OjQwICswOTAwICBIeXVuanVuIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IGFkZCBnc3Rfc2FtcGxlX3NldC9nZXRfYnVmZmVyX2xpc3QgYXBpcwoJICBBbGxvd2VkIHRvIHNldC9nZXQgYnVmZmVyIGxpc3QgdG8gc2FtcGxlIGlmIG5lZWRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMDI2CgoyMDE1LTA2LTE5IDEwOjUyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdC5weToKCSAgdGVzdC5weTogcmVtb3ZlIGFjY2lkZW50YWxseSBjb21taXR0ZWQgZmlsZQoKMjAxNS0wNi0xOCAxMTo1MTo0OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvYzogVW5pZnkgU2luY2UgbWFyayBmb3IgYXR0cmlidXRlIGFuZCBlbnVtCgkgIEFzIHRoaXMgc2hvdyB1cCBhcyBwcm9zZSBpbiB0aGUgZG9jLCBzaW1wbHkgbWFrZSBpdCBjb25zaXN0ZW50CgkgIGFuZCAiYXJndWFibGUiIG5pY2VyIHRvIHJlYWQuCgoyMDE1LTA2LTE4IDExOjQ4OjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZG9jOiBSZW1vdmUgcGFyZW50aGVzaXMgYXJvdW5kIFNpbmNlOgoJICBUaGlzIGNvbmZ1c2UgdGhlIHBhcnNlciwgaGVuY2UgaXQgZG9lcyBub3QgZW5kdXAgaW4gdGhlIGRvYyBhbmQgdGhlCgkgIGluZGV4IHByb3Blcmx5LgoKMjAxNS0wNS0wNiAxNjo0NDo0OCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBHc3RQYXJlbnRCdWZmZXJNZXRhCgkgIEEgY29yZSBtZXRhIHdoaWNoIGhlbHBzIGltcGxlbWVudCB0aGUgb2xkIGNvbmNlcHQKCSAgb2Ygc3ViLWJ1ZmZlcmluZyBpbiBzb21lIHNpdHVhdGlvbnMsIGJ5IG1ha2luZyBpdAoJICBwb3NzaWJsZSBmb3IgYSBidWZmZXIgdG8ga2VlcCBhIHJlZiBvbiBhIGRpZmZlcmVudAoJICBwYXJlbnQgYnVmZmVyLiBUaGUgcGFyZW50IGJ1ZmZlciBpcyB1bnJlZmZlZCB3aGVuCgkgIHRoZSBNZXRhIGlzIGZyZWVkLgoJICBUaGlzIG1ldGEgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCBhIGJ1ZmZlciB3aG9zZQoJICBtZW1vcnkgaXMgYmVpbmcgc2hhcmVkIHRvIGEgY2hpbGQgYnVmZmVyIGlzbid0IGZyZWVkCgkgIGFuZCByZXR1cm5lZCB0byBhIGJ1ZmZlciBwb29sIHVudGlsIHRoZSBtZW1vcnkKCSAgaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAwMzkKCjIwMTUtMDYtMTYgMTg6MDg6MjQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0ZXN0LnB5OgoJICBnaTogVXNlIElOVFJPU1BFQ1RJT05fSU5JVCBmb3IgLS1hZGQtaW5pdC1zZWN0aW9uCgkgIFRoaXMgbmV3IGRlZmluZSB3YXMgYWRkZWQgdG8gY29tbW9uLiBUaGUgbmV3IGluaXQgc2VjdGlvbiBmaXhlZAoJICBjb21waWxhdGlvbiB3YXJuaW5nIGZvdW5kIGluIHRoZSBpbml0IGxpbmUgdGhhdCB3YXMgc3ByZWFkIGFjcm9zcwoJICBhbGwgZmlsZXMuCgoyMDE1LTA2LTE2IDE3OjQ2OjQ0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjAxNWQyNiB0byBmNzRiMmRmCgoyMDE1LTA2LTE1IDEwOjA2OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogRml4IF9TVElNRV9GT1JNQVQgbWFjcm9zCgkgIFRoaXMgbWFjcm8gZGlkbid0IHdvcmsgd2VsbCBhcyBpdCByZWxpZWQgb24gdGhlIHNpZ24gb24gdGhlIGxhc3QKCSAgZGl2aWRlZCBudW1iZXIgKG51bWJlciBvZiBkYXlzKS4gVGhpcyB2YWx1ZSBpcyBtb3N0IG9mIHRoZSB0aW1lCgkgIHplcm8sIGFuZCB6ZXJvIGlzIGNvbnNpZGVyZWQgcG9zaXRpdmUgaW4gcHJpbnRmLiBJbnN0ZWFkLCBkZWFsIHdpdGgKCSAgdGhlIHNpZ24gbWFudWFsbHksIGFuZCByZXN1c2UgdGhlIG9yaWdpbmFsIG1hY3JvcyBmb3IgdGhlIHJlc3QuIFRoaXMKCSAgYWN0dWFsbHkgc2ltcGxpZnkgdGhlIG1hY3JvIGEgbG90LgoKMjAxNS0wNi0xNCAyMDo0ODoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogcmVzZXQgc2VnbWVudCBvbmx5IG9uY2Ugc3RyZWFtaW5nIGhhcyBzdG9wcGVkCgkgIEZpeGVzIHRoZSBvY2Nhc2lvbmFsIGNyaXRpY2FscyBpbiB0aGUgZGlzY292ZXJlciB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwNzMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDgyMwoKMjAxNS0wNi0xNCAxMToyMzoyMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBtb3JlIG1pc3Npbmcgc3ltYm9scyBpbiBsaWItc2VjdGlvbnMudHh0CgkgIFRoZXNlIHdoZXJlIGNhdXNpbmcgYnJva2VuIGxpbmtzLgoKMjAxNS0wNi0xNCAxMToyMjo1NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSAgZG9jOiBGaXggcmVmZXJlbmNlIHRvIHVua25vd24gdHlwZSBHc3ROZXRBZGRyZXNzCgoyMDE1LTA2LTE0IDExOjIyOjM2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgZG9jOiBJbmNsdWRlIGFuZCBmaXggR3N0Q29udHJvbFBvaW50CgoyMDE1LTA2LTE0IDExOjIxOjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvYzogQWRkIEdzdE5ldENvbnRyb2xNZXNzYWdlTWV0YSB0byB0aGUgZG9jCgkgIFRoaXMgaXMgYmVpbmcgcmVmZXJlbmNlZCBlbHNld2hlcmUsIGJ1dCByZXN1bHRzIGluIGJyb2tlbiBsaW5rcy4KCSAgSXQgc2VlbXMgdG8gYmUgcHVibGljIEFQSSwgc28gSSB0aGluayBpdCBzaG91bGQgYmUgaW4gdGhlIGRvYy4KCjIwMTUtMDYtMTQgMTA6NTk6NTEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGRvYzogRG9jdW1lbnQgR3N0UHVzaFNyY0NsYXNzCgoyMDE1LTA2LTE0IDEwOjU4OjE4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgZG9jOiBCZXR0ZXIgZG9jdW1lbnQgbmV3IEdzdENvbGxlY3REYXRhLkFCSS5hYmkuZHRzCgkgIFRoZSBkb2MgZ2VuZXJhdG9yIGdldCBjb25mdXNlZCB3aXRoIHRoZSBpbmxpbmUgc3RydWN0dXJlLiBTbwoJICB3b3JrYXJvdW5kIGJ5IHdyYXBwaW5nIHRoZSBpbm5lciBvZiB0aGUgc3RydWN0dXJlIHdpdGgKCSAgcHVibGljL3ByaXZhdGUgbWFyaywgYW5kIGRvY3VtZW50IHRoYXQgR1NUX0NPTExFQ1RfUEFEU19EVFMgbWFjcm8KCSAgc2hhbGwgYmUgdXNlZCB0byBhY2Nlc3MgdGhpcy4KCjIwMTUtMDYtMTQgMTA6NTY6MjggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgZG9jOiBWYXJpb3VzIGRvYyBmaXhlcyBmb3IgbGliZ3N0cmVhbWVyLWJhc2UKCSAgKiBGaXggZnVuY3Rpb24gbmFtZSBpbiBzZWN0aW9ucy50eHQKCSAgKiBBZGQgZmV3IG1pc3Npbmcgb3IgZml4IG1pc3MtbmFtZWQKCSAgKiBXb3JrYXJvdW5kIGd0ay1kb2MgYmVpbmcgY29uZnVzZWQgd2l0aCBub24gdHlwZWRlZgoJICB0eXBlcyAobG9vc2UgdHJhY2sgb2YgcHVibGljL3ByaXZhdGUKCjIwMTUtMDYtMTQgMTA6MjU6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2M6IE1vcmUgZG9jIHdhcm5pbmcgZml4ZXMKCSAgU28gZnJvbSB0aGlzIHBvaW50LCB0aGUgcmVtYWluaW5nIHdhcm5pbmcgZm9yIGxpYmdzdHJlYW1lciBhcmUgYWJvdXQKCSAgcHJvdGVjdGVkIG1lbWJlciBub3Qgc2hvd2luZyBpbiB0aGUgZG9jLiBUaGlzIG1heSBuZWVkIHNvbWUgZGlzY3Vzc2lvbgoJICB3aXRoIHVwc3RyZWFtIGd0ay1kb2MgcGVvcGxlLgoJICAqIFJlbW92ZSAlIGluIGZyb20gb2Ygbm9uZSBtYWNybwoJICAqIEZpeGVkIEdTVF9UWVBFX0ZBR1MgLT4gR1NUX1RZUEVfRkFHX1NFVAoJICAqIE1pbm9yIHdvcmRpbmcgZml4CgkgICogQ2FuJ3QgbGluayB0byBHc3RVcmkucG9ydCwgc28gc3BsaXQgdGhlIC5wb3J0IHBhcnQKCjIwMTUtMDYtMTQgMDk6MTc6MjEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBkb2M6IEluIEdzdFVyaSB3ZSBtZWFudCBudWwtdGVybWluYXRlZCwgbm90ICVOVUxMCgkgICVOVUxMIHJlZmVycyB0byB0aGUgcG9pbnRlci4gSSd2ZSB3cml0dGVuIGl0IHRoaXMgd2F5IGluIG9uZQoJICB3b3JkIGFzIHRoaXMgaXMgd2hhdCBHTGliIHVzZXMuCgoyMDE1LTA2LTEzIDIxOjAyOjIwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jOiBDYW5ub3QgcmVmZXJlbmNlIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUKCSAgU28gc2ltcGx5IHJlbW92ZSB0aGUgJSBzaWduLgoKMjAxNS0wNi0xMyAyMDo1MjowMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jOiBGaXggdHlwbyBpbiByZWYgX2Nsb2NrX3dhaXRfZm9yX3N5bmMoKQoKMjAxNS0wNi0xMyAyMDozNzozNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGRvYzogRml4IEdzdFVyaSBkb2MgdHlwb3MKCSAgKiBVc2UgJnBlcmN0bjsgaW5zdGVhZCBvZiByZXNlcnZlZCBjaGFyYWN0ZXIgJQoJICAqIE5VTEwgdGFrZSB0d28gTAoKMjAxNS0wNi0xMyAyMDoxOTo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGRvYzogRml4IFNpbmNlOiBtYXJrcwoJICBUaGVyZSB3YXMgZmV3IFNpbmNlOiBtYXJrIG1pc3NpbmcgdGhlaXIgY29sdW1uLiBBbHNvIHVuaWZ5IHRoZSB3YXkKCSAgd2Ugc2V0IHRoZSBTaW5jZSBtYXJrIG9uIGVudW0gdmFsdWUgYW5kIHN0cnVjdHVyZSBtZW1iZXJzLiBUaGVzZQoJICBzYWRseSBkb24ndCBzaG93IHVwIGluIHRoZSBpbmRleC4KCjIwMTUtMDYtMTMgMjA6MDE6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2M6IEFkZCBnc3RfYnVmZmVyX2NvcHlfZGVlcCgpCgoyMDE1LTA2LTEzIDE5OjQ3OjQ1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBnaTogU2tpcCBnc3RfY29uc2l0ZW5jeV9jaGVja2VyX25ldwoJICBUaGlzIG5vbiBib3hlZCB0eXBlIGNhbm5vdCBiZSBhbGxvY2F0ZWQgc2FmZWx5LgoKMjAxNS0wNi0xMyAxOTo0NjoyMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2M6IEFkZCBpbmRleGVzIG9mIGFkZGVkIEFQSXMKCSAgT25lIG9mIHRoZSBuaWNlIGZlYXR1cmUgaW4gR1RLIGRvYyBpcyB0aGF0IGl0IGdlbmVyYXRlIGluZGV4ZXMKCSAgb2YgYWRkZWQgQVBJcyBiYXNlIG9uIHRoZSBzaW5jZSBtYXJrZXIuIEluY2x1ZGUgdGhhdCBpbiBvdXIgZG9jCgkgIHdoaWxlIGZpeGluZyB0aGUgaXNzdWUgb2YgZHVwbGljYXRlIElEIChwcm9kdWNlIHhtbCBjb250YWlucyB0aGF0CgkgIGlkIGl0IHNlZW1zKQoKMjAxNS0wNi0xMyAxNToxMDo1MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGRvYzogTWFrZSAuLi5fc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9pdGVyIHRyYW5zZmVyIG5vbmUKCjIwMTUtMDYtMTMgMTQ6NDA6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBkb2M6IFNpbGVuY2Ugd2FybmluZyBhYm91dCB1bnVzZWQgZ3N0bnRwcGFja2V0IHNlY3Rpb24KCSAgVGhpcyBBUEkgaXMgaW50ZXJuYWwuCgoyMDE1LTA2LTEzIDE0OjM3OjQyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgUmV2ZXJ0ICJkb2M6IEFkZCBHc3ROdHBQYWNrZXQgdG8gdGhlIGRvYyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNGViODc2OTYxYWJhMTA5MmM0ODMxYThmZWFmNDhkN2JlMWUzOGFlLgoJICBPb3BzLCB0aGlzIGlzIG5vdCBhIHB1YmxpYyBBUEkKCjIwMTUtMDYtMTMgMTQ6MjE6NDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBkb2M6IEFkZCBHc3ROdHBQYWNrZXQgdG8gdGhlIGRvYwoKMjAxNS0wNi0xMyAxMzo1NToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIGRvYzogUmVtb3ZlIGdzdGluZGV4IGZyb20gZG9jIGNvbW1lbnQKCSAgTW92aW5nIHRoYXQgdG8gbm9ybWFsIGNvbW1lbnQgdG8gc2lsZW5jZSB0aGUgZ2VuZXJhdG9yLiBHc3RJbmRleAoJICBpcyBub3QgaW4gR1N0cmVhbWVyIGxpYnJhcnkgYXQgdGhlIG1vbWVudCAocmVtb3ZlZCBmcm9tIDAuMTApLgoKMjAxNS0wNi0xMyAxMzo0ODowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGdpOiBTZXQgY29sbGVjdHBhZHMgZnVuY3Rpb24gcGFyYW0gc2NvcGUKCjIwMTUtMDYtMTMgMTM6NDI6NTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBnaTogU2tpcCBhbGxvY2F0b3Igb2Ygbm9uLWJveGVkIHN0cnVjdHVyZQoJICBUaGVzZSBhcmUgbm90IHVzYWJsZSBhcyB0aGV5IGFyZSwgYW5kIGNhbiBlYXNpbHkgbGVhZCB0byBjcmFzaAoJICBvciBsZWFrcy4gVGhpcyBhbHNvIHNpbGVuY2Ugd2FybmluZyBmcm9tIHRoZSBzY2FubmVyLiBJZiB3ZSBtYW5hZ2UgdG8KCSAgbWFrZSB0aGlzIHVzYWJsZSwgd2UgY2FuIHRoZW4gcmVtb3ZlIHRoYXQgbWFyaywgaXQgd2lsbCByZXF1aXJlCgkgIHRvIG1ha2UgdGhpcyB0eXBlIGJveGVkLgoKMjAxNS0wNi0xMyAxMzoyNDoxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEdpdmUgZ3N0Y29uZmlnIGEgbmljZSBuYW1lCgkgIEFzIGFsbCBvdGhlciBzZWN0aW9uIGRvIGhhdmUgYSBuaWNlIGNhbWUgY2FzZSBuYW1lLCBpdCBzZWVtcwoJICBtb3JlIGNvbnNpc3RlbnQuCgoyMDE1LTA2LTEzIDEzOjE5OjIxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIG1pc3NpbmcgZ3N0X2V2ZW50X25ldy9wYXJzZV9wcm90ZWN0aW9uCgoyMDE1LTA2LTEzIDEzOjE5OjA1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogR2l2ZSBnc3Rwcm90ZWN0aW9uIHNlY3Rpb24gYSBuaWNlIHRpdGxlCgoyMDE1LTA2LTEzIDEzOjE0OjMwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2M6IFJlbW92ZSB1bmVlZGVkIHByb3RlY3Rpb25ldmVudCBzZWN0aW9uCgkgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcGFydCBvZiBnc3RldmVudCBzZWN0aW9uIGFscmVhZHkuIEtlZXAgdGhlIGRvYywKCSAgc2luY2UgaXQncyBnb29kLgoKMjAxNS0wNi0xMyAxMjozMjo0OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBBZGQgbWlzc2luZyBzY29wZSB0byBmdW5jIHBhcmFtCgkgIFRoaXMgdGVsbCBHSSBpZiB0aGlzIGZ1bmN0aW9uIGlzIGZvciBhY3Rpb25zIChjYWxsKSBvciBpcyB0aGUKCSAgYW5zd2VyIG9mIHRoaXMgbWV0aG9kIGJlaW5nIGFzeW5jaHJvbm91cyAoYXN5bmMpLiBJbiB0aGlzIGNhc2UKCSAgaXQncyBhIGNhbGwuIFRoaXMgYWxzbyBzaWxlbmNlIHdhcm5pbmcgZnJvbSB0aGUgR0kgc2Nhbm5lci4KCjIwMTUtMDYtMTMgMTI6Mjc6MzEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSAgZ3N0cHJvdGVjdGlvbjogQWRkIG1pc3NpbmcgU2luY2UgMS42IG1hcmsKCjIwMTUtMDYtMTMgMTI6MjY6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgZ3N0cHJlY3Rpb246IF9hZGRfcHJvdGVjdGlvbl9tZXRhKCkgaXMgdHJhbnNmZXIgbm9uZQoJICBKdXN0IGxpa2UgZ3N0X2J1ZmZlcl9hZGRfbWV0YSgpIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGFsc28gYmUKCSAgdHJhbnNmZXIgbm9uZS4gVGhpcyBhbHNvIHNpbGVuY2UgYSBnaSB3YXJuaW5nIGFib3V0IHJldHVybmluZwoJICBhIGNvcHkgb2YgYSBub24gYm94ZWQgYmFyZSBzdHJ1Y3R1cmUuCgoyMDE1LTA2LTEzIDEyOjI1OjE5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGdzdHByb3RlY3Rpb246IEFkZCBtaXNzaW5nIG5hbWVzcGFjZSB0byBtYWNybwoJICBHU1RfUFJPVEVDVElPTl9TWVNURU1fSURfQ0FQU19GSUVMRCB3YXMgbWlzc2luZyB0aGUgR1NUXyBuYW1lc3BhY2UuCgkgIEFkZCBpdCBiZWZvcmUgaXRzIHRvbyBsYXRlLgoKMjAxNS0wNi0xMyAxMTo1NToxMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBkb2M6IEtlZXAgU0VDVElPTjogYWZ0ZXIgdGhlIGlmZGVmCgkgIE90aGVyd2lzZSBHVEsgZG9jIHdpbGwgc2VlIGl0IGFzIG9mdGVuIGFzIHdlIGluY2x1ZGUgdGhhdCBmaWxlcwoJICBhbmQgd2FybiBhYm91dCBkdXBsaWNhdGVkIFNFQ1RJT046CgoyMDE1LTA2LTEzIDEwOjIzOjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGdpOiBTa2lwIG1pbmkgb2JqZWN0IG1ldGhvZCB0aGF0IHBsYXkgd2l0aCByZWZjb3VudGluZwoJICBJdCBtYWtlIG5vIHNlbnNlIHRvIGFsbG93IHVzaW5nIHRoYXQuIEFueSB1c2Ugd291bGQgbGVhZCB0byBsZWFrCgkgIG9mIGNyYXNoLiBOb3RlIHRoYXQgR01pbmlPYmplY3QgaXMgZW50aXJlbHkgdW51c2FibGUgYXMgeW91IGNhbm5vdAoJICBjYXN0IGZyb20gbGV0J3Mgc2F5IEdzdEJ1ZmZlciB0byBHc3RNaW5pT2JqZWN0LgoKMjAxNS0wNi0xMyAxNTowNTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkgIGxpYnM6IG1vcmUgZG9jIHNjYW5uZXIgZml4ZXMKCSAgZ3N0YmFzZXRyYW5zZm9ybS5oOjE5NjogV2FybmluZzogR3N0QmFzZTogIkBzdWJtaXRfaW5wdXRfYnVmZmVyIiBwYXJhbWV0ZXIgdW5leHBlY3RlZCBhdCB0aGlzIGxvY2F0aW9uOgoJICAqIEBzdWJtaXRfaW5wdXRfYnVmZmVyOiBGdW5jdGlvbiB3aGljaCBhY2NlcHRzIGEgbmV3IGlucHV0IGJ1ZmZlciBhbmQgcHJlLXByb2Nlc3NlcyBpdC4KCSAgZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6MTAzOiBXYXJuaW5nOiBHc3ROZXQ6IGdzdF9idWZmZXJfYWRkX25ldF9jb250cm9sX21lc3NhZ2VfbWV0YTogdW5rbm93biBwYXJhbWV0ZXIgJ21lc3NhZ2UnIGluIGRvY3VtZW50YXRpb24gY29tbWVudCwgc2hvdWxkIGJlICdhZGRyJwoKMjAxNS0wNi0xMyAwOTozNzo0NiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBkb2M6IEZpeCBhbm5vYXRpb24gZm9yIEdzdE1pbmlPYmplY3QKCSAgUmVwbGFjaW5nIHJlcHJlY2F0ZWQgIlJlZiBGdW5jOiIsICJVbnJlZiBGdW46IiBldGMuIGNvbW1lbnQgYmxvY2sKCSAgd2l0aCBhcHByb3ByaWF0ZSAocmVmLWZ1bmMgbmFtZSkgZXRjLiBhbm5vdGF0aW9uLgoKMjAxNS0wNi0xMyAwOTozNDowNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZG9jOiBGaXggdW5iYWxhbmNlZCBwYXJlbnRoZXNpcwoKMjAxNS0wNi0xMyAwOTozMDoyNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jOiBGaXggbW9yZSB0eXBvCgoyMDE1LTA2LTEzIDA5OjIyOjQxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBkb2M6IEZpeCB0eXBlIGluIHByZXZpb3VzIGNvbW1pdAoJICBNYXJrZXIgaXMgKHZhbHVlIC4uIG5vdCAoYWx1ZS4KCjIwMTUtMDYtMTMgMDk6MTk6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBkb2M6IERvbid0IHVzZSBkZXByZWNhdGVkIFZhbHVlOiBhbmQgVHlwZTogY29tbWVudAoJICBJbnN0ZWFkIHVzZSBhcHByb3ByaWF0ZSBhbm5vdGF0aW9uLiBBbm5vdGF0aW9ucyBjYW4gYmUgYWRkZWQKCSAgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjb25zdGFudCBuYW1lIGluIGEgY29tbWVudCBibG9jay4KCjIwMTUtMDYtMTIgMTc6MDc6MzggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGNvbGxlY3RwYWRzOiBBZGQgbmV3IG1hY3JvIHRvIHRoZSBkb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMiAxNzowNzoyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgY2xvY2s6IEFkZCBuZXcgc2lnbmVkIHRpbWUgbWFjcm8gdG8gdGhlIGRvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEwIDE0OjE3OjAxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBpbml0aWFsbHkgc2VuZCBhbiBpbnZhbGlkIERUUwoJICBTZW5kaW5nIGEgcG9zc2libHkgaW52YWxpZCBEVFMgbWF5IGNvbmZ1c2UgdGhlIG11eGVycywgd2hpY2ggd2lsbAoJICB0aGVuIHRoaW5rIHRoZSBEVFMgaXMgZ29pbmcgYmFja3dhcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDQtMDMgMTc6NTQ6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBBZGQgbmVnYXRpdmUgRFRTIHN1cHBvcnQKCSAgTWFrZSBnc3RfY29sbGVjdF9wYWRzX2NsaXBfcnVubmluZ190aW1lKCkgZnVuY3Rpb24gYWxzbyBzdG9yZSB0aGUKCSAgc2lnbmVkIERUUyBpbiB0aGUgQ29sbGVjdERhdGEuIFRoaXMgc2lnbmVkIERUUyB2YWx1ZSBjYW4gYmUgdXNlZCBieQoJICBtdXhlcnMgdG8gcHJvcGVybHkgaGFuZGxlIHN0cmVhbXMgd2hlcmUgRFRTIGNhbiBiZSBuZWdhdGl2ZSBpbml0aWFsbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTIgMTI6MDY6MDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogQWRkIHNpZ25lZCB0aW1lIHV0aWxpdGllcwoJICBBZGQgdXRpbGl0eSB0byBwcmludCBzaWduZWQgdmFsdWUgb2YgdGltZS4gVGhpcyBpcyB1c2VmdWwgdG8KCSAgdHJhY2UgcnVubmluZyB0aW1lIHZhbHVlcyBpbiBnaW50NjQgb3IgR3N0Q2xvY2tUaW1lRGlmZiB2YWx1ZXMuCgkgIEFkZGl0aW9uYWxseSwgZGVmaW5lIEdTVF9DTE9DS19TVElNRV9OT05FIHRvIGluZGljYXRlIGFuIGludmFsaWQKCSAgc2lnbmVkIHRpbWUgdmFsdWUgYW5kIHZhbGlkYXRpb24gbWFjcm8uIE5ldyBtYWNyb3MgYXJlOgoJICBHU1RfQ0xPQ0tfU1RJTUVfTk9ORQoJICBHU1RfQ0xPQ0tfU1RJTUVfSVNfVkFMSUQKCSAgR1NUX1NUSU1FX0ZPUk1BVAoJICBHU1RfU1RJTUVfQVJHUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEwIDIwOjQ0OjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgYWxsb3ctbm9uZSB0byBnc3RfbWVzc2FnZV9uZXdfIGZ1bmN0aW9uCgkgIE5vIHJlc3RyaWN0aW9uIGZvciBjcmVhdGluZyBtZXNzYWdlcyB3aXRob3V0IGEgc291cmNlCgoyMDE1LTA2LTEyIDEzOjQ1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxNS0wNS0yNyAxMjoyOTo0MSArMDMwMCAgTGF6YXIgQ2xhdWRpdSA8bGF6YXIuY2xhdWRpdS5mbG9yaW5AZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYWJzb2x1dGUtZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBBZGRlZCBhYnNvbHV0ZSBkaXJlY3QgY29udHJvbCBiaW5kaW5nLCBleGFtcGxlIGFuZCB0ZXN0CgkgIEZpeGVzOiA3NDA1MDIKCSAgQVBJOiBnc3RfZGlyZWN0X2NvbnRyb2xfYmluZGluZ19uZXdfYWJzb2x1dGUKCjIwMTUtMDYtMDQgMDA6MDM6MTYgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogcHJvdmlkZSBhIG1lbV9tYXBfZnVsbCB0aGF0IHRha2VzIHRoZSBHc3RNYXBJbmZvCgkgIEZvbGxvdyB1cCBvZiA3MTMwMjMwZGRiMzQ5ZDBjYTc5NDJhYmRiYTI2Yjc1NThkZjA1NWQxCgkgIFByb3ZpZGUgdGhlIG1lbW9yeSBpbXBsZW1lbnRhdGlvbiB0aGUgR3N0TWFwSW5mbyB0aGF0IHdpbGwgYmUgdXNlZCB0bwoJICBtYXAvdW5tYXAgdGhlIG1lbW9yeS4gIFRoaXMgYWxsb3dzIHRoZSBtZW1vcnkgaW1wbGVtZW50YXRpb24gdG8gdXNlCgkgIHNvbWUgc2NyYXRjaCBzcGFjZSBpbiBHc3RNYXBJbmZvIHRvIGUuZy4gdHJhY2sgZGlmZmVyZW50IG1hcC91bm1hcAoJICBiZWhhdmlvdXIgb3Igc3RvcmUgZXh0cmEgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBkYXRhIGFib3V0IHRoZSBtYXAKCSAgaW4gdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzE5CgoyMDE1LTA0LTA4IDE0OjIxOjQzIC0wNzAwICBBbGlzb24gQ2hhaWtlbiA8YWxpc29uX2NoYWlrZW5AbWVudG9yLmNvbT4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgZG9jczogbWFudWFsOiBmaXggbmFtZSByZXZlcnNhbCBpbiBiYXNpY3MtcGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NTMyCgoyMDE1LTA2LTExIDIzOjA2OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGdzdF93cml0ZXY6IGRlZmluZSBVSU9fTUFYSU9WIG9uIGlPUy9PU1gKCSAgQXBwYXJlbnRseSBpdCdzIG9ubHkgc2V0b24gaU9TL09TWCBpZiBkZWZpbmVkKEtFUk5FTCkuCgoyMDE1LTA2LTEyIDAxOjE1OjE5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBnc3Rfd3JpdGV2OiBSZXNwZWN0IFVJT19NQVhJT1YgbGltaXQgZm9yIHRoZSBpb3YgYXJyYXkKCSAgSWYgd2UgcmVjZWl2ZSBtb3JlIHRoYW4gVUlPX01BWElPViAoMTAyNCB0eXBpY2FsbHkpIGJ1ZmZlcnMKCSAgaW4gYSBzaW5nbGUgd3JpdGV2IGNhbGwsIGZhbGwgYmFjayB0byBjb25zb2xpZGF0aW5nIHRoZW0KCSAgaW50byBvbmUgb3V0cHV0IGJ1ZmZlciBvciBtdWx0aXBsZSB3cml0ZSBjYWxscy4KCSAgVGhpcyBjb3VsZCBiZSBtYWRlIG1vcmUgb3B0aW1hbCwgYnV0IGxldCdzIHdhaXQgdW50aWwgaXQncwoJICBldmVyIGEgYm90dGxlbmVjayBmb3Igc29tZW9uZQoKMjAxNS0wNi0xMSAxMjozNDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBpcGVsaW5lOiBBZGQgZ3N0X3BpcGVsaW5lX3NldF9sYXRlbmN5KCksIGdldHRlciBhbmQgR09iamVjdCBwcm9wZXJ0eQoJICBUaGlzIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBsYXRlbmN5IGhhbmRsaW5nIGFuZCBjb25maWd1cmVzIHRoZSBzcGVjaWZpZWQKCSAgbGF0ZW5jeSBpbnN0ZWFkIG9mIHRoZSBtaW5pbXVtIGxhdGVuY3kgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgTEFURU5DWQoJICBxdWVyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MgoKMjAxNS0wNi0xMSAxMTozNzozMCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgYWN0aXZlLXBhZCBwcm9wZXJ0eQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2OTQ5CgoyMDE1LTA2LTExIDExOjA1OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBbHNvIHJlc2V0IHRoZSBjdXJyZW50IHN0YXJ0IG9mZnNldCB3aGVuIHJlY2VpdmluZyBhIEZMVVNIX1NUT1Agb24gdGhlIHNyY3BhZAoKMjAxNS0wNi0xMSAxMTowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIHNvbWUgbmV3bGluZXMgdG8gZXZlbnQgaGFuZGxpbmcgY29kZSB0byBtYWtlIHRoZSBjb2RlIGxvb2sgYSBiaXQgbGVzcyBkZW5zZQoKMjAxNS0wNi0xMSAxMDo1MzozMCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBSZXNldCBzZWdtZW50IGJhc2Ugb2Zmc2V0IGFmdGVyIEZMVVNIX1NUT1Agd2l0aCByZXNldF90aW1lID0gVFJVRQoJICBJZiB0aGUgcmVzZXRfdGltZSB2YWx1ZSBvZiBhIEZMVVNIX1NUT1AgZXZlbnQgaXMgc2V0IHRvIFRSVUUsIHRoZSBwaXBlbGluZQoJICB3aWxsIGhhdmUgdGhlIGJhc2VfdGltZSBvZiBpdHMgZWxlbWVudHMgcmVzZXQuIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29uY2F0CgkgIGVsZW1lbnQncyBjdXJyZW50X3N0YXJ0X29mZnNldCBoYXMgdG8gYmUgcmVzZXQgdG8gMCwgc2luY2UgaXQgd2FzCgkgIGNhbGN1bGF0ZWQgd2l0aCB0aGUgb2xkIGJhc2UtdGltZSBpbiBtaW5kLgoJICBPbmx5IEZMVVNIX1NUT1AgZXZlbnRzIGNvbWluZyBmcm9tIHRoZSBhY3RpdmUgcGFkIGFyZSBsb29rZWQgYXQuCgkgIFNpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCjIwMTUtMDMtMjggMTY6NDY6MzIgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogRm9yd2FyZCBGTFVTSF9TVEFSVCBhbmQgRkxVU0hfU1RPUCBldmVudHMKCSAgV2l0aG91dCB0aGlzLCBzZWVraW5nIGRlYWRsb2NrcyBpZiBwZXJmb3JtZWQgd2hpbGUgdGhlIHBpcGVsaW5lIGlzIHBhdXNlZC4KCSAgT25seSBmbHVzaCBldmVudHMgY29taW5nIGZyb20gdGhlIGFjdGl2ZSBwYWQgYXJlIGZvcndhcmRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTM2NgoKMjAxNS0wNi0wOSAxNDoyODozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJICBjcnVmdDogYWRkIHRoZSBvYnNvbGV0ZSB0bXBsIGRpciB0byBjcnVmdC1kaXJzCgoyMDE1LTA2LTA5IDExOjMwOjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkOWEzMzUzIHRvIDYwMTVkMjYKCjIwMTUtMDYtMDkgMTE6MDE6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggZnN5bmMvX2NvbW1pdCB1c2FnZQoJICBfTVNDX1ZFUiB3aWxsIG9ubHkgYmUgZGVmaW5lZCB3aGVuIGJ1aWxkaW5nICpvbiogd2luZG93cyBhbmQgbm90IGp1c3QKCSAgKmZvciogd2luZG93cy4gSW5zdGVhZCwgdXNlIHRoZSBHX09TX1dJTjMyIGRlZmluZQoKMjAxNS0wNi0wOSAxMDo1OTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHA6IENoZWNrIGZvciB0aGUgYWN0dWFsIEFQSSB3ZSB1c2UgaW5zdGVhZCBvZiBqdXN0IGxvb2tpbmcgZm9yIF9fQVBQTEVfXwoJICBTaG91bGQgZml4IHRoZSBidWlsZCBvbiBGcmVlQlNELCBEcmFnb25GbHkgYW5kIG90aGVyIEJTRHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1MzAKCjIwMTUtMDYtMDggMTc6MTA6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFVzZSB0aGUgbmV3IEdTVF9DTE9DS19GTEFHX05FRURTX1NUQVJUVVBfU1lOQyBmbGFnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1NzQKCjIwMTUtMDYtMDggMTc6MDQ6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IE1ha2UgdGhlIGNsb2NrIGEgd3JhcHBlciBjbG9jayBhcm91bmQgYW4gaW50ZXJuYWwgY2xvY2sKCSAgVGhlIGludGVybmFsIGNsb2NrIGlzIG9ubHkgdXNlZCBmb3Igc2xhdmluZyBhZ2FpbnN0IHRoZSByZW1vdGUgY2xvY2ssIHdoaWxlCgkgIHRoZSB1c2VyLWZhY2luZyBHc3RDbG9jayBjYW4gYmUgYWRkaXRpb25hbGx5IHNsYXZlZCB0byBhbm90aGVyIGNsb2NrIGlmCgkgIGRlc2lyZWQuIEJ5IGRlZmF1bHQsIGlmIG5vIG1hc3RlciBjbG9jayBpcyBzZXQsIHRoaXMgaGFzIGV4YWN0bHkgdGhlIHNhbWUKCSAgYmVoYXZpb3VyIGFzIGJlZm9yZS4gSWYgYSBtYXN0ZXIgY2xvY2sgaXMgc2V0ICh3aGljaCB3YXMgbm90IGFsbG93ZWQgYmVmb3JlKSwKCSAgdGhlIHVzZXItZmFjaW5nIGNsb2NrIGlzIHJlcG9ydGluZyB0aGUgcmVtb3RlIGNsb2NrIGFzIGludGVybmFsIHRpbWUgYW5kCgkgIHNsYXZlcyB0aGlzIHRvIHRoZSBtYXN0ZXIgY2xvY2suCgkgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSB3ZWlyZG5lc3MgdGhhdCB0aGUgaW50ZXJuYWwgdGltZSBvZiB0aGUgbmV0Y2xpZW50Y2xvY2sKCSAgd2FzIGFsd2F5cyB0aGUgc3lzdGVtIGNsb2NrIHRpbWUsIGFuZCBub3QgdGhlIHJlbW90ZSBjbG9jayB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTc0CgoyMDE1LTA2LTA4IDIzOjA3OjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkMzdhZjMyIHRvIGQ5YTMzNTMKCjIwMTUtMDYtMDggMjA6MDA6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0czogZmFrZXNpbms6IGZpeCBzdHJpbmcgbGVhayBpbiB1bml0IHRlc3QKCjIwMTUtMDYtMDkgMDA6NTI6MzQgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IFdpbmRvd3MgYnVpbGQgYnkgdXNpbmcgX2NvbW1pdCBpbnN0ZWFkIG9mIGZzeW5jLgoKMjAxNS0wNi0wOCAxMjoyMjo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IE1ha2Ugc3VyZSB0byBhbHdheXMgaW5pdGlhbGl6ZSB0aGUgdmFyaWFibGVzIHdlIHB1dCBpbnRvIHRoZSBzdGF0aXN0aWNzIHN0cnVjdHVyZSBsYXRlcgoJICBDSUQgMTMwNDY3NiwgMTMwNDY3NywgMTMwNDY3OCwgMTMwNDY3OS4KCjIwMTUtMDYtMDggMTI6MDI6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cDogRW5zdXJlIHRoYXQgbm90IHRvbyBtdWNoIGlzIHJlYWQgZnJvbSBvciB3cml0dGVuIHRvIHN0cnVjdCBpZnJlcS5pZnJfbmFtZQoKMjAxNS0wNi0wOCAxOTozMzowMyArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyB2ZnVuY3MKCSAgQWRkIFNpbmNlOiAxLjYgbWFya2VycyBmb3IgdGhlIG5ldyBzdWJtaXRfaW5wdXRfYnVmZmVyKCkgYW5kCgkgIGdlbmVyYXRlX291dHB1dCgpIHZmdW5jcwoKMjAxNS0wNS0yMyAwMTowODoyOSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0yLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFNwbGl0IGlucHV0IGJ1ZmZlciBwcm9jZXNzaW5nIGZyb20gb3V0cHV0IGdlbmVyYXRpb24KCSAgQWxsb3cgZm9yIHN1Yi1jbGFzc2VzIHdoaWNoIHdhbnQgdG8gY29sbGF0ZSBpbmNvbWluZyBidWZmZXJzIG9yCgkgIHNwbGl0IHRoZW0gaW50byBtdWx0aXBsZSBvdXRwdXQgYnVmZmVycyBieSBzZXBhcmF0aW5nIHRoZSBpbnB1dAoJICBidWZmZXIgc3VibWlzc2lvbiBmcm9tIG91dHB1dCBidWZmZXIgZ2VuZXJhdGlvbiBhbmQgYWxsb3dpbmcKCSAgZm9yIGxvb3Bpbmcgb2Ygb25lIG9mIHRoZSBwaGFzZXMgZGVwZW5kaW5nIG9uIHB1bGwgb3IgcHVzaCBtb2RlCgkgIG9wZXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDAzMwoKMjAxNS0wNC0xNiAxMDozMjowMiArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgQWRkIEdTVF9CVUZGRVJfRkxBR19TWU5DX0FGVEVSIGZsYWcsIGFuZCBpbXBsZW1lbnQgaW4gZmlsZXNpbmsuCgkgIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGdldCBmaWxlc2luayB0byBmc3luYygpIGFmdGVyIHJlbmRlcmluZwoJICBhIGJ1ZmZlci4KCjIwMTUtMDYtMDggMTA6NDY6MjQgKzAyMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogRml4IGJ1aWxkIG9uIFdpbmRvd3MsIGFuZCBpbiBnZW5lcmFsIHRoZSBHSSBidWlsZCB3aGVuIFBUUCBzdXBwb3J0IHdhcyBub3QgYXZhaWxhYmxlCgkgIEl0J3Mgbm90IGdvaW5nIHRvIHdvcmsgb24gV2luZG93cyBzdGlsbCwgdGhlIGhlbHBlciBwcm9jZXNzIG5lZWRzIHRvIGJlCgkgIHBvcnRlZC4KCjIwMTUtMDYtMDcgMjM6MDU6NTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIxYmEyZTUgdG8gZDM3YWYzMgoKMjAxNS0wNi0wNyAxNzozMTo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzQwODU4MyB0byAyMWJhMmU1CgoyMDE1LTA2LTA3IDE2OjU4OjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiByZW1vdmUgdmFyaWFibGVzIHRoYXQgd2UgZGVmaW5lIGluIHRoZSBzbmlwcGV0IGZyb20gY29tbW9uCgkgIFRoaXMgaXMgc3luY2luZyBvdXIgTWFrZWZpbGUuYW0gd2l0aCB1cHN0cmVhbSBndGtkb2MuCgoyMDE1LTA2LTA3IDE3OjE2OjA2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkNjc2OTkzIHRvIGM0MDg1ODMKCjIwMTUtMDYtMDcgMTY6NDQ6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCjIwMTUtMDYtMDcgMTA6NTI6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIG5ldGNsaWVudGNsb2NrOiBUaGUgTlRQIHBvbGwgaW50ZXJ2YWwgaXMgYSBzaWduZWQgaW50OCwgbm90IHVuc2lnbmVkCgo9PT0gcmVsZWFzZSAxLjUuMSA9PT0KCjIwMTUtMDYtMDcgMDk6NDE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS4xCgoyMDE1LTA2LTA3IDA5OjMzOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vdHIucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA2LTA3IDA5OjMyOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgU2luY2UgbWFya2VyIHRvIHRoZSBkb2NzIGZvciBnc3RfbnRwX2Nsb2NrX25ldygpCgoyMDE1LTA2LTA3IDA5OjMyOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wNi0wNyAwOTowODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW4gdW5pdCB0ZXN0CgkgIGdzdC9nc3RtZW1vcnkuYzo1NzA6Mzg6IGVycm9yOiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gZW51bWVyYXRpb24gdHlwZSAnR3N0TWFwRmxhZ3MnIHRvIGRpZmZlcmVudCBlbnVtZXJhdGlvbgoJICB0eXBlICdHc3RMb2NrRmxhZ3MnIFstV2Vycm9yLC1XZW51bS1jb252ZXJzaW9uXQoJICBmYWlsX3VubGVzcyAoZ3N0X21lbW9yeV9sb2NrIChtZW0sIEdTVF9NQVBfV1JJVEUpKTsKCSAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5+fn5+fn5+fn5+fn5+CgoyMDE1LTA2LTA3IDA4OjU5OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBVc2UgdGhlIGN1cnJlbnQgcGF0aCBkZWxheSBmb3IgY2FsY3VsYXRpb24gdGhlIGxvY2FsL3JlbW90ZSBjbG9jayB0aW1lcwoJICBUaGUgbWVhbiBtaWdodCBjdXJyZW50bHkgYmUgY2hhbmdpbmcsIGFuZCB0aGUgY3VycmVudCBwYXRoIGRlbGF5IGlzIHRoZQoJICBjbG9zZXN0IHdlIGNhbiBnZXQgdG8gdGhlIGFjdHVhbCBkZWxheSBhcm91bmQgdGhlIGN1cnJlbnQgU1lOQyBtZXNzYWdlLgoKMjAxNS0wNi0wNiAyMzowNTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWRkIHNvbWUgY29weXJpZ2h0IHN0dWZmCgoyMDE1LTA2LTA2IDIxOjQzOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBOVFB2NCBzdXBwb3J0CgkgIFRoaXMgdXNlcyBhbGwgb2YgdGhlIG5ldGNsaWVudGNsb2NrIGNvZGUsIGV4Y2VwdCBmb3IgdGhlIGdlbmVyYXRpb24gYW5kCgkgIHBhcnNpbmcgb2YgcGFja2V0cy4gVW5mb3J0dW5hdGVseSBzb21lIGNvZGUgZHVwbGljYXRpb24gd2FzIG5lY2Vzc2FyeQoJICBiZWNhdXNlIEdzdE5ldFRpbWVQYWNrZXQgaXMgcHVibGljIEFQSSBhbmQgY291bGRuJ3QgYmUgZXh0ZW5kZWQgZWFzaWx5CgkgIHRvIHN1cHBvcnQgTlRQdjQgcGFja2V0cyB3aXRob3V0IGJyZWFraW5nIEFQSS9BQkkuCgoyMDE1LTA2LTA2IDIwOjM5OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBQcmVwYXJhdGlvbiBmb3IgTlRQdjQgc3VwcG9ydAoJICBXZSBleHRlbmQgb3VyIGNhbGN1bGF0aW9ucyB0byB3b3JrIHdpdGggbG9jYWwgc2VuZCB0aW1lLCByZW1vdGUgcmVjZWl2ZSB0aW1lLAoJICByZW1vdGUgc2VuZCB0aW1lIGFuZCBsb2NhbCByZWNlaXZlIHRpbWUuIEZvciB0aGUgbmV0Y2xpZW50Y2xvY2sgcHJvdG9jb2wsCgkgIHJlbW90ZSByZWNlaXZlIGFuZCBzZW5kIHRpbWUgYXJlIGFzc3VtZWQgdG8gYmUgdGhlIHNhbWUgdmFsdWUuCgkgIEZvciB0aGUgcmVzdWx0cywgdGhpcyBtb2RpZmllZCBjYWxjdWxhdGlvbiBtYWtlcyBhYnNvbHV0ZWx5IG5vIGRpZmZlcmVuY2UKCSAgdW5sZXNzIHRoZSB0d28gcmVtb3RlIHRpbWVzIGFyZSBkaWZmZXJlbnQuCgoyMDE1LTA2LTA2IDE5OjAxOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrLiBGaXggbGFzdCBjb21taXQKCSAgQXBwYXJlbnRseSBJIGZhaWxlZCBhdCBnaXQgYWRkIC1pLgoKMjAxNS0wNi0wNiAxODo0MjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogTWFrZSBnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcoKSBhIHRoaW5nIHdyYXBwZXIgYXJvdW5kIGdfb2JqZWN0X25ldygpCgkgIEJpbmRpbmdzIHdpbGwgbGlrZSB0aGlzLCBhbmQgYWxzbyBpdCBmaXhlcyBhIEZJWE1FIGNvbW1lbnQuCgoyMDE1LTA2LTA2IDE0OjM0OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBVc2UgI2RlZmluZSBldmVyeXdoZXJlIGluc3RlYWQgb2YgR19OX0VMRU1FTlRTKCkKCjIwMTUtMDYtMDYgMTQ6MzE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEZpbHRlciBSVFRzIGJhc2VkIG9uIHRoZSBtZWRpYW4gb2YgdGhlIGxhc3QgUlRUcyBiZWZvcmUgY29uc2lkZXJpbmcgdGhlbSBhdCBhbGwKCSAgVGhpcyBpbXByb3ZlcyBhY2N1cmFjeSBvbiB3aWZpIG9yIHNpbWlsYXIgbmV0d29ya3MsIHdoZXJlIHRoZSBSVFQgY2FuIGdvIHZlcnkKCSAgaGlnaCB1cCBmb3IgYSBzaW5nbGUgb2JzZXJ2YXRpb24gZXZlcnkgbm93IGFuZCB0aGVuLiBXaXRob3V0IGZpbHRlcmluZyB0aGVtCgkgIGF3YXkgY29tcGxldGVseSwgdGhleSB3b3VsZCBzdGlsbCBzdGlsbCBtb2RpZnkgdGhlIGF2ZXJhZ2UgUlRULCBhbmQgdGh1cyBhbGwKCSAgY2xvY2sgZXN0aW1hdGlvbnMuCgoyMDE1LTA2LTA2IDE0OjE5OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBVc2UgYSBzeXN0ZW0gY2xvY2sgZm9yIHRoZSB0aW1lIG9ic2VydmF0aW9ucyBpbnN0ZWFkIG9mIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKQoJICBUaGV5IGRvbid0IG5lY2Vzc2FyaWx5IHVzZSB0aGUgc2FtZSB1bmRlcmx5aW5nIGNsb2NrcyAoZS5nLiBvbiBXaW5kb3dzKSwgb3IKCSAgbWlnaHQgYmUgY29uZmlndXJlZCB0byBhIGRpZmZlcmVudCBjbG9jayB0eXBlIChtb25vdG9uaWMgdnMuIHJlYWwgdGltZSBjbG9jaykuCgkgIFdlIG5lZWQgdGhlIHZhbHVlcyBhIGNsZWFuIHN5c3RlbSBjbG9jayByZXR1cm5zLCBhcyB0aG9zZSBhcmUgdGhlIHZhbHVlcyB1c2VkCgkgIGJ5IHRoZSBpbnRlcm5hbCBjbG9ja3MuCgoyMDE1LTA2LTA2IDEyOjM1OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBGaXggZG9jdW1lbnRhdGlvbiBhIGJpdAoKMjAxNS0wNi0wNSAxOTozNToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzOiBmYWtlc2luazogdGVzdCBub3RpZnk6Omxhc3QtbWVzc2FnZSBhbmQgZGVlcC1ub3RpZnk6Omxhc3QtbWVzc2FnZQoJICBkZWVwLW5vdGlmeTo6bGFzdC1tZXNzYWdlIHNlZW1zIHRvIGNhdXNlIHNvbWUgcHJvYmxlbXMsIHNvIGRpc2FibGUgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTY0MgoKMjAxNS0wNi0wNSAxMDowMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBQb3N0IGFuIGVycm9yIGlmIHdlIGNhbid0IHR5cGVmaW5kIHRoZSBkYXRhIHVudGlsIEVPUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNDM5CgoyMDE1LTA2LTA0IDE5OjA1OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBNYWtlIHN1cmUgdG8gdXNlIGdfcG9sbCgpIGZvciB0aGUgbWFpbiBjb250ZXh0CgkgIFRoZSBtb2RpZmllZCBtYWluIGNvbnRleHQgZnJvbSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMDU0CgkgIHNvbWVob3cgY2FsbHMgc2V0dWdpZCgpLCB3aGljaCBhYm9ydCgpcyBzZXR1aWQgcm9vdCBhcHBsaWNhdGlvbnMgb24gT1NYLgoKMjAxNS0wNi0wNCAxODozMjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogTWFrZSBzdXJlIHRoYXQgd2UgYXJlIHJ1bm5pbmcgc2V0dWlkIHJvb3QgaWYgY29uZmlndXJlZCB0aGF0IHdheQoKMjAxNS0wNi0wNCAxODowMDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogRml4IGludGVyZmFjZSBsaXN0aW5nIGFuZCBNQUMgcmV0cmlldmFsIG9uIE9TWAoKMjAxNS0wNi0wMyAxOTowNDoxNSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBBZGQgc3VwcG9ydCBmb3IgZ2luZGVudCBhcyBleGVjdXRhYmxlIG5hbWUKCSAgZ3N0LWluZGVudCB1c2VkIHRvIHN1cHBvcnQgZ251aW5kZW50IGFuZCBpbmRlbnQgYXMgZXhlY3V0YWJsZSBuYW1lcy4KCSAgSG93ZXZlciwgb24gT1NYIG9uZSBjYW4gImJyZXcgaW5zdGFsbCBnbnUtaW5kZW50IiBhbmQgdGhlbiB0aGUKCSAgZXhlY3V0YWJsZSBuYW1lIHdpbGwgYmUgZ2luZGVudC4gQWRkZWQgc3VwcG9ydCBmb3IgdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM1MQoKMjAxNS0wNi0wMyAxNjo0Mjo1NyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBhZGQgbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlcgoKMjAxNS0wNi0wMyAxNjozNDo1OCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIHB0cDogaWdub3JlIHBlcm1pc3Npb24gZXJyb3JzIGluIE1ha2VmaWxlCgkgIFRvIHNhdGlzZnkgdGhlIGJ1aWxkc2xhdmVzIGlnbm9yZSBwZXJtaXNzaW9uIGVycm9ycyBpbiBjaG93biwgY2htb2QgYW5kIHNldGNhcAoKMjAxNS0wNi0wMyAxNzowNjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwOiBEb24ndCB1c2UgU0lPQ0dJRkhXQUREUiBvbiBBcHBsZQoJICBKdXN0ICNpZmRlZiB0aGUgY29kZSBmb3Igbm93LCB0aGlzIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBhcm91bmQKCSAgSU9LaXQgbGF0ZXIgaW5zdGVhZCBvZiB1c2luZyBpb2N0bHMuCgoyMDE1LTA2LTAzIDE2OjI4OjQ0ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IG1ha2UgaW5zdGFsbC1leGVjLWhvb2tzIGRlcGVuZCBvbiBpbnN0YWxsLWhlbHBlcnNQUk9HUkFNUwoJICBUbyBhdm9pZCByYWNlIGNvbmRpdGlvbnMgd2hlcmUgbWFrZSB3b3VsZCB0cnkgdG8gY2hhbmdlIG93bmVyc2hpcCBhbmQKCSAgcGVybWlzc2lvbnMgb2YgdGhlIG5vdC15ZXQtaW5zdGFsbGVkIHB0cCBoZWxwZXIuCgoyMDE1LTA2LTAzIDE2OjA4OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogRml4IGRlYnVnIG91dHB1dCB0byBwcmludCB0aGUgZGlmZmVyZW5jZSBpbnN0ZWFkIG9mIGFic29sdXRlIHZhbHVlcwoKMjAxNS0wNi0wMyAxNToyMjozMSArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IGZpeCBjb21waWxhdGlvbgoJICBEb24ndCBwdXQgY29kZSBiZXR3ZWVuIGRlY2xhcmF0aW9ucy4KCSAgRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwoKMjAxNS0wNi0wMyAxMTowNDo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEFkZCBtZWRpYW4gYmFzZWQgcHJlLWZpbHRlcmluZyBvZiBkZWxheXMKCSAgSWYgdGhlIGRlbGF5IG1lYXN1cmVtZW50IGlzIHRvbyBmYXIgYXdheSBmcm9tIHRoZSBtZWRpYW4gb2YgdGhlIHdpbmRvdyBvZiBsYXN0CgkgIGRlbGF5IG1lYXN1cmVtZW50cywgd2UgZGlzY2FyZCBpdC4gVGhpcyBpbmNyZWFzZXMgYWNjdXJhY3kgb24gd2lmaSBhIGxvdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNi0wMiAxNToyNDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEFkZCAjZGVmaW5lIHRvIG9ubHkgdXNlIFNZTkMgbWVzc2FnZXMgZm9yIHdoaWNoIHdlIGNhbiBzZW5kIERFTEFZX1JFUQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA1LTE1IDE2OjU4OjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogQWRkICNkZWZpbmVzIHRvIGVuYWJsZS9kaXNhYmxlIGltcHJvdmVtZW50cyBmb3IgdW5yZWxpYWJsZSBuZXR3b3JrcwoJICBXZSBzaG91bGQgZG8gc29tZSBtb3JlIG1lYXN1cmVtZW50cyB3aXRoIGFsbCB0aGVzZSBhbmQgY2hlY2sgaG93IG11Y2ggc2Vuc2UKCSAgdGhleSBtYWtlIGZvciBQVFAuIEFsc28gZW5hYmxpbmcgdGhlbSBtZWFucyBub3QgZm9sbG93aW5nIElFRUUxNTg4LTIwMDggYnkgdGhlCgkgIGxldHRlciBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA1LTE0IDEyOjE4OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdHB0cF9wcml2YXRlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSogbGlicy9nc3QvbmV0L25ldC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcHRwLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcHRwL3B0cC1wcmludC10aW1lcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgcHRwOiBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgUFRQIGNsb2NrCgkgIEdzdFB0cENsb2NrIGltcGxlbWVudHMgYSBQVFAgKElFRUUxNTg4OjIwMDgpIG9yZGluYXJ5IGNsb2NrIGluCgkgIHNsYXZlLW9ubHkgbW9kZSwgdGhhdCBhbGxvd3MgYSBHU3RyZWFtZXIgcGlwZWxpbmUgdG8gc3luY2hyb25pemUKCSAgdG8gYSBQVFAgbmV0d29yayBjbG9jayBpbiBzb21lIHNwZWNpZmljIGRvbWFpbi4KCSAgVGhlIFBUUCBzdWJzeXN0ZW0gY2FuIGJlIGluaXRpYWxpemVkIHdpdGggZ3N0X3B0cF9pbml0KCksIHdoaWNoIHRoZW4KCSAgc3RhcnRzIGEgaGVscGVyIHByb2Nlc3MgdG8gZG8gdGhlIGFjdHVhbCBjb21tdW5pY2F0aW9uIHZpYSB0aGUgUFRQCgkgIHBvcnRzLiBUaGlzIGlzIHJlcXVpcmVkIGFzIFBUUCBsaXN0ZW5zIG9uIHBvcnRzIDwgMTAyNCBhbmQgdGh1cwoJICByZXF1aXJlcyBzcGVjaWFsIHByaXZpbGVnZXMuIE9uY2UgdGhpcyBoZWxwZXIgcHJvY2VzcyBpcyBzdGFydGVkLCB0aGUKCSAgbWFpbiBwcm9jZXNzIHdpbGwgc3luY2hyb25pemUgdG8gYWxsIFBUUCBkb21haW5zIHRoYXQgYXJlIGRldGVjdGVkIG9uCgkgIHRoZSBzZWxlY3RlZCBpbnRlcmZhY2VzLgoJICBnc3RfcHRwX2Nsb2NrX25ldygpIHRoZW4gYWxsb3dzIHRvIGNyZWF0ZSBhIEdzdENsb2NrIHRoYXQgcHJvdmlkZXMgdGhlCgkgIFBUUCB0aW1lIGZyb20gYSBtYXN0ZXIgY2xvY2sgaW5zaWRlIGEgc3BlY2lmaWMgUFRQIGRvbWFpbi4gVGhpcyBjbG9jawoJICB3aWxsIG9ubHkgcmV0dXJuIHZhbGlkIHRpbWVzdGFtcHMgb25jZSB0aGUgdGltZXN0YW1wcyBpbiB0aGUgUFRQIGRvbWFpbgoJICBhcmUga25vd24uIFRvIGNoZWNrIHRoaXMsIHRoZSBHc3RQdHBDbG9jazo6aW50ZXJuYWwtY2xvY2sgcHJvcGVydHkgYW5kCgkgIHRoZSByZWxhdGVkIG5vdGlmeTo6Y2xvY2sgc2lnbmFsIGNhbiBiZSB1c2VkLiBPbmNlIHRoZSBpbnRlcm5hbCBjbG9jawoJICBpcyBub3QgTlVMTCwgdGhlIFBUUCBkb21haW4ncyB0aW1lIGlzIGtub3duLiBBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gd2FpdAoJICBmb3IgdGhpcyB3aXRoIGdzdF9wdHBfY2xvY2tfd2FpdF9yZWFkeSgpLgoJICBUbyBnYXRoZXIgc3RhdGlzdGljcyBhYm91dCB0aGUgUFRQIGNsb2NrIHN5bmNocm9uaXphdGlvbiwKCSAgZ3N0X3B0cF9zdGF0aXN0aWNzX2NhbGxiYWNrX2FkZCgpIGNhbiBiZSB1c2VkLiBUaGlzIGdpdmVzIHRoZQoJICBhcHBsaWNhdGlvbiB0aGUgcG9zc2liaWxpdHkgdG8gY29sbGVjdCBhbGwga2luZHMgb2Ygc3RhdGlzdGljcwoJICBmcm9tIHRoZSBjbG9jayBzeW5jaHJvbml6YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDYtMDMgMTM6MTY6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIEdTVF9DTE9DS19GTEFHX05FRURTX1NUQVJUVVBfU1lOQyBhbmQgcmVsYXRlZCBBUEkKCSAgZ3N0X2Nsb2NrX3dhaXRfZm9yX3N5bmMoKSwgZ3N0X2Nsb2NrX2lzX3N5bmNlZCgpIGFuZCBnc3RfY2xvY2tfc2V0X3N5bmNlZCgpCgkgIHBsdXMgYSBzaWduYWwgdG8gYXN5bmNocm9ub3VzbHkgd2FpdCBmb3IgdGhlIGNsb2NrIHRvIGJlIHN5bmNlZC4KCSAgVGhpcyBjYW4gYmUgdXNlZCBieSBjbG9ja3MgdG8gc2lnbmFsIHRoYXQgdGhleSBuZWVkIGluaXRpYWwgc3luY2hyb25pemF0aW9uCgkgIGJlZm9yZSB0aGV5IGNhbiByZXBvcnQgYW55IHRpbWUsIGFuZCB0aGF0IHRoaXMgc3luY2hyb25pemF0aW9uIGNhbiBhbHNvIGdldAoJICBjb21wbGV0ZWx5IGxvc3QgYXQgc29tZSBwb2ludC4gTmV0d29yayBjbG9ja3MsIGxpa2UgdGhlIEdTdHJlYW1lcgoJICBuZXRjbGllbnRjbG9jaywgTlRQIG9yIFBUUCBjbG9ja3MgYXJlIGV4YW1wbGVzIGZvciBjbG9ja3Mgd2hlcmUgdGhpcyBpcyB1c2VmdWwKCSAgdG8gaGF2ZSBhcyB0aGV5IGNhbid0IHJlcG9ydCBhbnkgdGltZSBhdCBhbGwgYmVmb3JlIHRoZXkncmUgc3luY2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA2LTAzIDE4OjAzOjM2ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHByb3ZpZGUgYSBtZW1fdW5tYXAgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgZmxhZ3MgdG8gdW5tYXAKCSAgVGhlcmUgYXJlIGdzdG1lbW9yeSdzIGF2YWlsYWJsZSB0aGF0IG9wZXJhdGUgaW4gdHdvIG1lbW9yeSBkb21haW5zCgkgIGFuZCBuZWVkIHRvIGVuc3VyZSBjb25zaXN0ZW50IGFjY2VzcyBiZXR3ZWVuIHRoZXNlIGRvbWFpbnMuCgkgIEltYWdpbmUgYSBzY2VuYXJpbyB3aGVyZSBlLmcuIHRoZSBHTE1lbW9yeSBpcyBtYXBwZWQgdHdpY2UgaW4gYm90aAoJICB0aGUgR1BVIGFuZCB0aGUgQ1BVIGRvbWFpbi4gIE9uIHVubWFwIG9yIGEgc3Vic2VxdWVudCBtYXAsIGl0IHdvdWxkCgkgIGxpa2UgdG8gZW5zdXJlIHRoYXQgdGhlIG1vc3QgcmVjZW50IGRhdGEgaXMgYXZhaWxhYmxlIGluIHRoZSBtZW1vcnkKCSAgZG9tYWluIHJlcXVlc3RlZC4gIEVpdGhlciBieSBmbHVzaGluZyB0aGUgd3JpdGVzIGFuZC9vciBpbml0aWF0aW5nIGEKCSAgRE1BIHRyYW5zZmVyLiAgV2l0aG91dCBrbm93aW5nIHdoaWNoIGRvbWFpbiBpcyBiZWluZyB1bm1hcHBlZCwgdGhlCgkgIG1lbW9yeSBkb2VzIG5vdCBrbm93IHdoZXJlIHRoZSBtb3N0IHJlY2VudCBkYXRhIGlzIHRvIHRyYW5zZmVyIHRvCgkgIHRoZSBvdGhlciBtZW1vcnkgZG9tYWluLgoJICBOb3RlOiB0aGlzIHN0aWxsIGRvZXMgbm90IGFsbG93IGRvd25ncmFkaW5nIGEgbWVtb3J5IG1hcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDMxOQoKMjAxNS0wNi0wMiAxNjoxNDo1MCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZ3N0X21lbW9yeV9zaGFyZSBtYXkgZmFpbCB0byBleGNsdXNpdmVseSBsb2NrIHRoZSBwYXJlbnQgbWVtb3J5CgkgIE5vdyB0aGF0IGxvY2tpbmcgZXhjbHVzaXZlbHkgZG93cyBub3QgYWx3YXlzIHN1Y2NlZWQsIHdlIG5lZWQgdG8gc2lnbmFsCgkgIHRoZSBmYWlsdXJlIGNhc2UgZnJvbSBnc3RfbWVtb3J5X2luaXQuCgkgIFJhdGhlciB0aGFuIGludHJvZHVjaW5nIGFuIEFQSSBvciBmdW5jaW9uYWxpdHkgY2hhbmdlIHRvIGdzdF9tZW1vcnlfaW5pdCwKCSAgd29ya2Fyb3VuZCBieSBjaGVja2luZyBleGNsdXNpdml0eSBpbiB0aGUgY2FsbGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTcyCgoyMDE1LTA2LTAyIDAwOjIzOjM3ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBsb2NraW5nIG1lbW9yeSBleGNsdXNpdmVseSBtYXkgZmFpbAoJICBBdHRlbXB0IHRvIHJldHVybiBhIGNvcHkgb2YgdGhlIG1lbW9yeSBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTcyCgoyMDE1LTA1LTMxIDIxOjI1OjIzICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1pbmlvYmplY3Q6IGRpc2FsbG93IGEgZG91YmxlIHdyaXRlL2V4Y2x1c2l2ZSBsb2NrCgkgIGdzdF9tZW1vcnlfbG9jayAobWVtLCBXUklURSB8IEVYQ0xVU0lWRSk7CgkgIGdzdF9tZW1vcnlfbG9jayAobWVtLCBXUklURSB8IEVYQ0xVU0lWRSk7CgkgIFN1Y2NlZWRzIHdoZW4gdGhlIHBhcnQtbWluaW9iamVjdC50eHQgZGVzaWduIGRvYyBzdWdnZXN0cyB0aGF0IHRoaXMgc2hvdWxkIGZhaWw6CgkgICJBIGdzdF9taW5pX29iamVjdF9sb2NrKCkgY2FuIGZhaWwgd2hlbiBhIFdSSVRFIGxvY2sgaXMgcmVxdWVzdGVkIGFuZAoJICB0aGUgZXhjbHVzaXZlIGNvdW50ZXIgaXMgPiAxLiBJbmRlZWQgYSBHc3RNaW5pT2JqZWN0IG9iamVjdCB3aXRoIGFuCgkgIGV4Y2x1c2l2ZSBjb3VudGVyIDEgaXMgbG9ja2VkIEVYQ0xVU0lWRUxZIGJ5IGF0IGxlYXN0IDIgb2JqZWN0cyBhbmQgaXMKCSAgdGhlcmVmb3JlIG5vdCB3cml0YWJsZS4iCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNzIKCjIwMTUtMDYtMDIgMjA6MzI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogbWF0Y2ggcmV0dXJuIHR5cGUgb2YgZ2V0X3VyaV90eXBlKCkgaW1wbGVtZW50YXRpb24gdG8gZGVjbGFyYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDI5MgoKMjAxNS0wNi0wMyAwMDoxMjozNiArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogQWRkIGEgbm90ZSBhYm91dCBtZXRhcyBuZWVkaW5nIHRvIGJlIGNvcGllZCBsYXN0CgoyMDE1LTA1LTI3IDIyOjIzOjAwICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEltcGxlbWVudCBnc3RfdmFsdWVfaXNfc3Vic2V0KCkgZm9yIGZsYWdzZXRzCgoyMDE1LTA2LTAyIDE2OjMzOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgY2hlY2s6IFVzZSBHU1RfQ0hFQ0tfTUFJTiBtYWNybwoKMjAxNS0wNS0yMCAyMToxODowOCArMDkwMCAgZXVuaGFlIGNob2kgPGV1bmhhZTEuY2hvaUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHJlbGVhc2UgbG9jayBiZWZvcmUgcG9zdGluZyBtc2cKCSAgdG8gYXZvaWQgdGhlIGRlYWRsb2NrIGluIHBsYXliaW4yLAoJICBzZW5kIG1zZyBhZnRlciByZWxlYXNlIHRoZSBkb3dubG9hZCBidWZmZXIgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUzNQoKMjAxNS0wNS0zMSAyMDoyMTo0MiAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBub3RlIGFib3V0IG1pc3NpbmcgZmllbGQgY3JlYXRpb24gb24gX3NldCgpCgoyMDE1LTA1LTMwIDEzOjAxOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogZml4IHNvbWUgbGVha3MgaW4gbmV3IGZsYWdzZXQgY2hlY2tzCgoyMDE1LTA1LTMwIDEyOjM5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IHJlbW92ZSBkdXBsaWNhdGUgYXNzaWdubWVudAoJICBXZSd2ZSBhbHJlYWR5IGRvbmUgdGhpcyBlYXJsaWVyIGluIHRoZSBmdW5jdGlvbiwKCSAgYW5kIG5vdGhpbmcgaGFzIGNoYW5nZWQgc2luY2Ugd2UgZmlyc3QgcmVhZCBpdC4KCjIwMTUtMDUtMjcgMTc6MjI6MjggKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0L2dzdC5jOiBBZGQgYSB3YXJuaW5nIGFib3V0IERsbE1haW4gdG8gcHJldmVudCBtaXN1c2UKCSAgRGxsTWFpbiBzaG91bGQgbm90IGJlIHJlbGllZCBvbiBmb3IgYW55dGhpbmcgZXhjZXB0IHN0b3JpbmcgdGhlIERMTCBoYW5kbGUuCgkgIEl0IHNob3VsZCBhbHNvIG5vdCBiZSBkZWZpbmVkIGZvciBzdGF0aWMgYnVpbGRzLCBidXQgZG9pbmcgc28gaXMgbm90CgkgIHN0cmFpZ2h0Zm9yd2FyZCBhbmQgaXMgbW9zdGx5IGhhcm1sZXNzLCBzbyBsZXQncyBqdXN0IGFkZCBhIGNvbW1lbnQgYWJvdXQgdGhhdAoJICBmb3Igbm93LgoKMjAxNS0wNS0yNyAxMzo1NDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgYSBiaXQKCjIwMTUtMDUtMjYgMTQ6NDY6MTYgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGRyYWZ0LWtsYXNzLnR4dAoKMjAxNS0wNS0yNiAxNDowMzoyNSArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvY29kZS1yZXZpZXdzL1JFQURNRToKCSogZG9jcy9jb2RlLXJldmlld3MvZ3N0YmluLmMtMS40MToKCSAgY29kZS1yZXZpZXdzOiByZW1vdmUgb2Jzb2xldGUgY29kZSByZXZpZXdzCgkgIFRoaXMgb2Jzb2xldGUgZm9sZGVyIGhhc24ndCBiZWVuIHRvdWNoZWQgc2luY2UgMjAwMSBhbmQgaGFzIG5vIHB1cnBvc2UuIEl0CgkgIGNvbmZ1c2VzIG5ldyBkZXZlbG9wZXJzLgoKMjAxNS0wNS0yNSAyMTowMjoyOCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIHRoZSBzbGlnaHRseSBtb3JlIGNvcnJlY3QgdGFrZV9zYW1wbGUgZm9yIGxhc3Qtc2FtcGxlCgkgIGdzdF92YWx1ZV90YWtlX2J1ZmZlcigpIGFuZCBnc3RfdmFsdWVfdGFrZV9zYW1wbGUoKSBib3RoIHJlc29sdmUgdG8KCSAgZ192YWx1ZV90YWtlX2JveGVkKCkuICBVc2UgdGhlIG1ldGhvZCB3aXRoIHRoZSBjb3JyZWN0IG5hbWUgaWYgd2UKCSAgZXZlciBjaGFuZ2UgdGhhdC4KCjIwMTUtMDUtMjUgMTY6MjM6MzMgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkIEdzdEZsYWdTZXQgdHlwZQoJICBHc3RGbGFnU2V0IGlzIGEgbmV3IHR5cGUgZGVzaWduZWQgZm9yIG5lZ290aWF0aW5nIHNldHMKCSAgb2YgYm9vbGVhbiBjYXBhYmlsaXRpZXMgZmxhZ3MsIGNvbnNpc3Rpbmcgb2YgYSAzMi1iaXQKCSAgZmxhZ3MgYml0ZmllbGQgYW5kIDMyLWJpdCBtYXNrIGZpZWxkLiBUaGUgbWFzayBmaWVsZAoJICBpbmRpY2F0ZXMgd2hpY2ggb2YgdGhlIGZsYWdzIGJpdHMgYW4gZWxlbWVudCBuZWVkcyB0byBoYXZlCgkgIGFzIHNwZWNpZmljIHZhbHVlcywgYW5kIHdoaWNoIGl0IGRvZXNuJ3QgY2FyZSBhYm91dC4KCSAgVGhpcyBhbGxvd3MgZWZmaWNpZW50IG5lZ290aWF0aW9uIG9mIGFycmF5cyBvZiBib29sZWFuCgkgIGNhcGFiaWxpdGllcy4KCSAgVGhlIHN0YW5kYXJkIHNlcmlhbGlzYXRpb24gZm9ybWF0IGlzIEZMQUdTOk1BU0ssIHdpdGgKCSAgZmxhZ3MgYW5kIG1hc2sgZmllbGRzIGV4cHJlc3NlZCBpbiBoZXhhZGVjaW1hbCwgaG93ZXZlcgoJICBHc3RGbGFnU2V0IGhhcyBhIGdzdF9yZWdpc3Rlcl9mbGFnc2V0KCkgZnVuY3Rpb24sIHdoaWNoCgkgIGFzc29jaWF0ZXMgYSBuZXcgR3N0RmxhZ1NldCBkZXJpdmVkIHR5cGUgd2l0aCBhbiBleGlzdGluZwoJICBHRmxhZ3MgZ3R5cGUuIFdoZW4gc2VyaWFsaXppbmcgYSBHc3RGbGFnU2V0IHdpdGggYW4KCSAgYXNzb2NpYXRlZCBzZXQgb2YgR0ZsYWdzLCBpdCBhbHNvIHNlcmlhbGl6ZXMgYSBodW1hbi1yZWFkYWJsZQoJICBmb3JtIG9mIHRoZSBmbGFncyBmb3IgZWFzaWVyIGRlYnVnZ2luZy4KCSAgSXQgaXMgcG9zc2libGUgdG8gcGFyc2UgYSBHRmxhZ3Mgc3R5bGUgc2VyaWFsaXNhdGlvbiBvZiBhCgkgIGZsYWdzZXQsIHdpdGhvdXQgdGhlIGhleCBwb3J0aW9uIG9uIHRoZSBmcm9udC4gaWUsCgkgICtmbGFnMS9mbGFnMi9mbGFnMytmbGFnNCwgdG8gaW5kaWNhdGUgdGhhdAoJICBmbGFnMSAmIGZsYWc0IG11c3QgYmUgc2V0LCBhbmQgZmxhZzIvZmxhZzMgbXVzdCBiZSB1bnNldCwKCSAgYW5kIGFueSBvdGhlciBmbGFncyBhcmUgZG9uJ3QtY2FyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjM3MwoKMjAxNS0wNS0yMCAyMDoxOToyOSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgYSBjb21wYXJpc2lvbiBmdW5jdGlvbiBmb3IgR3N0U3RydWN0dXJlcwoKMjAxNS0wNS0xOSAxNDozNDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDoga2VlcCBHQ2FuY2VsbGFibGUgZmQgYXJvdW5kIGluc3RlYWQgb2YgcmUtY3JlYXRpbmcgaXQgY29uc3RhbnRseQoJICBKdXN0IGNyZWF0ZSB0aGUgY2FuY2VsbGFibGUgZmQgb25jZSBhbmQga2VlcCBpdCBhcm91bmQgaW5zdGVhZAoJICBvZiBjcmVhdGluZy9jbG9zaW5nIGl0IGZvciBldmVyeSBzaW5nbGUgcGFja2V0LiBTaW5jZSB3ZSBzcGVuZAoJICBtb3N0IHRpbWUgd2FpdGluZyBmb3IgcGFja2V0cywgYW4gZmQgaXMgYWxsb2NlZCBhbmQgaW4gdXNlIHByZXR0eQoJICBtdWNoIGFsbCB0aGUgdGltZSBhbnl3YXkuCgoyMDE1LTA1LTE4IDEyOjUyOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBSZXZlcnQgImRvYzogV29ya2Fyb3VuZCBndGtkb2MgaXNzdWUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDYwYTdiZjY4MjkyZDA1N2M3N2U4NGQxZWE4NmI4ZTczZmMwODFmMy4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgYnkgdGhlIGd0ay1kb2MgMS4yMyByZWxlYXNlLgoJICA8cGFyYT4gY2Fubm90IGNvbnRhaW4gPHJlZnNlY3QyPjoKCSAgaHR0cDovL3d3dy5kb2Nib29rLm9yZy90ZGcvZW4vaHRtbC9wYXJhLmh0bWwKCSAgaHR0cDovL3d3dy5kb2Nib29rLm9yZy90ZGcvZW4vaHRtbC9yZWZzZWN0Mi5odG1sCgoyMDE1LTA1LTExIDEwOjUyOjIzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBzbWFsbCBjbGVhbnVwCgkgIFRoZSBlcnJvciBwYXRoIHVucmVmcyBmaWxlLT5maWxlIHNvIG1ha2Ugc3VyZSB3ZSBvbmx5IGdvIHRoZXJlIHdoZW4KCSAgdGhlcmUgaXMgYSBub24tTlVMTCBmaWxlLT5maWxlLgoKMjAxNS0wNS0xNiAyMzoyOTowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGRvYzogV29ya2Fyb3VuZCBndGtkb2MgaXNzdWUKCSAgV2l0aCBndGtkb2MgMS4yMiwgdGhlIFhNTCBnZW5lcmF0b3IgZmFpbHMgd2hlbiBhIGl0ZW1pemVkbGlzdCBpcwoJICBmb2xsb3dlZCBieSBhIHJlZnNlY3QyLiBXb3JrYXJvdW5kIHRoZSBpc3N1ZSBieSB3cmFwcGluZyB0aGUgcmVmc2VjdDIKCSAgaW50byBwYXJhLgoKMjAxNS0wNS0xMyAxMzoyODowNSAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0xNiAxMjo1NzoxMiArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogQ2hlY2sgdGhhdCB0aGUgb25seSBpdGVyIGlzIHRoZSBlbmQgaXRlciBpbiB0aGUgR1NlcXVlbmNlCgkgIFByZXZpb3VzIHBhdGNoIHdhcyBhc3N1bWluZyB0aGF0IGlmIHRoZSByZXR1cm5lZCBpdGVyIHdhcyB0aGUgbGFzdCBpdGVyCgkgIHRoZSBHU2VxdWVuY2Ugd2FzIGVtcHR5LCB3aGljaCBpcyBvYnZpb3VzbHkgd3JvbmcuCgoyMDE1LTA1LTE2IDExOjE3OjQwICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBGaXggcmVtb3ZpbmcgYWxsIGtleWZyYW1lcywgYW5kIGFkZGluZyBvbmUgYmFjawoJICBXZSB3ZXJlIHNlZ2ZhdWx0aW5nIGJlY2F1c2UgZ19zZXF1ZW5jZV9zZWFyY2ggd2FzIHJldHVybmluZyB0aGUgaXRlcl9lbmQsCgkgIGFuZCB0aGF0IGl0ZXJhdG9yIGRvZXMgbm90IGNvbnRhaW4gYW55dGhpbmcgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSB1c2VkCgkgIGRpcmVjdGx5CgoyMDE1LTA1LTE1IDIwOjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGZpeCBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoJICBXZSdyZSBlbnRlcnByaXNlIG5vdyBmb2xrcy4KCjIwMTUtMDUtMTUgMTQ6NTc6MTQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGJ1bXAgY2hhaW4gZnVuY3Rpb24gY2FsbCBsb2dzIGZyb20gTE9HIHRvIERFQlVHCgkgIFRoZXkncmUgcmVhbGx5IHVzZWZ1bCBjb21wYXJlZCB0byBvdGhlciBMT0cgc3R1ZmYgaW4gdGhlcmUsIHNvCgkgIHRoZXJlIGlzIHZhbHVlIGlzIGluY2x1ZGluZyB0aGVtIGFuZCBub3QgdGhlIHJlc3QuCgoyMDE1LTA1LTE1IDEzOjQzOjEyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogYWRkIGdzdF9vYmplY3RfaGFzX2FzX2FuY2VzdG9yIGFuZCBkZXByZWNhdGUgcHJldmlvdXMgZnVuY3Rpb24KCSAgVGhlIG9sZCBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvciB3aWxsIGNhbGwgdGhlIG5ldyBjb2RlLiBUaGlzIGVzdGFibGlzaGVzIHRoZQoJICBzeW1ldHJ5IHdpdGggdGhlIG5ldyBnc3Rfb2JqZWN0X2hhc19hc19wYXJlbnQuCgkgIEFQSTogZ3N0X29iamVjdF9oYXNfYXNfYW5jZXN0b3IoKQoKMjAxNS0wNS0xNSAwODowNTo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IHJlbmFtZSBnc3Rfb2JqZWN0X2hhc19wYXJlbnQgdG8gZ3N0X29iamVjdF9oYXNfYXNfcGFyZW50CgkgIFRoaXMgYXZvaWQgY29uZnVzaW9uIHdpdGggYSBwb3RlbnRpYWwgcHVuY3Rpb24gdGhhdCBjaGVjayBpZiBhIGdzdG9iamVjdCBoYXMtYQoJICBwYXJlbnQuCgkgIEFQSTogZ3N0X29iamVjdF9oYXNfYXNfcGFyZW50KCkKCjIwMTUtMDUtMTQgMTU6NDk6NDMgKzA4MDAgIEppYW4gPEppYW4uTGlAZnJlZXNjYWxlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEZpeCBRb1MvbGF0ZW5lc3MgY2hlY2tpbmcgaWYgc3ViY2xhc3MgaW1wbGVtZW50cyBwcmVwYXJlL3ByZXBhcmVfbGlzdCB2ZnVuY3MKCSAgSW4gYmFzZXNpbmsgZnVuY3Rpb25zIGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQoKSwgYmVsb3cgY29kZSBpcyB1c2VkIHRvCgkgIGNoZWNraW5nIGlmIGJ1ZmZlciBpcyBsYXRlIGJlZm9yZSBkb2luZyBwcmVwYXJlIGNhbGwgdG8gc2F2ZSBzb21lIGVmZm9ydDoKCSAgaWYgKHN5bmNhYmxlICYmIGRvX3N5bmMpCgkgIGxhdGUgPQoJICBnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlIChiYXNlc2luaywgb2JqLCByc3RhcnQsIHJzdG9wLAoJICBHU1RfQ0xPQ0tfRUFSTFksIDAsIEZBTFNFKTsKCSAgaWYgKEdfVU5MSUtFTFkgKGxhdGUpKQoJICBnb3RvIGRyb3BwZWQ7CgkgIEJ1dCB0aGlzIGNvZGUgaGFzIHByb2JsZW0sIGl0IHNob3VsZCBjYWxjdWxhdGUgaml0dGVyIGJhc2VkIG9uIGN1cnJlbnQgbWVkaWEKCSAgY2xvY2ssIHJhdGhlciB0aGFuIGp1c3QgcGFzc2luZyAwLiBJIGZvdW5kIGl0IHdpbGwgZHJvcCBhbGwgdGhlIGZyYW1lcyB3aGVuCgkgIHJld2luZCBpbiBzbG93IHNwZWVkLCBzdWNoIGFzIC0yWC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTI1OAoKMjAxNS0wNS0xMSAxNzoxNDo1MCArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBkb2NzOiBmaXggYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgkgIFVwZGF0ZSBleGFtcGxlIHRvIHVzZSBnc3QtbGF1bmNoLTEuMCBhbmQgZml4IGEgcGFyYWdyYXBoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjMzCgoyMDE1LTA1LTA5IDExOjUzOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIEFkZCByZW1vdmVkIGV4YW1wbGUgZGlyZWN0b3JpZXMgdG8gQ1JVRlRfRElSUwoKMjAxNS0wNS0wOCAxNDowODo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZG9jczogZ3N0LWxhdW5jaCAtPiBnc3QtbGF1bmNoLTEuMCBpbiBleGFtcGxlIHBpcGVsaW5lcwoJICBBbmQgc29tZSBzbWFsbCBleGFtcGxlIHBpcGVsaW5lIGZpeC11cHMuCgoyMDE1LTA1LTA5IDIyOjEwOjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTA5IDIyOjA0OjUyIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wOSAyMjowMTowNCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTAyIDE3OjE2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGVzIHRvIG1lbnRpb24gbmV3IGRldmljZSBwcm9iaW5nIEFQSQoKMjAxNS0wNS0wMSAyMDozNzoxOCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTAxIDE4OjMyOjI2ICswOTAwICBKaW1teSBPaG4gPHlvbmdqaW4ub2huQGxnZS5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IHJlbW92ZSBkdXBsaWNhdGVkIGluY2x1ZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODczOQoKMjAxNS0wNC0yOCAxOTo1OTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIHRlc3RzOiByZW1vdmUgc29tZSBwb2ludGxlc3MgYW5jaWVudCBjb2RlIGV4YW1wbGVzCgoyMDE1LTA0LTI4IDE3OjU0OjUxICswMzAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggR1NUX0JBU0VfUEFSU0VfRkxBR19MT1NUX1NZTkMKCSAgU2luY2UgZnJhbWUtPnByaXYtPmRpc2NvbnQgd2FzIGNsZWFyZWQgZWFybGllciwKCSAgR1NUX0JBU0VfUEFSU0VfRkxBR19MT1NUX1NZTkMgd2FzIG5ldmVyIGJlaW5nIHNldC4KCSAgVGFrZSB0aGUgY2hhbmNlIHRvIHJlZmFjdG9yIHRoZSBmcmFtZSBjcmVhdGlvbiBhIGJpdCB0bwoJICBvcmdhbml6ZSB0aGUgZmxhZ3Mgc2V0dGluZyBhbmQgcmVzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgyMzcKCjIwMTUtMDMtMDkgMTk6MzE6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzcGVjdCBESVNDT05UIGZsYWcgb24gYnVmZmVycwoJICBEcmFpbiB0aGUgcGFyc2VyIHdoZW4gYSBESVNDT05UIGJ1ZmZlciBpcyByZWNlaXZlZCBhbmQgdGhlbiBtYXJrCgkgIHRoZSBuZXh0IGJ1ZmZlciB0byBiZSBwdXNoZWQgYXMgYSBESVNDT05UIG9uZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTI3CgoyMDE1LTA0LTI4IDE1OjUwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQ29weSB0aGUgdGFnIHNjb3BlIHRvbyB3aGVuIGNvcHlpbmcgdGFnIGxpc3RzCgoyMDE1LTA0LTIwIDIwOjAyOjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogQWxzbyBzeW5jaHJvbml6ZSBHQVAgZXZlbnRzIGluIHN5bmM9MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTIwIDE5OjMxOjM3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBXaXRoIHN5bmM9dHJ1ZSwgZG9uJ3QgcHJlLXJvbGwKCSAgVG8gYWN0IGxpa2UgYSByZWFsIGxpdmUgZWxlbWVudCwgYmxvY2sgdGhlIHN0cmVhbWluZyB3aGVuIHBhdXNlZCwgYW5kCgkgIHJldHVybiBOT19QUkVST0xMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTIwIDE5OjI0OjQ1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBUYWtlIHVwc3RyZWFtIGxhdGVuY3kgaW50byBhY2NvdW50IGZvciBzeW5jPTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yMCAxOTowNzoyNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IEhhbmRsZSBQVFMgYW5kIERUUyBzZXBhcmF0ZWx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjYgMTc6MDU6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJKiBBbmRyb2lkLm1rOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogbGlicy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBvYnNvbGV0ZSBBbmRyb2lkIGJ1aWxkIGNydWZ0CgkgIFRoaXMgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLgoKMjAxNS0wNC0yNCAxNjo1MToyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBPbmx5IHRyeSB0byBwdXNoIHRoZSBmaXJzdCBFT1MgcmVjZWl2ZWQKCSAgU3Vic2VxdWVudCBFT1Mgd2lsbCBwdXNoIG9uIHRoZSBzb3VyY2UgcGFkIHRoYXQgYWxyZWFkeSByZWNlaXZlZAoJICBFT1MgYW5kIHRoYXQgd2lsbCBtYWtlIHRoZSBldmVudCBmdW5jdGlvbiByZXR1cm4gRkFMU0UuIEl0IG5lZWRzCgkgIG9ubHkgdG8gcHVzaCB0aGUgZmlyc3Qgb25lIGFuZCBvbmx5IHJldHVybiBUUlVFIGZvciB0aGUgc3Vic2VxdWVudAoJICBvbmVzLgoKMjAxNS0wNC0yNCAxNToxOToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmludGYuYzoKCSAgdGVzdHM6IHByaW50ZjogYWRkIHVuaXQgdGVzdCBmb3IgJSUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODQxNAoKMjAxNS0wNC0yNCAxNToxNjoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gY2FzZSBvZiAlJQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NDE0CgoyMDE1LTA0LTIzIDE1OjU1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkZWZpbmUgR1NUX0NIRUNLX1RFU1RfRU5WSVJPTk1FTlRfQkVBQ09OCgoyMDE1LTA0LTIzIDE1OjU0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IG9wdGlvbmFsbHkgY2hlY2sgZW52IHZhciBmb3IgdXMgdG8gbWFrZSBzdXJlIHRlc3QgZW52IGlzIHNldCB1cAoJICBJZiBHU1RfQ0hFQ0tfVEVTVF9FTlZJUk9OTUVOVF9CRUFDT04gaXMgZGVmaW5lZCwgY2hlY2sgaWYgdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlIGl0IGlzIGRlZmluZWQgdG8gaXMgc2V0IHVwIGF0IHRoZSBzdGFydAoJICBvZiBlYWNoIHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjI0CgoyMDE1LTA0LTIzIDA5OjA2OjQyICswOTAwICBDaGFuZ2JvayBDaGVhIDxjaGFuZ2Jvay5jaGVhQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZW1vdmUgdW51c2VkIGFzc2lnbm1lbnQgaW4gcGVyZm9ybV9zZWVrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODM0NQoKMjAxNS0wNC0yMiAxMTo0NDowMCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdDogbWVtb3J5OiBBZGRlZCB0ZXN0IHRvIHZlcmlmeSB0aGUgYWxsb2NhdGlvbiBwYXJhbXMKCSAgTmV3IHRlc3QgYWRkZWQgdG8gdmVyaWZ5IHRoZSBhbGxvY2F0aW9uIHBhcmFtcyBmb3IgdGhlIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4Mjc3CgoyMDE1LTA0LTIyIDExOjA0OjA2IC0wNjAwICBKYXNvbiBMaXR6aW5nZXIgPGpsaXR6aW5nZXJAY29udHJvbDQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IGFkZCB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGluZmluaXRlIGxvb3AKCSAgZ3N0X2RlYnVnX3Vuc2V0X3RocmVzaG9sZF9mb3JfbmFtZSgpIHVzZWQgdG8gZ28gaW50byBhbgoJICBpbmZpbml0ZSBsb29wIHdoZW4gdGhlcmUgd2FzIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnkgaW4KCSAgdGhlIGxpc3QuICBUaGlzIHRlc3QgY2FwdHVyZXMgdGhlIHByb2JsZW0gYnkgZmFpbGluZwoJICB2aWEgdGltZW91dC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODMyMQoKMjAxNS0wNC0yMiAxMjowMzozMyAtMDYwMCAgSmFzb24gTGl0emluZ2VyIDxqbGl0emluZ2VyQGNvbnRyb2w0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBpbmZpbml0ZSBsb29wIGluIGdzdF9kZWJ1Z191bnNldF90aHJlc2hvbGRfZm9yX25hbWUoKQoJICBFbnN1cmUgaXRlcmF0b3IgaXMgYWR2YW5jZWQuIFRoZSBjdXJyZW50IGxpc3QgaXRlcmF0aW9uIGNvZGUgb25seQoJICBhZHZhbmNlcyB0aGUgaXRlcmF0b3IgKHdhbGspIGlmIGEgbWF0Y2ggaXMgZm91bmQsIHdoaWNoIHJlc3VsdHMKCSAgaW4gYW4gaW5maW5pdGUgbG9vcCB3aGVuIG1vcmUgdGhhbiBvbmUgZW50cnkgZXhpc3RzIGluIHRoZSBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzIxCgoyMDE1LTA0LTIyIDEwOjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogbWlzY2VsbGFuZW91cyBmaXhlcwoJICBFcnJvciBvdXQgaWYgcmVxdWlyZWQgYnVpbGQgdG9vbHMgKGZsZXgsIGJpc29uLCBwa2ctY29uZmlnKQoJICBhcmUgbm90IHByZXNlbnQsIGluc3RlYWQgb2YgcHJpbnRpbmcgYSBtZXNzYWdlIGFuZCB0aGVuCgkgIGNvbnRpbnVpbmcuCgkgIENoZWNrIG91dCBzdWJtb2R1bGVzIHdoZW4gZmV0Y2hpbmcgdGhlIHJlcG9zaXRvcmllcywgc28KCSAgdGhleSdyZSBhbHJlYWR5IHRoZXJlIGFuZCByZWFkeSBsYXRlci4KCSAgUmVtb3ZlIHNvbWUgMC4xMCBjcnVmdC4KCjIwMTUtMDQtMjIgMDk6NTk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICBBZGQgSU5TVEFMTCB0byAuZ2l0aWdub3JlCgoyMDE1LTA0LTIyIDA5OjU2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgdGVzdHM6IGVycm9yIG91dCBpZiB0ZXN0IGVudmlyb25tZW50IGlzIG5vdCBhY3R1YWxseSBzZXQgdXAgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NDc2MjQKCjIwMTUtMDQtMjIgMDk6NTI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogY2FuIHVzZSBBTV9TSUxFTlRfUlVMRVMgdW5jb25kaXRpb25hbGx5IG5vdwoJICBodHRwczovL2F1dG90b29scy5pby9hdXRvbWFrZS9zaWxlbnQuaHRtbAoKMjAxNS0wNC0yMiAwOTo0NzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIGF1dG9tYWtlIHJlcXVpcmVtZW50IHRvIDEuMTQgYW5kIGF1dG9jb25mIHRvIDIuNjkKCSAgVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGZvciBidWlsZHMgZnJvbSBnaXQsIHBlb3BsZSBjYW4gc3RpbGwKCSAgYnVpbGQgdGFyYmFsbHMgaWYgdGhleSBvbmx5IGhhdmUgb2xkZXIgYXV0b3Rvb2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc0NzYyNAoKMjAxNS0wNC0yMiAxMDozMjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIElOU1RBTEw6CgkgIFJlbW92ZSBJTlNUQUxMIGZpbGUKCSAgYXV0b3Rvb2xzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgdGhpcywgYW5kIHdoZW4gdXNpbmcgZGlmZmVyZW50IHZlcnNpb25zCgkgIGZvciBhdXRvZ2VuLnNoIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGNoYW5nZXMgdG8gYSBmaWxlIHRyYWNrZWQgYnkgZ2l0LgoKMjAxNS0wNC0yMCAyMjowNzozNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdHJlYW1lci11bmluc3RhbGxlZDogVXBkYXRlIHBhdGggdG8gdGhlIEdzdFZhbGlkYXRlIHNjZW5hcmlvcwoKMjAxNS0wNC0yMCAwOToyMzo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgbWV0YSB0cmFuc2Zvcm0gZnVuY3Rpb24gaW4gZ3N0X2J1ZmZlcl9jb3B5X2ludG8oKQoJICAuLi4gYnkgcHJpbnRpbmcgc29tZSBkZWJ1ZyBvdXRwdXQgd2hlbmV2ZXIgY29weWluZyBhIEdzdE1ldGEgZmFpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgxMTkKCjIwMTUtMDQtMTggMTI6MzE6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGZpeCBoZWFkZXIgZm9ybWF0dGluZwoKMjAxNS0wNC0xOCAxMjoyODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIHRlc3RzOiBwcm90ZWN0aW9uOiBmaXggbGVhayBpbiB1bml0IHRlc3QKCjIwMTUtMDQtMTggMTI6Mjc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdC5oOiBpbmNsdWRlIHRoZSBuZXcgZ3N0cHJvdGVjdGlvbi5oIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTA0LTE1IDE1OjMzOjMxICswMTAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwcm90ZWN0aW9uOiBhZGQgR3N0UHJvdGVjdGlvbk1ldGEgdG8gc3VwcG9ydCBwcm90ZWN0ZWQgY29udGVudAoJICBJbiBvcmRlciB0byBzdXBwb3J0IHNvbWUgdHlwZXMgb2YgcHJvdGVjdGVkIHN0cmVhbXMgKHN1Y2ggYXMgdGhvc2UKCSAgcHJvdGVjdGVkIHVzaW5nIERBU0ggQ29tbW9uIEVuY3J5cHRpb24pIHNvbWUgcGVyLWJ1ZmZlciBpbmZvcm1hdGlvbgoJICBuZWVkcyB0byBiZSBwYXNzZWQgYmV0d2VlbiBlbGVtZW50cy4KCSAgVGhpcyBjb21taXQgYWRkcyBhIEdzdE1ldGEgdHlwZSBjYWxsZWQgR3N0UHJvdGVjdGlvbk1ldGEgdGhhdCBhbGxvd3MKCSAgcHJvdGVjdGlvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0byBiZSBhZGRlZCB0byBhIEdzdEJ1ZmZlci4gQW4gZXhhbXBsZQoJICBvZiBpdHMgdXNhZ2UgaXMgcXRkZW11eCBwcm92aWRpbmcgaW5mb3JtYXRpb24gdG8gZWFjaCBvdXRwdXQgc2FtcGxlCgkgIHRoYXQgZW5hYmxlcyBhIGRvd25zdHJlYW0gZWxlbWVudCB0byBkZWNyeXB0IGl0LgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBzZWxlY3QgYSBzdXBwb3J0ZWQgcHJvdGVjdGlvbgoJICBzeXN0ZW0gZnJvbSB0aGUgaW5zdGFsbGVkIERlY3J5cHRpb24gZWxlbWVudHMgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LgoJICBUaGUgZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGFycmF5IG9mCgkgIGlkZW50aWZpZXJzIGFuZCBzZWFyY2hlcyB0aGUgcmVnaXN0cnkgZm9yIGEgZWxlbWVudCBvZiBrbGFzcyBEZWNyeXB0b3IgdGhhdAoJICBzdXBwb3J0cyBvbmUgb3IgbW9yZSBvZiB0aGUgc3VwcGxpZWQgaWRlbnRpZmllcnMuIElmIG11bHRpcGxlIGVsZW1lbnRzCgkgIGFyZSBmb3VuZCwgdGhlIG9uZSB3aXRoIHRoZSBoaWdoZXN0IHJhbmsgaXMgc2VsZWN0ZWQuCgkgIFRoaXMgY29tbWl0IGFkZHMgYSB1bml0IHRlc3QgZm9yIHRoZSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtCgkgIGZ1bmN0aW9uIHRoYXQgYWRkcyBhIGZha2UgRGVjcnlwdG9yIGVsZW1lbnQgdG8gdGhlIHJlZ2lzdHJ5IGFuZCB0aGVuCgkgIGNoZWNrcyB0aGF0IGl0IGNhbiBjb3JyZWN0bHkgYmUgc2VsZWN0ZWQgYnkgdGhlIHV0aWxpdHkgZnVuY3Rpb24uCgkgIFRoaXMgY29tbWl0IGFkZHMgYSB1bml0IHRlc3QgZm9yIEdzdFByb3RlY3Rpb25NZXRhIHRoYXQgY3JlYXRlcwoJICBHc3RQcm90ZWN0aW9uTWV0YSBhbmQgYWRkcyAmIHJlbW92ZXMgaXQgZnJvbSBhIGJ1ZmZlciBhbmQgcGVyZm9ybXMgc29tZQoJICBzaW1wbGUgcmVmZXJlbmNlIGNvdW50IGNoZWNrcy4KCSAgQVBJOiBnc3RfYnVmZmVyX2FkZF9wcm90ZWN0aW9uX21ldGEoKQoJICBBUEk6IGdzdF9idWZmZXJfZ2V0X3Byb3RlY3Rpb25fbWV0YSgpCgkgIEFQSTogZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSgpCgkgIEFQSTogZ3N0X3Byb3RlY3Rpb25fbWV0YV9hcGlfZ2V0X3R5cGUoKQoJICBBUEk6IGdzdF9wcm90ZWN0aW9uX21ldGFfZ2V0X2luZm8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTAzLTE2IDEyOjM1OjI3ICswMDAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IGFkZCBuZXcgR1NUX0VWRU5UX1BST1RFQ1RJT04KCSAgSW4gb3JkZXIgZm9yIGEgZGVjcnlwdGVyIGVsZW1lbnQgdG8gZGVjcnlwdCBtZWRpYSBwcm90ZWN0ZWQgdXNpbmcgYQoJICBzcGVjaWZpYyBwcm90ZWN0aW9uIHN5c3RlbSwgaXQgZmlyc3QgbmVlZHMgYWxsIHRoZSBwcm90ZWN0aW9uIHN5c3RlbQoJICBzcGVjaWZpYyAgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IChFLmcuIGluZm9ybWF0aW9uIG9uIGhvdyB0byBhY3F1aXJlCgkgIHRoZSBkZWNyeXB0aW9uIGtleXMpIGZvciB0aGF0IHN0cmVhbS4KCSAgVGhlIEdTVF9FVkVOVF9QUk9URUNUSU9OIGRlZmluZWQgaW4gdGhpcyBjb21taXQgZW5hYmxlcyB0aGlzIGluZm9ybWF0aW9uCgkgIHRvIGJlIHBhc3NlZCBmcm9tIGVsZW1lbnRzIHRoYXQgZXh0cmFjdCBpdCAoZS5nLiBxdGRlbXV4LCBkYXNoZGVtdXgpIHRvCgkgIGVsZW1lbnRzIHRoYXQgdXNlIGl0IChFLmcuIGEgZGVjcnlwdGVyIGVsZW1lbnQpLgoJICBBUEk6IEdTVF9FVkVOVF9QUk9URUNUSU9OCgkgIEFQSTogZ3N0X2V2ZW50X25ld19wcm90ZWN0aW9uKCkKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDQtMTggMTE6NDI6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCB1c2Ugb2YgcG9zc2libHktZnJlZWQgcGFkIGluIGRlYnVnIHN0YXRlbWVudAoJICBUaGUgZ3N0X29iamVjdF91bnJlZigpIGluIHRoZSBibG9jayBhYm92ZSBtYXkgYmUgZHJvcHBpbmcKCSAgdGhlIGxhc3QgcmVmIHRvIHRoZSBwYWQgYW5kIGZyZWUgdGhlIHBhZC4gU2V0IHBhZCBwb2ludGVyCgkgIHRvIE5VTEwgaGVyZSwgc28gdGhhdCB3ZSBkb24ndCBhY2NpZGVudGFsbHkgdXNlIGEKCSAgcG9zc2libHktZnJlZWQgcGFkIHBvaW50ZXIgaW4gdGhlIGRlYnVnIGxvZyBzdGF0ZW1lbnRzCgkgIGZ1cnRoZXIgYmVsb3csIGFuZCBhbHNvIHVzZSB0aGUgdGVlIGVsZW1lbnQgYXMgbG9nIG9iamVjdAoJICBzaW5jZSB0aGF0J3MgbW9yZSBhcHByb3ByaWF0ZSBhbnl3YXkuCgkgIEZpeGVzIHZhbGdyaW5kIHdhcm5pbmdzIGFuZCBjcmFzaGVzIGluIHRlZSB0ZXN0X3N0cmVzcwoJICB1bml0IHRlc3Qgd2hlbiBkZWJ1ZyBsb2dnaW5nIGlzIGVuYWJsZWQuCgoyMDE1LTA0LTE4IDEyOjAwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IGZpeCB1bml0IHRlc3Qgd2hlbiBydW4gd2l0aCBHU1RfREVCVUc9Kjo5CgkgIE9ubHkgc2F2ZSB0aGUgbWVzc2FnZXMgd2UncmUgaW50ZXJlc3RlZCBpbiBhbmQgZXhwZWN0aW5nLgoJICBXaGVuIHJ1biB3aXRoICo6OSB3ZSBtaWdodCBnZXQgYWRkaXRpb25hbCBUUkFDRSBsZXZlbAoJICBtZXNzYWdlcyBmcm9tIG90aGVyIGNhdGVnb3JpZXMgYW5kIHRoZW4gd2UgZG9uJ3QgZW5kIHVwCgkgIHdpdGggdGhlIG51bWJlciBvZiBtZXNzYWdlcyB3ZSBleHBlY3QuCgoyMDE1LTA0LTE4IDExOjI1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBmaXggYnVmZmVyIGxlYWsgaW4gbmV3IGJsb2NraW5nX3dpdGhfcHJvYmVfdHlwZV9pZGxlIHRlc3QKCjIwMTUtMDQtMTggMTE6MTE6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gZGVidWcgbG9nIG1lc3NhZ2UKCSAgVGhlIHN0cmluZyB3ZSBwdXQgaW4gdGhlIGJ1ZmZlciBpcyBub3QgTlVMLXRlcm1pbmF0ZWQsIHNvCgkgIGRvbid0IHRyeSB0byBwcmludCB0aGF0IHZpYSAlcyBpbiBhIGRlYnVnIGxvZyBtZXNzYWdlLgoKMjAxNS0wNC0xNyAxNToxOTowNyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogb24gT1NYLCBNS0RJUl9QIGlzIGluc3RhbGwtc2ggLWMgLWQKCSAgU28gd2UgbmVlZCB0byBjYWxsIGl0IGJlZm9yZSBjZGluZyB0byB0aGUgYmluIGRpcmVjdG9yeS4KCjIwMTUtMDQtMTcgMTM6MDI6MTIgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IGluc3RhbGwgLUQgaXNuJ3QgcG9ydGFibGUsIHVzZSAkKE1LRElSX1ApIGluc3RlYWQuCgoyMDE1LTA0LTE0IDEwOjQ3OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IHRlc3QgdGhhdCBpZGxlIHByb2JlIHdpbGwgYmxvY2sKCSAgVGhpcyB0ZXN0cyBhZGQgYW4gaWRsZSBwcm9iZSBvbiBhbiBpZGxlIHBhZCBmcm9tIGEgc2VwYXJhdGUgdGhyZWFkCgkgIHNvIHRoYXQgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCBpbW1lZGlhdGVsbHkuIFRoaXMgY2FsbGJhY2sgd2lsbCBzaXQKCSAgc3RpbGwgYW5kIHRoZW4gd2UgdHJ5IHRvIHB1c2ggYSBidWZmZXIgb24gdGhpcyBzYW1lIHBhZC4gSXQgdmVyaWZpZXMKCSAgdGhhdCB0aGUgaWRsZSBwcm9iZSBibG9ja3MgZGF0YSBwYXNzaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc4NTIKCjIwMTUtMDQtMTQgMTc6MDY6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBibG9jayBkYXRhIGZsb3cgd2hlbiBpZGxlIHByb2JlIGlzIHJ1bm5pbmcKCSAgV2hlbiBpZGxlIHByb2JlIHJ1bnMgZGlyZWN0bHkgZnJvbSB0aGUgZ3N0X3BhZF9hZGRfcHJvYmUoKSBmdW5jdGlvbgoJICB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IG5vIGRhdGEgZmxvdyBoYXBwZW5zIGFzIGlkbGUgcHJvYmUKCSAgaXMgYSBibG9ja2luZyBwcm9iZS4gVGhlIGlkbGUgcHJvYmUgd2lsbCBwcmV2ZW50IHRoYXQgYW55CgkgIGJ1ZmZlciwgYnVmZmVybGlzdCBvciBzZXJpYWxpemVkIGV2ZW50cyBhbmQgcXVlcmllcyBhcmUgbm90CgkgIGZsb3dpbmcgd2hpbGUgaXQgaXMgcnVubmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzg1MgoKMjAxNS0wNC0xNiAxMzo0MToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZG9jczogY2xhcmlmeSB0aGF0IHJldHVybiB2YWx1ZSBvZiBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgbXVzdCBiZSBmcmVlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MTA0CgoyMDE1LTA0LTE1IDExOjAyOjU0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgYmluOiB1bmRvIHVwd2FyZCBzdGF0ZSBjaGFuZ2VzIG9uIGNoaWxkcmVuIHdoZW4gYSBjaGlsZCBmYWlscwoJICBXaGVuIGEgYmluIGNoYW5nZXMgc3RhdGVzIHVwd2FyZHMsIGFuZCBhIGNoaWxkIGZhaWxzIHRvIGNoYW5nZSwKCSAgYW55IGNoaWxkIHRoYXQgd2FzIGFscmVhZHkgc3dpdGNoZWQgd2lsbCBub3QgYmUgcmVzZXQgdG8gaXRzCgkgIG9yaWdpbmFsIHN0YXRlLCBsZWF2aW5nIGl0cyBzdGF0ZSBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgYmluLAoJICB3aGljaCBkb2VzIG5vdCBjaGFuZ2Ugc3RhdGUgZHVlIHRvIHRoZSBmYWlsdXJlLgoJICBJZiB0aGUgc3RhdGUgY2hhbmdlIHdhcyBmcm9tIE5VTEwgdG8gUkVBRFksIGl0IG1lYW5zIHRoYXQgZGVsZXRpbmcKCSAgdGhpcyBiaW4gd2lsbCBjYXVzZSB0aG9zZSBjaGlsZHJlbiB0byBiZSBkZWxldGVkIHdoaWxlIG5vdCBpbgoJICBOVUxMIHN0YXRlLCB3aGljaCBpcyBhIEJhZCBUaGluZy4gRm9yIG90aGVyIHVwd2FyZCBjaGFuZ2VzLCBpdAoJICBpcyBsZXNzIG9mIGEgcHJvYmxlbSwgYXMgYSBzdWJzZXF1ZW50IHN3aXRjaCBiYWNrIHRvIE5VTEwgd2lsbAoJICBjYXVzZSBhbiBhY3R1YWwgZG93bndhcmRzIGNoYW5nZSBvbiB0aG9zZSBpbmNvbnNpc3RlbnQgZWxlbWVudHMsCgkgIGFsYmVpdCBmcm9tIHRoZSAid3JvbmciIHN0YXRlLgoJICBXZSBub3cgcmVzZXQgc3RhdGUgdG8gdGhlIG9yaWdpbmFsIG9uZSB3aGVuIGEgY2hpbGQgZmFpbHMuCgkgIEluY2x1ZGVzIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzYxMAoKMjAxNS0wNC0xNSAxNDo0NToyMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogdXNlICQoSU5TVEFMTCkgdG8gLi4uIGluc3RhbGwgdGhlIGhlbHBlci4KCSAgQXMgaXQgd2lsbCBjcmVhdGUgdGhlIGZvbGRlcnMgYW5kIHNldCBwZXJtaXNzaW9ucyBhcHByb3ByaWF0ZWx5LAoJICBiZXR0ZXIgdGhhbiBkb2luZyBpdCBtYW51YWxseS4KCjIwMTUtMDQtMTUgMTM6MDI6MzYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IEZpeCBNYWtlZmlsZS5hbSB0byBpbnN0YWxsIHRoZSBjb21wbGV0aW9uLWhlbHBlciBjb3JyZWN0bHkuCgkgICsgVGhlIHByb2dyYW0gaXMgaW5zdGFsbGVkIGF0IGluc3RhbGwtZXhlYyB0aW1lLCB3ZSB0aHVzIG5lZWQKCSAgdG8gbW92ZSBpdCBpbiBpbnN0YWxsLWV4ZWMtaG9vaywgbm90IGluc3RhbGwtZGF0YS1ob29rLgoKMjAxNS0wNC0xNSAxMTozODozNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmV2ZXJ0ICJiYXNlc3JjOiBmaXggcG9vbCBsZWFrIG9uIGFsbG9jYXRpb24gcXVlcnkgZXJyb3IgcGF0aCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NGZkZjUwYjJmOTg5NTFhMzJmYTE0ODAyYjYyNjIxZjExMDVjZDM1LgoJICBJdCBzZWVtcyB0aGUgYnVnIHdhcyBmaXhlZCBpbmRlcGVuZGVudGx5LCBhbmQgdGhlIG1lcmdlIHdhcwoJICBhdXRvbWFnaWMsIHlpZWxkaW5nIHR3byBleHRyYSBmcmVlIGNhbGxzLgoKMjAxNS0wNC0xNCAxMzo0Mjo1NSArMDkwMCAgU3Vod2FuZyBLaW0gPHN1aHdhbmcua2ltQGxnZS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgdGVzdHM6IGNsb2NrOiBmaXggdGVzdCBjbG9jayBuYW1lCgkgIERvbid0IGNhbGwgdGhlIHNsYXZlIHRlc3QgY2xvY2sgIk1hc3RlciIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzAKCjIwMTUtMDQtMTQgMTc6NDc6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBhZGQgRU5DUllQVE9SIGNsYXNzIGRlZmluZXMKCSAgdG8gZ28gd2l0aCBERUNSWVBUT1IuCgoyMDE1LTAzLTE2IDEzOjExOjU5ICswMDAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBhZGQgREVDUllQVE9SIGNsYXNzIGRlZmluZXMKCSAgQW4gZWxlbWVudCB0aGF0IHBlcmZvcm1zIGRlY3J5cHRpb24gZG9lcyBub3QgbmF0dXJhbGx5IGZpdCB3aXRoaW4gYW55CgkgIG9mIHRoZSBleGlzdGluZyBlbGVtZW50IGZhY3RvcnkgY2xhc3MgdHlwZXMuIEl0IGlzIHVzZWZ1bCB0byBiZSBhYmxlCgkgIHRvIGVhc2lseSBnZXQgYSBsaXN0IG9mIGFsbCBlbGVtZW50cyB0aGF0IHN1cHBvcnQgZGVjcnlwdGlvbiBzbyB0aGF0CgkgIGEgdW5pb24gY2FuIGJlIGNvbXB1dGVkIGJldHdlZW4gdGhlIHByb3RlY3Rpb24gc3lzdGVtcyB0aGF0IGhhdmUgYQoJICBzdXBwb3J0ZWQgZGVjcnlwdG9yIGFuZCB0aGUgYWxsb3dlZCBwcm90ZWN0aW9uIHN5c3RlbXMgZm9yIGEgcGFydGljdWxhcgoJICBzdHJlYW0uCgkgIFRoaXMgY29tbWl0IGFkZHMgYSBuZXcgR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ1JZUFRPUiBhbmQgaXRzCgkgIGFzc29jaWF0ZWQgc3RyaW5nIGlkZW50aWZpZXIgIkRlY3J5cHRvciIuIEl0IGFsc28gYWRkcwoJICBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDUllQVE9SIHRvIEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREFCTEUKCSAgc28gdGhhdCB1cmlkZWNvZGViaW4gY2FuIGF1dG8tcGx1ZyBhIGRlY3J5cHRpb24gZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wNC0xMyAxNzowMTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogVXNlIGdzdF9ldmVudF91bnJlZigpIGluc3RlYWQgb2YgZ3N0X21pbmlfb2JqZWN0X3VucmVmKCkgKyBjYXN0aW5nCgoyMDE1LTA0LTEzIDE0OjQwOjIyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggbGVhayBpbiBnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KCkKCSAgZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCgpIGlzIHN1cHBvc2VkIHRvIGNvbnN1bWUgQGV2ZW50IGJ1dCB3YXNuJ3QKCSAgZG9pbmcgc28gd2hlbiBpdCB3YXMgaGFuZGxpbmcgdGhlIGV2ZW50IGl0c2VsZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzc3NQoJICBTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCjIwMTUtMDQtMTEgMjA6NDQ6MDIgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZXNldCBlcnJubyBiZWZvcmUgZ19hc2NpaV9zdHJ0b3VsbCBjYWxsCgkgICJlcnJubyIgYWxyZWFkeSBoYXMgbWVhbmluZ2xlc3MgdmFsdWUgYmVmb3JlIGdfYXNjaWlfc3RydG91bGwgY2FsbC4KCSAgVGhpcyBjYXVzZXMgaW52YWxpZCBlcnJvciBjaGVjayB3aXRob3V0IHJlc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjkwCgoyMDE1LTA0LTEyIDEzOjEzOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgc2V0IERUUyB0byBzZWdtZW50LnN0YXJ0IG9uIHRoZSBmaXJzdCBidWZmZXIgaWYgc3ViY2xhc3MgZGlkIG5vdCBwcm92aWRlIFBUUwoJICBPdGhlcndpc2Ugd2UncmUgZ29pbmcgdG8gc2V0IGEgcmF0aGVyIGFyYml0cmFyeSBEVFMgb2Ygc2VnbWVudC5zdGFydCAodXN1YWxseQoJICAwKSBmb3IgbGl2ZSBzb3VyY2VzLCB3aGljaCBjb25mdXNlcyBzeW5jaHJvbml6YXRpb24gaWYgdGhlIHNvdXJjZSBzdGFydGVkCgkgIGNhcHR1cmluZyBhdCBhIGxhdGVyIHRpbWUuIEFuZCBpdCdzIGVzcGVjaWFsbHkgd3JvbmcgZm9yIHJhdyBtZWRpYSwgZm9yIHdoaWNoCgkgIHdlIHNob3VsZCBub3Qgc2V0IGFueSBEVFMgYXQgYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NzMxCgoyMDE0LTA5LTAyIDE3OjQwOjI4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJ1biB0aGUgZGVmYXVsdCBoYXZlLXR5cGUgaGFuZGxlciBhZnRlciBhbGwgYXBwbGljYXRpb24gaGFuZGxlcnMKCSAgT3RoZXJ3aXNlIHRoZSBDQVBTIGV2ZW50IHdpbGwgYWxyZWFkeSBiZSBmb3J3YXJkZWQgZG93bnN0cmVhbSBhbmQKCSAgdGhlIGFwcGxpY2F0aW9uIGhhcyBubyB3YXkgdG8gaW50ZXJ2ZW5lIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4OTYKCjIwMTUtMDMtMTAgMTI6NTc6NDQgKzEwMDAgIER1bmNhbiBQYWxtZXIgPGRwYWxtZXJAZGlnaXNvZnQudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgYXV0b21hdGljYWxseSBlbnRlciB0aGUgYnVmZmVyaW5nIHN0YXRlIHdoZW4gdXNlLWJ1ZmZlcmluZyBpcyBzZXQuCgkgIFRoZXJlIGlzIG5vIHJlYXNvbiBJIGNhbiBzZWUgdG8gc2V0IG1xLT5idWZmZXJpbmcgPSBUUlVFIHdoZW4KCSAgdXNlX2J1ZmZlcmluZyBpcyBzZXQ7IHRoZSBjb2RlIGhlcmUgYWxzbyBjYWxscyB1cGRhdGVfYnVmZmVyaW5nKCksIHdoaWNoCgkgIHdpbGwgc2V0IG1xLT5idWZmZXJpbmcgPSBUUlVFIGlmIHRoaXMgaXMgd2FycmFudGVkIGJlY2F1c2Ugb2YgbG93IGJ1ZmZlcgoJICBsZXZlbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU5MzcKCjIwMTUtMDQtMTAgMTI6MzI6MjcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjYWNoZWQgYnVmZmVyIGxlYWsgaW4gY2hhaW4gZnVuY3Rpb24KCSAgZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbigpIHdhcyBwb3BwaW5nIGNhY2hlZCBidWZmZXJzIG91dCBvZiB0aGUgcXVldWUgd2l0aG91dAoJICBmcmVlaW5nIHRob3NlLiBNYWtlIHN1cmUgd2UgZG9uJ3Qgc3RlYWwgdGhlIEdzdEJ1ZmZlciBhcyB0aGUgY2FjaGVkIGJ1ZmZlciByZWYKCSAgaGFzIGJlZW4gcGFzc2VkIHRvIHRoZSBwYWQgY2hhaW4gZnVuY3Rpb24uCgkgIFRoaXMgY2FuIGJlIHJlcHJvZHVjZWQgYnkgcnVubmluZyB0aGUKCSAgdmFsaWRhdGUuZmlsZS5wbGF5YmFjay5zd2l0Y2hfc3VidGl0bGVfdHJhY2tfd2hpbGVfcGF1c2VkLnRlc3Q1X21rdiBzY2VuYXJpbwoJICB3aXRoIFZhbGdyaW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjExCgkgIFNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKMjAxNS0wNC0wOCAxNjowNDoxMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IFVzZSBBTV9URVNUU19FTlZJUk9OTUVOVAoJICBOZWVkZWQgYnkgdGhlIG5ldyBhdXRvbWFrZSB0ZXN0IHJ1bm5lcgoKMjAxNS0wNC0wNyAxNTowMDo0NiArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IG1ha2Ugc3VyZSBsaXN0IGlzIHdyaXRhYmxlIGJlZm9yZSBhZGRpbmcgb3IgcmVtb3ZpbmcgYnVmZmVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDM5CgoyMDE1LTA0LTA3IDE0OjM0OjU4ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogbWlub3IgZG9jcyBhZGRpdGlvbiBmb3IgZ3N0X2J1ZmZlcl9saXN0X2dldCgpCgkgIFJldHVybiBidWZmZXIgcmVtYWlucyB2YWxpZCBhcyBsb25nIGFzIGxpc3QgaXMgdmFsaWQKCSAgYW5kIGJ1ZmZlciBpcyBub3QgcmVtb3ZlZCBmcm9tIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0MzgKCjIwMTUtMDQtMDcgMTE6Mzg6MzEgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBwb29sIGxlYWsgb24gYWxsb2NhdGlvbiBxdWVyeSBlcnJvciBwYXRoCgkgIEl0IGNvdWxkIGJlIHRyaWdnZXJlZCBieToKCSAgZ3N0LWxhdW5jaC0xLjAgdmlkZW90ZXN0c3JjIG51bS1idWZmZXJzPTIwICEgdmlkZWNyb3AgYm90dG9tPTIxNDc0ODM2NCAhIHZpZGVvY29udmVydCAhIGF1dG92aWRlb3NpbmsKCSAgU3BvdHRlZCB3aGlsZSB0ZXN0aW5nOgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzOTEwCgoyMDE1LTA0LTA2IDE4OjQ1OjM3IC0wNzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGb3J3YXJkIFNFR01FTlRfRE9ORSBldmVudHMgaW1tZWRpYXRlbHkKCSAgVGhlcmUgbWlnaHQgYmUgbm8gbW9yZSBkYXRhIGNvbWluZyBhZnRlcndhcmRzLCBhbmQgd2UganVzdCBkcmFpbmVkIGV2ZXJ5dGhpbmcKCSAgdGhhdCB3YXMgbGVmdCB0byBiZSBwdXNoZWQgYW55d2F5LgoKMjAxNS0wNC0wNiAxODo1NjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRvY3M6IGZpeCBjcm9zcy1yZWZlcmVuY2UgdG8gZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIEdzdEluZm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQxNgoKMjAxNS0wNC0wNiAxMDoxODoxNSArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgY2hlY2sgZm9yIHdyaXRhYmxpdHkgaW4gcmVzaXplCgkgIEFkZCBndWFyZCB0byBnc3RfbWVtb3J5X3Jlc2l6ZSgpIHRvIG1ha2Ugc3VyZSB0aGUKCSAgbWVtb3J5IHRvIGJlIHJlc2l6ZWQgaXMgYWN0dWFsbHkgd3JpdGFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDczOTIKCjIwMTUtMDQtMDUgMTY6NDc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBhZGQgdGVzdCB0byBtYWtlIHN1cmUgaW5pdGlhbCBldmVudHMgZ28gdGhyb3VnaCB3aXRob3V0IGJ1ZmZlcnMKCjIwMTUtMDQtMDUgMTY6MDY6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogcXVldWU6IGNoZWNrIHRoYXQgdGhlIGluaXRpYWwgZXZlbnRzIGFyZSBzZW50IG9uIGltbWVkaWF0ZWx5CgkgIEFkZCBhIGNoZWNrIHRoYXQgbWFrZXMgc3VyZSBzdHJlYW0tc3RhcnQsIGNhcHMsIGFuZCBzZWdtZW50IGV2ZW50cwoJICBhcmUgcGFzc2VkIG9uIGJ5IHF1ZXVlIHdpdGhvdXQgZGVsYXksIGkuZS4gZXZlbiBpZiBubyBidWZmZXIgaXMKCSAgc2VudC4KCjIwMTUtMDQtMDQgMTg6MzM6MTggLTA3MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUHJpbnQgZGVidWcgb3V0cHV0IGZyb20gZ3N0X3BhZF9saW5rX2Z1bGwoKSBpZiBwcmVwYXJpbmcgbGlua2luZyBmYWlsZWQKCSAgTWFrZXMgaXQgZWFzaWVyIHRvIGZpbmQgbGlua2luZyBmYWlsdXJlcyBpbiBkZWJ1ZyBsb2dzLgoKMjAxNS0wNC0wNCAxOToyOTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHNtYWxsIGRvY3MgYWRkaXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU2NAoKMjAxNS0wNC0wNCAxODoxODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZG9jczogZGVzaWduOiBmaXggc29tZSAwLjEwLWlzbXMgaW4gR3N0U2VnbWVudCBkb2NzCgkgIDEpIHNlZ21lbnQuYWNjdW0gLT4gc2VnbWVudC5iYXNlCgkgIDIpIFJlZmVyIHRvIEdzdFNlZ21lbnQgbWVtYmVycyBhcyBTLmZvbyBpbnN0ZWFkIG9mCgkgIE5TLmZvbywgdGhlIGV2ZW50IGlzIG5vdyBjYWxsZWQgYSBzZWdtZW50IGV2ZW50CgkgIHJhdGhlciB0aGFuIG5ld3NlZ21lbnQgZXZlbnQuCgkgIDMpIFRoZXJlJ3Mgbm8gbW9yZSBhYnNfcmF0ZSBmaWVsZCBpbiBHc3RTZWdtZW50LAoJICBhbmQgdGhlcmUgbmV2ZXIgd2FzIGFuIGFic19hcHBsaWVkX3JhdGUgZmllbGQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA1NjQKCjIwMTUtMDQtMDQgMDQ6MTQ6NTAgKzAzMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IGxlYWsgYnVmZmVyIHBvb2wgaW4gZXJyb3IgY2FzZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MzIxCgoyMDE1LTA0LTAzIDE5OjEyOjQ4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogU2lsZW5jZSBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhpcyBpcyBhIGZhbHNlIHBvc2l0aXZlIGZvciB1c2UgaW5pdGlhbGl6ZWQuIFRoZSB2YXJpYWJsZSBpcyBzZXQgYW5kCgkgIHVzZWQgZW5jbG9zZWQgaW4gdGhlIHNhZmUgaWYgY29uZGl0aW9uLgoKMjAxNS0wNC0wMyAxNjozMjoxNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwKCjIwMTUtMDQtMDMgMTM6MTk6MTMgLTA3MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IGRvY3VtZW50YXRpb24sIGJ1ZmZlciBwb29scyBhcmUgdW5yZWZmZWQgYW5kIG5vdCBmcmVlZAoKMjAxNS0wNC0wMyAyMDo0MzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIElOU1RBTEw6CgkgIFVwZGF0ZSBJTlNUQUxMIHRvIHRoZSBhdXRvbWFrZSAxLjE0IHZlcnNpb24KCjIwMTUtMDQtMDMgMTg6NTc6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJjNzZhOGIgdG8gYzhmYjM3MgoKMjAxNS0wNC0wMyAxNjoyNzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IGV4cG9ydHMKCjIwMTUtMDMtMTkgMTA6NDU6NTYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBnc3Rfc2VnbWVudF9pc19lcXVhbAoJICBJdCBiZWF0cyBtZW1jbXAgZHVlIHRvIHRoZSAncmVzZXJ2ZWQnIGZpZWxkcy4KCSAgQVBJOiBnc3Rfc2VnbWVudF9pc19lcXVhbCgpCgkgIEZvdW5kIHZpYSwgYnV0IHByb2JhYmx5IG5vdCBkaXJlY3RseSBsaW5rZWQgdG8sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgyMTYKCjIwMTUtMDQtMDMgMDA6MzY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gZXhwb3J0cwoKMjAxNC0wOC0wNiAxMDozMjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFsbG93IHByb2JlcyB0byByZW1vdmUgdGhlIGRhdGEgaXRlbSB3aGlsc3QgcmV0dXJuaW5nIFBST0JFX09LCgkgIFVzZSBjYXNlOiB3ZSB3YW50IHRvIGJsb2NrIHRoZSBzb3VyY2UgcGFkIG9mIGEgbGVha3kgcXVldWUgYW5kCgkgIGRyb3AgdGhlIGJ1ZmZlciB0aGF0IGNhdXNlcyB0aGUgYmxvY2suIElmIHdlIHJldHVybiBQUk9CRV9EUk9QCgkgIHRoZW4gdGhlIGJ1ZmZlciBnZXRzIGRyb3BwZWQsIGJ1dCB3ZSBnZXQgY2FsbGVkIGFnYWluLiBJZiB3ZQoJICByZXR1cm4gUFJPQkVfT0sgd2UgY2FuJ3QgZWFzaWx5IGRyb3AgdGhlIGJ1ZmZlci4gSWYgd2UganVzdAoJICByZXBsYWNlIHRoZSBpdGVtIGludG8gdGhlIEdzdFBhZFByb2JlSW5mbyBzdHJ1Y3R1cmUgd2l0aCBOVUxMLAoJICBHU3RyZWFtZXIgd2lsbCBwdXNoIGEgTlVMTCBidWZmZXIgdG8gdGhlIG5leHQgZWxlbWVudCB3aGVuIHdlCgkgIHVuYmxvY2sgdGhlIHBhZCBwcm9iZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGl0IGRvZXNuJ3QgZG8gdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDM0MgoKMjAxNS0wMi0xMiAxOTozOTo0NCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IERvY3VtZW50IHdoZW4gYSBjbG9jayBpcyBhdmFpbGFibGUgZnJvbSBnc3RfZWxlbWVudF9nZXRfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NDQyCgoyMDE1LTAyLTEyIDE5OjQwOjA2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBwaXBlbGluZTogQWRkIGJpbmRpbmcgZnJpZW5kbHkgZ3N0X3BpcGVsaW5lX2dldF9waXBlbGluZV9jbG9jaygpCgkgIEFsc28gc2tpcCBnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrKCkgYW5kIGdzdF9waXBlbGluZV9zZXRfY2xvY2soKSBmcm9tIHRoZQoJICBiaW5kaW5ncyBhcyB0aGV5IGFyZSBjb25mdXNlZCB3aXRoIGdzdF9lbGVtZW50XypfY2xvY2soKS4KCSAgQVBJOiBnc3RfcGlwZWxpbmVfZ2V0X3BpcGVsaW5lX2Nsb2NrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDQ0MgoKMjAxNS0wNC0wMiAxNzozMjo0MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBTaW5jZSBtYXJrIGZvciBuZXcgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MjQKCjIwMTUtMDItMjAgMTc6NTA6NDggKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIGEgbWV0aG9kIHRvIGxldCBzdWJjbGFzc2VzIGNsZWFubHkgdXBkYXRlIHNyY3BhZCBjYXBzCgkgIEFQSToKCSAgZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9zcmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyNAoKMjAxNS0wNC0wMiAyMToxODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGRvY3M6IHB3ZzogZml4IG1pc3NpbmcgY29tbWEgYW5kIDAuMTAtaXNtIGluIGNvZGUgc2FtcGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyNjcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzI2NgoKMjAxNS0wNC0wMiAxOToyOTo0NiArMDMwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBpbXByb3ZlIGRvY3MgZm9yIF9jb3B5KCkgYW5kIF9zaGFyZSgpCgoyMDE1LTA0LTAyIDExOjQyOjIwICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdDogZmlsZXNpbms6IGFkZCB0ZXN0cyBmb3IgYnVmZmVycyB3aXRoIG11bHRpcGxlIG1lbW9yeSBibG9ja3MKCSAgVXBkYXRlIHRlc3Rfc2Vla2luZyB0ZXN0Y2FzZSB0byB2ZXJpZnkgdGhlIHJlbmRlciBhbmQgcmVuZGVyX2xpc3QKCSAgdmlydHVhbCBtZXRob2QgaGFuZGxlIGJ1ZmZlcnMgYW5kIGJ1ZmZlciBsaXN0IGNvbnRhaW5pbmcgbXVsdGlwbGUKCSAgbWVtb3J5IGJsb2NrcyBjb3JyZWN0bHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyMjMKCjIwMTUtMDQtMDIgMDk6NDQ6MzMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFkZCBhIEZJWE1FIGZvciAyLjAgYWJvdXQgcmVxdWVzdF9uZXdfcGFkIFZTIHJlcXVlc3RfcGFkIG5hbWluZwoKMjAxNS0wNC0wMiAwOTozNDowMCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IHJlcXVlc3RfbmV3X3BhZCBpbnRyb3NwZWN0aW9uCgkgIE1hcmtpbmcgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQgYXMgdGhlIGNhbGxlciBvZiB0aGUgLT5yZXF1ZXN0X25ld19wYWQKCSAgdmlydHVhbCBtZXRob2QuCgoyMDE1LTA0LTAxIDA5OjIwOjI0ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdHM6IGZpbGVzaW5rOiBhZGQgY2hlY2sgZm9yIHJlbmRlcl9saXN0IHZpcnR1YWwgbWV0aG9kCgkgIEdzdEZpbGVTaW5rIGltcGxlbWVudHMgdGhlIHJlbmRlcl9saXN0IHZpcnR1YWwgbWV0aG9kIHRvIHJlbmRlcgoJICBhIGxpc3Qgb2YgYnVmZmVycy4gVXBkYXRlIHRoZSB0ZXN0X3NlZWtpbmcgdGVzdCBjYXNlIHRvIGFsc28KCSAgY2hlY2sgdGhlIHJlbmRlcl9saXN0IG1ldGhvZCBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzEwMAoKMjAxNS0wNC0wMSAxMjoxMzoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBuaWNlciBwcmludGluZyBvZiBjYXBzIGZlYXR1cmVzCgkgIE9ubHkgcHJpbnQgaW50ZXJlc3RpbmcgY2FwcyBmZWF0dXJlcywgZG9uJ3QKCSAgYXBwZW5kIChtZW1vcnk6U3lzdGVtTWVtb3J5KSB0byBhbGwgY2FwcywKCSAgd2hpY2ggbWFrZXMgdGhlbSBtdWNoIG1vcmUgdW53aWVsZHkgYW5kCgkgIGhhcmRlciB0byByZWFkLiBBbHNvIHVzZSBpbnRlcm5hbCBmdW5jdGlvbgoJICB0byBnZXQgY2FwcyBmZWF0dXJlcyBzbyB0aGF0IG91ciBwcmludGluZwoJICBoYXMgbm8gc2lkZSBlZmZlY3RzIG9uIHRoZSBjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2ODA5CgoyMDE1LTAzLTI2IDEzOjA1OjU3ICswMTAwICBMdWJvc3ogU2FybmVja2kgPGx1Ym9zei5zYXJuZWNraUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBwbG90IGNhcHMgZmVhdHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjgwOQoKMjAxNS0wMy0zMSAyMzo0ODoyMiArMDkwMCAgV29uY2h1bCBMZWUgPGNodWwwODEyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggYSB0eXBvIGluIGEgZG9jc3RyaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxMTkKCjIwMTUtMDMtMzEgMTE6MTU6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IERvbid0IHVzZSBnLWlyLXNjYW5uZXIgY2FjaGUgYXQgY29tcGlsZSB0aW1lCgkgIEl0IHBvbGx1dGVzIHVzZXIgZGlyZWN0b3JpZXMgYW5kIHdlIGRvbid0IG5lZWQgdG8gY2FjaGUgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzA5NQoKMjAxNS0wMy0yOCAxNDo0NTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggb3V0ZGF0ZWQgZGVidWcgbWVzc2FnZQoJICBCdWZmZXIgbGlzdHMgZG9uJ3QgaGF2ZSBncm91cHMgYW55IG1vcmUgaW4gMS4wCgoyMDE1LTAzLTI3IDE4OjIwOjM3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRmx1c2gtc3RvcCBzdGFydHMgbGl2ZSB0YXNrIGluIHBhdXNlZAoJICBUaGUgZmx1c2gtc3RvcCBldmVudCBzaG91bGQgbm90IHJlc3RhcnQgdGhlIHRhc2sgZm9yIGxpdmUgc291cmNlcyB1bmxlc3MKCSAgdGhlIGVsZW1lbnQgaXMgcGxheWluZy4gVGhpcyB3YXMgYnJlYWtpbmcgc2Vla3MgaW4gcGF1c2Ugd2l0aCB0aGUgcnRwc3JjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1NzAxCgoyMDE1LTAzLTI3IDE2OjIzOjQwICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdHM6IGNoZWNrIGxvY2F0aW9uIGlzbid0IHRydW5jYXRlZAoJICBUZXN0IGNvdmVyaW5nIHRoZSByZWNlbnQgY29tbWl0IHdoZXJlIGxvY2F0aW9uPSciLmFiYycgd29uJ3QgZ2V0IHRydW5jYXRlZAoJICB0byAnLmFiJyBhbnltb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg2MjUKCjIwMTUtMDMtMjYgMTc6MDE6MDYgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBvbmx5IHVud3JhcCBzdHJpbmcgZGVsaW1pdGVkIHdpdGggIgoJICBEb24ndCB1bndyYXAgc3RyaW5ncyB0aGF0IHN0YXJ0IGJ1dCBkb24ndCBmaW5pc2ggd2l0aCBhIGRvdWJsZSBxdW90ZS4gSWYgYQoJICBzdHJpbmcgaXMgZGVsaW1pdGVkIGJ5IHR3byBxdW90ZXMgd2UgdW5lc2NhcGUgdGhlbSBhbmQgYW55IHNwZWNpYWwgY2hhcmFjdGVycwoJICBpbiB0aGUgbWlkZGxlIChsaWtlIFwiIG9yIFxcKS4gSWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvciB0aGUgbGFzdCBjaGFyYWN0ZXIKCSAgYXJlbid0IGEgcXVvdGUgd2UgYXNzdW1lIGl0J3MgcGFydCBvZiBhbiB1bmVzY2FwZWQgc3RyaW5nLgoJICBNb3ZlZCBzb21lIGRlc2VyaWFsaXplX3N0cmluZyB1bml0IHRlc3RzIGJlY2F1c2Ugd2UgZG9uJ3QgdHJ5IHRvIHVud3JhcCBzdHJpbmdzCgkgIG1pc3NpbmcgdGhhdCBzZWNvbmQgcXVvdGUgYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODYyNQoKMjAxNS0wMy0yNyAxNzoxNjowMyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBjaGVjayBiZWZvcmUgdHJ1bmNhdGluZyBzdHJpbmdzCgkgIERvbid0IHRydW5jYXRlIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIHN0cmluZyBpZiBpdCBpc24ndCBuZWNlc3NhcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg2MjUKCjIwMTUtMDMtMjcgMTA6MTU6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIGd1YXJkcyBhZ2FpbnN0IGludmFsaWQgYXJndW1lbnRzIHRvIHNldF9mbHVzaGluZygpIGFuZCBwb2xsKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Njg3MQoKMjAxNS0wMy0yNSAxMDo0OTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBvbmx5IHBvc3QgJ25vIHZhbGlkIGZyYW1lcycgZXJyb3IgaWYgYnVmZmVycyB3ZXJlIHJlY2VpdmVkCgkgIE90aGVyd2lzZSBiYXNlcGFyc2Ugd2lsbCBjb25zaWRlciBlbXB0eSBzdHJlYW1zIHRvIGJlIGFuIGVycm9yIHdoaWxlCgkgIGFuIGVtcHR5IHN0cmVhbSBpcyBhIHZhbGlkIHNjZW5hcmlvLiBXaXRoIHRoaXMgcGF0Y2gsIGVycm9ycyB3b3VsZAoJICBvbmx5IGJlIGVtaXR0ZWQgaWYgdGhlIHBhcnNlciByZWNlaXZlZCBkYXRhIGJ1dCB3YXNuJ3QgYWJsZSB0bwoJICBwcm9kdWNlIGFueSBvdXRwdXQgZnJvbSBpdC4KCSAgVGhpcyBjaGFuZ2UgaXMgb25seSBmb3IgcHVzaC1tb2RlIG9wZXJhdGlvbiBhcyBpbiBwdWxsIG1vZGUgYW4KCSAgZW1wdHkgZmlsZSBjYW4gYmUgY29uc2lkZXJlZCBhbiBlcnJvciBmb3IgdGhlIG9uZSBkcml2aW5nIHRoZQoJICBwaXBlbGluZQoJICBJbmNsdWRlcyBhIHVuaXQgdGVzdCBmb3IgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE3MQoKMjAxNS0wMy0xOSAxMDozNjoxMSArMDEwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IEFkZCBhbGxvdy1ub3QtbGlua2VkIHByb3BlcnR5CgkgIFRoaXMgcHJvcGVydHkgYXZvaWRzIG5vdCBsaW5rZWQgZXJyb3Igd2hlbiBhbGwgdGhlIHBhZHMgYXJlIHVubGlua2VkCgkgIG9yIHdoZW4gdGhlcmUgYXJlIG5vIHNvdXJjZSBwYWRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBkeW5hbWljIHBpcGVsaW5lcwoJICB3aGVyZSBpdCBjYW4gaGFwcGVuIHRoYXQgZm9yIGEgc2hvcnQgdGltZSB0aGVyZSBhcmUgbm8gcGFkcyBhdCBhbGwgb3IKCSAgYWxsIGRvd25zdHJlYW0gcGFkcyBhcmUgbm90IGxpbmtlZCB5ZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzYKCjIwMTUtMDMtMjEgMTc6MTM6MTggLTA1MDAgIE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBGaXggdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjU4NQoKMjAxNS0wMy0yMSAxNTo0Njo1MCAtMDUwMCAgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTg1CgoyMDE1LTAzLTI0IDE2OjA0OjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogYWRkIGRyYWluIGhhbmRsaW5nCgkgIFJlbGVhc2UgdGhlIGxhdGVzdCBidWZmZXIsIGlmIGFueSwgYW5kIHRoZW4ganVzdCBsZXQKCSAgdGhlIGRyYWluIGJlIHB1c2hlZCBkb3duc3RyZWFtCgoyMDE1LTAzLTI0IDE5OjMyOjQ5ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgUmV2ZXJ0ICJGaXggZGlzdGNoZWNrIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU2ZGQyZDg5YzRlYWM0NjBjYmMzN2UyYTUxYzFkZDllNzkyOTk5ZTguCgkgIEluc3RhbGxpbmcgY29tcGxldGlvbnMgdG8gYSBjdXN0b20gcHJlZml4IGlzIG5vdyBmaXhlZC4KCjIwMTUtMDMtMjQgMTk6MzA6NTIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHJlbW92ZSBjb21wbGV0aW9uLWhlbHBlciBvbiB1bmluc3RhbGwKCSAgKyBBbmQgYWRkIGl0IHRvIENMRUFORklMRVMKCjIwMTUtMDMtMTggMTk6Mzg6MTUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdDoKCSAgY29tcGxldGlvbnM6IHJlbW92ZSBsYXN0IHVubmFtZXNwYWNlZCBzeW1ib2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3CgoyMDE1LTAzLTE4IDE0OjQ0OjIxICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSAgY29tcGxldGlvbnM6IHJlbW92ZSBkZXByZWNhdGVkIHNoZWxsIHN5bnRheC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NyNjMjEKCjIwMTUtMDMtMTggMTQ6Mzc6MTEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJICBjb21wbGV0aW9uczogcHJlZml4IHNoZWxsIGZ1bmN0aW9ucyB3aXRoIF9nc3QKCSAgKyBUbyBtYWtlIGl0IG1vcmUgZGlmZmljdWx0IGZvciB0aGVtIHRvIGNvbmZsaWN0IGluIHRoZQoJICBnbG9iYWwgbmFtZXNwYWNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3I2MyMQoKMjAxNS0wMy0yNCAxMzoxMzoyOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhc2gtY29tcGxldGlvbjogUmVzcGVjdCB0aGUgcHJlZml4CgkgIERvbid0IHRyeSBhbmQgaW5zdGFsbCB0aGUgYmFzaCBoZWxwZXJzIG91dHNpZGUgdGhlIGRlZmluZWQgcHJlZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3CgoyMDE0LTExLTE5IDEzOjA4OjQ1ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVuYW1lIF9hY3RpdmF0ZV9zaW5rcGFkIHRvIF9nZXRfYWN0aXZlX3NpbmtwYWQKCSAgUmVtb3ZlcyB0aGUgbm93IHVudXNlZCAncGFkJyBwYXJhbWV0ZXIgYW5kIHJlbmFtZXMgdGhlIGZ1bmN0aW9uCgkgIHRvIHNvbWV0aGluZyBtb3JlIGFwcHJvcHJpYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjIwCgoyMDE0LTExLTE5IDEzOjAzOjIxICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIHBhZCdzICdhY3RpdmUnIGZpZWxkCgkgIFRoaXMgaXMgbm93IG5ldmVyIHJlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2MjAKCjIwMTQtMTEtMTkgMTI6NTk6MTIgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBVc2Ugc2VnbWVudC1wcmVzZW5jZSBmb3IgcnVubmluZ190aW1lIGNoZWNrCgkgIFdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciB0aGUgcnVubmluZ190aW1lIG9mIGEgcGFkIGNhbiBiZQoJICBjYWxjdWxhdGVkLCBjaGVjayBpZiB0aGUgc2VnbWVudCBpcyBpbiBUSU1FIGZvcm1hdCBpbnN0ZWFkCgkgIG9mIHVzaW5nIHRoZSAnYWN0aXZlJyBmaWVsZC4KCSAgU2luY2UgdGhlIGxhdHRlciBpcyBzZXQgdGhyb3VnaCAqYW55KiBhY3Rpdml0eSwgaXQncyBub3QgYQoJICByZWxpYWJsZSBpbmRpY2F0b3Igb2Ygc2VnbWVudCBwcmVzZW5jZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYyMAoKMjAxNS0wMy0yMyAxMzoyMDozNCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgJ2Jsb2NrZWQnIGZsYWcKCSAgV2l0aCB0aGUgZGlzYXBwZWFyYW5jZSBvZiB0aGUgJ2Jsb2NrJyBzaWduYWwsIHRoaXMKCSAgZmxhZyBjYW5ub3QgYmUgc2V0IHRvIFRSVUUuCgkgIGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0IGRpc2FwcGVhcnMgYXMgaXQgbmV2ZXIgd2FpdHMKCSAgYW5kIGp1c3QgcmV0dXJucyBzZWxmLT5mbHVzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjg5MQoKMjAxNS0wMy0yMyAxMjoxMjo1MSArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgb2Jzb2xldGUgJ2Jsb2NrJyBzaWduYWwKCSAgVGhpcyBzaWduYWwgYmxvY2tzIHRoZSBpbnB1dC1zZWxlY3RvciB3aXRoIG5vIG1lYW5zIG9mIHVuYmxvY2tpbmcKCSAgb3RoZXIgdGhhbiBhIHN0YXRlIGNoYW5nZSBiYWNrIHRvIFJFQURZLiBJdCBzZWVtcyB0aGlzIHNpZ25hbCB3YXMKCSAgcGFydCBvZiBhbiBvbGQgd2F5IG9mIHN5bmNocm9ub3VzbHkgc3dpdGNoaW5nIHRoZSBzZWxlY3RvciwKCSAgdG9nZXRoZXIgd2l0aCB0aGUgYWxyZWFkeS1yZW1vdmVkICdzd2l0Y2gnIHNpZ25hbC4KCSAgUmVtb3ZpbmcgdGhlIHNpZ25hbCBpcyBzYWZlLCBhcyBhdHRlbXB0aW5nIHRvIHVzZSBpdCBjb3VsZCBvbmx5CgkgIGVuZCBpbiBkZWFkbG9ja3MuIEF0dGVtcHRpbmcgdG8gZW1pdCBhbiB1bmtub3duIHNpZ25hbCBqdXN0IGNhdXNlcwoJICBnX2NyaXRpY2Fscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjg5MQoKMjAxNS0wMy0yMyAxMzowNTozMCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZpeCB3YWl0aW5nIG9uIEVPUwoJICBUaGlzIGFwcGFyZW50bHkgZ290IGJyb2tlbiBieSBiYzFlYzRlLiBTaW5jZSBzZWxmLT5ibG9ja2VkIGlzIGFsd2F5cwoJICBGQUxTRSwgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgbmV2ZXIgYWN0dWFsbHkgd2FpdHMuCgkgIFVzaW5nICghc2VsZi0+ZW9zIHx8IHNlbGYtPmJsb2NrZWQpICYmIC4uLiBhcyB0aGUgbG9vcCBjb25kaXRpb24gd291bGQKCSAgYmUgaW5jb3JyZWN0IGFzIHdlbGwsIGJlY2F1c2UgdGhlbiB0aGUgb3RoZXIgY2FsbCB0byB0aGUgZnVuY3Rpb24gaW4KCSAgX2NoYWluIHdvdWxkIGJsb2NrIHVudGlsIEVPUywgc28gdGhlIGZ1bmN0aW9ucyBjYW5ub3QgYmUgbWVyZ2VkIHRyaXZpYWxseS4KCSAgU2luY2UgYmxvY2tpbmcgaXMgb2Jzb2xldGUsIGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0IHdpbGwgZ2V0IHJlbW92ZWQgYW55d2F5LgoJICBBcyBzdWNoLCBqdXN0IGlubGluZSB0aGUgbG9vcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUxOAoKMjAxNS0wMy0yMCAwNzoyMzo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGlucHV0LXNlbGVjdG9yOiBuZXcgdGVzdHMgZm9yIEVPUyBoYW5kbGluZwoJICAzIG5ldyB0ZXN0czoKCSAgMSkgVGVzdHMgdGhhdCBhIHN0cmVhbSB0aGF0IGlzIGVtcHR5IChqdXN0IGFuIEVPUyBldmVudCkKCSAgb24gaW5hY3RpdmUgcGFkIGRvZXNuJ3QgZ2V0IHRocm91Z2ggYW5kIHRhbXBlcgoJICB3aXRoIHRoZSBhY3RpdmUgcGFkIHRoYXQgc3RpbGwgaGFzIGRhdGEKCSAgMikgVGVzdHMgdGhhdCBhIHN0cmVhbSB0aGF0IGlzIHNob3J0ZXIgdGhhbiB0aGUgYWN0aXZlIG9uZQoJICAocHVzaGVzIEVPUyBlYXJsaWVyKSBkb2Vzbid0IGhhcyBpdHMgRU9TIHB1c2hlZAoJICAzKSBUZXN0cyB0aGF0IHN3aXRjaGluZyB0byBhbiBpbmFjdGl2ZSBzdHJlYW0gdGhhdCBoYXMgcmVjZWl2ZWQKCSAgRU9TIHdpbGwgbWFrZSBpbnB1dC1zZWxlY3RvciBwdXNoIEVPUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTE4CgoyMDE1LTAzLTE5IDEyOjExOjE5ICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogc2VsZWN0b3I6IHJlbW92ZSB3ZWlyZCBzZW1pY29sb25zIGF0IHRoZSBlbmQgb2YgdGVzdCBmdW5jdGlvbnMKCSAgRXZlbiB0aG91Z2ggaXQgd29ya3MsIGl0IGlzIG5vdCBuZWVkZWQgYW5kIHNlZW1zIG1vcmUgbmF0dXJhbAoJICB0byBub3QgaGF2ZSBzZW1pY29sb25zIGF0IHRoZSBlbmQgb2YgZnVuY3Rpb24gZGVjbGFyYXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MTgKCjIwMTQtMDctMTcgMTY6MzM6MjkgKzAyMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFByb2Nlc3MgU0VFS0lORyBxdWVyeQoJICBBZGQgUVVFUllfU0VFS0lORyBoYW5kbGluZyB0byBxdWV1ZTIsIHNvIFJUTVAgbGl2ZSBzdHJlYW1zIGJlY29tZQoJICBzZWVrYWJsZSB3aGVuIGEgcXVldWUyIGluIGRvd25sb2FkIG9yIHJpbmdidWZmZXIgbW9kZSBpcyBpbnNlcnRlZDoKCSAgcnRtcHNyYyAhIHF1ZXVlMiAhIGZsdmRlbXV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMzNTEKCjIwMTUtMDMtMjEgMTk6Mzc6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBnY2MKCSAgY2hlY2tfcnVuLmM6IEluIGZ1bmN0aW9uICdzaWdfaGFuZGxlcic6CgkgIGNoZWNrX3J1bi5jOjEyNzoxMzogd2FybmluZzogJ2NoaWxkX3NpZycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIGtpbGxwZyhncm91cF9waWQsIGNoaWxkX3NpZyk7CgkgIF4KCSAgY2hlY2tfcnVuLmM6MTMwOjMxOiB3YXJuaW5nOiAnaWR4JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5YmUtdW5pbml0aWFsaXplZF0KCSAgc2lnYWN0aW9uKHNpZ19uciwgJm9sZF9hY3Rpb25baWR4XSwgTlVMTCk7CgkgIF4KCjIwMTUtMDMtMjEgMTU6MTk6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IENhdGNoIFNJR1RFUk0gYW5kIFNJR0lOVCBpbiB0aGUgdGVzdCBydW5uZXIgYW5kIGtpbGwgYWxsIGN1cnJlbnRseSBydW5uaW5nIHRlc3RzCgkgIE90aGVyd2lzZSBlLmcuIGN0cmwrYyBpbiB0aGUgdGVzdCBydW5uZXIgZXhpdHMgdGhlIHRlc3QgcnVubmVyLCB3aGlsZSB0aGUgdGVzdAoJICBpdHNlbGYgaXMgc3RpbGwgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZCwgdXNlcyBDUFUgYW5kIG1lbW9yeSBhbmQgcG90ZW50aWFsbHkKCSAgbmV2ZXIgZXhpdHMgKGUuZy4gaWYgdGhlIHRlc3QgcmFuIGludG8gYSBkZWFkbG9jayBvciBpbmZpbml0ZSBsb29wKS4KCSAgVGhlIHJlYXNvbiB3aHkgd2UgaGF2ZSB0byBtYW51YWxseSBraWxsIHRoZSBhY3R1YWwgdGVzdHMgaXMgdGhhdCBhZnRlcgoJICBmb3JraW5nIHRoZXkgd2lsbCBiZSBtb3ZlZCB0byB0aGVpciBvd24gcHJvY2VzcyBncm91cCwgYW5kIGFzIHN1Y2ggYXJlCgkgIG5vdCByZWNlaXZpbmcgYW55IHNpZ25hbHMgc2VudCB0byB0aGUgdGVzdCBydW5uZXIgYW55bW9yZS4gVGhpcyBpcyBzdXBwb3NlZAoJICB0byBiZSBkb25lIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGtpbGwgYSB0ZXN0LCB3aGljaCBpdCBvbmx5IHJlYWxseSBkb2VzIGlmCgkgIHRoZSB0ZXN0IGl0c2VsZiBpcyBmb3JraW5nIG9mZiBuZXcgcHJvY2Vzc2VzLgoJICBUaGlzIGZpeCBpcyBub3QgY29tcGxldGUgdGhvdWdoLiBTSUdLSUxMIGNhbid0IGJlIGNhdWdodCBhdCBhbGwsIGFuZCBlcnJvcgoJICBzaWduYWxzIGxpa2UgU0lHU0VHViwgU0lHRlBFIGFyZSBjdXJyZW50bHkgbm90IGNhdWdodC4gVGhlIGxhdHRlciB3aWxsIG9ubHkKCSAgaGFwcGVuIGlmIHRoZXJlIGlzIGEgYnVnIGluIHRoZSB0ZXN0IHJ1bm5lciBpdHNlbGYsIGFuZCBhcyBzdWNoIHNlZW0gbGVzcwoJICBpbXBvcnRhbnQuCgoyMDE1LTAzLTE5IDEzOjUxOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRG9uJ3QgZHJvcCBub24tc2VyaWFsaXplZCBxdWVyaWVzIHdoZW4gdGhlIHZhbHZlIGlzIGRyb3BwaW5nCgkgIE90aGVyd2lzZSB3ZSBlbmQgdXAgZHJvcHBpbmcgZS5nLiBDQVBTIHF1ZXJpZXMsIGFuZCB0aGVuIHVwc3RyZWFtIGp1c3QKCSAgbmVnb3RpYXRlcyB0byB3aGF0ZXZlciBmb3JtYXQgaXQgd2FudHMgdG8uIE9uY2UgdGhlIHZhbHZlIGlzIG5vdC1kcm9wcGluZwoJICBhbnltb3JlIHRoaXMgY2FuIGVhc2lseSByZXN1bHQgaW4gbmVnb3RpYXRpb24gZmFpbGluZyBjb21wbGV0ZWx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDQ4CgoyMDE1LTAzLTIwIDA5OjAwOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IHJlbW92ZSB0aGUgYm91bmRzIGNoZWNrIGZyb20gX3RvX3J1bm5pbmdfdGltZV9mdWxsKCkKCSAgRG8gbm90IGRvIGFueSBjaGVja3MgZm9yIHRoZSBzdGFydC9zdG9wIGluIHRoZSBuZXcKCSAgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwoKSBtZXRob2QsIHdlIGNhbiBsZXQgdGhpcyBiZSBkb25lIGJ5CgkgIHRoZSBtb3JlIGNhcGFibGUgZ3N0X3NlZ21lbnRfY2xpcCgpIG1ldGhvZC4gVGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZQoJICBlbnVtIG9mIHJlc3VsdHMgYW5kIG9ubHkgcmV0dXJuIHRoZSBzaWduIG9mIHRoZSBjYWxjdWxhdGVkIHJ1bm5pbmctdGltZS4KCSAgV2UgbmVlZCB0byBwdXQgdGhlIG9sZCBjbGlwcGluZyBjaGVja3MgaW4gdGhlIG9sZAoJICBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBzdGlsbCBiZWNhdXNlIHRoZXkgd29yayBzbGlnaHRseQoJICBkaWZmZXJlbnRseSB0aGFuIHRoZSBfY2xpcCBtZXRob2RzLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wMy0xOSAxNzozNjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBhZGQgb3B0aW9uIHRvIGRpc2FibGUgY2xpcHBpbmcKCSAgQWRkIGEgY2xpcCBhcmd1bWVudCB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbCgpIHRvIGRpc2FibGUKCSAgdGhlIGNoZWNrcyBhZ2FpbnN0IHRoZSBzZWdtZW50IGJvdW5kYXJpZXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8KCSAgZ2VuZXJhdGUgYW4gZXh0cmFwb2xhdGVkIHJ1bm5pbmctdGltZSBmb3IgdGltZXN0YW1wcyBvdXRzaWRlIG9mIHRoZQoJICBzZWdtZW50LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wMy0xOCAxNjoyNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYvdW5yZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC9kZWluaXQoKQoKMjAxNS0wMy0xOCAxNDoxNjo0OCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHM6IHJlbW92ZSBvdXRkYXRlZCBjb21wbGV0aW9uIHNjcmlwdAoJICArIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcjYzIxCgoyMDE1LTAzLTE4IDExOjMxOjUxICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgaGVscGVyIHRvIGdldCBuZWdhdGl2ZSBydW5uaW5nLXRpbWUKCSAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBnZXQgYSBydW5uaW5nLXRpbWUgd2l0aCBhIGxpdHRsZSBtb3JlIGZlYXR1cmVzCgkgIHN1Y2ggYXMgZGV0ZWN0aW5nIGlmIHRoZSB2YWx1ZSB3YXMgYmVmb3JlIG9yIGFmdGVyIHRoZSBzZWdtZW50IGFuZAoJICBuZWdhdGl2ZSBydW5uaW5nLXRpbWUuCgkgIEFQSTogZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwoKQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTAzLTE4IDEwOjUzOjMwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGZpeCBvZmZzZXQgaGFuZGxpbmcgd2l0aCBub24gMCBzdGFydAoJICBUaGUgcG9zaXRpb24gaW4gdGhlIHNlZ21lbnQgaXMgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IGJ1dCB0aGUgb2Zmc2V0CgkgIGlzbid0LCBzbyBzdWJ0cmFjdCB0aGUgc3RhcnQgZnJvbSB0aGUgcG9zaXRpb24gd2hlbiBzZXR0aW5nIHRoZSBvZmZzZXQuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMgYXMgd2VsbC4KCjIwMTUtMDMtMTggMDk6MzY6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdHMKCjIwMTMtMTEtMjkgMTY6Mjg6NDEgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBkdXBsaWNhdGUgY29kZQoJICBUaGVzZSBhcmUgYWxyZWFkeSBmcmVlZCBieSBnc3RfYmFzZV9wYXJzZV9jbGVhcl9xdWV1ZXMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTAzLTE3IDE1OjQxOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCBpbmRlbnRpb24KCjIwMTUtMDMtMTMgMTE6MDg6MjUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBza2lwIG9uIHNlZ21lbnRzIGFuZCBkaXNjb250aW51aXRpZXMKCSAgTGFyZ2Ugc2NhbGUgc2tpcCBpcyBhbiBvcHRpbWl6YXRpb24sIGFuZCB0aHVzIGl0IGlzIHNhZmVyIHRvCgkgIHN0b3Agc2tpcHBpbmcgdGhhbiB0byBjb250aW51ZS4gQ2xlYXIgc2tpcCBvbiBzZWdtZW50cyBhbmQKCSAgZGlzY29udGludWl0aWVzLCBhcyB0aGVzZSBhcmUgcG9pbnRzIHdoZXJlIGl0IGlzIHBvc3NpYmxlIHRoYXQKCSAgdGhlIG9yaWdpbmFsIGlkZWEgb2YgImJ5dGVzIHRvIHNraXAiIGNoYW5nZXMuCgoyMDE1LTAzLTE1IDE0OjE5OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGdyb3cgcXVldWUgaW5maW5pdGVseSBpZiBvbmx5IG9uZSBwYWQgaXMgbGlua2VkCgkgIFRoaXMgd2FzIGludHJvZHVjZWQgYnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTg5MwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODkxCgkgIGJ1dCBpdCBkb2Vzbid0IG1ha2UgYW55IHNlbnNlIGF0IGFsbCBhbmQgY2F1c2VzIGh1Z2UgbWVtb3J5IGxlYWtzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MjUzCgoyMDE1LTAzLTE0IDIxOjA3OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIGVtcHR5IGJ1ZmZlciBsaXN0IG1vcmUgZ3JhY2VmdWxseQoJICBEb24ndCBhYm9ydCwganVzdCBpZ25vcmUgaXQuIEl0J3MgbGlrZSBhIGJ1ZmZlcgoJICB3aXRob3V0IG1lbW9yaWVzLgoKMjAxNS0wMy0xNCAxNzozOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBtaW5vciBvcHRpbWlzYXRpb24gZm9yIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoJICBUcnkgdG8gYWxsb2NhdGUgYnVmZmVyIGxpc3Qgd2l0aCBhIHN1aXRhYmxlIHNpemUgZnJvbSB0aGUKCSAgYmVnaW5uaW5nIHRvIGF2b2lkIGhhdmluZyB0byByZS1hbGxvYyB0aGUgYnVmZmVyIGxpc3QgYXJyYXkuCgoyMDE1LTAzLTE0IDE3OjIzOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCjIwMTUtMDMtMTQgMTc6MjA6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoJICBBUEk6IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoKMjAxNS0wMy0xNCAxNjowNTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIEFkZCBuZXcgc3RyZWFtaWRkZW11eCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDE1LTAzLTE0IDE2OjAwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYXZvaWQgbXVsdGlwbGUgY2FsbHMgdG8gZ3N0X2J1ZmZlcl9nZXRfc2l6ZSgpIGluIG1hY3JvCgoyMDE1LTAzLTE0IDE1OjU4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF2b2lkIG11bHRpcGxlIGNhbGxzIHRvIGdzdF9idWZmZXJfZ2V0X3NpemUoKSBpbiBtYWNybwoKMjAxNS0wMy0xMyAxODoyMjowMSArMDAwMCAgUmFtaXJvIFBvbGxhIDxyYW1pcm8ucG9sbGFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcHJvcGVybHkgZXNjYXBlIHBlcmNlbnQgc2lnbiBpbiBkb2N1bWVudGF0aW9uCgoyMDE1LTAzLTE0IDEzOjM3OjA5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFVzZSB0aGUgY29ycmVjdCBlbnVtIHR5cGUgdG8gZml4IGEgY29tcGlsZXIgd2FybmluZwoJICBnc3RidWZmZXIuYzo1MjI6NTg6IGVycm9yOiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyRmxhZ3MnIHRvCgkgIGRpZmZlcmVudCBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJDb3B5RmxhZ3MnIFstV2Vycm9yLC1XZW51bS1jb252ZXJzaW9uXQoJICBpZiAoIWdzdF9idWZmZXJfY29weV9pbnRvIChjb3B5LCAoR3N0QnVmZmVyICopIGJ1ZmZlciwgZmxhZ3MsIDAsIC0xKSkKCSAgfn5+fn5+fn5+fn5+fn5+fn5+fn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgoJICBnc3RidWZmZXIuYzo1MzQ6NDY6IGVycm9yOiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyQ29weUZsYWdzJyB0bwoJICBkaWZmZXJlbnQgZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyRmxhZ3MnIFstV2Vycm9yLC1XZW51bS1jb252ZXJzaW9uXQoJICByZXR1cm4gZ3N0X2J1ZmZlcl9jb3B5X3dpdGhfZmxhZ3MgKGJ1ZmZlciwgR1NUX0JVRkZFUl9DT1BZX0FMTCk7CgkgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KCSAgLi9nc3RidWZmZXIuaDo0MzM6MzE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0dTVF9CVUZGRVJfQ09QWV9BTEwnCgkgIC4uLigoR3N0QnVmZmVyQ29weUZsYWdzKShHU1RfQlVGRkVSX0NPUFlfTUVUQURBVEEgfCBHU1RfQlVGRkVSX0NPUFlfTUVNT1JZKSkKCSAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCjIwMTUtMDMtMTQgMTQ6MDY6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDE0LTEwLTMwIDE1OjM5OjIxICswMDAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmg6CgkgIG1ldGE6IEFkZCBgR3N0TmV0Q29udHJvbE1lc3NhZ2VNZXRhYAoJICBHc3ROZXRBZGRyZXNzIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFuY2lsbGFyeSBkYXRhIHdoaWNoIHdhcyByZWNlaXZlZCB3aXRoCgkgIG9yIGlzIHRvIGJlIHNlbnQgYWxvbmdzaWRlIHRoZSBidWZmZXIgZGF0YS4gIFdoZW4gdXNlZCB3aXRoIHNvY2tldCBzaW5rcwoJICBhbmQgc291cmNlcyB3aGljaCB1bmRlcnN0YW5kIHRoaXMgbWV0YSBpdCBhbGxvd3Mgc2VuZGluZyBhbmQgcmVjZWl2aW5nCgkgIGFuY2lsbGFyeSBkYXRhIHN1Y2ggYXMgdW5peCBjcmVkZW50aWFscyAoU2VlIGBHVW5peENyZWRlbnRpYWxzTWVzc2FnZWApCgkgIGFuZCBVbml4IGZpbGUgZGVzY3JpcHRpb25zIChTZWUgYEdVbml4RkRNZXNzYWdlYCkuCgkgIFRoaXMgd2lsbCBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyBwcm90b2NvbHMgd2hpY2ggdXNlIGZpbGUtZGVzY3JpcHRvcgoJICBwYXNzaW5nIGluIHBheWxvYWRlcnMvZGVwYXlsb2FkZXJzIHdpdGhvdXQgaGF2aW5nIHRvIHJlLWltcGxlbWVudCBhbGwgdGhlCgkgIHNvY2tldCBoYW5kbGluZyBjb2RlIGFscmVhZHkgcHJlc2VudCBpbiBlbGVtZW50cyBzdWNoIGFzIG11bHRpc29ja2V0c2luaywKCSAgZXRjLiAgVGhpcywgaW4gdHVybiwgd2lsbCBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyB6ZXJvLWNvcHkgdmlkZW8gSVBDLgoJICBUaGlzIG1ldGEgdXNlcyB0aGUgcGxhdGZvcm0gaW5kZXBlbmRlbnQgYEdTb2NrZXRDb250cm9sTWVzc2FnZWAgQVBJCgkgIHByb3ZpZGVkIGJ5IEdMaWIgYXMgYSBwYXJ0IG9mIEdJTy4gIEFzIGEgcmVzdWx0IHRoaXMgbmV3IG1ldGEgZG9lcyBub3QKCSAgcmVxdWlyZSBhbnkgbmV3IGRlcGVuZGVuY2llcyBvciBhbnkgY29uZGl0aW9uYWwgY29tcGxpYXRpb24gZm9yCgkgIHBvcnRhYmxpbGl0eSwgYWx0aG91Z2ggaXQgaXMgdW5saWtlbHkgdG8gZG8gYW55dGhpbmcgdXNlZnVsIG9uIG5vbi1VTklYCgkgIHBsYXRmb3Jtcy4KCjIwMTUtMDMtMTQgMTE6NTc6MzMgKzAwMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBhbGxvY2F0aW9uOiBBbGxvdyBhbGxvY2F0aW9uIHBvb2wgd2l0aG91dCBzaXplCgkgIFRoaXMgYWxsb3cgcHJvcG9zaW5nIGEgbnVtYmVyIG9mIGJ1ZmZlcnMgcmVxdWlyZWQgZXZlbiBpZiB0aGUgc2l6ZQoJICBvZiBidWZmZXIgaXMgdW5maXhlZC4gVGhpcyBpcyBvZnRlbiB0aGUgY2FzZSBmb3IgZW5jb2RlZCBmb3JtYXRzLgoKMjAxNS0wMy0wMSAxMzoxNTo0MCAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBEb24ndCBzdG9wIHRoZSBwb29sIGluIHNldF9jb25maWcoKQoJICBEb24ndCBzdG9wIHRoZSBwb29sIGluIHNldF9jb25maWcoKS4gSW5zdGVhZCwgbGV0IHRoZSBjb250cm9sbGluZwoJICBlbGVtZW50IG1hbmFnZSBpdC4gTW9zdCBvZiB0aGUgdGltZSwgd2hlbiBhbiBhY3RpdmUgcG9vbCBpcyBiZWluZwoJICBjb25maWd1cmVkIGlzIGJlY2F1c2UgdGhlIGNhcHMgZGlkbid0IGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTM3NwoKMjAxNS0wMy0xMyAxODo1MzoxMSArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZHJhaW4gb24gYWxsb2NhdGlvbiBxdWVyeQoJICBBbGxvd3MgYnVmZmVycyB0byBiZSByZWNsYWltZWQgd2hlbiBjYXBzIGlzIHRvIGJlIHJlbmVnb3RpYXRlZCBzbwoJICB0aGF0IGJ1ZmZlcnBvb2xzIGNhbiBiZSBzdG9wcGVkLiBBcyB0aGUgYWxsb2NhdGlvbiBxdWVyeSBpcwoJICBzZXJpYWxpemVkIGFsbCBidWZmZXJzIGhhdmUgYmVlbiBhbHJlYWR5IGRyYWluZWQgZnJvbSB0aGUgcGlwZWxpbmUsCgkgIGV4Y2VwdCB0aGlzIGxhc3Rfc2FtcGxlIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjc3MAoKMjAxNS0wMy0xMyAxODozNToxNCArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogd2hlbiBkcmFpbmluZywgZGVlcCBjb3B5IHRoZSBsYXN0IGJ1ZmZlciB0byB1bnJlZiBvbGQgbWVtb3J5CgkgIFVzZSBnc3RfYnVmZmVyX2NvcHlfZGVlcCgpIHRvIGZvcmNlIHRoZSBjb3B5IG9mIHRoZSB1bmRlcmx5aW5nCgkgIG1lbW9yeSBpbnN0ZWFkIG9mIHBvc3NpYmx5IGRvaW5nIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBidWZmZXIKCSAgYW5kIGp1c3QgcmVmZXJlbmNpbmcgdGhlIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1Mjg3CgoyMDE1LTAzLTEzIDE4OjM1OjAxICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0YnVmZmVyOiBhZGQgZ3N0X2J1ZmZlcl9jb3B5X2RlZXAKCSAgQSB2YXJpYW50IG9mIGdzdF9idWZmZXJfY29weSB0aGF0IGZvcmNlcyB0aGUgdW5kZXJseWluZyBtZW1vcnkKCSAgdG8gYmUgY29waWVkLgoJICBUaGlzIGlzIGFkZGVkIHRvIGF2b2lkIGFkZGluZyBhbiBleHRyYSByZWZlcmVuY2UgdG8gYSBHc3RNZW1vcnkKCSAgdGhhdCBtaWdodCBiZWxvbmcgdG8gYSBidWZmZXJwb29sIHRoYXQgaXMgdHJ5aW5nIHRvIGJlIGRyYWluZWQuCgkgIFRoZSB1c2UgY2FzZSBpcyB3aGVuIHRoZSBidWZmZXIgY29weWluZyBpcyBkb25lIHRvIHJlbGVhc2UgdGhlCgkgIG9sZCBidWZmZXIgYW5kIGFsbCBpdHMgcmVzb3VyY2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1Mjg3CgoyMDE1LTAzLTEzIDE1OjMxOjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVzZSBnX2xpc3RfZnJlZV9mdWxsKCkgaW5zdGVhZCBvZiBtYW51YWxseSB1bnJlZmZpbmcgYW5kIGZyZWVpbmcKCSAgQWxzbyB1bnJlZiB0aGUgbWVzc2FnZXMsIG5vdCB0aGUgR0xpc3Qgbm9kZXMuCgoyMDE1LTAzLTEzIDEzOjQyOjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEZpeCBhbm90aGVyIGNhc2Ugd2hlcmUgd2UgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hpbGUgdW5yZWZmaW5nIGEgbWVzc2FnZQoKMjAxNS0wMy0xMyAxNToyODo0MiArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogVW5yZWZlcmVuY2luZyBtZXNzYWdlcyBvdXRzaWRlIHRoZSBsb2NrCgkgIFNob3VsZG4ndCB0YWtlIHRoZSBsb2NrIHdoaWxlIHVucmVmZXJlbmNpbmcgbWVzc2FnZXMsIGJlY2F1c2UgdGhhdCBtYXkgY2F1c2UKCSAgbW9yZSBtZXNzYWdlcyB0byBiZSBzZW50LCB3aGljaCB3aWxsIHRyeSB0byB0YWtlIHRoZSBsb2NrIGFuZCBjYXVzZSB0aGUgYXBwIHRvCgkgIGhhbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg3NzcKCjIwMTUtMDItMjMgMjA6Mjc6MzIgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFkZCBnc3RfYmluX3N5bmNfY2hpbGRyZW5fc3RhdGVzKCkKCSAgZ3N0X2Jpbl9zeW5jX2NoaWxkcmVuX3N0YXRlcygpIHdpbGwgaXRlcmF0ZSBvdmVyIGFsbCB0aGUgZWxlbWVudHMgb2YgYSBiaW4gYW5kCgkgIHN5bmMgdGhlaXIgc3RhdGVzIHdpdGggdGhlIHN0YXRlIG9mIHRoZSBiaW4uIFRoaXMgaXMgdXNlZnVsIHdoZW4gYWRkaW5nIG1hbnkKCSAgZWxlbWVudHMgdG8gYSBiaW4gYW5kIHdvdWxkIG90aGVyd2lzZSBoYXZlIHRvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCgpIG9uIGVhY2ggYW5kIGV2ZXJ5IG9uZSBvZiB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDQyCgoyMDE1LTAyLTAzIDE2OjEyOjMyICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogaGFuZGxlIHVuc2lnbmVkIG1vZGlmaWVyIGZvciBsb25nIGxvbmcKCSAgT3RoZXJ3aXNlLCBhbiB1bnNpZ25lZCBpbnRlZ2VyIHdpbGwgYmUgZGlzcGxheWVkIGFzIGEgc2lnbmVkIG9uZSBpZiB3ZQoJICB1c2UgaW50ZXJuYWwgcHJpbnQsIGllIEhBVkVfTE9OR19MT05HX0ZPUk1BVCBpcyBub3QgZGVmaW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjA5NgoKMjAxNS0wMy0xMiAxNDozOTozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJICBzdHJlYW1pZGRlbXV4OiBSZXNldCBwYWQgY291bnRlciBhZnRlciByZW1vdmluZyBhbGwgcGFkcwoKMjAxNC0wMy0wNCAxOTo0MDowNSArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc3RyZWFtaWRkZW11eC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtaWRkZW11eC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtaWRkZW11eC9zdHJlYW1pZGRlbXV4LXN0cmVhbS5jOgoJICBzdHJlYW1pZGRlbXV4OiBBZGQgc3RyZWFtaWRkZW11eCBlbGVtZW50CgkgIERlbXVsdGlwbGV4IGEgc3RyZWFtIHRvIG11bHRpcGxlIHNvdXJjZSBwYWRzIGJhc2VkIG9uIHRoZSBzdHJlYW0gaWRzIGZyb20gdGhlCgkgIHN0cmVhbS1zdGFydCBldmVudHMuIFRoaXMgYmFzaWNhbGx5IHJldmVyc2VzIHRoZSBiZWhhdmlvdXIgb2YgZnVubmVsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjA1CgoyMDE1LTAzLTEyIDEzOjI5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUKCjIwMTUtMDMtMTIgMTM6MjY6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmludGYuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIG91ciBwcmludGYgc3R1ZmYKCSAgVG8gdGVzdCBuZXcgJUkzMiBzdXBwb3J0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MjgxCgoyMDE1LTAyLTEwIDE3OjQwOjQ4ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSAgcHJpbnRmOiBhZGQgc3VwcG9ydCBmb3IgJUkzMgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MjgxCgoyMDE1LTAzLTEyIDEzOjE0OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbW92ZSBjYXRlZ29yeSBsZXZlbCB0aHJlc2hvbGQgY2hlY2sgaW50byBsb2cgZnVuY3Rpb24gZGlzcGF0Y2hlcgoJICBNaW5vciBvcHRpbWlzYXRpb246IGNoZWNrIGNhdGVnb3J5IGxvZyBsZXZlbCBlYXJsaWVyIGluIHRoZQoJICBsb2cgZnVuY3Rpb24gZGlzcGF0Y2hlciBhbmQgbm90IG9ubHkgaW4gdGhlIGRlZmF1bHQgbG9nCgkgIGZ1bmN0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzCgoyMDE1LTAzLTEyIDEyOjU5OjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlc2V0IHNlZ21lbnQgd2hlbiBkZWFjdGl2YXRpbmcgcHVsbCBtb2RlIG9yIG5vdCBydW5uaW5nIGluIHB1bGwgbW9kZQoJICBXZSB1c2UgdGhlIHNlZ21lbnQgZm9ybWF0IHRvIGRldGVjdCBpZiB3ZSBydW4gdGhlIHN0cmVhbWluZyB0aHJlYWQgb3Igbm90LgoJICBXaXRob3V0IHJlc2V0dGluZyB3ZSBtaWdodCBiZWxpZXZlIHdlIGRvIHNvLCBhbHRob3VnaCB3ZSBvbmx5IGRpZCBpbiB0aGUgcGFzdAoJICBhbmQgYXJlIG5vdyBydW5uaW5nIGluIGUuZy4gcHVzaCBtb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDczCgoyMDE1LTAzLTA4IDIwOjQyOjM4ICswMTAwICBNaWNoYcWCIETEmWJza2kgPGRlYnNraS5taS56ZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogVXNlIG1rc3RlbXAgaW5zdGVhZCBvZiB0ZW1wbmFtIGlmIHBvc3NpYmxlCgkgIFVzaW5nIHRlbXBuYW0oKSBpcyBkZXByZWNhdGVkLCB0aGlzIGdpdmVzIHdhcm5pbmcgYW5kIGZhaWxzIHRoZSBidWlsZAoJICB3aXRoIC1XZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU4NTgKCjIwMTUtMDMtMTEgMTY6MzY6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgdGhlIG5lZWRfcHJlcm9sbCB2YXJpYWJsZQoJICBCYXNlZCBvbiBwYXRjaCBmcm9tIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgkgIERvbid0IGp1c3Qgc2V0IHRoZSBuZWVkX3ByZXJvbGwgZmxhZyB0byBUUlVFIGluIGFsbCBjYXNlcy4gV2hlbiB3ZQoJICBhcmUgYWxyZWFkeSBwcmVyb2xsZWQgaXQgbmVlZHMgdG8gYmUgc2V0IHRvIEZBTFNFIGFuZCB3aGVuIHdlIGdvIHRvCgkgIFJFQURZIHdlIHNob3VsZCBub3QgdG91Y2ggaXQuIFdlIHNob3VsZCBvbmx5IHNldCBpdCB0byBUUlVFIGluIG90aGVyCgkgIGNhc2VzLCBsaWtlIHdoYXQgdGhlIGNvZGUgYWJvdmUgZG9lcy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY2NTUKCjIwMTQtMTItMDUgMTQ6MTY6NTIgKzA5MDAgIGhvb25oZWUubGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogaGFuZGxlIEdBUCBldmVudCB0byBmb3J3YXJkcyBzdGlja3kgZXZlbnRzIGludG8gZG93bnN0cmVhbQoJICBJZiBubyBkYXRhIGlzIGNvbWluZyBhbmQgZnVubmVsIHJlY2VpdmUgR0FQIGV2ZW50LCBuZWVkIHRvIGZvcndhcmRzIHN0aWNreSBldmVudHMKCSAgaW50byBkb3duc3RyZWFtIGlmIGl0IG5lZWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MjAyCgoyMDE1LTAzLTEwIDE2OjQyOjQ0ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBkdXBsaWNhdGUgY29kZSBicmFuY2hlcwoJICBDSUQgIzEyMjY0NDYKCjIwMTUtMDMtMTAgMDk6MjE6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgRml4IGRvdWJsZSBzZW1pY29sb25zCgoyMDE1LTAyLTIyIDEwOjEyOjAxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cwoKMjAxNS0wMi0yMSAyMDoxMzowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYSBnc3RfZmxvd19jb21iaW5lcl91cGRhdGVfcGFkX2Zsb3coKSBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDU3MgoJICBBUEk6IGdzdF9mbG93X2NvbWJpbmVyX3VwZGF0ZV9wYWRfZmxvdygpCgoyMDE1LTAyLTE1IDIwOjUyOjEwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGFkZCBhIGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0KCkgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1NzIKCSAgQVBJOiBnc3RfZmxvd19jb21iaW5lcl9yZXNldCgpCgoyMDE1LTAzLTA2IDEwOjU5OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKCjIwMTUtMDMtMDUgMTg6MzA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhdm9pZCBtYWxsb2MvZnJlZSBpZiBsb2cgb2JqZWN0IGlzIE5VTEwKCjIwMTUtMDMtMDUgMTc6NTQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtb3ZlIF9fRklMRV9fIHBhdGggc2hvcnRlbmluZyBpbnRvIGRlZmF1bHQgbG9nIGhhbmRsZXIKCSAgSW5zdGVhZCBvZiBhbHdheXMgc2hvcnRlbmluZyB0aGUgX19GSUxFX18gcGF0aCwgZXZlbiBpZiB0aGUKCSAgbG9nIG1lc3NhZ2UgaXMgbm90IGFjdHVhbGx5IHByaW50ZWQsIHdoaWNoIG1pZ2h0IGhhcHBlbiBpZgoJICB0aGUgbG9nIGxldmVsIGlzIGFjdGl2YXRlZCBidXQgdGhlIGNhdGVnb3J5IGlzIG5vdCwgb25seQoJICBzaG9ydGVuIHRoZSBwYXRoIGlmIHdlJ3JlIGFjdHVhbGx5IGdvaW5nIHRvIG91dHB1dCBpdCBhbmQKCSAgaWYgaXQgbG9va3MgbGlrZSBpdCBuZWVkcyBzaG9ydGVuaW5nLiBMb2cgaGFuZGxlcnMgaGFkIG5vCgkgIGd1YXJhbnRlZSB0aGF0IHRoZXkgd291bGQgZ2V0IGEgbmFtZSBpbnN0ZWFkIG9mIGEgcGF0aAoJICBhbnl3YXkgb24gYW55IGFyY2hpdGVjdHVyZSwgc28gaXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMwoKMjAxNS0wMi0yNyAwMToxNjo1OCArMTEwMCAgUGV0ZXIgVXJiYW5lYyA8Z2l0LnVzZXJAdXJiYW5lYy5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBzaG9ydGVuIF9fRklMRV9fIG9uIGFsbCBwbGF0Zm9ybXMKCSAgVGhpcyBpcyB1c2VmdWwgbm90IG9ubHkgZm9yIE1TVkMsIGJ1dCBhbHNvIHdpdGggZ2NjL0xpbnV4CgkgIHdoZW4gZG9pbmcgY3Jvc3MtY29tcGlsYXRpb24gYnVpbGRzIGFuZCBvdXQtb2YtdHJlZSBidWlsZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTMKCjIwMTUtMDMtMDQgMTE6MDI6NDEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSAgZG9jczogY2xhcmlmeSBtaW4tbGF0ZW5jeSB3b3JkaW5nIGluIHBhcnQtbGF0ZW5jeS50eHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDMzOAoKMjAxNS0wMi0yNiAxNDo0MzoyNSArMDEwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZmx5dHJvbmljLnBsPgoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IHJlbW92ZWQgbGlieG1sIGluY2x1ZGUgZGlyZWN0aXZlCgkgIFRoaXMgaXMgYSBsZWZ0b3ZlciBmcm9tIDAuMTAgYW5kIG5vdCBuZWVkZWQgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMAoKMjAxNS0wMy0wMyAxMjo1MzoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogU2lnbmFsIHRoZSBzaW5rcGFkIHRocmVhZCBpZiBhIGZsb3cgZXJyb3IgaGFwcGVuZWQKCSAgSXQgbWlnaHQgc3RpbGwgYmUgd2FpdGluZyBmb3IgYSBxdWVyeSB0byBiZSBoYW5kbGVkLCBvciB0aGUgcXVldWUgdG8gYmVjb21lCgkgIGVtcHR5IGFnYWluIGZvciB0aGUgbmV4dCBpdGVtLiBBbHNvIGlmIGRvd25zdHJlYW0gcmV0dXJucyBGTFVTSElORywgZmx1c2ggdGhlCgkgIHF1ZXVlIGxpa2Ugd2UgZG8gaW4gcXVldWUgYW5kIG11bHRpcXVldWUuCgoyMDE1LTAzLTAzIDEyOjQ4OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogV2FrZSB1cCB0aGUgcXVlcnkgZnVuY3Rpb24gb24gZXJyb3JzIGZyb20gdGhlIGxvb3AgZnVuY3Rpb24KCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IHdhaXQgZm9yZXZlciBmb3Igc2VyaWFsaXplZCBxdWVyaWVzIHRvIGJlIGhhbmRsZWQgYXMgdGhlCgkgIGxvb3AgZnVuY3Rpb24gaXMgc3RvcHBlZCBhbmQgYXMgc3VjaCB3ZSB3aWxsIG5ldmVyIGV2ZXIgZGVxdWV1ZSB0aGUgcXVlcnkgYW5kCgkgIGhhbmRsZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTMxOQoKMjAxNS0wMy0wMiAyMDozMTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSB3YXJuaW5nIHdoZW4gbGlua2luZyAgZWxlbWVudHMgd2l0aG91dCBjb21tb24gYW5jZXN0b3IKCSAgVGhpcyBjb21lcyB1cCBxdWl0ZSBhIGxvdCBhbmQgaXQncyBhIGNvbW1vbiBtaXN0YWtlLCBzbyBsZXQncwoJICB0cnkgdG8gaW1wcm92ZSB0aGUgd2FybmluZyBtZXNzYWdlIGEgbGl0dGxlLgoKMjAxNS0wMi0yNyAwMDozMzoyNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IERyb3AgY3VzdG9tIGxhdGVuY3kgcXVlcnkgaGFuZGxpbmcKCSAgVGhlIGRlZmF1bHQgbGF0ZW5jeSBxdWVyeSBoYW5kbGVyIG5vdyBpbXBsZW1lbnRzIHRoaXMgbG9naWMKCjIwMTUtMDItMjYgMTU6NTc6MjAgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5zaW5zdGFsbGVkOiBBZGQgZ2VzLWxhdW5jaCBtYW51YWxzIHBhdGggdG8gTUFOUEFUSC4KCjIwMTUtMDItMjYgMTM6MDg6NDggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZhaWwgbGF0ZW5jeSBxdWVyeSBvbiB1bmxpbmtlZCBwYWRzCgkgIEEgc2luZ2xlIHVubGlua2VkIHBhZCBjYW4gbWFrZSB0aGUgbGF0ZW5jeSBxdWVyeSBmYWlsIGFjcm9zcyB0aGUKCSAgcGlwZWxpbmUsIHdoaWNoIGlzIHByb2JhYmx5IG5vdCBkZXNpcmFibGUuIEluc3RlYWQsIHdlIHJldHVybiBhIGRlZmF1bHQKCSAgYW55dGhpbmcgZ29lcyB2YWx1ZS4KCSAgUGVyaGFwcyB3ZSBzaG91bGQgYWxzbyBiZSBlbWl0dGluZyBhIGdzdF9tZXNzYWdlX25ld19sYXRlbmN5KCkgd2hlbiBhCgkgIFBMQVlJTkcgZWxlbWVudCBoYXMgb25lIG9mIGl0cyBwYWRzIGxpbmtlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTE5NwoKMjAxNC0xMC0yMiAxNjo0Mzo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgZW1pdCBlcnJvcnMgb24gRU9TIGlmIHdlIHNhdyBHQVAgZXZlbnRzCgkgIElmIHdlIHNhdyBHQVAgZXZlbnRzIChtZWFuaW5nIHRoZSBzdHJlYW1zIGlzIGFkdmFuY2luZykgYmVmb3JlIHdlIGdldAoJICBFT1MsIHdlIHNob3VsZCBub3QgcG9zdCBhbiBFUlJPUiwgc2luY2UgaXQgaXMgbm90IGZhdGFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTQzCgoyMDE1LTAyLTI1IDA4OjI2OjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGdzdHZhbHVlOiBNYWtlIHN1cmUgR1NUX0ZPVVJDQ19BUkdTIHByb2R1Y2VzIHByaW50YWJsZSBjaGFyYWN0ZXJzCgkgIFNvbWUgc3lzdGVtcyB3aWxsIGNyYXNoIGlmIHdlIHVzZSBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMgaW4gcHJpbnQvZGVidWcKCSAgc3RhdGVtZW50cy4KCSAgTWFrZSBzdXJlIHRoYXQgR1NUX0ZPVVJDQ19BUkdTIG5ldmVyIGRvZXMgdGhhdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTQ0CgoyMDE1LTAyLTI1IDE2OjExOjA2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiByZW1vdmUgaW5jb3JyZWN0IEZpeG1lIGNvbW1lbnQKCSAgSWYgdGhlIGNoZWNrcyB3ZXJlIGNoYW5nZWQgdG8gdXNpbmcgZ19yZXR1cm5faWZfZmFpbCgpIHRoZSBHU1RfREVCVUcgbGluZXMKCSAgYWJvdXQgdGhlIHNwZWNpZmljIGZhaWx1cmUgd291bGQgYmUgbG9zdC4KCjIwMTUtMDItMjUgMTY6MDI6MzkgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IHJlbW92ZSBvYnNvbGV0ZSBGaXhtZSBjb21tZW50CgkgIGdzdF9wYWRfbGlua19maWx0ZXJlZCgpIGlzIHZlcnkgbG9uZyBnb25lIGFuZCBjdXJyZW50CgkgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCgpIGRvZXNuJ3QgYXBwbHkgdG8gdGhpcyBGaXhtZSBjb21tZW50LgoKMjAxNS0wMi0yNCAyMTo1ODowMCArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBhZGFwdGl2ZWRlbXV4IHBhdGhzIGZyb20gLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTIyCgoyMDE1LTAyLTI0IDE4OjE0OjQ3ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGRvY3M6IHJlbW92ZSBkZWFkIGxpbmsKCSAgUmVtb3ZlIGRlYWQgbGluayB0byB3aWtpIHBhZ2UgZm9yIFN1Ym1pdHRpbmdQYXRjaGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAzMTEKCjIwMTUtMDItMjQgMTQ6MDc6NTQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IEZpeCBpbnN0YWxsIG9mIGNvbXBsZXRpb24taGVscGVyLgoJICBCeSBhcHBseWluZyB0aGUgc3VwcGxpZWQgdHJhbnNmb3JtYXRpb24gdG8gdGhlIHByb2dyYW0gbmFtZSwKCSAgZm9yIGV4YW1wbGUgLS1wcm9ncmFtLXByZWZpeC4KCjIwMTUtMDItMjMgMTY6Mzk6NDMgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGNvbXBsZXRpb24taGVscGVyOiBBZGQgbWlzc2luZyBERVNURElSCgkgIE90aGVyd2lzZSBkb2luZyAibWFrZSBpbnN0YWxsIERFU1RESVIiIHdpbGwgdHJ5IHRvIHdyaXRlIHRvCgkgIC91c3Ivc2hhcmUvLi4uCgoyMDE1LTAyLTIzIDIxOjE3OjE2ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1jb21wbGV0aW9uLWhlbHBlci5jOgoJICBjb21wbGV0aW9uLWhlbHBlcjogQWRkIGZpbHRlcmluZyBieSBrbGFzcyBhbmQgc2luayBjYXBzLgoKMjAxNS0wMi0yMSAxNzoxMzoyNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHJldHVybmluZyBkb3duc3RyZWFtIEdTVF9GTE9XX0VPUyBmcm9tIHByZXZpb3VzIHNlZ21lbnQgdG8gY3VycmVudCB1cHN0cmVhbSBzZWdtZW50CgoyMDE1LTAyLTIyIDEwOjAyOjI1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGZpeCBkb2N1bWVudGF0aW9uIGNvbW1lbnQgdHlwbwoKMjAxNS0wMi0yMiAxMDowMTozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkcmFpbiBzZWdtZW50IHVwb24gU0VHTUVOVF9ET05FIHRvIGVuc3VyZSBwcm9wZXIgZXZlbnQgb3JkZXIKCjIwMTUtMDItMjIgMTA6MDE6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYW4gdXAgc29tZSBib2d1cyBjb21tZW50ZWQgY29kZQoKMjAxNS0wMi0yMyAxOToxMDowOCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgY29tcGxldGlvbi1oZWxwZXI6IEFwcGVuZCAkKEVYRUVYVCkgdG8gdGhlIG5hbWUgb2YgdGhlIG1vdmVkIGZpbGUuCgkgIEZpeGVzIHRoZSBidWlsZCBvbiBXaW5kb3dzCgkgIChodHRwczovL2NpLmdzdHJlYW1lci5uZXQvam9iL2NlcmJlcm8tY3Jvc3MtbWluZ3czMi8xNzQyL2NvbnNvbGUpCgoyMDE1LTAyLTIzIDE3OjIzOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIEZpeCBkaXN0Y2hlY2sKCSAgRGlzYWJsZSBiYXNoIGNvbXBsZXRpb24gZHVyaW5nIGRpc3RjaGVja2luZyBvdGhlcndpc2UKCSAgaXQgbWF5IHRyeSB0byBpbnN0YWxsIGludG8gYSBzeXN0ZW0gcGF0aCBhbmQgZmFpbC4KCjIwMTUtMDItMjMgMTc6MTY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgRGlzdCBuZXcgZGF0YSBkaXJlY3RvcnkKCSAgRml4ZXMgJ21ha2UgZGlzdCcKCjIwMTUtMDItMjAgMjI6MDQ6MjIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRhdGEvTWFrZWZpbGUuYW06CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0OgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1jb21wbGV0aW9uLWhlbHBlci5jOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBiYXNoLWNvbXBsZXRpb246IEltcGxlbWVudCBpbiBhIGRpZmZlcmVudCB3YXkuCgkgICsgR2V0cyBpbnN0YWxsZWQKCSAgKyBVc2VzIGEgaGVscGVyIHRvb2wsIGdzdC1jb21wbGV0aW9uLWhlbHBlciwgaW5zdGFsbGVkIGluCgkgIGJhc2gtY29tcGxldGlvbnMvaGVscGVycy4KCSAgKyBBZGRzIGEgY29tbW9uIHNjcmlwdCB0aGF0IG90aGVyIHRvb2xzIGNhbiBzb3VyY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcKCjIwMTUtMDItMjMgMTI6MDg6NDkgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSAgR3N0RGV2aWNlTW9uaXRvcjoga2VlcCBhbHBoYWJldGljYWwgb3JkZXIKCjIwMTUtMDItMjAgMTY6MjI6MjMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IHNldCBwYWRzIG5lZWQtcGFyZW50IGZsYWcgdG8gZmFsc2Ugd2hlbiByZW1vdmluZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxOTExNTU0Y2ZmMmM0YTExNzcyYjU0MWE4MjE1YTgwYzcyOGIxMDk3LgoJICBUaGlzIGJyZWFrcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBHU1RfUEFEX0ZMQUdfTkVFRF9QQVJFTlQsIHRoZSByZWFzb24gZm9yIHRoaXMKCSAgZmxhZyBpcyB0aGF0IGlmIGEgcGFkIGlzIHJlbW92ZWQgZnJvbSBhIHJ1bm5pbmcgZWxlbWVudCwgeW91IGRvbid0IHdhbnQKCSAgZnVuY3Rpb25zIChzdWNoIGFzIGNoYWluIG9yIGV2ZW50KSB0byBiZSBjYWxsZWQgb24gdGhlIHBhZCB3aXRob3V0IGEgcGFyZW50IHNldC4KCSAgVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSByZW1vdmUgYSByZXF1ZXN0IG9yIHNvbWV0aW1lcyBwYWQgZnJvbSBhIHJ1bm5pbmcgZWxlbWVudC4KCSAgSSBkb24ndCBzZWUgdGhlIGNvZGUgdGhhdCBjYXVzZWQgdGhpcyBpbiB0c2RlbXV4LCBidXQgaWYgaXQgbmVlZHMgdG8gdW5zZXQKCSAgdGhlIGZsYWcgb24gcmVtb3ZlLCBpdCBzaG91bGQgZG8gaXQgaXRzZWxmIGFuZCB0aGVuIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXJlbnQKCSAgZXhpc3RzIGluIGFueSBwYWQgZnVuY3Rpb24uCgoyMDE1LTAyLTE5IDEyOjE3OjE1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogY2FzdCBlbGVtZW50IGluIEFTU0VSVF9TRVRfU1RBVEUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ3NzcKCjIwMTUtMDItMTkgMDE6MTY6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIGEgc2VwYXJhdGUgcXVlcnkgZm9yIHVwc3RyZWFtIHBhZHMgYW5kIGxldCBpdCBmYWlsIGlmIG9uZSB1cHN0cmVhbSBxdWVyeSBmYWlscwoKMjAxNS0wMi0xOSAwMToxMjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiB0aGUgbGF0ZW5jeSBxdWVyeSBmYWlscyBmb3Igb25lIG9mIHRoZSBwYWRzLCBpdCBmYWlscyBvdmVyYWxsCgoyMDE1LTAyLTE4IDExOjA1OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVudXNlZCBib29sZWFuIHBhcmFtZXRlciBmcm9tIGludGVybmFsIGZ1bmN0aW9ucwoKMjAxNS0wMi0xNyAxMjoxMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBBZGQgdW5pdCB0ZXN0IGZvciBidWZmZXIgbGlzdCBhbmQgdGltZSBsZXZlbCBoYW5kbGluZwoKMjAxNS0wMi0xNyAxMTo0NDo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdHMKCjIwMTUtMDItMTcgMTE6NDE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IENvdW50IHRoZSBudW1iZXIgb2YgYnVmZmVycyBpbiBhIGJ1ZmZlciBsaXN0IGZvciB1cGRhdGluZyB0aGUgY3VycmVudCBsZXZlbHMKCSAgaW5zdGVhZCBvZiBqdXN0IGFzc3VtaW5nIG9uZSBidWZmZXIuCgoyMDE1LTAyLTE3IDIwOjQ3OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogcmV2aXZlIGFzeW5jIGRlbGl2ZXJ5IG1lc3NhZ2UgYmVmb3JlIGJ1cyB0aHJlYWQgY2FuIHJ1biB1bnJlZgoJICBSZXZpdmUgbWVzc2FnZSBpbiBkaXNwb3NlIGhhbmRsZXIgYmVmb3JlIHdlIHNpZ25hbCB0aGUgYnVzIHRocmVhZCwKCSAgb3RoZXJ3aXNlIHRoZSBidXMgdGhyZWFkIG1pZ2h0IGJlIHdva2VuIHVwIGFuZCB1bnJlZiB0aGUgbWVzc2FnZQoJICBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIHJldml2ZSBpdCB5ZXQuCgoyMDE1LTAyLTE2IDIzOjAyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogYnVzOiBhZGQgdW5pdCB0ZXN0IGZvciBhc3luYyBtZXNzYWdlIGRlbGl2ZXJ5CgoyMDE1LTAyLTE2IDIyOjM5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZSwgYnVzOiBmaXggYXN5bmMgbWVzc2FnZSBkZWxpdmVyeQoJICBBc3luYyBtZXNzYWdlIGRlbGl2ZXJ5ICh3aGVyZSB0aGUgcG9zdGluZyB0aHJlYWQgZ2V0cyBibG9ja2VkCgkgIHVudGlsIHRoZSBtZXNzYWdlIGhhcyBiZWVuIHByb2Nlc3NlZCBhbmQvb3IgZnJlZWQpIHdhcyBwcmV0dHkKCSAgbXVjaCBjb21wbGV0ZWx5IGJyb2tlbi4KCSAgRm9yIG9uZSwgZG9uJ3QgdXNlIEdNdXRleCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHRvIGNoZWNrCgkgIHdoZXRoZXIgYSBtdXRleCBoYXMgYmVlbiBpbml0aWFsaXplZCBvciBub3QsIGVzcC4gbm90CgkgIGltcGxlbWVudGF0aW9uIGRldGFpbHMgdGhhdCBkb24ndCBob2xkIHRydWUgYW55IG1vcmUgd2l0aAoJICBuZXdlciBHTGliIHZlcnNpb25zIHdoZXJlIGF0b21pYyBvcHMgYW5kIGZ1dGV4ZXMgYXJlIHVzZWQKCSAgKHNwb3R0ZWQgYnkgSm9zZXAgVG9ycmFzKS4gVGhpcyBsZWQgdG8gYXN5bmMgbWVzc2FnZQoJICBkZWxpdmVyeSBubyBsb25nZXIgYmxvY2tpbmcgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zIG9uCgkgIExpbnV4LgoJICBTZWNvbmRseSwgYWZ0ZXIgYXN5bmMgZGVsaXZlcnkgZG9uJ3QgZnJlZSBtdXRleC9HQ29uZAoJICBlbWJlZGRlZCBpbnNpZGUgdGhlIGp1c3QtZnJlZWQgbWVzc2FnZSBzdHJ1Y3R1cmUuCgkgIFVzZSBhIG5ldyAocHJpdmF0ZSkgbWluaSBvYmplY3QgZmxhZyB0byBzaWduYWwgR3N0TWVzc2FnZQoJICB0aGF0IHRoZSBtZXNzYWdlIGJlaW5nIGZyZWVkIGlzIHBhcnQgb2YgYW4gYXN5bmMgZGVsaXZlcnkKCSAgb24gdGhlIGJ1cyBzbyB0aGF0IHRoZSBkaXNwb3NlIGhhbmRsZXIgY2FuIGtlZXAgdGhlIG1lc3NhZ2UKCSAgYWxpdmUgYW5kIHRoZSBidXMgY2FuIGZyZWUgaXQgb25jZSBpdCdzIGRvbmUgY2xlYW5pbmcgdXAKCSAgc3R1ZmYuCgoyMDE1LTAyLTE2IDE5OjI0OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbmljZXIgYnVmZmVyIG9mZnNldCBwcmludGluZyB3aGVuIG9mZnNldHMgYXJlIG5vdCBzZXQKCSAgUHJpbnQgdW5zZXQgb2Zmc2V0cyBhcyAnbm9uZScgaW5zdGVhZCBvZiBodW1vbmdvdXMgbnVtYmVycywKCSAgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMTUtMDItMTYgMTE6MzU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBpbml0aWFsaXplIEdWYWx1ZSB0byBhIHR5cGUgb25jZSwgbm90IG9uIGV2ZXJ5IHJldHJ5CgkgIE90aGVyd2lzZSB3ZSdsbCBnZXQgd2FybmluZ3MgbGlrZSB0aGlzOgoJICBjYW5ub3QgaW5pdGlhbGl6ZSBHVmFsdWUgd2l0aCB0eXBlICdnYm9vbGVhbicsIHRoZSB2YWx1ZSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkIGFzICdnYm9vbGVhbicKCjIwMTUtMDItMTQgMTI6MTU6MDMgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IGNoZWNrIHVyaSBiZWZvcmUgdXNpbmcgaXQgaW4gZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkX2ludGVybmFsCgkgIElmIGFuIGVsZW1lbnQgaW1wbGVtZW50cyB3cm9uZ2x5IHRoZSBVUkkgcXVlcnkgYW5kIHNldCB0aGUgdXJpIHRvIE5VTEwgYW5kIGlmCgkgIHRoZSBlbGVtZW50IGNhbGxzIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZCBhdCBzb21lIHBvaW50LCBpdCB3aWxsIGxlYWQgdG8gY3Jhc2gKCSAgYXMgdGhlIHVyaSBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgTlVMTCBpbiB0aGUgZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkX2ludGVybmFsCgkgIGZ1bmN0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTIwCgoyMDE1LTAyLTEzIDE5OjQzOjI0ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBEbyBub3Qgd3JvbmdseSBzZW5kIHZhbHVlLXJlbW92ZWQKCSAgQW5kIGF2b2lkIGZyZWVpbmcgc29tZXRoaW5nIHdlIGRvIG5vdCBvd24KCjIwMTUtMDItMDQgMTU6MDY6MTcgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IFNldCBHU1RfVkFMSURBVEVfUExVR0lOX1BBVEgKCjIwMTUtMDItMTIgMTM6MzQ6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZG9jdW1lbnRhdGlvbiBhbmQgZGVidWcgbWVzc2FnZSBhZnRlciBsYXRlbmN5IHVwZGF0ZXMKCSAgQ2hhbmdlcyBkb2NzIGFuZCBtZXNzYWdlIGFjY29yZGluZyB0byBsYXRlbmN5IGhhbmRsaW5nIGZpeAoKMjAxNS0wMi0xMiAxNDo1MDoxNSArMDAwMCAgRnLDqWTDqXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IHVzZSBnX2FzY2lpX3N0cnRvdWxsKCkgdG8gY29udmVydCBzaXplIHN0cmluZyBpbiB1cmkKCSAgc3NjYW5mKCkgZG9lc24ndCBoYW5kbGUgR19HVUlOVDY0X0ZPUk1BVCB3ZWxsIG9uIG1pbmd3NjQgaXQKCSAgYXBwZWFycywgbGVhZGluZyB0byBjb21waWxlciB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDAzNAoKMjAxNS0wMi0xMiAxNDowMzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKSBjYW4gcmV0dXJuIE5VTEwgaWYgdGhlcmUgYXJlIG5vbmUKCjIwMTUtMDItMTIgMTQ6MDM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBGQUxTRSBmb3IgcG9pbnRlcnMKCjIwMTUtMDItMTIgMTM6NTU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wbGVtZW50IG1vcmUgdXNlZnVsIGRlZmF1bHQgaGFuZGxpbmcgZm9yIHRoZSBMQVRFTkNZIHF1ZXJ5CgkgIEJlZm9yZSB3ZSBqdXN0IHRvb2sgdGhlIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCBwYWQgdGhhdCBzdWNjZWRlZCB0aGUgcXVlcnksCgkgIG5vdyB3ZSBhY2N1bXVsYXRlIHRoZSByZXN1bHRzIG9mIGV2ZXJ5IHNpbmtwYWQgcHJvcGVybHkgYW5kIHJldHVybiB0aGF0CgkgIHJlc3VsdC4KCjIwMTUtMDItMTIgMTE6MjY6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJICBkZXNpZ24vcGFydC1sYXRlbmN5OiBNaW5vciBsb2dpYyBmaXgKCSAgVGhlIG1heGltdW0gbGF0ZW5jeSB3aWxsIGJlIHRoZSBlbGVtZW50J3MgbWluaW11bSBsYXRlbmN5IG9yIGJpZ2dlciwKCSAgbm90IGJpZ2dlciB0aGFuIHRoZSBlbGVtZW50J3MgbWluaW11bSBsYXRlbmN5IG9yIGJpZ2dlci4KCjIwMTUtMDItMTEgMTM6NDE6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBJbXByb3ZlIGFuZCBmaXggTEFURU5DWSBxdWVyeSBoYW5kbGluZwoJICBUaGlzIG5vdyBmb2xsb3dzIHRoZSBkZXNpZ24gZG9jcyBldmVyeXdoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTA2CgoyMDE1LTAyLTExIDEyOjIwOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSAgZGVzaWduL3BhcnQtbGF0ZW5jeTogQWRkIG1vcmUgZGV0YWlscyBhYm91dCBtaW4vbWF4IGxhdGVuY3kgaGFuZGxpbmcKCSAgVGhlc2UgZG9jcyBtaXNzZWQgbWFueSBkZXRhaWxzIHRoYXQgd2VyZSBub3Qgb2J2aW91cyBhbmQgYmVjYXVzZSBvZiB0aGF0CgkgIGhhbmRsZWQgaW4gYSBmZXcgZGlmZmVyZW50LCBpbmNvbXBhdGlibGUgd2F5cyBpbiBkaWZmZXJlbnQgZWxlbWVudHMgYW5kIGJhc2UKCSAgY2xhc3Nlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDEwNgoKMjAxNS0wMi0wNyAwNToxNjoyMyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgdGVzdHM6IEZpeCBjbG9jayByZWdyZXNzaW9uIHRlc3QKCSAgRml4IHVwIHRoZSB2YWx1ZXMgdGhlIHRlc3QgaXMgY2hlY2tpbmcgZm9yIG5vdyB0aGF0CgkgIHRoZSBjbG9jayByZWdyZXNzaW9uIHJldHVybnMgcGFyYW1ldGVycyBzdGFydGluZyBmcm9tCgkgIHRoZSBlbmQgb2YgdGhlIHJlZ3Jlc3Npb24gcmFuZ2UuCgoyMDE1LTAyLTA3IDA0OjIyOjIyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRG9uJ3QgdXBkYXRlIHRoZSBjbG9jayB3aGVuIGl0IGRlc3luY2gKCSAgQWRkIGEgaG9sZCBvZmYgd2hlbiB0aGUgY2xvY2sgY2FsaWJyYXRpb24gc3VkZGVubHkgbG9zZXMgc3luY2gsCgkgIGFzIGl0IG1heSBiZSBhIGdsaXRjaCwgYnV0IGFsc28gbWFrZSBzdXJlIHdlIHVwZGF0ZSBpZiBpdCBzdGF5cwoJICBkZXN5bmNoZWQgZm9yIG1vcmUgdGhhbiBhIGZldyBzZWNvbmRzCgoyMDE1LTAyLTA2IDA2OjA3OjQzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogTWFrZSB0aGUgUlRUIGF2ZXJhZ2UgaWdub3JlIGxhcmdlIHZhbHVlcyBtb3JlIGZvcmNlZnVsbHkuCgkgIFNtb290aCBsYXJnZXIgUlRUcyBhIGxpdHRsZSBoYXJkZXIsIHNvIGV4Y2Vzc2l2ZWx5IGxhcmdlIHZhbHVlcwoJICBwZXJ0dXJiIHRoZSBhdmVyYWdlIGEgYml0IGxlc3MsIGFuZCB0aGVyZWZvcmUgZ2V0IGZpbHRlcmVkIG91dAoJICBtb3JlIHN0cm9uZ2x5CgoyMDE1LTAyLTA1IDIyOjU1OjM5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSAgY2xvY2s6IE1ha2UgbGluZWFyIHJlZ3Jlc3Npb24geC95IGJhc2Ugc3RhcnQgZnJvbSBtYXhpbXVtIG9ic2VydmF0aW9uLgoJICBQcm9qZWN0IHRoZSByZXN1bHRzIG9mIHRoZSBsaW5lYXIgcmVncmVzc2lvbiB0byB0aGUgZW5kIG9mIHRoZQoJICByZWdyZXNzaW9uIHJhbmdlLCBzbyB0aGV5J3JlIG1vcmUgZGlyZWN0bHkgY29tcGFyYWJsZSB0byByZXN1bHRzCgkgIGdvaW5nIGZvcndhcmQKCjIwMTUtMDItMDUgMTM6NDk6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkICJvZmZzZXQiIHByb3BlcnR5IHRvIGdvIHdpdGggZ3N0X3BhZF9zZXRfb2Zmc2V0KCkKCSAgU28gd2UgY2FuIHNldCB0aGUgb2Zmc2V0IHZpYSBnc3QtbGF1bmNoLgoKMjAxNS0wMi0wMiAwODoyMjo0NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhZGQgbW9yZSBkZXRhaWwgdG8gbG9nZ2luZyB3aGVuIG5vdCBsb2FkaW5nIGEgcGx1Z2luCgkgIEltcHJvdmUgdGhlIGxvZyBtZXNzYWdlcyBhbmQgYWRkIGUuZyB0aGUgdmVyc2lvbiBudW1iZXIgd2UgY2hlY2tlZC4KCjIwMTUtMDItMDIgMTc6Mzc6NDQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBhIHR5cG8gaW4gYSBkb2NzdHJpbmcuCgoyMDE1LTAyLTAxIDE0OjIzOjI2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGJ1aWxkOiBDaGVjayB0aGF0IF9NU0NfVkVSIG1hY3JvIGlzIGRlZmluZWQKCjIwMTUtMDItMDEgMDM6Mzk6MDMgKzAyMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IEFkZCB0aHJlYWQgbmFtZSBzdXBwb3J0IG9uIE9TIFggYW5kIGlPUwoKMjAxNS0wMS0yOSAxNjozNzowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSAgY2xvY2s6IERvbid0IHVzZSBpbnZhbGlkIG9iamVjdHMgZm9yIEdTVF9ERUJVR19PQkpFQ1QoKQoJICBOb3Qgc3VyZSB3aGF0ICJjbG9jayIgYWN0dWFsbHkgaXMgaGVyZSwgaXQgbXVzdCBiZSBzb21ldGhpbmcgZGVmaW5lZCBieSBvbmUgb2YKCSAgdGhlIGhlYWRlcnMgdGhhdCBhcmUgaW5jbHVkZWQuCgoyMDE1LTAxLTI5IDEyOjEwOjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IERvY3VtZW50IHRoYXQgZ3N0X2J1ZmZlcl9jb3B5X3JlZ2lvbigpIGFjY2VwdHMgLTEgYXMgc2l6ZSB0byBjb3B5IHVudGlsIHRoZSBlbmQKCSAgSXQncyBqdXN0IGEgd3JhcHBlciBhcm91bmQgZ3N0X2J1ZmZlcl9jb3B5X2ludG8oKSBhZnRlciBhbGwuCgoyMDE0LTEyLTA5IDE2OjI4OjU2ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IEFkZCBuZXcgc2tpcCBmbGFncyBmb3IgY2xhcmlmeWluZyB0cmljayBtb2RlIHBsYXliYWNrLgoJICBBZGQgR1NUX1NFRUtfRkxBR19UUklDS01PREVfS0VZX1VOSVRTIGFuZAoJICBHU1RfU0VFS19GTEFHX1RSSUNLTU9ERV9OT19BVURJTywgYW5kIHJlbmFtZSBHU1RfU0VFS19GTEFHX1NLSVAKCSAgdG8gR1NUX1NFRUtfRkxBR19UUklDS01PREUgKHdpdGggYmFja3dhcmRzIGNvbXBhdCBkZWZpbmUpLgoJICBEbyB0aGUgc2FtZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgU0VHTUVOVCBmbGFncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTY2NgoKMjAxNS0wMS0yMyAwODo1OToyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBmaXggYW5vdGhlciB0eXBvIGluIHRoZSBkb2NzCgoyMDE1LTAxLTIyIDIzOjEwOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IGluZGVudGlvbgoKMjAxNS0wMS0yMSAxNDoxMDowMiArMDAwMCAgRGF2aWQgV2FyaW5nIDxkYXZpZC53YXJpbmdAcmQuYmJjLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBuZXcgVVJJIHBhcnNpbmcgdGVzdHMgYmFzZWQgb24gR05ldCdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMxOTUKCjIwMTUtMDEtMjEgMTQ6MDk6NDUgKzAwMDAgIERhdmlkIFdhcmluZyA8ZGF2aWQud2FyaW5nQHJkLmJiYy5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggcGFyc2luZyBpc3N1ZXMKCSAgTWFrZSBob3N0IElQcyBpbiBzcXVhcmUgYnJhY2tldHMgc3RvcmUgb25seSB0aGUgSVAsIGkuZS4gc3RyaXAgdGhlIGJyYWNrZXRzLgoJICBTdHJpcCBsZWFkaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBVUklzLgoJICBGYWlsIHBhcnNpbmcgd2hlbiBob3N0IHBhcnQgZG9lcyBub3QgbWF0Y2ggYW55IHZhbGlkIGZvcm1hdHMgZnJvbSBSRkMzOTg2LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMTk1CgoyMDE1LTAxLTE5IDE5OjE1OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEFkZCBwYXJzaW5nIHVuaXQgdGVzdCBiYXNlZCBvbiBHTmV0J3MKCSAgUGx1cyBzb21lIG5ldyBVUklzIHRvIHBhcnNlLgoJICBodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2FyY2hpdmUvZ25ldC9wbGFpbi90ZXN0cy9jaGVjay9nbmV0L2duZXR1cmkuYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMTk1CgoyMDE1LTAxLTIyIDExOjI5OjE4ICswMTAwICBIZWlucmljaCBGaW5rIDxoZmlua0B0b29sc29uYWlyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggZG9jIG9mIEdTVF9DSEVDS1MgYW5kIEdTVF9DSEVDS1NfSUdOT1JFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMzMzUKCjIwMTUtMDEtMjEgMTg6MDc6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEFkZCBfZmFpbF91bmxlc3MoKSBjb21wYXRpYmlsaXR5IGZ1bmN0aW9uIGFyb3VuZCBfY2tfYXNzZXJ0X2ZhaWxlZCgpCgkgIFdlIGV4cG9ydGVkIHRoaXMgaW4gPCAxLjUgYW5kIGl0IHdhcyBhdXRvbWF0aWNhbGx5IHVzZWQgYnkgbWFueSBtYWNyb3MKCSAgZnJvbSB0aGUgaGVhZGVyLiBLZWVwIGl0IGV4cG9ydGVkIGZvciBub3cuCgoyMDE1LTAxLTIxIDE0OjEyOjIyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IElubGluZSBhcHBseV9wYWRfb2Zmc2V0KCkKCSAgQXZvaWQgZG9pbmcgYSBmdW5jdGlvbiBjYWxsIGZvciBzb21ldGhpbmcgd2hpY2ggd2lsbCBtb3N0bHkgYmUgdW51c2VkCgoyMDE1LTAxLTIxIDE0OjEwOjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDE1LTAxLTIxIDExOjQ1OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBQUk9CRV9OT19EQVRBIG1hY3JvCgkgIFRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoZSBtYWNybyB3YXMgYWx3YXlzIHVzZWQgd2l0aCAncmV0JyBhcyB0aGUgZGVmYXVsdHZhbAoJICBhcmd1bWVudC4KCSAgVGhpcyB3b3VsZCByZXN1bHQgaW4gdGhlIG1hY3JvIGV2ZW50dWFsbHkgZXhwYW5kaW5nIHRvCgkgIGlmIChHX1VOTElLRUxZIChyZXQgIT0gcmV0ICYmIHJldCAhPSBHU1RfRkxPV19PSykpCgkgIC4uLiByZXQgIT0gcmV0IHdpbGwgYWx3YXlzIGZhaWwsIGFuZCB0aGVyZWZvcmUgd2UnZCBuZXZlciBjYWxsIHRoZQoJICBmb2xsb3dpbmcgbGluZS4KCSAgSW5zdGVhZCBvZiB0aGF0LCBzdG9yZSB0aGUgcHJldmlvdXMgdmFsdWUgbG9jYWxseSBmb3IgY29tcGFyaXNpb24KCjIwMTUtMDEtMjEgMjI6NDQ6NTkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBGaXggZG9jcyB0eXBvLiBDbG9jayBidXMgbWVzc2FnZXMgYXJlIEdTVF9NRVNTQUdFX0VMRU1FTlQKCjIwMTUtMDEtMTUgMjI6MzI6MjggKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBJbXBsZW1lbnQgcmF0ZSBsaW1pdHMgZm9yIHBvbGxpbmcgYW5kIGZpeCB1cCBza2V3IGxpbWl0cwoJICBBZGQgdGhlIG1pbmltdW0tdXBkYXRlLWludGVydmFsIHByb3BlcnR5IHRvIHRoZSBjbG9jaywgd2l0aCBhIGRlZmF1bHQKCSAgb2YgNTBtcyBhbmQgZG9uJ3Qgc2VuZCBwb2xsaW5nIHJlcXVlc3RzIGZhc3RlciB0aGFuIHRoYXQuIFRoYXQgaGVscHMgdG8KCSAgZW5zdXJlIHdlIHNwcmVhZCB0aGUgaW5pdGlhbCBvYnNlcnZhdGlvbnMgb3V0IGEgbGl0dGxlIC0gc3RhcnR1cCB0YWtlcwoJICBhIGxpdHRsZSBsb25nZXIsIGJ1dCB0cmFja2luZyBpcyBtb3JlIHN0YWJsZS4KCSAgTW92ZSB0aGUgZGlzY29udCBza2V3IGxpbWl0aW5nIGNvZGUgaW5zaWRlIGFuIGlmIHN0YXRlbWVudCwgc28gdGhhdAoJICBpdCdzIG9ubHkgZG9uZSB3aGVuIHRoZSBsaW5lYXIgcmVncmVzc2lvbiBzdWNjZWVkcyBhbmQgdGhlIGNsb2NrCgkgIHBhcmFtZXRlcnMgbWlnaHQgYWN0dWFsbHkgY2hhbmdlLgoKMjAxNS0wMS0xNSAxMDowNTozMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IEltcHJvdmUgc2xhdmluZyByZWdyZXNzaW9uLgoJICBBZGQgZG9tYWluIGNoZWNrcyBmb3IgdGhlIGlucHV0IHZhbHVlcywgYW5kIGEgdmFyaWFibGUgcHJlY2lzaW9uCgkgIGNhbGN1bGF0aW9uIHRoYXQgbG9vcHMgaWYgbmVjZXNzYXJ5IHRvIGVuc3VyZSB3ZSBuZXZlciBvdmVyZmxvdwoJICBhY2N1bXVsYXRvcnMgYW5kIHRoZW4gc2lsZW50bHkgcHJvZHVjZSBnYXJiYWdlIHJlc3VsdHMuCgkgIE1ha2UgdGhlIChub24tcHVibGljKSBsaW5lYXIgcmVncmVzc2lvbiBmdW5jdGlvbiBhdmFpbGFibGUgZm9yCgkgIHVuaXQgdGVzdGluZyBieSBwdXR0aW5nIGl0IGluIGEgc2VwYXJhdGUgc291cmNlIGZpbGUgdGhlIHRlc3QKCSAgY2FuIGluY2x1ZGUuIEFkZCBhIHVuaXQgdGVzdCB0aGF0IHRoZSBuZXcgcmVncmVzc2lvbiBmdW5jdGlvbgoJICBwcm9kdWNlcyBzZW5zaWJsZSByZXN1bHRzIGZvciBzZXZlcmFsIGlucHV0cyB0YWtlbiBmcm9tIHJlYWwtd29ybGQKCSAgY2FwdHVyZXMuCgoyMDE1LTAxLTEwIDIxOjQyOjAwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9uZXRjbG9jay1jbGllbnQuYzoKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svbmV0Y2xvY2stc2VydmVyLmM6CgkgIG5ldGNsb2NrOiBBZGQgc2ltcGxlIG5ldHdvcmsgY2xvY2sgc2VydmVyIGFuZCBjbGllbnQgZXhhbXBsZXMKCjIwMTUtMDEtMTAgMjE6NDI6MDAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBJbXBsZW1lbnQgc2VuZGluZyBzdGF0aXN0aWMgYnVzIG1lc3NhZ2VzIGFuZCBkaXNjb250IGxpbWl0cwoJICBBbGxvdyBzZXR0aW5nIGEgR3N0QnVzIG9uIHRoZSBuZXR3b3JrIGNsb2NrIGNsaWVudAoJICB2aWEgYSBuZXcgJ2J1cycgb2JqZWN0IHByb3BlcnR5LiBJZiBhIGJ1cyBpcyBzZXQsIHRoZQoJICBjbG9jayB3aWxsIG91dHB1dCBhbiBlbGVtZW50IG1lc3NhZ2UgY29udGFpbmluZyBzdGF0aXN0aWNzCgkgIGFib3V0IG5ldyBjbG9jayBvYnNlcnZhdGlvbnMgYW5kIHRoZSBjbG9jayBjb3JyZWxhdGlvbi4KCSAgV2hlbiB0aGUgbG9jYWwgY2xvY2sgaXMgc3luY2hyb25pc2VkIHdpdGggdGhlIHJlbW90ZSwgbGltaXQgdGhlCgkgIG1heGltdW0ganVtcCBpbiB0aGUgY2xvY2sgYXQgYW55IHBvaW50IHRvIGJlIG9uZSBhdmVyYWdlIFJUVCB0bwoJICB0aGUgc2VydmVyLiBBbHNvLCBwdWJsaXNoIGluIHRoZSBidXMgbWVzc2FnZSB3aGV0aGVyIHdlIGFyZQoJICBzeW5jaGVkIHdpdGggdGhlIHJlbW90ZSBvciBub3QuCgoyMDE1LTAxLTEwIDIxOjQyOjAwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbl91bmFwcGxpZWQoKQoJICBnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uX3VuYXBwbGllZCgpIGFkZHMgYSBuZXcgbWFzdGVyL3NsYXZlIGNsb2NrCgkgIG9ic2VydmF0aW9uIGFuZCBydW5zIHRoZSByZWdyZXNzaW9uIHdpdGhvdXQgYWN0aXZhdGluZyB0aGUgbmV3CgkgIGNhbGlicmF0aW9uIHJlc3VsdHMuCgoyMDE0LTEyLTE2IDIyOjUxOjIyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkKCSAgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgdXNlcyBkaXJlY3RseSBwYXNzZWQgY2FsaWJyYXRpb24KCSAgcGFyYW1ldGVycywgaW5zdGVhZCBvZiB1c2luZyB0aGUgY2xvY2sncyBjdXJyZW50IGNhbGlicmF0aW9uLAoJICBhbGxvd2luZyBmb3IgY2FsY3VsYXRpb25zIHVzaW5nIHBlbmRpbmcgb3Igb2xkIGNhbGlicmF0aW9uIHBhcmFtcwoKMjAxNS0wMS0yMSAwOTo0NToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBDb25zdGlmeSBuZWdvdGlhdGlvbiBtb2RlIEdFbnVtVmFsdWUgdGFibGUKCjIwMTUtMDEtMjAgMTA6MzU6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBHc3RFdmVudCBkb2NzCgkgIHNlbmQgLT4gc2VudAoKMjAxNS0wMS0yMCAwOToxOToxMCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogUmVtb3ZlIGdub25saW4gZnJvbSB0aGUgc2NyaXB0cwoJICBJdCBpcyBub3QgbWFpbnRhaW4gYW55bW9yZSBhbmQgaXRzIGZlYXR1cmUgYXJlIG5vdyBpbnNpZGUgdGhlIEdTdHJlYW1lcgoJICBFZGl0aW5nIFNlcnZpY2VzIChmb3IgdGhlIHRpbWUgYmVpbmcpLgoKMjAxNS0wMS0xNiAxOToxNzozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBQYXNzIHN0cnVjdHMgd2UgcGxhbiB0byBtb2RpZnkgYXJvdW5kIGJ5IHBvaW50ZXIsIG5vdCB2YWx1ZQoJICBPdGhlcndpc2UgdGhlIHN0cnVjdCBpcyBnb2luZyB0byBiZSBjb3BpZWQsIHdoaWNoIGlzIG5vdCB2ZXJ5IGVmZmljaWVudC4gQW5kCgkgIGFsc28gaGFzIHRoZSBuaWNlIHNpZGUgZWZmZWN0IHRoYXQgbW9kaWZpY2F0aW9ucyBvZiB0aGUgc3RydWN0IG1pZ2h0IGJlCgkgIGRvbmUgaW4gYSBjb3B5LCBhbmQgd2UgbGF0ZXIgdXNlIHRoZSBvcmlnaW5hbCBzdHJ1Y3Qgd2l0aG91dCB0aGUgY2hhbmdlcy4KCSAgQ2F1c2VkIExBVEVOQ1kgcXVlcmllcyB0byBhbHdheXMgcmV0dXJuIHRoZSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgaW4gb25lIG9mIG15CgkgIHRlc3RzLCBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgdmFsdWVzIHJlcG9ydGVkIGJ5IGNoaWxkIGVsZW1lbnRzLgoKMjAxNS0wMS0xNCAxMDo1MjoxMSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBzZW5kIGdhcCBldmVudHMgd2hlbiBkcm9wcGluZyBidWZmZXJzCgoyMDE1LTAxLTEzIDE4OjExOjM5ICswMDAwICBQaGlsbGlwIFdvb2QgPHBoaWxsaXAud29vZEBkdW5lbG0ub3JnLnVrPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGZpeCBpbmNvcnJlY3QgcHJlc2V0IHZlcnNpb24gY29tcGFyaXNvbgoJICBVc2UgYXBwX3ZlcnNpb24gaWYgdGhlcmUgYXJlIG5vIHN5c3RlbSBwcmVzZXRzLCBzbyB0aGF0IGlmIHRoZQoJICBhcHBsaWNhdGlvbiBwcmVzZXRzIGFyZSBuZXdlciB0aGFuIHRoZSB1c2VyIHByZXNldHMgdGhleSBhcmUgbWVyZ2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyODc3CgoyMDE1LTAxLTEyIDE2OjAzOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IGRlcmVmZXJlbmNlIE5VTEwgcG9pbnRlcgoJICBDSUQgMTI2MjI4NgoKMjAxNS0wMS0xMiAxNTo1NTo0NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjJjNmI5NSB0byBiYzc2YThiCgoyMDE1LTAxLTExIDIzOjAwOjI5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGZpeCBzb3J0aW5nIHByZXNldHMKCSAgVGhlIGdsaWIgZG9jcyBhcmUgbm90IGNsZWFyIG9uIHRoaXMsIGJ1dCB0aGUgcXNvcnQgbWFuLXBhZ2UgaXMgLSB0aGUKCSAgR0NvbXBhcmVEYXRhRnVuYyBkb2VzIG5vdCBnZXQgdGhlIHN0cmluZ3MsIGJ1dCBwb2ludGVycyB0byB0aGVtLgoKMjAxNC0xMi0zMSAxODo1MjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggc2lsbHkgR1F1ZXVlIGl0ZXJhdGlvbiBjb2RlCgkgIE5vdCBhY3RpdmUgYnkgZGVmYXVsdCB0aG91Z2guCgoyMDE1LTAxLTA0IDIzOjI0OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGRvbid0IHJldHVybiBlbXB0eSBwcmVzZXQgbGlzdHMKCSAgQWRkIGEgc2hvcnRjdXQgZm9yIHRoZSBjYXNlcyB3aGVyZSBhbiBlbGVtZW50IGltcGxlbWVudHMgdGhlIHByZXNldCBpZmFjZSBidXQKCSAgaGFzIG5vIHByZXNldHMgYW5kIHJldHVybiBOVUxMIGluc3RlYWQgb2YgYW4gZW1wdHkgbGlzdCBpbiB0aGF0IGNhc2UuCgoyMDE1LTAxLTA0IDIzOjA4OjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IG9ubHkgcHJpbnQgcHJlc2V0cyBsaW5lIGlmIG51bS1wcmVzZXRzID4gMAoJICBBbHNvIGNoZWNrIGZvciBhbiBlbXB0eSBzdHJ2LgoKMjAxNS0wMS0wNCAyMjo1MTowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggb3V0cHV0IGZvciAtYQoJICBVc2Ugbl9wcmludCB0byBlbnN1cmUgYWxsIGxpbmVzIGFyZSBwcmVmaXhlZCB3aXRoIHRoZSBlbGVtZW50IG5hbWUuCgoyMDE0LTEyLTI5IDExOjU0OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBpZ25vcmUgbGliY2hlY2sgaGVhZGVycyB0aGF0IHVzZSBkb3h5Z2VuIGNvbW1lbnRzCgoyMDE0LTEyLTI5IDExOjUyOjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogZml4IHR3byBndGstZG9jIHdhcm5pbmdzCgkgIE9uZSBieSBjb3JyZWN0aW5nIHRoZSBlbmQtb2YtY29tbWVudCBtYXJrZXIgYW5kIG9uZSBieSBtYWtpbmcgc3VyZSB0aGUgZnVuY3Rpb24KCSAgcHJvdG90eXBlIGluIHRoZSBoZWFkZXIgaXMgaW4gc3luYyB3aXRoIHRoZSBjIGZpbGUgYW5kIGRvYy1ibG9iLgoKMjAxNC0xMi0yNiAyMzoyMjozMCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIG1pc3NpbmcgaW50ZXJmYWNlcyB0byBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIwNTcKCjIwMTQtMTItMjcgMTU6MTU6MzAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IG91dGRhdGVkIGV4YW1wbGUgY29kZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24KCSAgR3N0SXRlcmF0b3Igbm8gbG9uZ2VyIHJldHVybnMgYSByZWZjb3VudGVkIGdwb2ludGVyCgoyMDE0LTEyLTI0IDEzOjQ2OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgc2FtZSB3YWl0aW5nIGZ1bmN0aW9uIGZvciBFT1MgYW5kIG5vbi1FT1Mgd2FpdGluZwoKMjAxNC0xMi0yNCAxMzo0NDowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBXYWtlIHVwIGFsbCB3YWl0aW5ncyBwYWRzIGRpcmVjdGx5IGlmIHdlIGZvcndhcmQgdGhlIEVPUyBldmVudAoJICBPdGhlcndpc2UgdGhleSBtaWdodCB3YWl0IGEgYml0IGxvbmdlciB1bm5lY2Vzc2FyaWx5LgoJICBBbHNvIGRvIHNvbWUgbWlub3IgY2xlYW51cC4KCjIwMTQtMTItMjQgMTA6MTM6NTEgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IEJsb2NrIHdoZW4gcmVjZWl2aW5nIGFuIEVPUyBldmVudCBvbiBhIGRlYWN0aXZhdGVkIHBhZAoJICAuLi4gYW5kIG9ubHkgdW5ibG9jayB3aGVuIGVpdGhlciBhKSB0aGUgcGFkIGJlY29tZXMgYWN0aXZlIGFuZCB0aGUgZXZlbnQKCSAgc2hvdWxkIGJlIGZvcndhcmRlZCBvciBiKSB0aGUgYWN0aXZlIHBhZCB3ZW50IEVPUyBpdHNlbGYuCgkgIE90aGVyd2lzZSBpdCBjYW4gaGFwcGVuIHRoYXQgd2Ugc3dpdGNoIGZyb20gYSBsb25nZXIgdHJhY2sgdGhhdCBpcyBub3QgRU9TIHlldAoJICB0byBhIHNob3J0ZXIgdHJhY2sgdGhhdCBhbHJlYWR5IGlzIEVPUywgYnV0IHRoZSBzaG9ydGVyIHRyYWNrIHdvbid0IGhhdmUgYW55CgkgIHBvc3NpYmlsaXR5IHRvIHNlbmQgaXRzIEVPUyBldmVudCBkb3duc3RyZWFtIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA5NDkKCjIwMTQtMTItMjMgMTI6NTQ6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogS2VlcCBhIHJlZiBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBzaW5rcGFkIGFyb3VuZAoJICBPdGhlcndpc2Ugd2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHRoZSBwb2ludGVyIHBvaW50cyB0byBhIHN0aWxsIGV4aXN0aW5nCgkgIHBhZCBpbnN0YW5jZSBhZnRlciByZWxlYXNpbmcgdGhlIGxvY2suCgoyMDE0LTEyLTIzIDEyOjUzOjU4ICswMTAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEdldCB0aGUgYWN0aXZlIHNpbmtwYWQgYWdhaW4gYWZ0ZXIgdGFraW5nIHRoZSBsb2NrIHdoZW4gaGFuZGxpbmcgZXZlbnRzCgkgIEl0IG1pZ2h0IGhhdmUgY2hhbmdlZCBpbiB0aGUgbWVhbnRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE4OTMKCjIwMTQtMTItMjIgMTM6MDg6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogU2hvcnQtY2lyY3VpdCBDQVBTIHF1ZXJ5IGhhbmRsaW5nIGlmIHRyYW5zZm9ybV9jYXBzIHJldHVybnMgRU1QVFkgY2FwcwoJICBCb3RoIGZvciB0aGUgcGVlciBmaWx0ZXIgY2FwcyBhbmQgdGhlIGNvbnZlcnRlZCBjYXBzIGJhc2VkIG9uIHRoZSBwZWVyIGNhcHMuCgkgIElmIHRoZSBwZWVyIGZpbHRlciBjYXBzIGFyZSBFTVBUWSwgdGhlIHBlZXIgY2FwcyBxdWVyeSB3aWxsIGFsc28gcmV0dXJuCgkgIEVNUFRZLiBUaGVyZSdzIG5vIG5lZCB0byBib3RoIGRvd25zdHJlYW0vdXBzdHJlYW0gd2l0aCB0aGlzIHF1ZXJ5LgoKMjAxNC0xMi0yMiAxMTo0NToxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1BSU5UQUlORVJTOgoJICBNQUlOVEFJTkVSUzogVXBkYXRlIG15IG1haWwgYWRkcmVzcwoKMjAxNC0xMi0yMSAxNDoxMjoyOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHVzZSBhIGNvbnN0YW50IGZvciB0aGUgbWF4IHBhcmFtIGxlbmd0aAoJICBJbXByb3ZlIHJlYWRhYmlsaXR5IGJ5IHVzaW5nIGEgZGVmaW5lIGZvciB0aGUgbWF4LWNoYXJzLiBBbHNvIHVzZSB0aGUgdW5pY29kZQoJICBlbGxpcHNpcyBhcyBkb3QgZmlsZXMgYXJlIHV0Zi04LgoKMjAxNC0xMi0xNSAxNDowMzo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBwcmVzZXQgbmFtZXMKCSAgSWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgcHJlc2V0cyBhbmQgc2hpcHMgc29tZSwgcHJpbnQgdGhlbS4KCSAgRml4ZXMgIzc0MTQyNwoKMjAxNC0xMi0xOSAxMTozNToyNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IEFkZCBuZXcgbWF4aW11bSBsZXZlbCBkZWJ1Z2dpbmcKCSAgQVBJOiBHU1RfTEVWRUxfTUFYCgkgIEJ5IGNvbXBpbGluZyBnc3RyZWFtZXIgKG9yIHBsdWdpbnMpIHdpdGggR1NUX0xFVkVMX01BWCBkZWZpbmVkLCBvbmx5CgkgIHRoZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhdCBvciBiZWxvdyB0aGF0IGxldmVsIHdpbGwgYmUgY29tcGlsZWQgaW4uCgkgIFRoaXMgYWxsb3dzIGNvbXBpbGluZyBpbiBzb21lIGRlYnVnZ2luZyAobGlrZSBlcnJvcnMgYW5kIHdhcm5pbmdzKSB3aGljaAoJICBoZWxwcyBpbiBkZWJ1Z2dpbmcsIGJ1dCB3aXRob3V0IHRoZSBmdWxsIGNwdS9tZW1vcnkgb3ZlcmhlYWQgb2YgYWxsIGRlYnVnZ2luZwoJICBlbmFibGVkLgoKMjAxNC0xMi0xOCAxMjowNDoyMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IGZpeCBHSSBhbm5vdGF0aW9uCgkgIEFkZCBtaXNzaW5nIDogdG8gYW5ub3RhdGlvbgoKMjAxNC0xMS0xMyAxNDo1Mzo1OSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGp1bXAgb3ZlciBsYXJnZSBza2lwcyBpbiBwdWxsIG1vZGUKCSAgVGhpcyBieXBhc3NlcyB0aGUgZHVtcGluZyBvZiBidWZmZXJzIHdlIHN0aWxsIGhhdmUgdG8gZG8gaW4gcHVzaCBtb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMDUzCgoyMDE0LTEwLTI1IDE3OjE2OjI1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIGRlYnVndXRpbHM6IFRydW5jYXRlIHBhcmFtZXRlciB2YWx1ZXMgdGhhdCBhcmUgdG9vIGxvbmcKCSAgVGhpcyByZW1vdmVzIHNvbWUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZHVtcHMsIGJ1dCBpbXByb3ZlcyByZWFkYWJpbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE2NQoKMjAxNC0xMi0xOCAxMDo1MzowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZWYxZmZkYyB0byBmMmM2Yjk1CgoyMDE0LTEyLTE2IDE2OjMxOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZS9jYXBzOiBBZGQgZ3N0X3tzdHJ1Y3R1cmUsY2Fwc31fZmlsdGVyX2FuZF9tYXBfaW5fcGxhY2UoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzY1CgoyMDE0LTEyLTE2IDE4OjE0OjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCBzaW1wbGUgdW5pdCB0ZXN0IGZvciBmb3JlYWNoKCkgYW5kIG1hcF9pbl9wbGFjZSgpCgoyMDE0LTExLTA3IDExOjE1OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIGdzdF9jYXBzX2ZvcmVhY2goKSBhbmQgZ3N0X2NhcHNfbWFwX2luX3BsYWNlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc2NQoKMjAxNC0xMi0xNiAxNTo1MzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxNC0xMi0xNCAxMjo1NDozMiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGNoZWNrOiBIYXZlIGF1dG90b29scyBnZW5lcmF0ZSBpbnRlcm5hbC1jaGVjay5oCgkgIFByZXZpb3VzbHkgR1N0cmVhbWVyIGdvdCBhY2Nlc3MgdG8gdGhlIGxpYmNoZWNrIGludGVyZmFjZSBieSBpbmNsdWRpbmcKCSAgbGlicy9nc3QvY2hlY2svY2hlY2suaCB3aGljaCBpbiB0dXJuIGluY2x1ZGVkIGludGVybmFsLWNoZWNrLmggaW4gdGhlCgkgIHNhbWUgZGlyZWN0b3J5LiBpbnRlcm5hbC1jaGVjay5oIHdhcyBnZW5lcmF0ZWQgYnkgY29weWluZwoJICBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oIHdoaWNoIGluIHR1cm4gd2FzIGdlbmVyYXRlZCBmcm9tCgkgIGNoZWNrLmguaW4gaW4gdGhlIHNhbWUgZGlyZWN0b3J5LiBJbiB0aGlzIGNhc2UgZ2VuZXJhdGluZwoJICBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oIGlzIHVubmVjZXNzYXJ5LCBpbiBhZGRpdGlvbiB0aGlzIGZpbGUKCSAgd2FzIGFjY2lkZW50YWxseSBkaXN0cmlidXRlZCBpbiBnZW5lcmF0ZWQgcHJvamVjdCB0YXJiYWxscy4KCSAgTm93IGxpYnMvZ3N0L2NoZWNrL2ludGVybmFsLWNoZWNrLmggaXMgZ2VuZXJhdGVkIGRpcmVjdGx5IGZyb20KCSAgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbiBieSBjb25maWd1cmUuIFRoaXMgbWVhbnMgdGhhdCB0aGUKCSAgbGliY2hlY2sgc291cmNlIG11c3QgaW5jbHVkZSBpbnRlcm5hbC1jaGVjay5oIGluc3RlYWQgb2YgdGhlIHByZXZpb3VzbHkKCSAgZ2VuZXJhdGVkIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguIEhvd2V2ZXIgdGhlIHVubmVjZXNzYXJ5CgkgIGludGVybWVkaWF0ZSBzdGVwIGlzIG5vdyBza2lwcGVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMzU5CgoyMDE0LTEyLTE2IDEwOjEzOjAzIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IERvbid0IGNoZWNrIHNpemUgaW4gY29uZmlnIHZhbGlkYXRpb24KCSAgUG9vbHMgYXJlIGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBzaXplIGluIG9yZGVyIHRvIGFkYXB0IHBhZGRpbmcuIFNvCgkgIGRvbid0IGNoZWNrIHRoZSBzaXplLiBOb3JtYWxseSBwb29sIHdpbGwgY2hhbmdlIHRoZSBzaXplIHdpdGhvdXQKCSAgZmFpbGluZyBzZXRfY29uZmlnKCksIGJ1dCBpdCB0aGV5IGVuZHVwIGNoYW5naW5nIHRoZSBzaXplIGJlZm9yZQoJICB0aGUgdmFsaWRhdGUgbWV0aG9kIG1heSBmYWlsIG9uIGEgZmFsc2UgcG9zaXRpdmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE0MjAKCjIwMTQtMTItMTYgMTI6MjE6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbG9nIHJlYXNvbiBmb3IgZGlzY2FyZGVkIGJ1ZmZlcnMKCSAgUEVSRk9STUFOQ0UgbG9nIHRoZSByZWFzb24gd2h5IGEgYnVmZmVyIGNvdWxkIG5vdCBiZSByZWN5Y2xlZCBpbiB0aGUKCSAgYnVmZmVycG9vbC4KCjIwMTQtMTItMTUgMTQ6NTM6MjggKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IFVwZGF0ZSB2ZXJzaW9uIG51bWJlciBvZiBpbmNsdWRlZCBsaWJjaGVjawoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNTUwCgoyMDE0LTEyLTEyIDIxOjAyOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cwoKMjAxNC0xMi0xMiAyMTo1NDowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcHJlc2V0IGFwaQoKMjAxNC0xMi0xMiAyMTozODoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBwcmVzZXQ6IGFkZCBnc3RfcHJlc2V0X2lzX2VkaXRhYmxlKCkKCSAgQWRkIGEgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIHByZXNldCBpZmFjZSBpbXBsZW1lbnRhdGlvbiBpcyBlZGl0YWJsZSBhbmQKCSAgZG9jdW1lbnQgdGhpcyBmcm9tIHRoZSBpbXBsZW1lbnRlcnMgcGVyc3BlY3RpdmUuCgkgIEFQSTogZ3N0X3ByZXNldF9pc19lZGl0YWJsZSgpCgoyMDE0LTEyLTEyIDE0OjIzOjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmIGZpbGUKCjIwMTQtMTItMTIgMTM6NTc6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggY29tcGlsZXIgd2FybmluZwoJICBnc3RkZWJ1Z3V0aWxzLmM6IEluIGZ1bmN0aW9uICdnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhJzoKCSAgZ3N0ZGVidWd1dGlscy5jOjY4Mzo1MzA6IGVycm9yOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQgWy1XZXJyb3JdCgkgIGdfcmV0dXJuX2lmX2ZhaWwgKEdTVF9JU19CSU4gKGJpbikpOwoKMjAxNC0xMi0xMiAxMzoxNTowMiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBkZWJ1Z3V0aWxzOiBBZGQgYSBnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhKCkgbWV0aG9kCgkgIFRoaXMgcHJvdmlkZXMgdGhlIGRvdCBmaWxlIGFzIGEgc3RyaW5nLCByYXRoZXIgdGhhbiBkdW1waW5nIHRvIGEgZmlsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTQyNQoKMjAxNC0xMi0xMCAxMToxNzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBtaW5vciBjb3NtZXRpYyBjaGFuZ2UKCSAgTm8gbmVlIHRvIGFiYnJldiB2YXJpYWIgbmFtIGhlcmUsIG5pY2VyIHRvIHJlYWQgaWYgZnVsbC4KCjIwMTQtMTItMTAgMTE6MTY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogdXNlIEdTVF9CVUZGRVJfT0ZGU0VUX05PTkUgZm9yIGJ1ZmZlciBvZmZzZXQKCjIwMTQtMTItMDcgMTI6NTU6MjYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGNoZWNrOiBBdm9pZCByZXF1cmluZyAodSlpbnRtYXhfdCBpbiBtYWNyb3MKCSAgUHJldmlvdXNseSBlbWJlZGRlZCBsaWJjaGVjayB2ZXJzaW9ucyBkaWQgbm90IGRlcGVuZCBvbiAodSlpbnRtYXhfdCBhbmQKCSAgZG9pbmcgc28gd291bGQgcmVxdWlyZSBwcm9qZWN0cyB1c2luZyBHU3RyZWFtZXIncyBjaGVjayBmcmFtZXdvcmsgdG8gYWRkCgkgIEFYX0NSRUFURV9TVERJTlRfSCB0byB0aGVpciBjb25maWd1cmUuYWMuIEEgd29ya2Fyb3VuZCBpcyB0byBmYWxsYmFjayB0bwoJICBnbGliIHR5cGVzLiBUaGlzIHBhdGNoIGFzc3VtZXMgdGhhdCBnbGliLmggaXMgYWx3YXlzIGluY2x1ZGVkIGJlZm9yZQoJICBpbnRlcm5hbC1jaGVjay5oIHdoaWNoIGlzIG9rIHNpbmNlIGV2ZXJ5dGhpbmcgR3N0cmVhbWVyIHdvdWxkIGluY2x1ZGUKCSAgZ3N0L2dzdGNoZWNrLmggaW5zdGVhZCBvZiBkaXJlY3RseSBpbmNsdWRpbmcgaW50ZXJuYWwtY2hlY2suaC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMi0wNiAxOTowMzowNCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2xvY2tfZ2V0dGltZS5jOgoJICBjaGVjazogRml4IGNvbXBpbGF0aW9uIGVycm9yIGZvciBpT1MKCSAgbGliY2hlY2sgaW5jbHVkZXMgQ29yZVNlcnZpY2VzIGZvciBpdHMgY29tcGF0IGZvciBjbG9ja19nZXR0aW1lKCksCgkgIGV2ZW4gdGhvdWdoIGl0IG5ldmVyIHVzZXMgYW55dGhpbmcgaXQgZGVjbGFyZXMuIExldCdzIHJlbW92ZSBpdC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMS0xNSAxMzoyNjo0NyArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogQXBwbHkgR1N0cmVhbWVyLXNwZWNpZmljIHBhdGNoZXMKCSAgUmVpbnRyb2R1Y2VkIHBhdGNoZXM6CgkgICogTWFrZSBzdXJlIHRoYXQgZmFpbF9pZigxKSBhY3R1YWxseSBmYWlscwoJICBmcm9tIGNvbW1pdCA5Zjk5ZDA1NmEyNjNlNzFhNWU2MTgxMjI0ODI5ZGVmOTA2Y2YwMjI2CgkgIE5ldyBwYXRjaGVzIGR1ZSB0byB1cGRhdGVkIGxpYmNoZWNrIChiYXNlZCBvbiAwLjkuMTQpOgoJICAqIENoZWNrcyBpbiBtNC9jaGVjay1jaGVja3MubTQgdG8gY2F0ZXIgZm9yIG5ldyBkZXBlbmRlbmNpZXMKCSAgKiBDb25kaXRpb25hbCBjb21waWxlLXRpbWUgY29tcGF0IFBPU0lYIGZhbGxiYWNrcyBmb3IgbGliY2hlY2sKCSAgKiBBdm9pZCByZWxhdGl2ZSBwYXRocyBmb3IgbGliY2hlY2sgaGVhZGVyIGZpbGVzCgkgICogTWFrZSB0aW1lcl9jcmVhdGUoKSB1c2FnZSBkZXBlbmQgb24gcG9zaXggdGltZXJzLCBub3QgbGlicnQKCSAgKiBSZWx5IG9uIGRlZmF1bHQgQVhfUFRIUkVBRCBiZWhhdmlvciB0byBhbGxvdyBIQVZFX1BUSFJFQUQgdG8gYmUgdXNlZAoJICB3aGVuIGNoZWNraW5nIGZvciB0eXBlcyBhbmQgZnVuY3Rpb25zIChsaWtlIGNsb2NrX2dldHRpbWUoKSkKCSAgKiBBdm9pZCBkb3VibGUgZGVjbGFyYXRpb24gb2YgY2xvY2tfZ2V0dGltZSgpIHdoZW4gYXZhaWxhYmUgb3V0c2lkZSBvZgoJICBsaWJydCBieSBtYWtpbmcgY29tcGF0IGNsb2NrX2dldHRpbWUoKSBkZWNsYXJhdGlvbiBjb25kaXRpb25hbAoJICAqIGNoZWNrIDAuOS45IHJlbmFtZWQgX2ZhaWxfdW5sZXNzKCkgYW5kIDAuOS4xMiBsYXRlciByZW5hbWVkIGl0IGFnYWluCgkgIHRvIF9ja19hc3NlcnRfZmFpbGVkKCksIHNvIEFTU0VSVF97Q1JJVElDQUwsV0FSTklOR30oKSBub3cgY2FsbHMgdGhpcwoJICBmdW5jdGlvbgoJICAqIFJlbW92ZSBsaWJjaGVjayBmYWxsYmFjayBpbmZyYXN0cnVjdHVyZSBmb3IgbWFsbG9jKCksIHJlYWxsb2MoKSwKCSAgZ2V0dGltZW9mZGF5KCkgYW5kIHNucHJpbnRmKCkgc2luY2UgZWl0aGVyIHRoZXkgYXBwZWFyIHRvIGJlCgkgIGF2YWlsYWJsZSBvciB0aGV5IGludHJvZHVjZSBldmVuIG1vcmUgZGVwZW5kZW5jaWVzLgoJICBUaGUgcmVzdWx0IGlzIGFuIGVtYmVkZGVkIGNoZWNrIGluIGdzdHJlYW1lciB0aGF0IGhhcyBiZWVuIHRlc3RlZCBieQoJICBydW5uaW5nIGNoZWNrIHRlc3RzIGluIGNvcmUsIC1iYXNlLCAtZ29vZCwgLWJhZCwgLXVnbHkgYW5kIHJ0c3Atc2VydmVyCgkgIG9uIExpbnV4LCBPU1ggYW5kIFdpbmRvd3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTEtMTUgMTI6NTM6MzIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2FsYXJtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2xvY2tfZ2V0dGltZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xvY2FsdGltZV9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3N0cnNpZ25hbC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay90aW1lcl9jcmVhdGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svdGltZXJfZGVsZXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3RpbWVyX3NldHRpbWUuYzoKCSAgY2hlY2s6IEltcG9ydCB2ZXJzaW9uIDAuOS4xNAoJICBUaGlzIGxpZnRzIHRoZSBmaWxlcyBhbG1vc3QgdmVyYmF0aW0gKHRoZSBjaGFuZ2VzIGJlaW5nIHJ1bm5pbmcgdGhvdWdoCgkgIGdzdC1pbmRlbnQgYW5kIGZpeGluZyB0aGUgRlNGIGFkZHJlc3MpIGZyb20gdGhlIHVwc3RyZWFtIHJlc3Bvc2l0b3J5LgoJICBUaGVyZWZvcmUgdGhpcyBjb21taXQgcmV2ZXJ0cyBzb21lIEdTdHJlYW1lci1zcGVjaWZpYyBwYXRjaGVzIHRvIGNoZWNrCgkgIHRoYXQgd2lsbCBiZSByZWludHJvZHVjZWQgbmV4dC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMS0wNCAxOToxMTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBQcm9wYWdhdGUgaW5wdXQgYnVmZmVyIG9mZnNldAoJICBUaGUgaW5pdGlhbCBidWZmZXJzIG1pZ2h0IGhhdmUgbm9uLWRlZmF1bHQgb2Zmc2V0cywgbWFrZSBzdXJlIHRoZXkgZ2V0CgkgIHByb3BhZ2F0ZWQgaWYgcHJlc2VudC4KCjIwMTQtMTAtMDcgMTY6NDQ6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGFtcCByZXBvcnRlZCBwb3NpdGlvbiBiYXNlZCBvbiBkaXJlY3Rpb24KCSAgV2hlbiB1c2luZyBhIG5lZ2F0aXZlIHJhdGUgKHJhdGUgYmVpbmcgc2VnbWVudC5yYXRlICogc2VnbWVudC5hcHBsaWVkX3JhdGUpLAoJICB3ZSB3aWxsIGVuZCB1cCByZXBvcnRpbmcgZGVjcmVhc2luZyBwb3NpdGlvbnMsIHRoZXJlZm9yZSBhZGp1c3QgdGhlIGNsYW1waW5nCgkgIGFnYWluc3QgbGFzdCByZXBvcnRlZCB2YWx1ZSBhY2NvcmRpbmdseS4KCSAgRml4ZXMgcG9zaXRpb25zIGdldHRpbmcgcHJvcGVybHkgcmVwb3J0ZWQgd2l0aCBhcHBsaWVkX3JhdGUgPCAwLjAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODA5MgoKMjAxNC0xMS0yOCAxNDoxNzo1NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBEb24ndCBjb21wYXJlIGJvb2xlYW5zIGZvciBlcXVhbGl0eSB0byBUUlVFIGFuZCBGQUxTRQoJICBUUlVFIGlzIDEsIGJ1dCBldmVyeSBvdGhlciBub24temVybyB2YWx1ZSBpcyBhbHNvIGNvbnNpZGVyZWQgdHJ1ZS4gQ29tcGFyaW5nCgkgIGZvciBlcXVhbGl0eSB3aXRoIFRSVUUgd291bGQgb25seSBjb25zaWRlciAxIGJ1dCBub3QgdGhlIG90aGVycy4KCSAgQWxzbyBub3JtYWxpemUgYm9vbGVhbnMgaW4gYSBmZXcgcGxhY2VzLgoKMjAxNC0xMS0zMCAyMzo1MDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBwbHVnaW5zOiBmaXggYnVpbGQgb24gd2luZG93cwoJICBnc3RlbGVtZW50c19wcml2YXRlLmM6IEluIGZ1bmN0aW9uICdnc3Rfd3JpdGV2X2J1ZmZlcnMnOgoJICBnc3RlbGVtZW50c19wcml2YXRlLmM6MjM2OjUxOiBlcnJvcjogJ0VXT1VMREJMT0NLJyB1bmRlY2xhcmVkCgoyMDE0LTExLTI4IDE1OjA5OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogdXNlIHdyaXRldigpIGluIDo6cmVuZGVyKCkgdG8gd3JpdGUgb3V0IG1lbW9yaWVzIHdpdGhvdXQgbWVyZ2luZyB0aGVtCgoyMDE0LTExLTI4IDE1OjA0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBpbXBsZW1lbnQgOjpyZW5kZXJfbGlzdCgpIGZ1bmN0aW9uIHRoYXQgdXNlcyB3cml0ZXYoKQoKMjAxNC0xMS0yOCAxNDo0NzoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogdXNlIHdyaXRldigpIGluIDo6cmVuZGVyKCkgdG8gd3JpdGUgb3V0IG1lbW9yaWVzIHdpdGhvdXQgbWVyZ2luZyB0aGVtCgoyMDE0LTExLTI4IDE0OjM5OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBpbXBsZW1lbnQgOjpyZW5kZXJfbGlzdCgpIHVzaW5nIHdyaXRldigpCgkgIFdyaXRlIG91dCBtdWx0aXBsZSBidWZmZXJzIHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUKCSAgbWVtb3JpZXMgd2l0aCBvbmUgd3JpdGV2KCkgY2FsbCwgd2l0aG91dCBtZXJnaW5nIHRoZQoJICBidWZmZXIgbWVtb3JpZXMgZmlyc3QsIGxpa2UgOjpyZW5kZXIoKSBkb2VzIGN1cnJlbnRseS4KCjIwMTQtMTEtMjggMTQ6Mzg6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuaDoKCSAgcGx1Z2luczogYWRkIGhlbHBlciBmdW5jdGlvbiBmb3Igd3JpdGluZyBidWZmZXJzIG91dCB3aXRoIHdyaXRldigpCgoyMDE0LTExLTI4IDE0OjE1OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSB0aGUgZHVyYXRpb24gdmFyaWFibGUgYmVmb3JlIGVtaXR0aW5nIHRoZSBidXMKCSAgT3RoZXJ3aXNlIHRoZSBhcHBsaWNhdGlvbiBtaWdodCBzdGlsbCBnZXQgdGhlIG9sZCB2YWx1ZSBpZiBpdCBhc2tzCgkgIGJldHdlZW4gdGhlIG1lc3NhZ2UgYW5kIHRoZSByZWFsIHVwZGF0ZS4KCjIwMTQtMTEtMjggMTY6MjU6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggZG9jIGFuZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHNlbmRfZXZlbnQKCSAgVGhlIGRvY3VtZW50YXRpb24gc3RhdGVzIHRoYXQgZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCBpcyB0byAic2VuZCBhbiBldmVudAoJICB0byBhbiBlbGVtZW50Ii4KCSAgVGhlcmVmb3JlIHdlICpzZW5kKiB1cHN0cmVhbSBldmVudHMgdG8gYSBzb3VyY2UgcGFkIGFuZCBkb3duc3RyZWFtIGV2ZW50cwoJICB0byBhIHNpbmsgcGFkCgoyMDE0LTExLTI4IDExOjE2OjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRmlndXJlIGRlZmF1bHQgc2VuZF9ldmVudCBkaXJlY3Rpb24gaGFuZGxpbmcKCSAgSWYgd2UgZ2V0IGEgZG93bnN0cmVhbSBldmVudCB3ZSB3YW50IHRvIHNlbmQgaXQgdG8gYSByYW5kb20gU0lOSyBwYWQKCSAgKGFuZCB2aWNlLXZlcnNhKS4KCjIwMTQtMTEtMjcgMTg6MDA6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ29tcGFyZSBjb3JyZWN0IGNhcHMgdmFyaWFibGUgYWdhaW5zdCBOVUxMIGJlZm9yZSBjb21wYXJpbmcgY2FwcwoKMjAxNC0xMS0yNyAxNzoxMDoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjMyY2ZjZCB0byBlZjFmZmRjCgoyMDE0LTExLTEwIDA5OjU4OjQ3ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czp1bmluc3RhbGxlZDogTWFrZSBzdXIgdGhlIEdFUyBUZXN0TWFuYWdlciBpcyByZWdpc3RlcmVkCgkgIFNvIHRoYXQgd2hlbmV2ZXIgdXNlciB3b3JrIHdpdGggR3N0VmFsaWRhdGUgdGhleSBjYW4gcnVuIEdFUyB0ZXN0cwoJICB3aXRoaW4gdGhlIGdzdC11bmluc3RhbGxlZCBlbnZpcm9ubWVudAoKMjAxNC0xMS0yNiAyMTo0ODowNSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBjb21tb246CgkqIG00L2F4X3B0aHJlYWQubTQ6CgkgIGJ1aWxkOiBVcGRhdGUgYXhfcHRocmVhZC5tNCBhbmQgbW92ZSBpdCB0byBjb21tb24KCSAgSGFzIHNvbWUgdXBkYXRlcyBmb3IgQ2xhbmcgc3VwcG9ydCAobWlnaHQgbm90IHdvcmsgd2l0aCBuZXdlciBDbGFuZwoJICBwcm9wZXJseSwgeWV0KSwgQUlYIHN1cHBvcnQsIGFuZCBzb21lIG1pc2MgZml4ZXMuCgoyMDE0LTExLTI1IDE3OjQ2OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogRml4IHNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGUgZG9jcwoKMjAxNC0xMS0yNSAwOTozOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBhZGQgR1NUX0dMXyogZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvICdSdW5uaW5nIEdTdHJlYW1lcicgc2VjdGlvbgoKMjAxNC0xMS0yMyAwNTo0NToyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwZXJjZW50YWdlIGlzIHJlbGF0aXZlIHRvIGhpZ2gtcGVyY2VudAoJICBXaGVuIGNvbXBhcmluZyBwZXJjZW50YWdlIHZhbHVlcywgY29tcGFyZSB3aXRoIDAtMTAwIHNjYWxlIGFzIGl0CgkgIGhhcyBhbHJlYWR5IGJlZW4gbWFkZSByZWxhdGl2ZSB0byAwLWhpZ2hfcGVyY2VudCwgb3RoZXJ3aXNlIHdlIG1hcmsKCSAgdGhlIHF1ZXVlIGFzIG5vdCBidWZmZXJpbmcgYW5kIHJlcG9ydCBhIDUwJSB0byB0aGUgdXNlci4gVGhpcyBsZWFkcyB0bwoJICBhIGJ1ZmZlcmluZyBzdGFsbCBhcyB0aGUgdXNlciBhc3N1bWVzIHRoZSBxdWV1ZSBpcyBzdGlsbCBidWZmZXJpbmcgYnV0CgkgIGl0IHRoaW5rcyBpdCBpc24ndC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjk2OQoKMjAxNC0xMS0yMyAwNTo0Mjo1MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHBlcmNlbnRhZ2UgaXMgYW4gYWJzb2x1dGUgdmFsdWUKCSAgbXVsdGlxdWV1ZSdzIHF1ZXVlcyBzdG9yZWQgcGVyY2VudCB2YWx1ZSBpcyB0aGUgcGVyY2VudGFnZSBmcm9tIDAKCSAgdG8gMTAwIChtYXgtc2l6ZS0qKSBhbmQgc2hvdWxkIGJlIGNvbXBhcmVkIHdpdGggdGhlIHJlcXVlc3RlZCBsaW1pdAoJICAoaGlnaF9wZXJjZW50YWdlKSBzZXQgYnkgdGhlIHVzZXIgYW5kIG5vdCB3aXRoIDEwMCUgdG8gY2hlY2sgaWYKCSAgYnVmZmVyaW5nIHNob3VsZCBzdG9wLiBPdGhlcndpc2Ugd2UgYXJlIG9ubHkgc3RvcHBpbmcgYnVmZmVyaW5nIHdoZW4gdGhlCgkgIHF1ZXVlIGdldHMgY29tcGxldGVseSBmdWxsLgoKMjAxNC0xMS0yMCAyMTozMzo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggY2FwcyBlcXVhbGl0eSBjaGVjawoJICBJbnN0ZWFkIG9mIGNoZWNraW5nIGlmIG91ciBvdXRjYXBzIGFyZSBlcXVpdmFsZW50IHRvIHRoZSBwcmV2aW91cyBpbmNhcHMsIGFuZAoJICBpZiB0aGF0IGlzIHRoZSBjYXNlIG5vdCBzZXR0aW5nIGFueSBjYXBzIG9uIHRoZSBwYWQuLi4gY29tcGFyZSBhZ2FpbnN0IG91cgoJICBwcmV2aW91cyBvdXRjYXBzIGJlY2F1c2UgdGhhdCdzIHdoYXQgd2UgY2FyZSBhYm91dC4KCSAgRml4ZXMgc29tZSBjYXNlcyB3aGVyZSB0aGUgb3V0Y2FwcyBiZWNhbWUgZXF1aXZhbGVudCB0byB0aGUgcHJldmlvdXMgaW5jYXBzLAoJICBidXQgdGhlIHByZXZpb3VzIG91dGNhcHMgd2VyZSBkaWZmZXJlbnQgYW5kIHdlIHdlcmUgdGhlbiBzZW5kaW5nIGJ1ZmZlcnMKCSAgZG93bnN0cmVhbSB0aGF0IHdlcmUgY29ycmVzcG9uZGluZyB0byB0aGUgY2FwcyB3ZSBmb3Jnb3QgdG8gc2V0IG9uIHRoZSBwYWQuCgkgIFJlc3VsdGluZyBpbiBjcmFzaGVzIG9yIGltYWdlIGNvcnJ1cHRpb24uCgoyMDE0LTExLTIwIDEzOjMzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgYmlzb24gdmVyc2lvbiBjaGVjayBwYXRjaAoJICBGaXggY29uZmlndXJlIGNoZWNrIHdpdGggYmlzb24gZGV2ZWxvcG1lbnQgdmVyc2lvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODk0NgoKMjAxNC0xMS0yMCAxMzozNDozMiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBvdmVycmVhZCBpbnB1dCB3aGVuIHNlYXJjaGluZyBmb3IgIgoJICBXaGVuIHNlYXJjaGluZyBmb3IgdGhlIHN0cmluZyB0ZXJtaW5hdG9yIGRvbid0IHJlYWQgcGFzdCB0aGUgZW5kaW5nCgkgIDAtYnl0ZSB3aGVuIGVzY2FwaW5nIGNoYXJhY3RlcnMuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHZhcmlvdXMgZXNjYXBpbmcgY2FzZXMuCgoyMDE0LTExLTAzIDE3OjQ2OjU3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmYWlsIGRyb3BwZWQgcXVlcmllcwoJICBQcmV2aW91c2x5LCBkcm9wcGluZyBhIHF1ZXJ5IGZyb20gYSBwYWQgcHJvYmUgd291bGQgZGVlbSB0aGUKCSAgcXVlcnkgc3VjY2VlZGVkLCBhbmQgdGhlIGNhbGxlciBtaWdodCB0aGVuIGFzc3VtZSB0aGUgcXVlcnkncwoJICByZXN1bHRzIGFyZSB2YWxpZCwgYW5kIHRodXMgZGVyZWZlcmVuY2UgYW4gaW52YWxpZCBvYmplY3QKCSAgc3VjaCBhcyBhIEdzdENhcHMuCgkgIFdlIG5vdyBhc3N1bWUgZHJvcHBlZCBxdWVyaWVzIGRpZCBub3Qgc3VjY2VlZC4gRHJvcHBlZCBldmVudHMKCSAgYW5kIGJ1ZmZlcnMgYXJlIHN0aWxsIGRlZW1lZCBhIHN1Y2Nlc3MuCgkgIEFkZGVkIGJhY2sgYWZ0ZXIgcHJldmlvdXMgcmV2ZXJ0LCBhcyBpdCdzIGJlZW4gZG91YmxlIGNoZWNrZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAwMDMKCjIwMTQtMTEtMTIgMTM6NTU6MjMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZmFpbCBkcm9wcGVkIHF1ZXJpZXMiCgkgIFRoaXMgd2FzIHB1c2hlZCBieSBtaXN0YWtlIGFsb25nIHdpdGggYW4gdW5yZWxhdGVkIHBhdGNoLgoJICBUaGlzIHJldmVydHMgY29tbWl0IGM3MTAzY2U0YjhjMWRhN2RjZmJjZjJlYzgzYTQyYTM3NmZiODk2ZTEuCgoyMDE0LTA1LTEzIDExOjE4OjA4ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxsb3cgc2tpcHBpbmcgbW9yZSBkYXRhIHRoYW4gd2UgY3VycmVudGx5IGhhdmUKCSAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBza2lwcGluZyBsYXJnZSB1bndhbnRlZCBkYXRhLCBzdWNoIGFzCgkgIGxhcmdlIGFsYnVtIGFydCwgd2hlbiB3ZSBrbm93IHRoZSBzaXplIG9mIGl0IGZyb20gYSBtZXRhZGF0YQoJICBoZWFkZXIuCgoyMDE0LTExLTAzIDE3OjQ2OjU3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmYWlsIGRyb3BwZWQgcXVlcmllcwoJICBQcmV2aW91c2x5LCBkcm9wcGluZyBhIHF1ZXJ5IGZyb20gYSBwYWQgcHJvYmUgd291bGQgZGVlbSB0aGUKCSAgcXVlcnkgc3VjY2VlZGVkLCBhbmQgdGhlIGNhbGxlciBtaWdodCB0aGVuIGFzc3VtZSB0aGUgcXVlcnkncwoJICByZXN1bHRzIGFyZSB2YWxpZCwgYW5kIHRodXMgZGVyZWZlcmVuY2UgYW4gaW52YWxpZCBvYmplY3QKCSAgc3VjaCBhcyBhIEdzdENhcHMuCgkgIFdlIG5vdyBhc3N1bWUgZHJvcHBlZCBxdWVyaWVzIGRpZCBub3Qgc3VjY2VlZC4gRHJvcHBlZCBldmVudHMKCSAgYW5kIGJ1ZmZlcnMgYXJlIHN0aWxsIGRlZW1lZCBhIHN1Y2Nlc3MuCgoyMDE0LTExLTEyIDExOjMwOjUxICswMTAwICBIYWFrb24gU3BvcnNoZWltIDxoYWFrb24uc3BvcnNoZWltQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IEZpeCBwYXVzZS9zdG9wIHJhY2UgY29uZGl0aW9uCgkgIElmIGEgdGFzayB0aHJlYWQgaXMgY2FsbGluZyBwYXVzZSBvbiBpdCBzZWxmIGFuZCB0aGUKCSAgY29udHJvbGxpbmcvIm1haW4iIHRocmVhZCBzdG9wcyB0aGUgdGFzaywgaXQgY291bGQgZW5kIGluIGEgcmFjZQoJICB3aGVyZSBnc3RfdGFza19mdW5jIGxvb3BzIGFuZCB0aGVuIGNoZWNrcyBmb3IgcGF1c2VkIGFmdGVyIHRoZQoJICBjb250cm9sbGluZyB0aHJlYWQganVzdCBjaGFuZ2VkIHRoZSB0YXNrIHN0YXRlIHRvIHN0b3BwZWQuCgkgIEhlbmNlIHRoZSB0YXNrIHdvdWxkIGFjdHVhbGx5IGNhbGwgZnVuYyBhZ2FpbiBldmVuIHRob3VnaCBpdCB3YXMKCSAgYm90aCBwYXVzZWQgYW5kIHN0b3BwZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAwMDEKCjIwMTQtMTEtMTAgMTA6MDE6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogRG9uJ3QgY2hlY2sgYm9vbGVhbnMgZm9yIGVxdWFsaXR5IGluIHRoZSB1bml0IHRlc3QKCSAgRXZlcnkgdmFsdWUgb3RoZXIgdGhhbiAwL0ZBTFNFIGlzIFRSVUUsID09IFRSVUUgd2lsbCBvbmx5IGNoZWNrIGZvciAxLgoKMjAxNC0xMS0wNSAxMTo1MDo0NyArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiBBZGQgZ3N0X29iamVjdF9oYXNfcGFyZW50KCkKCSAgQWRkcyBnc3Rfb2JqZWN0X2hhc19wYXJlbnQsIHdoaWNoIHdvcmtzIGxpa2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IKCSAgYnV0IGRvZXMgbm90IGFzY2VuZCBmdXJ0aGVyLgoJICBBUEk6IGdzdF9vYmplY3RfaGFzX3BhcmVudCgpCgoyMDE0LTExLTA5IDEwOjM3OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IGJvdGhlciB0aGUgc3ViY2xhc3Mgd2l0aCBzZXR0aW5nIHRoZSBzYW1lIGNhcHMgbXVsdGlwbGUgdGltZXMKCjIwMTQtMTEtMDkgMTA6MzI6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBib3RoZXIgdGhlIHN1YmNsYXNzIHdpdGggc2V0dGluZyB0aGUgc2FtZSBjYXBzIG11bHRpcGxlIHRpbWVzCgoyMDE0LTExLTA5IDEwOjI5OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IGJvdGhlciB0aGUgc3ViY2xhc3Mgd2l0aCBzZXR0aW5nIHRoZSBzYW1lIGNhcHMgbXVsdGlwbGUgdGltZXMKCjIwMTQtMTEtMDcgMDg6MjI6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIGNvbmRpdGlvbmFsIGZvciBHX1ZBTFVFX0NPTExFQ1RfSU5JVAoJICBUaGlzIEFQSSBpcyBpbiBnbGliIHNpbmNlIDIuMjQgYW5kIHdlIGN1cnJlbnRseSByZXF1aXJlIDIuMzIgYW5kIGFscmVhZHkgdXNlCgkgIHRoaXMgdW5jb25kaXRpb25hbGx5IGVsc2V3aGVyZS4KCjIwMTQtMTEtMDUgMTk6MDk6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgkgIFRoZSBHUXVhcmsgd2FzIG5ldmVyIHVzZWQuCgoyMDE0LTExLTA3IDExOjM0OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBnc3Rjb25maWc6IFB1dCBnc3Rjb25maWcuaCBpbnRvICQobGliZGlyKS9nc3RyZWFtZXItMS4wL2luY2x1ZGUKCSAgSXQncyBhcmNoaXRlY3R1cmUgZGVwZW5kZW50IGFuZCBzaG91bGQgbm90IGJlIHBsYWNlZCBpbnRvIHRoZSBpbmNsdWRlCgkgIGRpcmVjdG9yeSBhcyB0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IGFsbCB0aG9zZSBoZWFkZXJzIGFyZSBhcmNoaXRlY3R1cmUKCSAgaW5kZXBlbmRlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NjcKCjIwMTQtMTEtMDcgMTA6NTY6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IGdvYmplY3QtaW50cm9zcGVjdGlvbiB3YXJuaW5ncwoJICBnc3R1cmkuYzo5OTc6IEVycm9yOiBHc3Q6IFNraXBwaW5nIGludmFsaWQgR1RLLURvYyBjb21tZW50IGJsb2NrOgoJICAvKiogcHJpdmF0ZSBHc3RVcmkgZnVuY3Rpb25zICoqLwoJICBeCgkgIGdzdHVyaS5jOjExNzk6IEVycm9yOiBHc3Q6IFNraXBwaW5nIGludmFsaWQgR1RLLURvYyBjb21tZW50IGJsb2NrOgoJICAvKiogUkZDIDM5ODYgZnVuY3Rpb25zICoqLwoJICBeCgoyMDE0LTEwLTI0IDIxOjI1OjU0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogRml4IGdzdF9kYXRhX3F1ZXVlX25ldygpIGRlc2NyaXB0aW9uLgoJICBSZXdvcmQgdGhlIGZ1bmN0aW9uIGRvY3MsIHdoaWNoIGhhdmVuJ3QgbWFkZSBhbnkgc2Vuc2Ugc2luY2UKCSAgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKSB3YXMgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZ28uCgoyMDE0LTExLTAzIDE4OjI3OjIxICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbnN3ZXIgdGhlIHF1ZXJ5IHBvc2l0aW9uIHdoZW4gcmVjZWl2aW5nIGl0IGZyb20gdXBzdHJlYW0KCSAgQ3VycmVudGx5IHdlIGFyZSBqdXN0IHJldHVybmluZyBGQUxTRSwgYnV0IHdlIGRvIGhhdmUgdGhlIGluZm9ybWF0aW9uCgkgIHdlIHNob3VsZCBqdXN0IGFuc3dlciB0aGUgcXVlcnkgdGhlIHNhbWUgd2F5IGFzIHdoZW4gYW5zd2VyaW5nIHRocm91Z2gKCSAgdGhlIEdzdEVsZW1lbnQucXVlcnkgdm1ldGhvZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NTgwCgoyMDE0LTEwLTIyIDE0OjA3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBhbiBvcHRpb25hbCBkZWxheWVkIGNhcHMgY2hhbmdlIG1vZGUKCSAgSW4gdGhpcyBtb2RlIHdlIGFjY2VwdCBwcmV2aW91c2x5IHNldCBmaWx0ZXIgY2FwcyB1bnRpbAoJICB1cHN0cmVhbSByZW5lZ290aWF0ZXMgdG8gc29tZXRoaW5nIHRoYXQgaXMgY29tcGF0aWJsZQoJICB0byB0aGUgY3VycmVudCBmaWx0ZXIgY2Fwcy4KCSAgVGhpcyBhbGxvd3MgZHluYW1pYyBjYXBzIGNoYW5nZXMgaW4gdGhlIHBpcGVsaW5lIGV2ZW4KCSAgaWYgdGhlcmUgaXMgYSBxdWV1ZSBiZXR3ZWVuIGFueSBjb252ZXJzaW9uIGVsZW1lbnQKCSAgYW5kIHRoZSBjYXBzZmlsdGVyLiBXaXRob3V0IHRoaXMgd2Ugd291bGQgZ2V0IG5vdC1uZWdvdGlhdGVkCgkgIGVycm9ycyBpZiB0aW1pbmcgaXMgYmFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MDAyCgoyMDE0LTExLTAyIDIwOjE2OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IG1pbm9yIGNvZGUgY2xlYW4tdXAKCSAgQW5kIGdldCByaWQgb2YgZ19saXN0X3ByZXBlbmQvZ19saXN0X3JldmVyc2UKCSAgYW50aS1wYXR0ZXJuIHdoaWxlIHdlJ3JlIGF0IGl0LgoKMjAxNC0xMS0wMiAxODo1MTowOCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBlbnN1cmUgR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIGRlYnVnIG1lc3NhZ2UgaXMgZGlzcGxheWVkCgkgIFRoZSBHU1RfSU5GTyAoImluaXRpYWxpemVkIEdTdHJlYW1lciBzdWNjZXNmdWxseSIpIGlzIGN1cnJlbnRseSBhdCB0aGUgZW5kIG9mCgkgIGdzdF9pbml0X2NoZWNrIHdoaWNoIGlzbid0IGd1YXJhbnRlZWQgdG8gYmUgcnVuIHNpbmNlIEdTdHJlYW1lciBjYW4gYmUKCSAgaW5pdGlhbGl6ZWQgYnkgdXNpbmcgaW5pdF9wcmUgYW5kIGluaXRfcG9zdCBkaXJlY3RseSBmcm9tIEdPcHRpb25Db250ZXh0IGxpa2UKCSAgZ3N0LWxhdW5jaCBkb2VzLiBFbnN1cmUgdGhpcyBtZXNzYWdlIGlzIGRpc3BsYXllZCBieSBtb3ZpbmcgaXQgdG8gaW5pdF9wb3N0LgoKMjAxNC0xMS0wMSAxOTo1Njo0MSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvYzogRG8gbm90IHVzZSBkZXByZWNhdGVkIGd0ay1kb2MgJ1JlbmFtZSB0bycgdGFnCgkgIEdPYmplY3QgaW50cm9zcGVjdGlvbiBHVEstRG9jIHRhZyAiUmVuYW1lIHRvIiBoYXMgYmVlbiBkZXByZWNhdGVkLCBjaGFuZ2luZyB0bwoJICByZW5hbWUtdG8gYW5ub3RhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTUxNAoKMjAxNC0xMS0wMSAyMjozMDozMCArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogYWRkIEdfUEFSQU1fREVQUkVDQVRFRCB0byBrbm93biBmbGFncwoJICBEaXNwbGF5ICdkZXByZWNhdGVkJyBpbnN0ZWFkIG9mIGZsYWcgdmFsdWUgd2hlbiB1c2luZyBHX1BBUkFNX0RFUFJFQ0FURUQKCSAgaW4gZWxlbWVudCBwcm9wZXJ0aWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NTE4CgoyMDE0LTEwLTMxIDE2OjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJICB0ZXN0czogcmVmYWN0b3IgdG9vbHMgY2hlY2sgYSBsaXR0bGUKCSAgVXNlIGFuIGFycmF5IG9mIGNvbnN0YW50IHN0cmluZ3Mgc28gaWYgYXJndW1lbnRzIGdldAoJICByZW1vdmVkIGZyb20gaXQgdGhleSBhcmUgbm90IGNvbnNpZGVyZWQgbGVha2VkLCBhbmQKCSAgdmFsZ3JpbmQgaXMgaGFwcHkuIFN0aWxsIHNvbWUgc3R1ZmYgbGVha2luZyBpbiBHTGliCgkgIHRob3VnaC4KCjIwMTQtMTAtMzAgMjM6MTQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGZpeCBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MgaW4gYnl0ZXJlYWRlciB1bml0IHRlc3QKCSAgQ2F1Z2h0IGJ5IC1mc2FuaXRpemU9YWRkcmVzcyAvIGxpYmFzYW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk0MzEKCjIwMTQtMTAtMjggMTk6MTY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogbWFrZSBnc3RfaW5pdCgpIHRocmVhZC1zYWZlCgkgIEJlY2F1c2Ugd2UgY2FuLCBhbmQgdGhlcmUgaXNuJ3QgcmVhbGx5IGFueQoJICByZWFzb24gbm90IHRvIGRvIHNvLgoKMjAxNC0xMC0yOCAwOToyODoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBmZHNyYzogZG9uJ3QgaWdub3JlIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpCgkgIENhdXNlcyBjb21waWxlciB3YXJuaW5ncyBvbiBzb21lIHN5c3RlbXMuCgoyMDE0LTEwLTI4IDAwOjA0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgdGVzdHM6IGZpeCBmZHNyYyB0ZXN0IGNvcm5lciBjYXNlCgkgIE1ha2UgcGlwZSBzb2NrZXQgbm9uLWJsb2NraW5nLCBzbyB3ZSBkb24ndAoJICBlbmQgdXAgYmVpbmcgYmxvY2tlZCBpbiBhIHdyaXRlIG9uIHRoZSBwaXBlCgkgIHdoaWxlIHRoZSBzcmMgaXMgZW9zIGFuZCBub3QgcmVhZGluZyBkYXRhCgkgIGFueSBtb3JlLCBhbmQgdGh1cyB3ZSBuZXZlciB1bmJsb2NrIGFuZCBuZXZlcgoJICBub3RpY2UgdGhhdCB3ZSdyZSBkb25lLiBUaGlzIHdvdWxkIGhhcHBlbgoJICBxdWl0ZSByZWxpYWJseSBvbiB0aGUgcnBpLgoKMjAxNC0xMC0yNyAxNzo1NjoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODRkMDZjZCB0byA3YmIyYmNlCgoyMDE0LTEwLTI1IDE3OjE1OjQyICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IFRyaXZpYWwgdHlwbyBmaXgKCjIwMTQtMTAtMjQgMTI6NTE6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCB1bmxvY2sgbXV0ZXggdGhhdCBpcyBub3QgbG9ja2VkCgkgIEZpeGVzICdBdHRlbXB0IHRvIHVubG9jayBtdXRleCB0aGF0IHdhcyBub3QgbG9ja2VkJwoJICB3YXJuaW5nIHdpdGggbmV3ZXIgR0xpYnMgd2hlbiBzaW5rIGlzIHNodXQgZG93biBpbgoJICBjZXJ0YWluIHNpdHVhdGlvbnMuIFRyaWdnZXJlZCBieSB0aGUgZGVjb2RlYmluCgkgIHRlc3RfcmV1c2Vfd2l0aG91dF9kZWNvZGVycyB1bml0IHRlc3QgaW4gLWJhc2UKCSAgc29tZXRpbWVzLCBlc3AuIG9uIHNsb3dlciBtYWNoaW5lcy4KCjIwMTQtMTAtMjIgMTg6MjU6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmb3IgbmV3IF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBHc3RDb250cm9sUG9pbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzYxNgoKMjAxNC0wOS0yOSAyMToxMDoxNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IEFkZCBzb21lIHNpZ25hbHMgYWJvdXQgdmFsdWVzIGNoYW5nZXMKCSAgSW4gb3JkZXIgZm9yIHVzZXIgdG8gYmUgYWJsZSB0byB0cmFjayBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBzZXQgaW4KCSAgR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2UgdGhlIGZvbGxvd2luZyBzaWduYWxzIGhhdmUgYmVlbiBhZGRlZDoKCSAgKiB2YWx1ZS1hZGRlZAoJICAqIHZhbHVlLXJlbW92ZWQKCSAgKiB2YWx1ZS1jaGFuZ2VkCgkgIFRvIGJlIGFibGUgdG8gdXNlIGEgR3N0Q29udHJvbFBvaW50IHRvIGJlIG1hcnNoYWxsZWQgaW50byB0aGUgc2lnbmFscywKCSAgdGhlIEdzdENvbnRyb2xQb2ludCBzdHJ1Y3R1cmUgaXMgbm93IHJlZ2lzdGVyZCBhcyBhIEdCb3hlZCB0eXBlLgoJICBOZXcgQVBJOgoJICB+fn5+fn5+CgkgICogR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2U6OnZhbHVlLWFkZGVkCgkgICogR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2U6OnZhbHVlLXJlbW92ZWQKCSAgKiBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZTo6dmFsdWUtYWRkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzYxNgoKMjAxNC0xMC0yMSAxMzowMTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYThjODkzOSB0byA4NGQwNmNkCgoyMDE0LTEwLTIxIDEyOjE4OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogcmVtb3ZlIGR1cGxpY2F0ZSBnc3RfbWVzc2FnZV9nZXRfdHlwZSgpIGluIGluaXQKCSAgU3BvdHRlZCBieTogSmFuIFN0ZWZmZW5zCgoyMDE0LTEwLTIxIDEyOjU3OjQ1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZlNzU0OTggdG8gYThjODkzOQoKMjAxNC0xMC0yMCAxNjozOTozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGluY2x1ZGUgdGhlIGFjdHVhbCBkZWx0YSBpbiB0aGUgbWVzc2FnZQoJICBJbmNsdWRpbmcgdGhlIGFjdHVhbCBkZWx0YSBpbiB0aGUgbWVzc2FnZSBtYWtlcyBpdCBlYXN5IHRvIHNlZSwgaWYgdGhlIG5ldwoJICBidWZmZXIgaXMgYmVoaW5kIG9yIGFoZWFkIGFuZCBob3cgbXVjaC4KCjIwMTQtMTAtMTggMTg6NDM6NDMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBUaWR5IGluaXRpYWxpc2F0aW9uCgkgIFVzZSBzb21lIG1hY3JvcyB0byBtYWtlIG91ciB2YWx1ZSBmdW5jdGlvbnMgc2V0dXAgYSBiaXQKCSAgdGlkaWVyLCBhbmQgbWljcm8tb3B0aW1pc2UgYSBmZXcgcmVhbGxvY3MgYnkgc2V0dGluZyBhbgoJICBpbml0aWFsIHNpemUgZm9yIHRoZSBnbG9iYWwgdHlwZSBhcnJheXMuCgoyMDE0LTEwLTE4IDE3OjI3OjA0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IFJ1biBpbmRlbnQgdHdpY2UuIE9uY2UgaXMgbm90IGlkZW1wb3RlbnQsIHR3aWNlIHNlZW1zIHRvIGJlLgoKMjAxNC0xMC0xNiAxMDoxMzoxNCArMDQwMCAgQW5kcmVpIFNhcmFrZWV2IDxzYXJha3VzaGFAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgYW55IHdhaXRpbmcgc3RyZWFtcyBpZiB0aGUgY3VycmVudCBvbmUgZ29lcyBFT1MKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGhhdmUgdW5saW5rZWQgc3RyZWFtcyB3YWl0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTk4CgoyMDE0LTEwLTE3IDEyOjQxOjA0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIHR5cGVmaW5kOiBzaW1wbGlmeSByZWdpc3RyYXRpb24gY29kZQoJICBSZW1vdmUgYSB1c2VsZXNzIGFzc2VydCAod2UganVzdCBpbnN0YW50aWF0ZWQgdGhpcyB0eXBlKS4gRHJvcCB0aGUgZnJlZSdpbmcgb2YKCSAgdGhlIGV4dGVuc2lvbiBhcnJheS4gQXMgd2UganVzdCBjcmVhdGVkIHRoZSBpbnN0YW5jZSB0aGlzIGlzIGFsd2F5cyBOVUxMLgoKMjAxNC0xMC0xNiAxMDo1NTozNiArMDIwMCAgRmVsaXggU2Nod2FyeiA8ZmVsaXguc2Nod2FyekBvc3Muc2Nod2Fyei5ldT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBkb2NzOiBwd2Q6IGZpeCB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4NjEyCgoyMDE0LTEwLTExIDE5OjI4OjIxICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNwLnN2ZW5zc29uQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IEFkZCBhIHRlc3QgZm9yIHJlbW92aW5nIGEgYnVzIHdhdGNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUxOTUKCjIwMTQtMDgtMTkgMjM6Mjg6NTIgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3Auc3ZlbnNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1czogQWRkIGEgZnVuY3Rpb24gdG8gcmVtb3ZlIGEgYnVzIHdhdGNoCgkgIElmIGEgYnVzIHdhdGNoIGlzIGFkZGVkIHRvIHRoZSBub24gZGVmYXVsdCBtYWluIGNvbnRleHQgaXQncyBub3QKCSAgcG9zc2libGUgdG8gcmVtb3ZlIGl0IHVzaW5nIGdfc291cmNlX3JlbW92ZSgpLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTE5NQoKMjAxNC0xMC0wOCAyMjo1MTo1NiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogVXBkYXRlIEdzdFFPU1R5cGUgZG9jdW1lbnRhdGlvbiBhIGJpdAoJICBDb3JyZWN0aW9uIGZvciB3aG8gaXMgcHJvZHVjaW5nIGRhdGEgdG9vIGZhc3QsIGFuZCBzb21lIG90aGVyIG1pbm9yCgkgIGNsYXJpZmljYXRpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTY2CgoyMDE0LTEwLTA4IDE2OjAzOjIwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJICBkb2NzOiBwd2c6IGZpeCB0d28gdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE1MwoKMjAxNC0xMC0wOCAxNTozNzozNyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIGRvY3M6IHB3ZzogZml4IHR5cG8gaW4gJ0R5bmFtaWMgbmVnb3RpYXRpb24nIHNlY3Rpb24KCSAgVGhlIHBvaW50IG9mIHRoaXMgZXhhbXBsZSBpcyB0byBzaG93IGhvdyB0byBzZXQgY2FwcwoJICBvbiB0aGUgc291cmNlIHBhZCBvbmNlIGl0IGhhcyBiZWVuIHNldCBvbiB0aGUgc2luayBwYWQuCgkgIFNvLCBpbiBwYXNzdGhyb3VnaCBtb2RlLCB0aGUgY2FwcyBpcyBqdXN0IGNvcGllZCB0byB0aGUKCSAgc291cmNlIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE1MwoKMjAxNC0xMC0wOCAwOTozNzo0MSAtMDcwMCAgQWxlaXggQ29uY2hpbGxvIEZsYXF1w6kgPGFsZWl4QG9ibG9uZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG9uJ3QgbG9jayBtdWx0aXF1ZXVlIHdoZW4gcHVzaGluZyBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgSWYgd2UgYXJlIHB1c2hpbmcgYSBzZXJpYWxpemVkIHF1ZXJ5IGludG8gYSBxdWV1ZSBhbmQgdGhlIHF1ZXVlIGlzCgkgIGZpbGxlZCwgd2Ugd2lsbCBlbmQgaW4gYSBkZWFkbG9jay4gV2UgbmVlZCB0byByZWxlYXNlIHRoZSBsb2NrIGJlZm9yZQoJICBwdXNoaW5nIGFuZCBhY3F1aXJlIGl0IGFnYWluIGFmdGVyd2FyZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc5NAoKMjAxNC0xMC0wOCAwMTozMzo1MSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVc2UgR1NUX1BUUl9GT1JNQVQgaW4gZGVidWcgdG8gb3V0cHV0IGJ1ZmZlciBkZXRhaWxzCgkgIFVzZSAlR1NUX1BUUl9GT1JNQVQgaW5zdGVhZCBvZiAlcCBpbiBkZWJ1ZyBvdXRwdXQgc28gYWxsIHRoZSBidWZmZXIKCSAgZGV0YWlscyBhcmUgb3V0cHV0CgoyMDE0LTEwLTA2IDEzOjM4OjIxICswMjAwICBOaWNvbGFzIEh1ZXQgPG5pY29sYXMuaHVldEBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXggbXVsdGktdGhyZWFkIGVudHJ5IHN0YXR1cyBpc3N1ZQoJICBSdW5uaW5nIHR3byB0aHJlYWRzLCBvbmUgZXhlY3V0aW5nIHRoZSB0aW1lciBhbmQgb25lIHVuc2NoZWR1bGluZyBpdCwgdGhlCgkgIHVuc2NoZWR1bGVkIHN0YXR1cyBzZXQgYnkgdGhlIHNlY29uZCB0aHJlYWQgaXMgc29tZXRpbWVzIG92ZXJ3cml0dGVuIGJ5IHRoZQoJICBmaXJzdCBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc5OTkKCjIwMTQtMTAtMDMgMTQ6MDQ6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNvbXBpbGF0aW9uCgoyMDE0LTEwLTAzIDE0OjQ0OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBleHRyYWN0IHNvbWUgY29tbW9uIGNvZGUgaW50byBoZWxwZXJzCgoyMDE0LTEwLTAzIDE0OjAxOjU5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBzbWFsbCBjb2RlIGNsZWFudXBzCgkgIFJlbmFtZSBUSU1FU1RBTVAgLT4gUFRTLiBNb3ZlIGEgdmFyIGRvd24gdG8gdGhlIHNjb3BlIHdoZXJlIGl0IGlzIHVzZWQuIFVzZQoJICBnX3F1ZXVlX2ZyZWVfZnVsbCgpLgoKMjAxNC0xMC0wMyAxMzo0Nzo0MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogZml4IHByaW50ZiBmb3JtYXQKCSAgVGhlIHBhZGNvdW50IGlzIHVpbnQuIEFsc28gYWRkIGNvbW1lbnRzIHRvIHRoZSBpbnN0YW5jZSB2YXJzLgoKMjAxNC0xMC0wMiAwMzozMDoyNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBjYXBzIGluIGdzdF9iYXNlX3BhcnNlX3Byb2Nlc3Nfc3RyZWFtaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3NjIKCjIwMTQtMTAtMDMgMTM6MTQ6MjUgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBzZXRfc2lua19jYXBzIHZmdW5jIHNob3VsZCd0IHRha2Ugb3duZXJzaGlwIG9mIHRoZSBjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3NjIKCjIwMTQtMTAtMDMgMDk6NTc6MzcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogbWFyayB0aGUgcGF0dGVybiBwcm9wZXJ0eSBhcyB1bnVzZWQKCSAgUmV2ZXJ0IHRoZSBwcmV2aW91cyBjb21taXQgd2hpY2ggcmVtb3ZlcyB0aGUgcGF0dGVybiBwcm9wZXJ0eSBvZiBmYWtlc3JjIGJlY2F1c2UKCSAgZG9pbmcgc28gd2lsbCBicmVhayBBQkkuIEJyaW5naW5nIHRoZSBwcm9wZXJ0eSBiYWNrIGJ1dCBtYXJraW5nIGl0IGFzIHVudXNlZAoJICBpbiB0aGUgcHJvcGVydHkgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjgzCgoyMDE0LTEwLTAzIDA5OjAxOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGRvbid0IGxlYWsgY2FwcyBpbiBnc3RfYmFzZV9wYXJzZV9wcm9jZXNzX3N0cmVhbWhlYWRlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZThiNGJmMDg1MTgwZjdhNGM3YWU2ZWMwZjUyNWJhZWFlZGQ0ZGY4LgoJICBUaGlzIGNhdXNlcyByZWZjb3VudGluZyBjcml0aWNhbHMgaW4gdGhlIGJhc2VwYXJzZSB1bml0IHRlc3QuCgoyMDE0LTEwLTAyIDEzOjQ1OjM0ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBmYWtlc3JjOiByZW1vdmluZyB1bnVzZWQgcGF0dGVybiBvcHRpb24KCSAgRXZlbnRob3VnaCB0aGUgInBhdHRlcm4iIHByb3BlcnR5IG9mIGZha2VzcmMgY2FuIGJlIHNldCwgaXQgaXMgbmV2ZXIgdXNlZC4gVGhlCgkgIG9ubHkgcGF0dGVybiBzdXBwb3J0ZWQgaXMgdGhlIGRlZmF1bHQgMHgwMCAtPiAweGZmLCBhbmQgaWYgYSBwYXR0ZXJuIGlzIHNldCBieQoJICB0aGUgdXNlciBpdCBpcyBpZ25vcmVkLiBSZW1vdmluZyB0aGUgdW51c2VkIHByb3BlcnR5IGFuZCB2YXJpYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzY4MwoKMjAxNC0xMC0wMiAxNDo1NToyMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFkZCBtaXNzaW5nIGJyZWFrIGluIHN3aXRjaAoKMjAxNC0xMC0wMiAxMTowMDozMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHVwZGF0ZSBzZWdtZW50IHBvc2l0aW9uIG9uIEdBUCBldmVudHMgdG8gY2FsY3VsYXRlIGxldmVscyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDk4CgoyMDE0LTEwLTAyIDEwOjU3OjQzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1cGRhdGUgc2VnbWVudCBwb3NpdGlvbiBvbiBHQVAgZXZlbnRzIHRvIGNhbGN1bGF0ZSBsZXZlbHMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ5OAoKMjAxNC0wOS0yNyAyMDoxMDozNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB1cGRhdGUgc2VnbWVudCBwb3NpdGlvbiBvbiBHQVAgZXZlbnRzIHRvIGNhbGN1bGF0ZSBsZXZlbHMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ5OAoKMjAxNC0xMC0wMiAwMzozMDoyNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBjYXBzIGluIGdzdF9iYXNlX3BhcnNlX3Byb2Nlc3Nfc3RyZWFtaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3NjIKCjIwMTQtMTAtMDIgMTA6MTM6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUHVzaCBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgYSBidWZmZXIgYWxzbyBpZiB1cHN0cmVhbSBuZXZlciBjb25maWd1cmVkIGNhcHMgYnV0IHdlIGhhdmUgc3JjcGFkIGNhcHMgYWxyZWFkeQoJICBPdGhlcndpc2Ugd2UgbmV2ZXIgc2VuZCBwZW5kaW5nIGV2ZW50cyBkb3duc3RyZWFtIHRoYXQgYXJyaXZlIGFmdGVyIHdlCgkgIGNvbmZpZ3VyZWQgY2FwcyBvbiB0aGUgc3JjcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzM1CgoyMDE0LTA5LTI5IDE3OjQ4OjI5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IERvbid0IHVuY29uZGl0aW9uYWxseSB1c2UgZ19saXN0X2NvcHlfZGVlcCgpCgkgIFdlIGRvbid0IGRlcGVuZCBvbiBHTGliIDIuMzQgeWV0IGFuZCBqdXN0IGZvciB0aGlzIHNlZW1zIGEgYml0IHVzZWxlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc1ODQKCjIwMTQtMDktMjkgMTY6MjI6NDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBJbmNsdWRlIG91ciBvd24gQlNEIGxpY2Vuc2VkIGNvcHkgb2Ygc3RyY2FzZXN0cigpIGZvciBXaW5kb3dzIGFuZCBvdGhlcnMKCjIwMTQtMDktMjkgMTU6NTQ6MzcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZ2NjCgkgIFRoZXNlIGFyZSBhY3R1YWxseSBub3QgdHJ1ZS4KCSAgZ3N0dXJpLmM6IEluIGZ1bmN0aW9uICdfZ3N0X3VyaV9zdHJpbmdfdG9fdGFibGUuY29uc3Rwcm9wJzoKCSAgZ3N0dXJpLmM6MTMxNjoyNzogZXJyb3I6ICdwY3Rfa3Zfc2VwJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0KCSAgZm9yIChuZXh0X3NlcCA9IHN0cmNhc2VzdHIgKHZhbHVlLCBwY3Rfa3Zfc2VwKTsgbmV4dF9zZXA7CgkgIF4KCSAgZ3N0dXJpLmM6MTI4MzoyNDogZXJyb3I6ICdwY3RfcGFydF9zZXAnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkXQoJICBuZXh0X3NlcCA9IHN0cmNhc2VzdHIgKG5leHRfc2VwICsgMSwgcGN0X3BhcnRfc2VwKSkgewoJICBeCgoyMDE0LTA5LTI5IDEyOjE5OjM1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBtZW1vcnkgbGVhayBpbiBnc3RfdXJpX2pvaW4oKQoJICBUaGUgbWVyZ2VkIHBhdGggc2VnbWVudHMgYXJlIGEgZGVlcC1jb3BpZWQgbGlzdCBhbmQgd2UgbmVlZCB0byBmcmVlIHRoZQoJICBjb250YWluZWQgc3RyaW5ncyB0b28gaW5zdGVhZCBvZiBqdXN0IHRoZSBsaXN0IG5vZGVzIHRoZW1zZWx2ZXMuCgoyMDE0LTA3LTMxIDIyOjE4OjUzICswMTAwICBEYXZpZCBXYXJpbmcgPGRhdmlkLndhcmluZ0ByZC5iYmMuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0VXJpOiBBZGQgR3N0VXJpIG1pbmlvYmplY3QgdG8gaGFuZGxlIFVSSXMgaW4gYW4gUkZDIDM5ODYgY29tcGxpYW50IGZhc2hpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTIyMQoKMjAxNC0wOS0yNyAxMzo1Nzo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBhZGQgZ3N0LXJwaWNhbXNyYyB0byBnc3QtdW5pbnN0YWxsZWQKCjIwMTQtMDktMjUgMjE6MjE6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBmaXhtZTogYnVtcCBsZWZ0b3ZlciAwLjExIGZpeG1lIGNvbW1lbnRzCgoyMDE0LTA5LTI1IDIxOjA0OjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiAnbmV3c2VnbWVudCcgdG8gJ3NlZ21lbnQnIGluIHRoZSBkb2NzCgkgIEJyaW5ncyB0aGUgYXBpLWRvY3MgaW4gc3luYyB3aXRoIHRoZSAxLjAgYXBpIHJlbmFtZS4KCjIwMTQtMDktMjUgMjA6MjM6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbW92ZSB0aGUgcXVpY2sgcmV0dXJuIHVwCgkgIERvbid0IGFzc2lnbiBsb2NhbCB2YXJzIGlmIHdlIHNraXAgYW55d2F5LiBBZGQgbG9nZ2luZyBmb3IgZmFpbHVyZSBjb25kaXRpbwoKMjAxNC0wOS0yNSAxOTowMTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIHRlc3RzOiBwYXJhbGxlbGlzZSAnbWFrZSB2YWxncmluZCcKCSAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiAnbWFrZScgaW5zaWRlIHRoZSBNYWtlZmlsZSwKCSAgb3RoZXJ3aXNlIHRoZSBtYWtlIHdpbGwgcnVuIGFzIGlmIC1qMSBoYWQgYmVlbgoJICBzcGVjaWZpZWQgYW5kIGNvbXBsYWluIGFib3V0IHRoZSBqb2Igc2VydmVyIG5vdAoJICBiZWluZyBhdmFpbGFibGUsIGFuZCB3aXRoICQoTUFLRSkgaW4gaW5oZXJpdHMgdGhlCgkgIHBhcmVudCBtYWtlJ3Mgc2V0dGluZ3MgaXQgc2VlbXMuCgkgIFVwZ3JhZGUgY29tbW9uIHN1Ym1vZHVsZSBmb3IgcGFyYWxsZWwgY2hlY2stdmFsZ3JpbmQuCgkgIExldCB0aGlzIHNldHRsZSBhIGJpdCBiZWZvcmUgdXBncmFkaW5nIHRoZSBvdGhlciBtb2R1bGVzLgoKMjAxNC0wOS0yNSAxODo1NzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUKCSAgSXQncyBzb3J0ZWQuIElmIGl0J3MgdW5zb3J0ZWQsIG1ha2UgY2hlY2stZXhwb3J0cyBmYWlscy4KCjIwMTQtMDktMjUgMTg6NTU6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZW1vdmUgY29uZnVzaW5nIHdhcm5pbmcgYWJvdXQgcnVubmluZyB1bmRlciB2YWxncmluZAoJICBXZSdyZSBub3QgYWN0dWFsbHkgZG9pbmcgYW55dGhpbmcgZGlmZmVyZW50bHkgYW55d2hlcmUgd2hlbgoJICB3ZSBkZXRlY3QgdGhhdCB3ZSdyZSBydW5uaW5nIHVuZGVyIHZhbGdyaW5kLCBzbyBsZXQncyBub3QKCSAgcHJpbnQgdGhhdCBjb25mdXNpbmcgbWVzc2FnZSB0aGF0IG1ha2VzIHBlb3BsZSB3b25kZXIgaG93CgkgIHRoZXkgY2FuIHN3aXRjaCBpdCBvZmYgc28gdGhleSBjYW4gdmFsZ3JpbmQgdGhlIG5vcm1hbAoJICBjb2RlIHBhdGhzLiBTZWVpbmcgdGhhdCB3ZSdyZSBub3QgZG9pbmcgdGhhdCBub3IgaGF2ZSBkb25lCgkgIHNvIGluIHRoZSBsYXN0IDEwIHllYXJzIHdlIG1pZ2h0IGp1c3QgYXMgd2VsbCByZW1vdmUgdGhlCgkgIGVudGlyZSBjaGVjayBhY3R1YWxseS4KCjIwMTQtMDktMjUgMTY6MjE6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogZml4IGNhcHMgbGVhayBpbiBiYXNlcGFyc2UgdW5pdCB0ZXN0CgoyMDE0LTA5LTI1IDE0OjU0OjIzICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZmxvd2NvbWJpbmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYSBnc3RfZmxvd19jb21iaW5lcl9jbGVhcigpIG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MzU5CgkgIEFQSTogZ3N0X2Zsb3dfY29tYmluZXJfY2xlYXIoKQoKMjAxNC0wOS0yNCAxMDoxMTo1NCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IEhhbmRsZSBnc3QtcHl0aG9uIGluIGdzdC11bmluc3RhbGxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MDgyCgoyMDE0LTA2LTAzIDE0OjIzOjMwICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUmVtb3ZlIEVPUyBldmVudCBmcm9tIHBlbmRpbmdfZXZlbnQgbGlzdCBvbiBGTFVTSF9TVE9QCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4NjgKCjIwMTQtMDktMjIgMTQ6Mjc6MDUgKzAxMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2NzOiBGaXggR3N0QnVmZmVyIHR5cG8gIm1lbW9yeSBib2NrIiAtPiAibWVtb3J5IGJsb2NrIgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTE3CgoyMDE0LTA5LTIyIDE3OjI3OjMxICswMTAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jczogSW1wcm92ZSBnc3RfYnVmZmVyX2dldF9tZXRhKCkgdG8gY2xlYXIgdXAgY29uZnVzaW9uCgkgIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBleGlzdGVuY2Ugb2YgYGdzdF9idWZmZXJfZ2V0X21ldGFgIGFzIGl0IHN1Z2dlc3RlZAoJICB0byBtZSB0aGF0IHlvdSBzaG91bGQgb25seSBhdHRhY2ggb25lIG9mIGFueSB0eXBlIG9mIEdzdE1ldGEgdG8gYSBidWZmZXIuCgkgIEl0J3MgcGVyZmVjdGx5IGZpbmUgdG8gYXR0YWNoIG11bHRpcGxlIGZyb20gYSBzaW5nbGUgQVBJIHNvIEknbQoJICBkb2N1bWVudGluZyB0aGF0IGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMjkKCjIwMTQtMDktMjIgMTk6MDU6MzIgKzAyMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGZseXRyb25pYy5wbD4KCgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogYWRkZWQgbWlzc2luZyBpbmNsdWRlIGRpcmVjdGl2ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzEzMwoKMjAxNC0wOS0yMyAxNDozMToyOSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG8gbm90IGZvcmdldCB0byByZWxlYXNlIHRoZSBRVUVVRV9MT0NLIGluIHRoZSBvdXRfZmxvd19lcnJvciBwYXRoCgkgIEF2b2lkaW5nIGRlYWRsb2NrcyEKCjIwMTQtMDktMjMgMTI6NTM6MTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogZml4IGEgc21hbGwgY29udHJhZGl0aW9uIGluIHRoZSBkb2NzCgkgIFRoZSB2bWV0aG9kIGdldF9zaXplKCkgc2hhbGwgcmV0dXJuIHRoZSBzaXplIGluICdmb3JtYXQnIGFzIGNvbmZpZ3VyZWQgYnkKCSAgX3NldF9mb3JtYXQoKS4KCjIwMTQtMDktMjIgMDk6MzM6MDQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvIG5vdCBob2xkIEdTVF9RVUVVRV9MT0NLIHdoaWxlIHBvc3RpbmcgRVJST1IgbWVzc2FnZXMKCSAgVGhpcyBtaWdodCBjcmVhdGUgZGVhZGxvY2tzIGFuZCB3ZSBuZWVkIHRvIGF2b2lkIGhvbGRpbmcgZWxlbWVudAoJICBzcGVjaWZpYyBsb2NrIHdoaWxlIHBvc3RpbmcgbWVzc2FnZXMKCSAgRm9yIGV4YW1wbGUgYSBkZWFkbG9jayB3aWxsIGhhcHBlbiBpZiB3aGlsZSBwb3N0aW5nIHRoZSBtZXNzYWdlLAoJICBzb21lb25lIGNvbm5lY3RlZCBvbiB0aGUgYnVzIChzeW5jKSB0cmllcyB0byBET1QgdGhlIHBpcGVsaW5lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTAyCgoyMDE0LTA5LTE5IDEyOjAyOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGRvIG5vdCBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlcyBob2xkaW5nIHRoZSBsb2NrCgkgIEl0IG1pZ2h0IGNhdXNlIGRlYWRsb2NrcyB0byBwb3N0IG1lc3NhZ2VzIHdoaWxlIGhvbGRpbmcgdGhlIHF1ZXVlMgoJICBsb2NrLiBUbyBhdm9pZCB0aGlzIGEgbmV3IGJvb2xlYW4gZmxhZyBpcyBzZXQgd2hlbmV2ZXIgYSBuZXcKCSAgYnVmZmVyaW5nIHBlcmNlbnQgaXMgZm91bmQuIFRoZSBtZXNzYWdlIGlzIHBvc3RlZCBhZnRlciB0aGUgbG9jawoJICBpcyByZWxlYXNlZC4KCSAgVG8gbWFrZSBzdXJlIHRoZSBidWZmZXJpbmcgbWVzc2FnZXMgYXJlIHBvc3RlZCBpbiB0aGUgcmlnaHQgb3JkZXIsIG1lc3NhZ2VzCgkgIGFyZSBwb3N0ZWQgaG9sZGluZyBhbm90aGVyIGxvY2suIFRoaXMgcHJldmVudHMgMiB0aHJlYWRzIHRyeWluZyB0byBwb3N0CgkgIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY5NjkKCjIwMTQtMDktMTkgMDk6NDI6MTAgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjb2RlCgkgIGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKCkgZnVuY3Rpb24gaGFzIG5ld191cmksIGxvY2F0aW9uIGFuZCBjb2xvbgoJICBhcmUgbm90IG5lY2Vzc2FyeSwgdGhleSBjYW4gYmUgcmVtb3ZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjg3NwoKMjAxNC0wOS0xOSAwMDozMzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBwd2c6IGZpeCBzb21lIGxpbmtzIHRvIHRoZSBBUEkgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzYyCgoyMDE0LTA5LTE4IDE4OjU1OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSBGSVhNRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODc4CgoyMDE0LTA5LTE3IDIxOjQ5OjE4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCBzcGVsbGluZyBlcnJvcgoJICBUaGFuayB0byBBZHJpYW4gT3dlbiBmb3IgcmVwb3J0aW5nIHRoaXMgZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4MzkKCjIwMTQtMDktMTcgMTc6MTc6MTAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGRvIG5vdCBsZWFrIHN0aWNreSBldmVudHMgaW4gZmx1c2hfc3RvcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODEzCgoyMDE0LTA5LTEyIDE0OjQyOjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYXZvaWQgZ2xvYmFsIHZhcmlhYmxlIGZvciBsb2dfZmlsZQoJICBVc2UgdXNlcl9kYXRhIHRvIHBhc3MgdGhlIGxvZ19maWxlIGhhbmRsZSB0byB0aGUgbG9nZ2VyLWZ1bmN0aW9uLgoJICBJZiBvbmUgd2FudHMgdG8gY2hhbmdlIHRoZSBsb2cgdGFyZ2V0IChlLmcuIEdTVF9ERUJVR19GSUxFKSwgc2ltcGx5IGNhbGwKCSAgZ3N0X2RlYnVnX3JlbW92ZV9sb2dfZnVuY3Rpb24oKSBhbmQgcmUtYWRkIHRoZSBoYW5kbGVyIHdpdGggdGhlIG5ldyBsb2ctdGFyZ2V0CgkgIHVzaW5nIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uICgpLgoKMjAxNC0wOS0xNiAxMzo0ODoxOCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGFubm90YXRpb25zIHRvIGdzdF9ldmVudF9wYXJzZV90b2Nfc2VsZWN0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjczOQoKMjAxNC0wOS0xMSAxODowMTo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBkbyBub3QgcG9zdCBtZXNzYWdlcyBob2xkaW5nIHRoZSBsb2NrCgkgIEl0IG1pZ2h0IGNhdXNlIGRlYWRsb2NrcyB0byBwb3N0IG1lc3NhZ2VzIHdoaWxlIGhvbGRpbmcgdGhlIG11bHRpcXVldWUKCSAgbG9jay4gVG8gYXZvaWQgdGhpcyBhIG5ldyBib29sZWFuIGZsYWcgaXMgc2V0IHdoZW5ldmVyIGEgbmV3IGJ1ZmZlcmluZyBwZXJjZW50CgkgIGlzIGZvdW5kLiBUaGUgbWVzc2FnZSBpcyBwb3N0ZWQgYWZ0ZXIgdGhlIGxvY2sgY2FuIGJlIHJlbGVhc2VkLgoJICBUbyBtYWtlIHN1cmUgdGhlIGJ1ZmZlcmluZyBtZXNzYWdlcyBhcmUgcG9zdGVkIGluIHRoZSByaWdodCBvcmRlciwgbWVzc2FnZXMKCSAgYXJlIHBvc3RlZCBob2xkaW5nIGFub3RoZXIgbG9jay4gVGhpcyBwcmV2ZW50cyAyIHRocmVhZHMgdHJ5aW5nIHRvIHBvc3QKCSAgbWVzc2FnZXMgYXQgdGhlIHNhbWUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjI5NQoKMjAxNC0wOS0xNiAxNjowNzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTQtMDktMTYgMTI6MTc6NDggKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEFkZCBhbm5vdGF0aW9ucyB0byBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fcG9vbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3MzYKCjIwMTQtMDktMTUgMTY6Mzg6MTcgKzAyMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIHJlZmVyZW5jZSBpbiBzZXRfYWxsb2NhdGlvbiByYXRoZXIgdGhhbiBpbiBwcmVwYXJlX2FsbG9jYXRpb24KCSAgT3RoZXJ3aXNlIHdlIGNhbiBmb3JnZXQgdG8gdW5yZWYgb2JqZWN0cyBpbiBlcnJvciBjYXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjY4MAoKMjAxNC0wOS0xNSAxMzowNjo0MCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBVc2UgdGhlIG5hbWUgcGFyYW1ldGVyIG9mIGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUoKSBhbmQgdGhlIHNpbmsgdmFyaWFudAoJICBUaGlzIHdhcyBoYXJkY29kZWQgdG8gInNpbmsiIC8gInNyYyIgYnkgYWNjaWRlbnQgaW4gcHJldmlvdXMgcmVmYWN0b3JpbmcuCgoyMDE0LTA5LTEzIDIwOjEyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGNvcmVlbGVtZW50czogbWFyayBwcm9wZXJ0aWVzIHdpdGggTVVUQUJMRV9QTEFZSU5HCgoyMDE0LTA5LTExIDE1OjUyOjMyICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBhIGZ1bmN0aW9uIHRvIGNoZWNrIGRlc3RydWN0aW9uIG9mIG9iamVjdHMKCSAgQWRkIGEgbWV0aG9kIGxldHRpbmcgcGVvcGxlIHRvIGVuc3VyZSB0aGF0IHVucmVmZmluZyBvbmUgb2JqZWN0CgkgIGxlYWRzIHRvIGl0cyBkZXN0cnVjdGlvbiwgYW5kIHBvc3NpYmx5IHRoZSBkZXN0cnVjdGlvbiBvZiBtb3JlIG9iamVjdAoJICAodGhpbmsgZGVzdHJ1Y3Rpb24gb2YgYSBHc3RCaW4gZXRjLi4uKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjQ3NwoKMjAxNC0wOS0xMiAxNDoxMDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogZG9uJ3QgbGlzdCBwYWQgZnVuY3Rpb25zCgkgIERvbid0IHByaW50IGFsbCB0aGUgZGlmZmVyZW50IHBhZCBmdW5jdGlvbnMsIGl0J3MganVzdAoJICBjb25mdXNpbmcgYW5kIG5vIG9uZSBoYXMgZXZlciBuZWVkZWQgdG8ga25vdyB0aGlzIGZvcgoJICBhbnl0aGluZyBldmVyIGFueXdheSwgaXQncyBqdXN0IHVzZWxlc3MgaW5mb3JtYXRpb24uCgkgIEJlc2lkZXMsIHdlIGFsc28gbGFiZWwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGFzCgkgICdjdXN0b20nIGltcGxlbWVudGF0aW9ucyAodGhlIGNvZGUgdGhhdCB0cmllcyB0bwoJICBwcmV2ZW50IHRoYXQgZG9lc24ndCBhY3R1YWxseSB3b3JrIGl0IHNlZW1zKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjM3NwoKMjAxNC0wOS0xMiAxNToyMjoxOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYWtlIHN1cmUgdGhlIGJ1ZmZlciB0byBnZXQvcHVsbF9yYW5nZSgpIGhhcyBhdCBsZWFzdCB0aGUgcmVxdWVzdGVkIHNpemUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg2MQoKMjAxNC0wOS0wNSAxODozNjowMiArMDAwMCAgVGlhZ28gPHRpYWdva2F0Y2lwaXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEFkZGluZyBkb2N1bWVudGF0aW9uIHRvIHRoZSBnc3RfY2hlY2tfc2V0dXBfc2lua19wYWRfYnlfbmFtZSBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTkwCgoyMDE0LTA5LTEwIDE0OjUzOjAwICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X3F1ZXJ5X3NldF9udGhfYWxsb2NhdGlvbl9wb29sKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzY0MjQKCjIwMTQtMDktMTEgMDk6MzU6MTcgKzAyMDAgIFLDqW1pIExlZsOodnJlIDxyZW1pLmxlZmV2cmVAcGFycm90LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGZpeCB0eXBvIGluIGRlc2NyaXB0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY0NTUKCjIwMTQtMDktMDkgMjA6NDM6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1pbm9yIGRvY3MgZml4CgoyMDE0LTA5LTAzIDE3OjM4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZml4IHR5cG8gaW4gc2FtcGxlIGNvZGUgaW4gZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1OTc1CgoyMDE0LTA4LTI1IDExOjM0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBmbHVzaC1zdG9wIG9uIGluYWN0aXZlIHBhZCB0ZXN0CgkgIENoZWNrIHRoYXQgcHVzaGluZyBmbHVzaC1zdG9wIG9uIGFuIGluYWN0aXZlIHBhZCBkb2VzIG5vdCBjbGVhciB0aGUKCSAgZmx1c2hpbmcgZmxhZy4KCjIwMTQtMDgtMjEgMTU6NDk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGFjY2VwdCBmbHVzaC1zdG9wIG9uIGluYWN0aXZlIHBhZHMKCSAgSW5hY3RpdmUgcGFkcyBzaG91bGQgYXQgYWxsIHRpbWVzIGhhdmUgdGhlIGZsdXNoaW5nIGZsYWcgc2V0LiBUaGlzIG1lYW5zCgkgIHRoYXQgd2hlbiB3ZSBnZXQgYSBmbHVzaC1zdG9wIG9uIGFuIGluYWN0aXZlIHBhZCB3ZSBtdXN0IGlnbm9yZSBpdC4KCSAgT24gc2lua3BhZHMsIG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0LiBXZSB1c2VkIHRvIG5vdCBjbGVhciB0aGUgZmx1c2gKCSAgZmxhZyBidXQgcmVtb3ZlIHRoZSBldmVudHMgYW5kIHRoZW4gcmV0dXJuIGFuIGVycm9yIGJlY2F1c2UgdGhlIGZsdXNoaW5nCgkgIGZsYWcgd2FzIHNldC4gTm93IGp1c3Qgc2ltcGx5IHJlZnVzZSB0aGUgZXZlbnQgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KCSAgT24gc3JjcGFkcywgY2hlY2sgdGhhdCB3ZSBhcmUgdHJ5aW5nIHRvIHB1c2ggYSBmbHVzaC1zdG9wIGV2ZW50IGFuZAoJICByZWZ1c2UgaXQuIFdlIHdvdWxkIGFsbG93IHRoaXMgYW5kIG1hcmsgdGhlIHNyY3BhZCBhcyBub24tZmx1c2hpbmcKCSAgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTM1NwoKMjAxNC0wOC0yNyAxNzowNjo1NyArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogU2VuZCBhbGwgZXZlbnRzIHRvIGFjdGl2ZSBzcmMgcGFkIGFuZCBFT1MgdG8gYWxsIHNyYyBwYWRzCgkgIEZpeGVzIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk4MTEKCjIwMTQtMDgtMjggMTc6MjQ6NTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IHR5cG8gaW4gYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTYwOQoKMjAxNC0wOC0yNiAyMDoxNDo0MCArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZG8gbm90IHRvdWNoIG1lbW9yeSB0YWcgZmxhZyB3aGVuIGNvcHlpbmcgYnVmZmVyIGZsYWdzCgkgIFRoZSB0YWcgbWVtb3J5IGZsYWcgd2lsbCBiZSBzZXQgbGF0ZXIgaWYgdGhlIG1lbW9yeSBpcyBhbHNvIGNvcGllZC4gVGhpcwoJICBwYXRjaCBhdm9pZHMgYnVmZmVycyBiZWluZyBmcmVlZCBuZWVkbGVzc2x5IGluIGJ1ZmZlcnBvb2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NTc0CgoyMDE0LTA3LTE1IDE2OjA2OjQ5ICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNwLnN2ZW5zc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBnc3RfYnVzX2FkZF93YXRjaCgpIGNhbiByZXR1cm4gMCBvbiBlcnJvcgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTE5NQoKMjAxNC0wOC0yNSAxMzo0NDozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBoYW5kbGUgc3RyZWFtaGVhZGVycyBieSBwcmVwZW5kaW5nIHRoZW0gdG8gdGhlIHN0cmVhbQoJICBBZGQgYSBmaXJzdF9idWZmZXIgYm9vbGVhbiBzdGF0ZSBmbGFnIHRvIGhhdmUgYmFzZXBhcnNlIGRvIGFjdGlvbnMKCSAgYmVmb3JlIHB1c2hpbmcgZGF0YS4gVGhpcyBpcyB1c2VkIHRvIGNoZWNrIHRoZSBjYXBzIGZvciBzdHJlYW1oZWFkZXIKCSAgYnVmZmVycyB0aGF0IGFyZSBwcmVwZW5kZWQgdG8gdGhlIHN0cmVhbSwgYnV0IG9ubHkgaWYgdGhlIGZpcnN0IGJ1ZmZlcgoJICBpc24ndCBhbHJlYWR5IG1hcmtlZCB3aXRoIHRoZSBfSEVBREVSIGZsYWcuIEluIHRoaXMgY2FzZSwgaXQgaXMgYXNzdW1lZAoJICB0aGF0IHRoZSBfSEVBREVSIG1hcmtlZCBidWZmZXIgaXMgdGhlIHNhbWUgYXMgdGhlIHN0cmVhbWhlYWRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTA3MAoKMjAxNC0wOC0yNyAxMTowMTowMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWxsb3cgc2Vla2luZyBvbiB0aGUgY3VycmVudGx5IHBsYXlpbmcgc3RyZWFtCgkgIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBzdHJlYW0gdGltZSByZXBvcnRpbmcuCgoyMDE0LTA4LTIzIDEyOjI0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBnLWkgJ3RyYW5zZmVyIGZ1bGwnIGFubm90YXRpb25zIHRvIGNoYWluIGFuZCBjaGFpbl9saXN0IGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MjEwCgoyMDE0LTA4LTIyIDEwOjMyOjM4ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhbm5vdGF0ZSBHc3RQYWRFdmVudEZ1bmN0aW9uIGV2ZW50IHdpdGggJ3RyYW5zZmVyIGZ1bGwnCgkgIFRoZSBjYWxsYmFjayBpcyBzdXBwb3NlZCB0byB0YWtlIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQgc28KCSAgYmVzdCB0byBiZSBleHBsaWNpdCBhYm91dCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTIxMAoKMjAxNC0wOC0yMCAxMjo1NTo1MSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzc25AYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogYWRkIHRlc3QgdGhhdCB0cmlnZ2VycyBkZWFkbG9jayBpbiBzdGF0ZSBjaGFuZ2Ugb2YgcXVldWUKCSAgV2hlbiByZWNlaXZpbmcgRkxBU0hfU1RPUCBpbiBhIHN0YXRlIHRyYW5zaXRpb24gdG8gUkVBRFksIGEgcXVldWUKCSAgZWxlbWVudCBjYW4gZW5kIHVwIHdpdGggYW4gYWN0aXZlIHRhc2sgdGhhdCB3aWxsIG5ldmVyIGVuZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDY4OAoKMjAxNC0wOC0yMSAxNDowMjoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGZpeCByYWNlIHdoZW4gZmx1c2gtc3RvcCBldmVudCBjb21lcyBpbiB3aGlsc3Qgc2h1dHRpbmcgZG93bgoJICBEb24ndCByZS1zdGFydCB0aGUgcXVldWUgcHVzaCB0YXNrIG9uIHRoZSBzb3VyY2UgcGFkIHdoZW4gYQoJICBmbHVzaC1zdG9wIGV2ZW50IGNvbWVzIGluIGFuZCB3ZSdyZSBpbiB0aGUgcHJvY2VzcyBvZiBzaHV0dGluZwoJICBkb3duLCBvdGhlcndpc2UgdGhhdCB0YXNrIHdpbGwgbmV2ZXIgYmUgc3RvcHBlZCBhZ2Fpbi4KCSAgV2hlbiB0aGUgZWxlbWVudCBpcyBzZXQgdG8gUkVBRFkgc3RhdGUsIHRoZSBwYWRzIGdldCBkZS1hY3RpdmF0ZWQuCgkgIFRoZSBzb3VyY2UgcGFkIGdldHMgZGVhY3RpdmF0ZWQgYmVmb3JlIHRoZSBxdWV1ZSdzIG93biBhY3RpdmF0ZV9tb2RlCgkgIGZ1bmN0aW9uIG9uIHRoZSBzb3VyY2UgcGFkcyBnZXRzIGNhbGxlZCAod2hpY2ggd2lsbCBzdG9wIHRoZSB0aHJlYWQpLAoJICBzbyBjaGVja2luZyB3aGV0aGVyIHRoZSBwYWQgaXMgYWN0aXZlIGJlZm9yZSByZS1zdGFydGluZyB0aGUgdGFzayBvbgoJICByZWNlaXZpbmcgZmx1c2gtc3RvcCBzaG91bGQgYmUgZmluZS4gVGhlIHByb2JsZW0gd291bGQgaGFwcGVuIHdoZW4gdGhlCgkgIGZsdXNoLXN0b3AgaGFuZGxlciB3YXMgY2FsbGVkIGp1c3QgYWZ0ZXIgdGhlIHF1ZXVlJ3MgYWN0aXZhdGUgbW9kZQoJICBmdW5jdGlvbiBoYWQgc3RvcHBlZCB0aGUgdGFzay4KCSAgU3BvdHRlZCBhbmQgZGVidWdnZWQgYnkgTGludXMgU3ZlbnNzb24gPGxpbnV4LnN2ZW5zc29uQGF4aXMuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0Njg4CgoyMDE0LTA4LTA2IDE0OjAxOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlcigpIGFuZCBfZ2V0X3N1Yl9yZWFkZXIoKQoJICBBZGRzIEFQSSB0byBnZXQgb3IgcGVlayBhIHN1Yi1yZWFkZXIgb2YgYSBjZXJ0YWluIHNpemUgZnJvbQoJICBhIGdpdmVuIGJ5dGUgcmVhZGVyLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHBhcnNpbmcgbmVzdGVkIGNodW5rcywKCSAgb25lIGNhbiBlYXNpbHkgZ2V0IGEgYnl0ZSByZWFkZXIgZm9yIGEgc3ViLWNodW5rIGFuZCBtYWtlCgkgIHN1cmUgb25lIG5ldmVyIHJlYWRzIGJleW9uZCB0aGUgc3ViLWNodW5rIGJvdW5kYXJ5LgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXIoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3ViX3JlYWRlcigpCgoyMDE0LTA3LTI1IDE2OjM5OjQwICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IG1ha2UgZXhwbGljaXQgdGhhdCB0aGUgY2FwcyBwYXNzZWQgdG8gZ3N0X2Jhc2Vfc3JjX3NldF9jYXBzKCkgYXJlICd0cmFuZmVyIG5vbmUnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM3NDEKCjIwMTQtMDgtMTQgMTg6NTM6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhbHdheXMgcHJveHkgY2FwcyBxdWVyeQoJICBPdGhlcndpc2UgaXQgd291bGQgb25seSBiZSBwcm94aWVkIGZvciB0aGUgYWN0aXZlIHBhZCB3aGljaCBjYW4gbGVhZAoJICB1cHN0cmVhbSB0byB1c2UgYW4gaW5jb21wYXRpYmxlIGNhcHMgZm9yIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQuCgkgIEV2ZW4gaWYgYSByZWNvbmZpZ3VyZSBldmVudCBpcyBzZW50IHVwc3RyZWFtIHdoZW4gdGhlIHBhZCBpcyBhY3RpdmF0ZWQsIHRoaXMKCSAgd2lsbCBzYXZlIHRoZSBjYXBzIHJlY29uZmlndXJhdGlvbiBpZiBpdCBpcyBhbHJlYWR5IHVzaW5nIGFuIGFjY2VwdGFibGUgY2Fwcy4KCjIwMTQtMDgtMTQgMTQ6Mzc6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBiYXNlOiBhbmQgZml4IGJ1aWxkIHdpdGggbmV3IGctaSBhZ2FpbgoKMjAxNC0wOC0xNCAxNDoyNTowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGJhc2U6IHJlbW92ZSBnLWkgYW5ub3RhdGlvbiB0aGF0IG1ha2VzIG9sZGVyIGctaXItc2Nhbm5lciBjcmFzaAoJICBKdXN0IHJlbW92ZSBvbmUgc2tpcCBhbm5vdGF0aW9uIHRoYXQgY2F1c2VzIHRoaXM6CgkgICoqIChnLWlyLWNvbXBpbGVyOjEyNDU4KTogRVJST1IgKio6IENhdWdodCBOVUxMIG5vZGUsIHBhcmVudD1lbXB0eQoJICB3aXRoIG9sZGVyIGctaSB2ZXJzaW9ucyBzdWNoIGFzIDEuMzIuMS4KCjIwMTQtMDgtMTMgMTQ6MTI6MDAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZGVzdHJveSBzaWduYWwgd2F0Y2ggZnJvbSB0aGUgY29udGV4dCBpdCB3YXMgbWFwcGVkIHRvCgkgIERvbid0IHJlbHkgb24gZ19zb3VyY2VfcmVtb3ZlKCkgYmVjYXVzZSBpdCBvcGVyYXRlcyBvbiB0aGUgbWFpbgoJICBjb250ZXh0LiBJZiBhIHNpZ25hbCB3YXRjaCB3YXMgYWRkZWQgdG8gYSBuZXcgdGhyZWFkLWRlZmF1bHQgY29udGV4dAoJICBnX3NvdXJjZV9yZW1vdmUoKSB3b3VsZCBoYXZlIG5vIGVmZmVjdC4gU28gc2ltcGx5IHVzZQoJICBnX3NvdXJjZV9kZXN0cm95KCkgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLgoJICBBZGRpdGlvbmFsbHkgdGhlIHNvdXJjZV9pZCB3YXMgcmVtb3ZlZCBmcm9tIEdzdEJ1c1ByaXZhdGUgYmVjYXVzZSBpdAoJICB3YXMgcmVkdW5kYW50IHdpdGggdGhlIHNpZ25hbCB3YXRjaCBHU291cmNlIGFsc28gc3RvcmVkIGluIHRoYXQKCSAgc3RydWN0dXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NzE2CgoyMDE0LTA4LTA3IDEyOjE4OjA0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTm90IHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2UgaWYgb25lIG9mIHRoZSBzaW5nbGVxdWV1ZSBkb2Vzbid0IG5lZWQgaXQKCSAgSW1hZ2luZSB0aGUgZm9sbG93aW5nICdwaXBlbGluZScKCSAgLS0tLS0tLS0tLS0tLS0KCSAgcDEvfCAnZnVsbHF1ZXVlJyAgfC0tLSAnbGFnZ3knIGRvd25zdHJlYW0KCSAgLS0tLS0tLS0tICAvIHwgICAgICAgICAgICAgIHwKCSAgLXwgZGVtdXhlciB8ICAgfCBtdWx0aXF1ZXVlICAgfAoJICAtLS0tLS0tLS0gIFwgfCAgICAgICAgICAgICAgfAoJICBwMlx8ICdlbXB0eXF1ZXVlJyB8LS0tICdmYXN0JyBkb3duc3RyZWFtCgkgIC0tLS0tLS0tLS0tLS0tCgkgIEluIHRoZSBjYXNlIGRvd25zdHJlYW0gb2Ygb25lIHNpbmdsZSBxdWV1ZSAoZnVsbHF1ZXVlKSBoYXMgKGEgbG90IG9mKSBsYXRlbmN5CgkgIChmb3IgZXhhbXBsZSBmb3IgcmV2ZXJzZSBwbGF5YmFjayB3aXRoIHZpZGVvKSwgd2UgY2FuIGVuZCB1cCBoYXZpbmcgdGhlIG90aGVyCgkgIFNpbmdsZVF1ZXVlIChlbXB0eXF1ZXVlKSBlbXB0aWVkLCBiZWZvcmUgdGhhdCBmdWxscXVldWUgZ2V0cwoJICB1bmJsb2NrZWQuIEluIHRoZSBtZWFudGltZSwgdGhlIGRlbXV4ZXIgdHJpZXMgdG8gcHVzaCBvbiBmdWxscXVldWUsIGFuZAoJICBpcyBibG9ja2luZyB0aGVyZS4KCSAgSW4gdGhhdCBjYXNlIHRoZSBjdXJyZW50IGNvZGUgd2lsbCBwb3N0IGEgQlVGRkVSSU5HIG1lc3NhZ2Ugb24gdGhlIGJ1cyB3aGVuCgkgIGVtcHR5cXVldWUgZ2V0cyBlbXB0aWVkLCB0aGF0IGxlYWRzIHRvIHRoZSBhcHBsaWNhdGlvbiBzZXR0aW5nIHRoZSBwaXBlbGluZSBzdGF0ZSB0bwoJICBQQVVTRUQuIFNvIG5vdyB3ZSBlbmQgdXAgaW4gYSBzaXR1YXRpb24gd2hlcmUgJ2xhZ2d5IGRvd25zdHJlYW0nIGlzCgkgIHByZXJvbGxlZCBhbmQgd2lsbCBub3QgdW5ibG9jayBhbnltb3JlIGJlY2F1c2UgdGhlIHBpcGVsaW5lIGlzIHNldCB0bwoJICBQQVVTRUQsIHRoZSBmdWxsZXF1ZXVlIGRvZXMgbm90IGhhdmUgYSBjaGFuY2UgdG8gYmUgZW1wdGllZCBhbmQKCSAgdGhlIGVtcHR5cXVldWUgY2FuIG5vdCBnZXQgZmlsbGVkIGFueW1vcmUgc28gbm8gbW9yZSBCVUZFUlJJTkcgbWVzc2FnZQoJICB3aWxsIGJlIHBvc3RlZCBhbmQgdGhlIHBpcGVsaW5lIGlzIHN0dWNrZWQgaW4gUEFVU0VEIGZvciB0aGUgZXRlcm5pdHkuCgkgIE1ha2luZyBzdXJlIHRoYXQgd2UgZG8gbm90IHRyeSB0byAiYnVmZmVyIiBpZiBvbmUgb2YgdGhlIHNpbmdsZSBxdWV1ZQoJICBkb2VzIG5vdCBuZWVkIGJ1ZmZlcmluZywgcHJldmVudHMgdGhpcyBzaXR1dGF0aW9uIGZyb20gaGFwcGVuaW5nIHRob3VnaCBpdCBsZXRzIHRoZQoJICBvcG9ydHVuaXR5IGZvciBidWZmZXJpbmcgaW4gYWxsIG90aGVyIGNhc2VzLgoJICBUaGF0IGltcGxlbWVudHMgYSBuZXcgbG9naWMgd2hlcmUgd2UgbmVlZCBhbGwgc2luZ2xlcXVldWUgdG8gbmVlZAoJICBidWZmZXJpbmcgZm9yIHRoZSBtdWx0aXF1ZXVlIHRvIGFjdHVhbGx5IHN0YXRlIGJ1ZmZlcmluZyBpcyBuZWVkZWQsCgkgIHRha2luZyB0aGUgbWF4aW11bSBidWZmZXJpbmcgb2YgdGhlIHNpbmdsZSBxdWV1ZSBhcyB0aGUgcmVmZXJlbmNlIHBvaW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDEyCgoyMDE0LTA4LTEzIDEzOjAxOjIzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE9ubHkgaGFuZGxlIGZsb3cgcmV0dXJucyA8IEVPUyBhcyBlcnJvcnMsIG5vdCBlLmcuIGZsdXNoaW5nCgoyMDE0LTA4LTEzIDEyOjQwOjM3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFVzZSBhbGxvdy1ub25lIGluc3RlYWQgb2YgbnVsbGFibGUgdW50aWwgd2UgZGVwZW5kIG9uIGEgbmV3IGVub3VnaCBHSSB2ZXJzaW9uCgoyMDE0LTA4LTEzIDEyOjM5OjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGdzdF9iaW5fbmV3KCkgY2FuIGFjY2VwdCBOVUxMIGFzIG5hbWUKCjIwMTQtMDgtMTMgMTI6Mzc6MDggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDbGFyaWZ5IGRvY3MgYWJvdXQgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKCkgYW5kIHJlbW92ZSBkZXByZWNhdGlvbiBwYXJ0CgkgIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlYWxseSBwYWQgb3Igc2xvdyBmb3IgdGhlIGNvbW1vbiBjYXNlIG9mIHJlcXVlc3RpbmcgYQoJICBwYWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgdGVtcGxhdGUuIEl0IGlzIG9ubHkgc2xvd2VyIGlmIHlvdSB0byBuYW1lIHlvdXIgcGFkcwoJICBkaXJlY3RseSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGVsZW1lbnQgaGFuZGxlIGl0LgoJICBBbHNvIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGRlcHJlY2F0ZSBpdCBpbiBmYXZvciBvZiBhIG1vcmUgY29tcGxpY2F0ZWQgZnVuY3Rpb24KCSAgZm9yIHRoZSBjb21tb24gY2FzZS4KCjIwMTQtMDgtMTMgMTI6MjA6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFBvc3QgZXJyb3JzIGlmIHdlIHJlY2VpdmUgRU9TIGFmdGVyIGRvd25zdHJlYW0gcmVwb3J0ZWQgYW4gZXJyb3IKCSAgVGhlcmUgd2lsbCBiZSBubyBmdXJ0aGVyIGRhdGEgZmxvdyB0aGF0IHdvdWxkIGFsbG93IHVzIHRvIHByb3BhZ2F0ZSB0aGUKCSAgZXJyb3IgdXBzdHJlYW0sIGNhdXNpbmcgbm9ib2R5IGF0IGFsbCB0byBwb3N0IGFuIGVycm9yIG1lc3NhZ2UuCgoyMDE0LTA4LTEzIDEyOjE1OjAzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUG9zdCBlcnJvcnMgd2hlbiByZWNlaXZpbmcgRU9TIGFmdGVyIGRvd25zdHJlYW0gcmV0dXJuZWQgYW4gZXJyb3IKCSAgVGhlcmUgbWlnaHQgYmUgbm8gZnVydGhlciBkYXRhIGZsb3cgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBwcm9wYWdhdGUgdGhlCgkgIGVycm9yIHVwc3RyZWFtLCBjYXVzaW5nIG5vYm9keSB0byBwb3N0IGFuIGVycm9yIGF0IGFsbC4KCjIwMTQtMDgtMTMgMTI6MTA6MzkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUG9zdCBlcnJvcnMgb3Vyc2VsdmVzIGlmIHRoZXkgYXJlIHJlY2VpdmVkIGFmdGVyIEVPUwoJICBBZnRlciBFT1MgdGhlcmUgd2lsbCBiZSBubyBmdXJ0aGVyIGJ1ZmZlciB3aGljaCBjb3VsZCBwcm9wYWdhdGUgdGhlCgkgIGVycm9yIHVwc3RyZWFtLCBzbyBub3RoaW5nIGlzIGdvaW5nIHRvIHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBhbmQKCSAgdGhlIHBpcGVsaW5lIGp1c3QgaWRsZXMgYXJvdW5kLgoKMjAxNC0wOC0xMiAyMDowMzowNiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IFRyaXZpYWwgcGFkIGRvY3VtZW50YXRpb24gZml4CgkgIFByZXN1bWFibHkgYSBjb3B5LXBhc3RvLgoKMjAxNC0wOC0wOCAwOTo1NDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgdW5pdCB0ZXN0cyBmb3IgY29uY2F0IGVsZW1lbnQKCjIwMTQtMDgtMDggMDk6MTM6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgZG9jdW1lbnRhdGlvbiBhbmQgaW50ZWdyYXRlIGludG8gZG9jdW1lbnRhdGlvbiBidWlsZAoKMjAxNC0wOC0wNyAxNDo0Mjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgY29uY2F0OiBBZGQgbmV3IGVsZW1lbnQgdGhhdCBjb25jYXRlbmF0ZXMgbXVsdGlwbGUgc3RyZWFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDcwCgoyMDE0LTA4LTA5IDEwOjU3OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogY2FwczogYWRkIGNoZWNrIGZvciBjYXBzIHdpdGggZmVhdHVyZXMgaW50ZXJzZWN0aW9uCgkgIENoZWNrcyB0aGF0IGEgY2FwcyB3aXRob3V0IGZlYXR1cmVzIGRvZXNuJ3QgaW50ZXJzZWN0IHdpdGgKCSAgb25lIHRoYXQgaGFzIGZlYXR1cmVzCgoyMDE0LTA4LTA3IDE0OjU0OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkgIGV4YW1wbGVzOiBjb250cm9sbGVyOiBmaXggdHlwbyBpbiBjb21tZW50cwoKMjAxNC0wOC0wNiAxMzo1ODoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiB1c2UgdW5jaGVja2VkIGlubGluZSB2YXJpYW50IGZvciBnZXRfcmVtYWluaW5nIGluIG1vcmUgcGxhY2VzCgkgIFdlJ3ZlIGFscmVhZHkgZG9uZSB0aGUgZ19yZXR1cm5fKl9pZl9mYWlsIChyZWFkZXIgIT0gTlVMTCkKCSAgZGFuY2UgaW4gdGhvc2UgcGxhY2VzLCBzbyBubyBuZWVkIHRvIGRvIGl0IGFnYWluLgoKMjAxNC0wOC0wNiAxNDo0MzowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogR2hvc3RwYWRzIGNhbiBiZSByZXF1ZXN0IHBhZHMgdG9vIGJ1dCBjaGVjayBpZiB0aGUgcGFkIGhhcyBhIHRlbXBsYXRlCgkgIE90aGVyd2lzZSB3ZSBkZXJlZmVyZW5jZSBOVUxMIGluIHNvbWUgY2FzZXMgYW5kIGNyYXNoLgoKMjAxNC0wOC0wNiAxMjozNDo0MiArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkgIHRlc3RzOiBBZGQgbWlzc2luZyB1bnJlZnMgb2Ygb2JqZWN0cyBhZnRlciB1c2UKCSAgVW5yZWZmaW5nIHRoZSBvYmplY3RzIHJldHVybmVkIGJ5IGdzdF9iaW5fZ2V0X2J5X25hbWUoKSBhbmQKCSAgZ3N0X3BpcGVsaW5lX2dldF91c2UoKSB3ZXJlIG1pc3NpbmcgaW4gc2V2ZXJhbCB0ZXN0cywgc28gYWRkIHRoZXNlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MzQ1CgoyMDE0LTA4LTA2IDEyOjU1OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pdGl0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDE0LTA3LTEzIDE1OjMxOjA4ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IEFkZCB0ZXN0IHZlcmlmeWluZyBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCgpCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMTkKCjIwMTQtMDctMTMgMTU6Mjg6MzIgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVW5yZWYvcmVsZWFzZSBwYWRzIGluIGVycm9yIGNhc2VzIHdoZW4gbGlua2luZyBwYWRzCgkgIFByZXZpb3VzbHkgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoKSBmb3Jnb3QgdG8gdW5yZWZlcmVuY2Ugb3IgcmVsZWFzZQoJICByZXF1ZXN0IHBhZHMgaW4gc2V2ZXJhbCBlcnJvciBjYXNlcy4gQWxzbyBjb21tZW50cyB3ZXJlIGFkZGVkIG1lbnRpb25pbmcKCSAgd2h5IHJlbGVhc2luZyBpcyBub3QgbmVjZXNzYXJ5IGluIHNvbWUgcGxhY2VzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTE5CgoyMDE0LTA4LTAxIDE3OjI3OjM5IC0wMzAwICBUaWFnbyBDZXNhciBLYXRjaXBpcyA8dGlhZ28ua2F0Y2lwaXNAZGlnaXRyby5jb20uYnI+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogYWRkIGRvY3MgZm9yIGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTQyCgoyMDE0LTA3LTMxIDE4OjMyOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIE1ha2VmaWxlOiBBZGQgdXNhZ2Ugb2YgYnVpbGQtY2hlY2tzIHN0ZXAKCSAgQWxsb3dzIGJ1aWxkaW5nIGNoZWNrcyB3aXRob3V0IHJ1bm5pbmcgdGhlbQoKMjAxNC0wNy0zMCAxNTo0NjoyMiArMDMwMCAgTW9oYW1tZWQgU2FtZWVyIDxtc2FtZWVyQGZvb2xhYi5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBBZGQgbWlzc2luZyBlcnJvciBjaGVja2luZyB0byBkZWZhdWx0X2FsbG9jX2J1ZmZlcigpCgkgIGRlZmF1bHRfYWxsb2NfYnVmZmVyKCkgY2FsbHMgZ3N0X2J1ZmZlcl9uZXdfYWxsb2NhdGUoKSBidXQgZG9lcyBub3QgY2hlY2sgZm9yCgkgIGZhaWxlZCBhbGxvY2F0aW9uLgoJICBUaGlzIHBhdGNoIG1ha2VzIGRlZmF1bHRfYWxsb2NfYnVmZmVyKCkgcmV0dXJuIGFuIGVycm9yIChHU1RfRkxPV19FUlJPUikgaWYKCSAgYnVmZmVyIGFsbG9jYXRpb24gZmFpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM5NzQKCjIwMTQtMDctMjkgMTQ6MjE6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0Bvc2cuc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCB1c2luZyBpbmZpbml0ZSBidWZmZXJzIGxpbWl0IGlmIGZpbml0ZSBpcyByZXF1ZXN0ZWQKCSAgSWYgdGhlIGN1cnJlbnQgbWF4LWJ1ZmZlcnMgbGltaXQgaXQgaW5maW5pdGUgYW5kIGEgZmluaXRlIHZhbHVlIGlzCgkgIHJlcXVlc3RlZCwgc3dpdGNoIHRvIHRoZSBNQVggKHJlcXVlc3RlZCwgY3VycmVudC12YWx1ZSkgdG8gc2V0IHNvbWUKCSAgbGltaXQgYnV0IG5vdCBiZWxvdyB3aGF0IHdlIGtub3cgdGhhdCB3ZSd2ZSBuZWVkZWQgc28gZmFyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNjM3CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM4MzcKCjIwMTQtMDctMjQgMjI6MDI6NTggKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBVbnJlZiByZWZlcmVuY2UgdG8gZW5jbG9zaW5nIGJpbnMKCSAgUHJldmlvdXNseSBhbGwgcmVmZXJlbmNlIHRvIGVuY2xvc2luZyBiaW5zIG9mIGFuIGVsZW1lbnQgd2VyZSBsZWFrZWQKCSAgd2hlbiBkb2luZyBkZWxheWluZyBzZXR0aW5nIGEgcHJvcGVydHkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2OTcKCjIwMTQtMDctMjcgMDI6Mzc6MDggKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBTdXBwb3J0IFNJR0lOVCAoQ3RybCtDKSBvbiBXMzIKCSAgVzMyIGhhcyBubyBTSUdJTlQsIGJ1dCBpdCBkb2VzIGhhdmUgU2V0Q29uc29sZUN0cmxIYW5kbGVyKCksIHdoaWNoIHNldHMgdXAKCSAgYSBoYW5kbGVyIGZvciBDdHJsK0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM4MTQKCjIwMTQtMDctMjcgMDM6MDY6MTYgKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogUHJldmVudCBmYWxzZS1uZWdhdGl2ZSBmcm9tIFdBS0VfRVZFTlQoKSBvbiBXMzIKCSAgU2V0RXZlbnQoKSBzZWVtcyB0byBub3QgY2FsbCBTZXRMYXN0RXJyb3IoMCkgaW50ZXJuYWxseSwgc28gY2hlY2tpbmcgbGFzdAoJICBlcnJvciBhZnRlciBjYWxsaW5nIFNldEV2ZW50KCkgbWF5IHJldHVybiB0aGUgZXJyb3IgZnJvbSBhbiBlYXJsaWVyIFczMiBBUEkKCSAgY2FsbC4gRml4IHRoaXMgYnkgY2FsbGluZyBTZXRsYXN0RXJyb3IoMCkgZXhwbGljaXRseS4KCSAgQ3VycmVudGx5IFdBS0VfRVZFTlQoKSBjb2RlIGlzIGNyYW1wZWQgaW50byBhIG1hY3JvIGFuZCBkb2Vzbid0IGxvb2sgdG8gYmUKCSAgZW50aXJlbHkgY29ycmVjdC4gUGFydGljdWxhcmx5LCBpdCBkb2VzIG5vdCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mCgkgIFNldEV2ZW50KCksIG9ubHkgdGhlIHRocmVhZC1sb2NhbCBXMzIgZXJyb3IgdmFsdWUuIEl0IGlzIGxpa2VseSB0aGF0IFNldEV2ZW50KCkKCSAgYWN0dWFsbHkganVzdCByZXR1cm5zIG5vbi16ZXJvIHZhbHVlLCBidXQgdGhlIGNvZGUgbWlzdGFrZW5seSB0aGlua3MgdGhhdCB0aGUKCSAgY2FsbCBoYXMgZmFpbGVkLCBiZWNhdXNlIEdldExhc3RFcnJvcigpIHNlZW1zIHRvIGluZGljYXRlIHNvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzODA1CgoyMDE0LTA3LTI2IDE0OjQyOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5oOgoJICBnc3Q6IGluY2x1ZGUgYXRvbWljcXVldWUuaCBhZ2FpbiBpbiBnc3QuaAoJICBJdCdzIGEgcHVibGljIGhlYWRlciBvZiBnc3RyZWFtZXIgY29yZSwgc28gI2luY2x1ZGUgPGdzdC9nc3QuaD4KCSAgc2hvdWxkIG1ha2UgdGhlIEFQSSBhdmFpbGFibGUuCgoyMDE0LTA3LTI1IDExOjQ1OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiByZW1vdmUgcHJvdG90eXBlIGZvciBmdW5jdGlvbiB0aGF0IG5vIGxvbmdlciBleGlzdHMKCjIwMTQtMDctMjQgMTQ6Mzk6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0Bvc2cuc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlawoJICBBZGRzIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlayBqdXN0IGxpa2UKCSAgR3N0QWRhcHRlciBoYXMgYSBfcGVlayBhbmQgbm9uIF9wZWVrIHZlcnNpb24KCSAgVXBncmFkZWQgdGVzdHMgdG8gY2hlY2sgdGhhdCB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgY29ycmVjdCBpbiB0aGUKCSAgX3BlZWsgdmVyc2lvbgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzU2CgoyMDE0LTA2LTI2IDE0OjA5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogcHJlLWFsbG9jYXRlIGJ1ZmZlciBhcnJheSBpbiBvbmUgZ28gd2l0aCB0aGUgYnVmZmVyIGxpc3QKCSAgV2UgY2FuIG5vdyBjcmVhdGUgYW5kIGZyZWUgYSBidWZmZXIgbGlzdCB3aXRoIG9uZSBzbGljZSBhbGxvYy9mcmVlCgkgIGNhbGwgaW4gbW9zdCBjYXNlcywgaW5zdGVhZCBvZiBvbmUgc2xpY2UgYWxsb2MvZnJlZSBmb3IgdGhlIGxpc3QsCgkgIG9uZSBzbGljZSBhbGxvYy9mcmVlIGZvciB0aGUgR0FycmF5LCBhbmQgb25lIG1hbGxvYy9mcmVlIGZvciB0aGUKCSAgR0FycmF5IGFycmF5LiBJbiBwcmFjdGljZSB3ZSBrbm93IHRoZSBtYXggc2l6ZSBvZiBvdXIgYnVmZmVyIGxpc3QKCSAgZnJvbSB0aGUgc3RhcnQsIHNvIGNhbiBhdm9pZCByZWFsbG9jcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjI4NAoKMjAxNC0wNy0yMyAyMToyNzo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBwcml2YXRlOiBhbGxvdyBpbnRlcm5hbCBhY2Nlc3MgdG8gdGhlIGRlYnVnIGJhc2UtdGltZQoJICBNb3ZpbmcgdGhlIGV4dGVybiB0byB0aGUgaGVhZCBsZXRzIHVzIGFjY2VzcyB0aGlzIGZyb20gb3RoZXIgcGFydHMgYXMgd2VsbC4gVGhpcwoJICBpcyBuZWVlZCBpbiB0aGUgdHJhY2VyIGJyYW5jaC4KCjIwMTQtMDctMjMgMDA6MTU6MTcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBVc2UgZ2l0IHB1bGwgLS1yZWJhc2UKCSAgTm8gcG9pbnQgaW50cm9kdWNpbmcgcmVkdW5kYW50IG1lcmdlIGNvbW1pdHMuCgoyMDE0LTA3LTIxIDEyOjQxOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnbGlzdC5jOgoJICBSZXZlcnQgInRlc3RzOiB0YWdsaXN0OiBhZGQgYmFzaWMgdGVzdCBmb3IgdGFnbGlzdHMgc2VyaWFsaXphdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NWQyM2QxOWI3ZGU0MDU0MWQ2M2IwYmM3NmQ4YjY0NmMzMjFhZjI2LgoJICBUaGVyZSB3YXMgYWxyZWFkeSBhIGdzdHRhZy5jIHRlc3RzIGZpbGUsIHRoaXMgdGVzdCBoYXMgYmVlbiBtZXJnZWQKCSAgaW4gaXQgaW4gdGhlIHByZXZpb3VzIGNvbW1pdAoKMjAxNC0wNy0yMSAxMjo0MDo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRlc3RzOiB0YWc6IGFkZCB0aGUgZW1wdHkgdGFnbGlzdCBzZXJpYWxpemF0aW9uIHRlc3QKCSAgQWRkcyB0aGUgdGVzdCB0byB0aGUgYXBwcm9wcmlhdGUgYW5kIGFscmVhZHkgZXhpc3RpbmcgZmlsZS4KCjIwMTQtMDctMTQgMTg6NDY6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdsaXN0LmM6CgkgIHRlc3RzOiB0YWdsaXN0OiBhZGQgYmFzaWMgdGVzdCBmb3IgdGFnbGlzdHMgc2VyaWFsaXphdGlvbgoJICBNYWtlIHN1cmUgaXQgd29ya3Mgd2l0aCBlbXB0eSB0YWdsaXN0cwoKMjAxNC0wNy0xNCAxODoyNTo1MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBnc3RzdHJ1Y3R1cmU6IHNlcmlhbGl6YXRpb24gb2YgdGFnIGV2ZW50IHN0cnVjdHVyZQoJICBBZGRzIGEgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHRoZSBzZXJpYWxpemF0aW9uIG9mIGEgdGFnIGV2ZW50IHN0cnVjdHVyZQoJICB3b3JrcyB3aXRob3V0IHByb2JsZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMzEKCjIwMTQtMDctMTQgMTg6MjM6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgR3N0VGFnTGlzdCBjb21wYXJlIGZ1bmN0aW9uCgkgIFdoZW4gc2VyaWFsaXppbmcgR3N0U3RydWN0dXJlcyBmcm9tIGV2ZW50cyBpbiBHRFAgaXQgd2lsbCBhZGQgYSB0YWdsaXN0CgkgIGFzIGEgR3N0U3RydWN0dXJlIGZpZWxkLCBoYXZpbmcgdGhlIGNvbXBhcmUgZnVuY3Rpb24gYWxsb3dzIGNvbXBhcmlzb24gb2YKCSAgR3N0U3RydWN0dXJlcyB0byBjaGVjayBpZiB0aGUgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQgdmVyc2lvbiBtYXRjaGVzIHRoZQoJICBvcmlnaW5hbCBvbmUsIGFtb25nIG90aGVyIGNhc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTMxCgoyMDE0LTA3LTA5IDE1OjQ4OjEwICswMjAwICBTcmltYW50YSBQYW5kYSA8c3JpbWFudGFAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCBmb3IgcmFjeSBFT1MgZXZlbnQgaGFuZGxpbmcKCSAgV2hlbiBlb3MgZXZlbnRzIGFyZSBmb3J3YXJkZWQgc2ltdWx0YW5lb3VseSBmcm9tIHR3byBzaW5rcGFkcyBvbgoJICBmdW5uZWwsIGl0IGRvZXNub3QgZm9yd2FyZCB0aGUgZW9zIHRvIHNvdXJjZXBhZC4gVGhlIHJlYXNvbiBpcwoJICBzdGlja3kgZXZlbnRzIGFyZSBzdG9yZWQgYWZ0ZXIgdGhlIGV2ZW50IGNhbGxiYWNrcyBhcmUgcmV0dXJuZWQuCgkgIFRoZXJlZm9yZSB3aGlsZSBvbmUgaXMgYWJvdXQgdG8gc3RvcmUgdGhlIHN0aWNreSBldmVudHMgb24gdGhlIGl0cwoJICBzaW5rcGFkLCBvdGhlciBzaW5rcGFkIHN0YXJ0cyBjaGVja2luZyBmb3IgdGhlIGVvcyBldmVudHMgb24gYWxsIG90aGVyCgkgIHNpbmtwYWRzIGFuZCBhc3N1bWVzIGVvcyBpcyBub3QgcHJlc2VudCB5ZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI4NTEKCjIwMTQtMDctMTcgMTY6MDU6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IEFkZCB1bml0IHRlc3QgZm9yIHJlc2V0dGluZyBvZiB0aGUgc3RhcnQgdGltZQoJICBBbHNvIGNoZWNrIGlmIHRoaXMgcHJvcGVybHkgYWZmZWN0cyBiYXNlc2luayBlbGVtZW50cyB0byBub3QKCSAgcmVwb3J0IHRoZSBvbGQgc3RhcnQgdGltZSBidXQgdGhlIHJlYWwgY3VycmVudCBwb3NpdGlvbiB3aGVuCgkgIHNldHRpbmcgdG8gUEFVU0VEIGFnYWluLgoKMjAxNC0wNy0xNSAxODoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogUmVzZXQgdGhlIHN0YXJ0IHRpbWUgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0byBSRUFEWSB0b28KCjIwMTQtMDctMTUgMTc6MTk6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFJlc2V0IHN0YXJ0IHRpbWUgaW4gUkVBRFktPlBBVVNFRCBiZWZvcmUgY2hhaW5pbmcgdXAKCSAgT3RoZXJ3aXNlIGJpbiB3aWxsIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIGNoaWxkIGVsZW1lbnRzIHdpdGhvdXQKCSAgZGlzdHJpYnV0aW5nIHRoZSBuZXcgc3RhcnQgdGltZS4KCjIwMTQtMDYtMjggMTc6NTg6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZWxlbWVudHM6IGltcHJvdmUgYnVmZmVyIGZsYWdzIHRvIHN0cmluZyB1dGlsaXR5IGZ1bmN0aW9uCgkgIEF2b2lkIHJlbG9jYXRpb25zIGFuZCByZWZhY3RvciBzbyB0aGF0IHdlIGRvbid0IGNhbGN1bGF0ZQoJICB0aGUgZml4ZWQgYW5kIGtub3duIGF0IGNvbXBpbGUgdGltZSBtYXhpbXVtIHN0cmluZyBzaXplCgkgIGV2ZXJ5IHRpbWUuIEFsc28gc2tpcCB0aGUgbWluaSBvYmplY3QgZmxhZ3Mgd2hpY2ggd2UgYXJlCgkgIG5vdCBnb2luZyB0byBwcmludCBhbnl3YXkuCgoyMDE0LTA3LTE5IDE4OjA0OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjQuMCA9PT0KCjIwMTQtMDctMTkgMTY6NDY6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS40LjAKCjIwMTQtMDctMTkgMTY6MjE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA3LTE5IDEyOjE2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGEucG86CgkqIHBvL3N2LnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNy0xNyAxNTo1Mzo1MyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXR1cm4gRkxPV19GTFVTSElORyB3aGVuIHB1c2hpbmcgYSBmcmFtZSBvbiBhIHBhZCB0aGF0IGhhcyBiZWVuIGZsdXNoZWQKCSAgV2hlbiBnb2luZyB0byBSRUFEWSwgaXQgaXMgcG9zc2libGUgdGhhdCB3ZSBhcmUgc3RpbGwgcHVzaW5nIGEgZnJhbWUgYnV0IHRoYXQKCSAgb3VyIHNyY3BhZCBoYXMgYWxyZWFkeSBiZWVuIHNldCB0byBmbHVzaGluZy4gSW4gdGhhdCBjYXNlIHdlIHNob3VsZCBub3QKCSAgcG9zdCBhbnkgZXJyb3Igb24gdGhlIGJ1cyBidXQgaW5zdGVhZCBjbGVhbmx5IHJldHVybiBGTE9XX0ZMVVNISU5HLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMzIwCgoyMDE0LTA3LTE3IDA3OjA3OjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogUHJvcGFnYXRlIGlucHV0IGJ1ZmZlciBQVFMgYW5kIERUUwoJICBUaGUgaW5pdGlhbCBidWZmZXJzICh0aGF0IHdlcmUgdXNlZCBmb3IgdGltZXN0YW1waW5nKSBtaWdodCBoYXZlIFBUUwoJICBhbmQgRFRTIHNldC4gSW4gb3JkZXIgdG8gZm9yd2FyZCB0aG9zZSBwcm9wZXJseSwgZ2V0IHRoZSBpbml0aWFsCgkgIFBUUy9EVFMgZnJvbSB0aGUgYWRhcHRlciBhbmQgc2V0IHRoZW0gb24gdGhlIHJlY29uc3RydWN0ZWQgb3V0cHV0CgkgIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzI5MQoKMjAxNC0wNy0xMiAxNzowMToyMyArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogVW5yZWYgcGFkIHRlbXBsYXRlIGFmdGVyIHVzZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTIxCgoyMDE0LTA3LTE0IDE4OjEwOjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IHRhZ2xpc3QgZ3R5cGUgdG8gdXNlIGl0IGluIGdzdHZhbHVlCgkgIE90aGVyd2lzZSBpdCB3aWxsIGhhdmUgYSAwIHZhbHVlIGFuZCBHc3RUYWdMaXN0IHdvbid0IGJlIGZvdW5kCgkgIGZvciBHc3RWYWx1ZSBmdW5jdGlvbnMgKHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTMxCgo9PT0gcmVsZWFzZSAxLjMuOTEgPT09CgoyMDE0LTA3LTExIDEwOjQ2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy45MQoKMjAxNC0wNy0xMSAxMDo0MToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDctMTEgMDg6NTE6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9kYS5wbzoKCSogcG8vdmkucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA3LTA1IDE4OjI5OjI5ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgZG9jczogRml4IGRvY3VtZW50YXRpb24gdHlwb3MgYW5kIGluY29uc2lzdGVuY2llcwoJICAqIEdzdEdsb2JhbERldmljZU1vbml0b3Igd2FzIHJlbmFtZWQgdG8gR3N0RGV2aWNlTW9uaXRvcgoJICAqIEV4cGFuZCBHU1RfTUVTU0FHRV9ERVZJQ0UgdG8gdGhlIGZ1bGwgZW51bSB2YWx1ZSBuYW1lcwoJICAqIENvcnJlY3QgdGhlIGluY29ycmVjdCByZWZlcmVuY2VzIHRvIHRoZSBHc3REZXZpY2VQcm92aWRlciBpbnRlcmZhY2VzCgkgICogRGVzY3JpYmUgY2FwcyBhcmd1bWVudHMgZm9yIGdzdGNoZWNrIGludGVyZmFjZQoJICAqIEFkZCBtaXNzaW5nIGRvY3MgZm9yIEdzdE5ldEFkZHJlc3NNZXRhIGFuZCBpdHMgYWRkIGZ1bmN0aW9uCgkgICogQWRkIGRvY3MgZm9yIHRvYyBoZWxwZXIgbWFjcm9zCgkgICogQXZvaWQgcmVmZXJpbmcgdG8gR3N0VmFsdWVMaXN0IHR5cGUgYXMgZG9uZSBlbHNld2hlcmUKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjc4NgoKMjAxNC0wNy0wNSAxNzoxMzoyMSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQ2xlYW51cCBpbnRlcmZhY2UgcmVmZXJlbmNlcyBpbiBkb2NzCgkgICogRGVsZXRlIHJlZmVyZW5jZXMgdG8gcmVtb3ZlZCBpbnRlcmZhY2VzCgkgICogQWRkIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBzZWN0aW9ucwoJICAqIEZpeCBkdXBsaWNhdGUgaW50ZXJmYWNlIHJlZmVyZW5jZXMgZm9yIEdzdERldmljZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzg2CgoyMDE0LTA3LTA4IDExOjE3OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogVGhlcmUgaXMgbm8gZGVjb2RlYmluMiBhbnltb3JlLCBkb24ndCBwcmV0ZW5kIG90aGVyd2lzZQoKMjAxNC0wNy0wNyAxNjoxNDozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBmaXggZXJyb3Igc2V0dGluZyB3aGVuIHVyaSBpcyBpbnZhbGlkCgkgIEVsZW1lbnRzIHNob3VsZCBhbHdheXMgc2V0IHRoZSBHRXJyb3IKCjIwMTQtMDctMDYgMTI6MTM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBsaWJzOiBnc3RjaGVjazogY2hlY2sgdGhhdCBtdXRleCBpcyBsb2NrZWQgYmVmb3JlIGdfY29uZF93YWl0KigpIGlzIGNhbGxlZAoJICBTYW5pdHkgY2hlY2sgdG8gY2F0Y2ggcHJvYmxlbXMgaW4gdW5pdCB0ZXN0LgoKMjAxNC0wNy0wNiAxMjoxMjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGxpYnM6IGdzdGNoZWNrOiBpbml0IGFuZCBjbGVhciBnbG9iYWwgbXV0ZXggYW5kIGNvbmQgdmFyaWFibGVzCgoyMDE0LTA3LTA2IDEyOjA5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgdGVzdHM6IGZpeCBsb2NraW5nIGluIGdzdHBvbGwgdW5pdCB0ZXN0CgkgIFRoZSBtdXRleCBuZWVkcyB0byBiZSBsb2NrZWQgd2hlbiBnX2NvbmRfd2FpdCooKSBpcwoJICBjYWxsZWQuCgoyMDE0LTA3LTA1IDE2OjI0OjE4ICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHZpZGVvIGFuZCBiYXNlIGxpYnJhcnkgcGF0aHMgZnJvbSAtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI3NzAKCjIwMTQtMDctMDQgMTk6NDA6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogc3VwcHJlc3MgR0xpYiB3YXJuaW5ncyB3aGVuIGdzdC1pbnNwZWN0aW5nIGRlcHJlY2F0ZWQgcHJvcGVydGllcwoJICBHTGliIGluIGdpdCB3aWxsIHNwZXcgYSBnX3dhcm5pbmcoKSB3aGVuIGEgcHJvcGVydHkgbWFya2VkIGFzCgkgIGRlcHJlY2F0ZWQgdmlhIHBhcmFtIHNwZWMgZmxhZ3MgaXMgYWNjZXNzZWQuIFN1cHByZXNzIHRoaXMgYnkKCSAgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDE0LTA3LTAzIDEwOjExOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogV29yayBhcm91bmQgZy1pL3B5Z29iamVjdC9nanMgYnVnIHdpdGggfjAgaW4gZW51bXMKCSAgR1NUX01FU1NBR0VfQU5ZIHdhcyBjb25zaWRlcmVkIGEgbG9uZyBieSBweWdvYmplY3QgYW5kIGdqcywgYW5kIHRodXMKCSAgY291bGRuJ3QgYmUgdXNlZCBpbiBnc3RfYnVzX3BvbGwoKSBhbmQgc2ltaWxhciBBUElzIGFzIHRoZXkgZXhwZWN0IGFuCgkgIGludC10eXBlZCBlbnVtLgoJICBKdXN0IHVzZSAweGZmZmZmZmZmIGluc3RlYWQgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjYzMwoKMjAxNC0wNy0wMiAwODo0MToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBkb24ndCB1c2UgcG9zdC1HTGliIDIuMzIgQVBJIGluIGJ1ZmZlcmxpc3QgdGVzdAoJICBnX3B0cl9hcnJheV9pbnNlcnQoKSBpcyBHTGliID49IDIuNDAKCjIwMTQtMDctMDEgMTI6MjI6NTYgKzAyMDAgIEfDtnJhbiBKw7Zuc3NvbiA8Z29yYW5qbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCB1bmxvY2sgd2hpbGUgaXRlcmF0aW5nIG92ZXIgYWxsIHN0aWNreSBldmVudHMgZm9yIHJlbW92YWwKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGVuZCB1cCBnZXR0aW5nIHRoZSBldmVudCByZW1vdmVkIGZyb20gZWxzZXdoZXJlCgkgIGF0IHRoZSBzYW1lIHRpbWUgd2hpbGUgd2UncmUgdW5sb2NrZWQgZm9yIGdfb2JqZWN0X25vdGlmeSgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNTU2CgoyMDE0LTA3LTAxIDE5OjE3OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogUHJveHkgdGhlIGFjY2VwdC1jYXBzIHF1ZXJ5CgkgIFdlIGFsd2F5cyB3b3JrIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhlcmUncyBubyBwb2ludCBpbiBkb2luZwoJICBzb21ldGhpbmcgbW9yZSBjbGV2ZXIgaW4gYmFzZXRyYW5zZm9ybS4gQWxzbyB0aGUgYmFzZXRyYW5zZm9ybQoJICBjb2RlIGxlYWRzIHRvIHByb2JsZW1zIHdpdGggaW5jb21wbGV0ZSBjYXBzIGFuZCBkb3duc3RyZWFtCgkgIGVsZW1lbnRzIHRoYXQgdXNlIEdTVF9QQURfRkxBR19BQ0NFUFRfSU5URVJTRUNULgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNTU5CgoyMDE0LTA3LTAxIDExOjIxOjUzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlc2V0IFFvUyBvbiBzZWdtZW50IGV2ZW50CgkgIFRoaXMgYXZvaWRzIHNwdXJpb3VzIHdhcm5pbmdzIGFib3V0IHNsb3cgbWFjaGluZSB3aGVuIHVwc3RyZWFtCgkgIHNlbmRzIG5ldyBzZWdtZW50cyB3aXRob3V0IGZsdXNoaW5nLgoKMjAxNC0wNi0zMCAyMzozOToxOCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgaW50cm9zcGVjdGlvbjogQXNzb3J0ZWQgbWlub3IgaW50cm9zcGVjdGlvbiBhbmQgZG9jdW1lbnRhdGlvbiBmaXhlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNTM0CgoyMDE0LTA2LTMwIDA4OjU5OjE4ICswMDAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IFN0b3AgdXNpbmcgZ19jbGVhcl9wb2ludGVyKCkKCSAgV2UgZG9udCd0IHdhbnQgdG8gZGVwZW5kIG9uIEdMaWIgMi4zNCBmb3Igbm93LgoKMjAxNC0wNi0yOSAxOToxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBJbml0aWFsaXplIG1lbW9yeSBpbiB1bml0IHRlc3QgdG8gbWFrZSB2YWxncmluZCBoYXBweQoJICBXZSB3ZXJlIHdyaXRpbmcgdW5pdGlhbGl6ZWQgc3RhY2sgbWVtb3J5IHRvIHRoZSBmaWxlLgoKPT09IHJlbGVhc2UgMS4zLjkwID09PQoKMjAxNC0wNi0yOCAxMDo0NToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuOTAKCjIwMTQtMDYtMjggMTA6NDE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA2LTI3IDEwOjQ0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2Vtb25pdG9yOiBkb24ndCBmYWlsIHdoZW4gc3RhcnRlZCB3aXRob3V0IGFueSBmaWx0ZXJzCgkgIEp1c3Qgc2hvdyBhbGwgZGV2aWNlcyB0aGVuLgoKMjAxNC0wNi0yNyAxMDo0NDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSAgZGV2aWNlcHJvdmlkZXJmYWN0b3J5OiBoYW5kbGUgTlVMTCBjbGFzc2VzIGFyZ3VtZW50IGFuZCBtYXRjaCBhbnkKCjIwMTQtMDYtMjYgMjE6MDA6NDAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBBZGQgdW5pdCB0ZXN0cwoKMjAxNC0wNi0yNiAxNzoyMjoyNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRldmljZW1vbml0b3I6IEltcHJvdmUgZG9jdW1lbnRhdGlvbgoKMjAxNC0wNi0yNiAxNzoxMzoxMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZW1vbml0b3I6IE1ha2UgaXQgcG9zc2libGUgdG8gYWRkIG11bHRpcGxlIGZpbHRlcnMKCSAgRWFjaCBmaWx0ZXIgd2lsbCBpbmNsdWRlIGEgR3N0Q2FwcyBhbmQgYSBzZXQgb2YgY2xhc3NlcyB0byBtYXRjaAoKMjAxNC0wNi0yNiAxNjozMTo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBBZGQgcHJlLWNvbmRpdGlvbnMKCjIwMTQtMDYtMjYgMTU6MDg6NDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdERldmljZU1vbml0b3I6IFJlbmFtZSBmcm9tIEdzdEdsb2JhbERldmljZU1vbml0b3IKCjIwMTQtMDYtMjYgMTQ6Mjg6MDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIERldmljZVByb3ZpZGVyOiBSZW5hbWUgZnJvbSBEZXZpY2VNb25pdG9yCgoyMDE0LTA2LTI2IDE5OjMxOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZGF0YXF1ZXVlOiBIaWRlIGZyb20gYmluZGluZ3MKCSAgT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgdGhlaXIgb3duIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBtb3JlIGNvbnZlbmllbnQgdG8KCSAgdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzAzCgoyMDE0LTA2LTI2IDE5OjMwOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJICBxdWV1ZWFycmF5OiBIaWRlIGZyb20gYmluZGluZ3MKCSAgT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgdGhlaXIgb3duIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBtb3JlIGNvbnZlbmllbnQgdG8gdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzUwCgoyMDE0LTA1LTI4IDEwOjE0OjQ1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zCgkgIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkgY2FuIHRha2UgTlVMTCBtaW5pLW9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA4NzMKCjIwMTQtMDYtMjYgMTk6MDI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBBcHBsaWNhdGlvbiBhbmQgZWxlbWVudCBtZXNzYWdlcyBzaG91bGQgbm90IGhhdmUgTlVMTCBzdHJ1Y3R1cmVzCgkgIEl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHRoZW0uCgoyMDE0LTA2LTExIDE2OjE5OjAxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgc29tZSBtaXNzaW5nIGFsbG93LW5vbmUgYW5ub3RhdGlvbnMgdG8gaW4gcGFyYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTY6MDY6MTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBudWxsYWJpbGl0eSBhbm5vdGF0aW9ucyB0byBvdXQgYW5kIGlub3V0IHBhcmFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE1OjIxOjM0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyB0byByZXR1cm4gdmFsdWVzCgkgIFN1cHBvcnQgZm9yIChudWxsYWJsZSkgd2FzIGFkZGVkIHRvIEctSSBhdCB0aGUgc2FtZSB0aW1lIGFzIG51bGxhYmxlCgkgIHJldHVybiB2YWx1ZXMuICBQcmV2aW91cyB2ZXJzaW9ucyBvZiBHLUkgd2lsbCBub3QgbWFyayByZXR1cm4gdmFsdWVzIGFzCgkgIG51bGxhYmxlLCBldmVuIHdoZW4gYW4gKGFsbG93LW5vbmUpIGFubm90YXRpb24gaXMgcHJlc2VudCwgc28gaXQgaXMKCSAgbm90IG5lY2Vzc2FyeSB0byBhZGQgKGFsbG93LW5vbmUpIGFubm90YXRpb25zIGZvciBjb21wYXRpYmlsaXR5IHdpdGgKCSAgb2xkZXIgdmVyc2lvbnMgb2YgRy1JLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE3OjE1OjM5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgYmFzZTogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBmaXhlcyBhbmQgYWRkaXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDIKCjIwMTQtMDYtMTEgMTc6MTI6MjAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgYmFzZTogYWRkIChudWxsYWJsZSkgYW5ub3RhdGlvbnMgdG8gcmV0dXJuIHZhbHVlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQyCgoyMDE0LTA2LTI2IDE0OjA4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIGJ1ZmZlciBsaXN0IHRlc3QgY2FzZQoKMjAxNC0wNi0yNiAxMzoyNDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBwb3J0IGFuZCByZS1lbmFibGUgYnVmZmVyIGxpc3QgdGVzdHMKCSAgQW5kIHJlbW92ZSBzb21lIHdoaWNoIGRvbid0IGFwcGx5IGFueSBtb3JlLgoKMjAxNC0wNi0yNiAxMTo1ODowNCArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBlbmhhbmNlIHRoZSBnc3RjYXBzIHRlc3RfZmVhdHVyZXMgdG8gYWxzbyB0ZXN0IGdzdF9jYXBzX3NldF9mZWF0dXJlcygpCgkgIENvbXBsaW1lbnRzIG15IHByZXZpb3VzIHBhdGNoIGZvciBnc3RfY2Fwc19zZXRfZmVhdHVyZXMsIHdoaWNoIHdvdWxkCgkgIHByZXZpb3VzbHkgYXNzZXJ0IGFuZCBsZWFrIHRoZSBvbGQgR3N0Q2Fwc0ZlYXR1cmVzIGlmIHRoZSBjYXBzIGFscmVhZHkKCSAgaGFkIGEgR3N0Q2Fwc0ZlYXR1cmVzIGFuZCB5b3Ugd2VyZSB0cnlpbmcgdG8gcmVwbGFjZSBpdCB3aXRoIGEgbmV3IG9uZS4KCjIwMTQtMDYtMjYgMTE6MTY6MzQgKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1bnNldCB0aGUgcGFyZW50IHJlZmNvdW50IG9mIHRoZSBvbGQgZmVhdHVyZXMgYmVmb3JlIGZyZWVpbmcgdGhlbSBpbiBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKQoJICBPdGhlcndpc2UgZ3N0X2NhcHNfZmVhdHVyZXNfZnJlZSgpIGFzc2VydHMgYW5kIHRoZSBmZWF0dXJlcyBzdHJ1Y3R1cmUgaXMgbGVha2VkCgoyMDE0LTA2LTE2IDE5OjMwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgcmV0dXJuaW5nIF9PSyBmb3IgX05PVF9MSU5LRUQKCSAgV2hlbiB0aGUgcGFyc2VyIHJlY2VpdmVzIG5vbi1hbGlnbmVkIHBhY2tldHMgaXQgY2FuIHB1c2ggYSBidWZmZXIKCSAgYW5kIGdldCBhIG5vdC1saW5rZWQgcmV0dXJuIHdoaWxlIHN0aWxsIGxlYXZpbmcgc29tZSBkYXRhIHN0aWxsIHRvCgkgIGJlIHBhcnNlZC4gVGhpcyByZW1haW5pbmcgZGF0YSB3aWxsIG5vdCBmb3JtIGEgY29tcGxldGUgZnJhbWUgYW5kCgkgIHRoZSBzdWJjbGFzcyBsaWtlbHkgcmV0dXJucyBfT0sgYW5kIGJhc2VwYXJzZSB3b3VsZCB0YWtlIHRoYXQKCSAgYXMgdGhlIHJldHVybiwgd2hpbGUgaXQgdGhlIGVsZW1lbnQgaXMgYWN0dWFsbHkgbm90LWxpbmtlZC4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IHN0b3JpbmcgdGhlIGxhc3QgZmxvdy1yZXR1cm4gZnJvbSBhIHB1c2gKCSAgYW5kIHVzaW5nIHRoYXQgaWYgYSBwYXJzaW5nIG9wZXJhdGlvbiBkb2Vzbid0IHJlc3VsdCBpbiBkYXRhIGJlaW5nCgkgIGZsdXNoZWQgb3Igc2tpcHBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTQ3NAoKMjAxNC0wNi0yNSAxMTo0MDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBlbGVtZW50czogZml4IGNvcHlyaWdodCBhbmQgcmVtb3ZlIGd0ay1kb2MgY2h1bmsKCSAgVHJpdmlhbCBhcyBpdCBtYXkgYmUsIHRoaXMgY29kZSB3YXMgbW9zdGx5IGNvcGllZCBmcm9tCgkgIHNvbWV3aGVyZSBlbHNlLiBUaGUgZ3RrLWRvYyBjaHVuayBpcyBub3QgbmVlZGVkLCBzaW5jZQoJICBpdCdzIG5vdCBwdWJsaWMgQVBJLgoKMjAxNC0wNi0wMiAyMjowNzo1MiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBJZ25vcmUgc2VlayBlcnJvciBvbiBub24tc2Vla2FibGUgZmlsZXMKCSAgVGhpcyBtYWtlIGl0IHdvcmtzIHdpdGggRklGT3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzExNzYKCjIwMTQtMDYtMjIgMTk6MzY6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4zID09PQoKMjAxNC0wNi0yMiAxODowNzo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMwoKMjAxNC0wNi0yMiAxNzoxNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDYtMjIgMTQ6MjM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3NyLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDYtMjIgMTI6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2NhcHNfaXNfYW55KCkgYW5kIF9pc19lbXB0eSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzA0CgoyMDE0LTA2LTIyIDEyOjUwOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZ3N0X2NhcHNfaXNfYW55KCkgc2hvdWxkIHJldHVybiBUUlVFIG9yIEZBTFNFCgkgIE5vdCBzb21lIGZsYWcgdmFsdWUgaW5zdGVhZCBvZiBUUlVFLiBGaXhlcyBjb2RlIGxpa2UKCSAgZ3N0X2NhcHNfaXNfYW55KCkgPT0gVFJVRS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzE3MDQKCjIwMTQtMDYtMDEgMTY6NTY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZTogcmVuYW1lICJrbGFzcyIgYW5kIGdldF9rbGFzcygpIHRvICJkZXZpY2UtY2xhc3MiIGFuZCBfZ2V0X2RldmljZV9jbGFzcygpCgkgIFRoZXJlJ3Mgc29tZSBwcmVjZWRlbnQgaW4gR3N0RWxlbWVudEZhY3RvcnksIGJ1dCBhCgkgICJrbGFzcyIgcHJvcGVydHkganVzdCBzZWVtcyB3ZWlyZC4KCjIwMTQtMDYtMjAgMTg6MzQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IGNhcHNuZWdvOiBhZGQgLS1sb29wcyBjb21tYW5kIGxpbmUgb3B0aW9uCgkgIEFuZCBkZWZhdWx0IHRvIDUwIGxvb3BzLgoKMjAxNC0wNi0yMCAxNzoxNDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBjYXBzbmVnbzogdXNlIEdPcHRpb25Db250ZXh0IGZvciBvcHRpb24gcGFyc2luZwoKMjAxNC0wNi0xOSAxMjoxMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIGdzdHZhbHVlIHRlc3RzCgkgIENhbGxpbmcgR1NUX1ZBTFVFX0hPTERTXyooJnYpIG5vdyByZXN1bHRzIGluIGEgY29tcGlsZXIKCSAgd2FybmluZyBhYm91dCB2YWx1ZSE9TlVMTCBhbHdheXMgYmVpbmcgZmFsc2UsIHNvIGNoZWNrCgkgIHR5cGUgZGlyZWN0bHkgaW4gdGhvc2UgY2FzZXMuCgoyMDE0LTA2LTE3IDIyOjQ1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogc2ltcGxpZnkgR1NUX1ZBTFVFX0hPTERTIGZvciBvdXIgYm94ZWQgYW5kIGZ1bmRhbWVudGFsIHR5cGVzCgkgIEJveGVkIHR5cGVzIGNhbid0IGJlIGRlcml2ZWQgZnJvbSwgYW5kIHdlIGRvbid0IHN1cHBvcnQKCSAgZGVyaXZpbmcgZnJvbSBvdXIgc3BlY2lhbCBmdW5kYW1lbnRhbCB0eXBlcyAodGhlIGNvZGUKCSAgY2hlY2tzIGZvciBHVHlwZSBlcXVhbGl0eSBpbiBtb3N0IHBsYWNlcy4KCjIwMTQtMDYtMjAgMTY6NTU6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEdzdERldmljZTogRG9jdW1lbnQgR3N0RGV2aWNlIGFuZCByZWxhdGVkIGNsYXNzZXMKCjIwMTQtMDYtMTYgMTM6NDc6NTUgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YS5wYW5kYUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBGaXggZnVubmVsIEVPUyBoYW5kbGluZyBhbmQgd3JvbmcgdW5pdHRlc3QKCSAgV2hlbiBubyBkYXRhIGlzIGNvbWluZyBmcm9tIHNpbmtwYWRzIGFuZCBlb3MgZXZlbnRzCgkgIGFycml2ZWQgYXQgb25lIG9mIHRoZSBzaW5rcGFkLCBmdW5uZWwgZm9yd2FyZHMgdGhlIEVPUwoJICBldmVudCB0byBkb3duc3RyZWFtLiBJdCBmb3J3YXJkcyB0aGUgRU9TIGJlY2F1c2UgbGFzdHNpbmsgcGFkCgkgIGlzIE5VTEwuIEFsc28gdGhlIHVuaXQgdGVzdGNhc2Ugb2YgdGhlIGZ1bm5lbCBpcyBub3QgY2hlY2tpbmcKCSAgdGhlIGNvcnJlY3QgYmVoYXZpb3IgYXMgaXQgc2hvdWxkLiBUaGUgdW5pdCB0ZXN0IGNhc2Ugc2hvdWxkCgkgIGZhaWwgaWYgb25lIG9mIHRoZSBzaW5rIHBhZCBoYXMgYWxyZWFkeSBFT1MgcHJlc2VudCBvbiBpdCBhbmQKCSAgd2UgYXJlIHRyeWluZyB0byBwdXNoIG9uZSBtb3JlIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTcxNgoKMjAxNC0wNi0xOSAwODowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogb3B0aW1pc2UgY2hlY2tzIGZvciBsaXN0cwoJICBPdXIgZnVuZGFtZW50YWwgdHlwZXMgYXJlIG5vbi1kZXJpdmFibGUsIHNvIHdlIGNhbgoJICBqdXN0IGNoZWNrIGZvciBlcXVhbGl0eS4gQWxzbyBhdm9pZCBkb2luZyB0aGUgc2FtZQoJICBjaGVjayBtdWx0aXBsZSB0aW1lcyBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuCgoyMDE0LTA2LTE5IDA4OjA2OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiB1c2UgZ19hc3NlcnQoKSBpbiBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgYWxyZWFkeS1jaGVja2VkIHRoaW5ncwoJICBTbyB0aGVzZSBnZXQgY29tcGlsZWQgb3V0IGZvciByZWxlYXNlcy4KCjIwMTQtMDYtMTkgMDg6MDU6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBpbnRlcm5hbCBfY2FuX2NvbXBhcmVfdW5jaGVja2VkKCkKCjIwMTQtMDYtMTkgMDg6MDM6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBpbnRlcm5hbCBfbGlzdF9jb25jYXQoKSB0aGF0IHRha2VzIG93bmVyc2hpcCBvZiBpbnB1dCB2YWx1ZXMKCSAgQXZvaWRzIHVubmVjZXNzYXJ5IGNvcGllcy4KCjIwMTQtMDYtMTggMTk6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogc2ltcGxpZnkgdmFsdWUgdHlwZSBjaGVja3MgaW4gZ2V0dGVycwoJICBKdXN0IGNoZWNrIGZvciBHVHlwZSBlcXVhbGl0eSBpbiBjb21tb24gY2FzZXMuCgoyMDE0LTA2LTE5IDA5OjI5OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgYSBGSVhNRSAyLjAgZm9yIGEgZnJhY3Rpb24gcmFuZ2VzIG9wdGltaXphdGlvbgoJICBDdXJyZW50bHkgd2UgbGVhayB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlbSBhcyB0d28gR1ZhbHVlcyB0aGF0CgkgIGNvbnRhaW4gYSBmcmFjdGlvbi4gV2l0aG91dCB0aGlzIHdlIGNvdWxkIHN0b3JlIGZyYWN0aW9uIHJhbmdlcyBhcwoJICBkYXRhWzBdID0gKG1pbl9uIDw8IDMyKSB8IChtaW5fZCkKCSAgZGF0YVsxXSA9IChtYXhfbiA8PCAzMikgfCAobWF4X2QpCgkgIGFuZCB3b3VsZG4ndCByZXF1aXJlIGFuIGFkZGl0aW9uYWwgYWxsb2NhdGlvbiBwZXIgcmFuZ2UuCgoyMDE0LTA2LTE5IDA5OjIzOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogTWFrZSBzdXJlIHRvIGNhc3QgaW50IHJhbmdlIHZhbHVlcyB0byBndWludHMgYmVmb3JlIHN0b3JpbmcgdGhlbQoJICBPdGhlcndpc2UgbmVnYXRpdmUgdmFsdWVzIHdpbGwgc2V0cyBhbGwgb2YgdGhlIDY0IGJpdHMgZHVlIHRvIHR3bydzCgkgIGNvbXBsZW1lbnQncyBkZWZpbml0aW9uIG9mIG5lZ2F0aXZlIHZhbHVlcy4KCSAgQWxzbyBhZGQgYSB0ZXN0IGZvciBuZWdhdGl2ZSBpbnQgcmFuZ2VzLgoKMjAxNC0wNi0xOSAwNzo1NzoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTQtMDYtMTkgMDk6MDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFN0b3JlIGludGVnZXIgcmFuZ2VzIGRpcmVjdGx5IGluIGEgR1ZhbHVlIHdpdGhvdXQgYWRkaXRpb25hbCBhbGxvY2F0aW9uCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBzYXZlIHNvbWUgYWxsb2NhdGlvbnMuIE5leHQgc3RlcCB0byBkbyB0aGlzCgkgIHdpdGggZnJhY3Rpb24gcmFuZ2VzIHRvby4KCjIwMTQtMDYtMTkgMDg6NDM6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdF9wcml2YXRlOiBGaXggZHVwbGljYXRlIGRlZmluaXRpb24KCjIwMTQtMDYtMTkgMDg6MDU6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgZ3N0OiBTdG9yZSBtb3JlIGJhc2ljIHR5cGUgR1R5cGVzIGluIHZhcmlhYmxlcwoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gY2hhbmdlIGEgZnVuY3Rpb24gY2FsbCB0byBhIHZhcmlhYmxlIGFjY2VzcwoJICBmb3IgYWxsIG91ciBiYXNpYyB0eXBlcy4KCjIwMTQtMDYtMTkgMDg6MDQ6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBTdG9yZSBvdXIgZnVuZGFtZW50YWwgdHlwZSBHVHlwZXMgaW4gdmFyaWFibGVzCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBjaGFuZ2UgYSBmdW5jdGlvbiBjYWxsIHRvIGEgdmFyaWFibGUgYWNjZXNzCgkgIGZvciBhbGwgb3VyIGJhc2ljIHR5cGVzLgoKMjAxNC0wNi0xNyAwNzozMTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFNwZWVkIHVwIGdzdF92YWx1ZV9pbnRlcnNlY3QvX3N1YnRyYWN0CgkgIEJvdGggZ3N0X3ZhbHVlX2ludGVyc2VjdCBhbmQgZ3N0X3ZhbHVlX3N1YnRyYWN0IHdpbGwgY2FsbAoJICBnc3RfdmFsdWVfY29tcGFyZSBpZiBvbmUgb2YgdGhlaXIgYXJndW1lbnRzIGlzbid0IGEgbGlzdC4KCSAgZ3N0X3ZhbHVlX2NvbXBhcmUgd2lsbCB0aGVuIHJlLWRvIGEgY2hlY2sgdG8gc2VlIGlmIG9uZSBvZgoJICB0aGUgYXJndW1lbnRzIGlzIGEgbGlzdCAoZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgY29tcGFyaW5nIGEgdW5pdGFyeQoJICB2YWx1ZSB3aXRoIGEgbGlzdCBvZiBsZW5ndGggMSkuCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIHZhcmlvdXMgR19WQUxVRV9IT0xEUyByZXByZXNlbnQgYW4gZXhwZW5zaXZlCgkgIGFtb3VudCBvZiBjYWxsaW5nIGdzdF92YWx1ZV9jb21wYXJlIChhbG1vc3QgaGFsZiBvZiBpdCkgdG8gc2VlIGlmCgkgIHRoZSBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGxpc3QuIFRoZXNlIGNoZWNrcyBjYW4gYmUgZG9uZSB3aXRob3V0CgkgIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBhcmd1bWVudHMgYXJlbid0IGxpc3RzLgoJICAqIENyZWF0ZSBhIG5ldyAibm9saXN0IiBnc3RfdmFsdWVfY29tcGFyZSB3aGljaCBhdm9pZHMgdGhhdCBzcGVjaWFsCgkgIGNhc2UgY29tcGFyaXNpb24KCSAgQmVuY2htYXJrczoKCSAgdmFsZ3JpbmQvY2FsbGdyaW5kOiBhdmVyYWdlIHNwZWVkdXAgaW4gaW5zdHJ1Y3Rpb24gY2FsbHMgZm9yCgkgIGdzdF92YWx1ZV9pbnRlcnNlY3QgYW5kIGdzdF92YWx1ZV9zdWJ0cmFjdCBpcyBhcm91bmQgNTYlIChNYWtlcyA2MyUKCSAgb2YgdGhlIGNhbGxzIGl0IHVzZWQgdG8gdGFrZSBwcmV2aW91c2x5KQoJICB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvOiBXaXRoIGRlZmF1bHQgc2V0dGluZ3MgKGRlcHRoIDQsIGNoaWxkcmVuIDMKCSAgNjA3IGVsZW1lbnRzKSwgdGltZSB0YWtlbiBmb3IgdHJhbnNpdGlvbiBmcm9tIFJFQURZIHRvIFBBVVNFRDoKCSAgQmVmb3JlIDogMDAuMzkxNTE5MTUzCgkgIEFmdGVyICA6IDAwLjIyMDM5NzQ5MgoJICA1NiUgb2YgdGhlIHRpbWUgcHJldmlvdXNseSB1c2VkLCArNzclIHNwZWVkdXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTc1NgoKMjAxNC0wNi0xNyAxNDozOTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgc29tZSBjcnVmdCBmcm9tIHRoZSBidWZmZXJsaXN0IHRlc3QKCSAgQnVmZmVycyBubyBsb25nZXIgY2FycnkgY2FwcywgYW5kIGJ1ZmZlcmxpc3RzIGRvbid0IGhhdmUKCSAgZ3JvdXBzIHdoZXJlIGJ1ZmZlcnMgbWF5IG5lZWQgdG8gYmUgbWVyZ2VkIGludG8gb25lIGFueSBtb3JlLgoKMjAxNC0wNi0xNiAyMDozMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgZ3N0X2J1ZmZlcl9saXN0X3JlbW92ZSgpCgoyMDE0LTA2LTE2IDIwOjI5OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGJ1ZmZlciBsZWFrIGluIF9yZW1vdmUoKQoKMjAxNC0wNi0xNiAwOToxODo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogZml4IGctaSB0cmFuc2ZlciBhbm5vdGF0aW9ucwoKMjAxNC0wNi0xNiAwODo0MTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IEZpeGVkIEdCb3hlZENvcHlGdW5jCgkgIEknbGwganVzdCBxdW90ZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBtYW4gaW4gdGhlIHdvcmxkOgoJICAiSSBkb24ndCB1c3VhbGx5IHB1c2ggY29tbWl0cywgYnV0IHdoZW4gSSBkbyBJIGRvbid0IGNvbXBpbGUgaXQKCSAgZmlyc3QiCgoyMDE0LTA2LTE0IDE2OjMwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogc29tZSBkb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMKCjIwMTQtMDYtMTQgMTY6Mjg6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgZXhwb3J0cyBmb3IgbmV3IGdldF90eXBlKCkgZnVuY3Rpb24KCjIwMTQtMDYtMTQgMTE6MzE6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGtlZXAgYSByZWYgdG8gdGhlIHBhZHMgd2UncmUgdXNpbmcKCSAgTmVlZGVkIGZvciB1c2UgdmlhIHRoZSBib3hlZCB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzU1CgoyMDE0LTA2LTE0IDEwOjU0OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYm94ZWQgdHlwZSBmb3IgYmluZGluZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1NQoKMjAxNC0wNi0xMSAxNjoyODo1MSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgaW50cm9zcGVjdGlvbjogbWlub3IgYW5ub3RhdGlvbiBhZGRpdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MQoKMjAxNC0wNi0xMSAxOTowODowNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IGluY2x1ZGUgZ3N0dmVyc2lvbi5oIGluIEdJUiBnZW5lcmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMwMjEKCjIwMTQtMDYtMTAgMTA6MjM6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IFVzZSBjb25jaXN0YW50IGRlcmVmZW5jZSBtZXRob2QKCSAgVGhpcyBpcyBtaW5vciBzdHlsZSBmaXggdG8gbm90IG1peCAqdmFyIGFuZCB2YXJbTl0uCgoyMDE0LTA2LTEwIDA5OjM1OjM4IC0wNDAwICBTdW5naG8gQmFlIDxiYXZlci5iYWVAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBVc2UgcG9pbnRlciBpbnN0ZWFkIG9mIGluZGV4IGFjY2VzcwoJICBDdXJyZW50bHkgdGhlIHNjYW4gdXNlcyBCb3llci1tb29yZSBtZXRob2QgYW5kIGl0cyBwZXJmb3JtYW5jZSBpcyBnb29kLgoJICBidXQsIGl0IGNhbiBiZSBvcHRpbWl6ZWQgZnJvbSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB2aWV3LgoJICBUaGUgb3JpZ2luYWwgc2NhbiBjb2RlIGlzIGltcGxlbWVudGVkIGJ5IGJ5dGUgYXJyYXkgYW5kIGluZGV4LWJhc2VkIGFjY2Vzcy4KCSAgSW4gX3NjYW5fZm9yX3N0YXJ0X2NvZGUoKSwgdGhlIGluZGV4IGlzIGluY3JlYXNpbmcgZnJvbSBzdGFydCB0byBlbmQgYW5kIHRoZQoJICBiYXNlIGFkZHJlc3Mgb2YgdGhlIGJ5dGUgYXJyYXkgaXMgcmVmZXJyZWQgdG8gYXMgcmV0dXJuIHZhbHVlLgoJICBJbiB0aGUgY2FzZSwgaW5kZXgtYmFzZWQgYWNjZXNzIGNhbiBiZSByZXBsYWNlZCBieSBwb2ludGVyIGFjY2Vzcywgd2hpY2gKCSAgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgYnkgcmVtb3ZpbmcgaW5kZXgtcmVsYXRlZCBvcGVyYXRpb25zLgoJICBJdHMgcGVyZm9ybWFjZSBpcyBlbmhhbmNlZCBieSBhcHByb3hpbWF0ZWx5IDglIG9uIGFybS1iYXNlZCBlbWJlZGRlZCBkZXZpY2VzLgoJICBBbHRob3VnaCBpdCBzZWVtcyB0cml2aWFsLCBpdCBjYW4gYWZmZWN0IHRoZSBvdmVyYWxsIHBlcmZvcm1hbmNlIGJlY2F1c2UgdGhlCgkgIF9zY2FuX2Zvcl9zdGFydF9jb2RlKCkgZnVuY3Rpb24gaXMgdmVyeSBvZnRlbiBjYWxsZWQgd2hlbiBILjI2NC9ILjI2NSB2aWRlbyBpcwoJICBwbGF5ZWQuCgkgIEluIGFkZGl0aW9uLCB0aGUgdGVjaG5pcXVlIGNhbiBhcHBseSBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgYW5kIGl0IGlzIGdvb2QgaW4KCSAgdmlldyBvZiByZWFkYWJpbGl0eSBhbmQgbWFpbnRhaW5hYmlsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNDQyCgoyMDE0LTA2LTA3IDEwOjEzOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogcHJldHRpZnkgaGVhZGVyCgoyMDE0LTA2LTA3IDA5OjQ2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBxdWV1ZWFycmF5IGV4cGFuc2lvbiBmcm9tIDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM0OQoKMjAxNC0wNi0wNiAxNjozNjowMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGV4cGFuZGluZyBzaXplIG9mIHF1ZXVlIGZyb20gMQoJICBXaXRob3V0IHdlIHdvdWxkIG5vdCBhY3R1YWxseSBleHBhbmQgYW5kIGFjY2VzcwoJICBtZW1vcnkgYmV5b25kIHRoZSBhbGxvY2F0ZWQgcmVnaW9uIGZvciB0aGUgYXJyYXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNDkKCjIwMTQtMDYtMDUgMTY6NTU6MTUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBjbGVhciB1cCBkb2N1bWVudGF0aW9uIG9mIGdzdF9kYXRhX3F1ZXVlX25ldwoJICBUaGUgZ3BvaW50ZXIgYXJndW1lbnQgaXMgcGFzc2VkIHRvIGFsbCB0aHJlZSBjYWxsYmFja3MsIG5vdCBqdXN0IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTMwMgoKMjAxNC0wNS0zMCAwMDoxNzowNiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIGludHJvc3BlY3Rpb246IGZpeCBzb21lIG1pbm9yIGFubm90YXRpb24gYnVncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTgyCgoyMDE0LTA2LTA1IDEyOjM4OjIwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgYmFzZTogdXNlIGNvcnJlY3Qgc3ludGF4IGluIGRvY3VtZW50YXRpb24gbW9yZSBjb25zaXN0ZW50bHkKCSAgUHJldmlvdXNseSwgbWFueSBjb25zdGFudHMgd2VyZSBwcmVmaXhlZCB3aXRoICMgb3IgdW5wcmVmaXhlZCwKCSAgc29tZSBmdW5jdGlvbnMgYW5kIG1hY3JvcyB3ZXJlIHByZWZpeGVkIHdpdGggIyBpbnN0ZWFkIG9mIHN1ZmZpeGVkCgkgIHdpdGggKCksIGV0Yy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTI5MwoKMjAxNC0wNS0wNyAxODoyNjozOCArMDgwMCAgemhvdW1pbmcgPHptYWZveEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFBhc3MgcmF0ZSBvZiBpbnB1dCBzZWdtZW50IHRvIG91dHB1dCBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk3MDEKCjIwMTQtMDQtMDcgMTQ6NDk6NTkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGdzdGJ1ZmZlcjogZmFjdG9yIHRocmVlIGZsYWdzLXRvLXN0cmluZyBsb29wcwoKMjAxNC0wNi0wMyAyMzo0Mjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgcHJpbnRpbmcgZGF0ZXRpbWVzIHdvcmsgd2l0aCBHU1RfUFRSX0ZPUk1BVAoKMjAxNC0wNi0wMyAyMzozODoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkYXRldGltZTogY2hhbmdlIGludGVybmFsIGltcGxlbWVudGF0aW9uIHRvIG1pbmkgb2JqZWN0CgkgIEFuZCBtb3ZlIHR5cGUgc3R1ZmYgZnJvbSBHc3RWYWx1ZSB0byBHc3REYXRlVGltZS4KCjIwMTQtMDYtMDMgMjI6MTk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTQtMDYtMDMgMjI6MTI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBpbXByb3ZlIHN0YXJ0L3N0b3AgaW4gYnVmZmVyaW5nIHF1ZXJ5CgkgIFRoZSBzdGFydCBhbmQgc3RvcCBzaG91bGQgcmVwcmVzZW50IHRoZSBjdXJyZW50bHkgZG93bmxvYWRpbmcgcmVnaW9uLgoJICBUaGUgZXN0aW1hdGVkLXRvdGFsIHNob3VsZCByZXByZXNlbnQgdGhlIHJlbWFpbmluZyB0aW1lIHRvIGRvd25sb2FkCgkgIHRoZSBjdXJyZW50bHkgZG93bmxvYWRpbmcgcmVnaW9uLiBUaGlzIG1ha2VzIGl0IGEgbG90IG1vcmUgdXNlZnVsCgkgIGZvciBhcHBsaWNhdGlvbnMgYmVjYXVzZSB0aGV5IGNhbiB0aGVuIHVzZSB0aG9zZSB2YWx1ZXMgdG8gdXBkYXRlCgkgIHRoZSBmaWxsIHJlZ2lvbiBhbmQgdXNlIHRoZSBlc3RpbWF0ZWQgdGltZSB0byBkZWxheSBwbGF5YmFjay4KCSAgVXBkYXRlIHRoZSBkb2NzIHdpdGggdGhpcyBjbGFyaWZpY2F0aW9uLgoKMjAxNC0wNC0wNyAxNDozNTowNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhZGQgc3RhdGljIGFuZCBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZQoKMjAxNC0wNC0wNyAxNDozMToxNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBmaXggcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdwoJICBDb3Zlcml0eSAxMDM3MTU1CgoyMDE0LTA2LTAzIDE0OjQ5OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHJlc2V0IHJlYWQgYW5kIHdyaXRlIHBvc2l0aW9ucwoJICBSZXNldCB0aGUgcmVhZCBhbmQgd3JpdGUgcG9zaXRpb25zIHJpZ2h0IGFmdGVyIHdlIG9wZW4gdGhlIGZpbGUgb3IgZmx1c2gKCSAgaXQuIFdlIGFyZSBhbHNvIGluIHRoZSBidWZmZXJpbmcgc3RhdGUgd2l0aCAwIHBlcmNlbnQgYnVmZmVyZWQgd2hlbiB3ZQoJICBzdGFydC4KCjIwMTQtMDYtMDMgMTQ6NDc6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZmlyc3QgaGFuZGxlIGFsbCBtaW5pb2JqZWN0cywgdGhlbiBHT2JqZWN0cwoJICBGaXJzdCBoYW5kbGUgYWxsIG1pbmlvYmplY3RzIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIHRoZSBmaXJzdAoJICBmaWVsZCBwb2ludGVyIGFuZCBsb29rIGF0IHRoZSBHVHlwZS4gV2l0aCB0aGUgcmVjZW50IGdsaWIgY2hhbmdlIHRvCgkgIHNwZWVkIHVwIEdfSVNfT0JKRUNULCB0aGlzIGNhdXNlcyBjcmFzaGVzIG9uIG1pbmlvYmplY3RzIG90aGVyd2lzZS4KCjIwMTQtMDYtMDMgMTQ6NDY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogR3N0RGF0ZVRpbWUgZG9lcyBub3QgaGF2ZSBhIEdUeXBlIGFzIGZpcnN0IGZpZWxkCgkgIEdzdERhdGVUaW1lIGRvZXMgbm90IGhhdmUgdGhlIEdUeXBlIGFzIHRoZSBmaXJzdCBmaWVsZCBzbyB3ZSBjYW4ndCB1c2UKCSAgaXQgdG8gZGV0ZWN0IGl0cyB0eXBlLgoKMjAxNC0wNi0wMyAxNDo0NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgbWFjcm9zIHRvIGNoZWNrIHR5cGVzCgkgIFVzZSB0aGUgbWFjcm9zIHRvIGNoZWNrIHRoZSB0eXBlIG9mIG9iamVjdHMgaW5zdGVhZCBvZiBkaXJlY3RseSBwb2tpbmcKCSAgYXQgdGhlIGZpcnN0IGZpZWxkLgoKMjAxNC0wNi0wMSAyMzo1MToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IGNvbm5lY3Qgc3luYy1tZXNzYWdlIHNpZ25hbCBvbiB0aGUgcmlnaHQgb2JqZWN0CgkgIEZpeGVzIGNyaXRpY2FscyBhdCBydW50aW1lIGFuZCBtYWtlcyBzdHVmZiBhY3R1YWxseSB3b3JrLgoKMjAxNC0wNS0zMSAxNzozNTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBLZWVwIHN0aWxsIG1lYW5pbmdmdWxsIHBlbmRpbmcgZXZlbnRzIG9uIEZMVVNIX1NUT1AKCSAgT25seSBFT1MgYW5kIHNlZ21lbnQgc2hvdWxkIGJlIGRlbGV0ZWQgaW4gdGhhdCBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODY4CgoyMDE0LTA1LTMwIDA5OjEzOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgUmV2ZXJ0ICJtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk2MzYxZTliNWM1ZDAwZGM3NzEyZmYzYTlhY2ZiZTEwZGY3Y2Q5ZmUuCgkgIFRoaXMgd2FzIG5vdCBzdXBwb3NlZCB0byBiZSBwdXNoZWQgeWV0IQoKMjAxNC0wNS0zMCAwOToxMjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IEl0J3MgcG9vbCwgbm90IHBvby4uLiBldmVuIHdoZW4gdGFsa2luZyBhYm91dCBmbHVzaGluZwoKMjAxNC0wNS0yOCAxMDoxNDo0NSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucwoJICBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpIGNhbiB0YWtlIE5VTEwgbWluaS1vYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwODczCgoyMDE0LTA1LTMwIDAxOjQyOjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGZpeCBsZWFrcwoKMjAxNC0wNS0yOSAxNDo1NDozNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBjb252ZXJ0IE5VTEwsIFRSVUUsIGFuZCBGQUxTRSB0byAlTlVMTCwgJVRSVUUsIGFuZCAlRkFMU0UKCSAgVGhpcyBzaG91bGQgaGVscCBpbXByb3ZlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGZvcgoJICBsYW5ndWFnZXMgb3RoZXIgdGhhbiBDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTYxCgoyMDE0LTA1LTMwIDAwOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggdHlwZSBpbiBHc3RPYmplY3QgZG9jcwoKMjAxNC0wNS0yOSAxNTowNDo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggZ3N0X2J1ZmZlcl9wb29sX2hhc19vcHRpb24oKSBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NjIKCjIwMTQtMDUtMjkgMTQ6MDc6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc2V0IHBhZHMgbmVlZC1wYXJlbnQgZmxhZyB0byBmYWxzZSB3aGVuIHJlbW92aW5nCgkgIFdoZW4gYSBwYWQgaXMgYWRkZWQgdGhlIG5lZWQtcGFyZW50IGZsYWcgaXMgc2V0IHRvIHRydWUsIHNvIHdoZW4KCSAgdGhleSBhcmUgcmVtb3ZlZCB0aGUgZmxhZyBzaG91bGQgYmUgc2V0IGJhY2sgdG8gZmFsc2UKCSAgVGhpcyB3YXMgcHJldmVudGluZyBHc3RQYWRzIHRvIGJlIHJldXNlZCBpbiBlbGVtZW50cyAocmVtb3ZlZCBhbmQKCSAgbGF0ZXIgcmUtYWRkZWQpLiBBIHVuaXQgdGVzdHMgd2FzIGFkZGVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMKCSAgd29ya2luZyBub3cuCgkgIFRoZSB1c2UgY2FzZSBpcyB0c2RlbXV4IHRoYXQgaGFzIGEgcHJvZ3JhbS1udW1iZXIgcHJvcGVydHkgYW5kCgkgIGFsbG93cyB0aGUgdXNlciB0byBzd2l0Y2ggcHJvZ3JhbXMuIEluIG9yZGVyIHRvIGRvIHRoYXQgdHNkZW11eAoJICB3aWxsIHJlbW92ZSB0aGUgcGFkcyBvZiB0aGUgY3VycmVudCBwcm9ncmFtIGFuZCBhZGQgZnJvbSB0aGUgbmV3CgkgIG9uZXMuIFRoZSByZW1vdmVkIHBhZHMgYXJlIGtlcHQgaW4gdGhlIGRlbXV4ZXIgZm9yIGxhdGVyIGlmIHRoZQoJICB1c2VyIHNlbGVjdHMgdGhlIG9sZCBwcm9ncmFtIGFnYWluLgoKMjAxNC0wNS0yNyAwODowOTozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcG9zdCBidWZmZXJpbmcgbWVzc2FnZSB3aGVuIHF1ZXVlcyBmbHVzaAoJICBUaGUgYnVmZmVyaW5nIHN0YXR1cyBnb2VzIGJhY2sgdG8gMCwgc28gaW5mb3JtIHRoZSBhcHBsaWNhdGlvbiBhYm91dCBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NDIzCgoyMDE0LTA1LTI5IDE0OjM5OjM2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogSWdub3JlIFZJTSBzd2FwIGZpbGVzCgoyMDE0LTA1LTI3IDEzOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdHdvIG1pbm9yIGRvY3MgZml4ZXMKCjIwMTQtMDUtMjcgMTA6MDk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGJlYXV0aWZ5IGhlYWRlcnMgYSBsaXR0bGUKCjIwMTQtMDUtMjcgMTA6MDU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBkb2NzOiBhZGQgR3N0Rmxvd0NvbWJpbmVyCgoyMDE0LTA1LTI3IDA5OjU1OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkgIGJhc2U6IGluY2x1ZGUgZmxvd2NvbWJpbmVyIGhlYWRlciBmcm9tIGJhc2UuaAoKMjAxNC0wNS0yNiAxMjozMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Zsb3djb21iaW5lci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGZsb3djb21iaW5lcjogYWRkIEdzdEZsb3dDb21iaW5lcgoJICBBZGRzIGEgdXRpbGl0eSBzdHJ1Y3QgdGhhdCBpcyBjYXBhYmxlIG9mIHN0b3JpbmcgYW5kIGFnZ3JlZ2F0aW5nIGZsb3cgcmV0dXJucwoJICBhc3NvY2lhdGVkIHdpdGggcGFkcy4KCSAgVGhpcyB3YXkgYWxsIGRlbXV4ZXJzIHdpbGwgaGF2ZSBhIHN0YW5kYXJkIGZ1bmN0aW9uIHRvIHVzZSBhbmQgaGF2ZSB0aGUKCSAgc2FtZSBleHBlY3RlZCByZXN1bHRzLgoJICBJbmNsdWRlcyB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTIyNAoKMjAxNC0wNS0yMyAxMzoyNTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBzdG9yZSBsYXN0IGZsb3cgcmV0dXJuIGFuZCBwcm92aWRlIGFjZXNzb3IgZnVuY3Rpb24KCSAgU3RvcmVzIHRoZSBsYXN0IHJlc3VsdCBvZiBhIGdzdF9wYWRfcHVzaCBvciBhIHB1bGwgb24gdGhlIEdzdFBhZCBhbmQgcHJvdmlkZXMKCSAgYSBnZXR0ZXIgYW5kIGEgbWFjcm8gdG8gYWNjZXNzIHRoaXMgZmllbGQuCgkgIFdoZW5ldmVyIHRoZSBwYWQgaXMgaW5hY3RpdmUgaXQgaXMgc2V0IHRvIEZMVVNISU5HCgkgIEFQSTogZ3N0X3BhZF9nZXRfbGFzdF9mbG93X3JldHVybgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjI0CgoyMDE0LTA1LTIzIDE1OjI2OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogQWRkIG1ldGhvZCBhbmQgdmlydHVhbHMgdG8gc2V0IGZsdXNoaW5nIHN0YXRlCgkgIEN1cnJlbnRseSB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gdW5sb2NrIGEgYnVmZmVyIHBvb2wgb3RoZXIgdGhlbgoJICBzdG9wcGluZyBpdC4gVGhpcyBtYXkgaGF2ZSB0aGUgZWZmZWN0IG9mIGZyZWVpbmcgYWxsIHRoZSBidWZmZXJzLAoJICB3aGljaCBpcyB0b28gaGVhdnkgZm9yIGEgc2Vlay4gVGhpcyBwYXRjaCBhZGQgYSBtZXRob2QgdG8gZW50ZXIgYW5kCgkgIGxlYXZlIGZsdXNoaW5nIHN0YXRlLiBBcyBhIGNvbnZlbmllbmNlLCBmbHVzaF9zdGFydC9mbHVzaF9zdG9wCgkgIHZpcnR1YWwgYXJlIGFkZGVkIHNvIHBvb2wgaW1wbGVtZW50YXRpb24gY2FuIGFsc28gdW5ibG9jayB0aGVpciBvd24KCSAgaW50ZXJuYWwgcG9sbCBhdG9taWNhbGx5IHdpdGggdGhlIHJlc3Qgb2YgdGhlIHBvb2wuICBUaGlzIGlzIGZ1bGx5CgkgIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBkb2luZyBzdG9wL3N0YXJ0IHRvIGFjdHVhbGx5IGZsdXNoIHRoZSBwb29sCgkgIChhcyBiZWluZyBkb25lIGluIEdzdEJhc2VTcmMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NjExCgoyMDE0LTA1LTI2IDE0OjIzOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFBhc3N0aHJvdWdoIEFMTE9DQVRJT04gcXVlcmllcyBpbiBwYXNzdGhyb3VnaCBtb2RlIGV2ZW4gaWYgd2UgaGFkIG5vIGNhcHMgeWV0CgkgIE9yIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGNhcmUgYWJvdXQgY2FwcyBhdCBhbGwuCgkgIEFsc28gcmVtb3ZlIGFuIGFzc2lnbmVkIGJ1dCB1bnVzZWQgbG9jYWwgdmFyaWFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAyNjgKCjIwMTQtMDUtMjUgMTY6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlCgoyMDE0LTA1LTI1IDE2OjU3OjU5ICswMjAwICBQaW90ciBEcsSFZyA8cGlvdHJkcmFnQGdtYWlsLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogdXBkYXRlIFBPVEZJTEVTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3MTgKCjIwMTQtMDUtMjEgMTM6MjM6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4yID09PQoKMjAxNC0wNS0yMSAxMzowNjozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4yCgoyMDE0LTA1LTIxIDExOjM5OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNS0yMSAxMDo1MDo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMTFmYTVmIHRvIDFmNWQzYzMKCjIwMTQtMDUtMTkgMTE6MDU6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzb21lIHBvc2l0aXZlIHRlc3RjYXNlIGZvciBzdHJpbmcgZGVzZXJpYWxpemF0aW9uCgoyMDE0LTA1LTE4IDEwOjQ5OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBNYW5kcmFrZSBhbmQgcGFja2FnZXMgd2Ugbm8gbG9uZ2VyIHByb3ZpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDMxMgoKMjAxNC0wNS0xNSAxNjo0MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkb2NzOiBmaXggdHlwbwoKMjAxNC0wNS0xNCAxMzo0MDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBvbiB3aW5kb3dzCgkgIGdzdHBsdWdpbmxvYWRlci5jOjU4NDoxOiBlcnJvcjogbGFiZWwgJ2JlYWNoJyBkZWZpbmVkIGJ1dCBub3QgdXNlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMTI1CgoyMDE0LTA1LTEzIDE5OjUxOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmg6CgkgIGVsZW1lbnRzOiBkb24ndCBkZXBlbmQgb24gbGliZ2lvIGp1c3QgZm9yIGdfaW9fZXJyb3JfZnJvbV9lcnJubygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NDkKCjIwMTQtMDUtMTMgMTk6MzA6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBzcGFyc2VmaWxlOiBrZWVwIGl0IHByaXZhdGUgYXMgaGVscGVyIEFQSSBmb3IgZG93bmxvYWRidWZmZXIKCSAgVGhlcmUncyBubyBleHBlY3RhdGlvbiB0aGF0IGFueSBvdGhlciBlbGVtZW50IG9yIGFwcGxpY2F0aW9ucwoJICBtaWdodCB3YW50IHRvIHVzZSB0aGlzIGhlbHBlciBBUEkgYW55IHRpbWUgc29vbiwgc28ga2VlcCBpdAoJICBwcml2YXRlIGZvciB0aGUgdGltZSBiZWluZy4gVGhlcmUgd2VyZSBvcGVuIHF1ZXN0aW9ucyByZWdhcmRpbmcKCSAgcG9ydGFiaWxpdHkgYW5kIGJpbmRpbmctZnJpZW5kbGluZXNzIHRvby4KCSAgVGhpcyBhbHNvIHJlbW92ZXMgdGhlIGdpbyBkZXBlbmRlbmN5IG9mIC1iYXNlIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5OTUxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NDkKCjIwMTQtMDUtMTMgMTk6MTQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIGRvY3M6IHBpY2sgdXAgR3N0QmFzZVBhcnNlIGhpZXJhcmNoeSBhbmQgcHJvcGVydGllcwoKMjAxNC0wNS0xMyAxOToxMDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGV4cG9zZSBHc3RQdXNoU3JjQ2xhc3MgaW4gZG9jdW1lbnRhdGlvbgoJICBNaWdodCBjb21lIGluIGhhbmR5IGluIGNhc2Ugc29tZW9uZSB3YW50cyB0byBkZXJpdmUgZnJvbSBpdC4KCjIwMTQtMDUtMTIgMTc6MDM6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRG9uJ3QgbGVhayBwbHVnaW5sb2FkZXIgaW4gZXJyb3IgY2FzZXMKCSAgQ0lEICMxMjEyMTU0CgoyMDE0LTA1LTEyIDE2OjU5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRG9uJ3QgbGVhayBmZWF0dXJlcyBvbiBlcnJvciBjYXNlcwoJICBJZiB3ZSBmYWlsIHRvIHBhcnNlIGZpZWxkcywgd2Ugd291bGQgZW5kIHVwIGxlYWtpbmcgdGhlIGZlYXR1cmVzIHdlCgkgIHBhcnNlZCBqdXN0IGJlZm9yZQoJICBDSUQgIzEyMTIxNTIKCjIwMTQtMDUtMDkgMTQ6Mjg6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDb3JyZWN0bHkgcmVzZXQgY29uZmlndXJhdGlvbgoJICBXaGVuIHBvb2wgY2FuJ3Qgd2UgdXNlLCBhbmQgd2UgZmFsbCBiYWNrIHRvIGRlZmF1bHQgcG9vbCwgd2UgbmVlZCB0bwoJICBjb3JyZWN0bHkgcmVzZXQgdGhhdCBwb29sIGNvbmZpZ3VyYXRpb24uCgoyMDE0LTA1LTA5IDE0OjQ2OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IFVzZSBub24tZnJlZWQgdmFyaWFibGUKCSAgYWRkcmVzcyBpcyBvbmx5IHVzZWQgdGVtcG9yYXJpbHkuIFVzZSB0aGUgcHJvcGVyIHZhcmlhYmxlIGluc3RlYWQuCgkgIENJRCAjMTIxMjE4OQoKMjAxNC0wNS0wOCAxNzozMzozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiB0ZXN0IHRvIGNoZWNrIHF1ZXVlIG92ZXJydW4gd2l0aCBwdHM9bm9uZQoJICBDaGVja3MgaWYgYnVmZmVycyB3aXRoIHB0cz1ub25lIGNhbiBicmVhayB0aGUgcXVldWUgdGltZSBzaXplIGxpbWl0CgkgIGFuZCBhbGxvdyBtb3JlIGJ1ZmZlcnMgdGhhbiBleHBlY3RlZAoKMjAxNC0wNS0wOCAxNDo0ODowMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogRml4IDMyYml0IGJ1aWxkCgkgIGZvcm1hdCAnJWxsaScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgaW50JywgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUgJ2dzaXplJwoKMjAxNC0wNS0wOCAxNDoxMjoxNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHBvb2wtbmVnbzogQ29ycmVjdGx5IHJlc2V0IHRoZSBjb25maWd1cmF0aW9uCgkgIFdoZW4gcG9vbCBjYW5ub3QgYmUgdXNlZCwgY29ycmVjdGx5IHJlc2V0IHRoZSBjb25maWd1cmF0aW9uIGJlZm9yZQoJICBjb25maWd1cmF0aW9uIGEgZGVmYXVsdCBwb29sLgoKMjAxNC0wNC0xNSAxNDoxNzowMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBwb29sLW5lZ286IFJldHJ5IHNldHRpbmcgY29uZmlndXJhdGlvbiB3aXRoIG1vZGlmaWVkIGNvbmZpZwoJICBCdWZmZXIgcG9vbCBzZXRfY29uZmlnKCkgbWF5IHJldHVybiBGQUxTRSBpZiByZXF1ZXN0ZWQgY29uZmlndXJhdGlvbiBuZWVkZWQKCSAgc21hbGwgY2hhbmdlcy4gUmVnZXQgdGhlIGNvbmZpZyBhbmQgdHJ5IHNldHRpbmcgaXQgYWdhaW4gKHZhbGlkYXRpbmcgdGhlCgkgIGNoYW5nZXMgZmlyc3QpLiBUaGlzIGVuc3VyZSB3ZSBoYXZlIGEgY29uZmlndXJlZCBwb29sIGlmIHBvc3NpYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTE2CgoyMDE0LTA1LTA4IDEyOjQ3OjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogQWRkIGFuIGhlbHBlciB0byB2YWxpZGF0ZSBjb25maWcKCSAgV2hlbiB3ZSBjYWxsIGdzdF9idWZmZXJfcG9vbF9zZXRfY29uZmlnKCkgdGhlIHBvb2wgbWF5IHJldHVybiBGQUxTRSBhbmQKCSAgc2xpZ2h0bHkgY2hhbmdlIHRoZSBwYXJhbWV0ZXJzLiBUaGlzIGhlbHBlciBpcyB1c2VmdWwgdG8gZG8gdGhlIG1pbmlhbCByZXF1aXJlZAoJICB2YWxpZGF0aW9uIGJlZm9yZSBhY2NlcHRpbmcgdGhlIG1vZGlmaWVkIGNvbmZpZ3VyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5MTYKCjIwMTQtMDQtMDggMTk6Mjc6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IFVwZGF0ZSB0aGUgY29uZmlndXJlIGV2ZW4gaWYgc2V0X2NvbmZpZygpIHJldHVybmVkIGZhbHNlCgkgIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiwgd2hlbiBzZXRfY29uZmlnKCkgcmV0dXJuIGZhbHNlLCBpdCBzaG91bGQgYmUKCSAgcG9zc2libGUgdG8gcmVhZCB0aGUgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgY29uZmlnLiBUaGlzIHBhdGNoIGZpeGVzIHRoZQoJICBpbXBsZW1lbnRhdGlvbiBzbyBpdCBpcyBub3cgYWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTE2CgoyMDE0LTA1LTA2IDE1OjM1OjE0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBzdXBwb3J0IGZvciByZWNvbmZpZ3VyaW5nIGEgcG9vbAoJICBJZiBhIHBvb2wgY29uZmlnIGlzIGJlaW5nIGNvbmZpZ3VyZWQgYWdhaW4sIGNoZWNrIGlmIHRoZSBjb25maWd1cmF0aW9uIGhhdmUgY2hhbmdlZC4KCSAgSWYgbm90LCBza2lwIHRoYXQgc3RlcC4gRmluYWxseSwgaWYgdGhlIHBvb2wgaXMgYWN0aXZlLCB0cnkgZGVhY3RpdmF0aW5nIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MjY4CgoyMDE0LTA1LTA2IDE2OjU5OjM0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBHc3RBbGxvY2F0aW9uUGFyYW1zIGNvbXBhcmlzaW9uCgkgIFRoaXMgaXMgdXNlZnVsIHRvIGNvbXBhcmUgYnVmZmVyIHBvb2wgY29uZmlndWFyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgyNjgKCjIwMTQtMDUtMDYgMTY6NDY6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHN1cHBvcnQgZm9yIEdPYmplY3QgY29tcGFyaXNpbmcgaW4gc3RydWN0dXJlcwoJICBUaGlzIGlzIHVzZWZ1bCB0byBhbGxvdyBjb21wYXJpbmcgcG9vbCBjb25maWd1cmF0aW9uIHdoZXJlIGEgR3N0QWxsb2NhdG9yCgkgIGlzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODI2OAoKMjAxNC0wNS0wOCAxNzo1MDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBmaXggY2FzZSB3aGVyZSBnc3RfcGx1Z2luX2xvYWRfZmlsZSgpIGRpZG4ndCBzZXQgdGhlIGVycm9yIG9uIGZhaWx1cmUKCjIwMTQtMDUtMDggMTY6MzA6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogYWRkIHNvbWUgU2luY2UgbWFya2VycyB0byBkb2NzCgoyMDE0LTA1LTA4IDE2OjI1OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHNwYXJzZWZpbGU6IHNwcmlua2xlIEdfQkVHSU5fREVDTFMgLyBHX0VORF9ERUNMUwoJICBmb3IgYysrLCBhbmQgcmVtb3ZlIG91dGRhdGVkIGNvbW1lbnQsIGFuZCBhZGQKCSAgbmV3IHVuaXQgdGVzdCB0byAuZ2l0aWdub3JlLgoKMjAxNC0wNS0wOCAxNjo0OTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBzbWFsbCBjbGVhbnVwcwoKMjAxNC0wNS0wOCAxNDo1MToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogdXBkYXRlIGRvY3MKCjIwMTQtMDUtMDggMTQ6NTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogdXBkYXRlIGRlZgoKMjAxNC0wMi0yMSAxNjozMjo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSAgQWRkIG5ldyBkb3dubG9hZGJ1ZmZlciBlbGVtZW50CgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMTgzCgoyMDE0LTA1LTAyIDE3OjQyOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGFkczogdXBkYXRlIGRvY3MgZm9yIHJlcXVlc3QgcGFkcwoJICBXZSB3b3VsZCBsaWtlIHRvIGVuY291cmFnZSB0aGUgdXNlIG9mIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKCkKCjIwMTQtMDUtMDIgMTc6MDI6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJICBjaGVjazogdXNlIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkgaW4gZmFpbF91bmxlc3MoKSBzbyB3ZSBleGl0IGltbWVkaWF0ZWx5CgkgIGV4aXQoKSB3aWxsIGNhbGwgYXRleGl0IGhhbmRsZXJzLCB3aGljaCBtYXkgdHJ5IHRvCgkgIGNsZWFuIHVwIHRoaW5ncyBvciB3YWl0IGZvciB0aGluZ3MgdG8gZ2V0IGNsZWFuZWQgdXAsCgkgIHdoaWNoIHdlIGRvbid0IHdhbnQgb3IgbmVlZC4gV2UganVzdCB3YW50IHRvIHN0b3AKCSAgYW5kIGxldCB0aGUgcGFyZW50IGtub3cgYWJvdXQgdGhlIGZhaWx1cmUgYXMgcXVpY2tseQoJICBhcyBwb3NzaWJsZSBpbiBjYXNlIGZvcmsoKSBpcyB1c2VkLgoJICBGaXhlcyB0aW1lb3V0cyBvbiBhc3NlcnQgZmFpbHVyZXMgaW4gY2hlY2tzIHdoZXJlCgkgIGFuIGV4aXQgaGFuZGxlciB3YWl0cyBmb3IgdGhpbmdzIHRvIHN0b3AsIGJ1dCB0aGV5CgkgIGRvbid0IHN0b3AgYmVjYXVzZSB0aGV5IGhhdmVuJ3QgYmVlbiBzaHV0IGRvd24sCgkgIGFuZCB0aGV5IGhhdmVuJ3QgYmVlbiBzaHV0IGRvd24gYmVjYXVzZSB0aGVyZSdzIG5vCgkgIHNpbXBsZSB3YXkgdG8gZG8gc28gb24gZmFpbHVyZXMuCgkgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9jaGVjay9wYXRjaGVzLzUwLwoKMjAxNC0wNS0wNCAxNDo1MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogaW5pdCBmbGFnIG1hc2sgbW9yZSBjb3JyZWN0bHkKCjIwMTQtMDUtMDQgMTM6MzI6NDYgKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGdfbWVtbW92ZSgpIGlzIGRlcHJlY2F0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjgxMQoKMjAxNC0wNS0wMyAyMDo0ODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4zLjEgPT09CgoyMDE0LTA1LTAzIDE3OjQxOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMQoKMjAxNC0wNS0wMyAxNzozNDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDUtMDMgMTc6MjA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNS0wMyAxMjoxNDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBuZXcgZGV2aWNlIHByb2JpbmcgQVBJIHRvIGRvY3MgdGFibGUgb2YgY29udGVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTQ0MAoKMjAxNC0wNS0wMiAyMjoyMjowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBHc3REZXZpY2UqIHRvIGdzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTQ0MAoKMjAxNC0wNS0wMyAxMDoxNDo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYmNiMTUxOCB0byAyMTFmYTVmCgoyMDE0LTA1LTAxIDEwOjM3OjE4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFsd2F5cyByZW5kZXIgcHJlcGFyZWQgYnVmZmVyCgkgIEN1cnJlbnRseSwgaWYgcHJlcGFyZSgpIHRha2VzIHRvbyBtdWNoIHRpbWUsIHdlIHNraXAgdGhlIGNhbGwgdG8gcmVuZGVyKCkuCgkgIFRoZSBzaWRlIGVmZmVjdCBvZiB0aGlzLCBpcyB0aGF0IHdlIGVuZHVwIHN0YXJ2aW5nIHRoZSByZW5kZXIoKS4gVGhlIHNvbHV0aW9uCgkgIGluIHRoaXMgcGF0Y2ggaXMgdG8gYWx3YXlzIHJlbmRlciBmcmFtZXMgdGhhdCBhcmUgb24gdGltZSBiZWZvcmUgcHJlcGFyZSgpIGlzCgkgIGV4ZWN1dGVkLiBUaGlzIHdpbGwgbWF4aW1pemUgdGhlIG51bWJlciBvZiBmcmFtZXMgd2UgZGlzcGxheSBhbmQgc21vb3RobHkKCSAgZGVncmFkZSB0aGUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5MzM1CgoyMDE0LTA1LTAxIDE0OjUyOjI0IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgc2NyaXB0cy9naXQtdmVyc2lvbi5zaDogYWRkIG1vcmUgbW9kdWxlcwoJICBBZGQgbW9yZSBnaXQgcmVwb3NpdG9yaWVzIHRvIGNoZWNrIChzbyBnaXQtdmVyc2lvbi5zaCBpcyBjb25zaXN0ZW50IHdpdGgKCSAgZ3N0LXVuaW5zdGFsbGVkKSBhbmQgZGlzcGxheSB0aGUgZGF0ZSBvZiB0aGUgbGFzdCBjb21taXQsIHdoaWNoIGlzIG1vcmUgdmFsdWFibGUKCSAgaW5mb3JtYXRpb24gdGhhbiB0aGUgbGFzdCBjb21taXQncyBoYXNoLgoKMjAxNC0wNS0wMSAxODo0Mjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHdheXMgZmlyc3QgcG9zdCB0aGUgc3RhdGUtY2hhbmdlZCBtZXNzYWdlIGZvciBQQVVTRUQtPlJFQURZIGJlZm9yZSBwb3N0aW5nIGFueSBwZW5kaW5nIEVPUyBtZXNzYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDkKCjIwMTQtMDQtMTcgMjE6MTA6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBZGQgdGVzdCBmb3IgY2hlY2tpbmcgdGhhdCBFT1MgYWx3YXlzIGNvbWVzIGFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ5CgoyMDE0LTA0LTE1IDE1OjU1OjI1ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBsb2cgbWVzc2FnZSBvZiBidWZmZXIgcG9pbnRlcgoKMjAxNC0wNC0zMCAxODoyMDoyOCAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTQtMDQtMzAgMTA6NDc6MTkgLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOiBmaXggbWlzdGFrZW4gY29tbWVudHMKCjIwMTQtMDQtMjggMTM6MDI6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHNpZ25hbGluZyBvdmVycnVuIG9uIHRoZSBmaXJzdCBzZWdtZW50CgkgIFdoZW4gdGhlIGZpcnN0IHNlZ21lbnQgaGFzIHBvc2l0aW9uICE9IDAgYW5kIHBvc2l0aW9uID4gbWF4LXNpemUtdGltZQoJICBpdCB3aWxsIGltbWVkaWF0ZWxseSBjYXVzZSB0aGUgbXVsdGlxdWV1ZSB0byBzaWduYWwgb3ZlcnJ1bi4KCSAgVGhpcyBjYW4gaGFwcGVuIGVhc2lseSB3aXRoIGFkYXB0aXZlIHN0cmVhbXMgd2hlbiBzd2l0Y2hpbmcgYml0cmF0ZXMKCSAgYW5kIHN0YXJ0aW5nIGEgbmV3IGdyb3VwLiBUaGUgc2VnbWVudCBmb3IgdGhpcyBuZXcgZ3JvdXAgd2lsbCBoYXZlCgkgIGEgcG9zaXRpb24gdGhhdCBpcyBtdWNoIGdyZWF0ZXIgdGhhbiAwIGFuZCB3aWxsIGxlYWQgdG8gdGhpcyBpc3N1ZS4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaGFybWZ1bCB3aGVuIHRoZSBhZGFwdGl2ZSBzdHJlYW0gdXNlcyBtcGVndHMKCSAgdGhhdCBkb2Vzbid0IGVtaXQgbm8tbW9yZS1wYWRzIGFuZCBpdCBtaWdodCBoYXBwZW4gdGhhdCBvbmx5IG9uZQoJICBvZiB0aGUgc3RyZWFtIHBhZHMgd2FzIGFkZGVkIHdoZW4gdGhlIG11bHRpcXVldWUgb3ZlcnJ1bnMgYW5kIGdldHMKCSAgdGhlIGdyb3VwIHJlYWR5IGZvciBleHBvc2luZy4gU28gdGhlIHVzZXIgd2lsbCBvbmx5IGdldCBhdWRpbyBvcgoJICB2aWRlby4KCSAgVGhlIHNvbHV0aW9uIGlzIHRvIGZhbGxiYWNrIHRvIHRoZSBzaW5rIHNlZ21lbnQgd2hpbGUgdGhlIHNvdXJjZSBwYWQKCSAgaGFzIG5vIHNlZ21lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjkxMjQKCjIwMTQtMDQtMjggMTA6MTQ6NTAgKzAyMDAgIFhhdmkgQXJ0aWdhcyA8eGFydGlnYXNAZmx1ZW5kby5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGVuaGFuY2VtZW50cyB0byBwb3J0aW5nIGd1aWRlIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzc1NAoKMjAxNC0wNC0yOCAwOTo0MzozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IEFkZCBib29sZWFuIHRvIFVSSSBxdWVyeSB0byBzcGVjaWZ5IGlmIGEgcmVkaXJlY3QgaXMgcGVybWFuZW50IG9yIG5vdAoKMjAxNC0wNC0yNSAwNzozODowMCArMDAwMCAgU3JpbWFudGEgUGFuZGEgPHBhbmRhX3NyaW1hbnRhQHlhaG9vLmNvLmluPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBDaGVjayBpZiB0aGUgbGFzdCBwYWQgd2FzIHNldAoJICBJZiBubyBkYXRhIGlzIGNvbWluZyBidXQgb25seSBFT1MgaXMgc2VudCBmcm9tIGFsbCBvZiB0aGUgc2lua3BhZCwgaXQgaXMgbm90CgkgIGZvcndhcmRpbmcgdGhlIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0NQoKMjAxNC0wNC0yNiAxNzowMjoxOCArMDEwMCAgRmVsaXBlIE9ydGl6IDxmYW9ydGl6Y0BnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciB2YXJpb3VzIEdzdFBhZCBtYWNyb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzY1MgoKMjAxNC0wNC0yNiAyMzoxMjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuaDoKCSAgUmV2ZXJ0ICJkb2NzOiBhZGQgZG9jcyBmb3IgdmFyaW91cyBHc3RQYWQgbWFjcm9zIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGQxNzQzOGQ1ZmQzMjFkYWVjNGFkYmViMjhhOGZiNWQ1ZTA3Mjk4ZGMuCgkgIFRoaXMgY29tbWl0IGZlYXR1cmVkIHRoZSB3cm9uZyBhdXRob3IsIHNvcnJ5LgoKMjAxNC0wNC0yNiAyMToyMTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvUkVBRE1FOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBkb2NzOiByZW1vdmUgb3V0ZGF0ZWQgYW5kIHBvaW50bGVzcyAnTGFzdCByZXZpZXdlZCcgbGluZXMgZnJvbSBkb2NzCgkgIFRoZXkgYXJlIHZlcnkgY29uZnVzaW5nIGZvciBwZW9wbGUsIGFuZCBtb3JlIG9mdGVuIHRoYW4gbm90CgkgIGFsc28ganVzdCBub3QgdmVyeSBhY2N1cmF0ZS4gU2VlaW5nICdsYXN0IHJldmlld2VkOiAyMDA1JyBpbgoJICB5b3VyIGRvY3MgaXMgbm90IHZlcnkgY29uZmlkZW5jZS1pbnNwaXJpbmcuIExldCdzIGp1c3QgcmVtb3ZlCgkgIHRob3NlIGNvbW1lbnRzLgoKMjAxNC0wMy0yNiAxNTo1NjowOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXI6IE9ubHkgc2V0IFRBR19NRU1PUlkgaWYgdGhlIG1lbW9yeSBoYXMgYmVlbiByZXBsYWNlZAoJICBDdXJyZW50bHkgd2Ugc2V0IFRBR19NRU1PUlkgYXMgc29vbiBhIHJlc2l6ZSBjaGFuZ2VzIHRoZSBzaXplIG9mIG9uZQoJICBvZiB0aGUgbWVtb3J5LiBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3QgdGhhdCBidWZmZXIgcG9vbCBjYW5ub3Qga25vdyBpZgoJICB0aGUgbWVtb3J5IGhhdmUgc2ltcGx5IGJlZW4gcmVzaXplZCwgb3IgaWYgdGhlIG1lbW9yeXMgaGFzIGJlZW4gcmVwbGFjZWQuCgkgIFRoaXMgbWFrZSBpdCBoYXJkIHRvIGFjdHVhbGx5IGltcGxlbWVudCBfcmVzZXQoKS4gSW5zdGVhZCwgb25seSBzZXQgdGhlCgkgIFRBR19NRU1PUlkgaWYgb25lIG9yIG1vcmUgbWVtb3J5IGhhcyBiZWVuIHJlcGxhY2VkLCBhbmQgZG8gYSBsaWdodAoJICBzYW5pdHkgY2hlY2sgb2YgdGhlIHNpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjcxMDkKCjIwMTQtMDQtMjYgMTc6MDI6MTggKzAxMDAgIFNob3dheWIgWmFoZGEgPHNob3dheWIuemFoZGFAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciB2YXJpb3VzIEdzdFBhZCBtYWNyb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzY1MgoKMjAxNC0wNC0yNSAxNTozODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBXaGVuIGdvaW5nIHRvIFJFQURZIG1ha2Ugc3VyZSB0byBhbHdheXMgZGVhY3RpdmF0ZSBwYWRzCgkgIFdlIG1pZ2h0IG5vdCBoYXZlIHJlYWNoZWQgUEFVU0VEIHlldCBiZWNhdXNlIG9mIGFuIGFzeW5jIGVycm9yLAoJICBidXQgbm9uZXRoZWxlc3Mgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFkcyBhcmUgYWx3YXlzCgkgIGRlYWN0aXZhdGVkIGluIFJFQURZIHN0YXRlLgoKMjAxNC0wNC0yMiAxODoyMzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBEb24ndCBsZWZ0LXNoaWZ0IGludG8gdGhlIHNpZ24gYml0LCB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZAoKMjAxNC0wNC0yMiAxODoxNjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogVXNlIGFuIHVuc2lnbmVkIDY0IGJpdCBpbnRlZ2VyIGFzIGEgbWFzawoJICBXZSBzaGlmdCB0aGUgbWFzayB0byB0aGUgcmlnaHQgbGF0ZXIgYW5kIHNoaWZ0aW5nIHRoZSByZXN1bHQKCSAgb2Ygc2hpZnRpbmcgb3ZlciB0aGUgc2lnbiBiaXQgaXMgdW5kZWZpbmVkLgoKMjAxNC0wNC0yMCAxMTo1OTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHN1cmUgdG8gYWx3YXlzIGhvbGQgdGhlIExJVkVfTE9DSyB3aGVuIGdvaW5nIHRvIHRoZSBmbHVzaGluZyBsYWJlbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTk2CgoyMDE0LTA0LTExIDE5OjUyOjAyICswMjAwICBTcmltYW50YSBQYW5kYSA8c3JpbWFudGFAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBIYW5kbGUgZW5kIG9mIHN0cmVhbSBldmVudCBvbiBzaW5rIHBhZAoJICBIYW5kbGUgZW5kIG9mIHN0cmVhbSBldmVudHMgb24gc2luayBwYWQuIENoZWNrIGFsbCB0aGUgc2luayBwYWQKCSAgaGFzIHJlY2VpdmVkIGVvcyBiZWZvcmUgZm9yd2FyZGluZyB0byBzb3VyY2UgcGFkLgoJICBGaXhlcyA6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDUKCjIwMTQtMDQtMDUgMTE6Mzc6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBQcmV2ZW50IGRpdmlzaW9uIG9yIG1vZHVsbyBieSB6ZXJvCgkgIFRoZSBzdGVwIGNhbiBlbmQgdXAgYmVpbmcgemVybyBpZiB0aGUgdW5kZXJseWluZyB2YWx1ZSBpc24ndCBhIHZhbGlkCgkgIHJhbmdlIEdWYWx1ZS4KCSAgSW4gdGhvc2UgY2FzZXMsIHJldHVybiBGQUxTRS4KCSAgV2UgZG9uJ3QgdXNlIGdfcmV0dXJuKl9pZl9mYWlsIHNpbmNlIGl0IHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gdHJpZ2dlcmVkCgkgIGJ5IHRoZSBhYm92ZS1tZW50aW9ubmVkIF9nZXRfc3RlcCgpIGZ1bmN0aW9ucy4KCSAgQ0lEICMxMDM3MTMyCgoyMDE0LTA0LTA5IDE2OjQ0OjA3ICswMjAwICBBbnRvaW5lIEphY291dG90IDxhamFjb3V0b3RAZ25vbWUub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBnLWlyLXNjYW5uZXI6IGRvIG5vdCBoYXJkY29kZSBsaWJ0b29sIHBhdGgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjU3MQoKMjAxNC0wNC0xNiAxOTo0OTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnkvYnVmZmVyOiBJbml0aWFsaXNlIEdzdE1hcEluZm8gdG8gemVyb2VzIGlmIG1hcHBpbmcgZmFpbHMKCSAgVGhpcyBzaG91bGQgYWxsb3cgZm9yIG1vcmUgbWVhbmluZ2Z1bCBlcnJvcnMuIERlcmVmZXJlbmNpbmcgTlVMTAoJICBpcyBtb3JlIHVzZWZ1bCBpbmZvcm1hdGlvbiB0aGFuIGRlcmVmZXJlbmNpbmcgYSByYW5kb20gYWRkcmVzcwoJICBoYXBwZW5lZCB0byBiZSBvbiB0aGUgc3RhY2suCgoyMDE0LTA0LTE2IDE3OjQ5OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IFVucmVmIHJldHVybiB2YWx1ZSBvZiBnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KCkgaW5zdGVhZCBvZiBsZWFraW5nIGl0CgoyMDE0LTA0LTE2IDE3OjQ4OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IEF1dG9tYXRpYyBjb2RlIHN0eWxlIGZpeGVzCgoyMDE0LTA0LTE2IDE1OjE3OjA0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZml4IGV2ZW50L3ByZXJvbGwgZGVhZGxvY2sgZGlmZmVyZW50bHkKCSAgVGhlIHFsb2NrIGlzIHJlbGVhc2VkIGJldHdlZW4gcG9wcGluZyBhIGJ1ZmZlciBmcm9tIHRoZSBxdWV1ZQoJICBhbmQgcHVzaGluZyBpdC4gV2hlbiB0aGlzIGJ1ZmZlciBjYXVzZXMgdGhlIHNpbmsgdG8gd2FpdCBpbgoJICBwcmVyb2xsLCB0aGlzIGxldHMgYSBxdWVyeSBzZWUgdGhhdCB0aGUgcXVldWUgaXMgZW1wdHksIGFuZAoJICBwdXNoIHRoZSBxdWVyeSB0aGVuIHdhaXQgZm9yIGl0IHRvIGJlIHNlcnZpY2VkLiBIb3dldmVyLCB0aGlzCgkgIHdpbGwgbm90IGJlIGRvbmUgdGlsbCBhZnRlciBwZXJvbGwsIGFuZCB0aGlzIHdpbGwgdGh1cyBibG9jay4KCSAgSWYgdXBzdHJlYW0gd2FzIHdhaXRpbmcgb24gYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUgYmVmb3JlCgkgIHN3aXRjaGluZyB0byBQTEFZSU5HLCBhIGRlYWRsb2NrIHdvdWxkIGVuc3VlLgoJICBUaGlzIGhhZCBiZWVuIGZpeGVkIHJlY2VudGx5IGJ5IGZhaWxpbmcgcXVlcmllcyB3aGVuIHRoZQoJICBxdWV1ZTIgd2FzIGJ1ZmZlcmluZywgYnV0IHRoaXMgaGFwcGVucyB0byBicmVhayBzb21lIG90aGVyCgkgIGNhc2UgKHBsYXliaW4gb24gYSBsb2NhbCBodHRwIHNlcnZlciBhbmQgbWF0cm9za2EpLCB3aGlsZQoJICB0aGlzIHBhdGNoIHdvcmtzIGZvciBib3RoLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODM0NQoKMjAxNC0wNC0xNiAwNzo1OToyNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEZpeCBleHBvcnRlZCBzeW1ib2wgbmFtZQoJICBpdCdzIF90ZW1wbGF0ZSBhbmQgbm90IF90ZW1wbAoKMjAxNC0wNC0xNSAyMToxNjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgbWlzc2luZyBzcGFjZSBpbiBkZWJ1ZyBvdXRwdXQKCjIwMTQtMDQtMTUgMTI6NTg6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBuZXcgQVBJIHRvIHNldCB1cCBwYWRzIGZyb20gbm9uLXN0YXRpYyBwYWQgdGVtcGxhdGVzCgoyMDE0LTA0LTE0IDIxOjM1OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRml4IG1lbW9yeSBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNC0wNC0xMiAxNToyMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogcmVwbGFjZSBuZXdseS1hZGRlZCBHc3RUZXN0Q2xvY2tJRExpc3Qgc3RydWN0dXJlIHdpdGggYSBzaW1wbGUgR0xpc3QKCSAgS2VlcCBpdCBzaW1wbGUuIExpa2VseSBhbHNvIG1ha2VzIHRoaW5ncyBlYXNpZXIgZm9yIGJpbmRpbmdzLAoJICBhbmQgZWZmaWNpZW5jeSBjbGVhcmx5IGhhcyBub3QgYmVlbiBhIGNvbnNpZGVyYXRpb24gZ2l2ZW4gaG93CgkgIHRoZSBleGlzdGluZyBjb2RlIGhhbmRsZWQgdGhlc2UgbGlzdHMuCgoyMDE0LTA0LTEyIDE0OjMwOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJICBkb2NzOiB0ZXN0Y2xvY2s6IGZpeCB1cCBTaW5jZSBtYXJrZXJzCgoyMDE0LTA0LTEyIDAwOjI4OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSAgdGVzdGNsb2NrOiBhZGQgYmFjayBnc3RfdGVzdF9jbG9ja193YWl0X2Zvcl9wZW5kaW5nX2lkX2NvdW50KCkKCSAgLi4gYnV0IGRlcHJlY2F0ZSBpdC4gQUJJIHN0YWJpbGl0eSBhbmQgYWxsIHRoYXQuCgkgIEl0J3MgYSBkYW5nZXJvdXMgYW5kIHJhY3kgZnVuY3Rpb24gdG8gdXNlLgoKMjAxNC0wMy0yMyAxNTowODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZy4KCjIwMTMtMTItMTYgMTA6MDE6MzcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogYWRkIHN1cHBvcnQgZm9yIHdhaXRpbmcgYW5kIHJlbGVhc2luZyBtdWx0aXBsZSBHc3RDbG9ja0lEcwoJICBJbiBvcmRlciB0byBiZSBkZXRlcm1pbmlzdGljLCBtdWx0aXBsZSB3YWl0aW5nIEdzdENsb2NrSURzIG5lZWRzIHRvIGJlCgkgIHJlbGVhc2VkIGF0IHRoZSBzYW1lIHRpbWUsIG9yIGVsc2Ugb25lIGNhbiBnZXQgaW50byB0aGUgc2l0dWF0aW9uIHRoYXQKCSAgdGhlIG9uZSBiZWluZyByZWxlYXNlZCBmaXJzdCBjYW4gYWRkIGl0c2VsZiBiYWNrIGFnYWluIGJlZm9yZSB0aGUgbmV4dAoJICBvbmUgd2FpdGluZyBpcyByZWxlYXNlZC4KCSAgVGVzdCBhZGRlZCBmb3IgbmV3IEFQSSBhbmQgb2xkIHRlc3RzIHJld3JpdHRlbiB0byBjb21wbHkuCgoyMDE0LTA0LTAxIDE1OjM4OjU0ICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNzbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBhY2Nlc3MgdW5vd25lZCBhbmQgcG9zc2libHkgYWxyZWFkeSBmcmVlZCBldmVudAoJICBEb24ndCBwcmludCB0aGUgbmFtZSBvZiB0aGUgZXZlbnQgd2hlbiBvd25lcnNoaXAgaXMgZ2l2ZW4gYXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzQ4NAoKMjAxNC0wNC0xMiAwNzoxMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBwcmludCBzdHJ1Y3R1cmUgdmFsdWVzIG9mIHByb3BlcnRpZXMKCjIwMTQtMDQtMTEgMjI6Mzg6MjUgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBIb2xkIHBhZCBvYmplY3QgbG9jayB3aGVuIGNoYW5naW5nIHRhZ3MKCSAgQXZvaWQgc3B1cmlvdXMgY3Jhc2hlcyB3aGVuIHRhZ3MgYXJlIHJldHJpZXZlZCBqdXN0IGFzCgkgIG5ldyBvbmVzIGFycml2ZS4KCjIwMTQtMDQtMTEgMTM6NDU6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogRml4IHJhbmdlIGl0ZXJhdGlvbgoJICBXZSB3YW50IHRvIGl0ZXJhdGUgb3ZlciBpdGVtcyBpZHggdG8gaWR4ICsgbGVuZ3RoCgkgIFdlIHVzZSB0aGUgbGVuIHZhcmlhYmxlIGFzIHRoZSBjb3JyZWN0ZWQgbnVtYmVyIG9mIG1lbW9yeSB0byBpdGVyYXRlCgkgIGFuZCB0aGVuIHByb3Blcmx5IGdvIG92ZXIgYWxsIGl0ZW1zLgoJICBGaXhlcyB0aGUgaXNzdWUgd2hlcmUgc3BlY2lmeWluZyBhbnkgaWR4IGRpZmZlcmVudCBmcm9tIDAgaGFkIG5vIGVmZmVjdAoJICBTcG90dGVkIGJ5IGNsYW5nIHN0YXRpYyBhbmFseXplcgoKMjAxNC0wNC0wOSAxNzowMTowMSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZXJyb3Igb3V0IHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhIGZyYWN0aW9uIG5lYXIgYW4gaW52YWxpZCB0YXJnZXQKCjIwMTQtMDQtMDQgMTc6Mjg6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IFVwZGF0ZSBydW5uaW5nIHRpbWUgaW4gUW9TIGJhc2VkIG9uIHRoZSBwYWQgb2Zmc2V0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNjk3CgoyMDE0LTA0LTA0IDE3OjE1OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFwcGx5IHBhZCBvZmZzZXRzIG9uIGFsbCBldmVudHMsIG5vdCBqdXN0IHNlZ21lbnQgZXZlbnRzCgoyMDE0LTA0LTA0IDE3OjA2OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZCBydW5uaW5nLXRpbWUtb2Zmc2V0IGZpZWxkIHRvIGFsbCBldmVudHMKCSAgRXZlbnRzIHBhc3NpbmcgdGhyb3VnaCAjR3N0UGFkcyB0aGF0IGhhdmUgYSBydW5uaW5nIHRpbWUKCSAgb2Zmc2V0IHNldCB2aWEgZ3N0X3BhZF9zZXRfb2Zmc2V0KCkgd2lsbCBnZXQgdGhlaXIgb2Zmc2V0CgkgIGFkanVzdGVkIGFjY29yZGluZyB0byB0aGUgcGFkJ3Mgb2Zmc2V0LgoJICBJZiB0aGUgZXZlbnQgY29udGFpbnMgYW55IGluZm9ybWF0aW9uIHRoYXQgcmVsYXRlZCB0byB0aGUKCSAgcnVubmluZyB0aW1lLCB0aGlzIGluZm9ybWF0aW9uIHdpbGwgbmVlZCB0byBiZSB1cGRhdGVkCgkgIGJlZm9yZSB1c2FnZSB3aXRoIHRoaXMgb2Zmc2V0LgoKMjAxNC0wNC0wOSAxNjo0MDoyNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIGRpdmlkaW5nIGJ5IHplcm8gd2hlbiBtdWx0aXBseWluZyB5L3ogYnkgMC94CgkgIFRoZSBnY2Qgb2YgMC94IGlzIDAsIGFuZCB0aGlzIGlzIHRoZW4gdXNlZCBhcyBhIGRlbm9taW5hdG9yLgoKMjAxNC0wNC0wOSAxNjowMTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQW5kIGFjdHVhbGx5IHJ1biB0aGUgb3RoZXIgdGVzdHMgYWdhaW4KCjIwMTQtMDQtMDkgMTU6NTc6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCB0aGUgcXVldWVzIGlmIGxpbWl0cyBhcmUgY2hhbmdpbmcgaW4gYSB3YXkgdGhhdCB3b3VsZCB1bmJsb2NrIHRoZSBxdWV1ZQoKMjAxNC0wNC0wOSAxNTo0Mjo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIHRlc3QgZm9yIGNoZWNraW5nIGlmIHBhZHMgYXJlIHdha2VkIHVwIHdoZW4gbGltaXRzIGFyZSBjaGFuZ2VkCgoyMDE0LTA0LTA5IDEwOjE1OjMzICswMjAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggbWVtb3J5IGxlYWsKCSAgUXVldWVkIGZyYW1lcyB3ZXJlIG5vdCByZWxlYXNlZCBhZnRlciBiZWluZyBwdXNoZWQsIHRoaXMKCSAgY2F1c2VkIGEgbGVhayBvZiB0aGUgR3N0QmFzZVBhcnNlRnJhbWUgc3RydWN0dXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODgzCgoyMDE0LTA0LTA3IDE3OjQ5OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1c2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKQoJICBOZWVkIFVURi04IGVuY29kaW5nLgoKMjAxNC0wNC0wNyAxNzo0NzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBSZXZlcnQgImNoZWNrOiBvbmx5IGNhbGwgc2V0cGdpZCBvbiB2YWxpZCBjaGlsZCBQSURzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI5MzEzYWZjNzViNjhkOTg2ZTQ3M2I3NmI1NTU0MzQ1Njg1NzkxMmIuCgkgIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGluIHVwc3RyZWFtIGxpYmNoZWNrIGluc3RlYWQuIFdlIHdhbnQKCSAgdG8ga2VlcCBkaWZmIG9mIG91ciBsb2NhbCBjb3B5IHRvIHVwc3RyZWFtIGxpYmNoZWNrCgkgIHRvIGEgbWluaW11bS4KCjIwMTQtMDQtMDcgMTc6MzM6MzQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB3YXJuIGlmIHdlIGNhbid0IHJlbW92ZSBvdXIgdGVtcG9yYXJ5IGZpbGUKCSAgSXQncyBub3QgZmF0YWwgdGhvdWdoLCBzbyBkbyBub3QgZXJyb3Igb3V0LgoJICBDb3Zlcml0eSAxMDM3MTIxCgoyMDE0LTA0LTA3IDE1OjM4OjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogb25seSBjYWxsIHNldHBnaWQgb24gdmFsaWQgY2hpbGQgUElEcwoJICBDb3Zlcml0eSAyMDYxODYKCjIwMTQtMDQtMDcgMTU6Mzg6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogbm8gbmVlZCBmb3IgYSB0cmFuc2xhdGVkIG1lc3NhZ2UgZm9yIGltcG9zc2libGUgZXJyb3IgY2FzZXMKCSAgVGhlIG1lc3NhZ2UgaXMgdG9vIHRlY2huaWNhbCBhbnl3YXksIHRoZSBkZWZhdWx0IG1lc3NhZ2Ugd29ya3MKCSAganVzdCBmaW5lIGhlcmUgYXMgd2VsbC4KCjIwMTQtMDQtMDcgMTU6MTg6MzIgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGNhdGNoIGZhaWx1cmUgdG8gc2VlayBiYWNrIHRvIHplcm8gYWZ0ZXIgc2VlayB0ZXN0CgkgIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiB0aGVvcmV0aWNhbGx5LCBidXQgc2luY2UgYSB0cmFuc2llbnQKCSAgZmFpbHVyZSB3b3VsZCBnZXQgdXMgdG8gc2lsZW50bHkgcmVhZCB3cm9uZyBkYXRhLCBpdCdzIHdvcnRoCgkgIGVycm9yaW5nIG91dC4gQW5kIGl0IHNpbGVuY2UgdGhpczoKCSAgQ292ZXJpdHkgMjA2MDM0CgoyMDE0LTA0LTA3IDExOjM2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogRG9uJ3QgZGlzdCB0aGUgYmlzb24gYW5kIGZsZXggZ2VuZXJhdGVkIGhlYWRlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzI1MwoKMjAxNC0wNC0wNiAxMToyMzozNCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogSGFuZGxlIGNhcHMgZmllbGQgdmFsdWVzIGJlaW5nIE5VTEwKCSAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSgpIHdvdWxkIGNhdXNlIGEgc2VnZmF1bHQgd2hlbmV2ZXIgaXQgZW5jb3VudGVyZWQgYW4KCSAgZWxlbWVudCdzIGNhcHMgdGhhdCBoYWQgYSBmaWVsZCB2YWx1ZSBiZWluZyBOVUxMLiBTdWNoIGZpZWxkcyBhcmUgc3VjY2Vzc2Z1bGx5CgkgIGhhbmRsZWQgZS5nLiBieSBHU1RfKl9PQkpFQ1QoKSwgYW5kIHdpdGggdGhpcyBwYXRjaCBzbyBkb2VzCgkgIEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUoKS4gRXZlbiBpZiBzdHJpbmcgZmllbGRzIHdpdGggYSBOVUxMIHZhbHVlIGFyZQoJICBub3Qgc3VwcG9zZWQgdG8gYmUgdmFsaWQgaW4gY2Fwcywgc3VjaCBjYXBzIGNhbiBiZSBjcmVhdGVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NzAxCgoyMDE0LTA0LTA1IDExOjQ0OjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtb3ZlIGFsd2F5cy10cnVlLWNoZWNrcwoJICBhIGdzaXplIGlzIGd1YXJhbnRlZWQgdG8gYmUgcG9zaXRpdmUgb24gYWxsIHN5c3RlbXMgc2luY2UgaXQncyBhbgoJICB1bnNpZ25lZCB2YWx1ZS4KCSAgQ0lEICMxMDM3MTQ3CgoyMDE0LTA0LTA1IDExOjQ0OjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBSZW1vdmUgYWx3YXlzLXRydWUtY2hlY2tzCgkgIGEgZ3NpemUgaXMgZ3VhcmFudGVlZCB0byBiZSBwb3NpdGl2ZSBvbiBhbGwgc3lzdGVtcyBzaW5jZSBpdCdzIGFuCgkgIHVuc2lnbmVkIHZhbHVlLgoJICBDSUQgIzEwMzcxNDUKCSAgQ0lEICMxMDM3MTQ2CgoyMDE0LTA0LTA1IDExOjM3OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUHJldmVudCBkaXZpc2lvbiBvciBtb2R1bG8gYnkgemVybwoJICBUaGUgc3RlcCBjYW4gZW5kIHVwIGJlaW5nIHplcm8gaWYgdGhlIHVuZGVybHlpbmcgdmFsdWUgaXNuJ3QgYSB2YWxpZAoJICByYW5nZSBHVmFsdWUuCgkgIEluIHRob3NlIGNhc2VzLCByZXR1cm4gRkFMU0UuCgkgIFdlIGRvbid0IHVzZSBnX3JldHVybipfaWZfZmFpbCBzaW5jZSBpdCB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIHRyaWdnZXJlZAoJICBieSB0aGUgYWJvdmUtbWVudGlvbm5lZCBfZ2V0X3N0ZXAoKSBmdW5jdGlvbnMuCgkgIFNwb3R0ZWQgYnkgQ292ZXJpdHkuCgoyMDE0LTAzLTI1IDEyOjIzOjMyICswMTAwICBIYWFrb24gU3BvcnNoZWltIDxoYWFrb25AcGV4aXAuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggY29tcGFyaXNvbiBvZiBpbnQvaW50NjQgcmFuZ2UKCSAgQ2hlY2tpbmcgc3RlcCB0aHJlZSB0aW1lcyBzZWVtcyB1bm5lY2Vzc2FyeS4KCSAgQSBzaW1pbGFyIGJ1ZyB3YXMgZml4ZWQgZm9yIGRvdWJsZSByYW5nZSBpbgoJICBjb21taXQgM2VhNmIwNGMxMGIxMGZkZTlkNjIxOTAwNjhmMjc0Yjk0MGVkZWYwNwoKMjAxNC0wNC0wMyAxODoxNzowMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGJ1aWxkIHdpdGggZGVidWcgY2FjaGVkIGJ1ZmZlcnMgZW5hYmxlZAoJICBnc3RpbnB1dHNlbGVjdG9yLmM6ODE4OjU6IGVycm9yOiBmb3JtYXQgbm90IGEgc3RyaW5nIGxpdGVyYWwKCSAgYW5kIG5vIGZvcm1hdCBhcmd1bWVudHMgWy1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5XQoKMjAxNC0wNC0wMyAyMDozMToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTWFrZSBzdXJlIHRvIHNldCB0aGUgRElTQ09OVCBmbGFnIG9uIHRoZSBmaXJzdCBidWZmZXIgb2YgZWFjaCBHT1AgaW4gcmV2ZXJzZSBwbGF5YmFjayBtb2RlCgoyMDE0LTA0LTAzIDEzOjIwOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmluZyBkdXBsaWNhdGVkIGlubmVyIGlmCgkgIFRoZSBpbm5lciBpZiByZXBsaWNhdGVzIHRoZSBzYW1lIGNvZGUgb2YgdGhlIG91dGVyIGFuZCBpcyB1c2VsZXNzCgkgIGFzIGZsYWdfc2VnbWVudCB3aWxsIGFsd2F5cyBiZSB0cnVlLgoJICBGb3VuZCBieSBjb3Zlcml0eS4KCjIwMTQtMDQtMDMgMDc6MzY6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBnc3QtbGF1bmNoLjE6IFBsYXliaW4yIGlzIGRlYWQsIGxvbmcgbGl2ZSBwbGF5YmluCgkgIExvb2tzIGxpa2UgdGhhdCB3YXMgdGhlIGxhc3QgcmVtYWluaW5nIG1lbnRpb24gaW4gY29yZSAuLi4KCjIwMTQtMDQtMDIgMjM6NTI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogQWRkIG1pc3NpbmcgXG4gaW4gb3V0cHV0CgoyMDE0LTA0LTAxIDE1OjM1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IGdzdC11bmluc3RhbGxlZDogZ3N0LXBsdWdpbnMtZ2wgbGlicyBnb3QgbWVyZ2VkIGludG8gLWJhZAoKMjAxNC0wMy0yOSAxMDoxODozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbmNsdWRlIGV2ZW50IHR5cGUgaW4gZGVidWcgb3V0cHV0IHdoZW4gZGVsYXlpbmcgYSBzdGlja3kgZXZlbnQgYmVjYXVzZSBvZiBub3QtbGlua2VkCgoyMDE0LTAzLTI5IDEwOjE2OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc3BsaXR0aW5nIGFuZCByZXZlcnNpbmcgb2YgR09QcyBpbiByZXZlcnNlIHBsYXliYWNrIG1vZGUKCSAgV2UgaXRlcmF0ZSB0aGUgY3VycmVudCBkaXNjb250IGdyb3VwIGJhY2t3YXJkcyBhbmQgcHVzaCBlYWNoIEdPUCBmb3J3YXJkcywKCSAgc3RhcnRpbmcgZnJvbSB0aGUgbGFzdCBvbmUuIEhvd2V2ZXIgaWYgdGhlIGZpcnN0IGJ1ZmZlciBpbiB0aGUgY3VycmVudAoJICBkaXNjb250IGdyb3VwIGlzIGEga2V5ZnJhbWUsIHdlIHdpbGwga2VlcCBpdCBhcm91bmQgdW50aWwgbmV4dCB0aW1lLAoJICB3aGljaCBpcyBmYXIgZnJvbSBpZGVhbC4gSnVzdCBwdXNoIGl0LgoKMjAxNC0wMy0yNSAxMjozODowNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogcGxhY2UgdGhlIGRlZXAtbm90aWZ5IG9uIHRoZSByaWdodCBwaXBlbGluZQoJICBJZiB0aGUgdG9wbGV2ZWwgYmluIGlzIG5vdCBub3QgYSBwaXBlbGluZSwgd2UgcGxhY2UgdGhlIGJpbiBpbiBhCgkgIHBpcGVsaW5lLiBBbHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbm5lY3QgdG8gdGhlIGRlZXAtbm90aWZ5IG9mIHRoaXMgbmV3CgkgIHBpcGVsaW5lIGJlY2F1c2Ugd2Ugd2lsbCBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QoKSBmcm9tIGl0IGxhdGVyLgoKMjAxNC0wMy0yNCAxNjozNDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjb3B5IGxhc3Rfc2FtcGxlIG9uIERSQUlOCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBob2xkIGEgcmVmIHRvIGEgYnVmZmVyIGZyb20gYmVmb3JlIHRoZSBEUkFJTiBxdWVyeSBieQoJICBtYWtpbmcgYSBjb3B5IG9mIHRoZSBsYXN0X2J1ZmZlci4KCjIwMTQtMDMtMjQgMTY6MTE6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRvbid0IGNsZWFyIFRBRyBvbiBOVUxMIGJ1ZmZlcgoJICBXaGVuIHRoZSBidWZmZXIgZmFpbHMgdG8gY29weSwgZG9uJ3QgY2xlYXIgdGhlIFRBRyBvbiB0aGUgTlVMTCBwb2ludGVyLgoKMjAxNC0wMy0yMCAwNjoxNDozMyAtMDQwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBldmVudC9wcmVyb2xsIGRlYWRsb2NrCgkgIFRoZSBxbG9jayBpcyByZWxlYXNlZCBiZXR3ZWVuIHBvcHBpbmcgYSBidWZmZXIgZnJvbSB0aGUgcXVldWUKCSAgYW5kIHB1c2hpbmcgaXQuIFdoZW4gdGhpcyBidWZmZXIgY2F1c2VzIHRoZSBzaW5rIHRvIHdhaXQgaW4KCSAgcHJlcm9sbCwgdGhpcyBsZXRzIGEgcXVlcnkgc2VlIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHR5LCBhbmQKCSAgcHVzaCB0aGUgcXVlcnkgdGhlbiB3YWl0IGZvciBpdCB0byBiZSBzZXJ2aWNlZC4gSG93ZXZlciwgdGhpcwoJICB3aWxsIG5vdCBiZSBkb25lIHRpbGwgYWZ0ZXIgcGVyb2xsLCBhbmQgdGhpcyB3aWxsIHRodXMgYmxvY2suCgkgIElmIHVwc3RyZWFtIHdhcyB3YWl0aW5nIG9uIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlIGJlZm9yZQoJICBzd2l0Y2hpbmcgdG8gUExBWUlORywgYSBkZWFkbG9jayB3b3VsZCBlbnN1ZS4KCSAgV2UgZml4IGl0IGJ5IHJlZnVzaW5nIHRoZSBxdWVyeSB3aGVuIGJ1ZmZlcmluZywgYXMgcGVyIFdpbSdzCgkgIHJlY29tbWVuZGF0aW9uIG9uIElSQy4KCjIwMTQtMDMtMjMgMTI6NTM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIHRlc3RzOiBtYWtlIG5ldGNsaWVudGNsb2NrIHRlc3QgZmFzdGVyIGFuZCBsZXNzIGZsYWt5CgoyMDE0LTAzLTIxIDEyOjE2OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IG5ldyBmbGFnIHR5cGVzIHRvIHBhc3MgbWFrZSBjaGVjawoKMjAxNC0wMy0xOSAwOTozMzo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXBkYXRlIGJ1ZmZlcmluZyBzdGF0dXMgYW5kIG1heWJlIHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2UgcmlnaHQgd2hlbiBlbmFibGluZyBidWZmZXJpbmcKCjIwMTQtMDMtMTkgMDk6MzI6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXBkYXRlIGJ1ZmZlcmluZyBzdGF0dXMgYW5kIG1heWJlIHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2UgcmlnaHQgd2hlbiBlbmFibGluZyBidWZmZXJpbmcKCjIwMTQtMDMtMTggMTg6MTI6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBmYWtlc2luazogVXBkYXRlIHBvc2l0aW9ucyB3ZSdyZSBjaGVja2luZyBmb3IgYWZ0ZXIgYSBzdGF0ZSBpcyBsb3N0CgoyMDE0LTAzLTE4IDE4OjExOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXBkYXRlIHN0YXJ0IHRpbWUgd2hlbiB3ZSBsb3NlIG91ciBzdGF0ZQoJICBPdGhlcndpc2Ugd2UgcmVwb3J0IG5vdCB0aGUgY29ycmVjdCBwb3NpdGlvbiB3aGlsZSB0aGUgc3RhdGUgaXMgbG9zdC4KCjIwMTQtMDMtMTggMTY6NDc6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBjbGlwIHRoZSByZXBvcnRlZCBwb3NpdGlvbiBpbiBQQVVTRUQgdG8gYWZ0ZXIgdGhlIGxhc3QgYnVmZmVyIGVuZCB0aW1lc3RhbXAKCSAgT3RoZXJ3aXNlIHdlIGp1bXAgZm9yd2FyZCB3aGVuIHBhdXNpbmcsIGFuZCBnbyBiYWNrd2FyZHMgYSBiaXQgYWdhaW4KCSAgd2hlbiByZXN1bWluZyBwbGF5YmFjay4KCjIwMTQtMDMtMTcgMTA6MDU6MzEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnRzIGZvciBHc3RUb2MgbG9vcAoKMjAxNC0wMy0xNyAxMDowNToxOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydCBmb3IgZ3N0KmRldmljZSBzeW1ib2xzCgoyMDE0LTAzLTE3IDA5OjUxOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBVc2UgbG9jYWwgaW5jbHVkZXMgYW5kIHVzZSBnc3RfcHJpdmF0ZSBiZWZvcmUgYW55dGhpbmcKCSAgU2hvdWxkIGZpeCBidWlsZCBpc3N1ZXMgb24gQlNECgoyMDE0LTAzLTE2IDIwOjUwOjUzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnBlY3Q6IFByaW50IGRldmljZSBtb25pdG9yCgoyMDE0LTAzLTE2IDE1OjU2OjU5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2U6IEFkZCAia2xhc3MiIHRvIEdzdERldmljZXMKCjIwMTQtMDMtMTYgMTg6MDI6NTYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJICBkZXZpY2Vtb25pdG9yOiBNYWtlIGNsYXNzZXMgaW50byBwdXJlIHN0cmluZ3MKCSAgSW5zdGVhZCBvZiBoYXZpbmcgc3RyaW5ncyAmIGZsYWdzLCBtYWtlIHRoZW0ganVzdCBzdHJpbmdzCgoyMDE0LTAzLTE3IDA2OjI5OjI3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBGaXggZXh0ZW5kZWQgbWVzc2FnZSBoYW5kbGluZyB3aXRoIGdzdF9idXNfcG9wX3RpbWVkX2ZpbHRlcmVkKCkKCSAgTWFrZSBzdXJlIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMgZG9uJ3QgZ2V0IGFjY2lkZW50YWxseSBtYXRjaGVkCgkgIHdoZW4gbm90IGFza2VkIGZvciBpbiB0aGUgbWFzawoKMjAxNC0wMy0xNyAwNToyNDoxMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogQXZvaWQgcG9pbnRsZXNzIG9iamVjdCBsb2NrIGZvcndhcmRpbmcgbWVzc2FnZXMuCgkgIEV2ZXJ5IGluc3RhbmNlIG9mIGNhbGxpbmcgYmluX2RvX21lc3NhZ2VfZm9yd2FyZCgpIGZpcnN0IHRvb2sgdGhlCgkgIG9iamVjdCBsb2NrLCBzbyB0aGF0IGJpbl9kb19tZXNzYWdlX2ZvcndhcmQoKSBjb3VsZCBkcm9wIGl0IGFuZAoJICB0aGVuIHJlY2xhaW0uIEluc3RlYWQsIG9ubHkgdGFrZSB0aGUgb2JqZWN0IGxvY2sgYWZ0ZXJ3YXJkIHdoZXJlCgkgIG5lZWRlZC4KCjIwMTQtMDItMTkgMDI6Mjc6MzYgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1kdXBvbmNoZWxsZTFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogV2hlbiBzZWVrIGZsdXNoZWQsIGltbWVkaWF0ZWx5IHNldCBlb3NwYWRzIHRvIDAKCSAgVGhpcyBwcmV2ZW50cyBzaXR1YXRpb25zIHdoZXJlIGEgZmlyc3QgYnJhbmNoIHdvdWxkIGdldCBzZWVrZWQgYW5kCgkgIHJlY2VpdmUgYSBidWZmZXIgYmVmb3JlIGFsbCBicmFuY2hlcyBnb3Qgc2Vla2VkLCBhbmQgdGh1cyBjb2xsZWN0ZWQKCSAgd291bGQgZ2V0IGNhbGxlZCBiYXNlZCBvbiBFT1MgZnJvbSB0aGUgcHJldmlvdXMgc2VnbWVudC4KCSAgQXMgYSBjb25zZXF1ZW5jZSwgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHNlZWtpbmcsIGRvbid0IGRlY3JlYXNlCgkgIHRoZSBlb3NwYWRzIG51bWJlciB3aGVuIGEgRkxVU0hfU1RPUCBpcyByZWNlaXZlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDU3MQoKMjAxNC0wMy0xNiAxNzo0NzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVucmVmIHBlZXIgcGFkCgoyMDE0LTAyLTE2IDIwOjM1OjA5ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtZHVwb25jaGVsbGUxQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEZvcndhcmQgc2VlayBldmVudHMgdG8gdGhlIHBlZXIgZGlyZWN0bHkKCSAgVGFrZW4gZnJvbSB0aGUgYWRkZXIgc2VlayBoYW5kbGluZyBjb2RlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NDYxCgoyMDE0LTAxLTAyIDIyOjMwOjExICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBleHBhbmQgR3N0VG9jRW50cnkgd2l0aCBsb29wIGZpZWxkcwoJICBBZGQgbG9vcF90eXBlIGFuZCByZXBlYXRfY291bnQgZmllbGRzIHRvIEdzdFRvY0VudHJ5IHBsdXMgc2V0dGVycyBhbmQgZ2V0dGVycy4KCSAgVGhpcyBhbGxvd3MgdG8gcmVwcmVzZW50IGVkaXQtbGlzdHMgaW4gYSB0b2MgYXMgd2VsbCBhcyBsb29wcyBpbiBpbnN0cnVlbW50cyAod2F2LCB4aSkuCgkgIEFQSTogZ3N0X3RvY19lbnRyeV9zZXRfbG9vcAoJICBBUEk6IGdzdF90b2NfZW50cnlfZ2V0X2xvb3AKCjIwMTQtMDMtMTYgMTU6MTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiB1cGRhdGUgZm9yIG5ldyBtZXNzYWdlIEFQSQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDEzLTAxLTA4IDIxOjMwOjQ0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiBBZGQgZGV2aWNlIG1vbml0b3IgYWdncmVnYXRvcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDE0LTAzLTE2IDE0OjA4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMgYW5kIGdzdF9idXNfdGltZWRfcG9wX2ZpbHRlcmVkCgoyMDE0LTAzLTE2IDE0OjA4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2UsIGJ1czogZG8gZXh0ZW5kZWQgbWVzc2FnZSB0eXBlcyBzbGlnaHRseSBkaWZmZXJlbnRseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDE0LTAzLTE2IDE0OjA3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGZpeCBpbmRlbnRhdGlvbgoKMjAxMi0xMC0xNiAxMjoyNzowNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZW1vbml0b3I6IEFkZCBHc3REZXZpY2VNb25pdG9yIGFuZCByZWxhdGVkCgkgIEFsc28gYWRkIEdzdERldmljZSBhbmQgR3N0RGV2aWNlTW9uaXRvckZhY3RvcnkKCSAgQW5kIGFkZCBjb2RlIHRvIHRoZSByZWdpc3RyeSB0byBzYXZlIHRoZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxMy0wOC0xNCAxNTo1NjoxMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiBBZGQgR1NUX01FU1NBR0VfRVhURU5ERUQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxNC0wMy0xNiAxMTowNTo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGFjdHVhbGx5IHJldHVybiBkYXRhLnJldAoJICBUaGUgcmV0dXJuIHZhbHVlIGZyb20gZ3N0X3BhZF9mb3J3YXJkKCkgaXMgdGhlIGFnZ3JlZ2F0ZWQgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGNhbGxiYWNrIGFuZCB0aGUgY2FsbGJhY2sgcmV0dXJucyBGQUxTRSB0byBjb250aW51ZSBpdGVyYXRpbmcuCgoyMDE0LTAzLTE1IDE1OjU0OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZm9yd2FyZCByZXR1cm4gdmFsdWUgZnJvbSBnc3RfcGFkX2ZvcndhcmQKCSAgSW5zdGVhZCBvZiBpZ25vcmluZyB0aGUgcmV0dXJuIHZhbHVlIGFuZCBhbHdheXMgcmV0dXJuIFRSVUUgcGFzcyB0aGUgYWxyZWFkeSBhZ3JlZ2F0ZWQgcmVzdWx0IGJhY2suCgoyMDE0LTAzLTE1IDEzOjU3OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IG1ha2UtY2hlY2sgYnkgcnVubmluZyAnbWFrZSB1cGRhdGUtZXhwb3J0cycKCjIwMTQtMDMtMTQgMTM6MzI6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogZml4IGVvcyBjb3VudCBvbiB0ZXN0IGZvciBub3QtbGlua2VkIGNhc2UKCSAgRnJvbSB0aGUgdGVzdCBjYXNlOgoJICAvKiBUaGlzIHRlc3QgY3JlYXRlcyBhIG11bHRpcXVldWUgd2l0aCAyIHN0cmVhbXMuIE9uZSByZWNlaXZlcwoJICAqIGEgY29uc3RhbnQgZmxvdyBvZiBidWZmZXJzLCB0aGUgb3RoZXIgb25seSBnZXRzIG9uZSBidWZmZXIsIGFuZCB0aGVuCgkgICogbmV3LXNlZ21lbnQgZXZlbnRzLCBhbmQgcmV0dXJucyBub3QtbGlua2VkLiBUaGUgbXVsdGlxdWV1ZSBzaG91bGQgbm90IGZpbGwuCgkgICovCgkgIElmIG9uZSBvZiB0aGUgcXVldWVzIGdvZXMgRU9TIGFuZCB0aGUgb3RoZXIgcmV0dXJucyBOT1RfTElOS0VEIHRoZSBzdHJlYW0KCSAgY2FuIGJlIGNvbnNpZGVyZXJlZCBFT1MgYXMgYSBOT1RfTElOS0VEIG1lYW5zIHRoYXQgb25lIG9mIHRoZSBicmFuY2hlcyBoYXMgbm8KCSAgc2luayBkb3duc3RyZWFtIHRoYXQgd2lsbCBibG9jayB0aGUgRU9TIG1lc3NhZ2UgcG9zdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTkxNwoKMjAxNC0wMy0wMSAyMzoxODo0NCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkYXB0IGdzdF9hZGFwdGVyX2NvcHkoKSBmb3IgYmluZGluZ3MKCSAgVGhpcyBpcyBkb25lIGJ5IGludHJvZHVjaW5nIGEgbmV3IGdzdF9hZGFwdGVyX2NvcHlfYnl0ZXMoKSBjYWxsIHRoYXQKCSAgcmV0dXJucyBhIEdCeXRlcyBzdHJ1Y3R1cmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU0NzYKCjIwMTQtMDMtMTQgMTg6NDA6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgZG9jczogZml4IG11bHRpcXVldWUgZG9jcyBmb3IgbmV3IHRlbXBsYXRlIG5hbWVzIGZvb18lZCAtPiBmb29fJXUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjM1OAoKMjAxNC0wMy0xMSAyMTo1NTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MKCjIwMTQtMDMtMTEgMjE6NDQ6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2ltcGxpZnkgZ3N0X3BhZF9saW5rX2dldF9uYW1lKCkgYW5kIGZpeCBTaW5jZSBtYXJrZXIKCSAgSGFzIGFkZGVkIGJlbmVmaXQgdGhhdCBjb21waWxlciBtaWdodCB3YXJuIGlmIG1vcmUgdmFsdWVzCgkgIGFyZSBhZGRlZCB0byB0aGUgZW51bS4KCjIwMTQtMDMtMTEgMjE6NDY6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBkZWJ1ZyBoZWxwZXIgZm9yIEdzdFBhZExpbmtSZXR1cm4gbmFtZXMKCSAgQWRkIGEgaGVscGVyIGxpa2UgZ3N0X2Zsb3dfZ2V0X25hbWUoKSBmb3IgR3N0UGFkTGlua1JldHVybi4gVXNlIHRoaXMgaW4gY29yZS4KCSAgQVBJOiBnc3RfcGFkX2xpbmtfZ2V0X25hbWUoKQoKMjAxNC0wMy0xMSAyMToxMjoxNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogdXNlIHN0b3JlX3N0aWNreSBldmVudHMgYWRkIGFkZCBtb3JlIGxvZ2dpbmcKCSAgVXNlIHRoZSBwYWQgYXMgb2JqZWN0IGZvciBsb2dnaW5nIHRvIGdldCBtb3JlIGNvbnRleHQuIFVzZQoJICBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpIGluc3RlYWQgb2Ygc2VuZGluZyB0aGUgZXZlbnQuIFRoaXMgYXZvaWRzIGEgd2FybmluZwoJICBhcyBoZXJlIHRoZSBwYWQgaXMgbm90IHlldCBsaW5rZWQgYW5kIHdlIGFjdHVhbGx5IGRvbid0IHdhbnQgdG8gc2VuZCBhbnl3YXkuCgoyMDE0LTAzLTEwIDEwOjAwOjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaWYgYnVmZmVyaW5nIGlzIGRpc2FibGVkIHdoaWxlIGJ1ZmZlcmluZywgcG9zdCAxMDAlIG1lc3NhZ2UKCSAgQXZvaWRzIHN0YWxsIHdhaXRpbmcgZm9yIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlCgoyMDE0LTAzLTEwIDA5OjQ5OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJICBidWZmZXJpbmdfaXRlcmF0aW9uIHdhcyBuZXZlciB1c2VkCgoyMDE0LTAzLTEwIDA5OjQ5OjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IHF1ZXVlMjogcHJlc2VydmUgbGFzdCBmbG93IHJlc3VsdCB3aGVuIHB1c2hpbmcgZXZlbnRzCgkgIEF2b2lkcyBtaXN0YWtlbmx5IHJldHVybmluZyBfT0sgd2hlbiBkb3duc3RyZWFtIGlzIHN0aWxsCgkgIF9OT1RfTElOS0VEIG9uIHN1YnNlcXVlbnQgcmVjZWl2ZWQgcGFkIHB1c2hlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTE3CgoyMDE0LTAzLTEwIDA5OjQ5OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpZiBidWZmZXJpbmcgaXMgZGlzYWJsZWQgd2hpbGUgYnVmZmVyaW5nLCBwb3N0IDEwMCUgbWVzc2FnZQoJICBBdm9pZHMgc3RhbGwgd2FpdGluZyBmb3IgYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUKCjIwMTQtMDMtMTAgMDk6NDg6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvIG5vdCByZXNldCBsYXN0IHB1c2ggcmVzdWx0IHdoZW4gcHVzaGluZyBldmVudHMKCSAgVXNlIHRoZSBsYXN0IHJlc3VsdCBhcyBhIGRlZmF1bHQgd2hlbiBwdXNoaW5nIGEgaXRlbSBmcm9tIGEgc2luZ2xlIHF1ZXVlLAoJICBvdGhlcndpc2UgdGhlIHN0YXR1cyBnZXRzIHJlc2V0IHRvIF9PSyB3aGVuIHB1c2hpbmcgZXZlbnRzLgoJICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aGVuIG1pc3Rha2VubHkgYWN0aXZhdGluZyBhIG5vdC1saW5rZWQgc3RyZWFtCgkgIHRoYXQgaXMgYmVpbmcgaWdub3JlZCB1cHN0cmVhbSBhcyBpdCBpcyBub3QgYmVpbmcgdXNlZCAoYWRhcHRpdmUKCSAgc2NlbmFyaW9zKSwgaXQgd2lsbCBtYWtlIHRoZSBtdWx0aXF1ZXVlIHBvc3QgYSBidWZmZXJpbmcgbWVzc2FnZQoJICBvbiBhIHBhZCB0aGF0IHdvbid0IHJlY2VpdmUgYnVmZmVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTE3CgoyMDE0LTAzLTA3IDIwOjQzOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcjogaW52ZXJ0IG1lYW5pbmcgb2YgR1NUX0JVRkZFUl9GTEFHX1RBR19NRU1PUlkKCSAgSXQncyBuaWNlciB0byBvbmx5IGhhdmUgaXQgc2V0IHdoZW4gc29tZXRoaW5nIG5vdGV3b3J0aHkKCSAgaGFwcGVuZWQgYW5kIG90aGVyd2lzZSB1bnNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTg2MgoKMjAxNC0wMy0wNiAyMjo1MTo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZ3N0X3BhZF9hZGRfcHJvYmUoKSByZXR1cm4gdmFsdWUgZG9jcwoJICBBbHNvIGZpeCBjb21tZW50IHR5cG9zIGFuZCBhZGQgbW9yZSBkZXRhaWwgaW4gdGhlIGxvZ3MuCgoyMDE0LTAzLTA2IDIwOjQwOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBmYWtlc2luaywgaWRlbnRpdHksIGZha2VzcmM6IGZpeCBkZWJ1ZyBwcmludGluZyBpZiBUQUdfTUVNT1JZIGJ1ZmZlciBmbGFnCgkgIFRoZSBJTl9DQVBTIGZsYWcgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUuCgoyMDE0LTAzLTA2IDEzOjAxOjQwICswMjAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiB1c2UgZ3N0X3BhZF9nZXRfcGVlciB0byBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgcGFkCgkgIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBsb2NrIG9mIHRoZSBpbnRlcm5hbCBwYWQgaXMgaGVsZCB3aGlsZSByZWZlcmVuY2luZwoJICBpdCdzIHBlZXIgKD0gdGhlIHRhcmdldCBwYWQpLCB3aGljaCBlbnN1cmVzIHRoYXQgdGhlIHBlZXIgaXMgbm90CgkgIGdvaW5nIHRvIGJlIHVubGlua2VkL2Rlc3Ryb3llZCBpbiB0aGUgbWVhbnRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4MDkKCjIwMTQtMDMtMDYgMTI6NDA6MjMgKzAyMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIHRhcmdldCBwYWQgd2hpbGUgdW5saW5raW5nIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4MDkKCjIwMTQtMDMtMDIgMDU6MDg6MjQgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IElnbm9yZSBnY292IGludGVybWVkaWF0ZSBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NDc4CgoyMDE0LTAzLTAyIDE3OjU1OjQ1ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBkb2NzOiBGaXggdHlwb3MgYW5kIHJlbW92ZSB1bmtub3duIGFubm90YXRpb25zCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU1MTcKCjIwMTQtMDItMjggMjA6NTM6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBkb2NzOiB1c2UgdGhlIG5ldyBtYXJrZG93biBmb3Igb3JkZXJlZCBsaXN0LgoJICBUaGlzIHdhcyBwbGFpbiB0ZXh0IHRoYXQgaGFkIGFsbCBsaXN0IGl0ZW1zIG9uZSBhZnRlciB0aGUgb3RoZXIgKGluY2x1ZGluZyBhCgkgIHJlcGVhdGVkIG51bWJlcikuIE5vdyBpdCB3aWxsIGF0bGVhc3QgbG9vayBnb29kIHdoZW4gcHJvY2Vzc2VkIHdpdGggZ3RrLWRvYwoJICAxLjIwLgoKMjAxNC0wMi0yOCAwOTozNDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmUxNjcyZSB0byBiY2IxNTE4CgoyMDE0LTAyLTI3IDIyOjI2OjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9Ac2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZG9jczogZml4IHByb2JsZW1zIGludHJvZHVjZWQgYnkgYzA2OGIyMjVmZWY1YTliZjAKCSAgLSBGaXggZmFpbGluZyBidWlsZAoJICAtIERyb3AgYWRkZWQgdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxNC0wMi0yNyAxODoyNzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgcmV0dXJuIHZhbHVlcyB0byBnX3JldHVybl9pZl9mYWlsCgkgIEZJeGVzIHByZXZpb3VzIGNvbW1pdC4KCjIwMTQtMDItMjcgMTg6MDY6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGRvY3M6IGNvbnZlcnQgdGhlIGV4YW1wbGVzIHRvIHVzZSBndGstZG9jIG1hcmt1cCwgaW5zdGVhZCBvZiBkb2Nib29rCgkgIFRoZSBndGstZG9jIG1hcmt1cCBpcyBsZXNzIGludHJ1c2l2ZSBhbmQgYmV0dGVyIGhhbmRsZWQgd2hlbiBjcmVhdGluZyBkb2NzIGZvcgoJICBsYW5ndWFnZSBiaW5kaW5ncy4gVGhlIHRpdGxlcyAod2hlcmUgdXNlZCkgd2hlcmUgbm90IGFkZGluZyBtdWNoLgoKMjAxNC0wMi0yNyAxNjo0NjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBuZXcgQVBJIGRvIGRvY3MKCjIwMTQtMDItMjcgMTY6NDA6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogb25seSByZWxlYXNlIGJ1ZmZlcnMgd2l0aCB3cml0YWJsZSBtZW1vcnkKCSAgQ2hlY2sgaWYgdGhlIG1lbW9yeSBpcyB3cml0YWJsZSBiZWZvcmUgcmVsZWFzaW5nIHRoZSBidWZmZXIgaW50byB0aGUKCSAgcG9vbCBhZ2Fpbi4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcyBzY2VuYXJpby4KCjIwMTQtMDItMjcgMTY6Mzk6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGZ1bmN0aW9uIHRvIGNoZWNrIHdyaXRhYmlsaXR5IG9mIG1lbW9yeQoJICBDaGVjayBpZiBtZW1vcnkgaXMgd3JpdGFibGUgaW4gYSBidWZmZXIgYW5kIHRodXMgaXMgZXhjbHVzaXZlbHkgb3duZWQgYnkKCSAgdGhpcyBidWZmZXIuCgoyMDE0LTAyLTI3IDE1OjE0OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IFVzZSBUQUdfTUVNT1JZIHRvIGNoZWNrIG1lbW9yeSBiZWZvcmUgcmVsZWFzaW5nCgkgIFRhZyBhbGxvY2F0ZWQgYnVmZmVycyB3aXRoIFRBR19NRU1PUlkuIFdoZW4gdGhleSBhcmUgcmVsZWFzZWQgbGF0ZXIsCgkgIG9ubHkgYWRkIHRoZW0gYmFjayB0byB0aGUgcG9vbCBpZiB0aGUgdGFnIGlzIHN0aWxsIHRoZXJlIGFuZCB0aGUgbWVtb3J5CgkgIGhhcyBub3QgYmVlbiBjaGFuZ2VkLCBvdGhlcndpc2UgdGhyb3cgdGhlIGJ1ZmZlciBhd2F5LgoJICBBZGQgdW5pdCB0ZXN0IHRvIGNoZWNrIHZhcmlvdXMgc2NlbmFyaW9zLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NDgxCgoyMDE0LTAyLTI3IDE0OjM1OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBhIG5ldyBmbGFnIHRvIHRyYWNrIG1lbW9yeSBjaGFuZ2VzCgkgIEFkZCBhIGZsYWcgdG8gY2hlY2sgaWYgdGhlIG1lbW9yeSBjaGFuZ2VkIGluIGEgYnVmZmVyLgoKMjAxNC0wMi0yNiAxNTozNjo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVtb3ZlIHdyb25nIGNvbW1lbnQKCSAgUmVmY291bnQgYW5kIHdyaXRhYmlsaXR5IGFyZSBub3QgcmVsYXRlZCBmb3IgbWVtb3J5IG9iamVjdHMuCgoyMDE0LTAyLTI1IDE3OjQ2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHJlZmFjdG9yIGZyZWVfYnVmZmVyCgkgIE1ha2UgYSBkb19mcmVlX2J1ZmZlciBtZXRob2QgdG8gYWxzbyBkZWNyZW1lbnRzIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkCgkgIGJ1ZmZlcnMuIFN0b3Agd2lsbCBub3cgYmUgc3VjY2Vzc2Z1bCB3aGVuIGFsbCBidWZmZXJzIGFyZSBmcmVlZC4KCjIwMTQtMDItMjYgMjI6MTA6MjggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFhMDdkYTkgdG8gZmUxNjcyZQoKMjAxNC0wMi0yNiAyMDoyNDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGFkZCBhIGxlZ2VuZCB0byBwaXBlbGluZSBkdW1wcwoJICBXZSB1c2UgYSBjb3VwbGUgb2Ygc3ltYm9scyB0byByZXByZXNlbnQgc3RhdGVzL2ZsYWdzLiBBZGQgYSBzaG9ydCBleHBsYW5hdGlvbiBmb3IgdGhlbS4KCjIwMTMtMDctMzEgMDk6MjY6MjYgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBQcmludCBpZiB0aGVyZSBpcyBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxODkKCjIwMTQtMDItMjUgMTY6MTE6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogVXNlIGdldF91aW50NjQoKSBpbiBnc3Rfc3RydWN0dXJlX2dldF9jbG9ja190aW1lKCkKCSAgSXRzIGNvZGUgaXMgaWRlbnRpY2FsLgoKMjAxNC0wMi0yNSAxNTo0MTo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnZXR0ZXJzIGZvciBpbnQ2NCBhbmQgdWludDY0IHZhbHVlcwoKMjAxNC0wMi0xOSAyMToxNzoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvIG5vdCBzZW5kIGVvcyB3aGVuIHNlZWtpbmcgYWZ0ZXIgbGFzdCBidWZmZXIKCSAgSWYgcHVzaGluZyB0aGUgbGFzdCBidWZmZXIgdHJpZ2dlcnMgYSBzZWVrIGZyb20gZG93bnN0cmVhbSwgZG8gbm90CgkgIGdvIGludG8gRU9TIGlmIGEgbmV3IHNlZ21lbnQgd2FzIHJlcXVlc3RlZC4KCSAgQ29udGFpbnMgdW5pdCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ3NTcKCjIwMTQtMDItMjEgMDk6MDM6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgaW5zYW5pdHkgYW5kIHRoZSBvbGQgZ3N0LW9wZW5tYXgKCjIwMTQtMDItMjAgMTg6NDc6NDIgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBwYXRocyB0byBnc3QtZGV2dG9vbHMvdmFsaWRhdGUKCjIwMTQtMDItMjAgMTU6MzQ6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSWYgd2Ugb25seSBoYXZlIGEgc2luZ2xlIHBhZCwgZG9uJ3QgY29uc2lkZXIgYWxsIHBhZHMgbm90IGxpbmtlZCBhbmQgZ3JvdyB0aGUgcXVldWUgaW5kZWZpbml0ZWx5CgoyMDE0LTAyLTE5IDEwOjU3OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFsc28gdXNlIHRoZSBnbG9iIG9uIEdTVF9DSEVDS1Mgd2hlbiBmb3JjaW5nIHRvIHJ1biBicm9rZW4gdGVzdHMKCSAgR1NUX0NIRUNLUyBjYW4gYmUgc2ltcGx5ICJ0ZXN0KiIgdG8gcnVuIHJ1biBhbGwgdGVzdHMgKGluY2x1ZGluZyB0aG9zZSB0aGF0IGFyZQoJICBtYXJrZWQgYnJva2VuKS4gVXBkYXRlIHRoZSBzcGFyc2UgY29tbWVudHMgYSBiaXQgdG8gdGVsbCBob3cgdGhpcyB3b3Jrcy4KCjIwMTQtMDItMTggMTU6NDY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB0cnVuY2F0ZSB0aGUgdGVtcCBmaWxlIG9uIHNodXRkb3duCgkgIFdlIHdhbnQgdG8ga2VlcCB0aGUgZG93bmxvYWRlZCBmaWxlIHVudHJ1bmNhdGVkIHNvIHRoYXQgd2UgY2FuIHVzZSBpdAoJICBhZ2FpbiBsYXRlci4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQzNzMKCjIwMTQtMDItMTggMTQ6MjE6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggbWVyZ2luZyBvZiByYW5nZXMKCSAgTWFrZSBhIG1ldGhvZCB0byBnZXQgdGhlIHNlZWtpbmcgdGhyZXNob2xkLiBJZiBkYXRhIGlzIGZ1cnRoZXIgYXdheSBmcm9tCgkgIHRoaXMgdGhyZXNob2xkIHdlIHdhbnQgdG8gcGVyZm9ybSBhIHNlZWsgdXBzdHJlYW0uCgkgIFdoZW4gdGhlIGN1cnJlbnQgZG93bmxvYWRlZCByYW5nZSBjYW4gbWVyZ2Ugd2l0aCB0aGUgbmV4dCByYW5nZSwKCSAgYWN0dWFsbHkgaW5jbHVkZSB0aGUgZGF0YSBvZiB0aGUgbmV4dCByYW5nZSBpbnRvIHRoZSBjdXJyZW50IHJhbmdlCgkgIGluc3RlYWQgb2YgZGlzY2FyZGluZyBpdC4gQWxzbyBkZWNpZGUgaWYgd2Ugc2VlayB0byB0aGUgd3JpdGUgcG9zaXRpb24KCSAgb2YgdGhlIG1lcmdlZCByYW5nZSBvciBjb250aW51ZSByZWFkaW5nLgoKMjAxNC0wMi0xOCAxMTo0OTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW4gYXV0b21hdGljX2VvcyBtb2RlLCBkb24ndCBtb2RpZnkgdGhlIHNpemUKCSAgRG9uJ3Qgc2V0IHRoZSBzaXplIHRvIC0xIGluIGF1dG9tYXRpY19lb3MgbW9kZSAod2hpY2ggYWxzbyB1cGRhdGVzIHRoZQoJICBkdXJhdGlvbiB0byAtMSkuIFdlIG9ubHkgd2FudCBhdXRvbWF0aWNfZW9zIG1vZGUgaW5mbHVlbmNlIHRoZSBtYXhzaXplCgkgIGNhbGN1bGF0aW9ucyB3aXRob3V0IGFueSBzaWRlIGVmZmVjdHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ1NjQKCjIwMTQtMDItMTcgMTE6Mzc6MzAgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIHB3ZzogVXBkYXRlIHJhdyBwcm9wZXJ0aWVzCgkgIFVzaW5nIGluZm8gZnJvbSBnc3QtcGx1Z2lucy1iYXNlL2RvY3MvZGVzaWduIC4KCSAgRW5jb2RlZCBzdHJlYW1zIG1pZ2h0IG1ha2UgdXNlIG9mIHRoZSByYXcgcHJvcGVydGllcywgc28gbGlzdCB0aGVtIGFsbCB1bmRlciBmb28vKiAuCgkgIEZvciBmb28vcmF3LCBvbmx5IG5vdGUgd2hpY2ggb2YgdGhlc2UgcHJvcGVydGllcyBhcmUgbWFuZGF0b3J5LgoJICBJIGRpZG4ndCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHJhdyBmb3JtYXRzIHlldC4gVGhvc2UgbWlnaHQgc3RpbGwgYmUgb3V0LW9mLWRhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQxODcKCjIwMTQtMDItMTcgMTc6Mjg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiByZW1vdmUgZGVhZCBodHRwIGxpbmtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ1NjEKCjIwMTQtMDItMTUgMjI6MzQ6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGRvY3M6IGFkZCB0aGUgYm94ZWQgdHlwZXMgdG8gdGhlIC50eXBlcy5pbgoJICBUaGlzIG1ha2VzIHRoZW0gc2hvdyB1cCBpbiB0aGUgb2JqZWN0IGhpZXJhcmNoeS4KCjIwMTQtMDItMTUgMjE6MjI6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZG9jczogZ3RrZG9jIGlzIG5vdCBnb29kIGF0IHBhcnNpbmcgaW5saW5lIGZ1bmN0aW9ucyBpbiBoZWFkZXJzCgkgIE1hcmsgdGhlIGlubGluZSBmdW5jdGlvbiwgc28gdGhhdCBndGtkb2Mgc2tpcHMgdGhlbS4gQXZvaWRzIHNvbWUgd2FybmluZ3MgYWJvdXQKCSAgdW5wYXJzYWJsZSBkZWNsYXJhdGlvbnMuCgoyMDE0LTAyLTEzIDEyOjA3OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzcmM6IEFkZCBnc3RfYmFzZV9zcmNfc2V0X2F1dG9tYXRpY19lb3MoKSBBUEkKCSAgVGhpcyBkZWZhdWx0cyB0byBUUlVFIGFuZCBpZiBpdCBpcyBzZXQgdG8gRkFMU0UgaXQgaXMgdGhlIHN1YmNsYXNzZXMKCSAgcmVzcG9uc2liaWxpdHkgdG8gcmV0dXJuIEdTVF9GTE9XX0VPUyBmcm9tIHRoZSBjcmVhdGUoKSB2bWV0aG9kIG9uY2UKCSAgdGhlIHN0cmVhbSBpcyBkb25lLgoKMjAxNC0wMi0xMSAxNjozMDozMSArMDAwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IEZpeCBsb2NhdGlvbiBvZiBwbHVnaW5zIGFuZCByZWdpc3RyeSBpbiBob21lIGRpcmVjdG9yaWVzCgkgIEZpeGVzIG91dCBvZiBkYXRlIGRvY3VtZW50YXRpb24gbGVmdCBvdmVyIHNpbmNlIDAuMTAuICBJbiAxLjAgcGx1Z2lucyBhcmUKCSAgc3RvcmVkIGluICRYREdfREFUQV9IT01FIGFuZCB0aGUgcmVnaXN0cnkgaW4gJFhER19DQUNIRV9IT01FIGNvbmZvcm1hbnQKCSAgd2l0aCB0aGUgWERHIEJhc2UgRGlyZWN0b3J5IFNwZWNpZmljYXRpb25bMV0uCgkgIFsxXTogaHR0cDovL3N0YW5kYXJkcy5mcmVlZGVza3RvcC5vcmcvYmFzZWRpci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRlc3QuaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MTMyCgoyMDE0LTAyLTExIDEzOjI3OjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGVycm9yOiBHU1RfUkVTT1VSQ0VfRVJST1JfTk9UX0FVVEhPUklaRUQgd2lsbCBiZSBhdmFpbGFibGUgc2luY2UgMS4yLjQKCjIwMTQtMDItMTEgMTM6MDk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGVycm9yOiBBZGQgUkVTT1VSQ0VfTk9UX0FVVEhPUklaRUQgZXJyb3IKCSAgVGhpcyBhbGxvd3MgdG8gZGlzdGluZ3Vpc2ggbm9ybWFsIHJlYWQgZmFpbHVyZXMgZnJvbSByZWFkIGZhaWx1cmVzCgkgIHdoZXJlIHdlIG1pc3MgYXV0aG9yaXphdGlvbi4KCjIwMTQtMDItMTAgMTc6MDk6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IHlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDA0NQoKMjAxNC0wMi0xMCAwODowMDozNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHNlcW51bSBmaWxlIGZvciBkaXN0cmlidXRpb24KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzk5NwoKMjAxNC0wMi0wOSAxNjo1Mzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBkb2N1bWVudCBHU1RfVEFHXypFTkNPRElORyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTg1MAoKMjAxNC0wMi0wOSAxNjo0Nzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGVuYWJsZSBwYXJhbGxlbCBidWlsZCBvZiBzdWJkaXJlY3RvcmllcwoJICBXZSBjYW4gYnVpbGQgZ3RrIGRvY3MsIEFETSwgUFdHIGFuZCBGQVEgaW4gcGFyYWxsZWwuCgoyMDE0LTAyLTA5IDE2OjM4OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGFkZCBzdXBwb3J0IGZvciBibGFja2xpc3RpbmcgY2hlY2tzIHZpYSBHU1RfQ0hFQ0tTX0lHTk9SRQoKMjAxNC0wMi0wOSAwMDoyNToxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBiYXNlcGFyc2UgdGVzdAoJICBPciByYXRoZXIgbWFrZSBpdCBub3Qgc2hvdyB1cCBhbnkgbW9yZSBieSBtb3ZpbmcKCSAgaXQgZnJvbSAnZGVmaW5pdGVseSBsb3N0JyBpbnRvICdwb3NzaWJseSBsb3N0Jy4KCjIwMTQtMDItMDggMjM6Mzk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgdGVzdHM6IGZpeCBsZWFrIGluIHN5c3RlbWNsb2NrIHRlc3QKCjIwMTQtMDItMDggMTY6NDI6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogTWFrZSBjbGFuZyBoYXBweSB3aXRoIG91ciBnX3ZwcmludGYoKSB3cmFwcGVyCgoyMDE0LTAyLTA2IDE0OjE4OjMxICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICB3aW5kb3dzOiBNYWtlIEdTdHJlYW1lciBpbnN0YWxsYXRpb24gcmVsb2NhdGFibGUKCSAgVXNlIHRoZSB0ZWNobmlxdWUgdGhhdCBpcyBub3cgZG9uZSBpbiBHVEsrIHNvIHRoYXQgdGhlIHBsdWdpbnMgZG8gbm90IGhhdmUKCSAgdG8gYmUgaW5zdGFsbGVkIGluIGM6XGdzdHJlYW1lclxsaWJcPGRlYnVnPlxnc3RyZWFtZXItJChHU1RBcGlWZXJzaW9uKSwKCSAgYnV0IGNhbiBiZSBpbnN0YWxsZWQgaW4KCSAgPHBhcmVudF9mb2xkZXJfb2ZfZ3N0cmVhbWVyX21haW5fZGxsPlxsaWJcPGRlYnVnPlxnc3RyZWFtZXItJChHU1RBcGlWZXJzaW9uKSwKCSAgb3IgYXMgcGVyIGdfd2luMzJfZ2V0X3BhY2thZ2VfaW5zdGFsbGF0aW9uX2RpcmVjdG9yeV9vZl9tb2R1bGUoKSBhbGxvd3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTUKCjIwMTMtMTAtMzAgMTc6MDI6MzUgLTA1MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBnc3Q6IGNsZWFyIGZsb2F0aW5nIHJlZmVyZW5jZXMgZm9yIEdzdFRhc2ssIEdzdFRhc2tQb29sIGFuZCBHc3RDb2xsZWN0UGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzQyCgoyMDEzLTEwLTMwIDE3OjAyOjAyIC0wNTAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2NzOiBnc3RfcGFkX25ld19mcm9tXypfdGVtcGxhdGUgYW5kIGdzdF9idWZmZXJfcG9vbF9uZXcgY29uc3RydWN0b3JzIHJldHVybiBmbG9hdGluZyByZWZlcmVuY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNDIKCjIwMTQtMDItMDUgMTA6MTE6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIGNoZWNrOiBSZW1vdmUgYSBtaW5vciBsZWFrIGluIHVuaXQgdGVzdAoJICBNYWtlcyB2YWxncmluZCBoYXBweQoKMjAxNC0wMi0wNCAyMjoyMzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBidWlsZCBieSB1c2luZyB0aGUgY29ycmVjdCBDIGZpbGUgbmFtZQoKMjAxNC0wMi0wNCAyMTozNjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IENsZWFuIHVwIGNvZGUgYSBiaXQgdG8gYmUgc3VpdGFibGUgZm9yIHRoZSBkb2NzCgoyMDE0LTAxLTAzIDA3OjI1OjM3IC0wODAwICBUb2RkIEFndWxuaWNrIDx0b2RkQGFndWxuaWNrLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IFJlcGxhY2UgbWFudWFsJ3MgZWZmZWN0c3dpdGNoLmMgd2l0aCBuZXdlciB0ZXN0LWVmZmVjdC1zd2l0Y2guYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMTAwCgoyMDE0LTAxLTI5IDE0OjM5OjE5ICswMDAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGFkZCBjYXBzIGZlYXR1cmVzIHVuaXQgdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIzNgoKMjAxNC0wMi0wNCAxODo0MjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFdoZW4gZ2V0dGluZyBjYXBzZmVhdHVyZXMgYW5kIG5vbmUgYXJlIHRoZXJlLCBzdG9yZSBzeXNtZW0gY2Fwc2ZlYXR1cmVzCgkgIC4uLiBpbnN0ZWFkIG9mIHJldHVybmluZyBhIHJlZmVyZW5jZSB0byBhIGdsb2JhbCBpbnN0YW5jZS4gVGhlIGNhbGxlciBtaWdodAoJICB3YW50IHRvIGNoYW5nZSB0aGUgZ2xvYmFsIGluc3RhbmNlIG90aGVyd2lzZSwgd2hpY2ggY2F1c2VzIGZ1bm55IGVmZmVjdHMgbGlrZQoJICBhbGwgZ2xvYmFsIGluc3RhbmNlcyBiZWluZyBjaGFuZ2VkIGFuZCBhdCB0aGUgc2FtZSB0aW1lIG5vdGhpbmcgaW4gdGhlIGNhcHMKCSAgYmVpbmcgY2hhbmdlZC4KCSAgQXMgdGhlIGNhcHMgbWlnaHQgYmUgaW1tdXRhYmxlIHdoaWxlIHdlIGRvIHRoaXMgd2UgaGF2ZSB0byBkbyBzb21lIG1hZ2ljCgkgIHdpdGggYXRvbWljIG9wZXJhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMzYKCjIwMTQtMDItMDQgMTg6MDM6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBEb24ndCBnZXQgdXMgc3lzbWVtIGNhcHNmZWF0dXJlcyBpZiB3ZSBqdXN0IGNoZWNrIGZvciBmaXhlZCBjYXBzCgoyMDE0LTAyLTA0IDE3OjQ4OjU0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IE1ha2Ugc3VyZSB0aGF0IHRoZSBzdGF0aWMgQU5ZL0VNUFRZIGNhcHNmZWF0dXJlcyBhcmUgbmV2ZXIgbXV0YWJsZQoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIzNgoKMjAxNC0wMS0zMSAwOToxNDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgZG9jczogZml4IG1vcmUgZ3RrLWRvYyB3YXJuaW5ncwoKMjAxNC0wMS0zMSAwODozNTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkgIGRvY3M6IHVuaGlkZSBkb2NzIGZvciBhbGxvY2F0b3IKCSAgVW5oaW5kZSB0aGUgY2xhc3MgZG9jcy4gVGVjaCBndGstZG9jIGFib3V0IEdTVF9FWFBPUlRTLgoKMjAxNC0wMS0zMSAwODowODozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IG1vcmUgdGVzdHMgYW5kIHNtYWxsIGRvYyBmaXhlcwoKMjAxNC0wMS0zMCAyMToyNDoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHRvb2xzOiBTdXBwb3J0IG5vbi1BU0NJSSB0YWdzCgkgIEJ5IGNhbGxpbmcgc2V0bG9jYWxlKCkgdG8gZ2V0IHVzIG11bHRpLWJ5dGUvVVRGLTggc3VwcG9ydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzE2NAoKMjAxNC0wMS0zMCAwMzoyMjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiByZXNwZWN0IHRoZSAnbmVnb3RpYXRpb24tbW9kZScgcHJvcGVydHkKCSAgSWYgdGhlIHNlZ21lbnQgZXZlbnQgaXMgYWxsb3dlZCB0byBiZSBwdXNoZWQgdG8gYWxsIHBhZHMgaXQKCSAgd2lsbCBsZWFkIHRvIGFuIGFzc2VydGlvbiBvZiAnc3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nOgoJICBzZWdtZW50IHJlY2VpdmVkIGJlZm9yZSBjYXBzJyBpbiBjYXNlIHRoZSBwYWQtbmVnb3RpYXRpb24tbW9kZQoJICBpcyBzZXQgdG8gJ2FjdGl2ZScgb3IgJ25vbmUnLgoJICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnkgbWFraW5nIGFsbCBzdGlja3kgZXZlbnRzIGZvbGxvdyB0aGUKCSAgcHJvcGVydHkgbGlrZSB0aGUgY2FwcyBldmVudCB0byBwcmV2ZW50IG1pc29yZGVyaW5nIHdhcm5pbmdzLgoJICBXaGVuIGEgbmV3IHBhZCBpcyBhY3RpdmF0ZWQgdGhlIGN1cnJlbnQgc3RpY2t5IGV2ZW50cyBvbiB0aGUKCSAgc2lua3BhZCBhcmUgZm9yd2FyZGVkIHRvIGl0IGluIHRoZSBwcm9wZXIgb3JkZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyNjYKCjIwMTQtMDEtMzAgMTI6NTQ6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvb2xzdHJlc3MuYzoKCSAgcG9vbHN0cmVzczogcHJpbnQgc3BlZWR1cAoKMjAxNC0wMS0zMCAxMjo0MjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IG1pc2MgY2xlYW51cHMKCSAgUmV2aWV3IHRoZSBkb2N1bWVudGF0aW9uLCBjb21tZW50cyBhbmQgbG9nZ2luZy4gU2V0IHRoZSBpbml0aWFsIHNpemUgdG8gMTYgYXMKCSAgdGhlIHNpemUgaXMgcm91bmRlZCB1cCB0byB0aGUgbmV4dCBwb3dlciBvZiB0d28gYW55d2F5LgoKMjAxNC0wMS0zMCAwODoxMToxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIGEgbmV3IHRlc3RzdWl0ZSBvciB0aGUgcG9vbAoJICBTdGFydCB3aXRoIHNvbWUgYmFzaWMgdGVzdHMuCgoyMDE0LTAxLTMwIDEyOjI2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGF2b2lkIGV4Y2Vzc2l2ZSBHc3RQb2xsIGFjdGl2aXR5CgkgIEtlZXAgYW4gZXh0cmEgd3JpdGUgcmVmIG9uIHRoZSBjb250cm9sIHNvY2tldC4gVGhpcyBlbnN1cmVzIHRoYXQgd2UKCSAgYXZvaWQgYSByZWFkL3dyaXRlIG9uIHRoZSBzb2NrZXQgd2hlbiBnb2luZyBmcm9tIG5vbi1lbXB0eS0+ZW1wdHktPm5vdC1lbXB0eS4KCSAgV2UgcmVtb3ZlIHRoZSB3cml0ZSByZWYgb25seSB3aGVuIHdlIGFjdHVhbGx5IGFyZSBlbXB0eSBhbmQgd2UgbmVlZCB0bwoJICB3YWl0IGZvciBmbHVzaGluZyBvciBhIG5ldyBidWZmZXIuCgkgIFRoaXMgbWFrZXMgdGhlIGJ1ZmZlcnBvb2wgYmVuY2htYXJrIGFib3V0IDMwJSBmYXN0ZXIgdGhhbiB0aGUgcHVyZQoJICBtYWxsb2MgaW1wbGVtZW50YXRpb24uCgoyMDE0LTAxLTMwIDEyOjI1OjMzICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGltcHJvdmUgZGVidWcKCSAgQWRkIG9iamVjdCBwb2ludGVyIGluIGRlYnVnIGxpbmVzLgoKMjAxNC0wMS0zMCAxMDo0MzozNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDQ4YmVkMyB0byAxYTA3ZGE5CgoyMDE0LTAxLTI5IDIyOjQ2OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBwYXJ0LXRvYzogZW1waGFzaXplIHRoYXQgdGhlIGxhdGVyIGNoYXB0ZXJzIGFyZSBkZXNpZ24gZHJhZnQgaWRlYXMKCjIwMTQtMDEtMjkgMjA6MjA6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIHBhcnQtdG9jOiBhZGQgZm9ybWF0IHNwZWNpZmljIGluZm9ybWF0aW9uCgoyMDE0LTAxLTI5IDE4OjIxOjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb29sc3RyZXNzLmM6CgkgIHBvb2xzdHJlc3M6IGNvZGUgY2xlYW51cHMKCSAgQWRkIGEgZmV3IGNvbW1lbnRzLiBUZWxsIGluIHRoZSByZXN1bHRzLCB3aGljaCBudW1iZXIgYXJlIGZyb20gd2hpY2ggdGVzdC4KCjIwMTQtMDEtMjkgMTM6MjA6MTkgKzAxMDAgIE5pY29sYSBNdXJpbm8gPG5pY29sYS5tdXJpbm9AZ21haWwuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogdXNlIHByaW50IGFzIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMjkKCjIwMTQtMDEtMjggMTE6NTg6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICB0ZXN0czogY2Fwc2ZpbHRlcjogYWRkIHRlc3QgZm9yIHBlbmRpbmdfZXZlbnRzIHB1c2hpbmcKCSAgbWFrZSBzdXJlIHRoYXQgcGVuZGluZyBldmVudHMgYXJlIHB1c2hlZCB3aGVuIGNhcHMgYXJlIGFscmVhZHkKCSAgc2V0IHdoZW4gYSBidWZmZXIgaXMgcmVjZWl2ZWQKCjIwMTQtMDEtMjggMTE6MTI6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvIG5vdCBmb3JnZXQgdG8gcHVzaCBwZW5kaW5nIGV2ZW50cwoJICBQdXNoIHBlbmRpbmcgZXZlbnRzIGJlZm9yZSBidWZmZXJzIGlmIGNhcHMgaXMgYWxyZWFkeQoJICBzZXQKCjIwMTQtMDEtMjQgMTk6MTk6MDggKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvIG5vdCByZWR1Y2Ugc2luZ2xlIHF1ZXVlIGJlbG93IGN1cnJlbnQgbGV2ZWwKCSAgV2hlbiB0aGUgc2luZ2xlIHF1ZXVlIHNpemUgd2FzIGp1c3QgYnVtcGVkIGJ5IDEgdG8gYWxsb3cgbW9yZSBidWZmZXJzIHRvCgkgIGJlIGFkZGVkLCB0aGUgYnVmZmVycyBsaW1pdCBjb3VsZCBiZSByZWR1Y2VkIHRvIHRoZSBjdXJyZW50IGxldmVsIHdoZW4KCSAgc2V0dGluZyB0aGUgbWF4LXNpemUtYnVmZmVycyBwcm9wZXJ0eS4gVGhpcyB3b3VsZCByZXN1bHQgaW4gYSBzdGFsbAoJICBzaW5jZSB0aGUgcXVldWUgd291bGQgbm90IGdyb3cgYW55bW9yZSBhdCB0aGlzIHBvaW50LgoJICBQcmV2ZW50IHRoaXMgYnkgbm90IHJlZHVjaW5nIGEgc2luZ2xlIHF1ZXVlIHNpemUgYmVsb3cgdGhlIGN1cnJlbnQKCSAgbnVtYmVyIG9mIGJ1ZmZlcnMgKyAxLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNTk3CgoyMDE0LTAxLTI0IDEzOjIwOjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3QgZm9yZ2V0IHRvIGNsZWFyIHRoZSBmb3JjZWRfZW9zIGZsYWcKCSAgb3RoZXJ3aXNlIGl0IHdpbGwgYWx3YXlzIHVzZSB0aGUgc2VxbnVtIG9mIHRoZSBldmVudAoJICBzZW50IGJ5IHRoZSBhcHBsaWNhdGlvbgoKMjAxNC0wMS0yMyAxNTo1Mjo1MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByZXNlcnZlIHNlcW51bSBvZiBlb3MgZXZlbnRzIHNlbnQgYnkgdGhlIHVzZXIKCSAgU3RvcmUgdGhlIGVvcyBldmVudCBzZXFudW0gYW5kIHVzZSBpdCB3aGVuIGNyZWF0aW5nIHRoZQoJICBuZXcgZW9zIGV2ZW50IHRvIGJlIHB1c2hlZCBkb3duc3RyZWFtLiBUbyBrbm93IGlmIHRoZSBlb3MKCSAgd2FzIGNhdXNlZCBieSB0aGUgZW9zIGV2ZW50cyByZWNlaXZlZCBvbiBzZW5kX2V2ZW50LCBhCgkgICdmb3JjZWRfZW9zJyBmbGFnIGlzIHVzZWQgdG8gdXNlIHRoZSBjb3JyZWN0IHNlcW51bSBvbgoJICB0aGUgZXZlbnQgcHVzaGVkIGRvd25zdHJlYW0uCgkgIFVzZWZ1bCBpZiB0aGUgYXBwbGljYXRpb24gd2FudHMgdG8gY2hlY2sgaWYgdGhlIEVPUyBtZXNzYWdlCgkgIHdhcyBnZW5lcmF0ZWQgZnJvbSBpdHMgb3duIHB1c2hlZCBFT1Mgb3IgZnJvbSBhbm90aGVyIHNvdXJjZQoJICAoc3RyZWFtIHJlYWxseSBmaW5pc2hlZCkuCgkgIEFsc28gYWRkcyBhIHRlc3QgZm9yIHRoaXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjc5MQoKMjAxNC0wMS0yMyAxNTozNDoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlcW51bXMudHh0OgoJICBkb2NzOiBkZXNpZ246IGFkZCBwYXJ0LXNlcW51bXMKCSAgSG9wZWZ1bGx5IGNsYXJpZmllcyBob3cgc2VxbnVtcyBzaG91bGQgYmUgdXNlZCBhbmQgY29waWVkIGZyb20KCSAgZXZlbnRzIHRvIGV2ZW50cy9tZXNzYWdlcyB3aGVuIHRob3NlIGFyZSBoYW5kbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNzkxCgoyMDE0LTAxLTI0IDA5OjI4OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEJyZWFrIHRoZSBsb29wIGltbWVkaWF0ZWx5IGlmIHdlIGZvdW5kIGFuIGVtcHR5IHF1ZXVlCgkgIE5vIG5lZWQgdG8gY29udGludWUgbG9va2luZyBhdCBhbGwgdGhlIG90aGVycwoKMjAxNC0wMS0yMyAxNTo0NzoyMyArMDEwMCAgUGVyIHggSm9oYW5zc29uIDxwZXJ4am9oQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFsbG93IGdyb3dpbmcgYSBxdWV1ZSBpZiBhbGwgb3RoZXIgcXVldWVzIGFyZSBub3QgbGlua2VkCgkgIEluIHRoZSBjYXNlIHdoZXJlIG9uZSBzaW5nbGVxdWV1ZSBpcyBmdWxsIGFuZCBhbGwgb3RoZXIgYXJlIG5vdCBsaW5rZWQsIHRoZQoJICBncm93aW5nIG9mIHRoZSBmdWxsIHF1ZXVlIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5LiBUaGUgcmVzdWx0IGRlcGVuZHMgb24gaWYKCSAgdGhlIGZ1bGwgcXVldWUgaXMgbGFzdCBpbiB0aGUgcXVldWUgbGlzdCBvciBub3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4OTEKCjIwMTQtMDEtMjIgMTE6MTA6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWlub3IgY29kZSBjbGVhbnVwCgkgICFjaGVja19zdGlja3koKT09R1NUX0ZMT1dfT0sgaXMgYSBiaXQgY29uZnVzaW5nLCBjb21wYXJlZCB0bwoJICBjaGVja19zdGlja3koKSE9R1NUX0ZMT1dfT0suCgoyMDE0LTAxLTIwIDE1OjI2OjU0ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBBZGRpdGlvbmFsIHRlc3RzIGZvciBwYXJzZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDAzNAoKMjAxNC0wMS0xOCAxNDo0ODozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogUHJvcGVybHkgY29weSBtdXRleGVzIGFyb3VuZCB3aGVuIGNyZWF0aW5nIGEgY29weSBvZiBhIGZpbHRlciBpdGVyYXRvcgoKMjAxNC0wMS0xOCAxNDozNDo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIHVuaXQgdGVzdHMgZm9yIGZpbHRlcmluZywgcmVjdXJzaXZlIGZpbHRlcmluZyBhbmQgbG9ja2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMTM4CgoyMDE0LTAxLTE4IDE0OjQzOjIwICswMTAwICBTdGV3YXJ0IEJyb2RpZSA8c3Rld2FydEBlaC5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IFByZXNlcnZlIHRoZSBtYXN0ZXIgbG9jayB3aGVuIGNyZWF0aW5nIHJlY3Vyc2l2ZSBpdGVyYXRvciBmaWx0ZXJzIHdpdGggdGhlIHNhbWUgbG9jawoJICBUaGlzIHdheSB3ZSBtYWtlIHN1cmUgdGhhdCBhKSB0aGUgbG9jayBpcyBhbHdheXMgdGFrZW4gd2hlbiBjaGVja2luZwoJICB0aGUgY29va2llIGFuZCBjYWxsaW5nIHRoZSBpdGVyYXRvcidzIG5leHQgZnVuY3Rpb25zIGFuZCBiKSBpdCBpcwoJICBub3QgdGFrZW4gd2hpbGUgY2FsbGluZyBhbnkgb2YgdGhlIGl0ZXJhdG9yIGZpbHRlciBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTExMzgKCjIwMTQtMDEtMTcgMjI6NTM6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBzdGlja3kgZXZlbnQgbGVhayBhZnRlciBzdGlja3lfZXZlbnRzX2ZvcmVhY2gKCSAgZXZlbnRzX2ZvcmVhY2ggYWRkcyBhbiBleHRyYSByZWYgd2hlbiBnaXZpbmcgdGhlIGV2ZW50IHRvIHRoZQoJICB1c2VyIGZ1bmN0aW9uLiBJbiBjYXNlIGl0IHdhcyB1bnJlZmVkIGJ5IHRoZSB1c2VyLCB0aGlzIGV4dHJhIHJlZgoJICBkaXNhcHBlYXJlZCwgYnV0IGV2ZW50c19mb3JlYWNoIHN0aWxsIHNob3VsZCB1bnJlZiBhZ2FpbiB0bwoJICBsb3NlIGl0cyBvd24gcmVmIGJlZm9yZSByZW1vdmluZyB0aGUgZXZlbnQgZnJvbSB0aGUgYXJyYXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI0NjcKCjIwMTQtMDEtMTYgMjA6MTE6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1vdmUgc29tZSBlbnYtdmFyIGNoZWNrcyBmcm9tIGdzdCB0byBnc3RpbmZvIGFzIHdlbGwKCSAgV2Ugd2VyZSBkb2luZyBzb21lIGxvZyByZWxhdGVkIGluaXRpYWxpc2F0aW9uIGluIGdzdC5jIGFmdGVyIGNhbGxpbmcKCSAgX3ByaXZfZ3N0X2RlYnVnX2luaXQoKS4gSnVzdCBtb3ZlIGl0IHRoZXJlIGZvciBjb25zaXN0ZW5jeS4KCjIwMTQtMDEtMTYgMTg6MTY6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogT25seSBzZXQgY2FwcyBvbiB0aGUgc3JjcGFkIGlmIGl0J3MgYWN0aXZhdGVkIGluIHB1c2ggbW9kZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyMjg5CgoyMDE0LTAxLTE2IDEyOjI4OjQ3ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogU29tZSBtaW5vciBmaXhlcwoJICBGaXggZGVzdHJ1Y3RvciBzZWdmYXVsdGluZwoJICBFeHBlY3QgMCBncmFtbWFyLWFtYmlndWl0aWVzCgkgIEZpeCBvcmRlciBvZiBiaW4tcHJvcGVydGllcyBhc3NpZ25tZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwMzQKCjIwMTQtMDEtMTUgMTk6Mjg6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92aW5nIGR1cGxpY2F0ZSBmaWVsZCBwb3NpdGlvbgoJICBJdCBpcyBhbHJlYWR5IHN0b3JlZCBpbnNpZGUgdGhlIEdzdFNlZ21lbnQgc3RydWN0IGFuZAoJICB3YXMgb25seSBkdXBsaWNhdGluZyBpbmZvcm1hdGlvbi4gQWxzbyByZW1vdmVkIHNvbWUKCSAgd2VpcmQgcG9zaXRvbiBpZi9lbHNlIHRoYXQgd291bGQgcG9zc2libHkgY2hhbmdlIHRoZQoJICBzZWdtZW50IHRoYXQgd2FzIGdvaW5nIHRvIGJlIHB1c2hlZCBkb3duc3RyZWFtCgoyMDE0LTAxLTE1IDAwOjEyOjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwcmV2ZW50IGJ1ZmZlcmluZyBmb3JldmVyIHdpdGggcGxheWJpbgoJICBXaGVuIHByZXJvbGxpbmcvYnVmZmVyaW5nLCBtdWx0aXF1ZXVlIGhhcyBpdHMgYnVmZmVycyBsaW1pdCBzZXQKCSAgdG8gMCwgdGhpcyBtZWFucyBpdCBjYW4gdGFrZSBhbiBpbmZpbml0ZSBhbW91bnQgb2YgYnVmZmVycy4KCSAgV2hlbiBwcmVyb2xsaW5nL2J1ZmZlcmluZyBmaW5pc2hlcywgaXRzIGxpbWl0IGlzIHNldCBiYWNrIHRvIDUsIGJ1dAoJICBvbmx5IGlmIHRoZSBjdXJyZW50IGxldmVsIGlzIGxvd2VyIHRoYW4gNS4gSXQgc2hvdWxkIChhbG1vc3QpIG5ldmVyIGJlCgkgIGFuZCB0aGlzIHdpbGwgY2F1c2UgcHJlcm9sbGluZy9idWZmZXJpbmcgdG8gbmVlZCB0byB3YWl0IHRvIHJlYWNoIHRoZQoJICBoYXJkIGJ5dGVzIGFuZCB0aW1lIGxpbWl0cywgd2hpY2ggYXJlIG11Y2ggaGlnaGVyLgoJICBUaGlzIGNhbiBsZWFkIHRvIGEgdmVyeSBsb25nIHN0YXJ0dXAgdGltZS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzCgkgIGJ5IHNldHRpbmcgdGhlIHNpbmdsZSBxdWV1ZXMgdG8gdGhlIG1heChjdXJyZW50LCBuZXdfdmFsdWUpIGluc3RlYWQKCSAgb2Ygc2ltcGx5IGlnbm9yaW5nIHRoZSBuZXcgdmFsdWUgYW5kIGxldHRpbmcgaXQgYXMgaW5maW5pdGUoMCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjU5NwoKMjAxNC0wMS0xNSAxMToxMjowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGdzdF9zZWdtZW50X29mZnNldF9ydW5uaW5nX3RpbWUoKSB3aWxsIGJlIGF2YWlsYWJsZSBpbiAxLjIuMwoKMjAxNC0wMS0xNCAxNjoxNToyMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBVcGRhdGUgc2VjdGlvbnMgd2l0aCB0aGUgbmV3IHJvdW5kaW5nIG1hY3JvcwoKMjAxNC0wMS0xNCAxNjoxNTowMiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWw6IEFkZCBHU1RfUk9VTkRfVVBfTiBhbmQgR1NUX1JPVU5EX0RPV05fTgoJICBUaGVzZSBhcmUgZ2VuZXJpYyByb3VuZGluZyBtYWNybyB0aGF0IHdvcmtzIGZvciBhbnkgcG93ZXIgb2YgdHdvLgoKMjAxNC0wMS0xNCAxNjo0NzozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IEFkZCB1bml0IHRlc3QgZm9yIHJlcXVlc3RpbmcgcGFkIG5hbWVzCgoyMDE0LTAxLTE0IDE2OjQ1OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBNYWtlIHN1cmUgdG8gZ2l2ZSBwYWRzIHRoZSBuYW1lIHRoYXQgd2FzIHJlcXVlc3RlZAoJICBBbHNvIGNoZWNrIGZvciB1bmlxdWVuZXNzIGFuZCBtYWtlIHN1cmUgd2UgY3JlYXRlIGEgbmV3CgkgIHBhZCBpbmRleCBwcm9wZXJseSBpZiBzb21lIHdlcmUgcmVxdWVzdGVkIHdpdGggbmFtZXMgYnV0CgkgIHRoZSBuZXcgb25lIGlzIG5vdC4KCjIwMTQtMDEtMTQgMTU6NTI6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogTWFrZSBzdXJlIHRvIGNyZWF0ZSBhbmQgbGluayBjaGFpbnMgaW4gdGhlIG9yZGVyIGFzIHdyaXR0ZW4KCSAgTWFrZSB0aGlzIHdvcmsgYWdhaW46CgkgIGF1ZGlvdGVzdHNyYyAhIHRlZSBuYW1lPXQgIHQuc3JjXzAgISBxdWV1ZSAhIGZha2VzaW5rICB0LnNyY18xICEgcXVldWUgISBmYWtlc2luawoJICBhbmQgdGhpcyBmYWlsIGFnYWluOgoJICBhdWRpb3Rlc3RzcmMgISB0ZWUgbmFtZT10ICB0LnNyY18xICEgcXVldWUgISBmYWtlc2luayAgdC5zcmNfMCAhIHF1ZXVlICEgZmFrZXNpbmsKCSAgYXMgdGVlIGp1c3QgY291bnRzIGl0c2VsZiBhbmQgZG9lcyBub3QgY2FyZSBhYm91dCB0aGUgcGFkIG5hbWVzIHdlIHJlcXVlc3QKCSAgZnJvbSBpdC4KCjIwMTQtMDEtMTQgMTM6NDU6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogUmVtb3ZlIHNvbWUgQzk5LXN0eWxlIGNvbW1lbnRzCgoyMDE0LTAxLTE0IDEzOjQ0OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlOiBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIGFuZCBmcmVlaW5nIGxpbmtzIGFuZCBjaGFpbnMKCjIwMTQtMDEtMTQgMTM6NDI6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2U6IEFkZCBjb21tZW50IGFib3V0IHdoeSB3ZSBkaXNhYmxlIHRoZSAidHJhY2luZyIKCSAgSXQgZGlkIG5vdCBwcmludCBhbnl0aGluZyB1c2VmdWwgYmVmb3JlIGFueXdheSwgZXZlcnl0aGluZwoJICB3YXMgY29tbWVudGVkIG91dC4KCSAgQWxzbyByZW1vdmUgc29tZSB1bm5lZWRlZCBzdHJ1Y3QgbWVtYmVycy4KCjIwMTQtMDEtMTQgMTM6MzY6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlLWxhdW5jaDogQWRkIHNvbWUgbW9yZSBmYWlsaW5nIHBpcGVsaW5lcwoJICBBbHNvIGNvbnZlcnQgc29tZSBjb21tZW50cyBhYm91dCB2YWxncmluZCB3YXJuaW5ncyB0bwoJICBGSVhNRSBjb21tZW50cy4gVGhlc2Ugd2VyZSBsZWFraW5nIHNpbmNlIHNvbWUgdGltZSBhbHJlYWR5LgoKMjAxNC0wMS0xMCAyMToxMDoxNyArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBSZWZhY3RvciBncmFtbWFyLCBtYWtlIGl0IG1vcmUgY29uc2lzdGVudCBhbmQgZml4IGNvbmZsaWN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMDM0CgoyMDE0LTAxLTEzIDIwOjQ4OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBkb2NzOiBlbnN1cmUgR3N0QnVmZmVyUG9vbHMgc2hvd3MgdXAgYXMgd2l0aCBHT2JqZWN0IGZlYXR1cmVzCgkgIEdzdEJ1ZmZlclBvb2wgaXMgYSBHc3RPYmplY3QsIGFkZCB0aGUgX2dldF90eXBlIGZ1bmN0aW9uIHRvIHRoZSB0eXBlcyBmaWxlLgoKMjAxNC0wMS0xMyAwODozNzozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBhZGQgdGVzdCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBvbiBwYXNzdGhyb3VnaAoJICBCYXNlcGFyc2Ugc3RvcmVzIGJ1ZmZlcnMgZm9yIHJldmVyc2UgcGxheWJhY2sgdG8gcHVzaCBvbiB0aGUgbmV4dAoJICBESVNDT05ULCB0aGUgaXNzdWUgd2FzIHRoYXQgaXQgd291bGRuJ3QgZXZlciBjaGVjayBmb3IgYSBkaXNjb250CgkgIG9uIHBhc3N0aHJvdWdoIG1vZGUgYXMgaXQgc2tpcHMgYWxsIHJlYWwgcGFyc2luZy4gVGhpcyB0ZXN0CgkgIHdhcyBjcmVhdGUgdG8gdmVyaWZ5IHRoaXMgaXNzdWUgYW5kIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcgYWdhaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTk0MQoKMjAxNC0wMS0xMSAxMDo0OToxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBhZGQgYmFzaWMgdGVzdCBmb3IgYmFzZXBhcnNlCgkgIEp1c3QgYSBzbWFsbCB0ZXN0IHRvIGNoZWNrIHRoYXQgYmFzaWMgcGxheWJhY2sgd29ya3MKCjIwMTQtMDEtMTAgMDk6MTA6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3QgYWNjdW11bGF0ZSBidWZmZXJzIG9uIHBhc3N0aHJvdWdoIG1vZGUKCSAgSWYgb24gcGFzc3Rocm91Z2ggZHVyaW5nIHJldmVyc2UgcGxheWJhY2ssIGRvIG5vdCBhY2N1bXVsYXRlIGJ1ZmZlcnMgYXMKCSAgYmFzZXBhcnNlIHdpbGwgbmV2ZXIgY2hlY2sgZm9yIERJU0NPTlQgZmxhZyB0byBwdXNoIHRob3NlIGJ1ZmZlcnMuCgkgIFNvIGp1c3QgcHVzaCBidWZmZXJzIGRvd25zdHJlYW0gYXMgaWYgaXQgd2FzIGZvcndhcmQgcGxheWJhY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE5NDEKCjIwMTQtMDEtMDYgMjE6NDc6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgY29uZnVzZSBHU1RfUEFEX01PREVfTk9ORSBhbmQgUFVMTAoJICBVc2UgYSBzd2l0Y2gtY2FzZSB0byBleHBsaWNpdGx5IGhhbmRsZSBhbGwgcGFkLW1vZGVzLiBUaGlzIHdheSB3ZSBkb24ndCBsb2cgYW4gZXJyb3Igd2hlbiB0aGUgcGFkIGlzIG5vdCB5ZXQgYWN0aXZhdGVkLgoKMjAxNC0wMS0wOSAwNzo1Njo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgRklYTUUgYW5kIGRvY3MgZm9yIHRoZSBkaXNhYmxlZCBub3RpZnkgb24gcGFyZW50CgkgIFdlIGhhdmVuJ3QgZm91bmQgYSB3YXkgdG8gcmUtZW5hYmxlIGVtaXR0aW5nIG5vdGlmeSBhbmQgZGVlcC1ub3RpZnkgZm9yIHBhcmVudAoJICBjaGFuZ2VzLiBBZGQgYSBGSVhNRS0yLjAgYW5kIGEgZG9jIGJsb2Igb24gdGhlIHByb3BlcnR5LiBTZWUgIzY5MzI4MS4KCjIwMTQtMDEtMDggMTY6Mjg6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3QgaWdub3JlIFRJTUUgc2VnbWVudHMKCSAgVElNRSBzZWdtZW50cyBhcmUgYmVpbmcgaWdub3JlZCBhbmQgYSBzdGFuZGFyZCBpbml0aWFsaXplZAoJICBzZWdtZW50IGlzIHVzZWQgaW5zdGVhZC4gVGhpcyBjYXVzZXMgaXNzdWVzIGFzIG5vdCBwcm9wZXJseSBkZXRlY3RpbmcKCSAgcmV2ZXJzZSBwbGF5YmFjayBvciBub3QgY2xpcGluZyBvdXRwdXQgYmFzZWQgb24gdGhlIHNlZ21lbnQuCgkgIFRoaXMgc2VlbXMgdG8gYmUgYSByZWdyZXNzaW9uIGZyb20gb25lIG9mIHRoZSBHc3RTZWdtZW50L0dzdEV2ZW50CgkgIHJlZGVzaWducyBvbiB0aGUgMC4xMCAtPiAxLjAgdHJhbnNpdGlvbgoKMjAxNC0wMS0wOCAxNTo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogaW1wcm92ZSBjaGVjaywgYWxzbyBjaGVjayBzdHJlYW0tdGltZQoKMjAxNC0wMS0wOCAxNTozMToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3Igc2VnbWVudCBfb2Zmc2V0X3J1bm5pbmdfdGltZSgpCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGFyZSBhcHBsaWVkCgkgIGNvcnJlY3RseSBpbiB2YXJpb3VzIGNhc2VzLgoKMjAxNC0wMS0wOCAxNToyMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQgaW4gX3RvX3Bvc2l0aW9uKCkKCSAgVGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudCB3aGVuIGNvbnZlcnRpbmcgYmV0d2VlbiBydW5uaW5nLXRpbWUgYW5kCgkgIHNlZ21lbnQgcG9zaXRpb25zLgoKMjAxNC0wMS0wOCAxNDo1NzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBzZWdtZW50IG9mZnNldCBtZXRob2QgdG8gYXBwbHkgdGhlIG9mZnNldAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNDIyCgoyMDE0LTAxLTA4IDE0OjU0OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgbWV0aG9kIHRvIG9mZnNldCB0aGUgc2VnbWVudCBydW5uaW5nLXRpbWUKCSAgQWRkIGEgbWV0aG9kIHRoYXQgY2FuIGFwcGx5IGFuIG9mZnNldCB0byB0aGUgY2FsY3VsYXRlZCBydW5uaW5nLXRpbWUgb2YKCSAgYSBzZWdtZW50LgoKMjAxNC0wMS0wOCAxNDo1MjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQgZm9yIGV4cGVjdGVkIHNlZ21lbnQgcG9zaXRpb24KCSAgVGhlIGZpcnQgdmFsaWQgc2VnbWVudCBwb3NpdGlvbiBpcyBzdGFydCArIG9mZnNldC4KCSAgQWxzbyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBhIEZJWE1FCgoyMDE0LTAxLTA4IDE0OjUwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGRlYnVnIHNlZ21lbnQgb2Zmc2V0IGZpZWxkIGFzIHdlbGwKCjIwMTQtMDEtMDggMDk6NTM6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWxsb3cgZ3Jvd2luZyBhIHF1ZXVlIGlmIGFsbCBvdGhlciBxdWV1ZXMgYXJlIG5vdCBsaW5rZWQKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4OTMKCjIwMTQtMDEtMDcgMTY6MTg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGRvbid0IHRyeSB0byBzZWVrIHRvIC0xIG9mZnNldAoJICBUaGUgb2Zmc2V0IGNhbiBiZSAtMSB3aGVuIHdlIGFyZSBjb25maWd1cmVkIGluIFRJTUUgZm9ybWF0LiBJbnN0ZWFkIG9mCgkgIGZhaWxpbmcgdGhlIHNlZWsgYW5kIGVycm9yaW5nLCBkbyB3aGF0IGFuZCBvZmZzZXQgb2YgLTEgaXMgc3VwcG9zZWQgdG8KCSAgZG8gYW5kIHNpbXBseSByZWFkIGZyb20gdGhlIGN1cnJlbnQgb2Zmc2V0LgoKMjAxNC0wMS0wNiAyMTowNDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkZW1vdGUgZXJyb3IgdG8gd2FybmluZwoJICBUaGlzIGlzIG5vdCBhbiBlcnJvci4gQSBzdWJjbGFzcyByZXR1cm5pbmcgRkFMU0UgZm9yIGlzX3NlZWthYmxlKCkgaXMgb25lIHdheSBvZgoJICBzYXlpbmcgdGhhdCB3ZSBjYW4ndCBvcGVyYXRlIGluIHB1bGwgbW9kZS4KCjIwMTQtMDEtMDMgMTE6NDc6MjMgKzA4MDAgIFlhbnBpbmdaaGFuZyA8emhhbmd5YW5waW5nMjEwQDE2My5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGhhbmdpbmcgaWYgc2h1dCBkb3duIHdoaWxlIGhhbmRsaW5nIGEgc2VyaWFsaXplZCBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMjUzCgoyMDE0LTAxLTAyIDE2OjIyOjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHBlbmRpbmdfc2VnbWVudCBhcyBpdCB3YXMgYmVpbmcgbWlzdXNlZAoJICBJdCB3YXNuJ3QgcmVxdWlyZWQsIGluc3RlYWQgYmFzZXBhcnNlIHdhcyB1c2luZyBpdCB0byBjaGVjayB0aGUgbWVkaWEKCSAgY2FwcyB0byBpZGVudGlmeSBpZiBpdCB3YXMgaGFuZGxpbmcgYXVkaW8gb3IgdmlkZW8uCgkgIFRoZSBwZW5kaW5nX3NlZ21lbnQgd2FzIHJlbW92ZWQgYW5kIGEgY2hlY2tlZF9tZWRpYSBib29sZWFuCgkgIHJlcGxhY2VkIGl0IGZvciBhIG1vcmUgYWNjdXJhdGUgbmFtaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzUwCgoyMDE0LTAxLTAyIDEzOjQzOjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHVzaCBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgR0FQIGV2ZW50CgkgIEEgR0FQIGV2ZW50IGlzIGhhbmRsZWQgYXMgYW4gZW1wdHkgYnVmZmVyIGJ5IHNpbmtzIGFuZCB0aGV5IGV4cGVjdAoJICB0byByZWNlaXZlIHN0YXJ0IHVwIGV2ZW50cyBiZWZvcmUgR0FQIGV2ZW50cyAobGlrZSBhIHNlZ21lbnQpLgoJICBUaGlzIGlzIGltcG9ydGFudCBzcGVjaWFsbHkgaWYgdGhlcmUgaXMgYSBHQVAgYXQgdGhlIGJlZ2lubmluZyBvZgoJICBhIHN0cmVhbSAoYmVmb3JlIGFueSBidWZmZXJzKSBzbyB0aGF0IHRoZSBzZWdtZW50IGV2ZW50IGNhbiBiZQoJICBwdXNoZWQgZG93bnN0cmVhbSBiZWZvcmUgdGhlIEdBUAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzUwCgoyMDE0LTAxLTAyIDEzOjQxOjI1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgcGVuZGluZyBldmVudHMgcHVzaGluZwoJICBSZWZhY3RvciBjb2RlIHJlcGVhdGVkIDMgdGltZXMgdG8gYSBjb21tb24gZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTM1MAoKMjAxNC0wMS0wMiAyMDoxNzo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZGVzaWduL3BhcnQtdG9jLnR4dDogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDE0LTAxLTAyIDEzOjM0OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB1bml0IHRlc3QgZm9yIGFkZGluZy9yZW1vdmluZyBibG9ja2luZyBwcm9iZXMgd2hpbGUgYSBwYWQgaXMgYmxvY2tlZAoJICBBbmQgbWFrZSBzdXJlIHRoYXQgdGhlc2UgbmV3IHByb2JlcyBhcmUgYWN0dWFsbHkgY2FsbGVkIGlmIHRoZXkgc2hvdWxkCgkgIGluc3RlYWQgb2Ygc2lsZW50bHkgYmxvY2tpbmcgdGhlIHBhZCBmb3JldmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMjg5CgoyMDE0LTAxLTAyIDEzOjMzOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIGlmIG5ldyBwcm9iZXMgbmVlZCB0byBiZSBjYWxsZWQgd2hlbiBhZGRpbmcvcmVtb3Zpbmcgc29tZQoJICBUaGlzIGFsbG93cyBibG9ja2luZyBhIHBhZCwgYWRkIGEgbmV3IGJsb2NraW5nIHByb2JlLCByZW1vdmluZwoJICB0aGUgZmlyc3QgcHJvYmUgYW5kIHRoZW4gaGF2aW5nIHRoZSBzZWNvbmQgcHJvYmUgY2FsbGVkLiBXaGljaAoJICBjb3VsZCB0aGVuIGRlY2lkZSB0aGF0IGRhdGEtZmxvdyBzaG91bGQgYWN0dWFsbHkgY29udGludWUKCSAgaW5zdGVhZCBvZiBibG9ja2luZyBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyODkKCjIwMTQtMDEtMDIgMTE6MTM6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IFJlbW92ZSBkeW4gbG9jawoJICBJdCB3YXMgdXNlZCBmb3IgcGFkLWFsbG9jIGluIDAuMTAgYnV0IGN1cnJlbnRseSBpcyBjb21wbGV0ZWx5IHVudXNlZAoJICBhbmQgbm90IG5lY2Vzc2FyeS4gQWxsIHBhZCBhY2Nlc3MgaXMgcHJvdGVjdGVkIGJ5IHRoZSB0ZWUgb2JqZWN0IGxvY2sKCSAgYW5kIGtlZXBpbmcgYW5vdGhlciByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgcGFkLgoKMjAxNC0wMS0wMiAxMTowOTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogS2VlcCBhbm90aGVyIHJlZiB0byBvdXIgb25lIGFuZCBvbmx5IHNyY3BhZCBhcm91bmQgd2hpbGUgcHVzaGluZwoJICBBIHBhZCBwcm9iZSBvbiB0aGF0IHBhZCBtaWdodCBvdGhlcndpc2UganVzdCByZWxlYXNlIHRoZSBwYWQsIGRyb3AKCSAgdGhlIGxhc3QgcmVmZXJlbmNlIGFuZCBjYXVzZSBncmVhdCBtaXNlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzMDAKCjIwMTMtMTItMzAgMTk6MDM6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogS2VlcCBhbiBleHRyYSByZWYgb2YgdGhlIHBhZCB3aGVuIGNhbGxpbmcgYW4gSURMRSBwcm9iZSBpbW1lZGlhdGVseQoJICBUaGUgY2FsbGJhY2sgbWlnaHQgZGVzdHJveSB0aGUgcGFkLgoKMjAxMy0xMi0zMCAxODo0NDoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGNhbGwgSURMRSBwcm9iZXMgaWYgd2UgYXJlIGFjdHVhbGx5IGlkbGUKCSAgQWxzbyBvbmx5IGNoZWNrIHRoZSBkYXRhIHR5cGVzIGZvciBub24tSURMRSBwcm9iZXMuIFdoZW4gd2UKCSAgYXJlIGlkbGUsIHdlIGhhdmUgbm8gZGF0YSB0eXBlIG9idmlvdXNseS4KCSAgUHJldmlvdXNseSB3ZSB3ZXJlIGNhbGxpbmcgSURMRSBwcm9iZXMgZHVyaW5nIGRhdGEgZmxvdyB3aGVuZXZlcgoJICBhIG5vbi1ibG9ja2luZyBwcm9iZSB3b3VsZCBiZSBjYWxsZWQuIFRoZSBwYWQgd2FzIHVzdWFsbHkgbm90IGlkbGUKCSAgYXQgdGhhdCB0aW1lLgoKMjAxMy0xMi0zMCAxNjoxMDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiByZW1vdmUgdW5uZWNlc3NhcnkgTlVMTCBjaGVjawoJICBFcnJvciBpcyBuZXZlciBOVUxMIHdoZW4gd2UgYnJlYWsgb3V0IG9mIHRoZSBsb29wLgoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MQoKMjAxMy0xMi0zMCAxNjowNTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgUmV2ZXJ0ICJuZXR0aW1lcHJvdmlkZXI6IFJlbW92ZSBkZWFkIGNvZGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTY0OWNkNGNhMTlhNzVkMDMxOTExN2E3N2E3NjA5ZTRiOGM5NjUzMy4KCSAgVGhpcyBpcyBub3QgcmlnaHQsIGFuZCBpdCdzIGFsc28gbm90IHdoYXQgY292ZXJpdHkKCSAgaXMgY29tcGxhaW5pbmcgYWJvdXQuCgoyMDEzLTEyLTMwIDE2OjQ3OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVubmVlZGVkIGNoZWNrcwoJICBpdGVtIGlzIGd1YXJhbnRlZWQgdG8gYmUgbm9uLW51bGwuCgkgIENPVkVSSVRZIENJRCAxMDM3MTUyCgkgIENPVkVSSVRZIENJRCAxMDM3MTUzCgoyMDEzLTEyLTMwIDE2OjM0OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IFJlbW92ZSBkZWFkIGNvZGUKCSAgZXJyIGlzIGFsd2F5cyBOVUxMIGJ5IHRoZSBwb2ludCB3ZSByZWFjaCB0aGlzIGxpbmUKCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTEKCjIwMTMtMTItMzAgMTQ6NDc6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBmaXggc2luY2UgbWFya2VyIGFnYWluICgxLjMgLT4gMS40KQoJICBTaW5jZSBtYXJrZXJzIHNob3VsZCBwb2ludCB0byB0aGUgYXBwcm9wcmlhdGUgc3RhYmxlIHZlcnNpb24uCgoyMDEzLTEyLTMwIDE0OjQwOjQwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogZml4IHNpbmNlLW1hcmtlciBpbiBkb2NzICh3ZSdyZSBpbiAxLjMuWCkKCjIwMTMtMTItMzAgMTQ6MjI6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgYSB0YWcgZm9yIG1pZGkgYmFzZSBub3RlIG51bWJlcnMKCSAgQXVkaW8gZmlsZXMgY29udGFpbmluZyBzYW1wbGVkIGluc3RydW1lbnRzIGNhbiBoYXZlIG1ldGFkYXRhIGRlc2NyaWJpbmcgdGhlIG5vdGUKCSAgdGhhdCB3YXMgcGxheWVkIG9uIHRoZSBpbnN0cnVtZW50LgoKMjAxMy0xMi0zMCAxMDowMTozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBpZ25vcmUgcHJvYmUgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIHdoZW4gaW1tZWRpYXRlbHkgY2FsbGluZyBJRExFIHByb2JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEwOTYKCjIwMTMtMTItMjkgMTQ6MDY6NTUgKzAwMDAgIFBlZHJvIEPDtHJ0ZS1SZWFsIDxwZWRyb0BwZWRyb2NyLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogZ2l0LXVwZGF0ZS5zaDogZml4IGZvciBub24tbWFzdGVyIGJyYW5jaGVzCgkgIFB1bGwgZnJvbSB0cmFja2luZyBicmFuY2ggaW5zdGVhZCBvZiBvcmlnaW4vbWFzdGVyLCBzbwoJICB0aGF0IHRoaXMgd29ya3Mgd2l0aCBlLmcuIDEuMiBhcyB3ZWxsLgoKMjAxMy0xMi0yNyAxMjo1NTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIHBhcnNlOiBVc2UgR0xpYiBtYWxsb2MvZnJlZS9yZWFsbG9jIGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMTAwCgoyMDEzLTEyLTI2IDEyOjE2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogcmUtdXNlIGV4aXN0aW5nIG1hc3RlciBicmFuY2ggaWYgaXQgZXhpc3RzCgkgIFdoZW4gY3JlYXRpbmcgc2VwYXJhdGUgY2hlY2tvdXQgZm9yIG5vbi1tYXN0ZXIgYnJhbmNoZXMuCgoyMDEzLTEyLTI2IDExOjM5OjI3ICswMTAwICBFcmlrIEFuZHJlc2VuIDxlcmlrQHZvbnRhZW5lLmRlPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIGRvY3M6IGZpeCBtZW1vcnkgbGVhayBvZiBhcHBzaW5rIGV4YW1wbGUgaW4gbWFudWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEwNzYKCjIwMTMtMTItMjIgMjI6MzM6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRiZWRhYTAgdG8gZDQ4YmVkMwoKMjAxMy0xMi0yMiAyMjowNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIHN0cmluZyBjaGFuZ2VzCgoyMDEzLTEyLTIyIDIxOjU2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBzZXQgZ2V0dGV4dCBkb21haW4gaW4gTWFrZXZhcnMgc28gd2UgZG9uJ3QgaGF2ZSB0byBwYXRjaCB0aGUgZ2VuZXJhdGVkIE1ha2VmaWxlLmluLmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU0NTUKCjIwMTMtMTItMjAgMTQ6NDE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgcm91bmQgZG93biAxMjggbWFjcm8gZm9yIGNvbXBsZXRlbmVzcwoKMjAxMy0xMS0xMyAxNzowNjoyMyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgcm91bmQgdXAgMTI4IG1hY3JvCgoyMDEzLTEyLTIwIDE0OjMwOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTZXR0aW5nIHRoZSBQUk9YWV9DQVBTIGZsYWcgb24gdGhlIHNyY3BhZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UKCSAgZnVubmVsIG91dHB1dHMgd2hhdGV2ZXIgb25lIG9mIHRoZSB1cHN0cmVhbXMgY3VycmVudGx5IG91dHB1dHMsIGEgY2FwcwoJICBxdWVyeSB0byBhIHJhbmRvbSB1cHN0cmVhbSBkb2VzIG5vdCBnaXZlIHRoZSByaWdodCBhbnN3ZXIgaGVyZS4KCjIwMTMtMTItMjAgMTE6Mzc6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFByb3h5IENBUFMgYW5kIEFMTE9DQVRJT04gcXVlcmllcwoKMjAxMy0xMS0xOCAxMDo0NjowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcG9zdCAxMDAlIGJ1ZmZlcmluZyBpZiBzaW5nbGUgcXVldWUgaXMgbm90IGxpbmtlZAoJICBUaGlzIG1ha2VzIGJ1ZmZlcmluZyBzdG9wIGluIGNhc2UgYSBzdHJlYW0gc3dpdGNoIGhhcHBlbnMuIFRoaXMgaXMKCSAgaW1wb3J0YW50IGZvciBhZGFwdGl2ZSBzdHJlYW1zIHRoYXQgY2FuIGRpc2FibGUgbm90LWxpbmtlZCBzdHJlYW1zCgkgIHRvIGF2b2lkIGNvbnN1bWluZyB0aGUgbmV0d29yayBiYW5kd2lkdGguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk1NzUKCjIwMTMtMTItMTggMDU6MTk6NDYgLTA1MDAgIFdpbGxpYW0gSm9uIE1jQ2FubiA8d2lsbGlhbS5qb24ubWNjYW5uQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogZml4IHByb2plY3QgbGlua3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDY2NQoKMjAxMy0xMi0xMCAxNTo1Mzo1NCArMDEwMCAgRGF2aWQgU3ZlbnNzb24gRm9ycyA8ZGF2aWRzZkBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2Ugc2VnbWVudCBzdGFydCBpZiBEVFMgZm9yIGZpcnN0IGJ1ZmZlciBpcyB1bnNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMTk5CgoyMDEzLTEyLTEyIDE3OjE3OjQwICswMDAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdHJlYW1lci12YWFwaSBwYXRocwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMzM3CgoyMDEzLTEyLTE0IDIxOjIwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXItbm9pbmxpbmUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLW5vaW5saW5lLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci1ub2lubGluZS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgYml0cmVhZGVyLCBieXRlcmVhZGVyIGFuZCBieXRld3JpdGVyIHdpdGggbm8gaW5saW5pbmcgdXNlZAoKMjAxMy0xMi0xNCAxODozODo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZhcmlhbnQgb2YgZ3N0X2J5dGVfcmVhZGVyX2luaXQoKQoKMjAxMy0xMi0xNCAxODozMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBkb2NzOiBmaXggZG9jcyBmb3IgZ3N0X3F1ZXVlX2FycmF5X3BlZWtfaGVhZCgpCgoyMDEzLTEyLTE0IDE5OjA4OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IERvbid0IGRlZmluZSB5eXNjYW5fdCB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMzE2CgoyMDEzLTEyLTEzIDIyOjUxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IG1vdmluZyBwbHVnaW5zOiBtaW5vciAwLjEwIC0+IDEuMCBmaXgKCSAgU3BvdHRlZCBieSBKYXkgRmVubGFzb24KCjIwMTMtMTItMTEgMTQ6NDI6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogZG9uJ3QgaWdub3JlIGV2ZW50IHJldHVybiB2YWx1ZQoJICBQYXNzIHRoZSBldmVudCByZXR1cm4gdmFsdWUgdXBzdHJlYW0uCgkgIFJlbW92ZSBzdHJhbmdlIGdvdG8gY29uc3RydWN0LgoKMjAxMy0xMi0xMCAxODozMDowMyAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEhhbmRsZSB0YWdsaXN0IGNvcHkgZmFpbHVyZQoJICBJZiB3ZSBjb3VsZG4ndCBjb3B5IHRoZSB0YWdzLCBqdXN0IHJldHVybiBpbnN0ZWFkIG9mIHRyeWluZyB0byB1c2UgYm9ndXMKCSAgdmFsdWVzLgoKMjAxMy0xMi0xMCAxODoyNToyMiAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogSW5kZXggZmVhdHVyZXMgYXJlIG5vIG1vcmUKCSAgU28gcmVtb3ZlIGNvZGUgdGhhdCB3aWxsIG5ldmVyIGJlIHVzZWQKCjIwMTMtMTItMTAgMTc6NTM6MjQgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRml4IGNvbXBhcmlzaW9uIG9mIGRvdWJsZSByYW5nZQoJICBDaGVja2luZyB0d2ljZSB0aGUgbG93ZXIgYm91bmQgaXMgZ3JlYXQgKHlvdSBuZXZlciBrbm93LCBpdCBtaWdodCBjaGFuZ2UKCSAgYmV0d2VlbiB0aGUgdHdvIGNhbGxzIGJ5IHNvbWVvbmUgdXNpbmcgZW1hY3MgYnV0dGVyZmx5LW1vZGUpLCBidXQgaXQncyBhIGJpdAoJICBtb3JlIHVzZWZ1bCB0byBjaGVjayB0aGUgaGlnaGVyIGJvdW5kIGFyZSBhbHNvIGlkZW50aWNhbC4KCSAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkKCjIwMTMtMTItMTAgMTc6MDk6MDcgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggb3V0LW9mLWJvdW5kcyBkZXRlY3Rpb24KCSAgV2Ugd2FudCB0byBhYm9ydCBpZiB3ZSBoaWdoZXIgdGhhbiB0aGUgbWF4aW11bSAqT1IqIGxvd2VyIHRoYW4gdGhlIG1pbmltdW0KCSAgYWNjZXB0ZWQgdmFsdWUuCgkgIERldGVjdGVkIGJ5IENvdmVyaXR5LgoKMjAxMy0xMi0wNyAxOTowNDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWdpc3RlcmluZyB0aGUgc2FtZSBjYXRlZ29yeSB0d2ljZQoKMjAxMy0xMi0wNyAxOTozMjo1OCArMDEwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZXR1cm4gZXhpc3RpbmcgY2F0ZWdvcnkgaWYgYSBkZWJ1ZyBjYXRlZ29yeSBpcyByZWdpc3RlcmVkIHR3aWNlCgkgIElmIGEgY2F0ZWdvcnkgd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGZvdW5kIHdoZW4gY3JlYXRpbmcgYSBuZXcKCSAgb25lLCB0aGUgZm91bmQgY2F0ZWdvcnkgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBpbnZhbGlkIHBvaW50ZXIuCgkgIEZpeGVzIGlzc3VlIHdpdGggZ3N0LXZhYXBpICh3aGljaCB1c2VzIGFuIGludGVybmFsIGNvcHkgb2YgdGhlCgkgIGNvZGVjIHBhcnNlcnMpIGNhdXNlZCBieSBjb21taXQgY2NiYTkxMzAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAwMzYKCjIwMTMtMTItMDcgMTU6Mzg6MTkgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9tYW51YWwvb3V0bGluZS50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIGRvY3M6IEZpeCB0eXBvcyBpbiBmdW5jdGlvbi9vYmplY3QgZGVzY3JpcHRpb25zCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAwMjkKCjIwMTMtMTItMDcgMTU6NDA6MzIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEZpeCBzb21lIHR5cG9zIGluIGNvZGUgY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAwMjkKCjIwMTMtMTItMDYgMjA6NTA6MTkgKzAwMDAgIFN0ZXdhcnQgQnJvZGllIDxzdGV3YXJ0QGVoLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogY2xhcmlmeSBlbmNvZGluZyBvZiBzdHJpbmdzIGluIEdzdFN0cnVjdHVyZXMgYW5kIHRhZ2xpc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNjIKCjIwMTMtMDctMDIgMjA6Mjc6NTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2V0IGZvcm1hdCB0byBUSU1FIGlmIGRvLXRpbWVzdGFtcCBpcyBUUlVFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDIKCjIwMTMtMTItMDUgMDA6MjY6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBkb24ndCB0cnkgdG8gcmVtb3ZlIGFscmVhZHktcmVtb3ZlZCBHU291cmNlIGZyb20gbWFpbiBsb29wCgkgIEl0J3MgY29uc2lkZXJlZCBhIHByb2dyYW1taW5nIGVycm9yIGluIHJlY2VudCBHTGliIHZlcnNpb25zIG5vdy4KCSAgV2UgbWF5IGFscmVhZHkgaGF2ZSByZW1vdmVkIHRoZSBzb3VyY2UgYnkgcmV0dXJuaW5nIEZBTFNFIGZyb20KCSAgdGhlIGNhbGxiYWNrIGlmIGl0IHdhcyBmaXJlZC4gRml4ZXMgd2FybmluZyB3aXRoIG5ld2VyIEdMaWJzCgkgIHdoZW4gaW50ZXJydXB0aW5nIGEgcGlwZWxpbmUgd2l0aCBDb250cm9sLUMuCgoyMDEzLTEyLTA0IDE3OjM1OjE4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogTWFrZSBzdXJlIHRoZSBzYW1lIGNhdGVnb3J5IGlzIG5vdCBhZGRlZCB0d2ljZQoKMjAxMy0xMi0wNCAxNzozNTowMiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFByb3RlY3QgX19jYXRlZ29yaWVzIGxpc3QgaW4gZ2V0X2NhdGVnb3J5IHdpdGggbG9jayB0b28KCjIwMTMtMTItMDQgMDA6MTA6MzYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBhZGQgbWlzc2luZyBmaWxlcyBmb3IgZGlzdHJpYnV0aW9uCgkgICogYWRkIHNvbWUgZG9jdW1lbnRhdGlvbiBmaWxlcyBpbiBkb2NzL2Rlc2lnbgoJICAqIGFkZCBkb2NzL2xpc3QtdWxpbmsueHNsIHNvIGNoZWNrIGluIGRvY3MvbWFudWFsIHdvcmtzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4MTQKCjIwMTMtMTItMDMgMjE6NDY6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIEFDQ0VQVF9JTlRFUkNFUFQgZmxhZwoJICBNYWtlIGEgbmV3IGZsYWcgb24gdGhlIHBhZCB0aGF0IHR3ZWFrcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlCgkgIGFjY2VwdC1jYXBzIGZ1bmN0aW9uLiBCeSBkZWZhdWx0IGl0IHdpbGwgY2hlY2sgZm9yIGEgc3Vic2V0IG9mIHRoZQoJICBxdWVyeS1jYXBzIHJlc3VsdCBidXQgdGhpcyBpcyBub3QgYWx3YXlzIGRlc2lyYWJsZS4gVGhlIHF1ZXJ5LWNhcHMKCSAgcmVzdWx0IGNvbnRhaW5zIGFsbCB0aGUgY29uc3RyYWludHMgdG8gbWFrZSBhIGdvb2QgY2FwcyBkZWNpc2lvbgoJICB1cHN0cmVhbSBidXQgc29tZXRpbWVzLCBsaWtlIGZvciBwYXJzZXJzLCBub3QgYWxsIHRoZSBjb25zdHJhaW5lZCBjYXBzCgkgIGZpZWxkcyBhcmUga25vd24gdXBzdHJlYW0gYW5kIHRoZW4gYSBzdWJzZXQgY2hlY2sgd291bGQgZmFpbC4gU3dpdGNoaW5nCgkgIHRvIGFuIGludGVyc2VjdGlvbiBtYWtlcyB0aGlzIHdvcmsgYWdhaW4uCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MDI0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc0MDEKCjIwMTMtMTItMDIgMjI6MjI6MzYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCBvbiByZWNvbmZpZ3VyZSBldmVudAoJICBBZnRlciBwYXRjaCBiZGE0MDZjNCwgdGhlIHN0YXRlIG9mIHRoZSBzaW5nbGVxdWV1ZSB3YXMgc2V0IHRvIE9LLCBidXQgbm90aGluZwoJICB3b3VsZCB0aGVuIHdha2UgdXAgdGhlIHRocmVhZCwgYXMgdGhlIG90aGVyIHdha2V1cCBmdW5jdGlvbnMgb25seSBsb29rIGF0CgkgIHNpbmdsZXF1ZXVlcyB0aGF0IGFyZSBtYXJrZWQgYXMgaGF2aW5nIHJlY2VpdmVkIGFzIG5vdC1saW5rZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDgyMDAKCjIwMTMtMTEtMzAgMTI6MTU6MzcgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgZG9jcywgZml4aW5nIGRvYyBlcnJvcnMKCSAgKiBhZGQgbWFueSBtaXNzaW5nIGRlY2xhcmF0aW9ucyB0byBzZWN0aW9ucwoJICAqIEdzdENvbnRyb2xsZXIgaGFzIGJlZW4gcmVtb3ZlZCwgdXBkYXRlIGRvY3MKCSAgKiBza2lwIEdzdEluZGV4IHdoZW4gZ2VuZXJhdGluZyBkb2N1bWVudGF0aW9uCgkgICogcmVwaHJhc2Ugc28gZ3RrZG9jIGRvZXNuJ3QgaW1hZ2luZSByZXR1cm4gdmFsdWUKCSAgKiBhZGQgbWlzc2luZyBhcmd1bWVudCBkZXNjcmlwdGlvbiBmb3IgZ3N0X2NvbnRleHRfbmV3KCkKCSAgKiBkb2N1bWVudCBHc3RPdXRwdXRTZWxlY3RvclBhZE5lZ290aWF0aW9uTW9kZSBhbmQgbW92ZSB0byBoZWFkZXItZmlsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NjE0CgoyMDEzLTExLTMwIDE0OjUyOjQwICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGRvY3M6IGNvc21ldGljIGNoYW5nZXMgaW4gcmVmZXJlbmNlcy9kZWNyaXB0aW9ucwoJICAqIGZpeCB0eXBvIEdzdEJ1ZmZlckZsYWcgLT4gR3N0QnVmZmVyRmxhZ3MKCSAgKiBmaXggdHlwbyBHc3RGZWF0dXJlcyAtPiBHc3RDYXBzRmVhdHVyZXMKCSAgKiBmaXggdHlwbyBHc3RBbGxvY2F0b3JQYXJhbXMgLT4gR3N0QWxsb2NhdGlvblBhcmFtcwoJICAqIGZpeCB0eXBvIEdzdENvbnRybFNvdXJjZXMgLT4gR3N0Q29udHJvbFNvdXJjZQoJICAqIGRvIG5vdCByZWZlciB0byBnc3RjaGVjayBhcyBhbiBvYmplY3QKCSAgKiBtYWtlIHJlZmVyZW5jZXMgZ3RrX2luaXQoKSBhbmQgdGNhc2Vfc2V0X3RpbWVvdXQoKSBub3QgYmUgcmVmZXJlbmNlcwoJICAqIGdzdF9lbGVtZW50X2dldF9wYWQoKSByZW5hbWVkIGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKCkKCSAgKiBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgcmVuYW1lZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpCgkgICogX2Ryb3BfZWxlbWVudCgpIGlzIHJlYWxseSBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkKCSAgKiBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgd2FzIHJlbW92ZWQsIGRvIG5vdCByZWZlciB0byBpdAoJICAqIHNlcGFyYXRlIEdTVF9NRVRBX1RBR19NRU1PUllfU1RSIGRlY2xhcmF0aW9uIGZyb20gZGVzY3JpcHRpb24KCSAgKiBkbyBub3QgZGVzY3JpYmUgcmVtb3ZlZCBnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3QoKQoJICAqIGNvcnJlY3RseSBsaW5rIHRvIEdzdEVsZW1lbnRDbGFzcycgdmlydHVhbCBzZXRfY29udGV4dCgpCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk2MTQKCjIwMTMtMTEtMjkgMTQ6MDA6MzUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIHBhcnNlOiBNYW51YWxseSBpbnNlcnQgcHJpdl9nc3RfcGFyc2VfeXlnZXQvc2V0X2NvbHVtbiBwcm90b3R5cGVzIGZvciBvbGRlciBmbGV4CgkgIE9sZGVyIHZlcnNpb25zIG9mIGZsZXggKGJlZm9yZSAyLjUuMzYpIGRvbid0IGFkZCB0aGUgcHJvdG90eXBlLCBzbyBpdCBtdXN0CgkgIGJlIGFkZGVkIG1hbnVhbGx5LiBXZSBjYW4ndCBjaGVjayBieSB0aGUgdmVyc2lvbiBudW1iZXIsIGJlY2F1c2UgRGViaWFuL1VidW50dQoJICBwYXRjaGVkIGl0IGludG8gdGhlaXIgMi41LjM1IGF0IHNvbWUgcG9pbnQuCgoyMDEzLTExLTE5IDExOjQxOjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3RwYWQ6IGRyb3AgYXNzZXJ0aW9uIG9uIGdzdF9wYWRfcGVlcl9xdWVyeV9wb3NpdGlvbgoJICBJdCBpcyBhICdib3RoJyBxdWVyeSwgc28gaXQgY2FuIGJlIHNlbnQgYm90aCB3YXlzCgoyMDEzLTExLTE4IDE4OjExOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBoYW5kbGUgZ2FwIGV2ZW50cwoJICBVc2UgZ2FwIGV2ZW50cyB0byBhZHZhbmNlIHRoZSBzZWxlY3RvcidzIHBhZCBwb3NpdGlvbi4KCSAgVGhpcyBpcyByZWxldmFudCB0byBrZWVwIHN5bmNfc3RyZWFtcyBtb2RlIHdvcmtpbmcgd2hlbiBvbmUgb2YgdGhlCgkgIHN0cmVhbXMgZG9lc24ndCBoYXZlIGRhdGEgYWxsIHRoZSB0aW1lLgoKMjAxMy0xMS0yOSAxNzowMjo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgUmV2ZXJ0ICJnaG9zdHBhZDogY29weSBzdGlja3kgZXZlbnRzIHRvIFNSQyBnaG9zdHBhZHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODE2MmE1ODNhNGRkNjg1ODJiZjE4NmUyZTQ3YThmMGQ2OGZhMTk4MC4KCSAgQXV0b21hdGljYWxseSBjb3B5aW5nIHRoZSBzdGlja3kgZXZlbnRzIG1ha2VzIGl0IGltcG9zc2libGUgZm9yIGFwcHMKCSAgYW5kIGVsZW1lbnRzIHRvIGZpbHRlciB0aGUgZXZlbnRzIHdpdGggZXZlbnQgcHJvYmVzLiBUaGlzIGNhdXNlcwoJICByZWdyZXNzaW9ucyAoU2VlICM3MTk0MzcpLiBUaGUgYmVzdCBvcHRpb24gaXMgdG8gbGV0IHRoZSBhcHAvZWxlbWVudAoJICBjb3B5IGFuZCBmaWx0ZXIgdGhlIGV2ZW50cyB0aGVtc2VsdmVzIGFmdGVyIHRoZSBnaG9zdHBhZCB0YXJnZXQgaXMKCSAgc2V0LgoKMjAxMy0xMS0xOSAxNTowMzozNSArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBzZWdmYXVsdGluZyBwcm90b3R5cGUtbWlzbWF0Y2gKCSAgTm93IFlZREVCVUcgaXMgYWx3YXlzIHNldCwgc28gY2hlY2sgaXQncyB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNjc5CgoyMDEzLTExLTI3IDE4OjMyOjIyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRml4IGRvY3N0cmluZyBmb3Igcm91bmQtdHJpcC1saW1pdCBhbmQgdW5pbml0IGFjY2VzcyB3YXJuaW5nLgoJICBGaXggYSB0eXBvIGluIGEgZG9jIHN0cmluZyAtIHRoZSBwcm9wZXJ0eSBpcyByb3VuZC10cmlwLWxpbWl0LCBub3QKCSAgcm91bmR0cmlwLWxpbWl0LgoJICBSZW1vdmUgYSBib2d1cyBHU1RfV0FSTklORyB0aGF0IGNhbiBwcmludCBhbiB1bmluaXRpYWxpc2VkIHZhcmlhYmxlCgkgIGFuZCBpcyByZWR1bmRhbnQgYW55d2F5LgoKMjAxMy0xMS0yNiAxMTo1Njo0NiArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBBZGQgcm91bmQtdHJpcC1saW1pdCBwYXJhbWV0ZXIKCSAgU29tZXRpbWVzLCBwYWNrZXRzIG1pZ2h0IHRha2UgYSB2ZXJ5IGxvbmcgdGltZSB0byByZXR1cm4uIFN1Y2ggcGFja2V0cwoJICB1c3VhbGx5IGFyZSB3YXkgdG9vIGxhdGUgYW5kIGRlc3RhYmlsaXplIHRoZSByZWdyZXNzaW9uIHdpdGggdGhlaXIKCSAgb2Jzb2xldGUgZGF0YS4gT24gV2ktRmksIHJvdW5kLXRyaXBzIG9mIG92ZXIgNyBzZWNvbmRzIGhhdmUgYmVlbiBvYnNlcnZlZC4KCSAgSWYgdGhlIGxpbWl0IGlzIHNldCB0byBhIG5vbnplcm8gdmFsdWUsIHBhY2tldHMgd2l0aCBhIHJvdW5kLXRyaXAgcGVyaW9kCgkgIGxhcmdlciB0aGFuIHRoZSBsaW1pdCBhcmUgaWdub3JlZC4KCSAgU2lnbmVkLW9mZi1ieTogQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzg1CgoyMDEzLTExLTI1IDE5OjA0OjM4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBGaXggZ2kgYW5ub3RhdGlvbnMgb2YgZ3N0X3N0cnVjdHVyZV9uZXdfY3VzdG9tKCkKCjIwMTMtMTEtMjYgMDI6NDM6NTQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBGaXggQzk5IGNvbW1lbnQKCjIwMTMtMTEtMjYgMDI6MTc6MzYgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBJbXBsZW1lbnQgcm9sbGluZy1hdmVyYWdlIGZpbHRlciBvbiBvYnNlcnZhdGlvbnMuCgkgIEtlZXAgYSByb2xsaW5nIGF2ZXJhZ2Ugb2YgdGhlIHJvdW5kIHRyaXAgdGltZSBmb3IgbmV0d29yayBjbG9jawoJICBvYnNlcnZhdGlvbnMsIGZhdm91cmluZyBzaG9ydGVyIHJvdW5kIHRyaXBzIGFzIGJlaW5nIG1vcmUgYWNjdXJhdGUuCgkgIERvbid0IHBhc3MgYW55IGNsb2NrIG9ic2VydmF0aW9uIHRvIHRoZSBjbG9jayBzbGF2aW5nIGlmIGl0IGhhcyBhCgkgIHJvdW5kLXRyaXAgdGltZSBncmVhdGVyIHRoYW4gMiB0aW1lcyB0aGUgYXZlcmFnZS4KCSAgQWN0dWFsIHNoaWZ0cyBpbiB0aGUgbmV0d29yayB0b3BvbG9neSB3aWxsIGJlIG5vdGljZWQgYWZ0ZXIgc29tZQoJICB0aW1lLCBhcyB0aGUgcm9sbGluZyBhdmVyYWdlIGluY29ycG9yYXRlcyB0aGUgbmV3IHJvdW5kIHRyaXAgdGltZXMuCgoyMDEzLTExLTI1IDIwOjMzOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFkZCBkZWJ1ZyBpbnRvIGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9xdWVyeSgpIGZvciBhY2NlcHRfY2FwcwoKMjAxMy0xMS0xNCAxNTozMjo1OSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZXhpdCB3aXRoIGFuIGVycm9yIGNvZGUgd2hlbiBhbiBlcnJvciBvY2N1cmVkCgkgIElmIHRoZSBwaXBlbGluZSBmYWlsZWQgdG8gcHJlLXJvbGwgb3IgdGhlIHVzZXIgaW50ZXJydXB0ZWQgdGhlCgkgIGV4ZWN1dGlvbiB0aGVuIHNldCB0aGUgZXhpdCBjb2RlIHRvIGEgcG9zaXRpdmUgdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIzMDAKCjIwMTMtMTEtMjIgMDE6MzU6MTggKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRXNjYXBlIHN0cmVhbSBpZCBmb3JtYXQgaW4gY29tbWVudHMKCSAgVGhlc2UgbXVzdCBiZSBlc2NhcGVkIGZvciBndGstZG9jIHRvIHBhcnNlIHRoZSBjb21tZW50cyB3aXRob3V0IHdhcm5pbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0OTg5CgoyMDEzLTExLTIxIDE1OjA0OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdDogZ19tZW1tb3ZlKCkgaXMgZGVwcmVjYXRlZAoJICBKdXN0IHVzZSBwbGFpbiBtZW1tb3ZlKCksIGdfbWVtbW92ZSgpIGlzIGRlcHJlY2F0ZWQgaW4KCSAgcmVjZW50IEdMaWIgdmVyc2lvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI4MTEKCjIwMTMtMTEtMjEgMTQ6MTM6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBjb3B5IHN0aWNreSBldmVudHMgdG8gU1JDIGdob3N0cGFkcwoJICBVcGRhdGUgdGhlIHN0aWNreSBldmVudHMgb24gU1JDIGdob3N0cGFkcyB3aGVuIHJldGFyZ2V0aW5nLiBUaGlzIGVuc3VyZXMKCSAgdGhhdCB0aGUgZ2hvc3RwYWQgaGFzIHRoZSBleGVjdCBzYW1lIHN0aWNreSBldmVudHMgYXMgdGhlIHRhcmdldCBwYWQuIFdlCgkgIGRvbid0IHdhbnQgdG8gZG8gdGhpcyBmb3IgU0lOSyBnaG9zdHBhZHMsIHRoZXkgZ290IHRoZSBldmVudHMgZnJvbQoJICBkb3duc3RyZWFtIGFuZCB3ZSBkb24ndCB3YW50IHRvIG92ZXJ3cml0ZSB0aGVtIHdpdGggdGhlIHRhcmdldCBwYWQKCSAgZXZlbnRzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjIxCgoyMDEzLTExLTIxIDEyOjI4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3ZlIGRlYnVnIGZ1bmN0aW9uIGNsb3NlciB0byB0aGUgZW51bSBpdCBkZWJ1Z3MKCjIwMTMtMTEtMTggMjE6Mzk6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogY2hlY2sgcmVhZC93cml0ZSBiZWZvcmUgY2xvc2VkCgkgIGZpcnN0IHRyeSB0byByZWFkIG9yIHdyaXRlIG9uIHRoZSBzb2NrZXQgYmVmb3JlIGNoZWNraW5nIHRoZSBjbG9zZWQgc3RhdGUuIFRoaXMKCSAgbWFrZXMgc3VyZSB3ZSBoYW5kbGUgYWxsIGRhdGEgb24gdGhlIHNvY2tldCBiZWZvcmUgZXJyb3Jpbmcgb3V0LgoKMjAxMy0xMS0xOCAyMTozNzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGltcHJvdmUgZGVidWcKCSAgU28gdGhhdCB3ZSBjYW4gc2VlIHRoZSByZXR1cm4gdmFsdWVzIG9mIGZ1bmN0aW9ucyBpbiB0aGUgbG9nLgoKMjAxMy0xMS0xOCAxNToyODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGZpeCBHc3RCdXMgdW5pdCB0ZXN0IHdpdGggbGF0ZXN0IEdMaWIKCSAgZ19zb3VyY2VfcmVtb3ZlKCkgd29ya3Mgb24gdGhlIGRlZmF1bHQgbWFpbiBjb250ZXh0LCBhbmQKCSAgd2UncmUgZG9pbmcgdGhpbmdzIHdpdGggYSBjdXN0b20gY29udGV4dC4gRml4ZXMgd2FybmluZwoJICB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMuCgoyMDEzLTExLTE2IDEyOjI0OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgZG9jczogY29zbWV0aWMgc2luY2UgbWFya2VyIGZpeGVzCgoyMDEzLTExLTE2IDE1OjE3OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuc3VyZSB0byBwcmVzZXJ2ZSB1cHN0cmVhbSB0aW1lc3RhbXBzCgkgIC4uLiByYXRoZXIgdGhhbiBoYXZlIHN1YmNsYXNzIGNvbWluZyB1cCB3aXRoIGFuIGludGVybmFsbHkgcGFyc2VkIG9uZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzIzMAoKMjAxMy0xMS0xNSAwNzozMjo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBSZXN5bmMgaXRlcmF0b3IgaWYgbmVjZXNzYXJ5CgoyMDEzLTExLTEzIDE5OjU1OjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHZhbHVlOiBMaXN0cyB3aXRoIGFsbCBlcXVhbCBlbGVtZW50cyBhcmUgZXF1YWwgdG8gYSBzaW5nbGUgdmFsdWUKCSAgT3RoZXJ3aXNlIGNhcHMgY29udGFpbmluZyBmPXtYLCBYfSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBmPVgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI1MwoKMjAxMy0xMS0xMSAxNjo0NzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkKCjIwMTMtMTEtMTEgMTc6Mjk6NDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBSZWFsbHkgdXBkYXRlIHRoZSBkZWYgZmlsZXMKCjIwMTMtMTEtMTEgMTc6MDI6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZiBmaWxlcwoKMjAxMy0xMS0xMSAxNjo1MDoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFsc28gZXhwb3J0IExEX0xJQlJBUllfUEFUSCBmb3IgZ3N0LXBsdWdpbnMtZ2wKCjIwMTMtMTEtMDUgMTI6MjI6NTEgKzAwMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBleHBvcnQgZ3N0LXBsdWdpbnMtZ2wgRFlMRF9MSUJSQVJZX1BBVEgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTQ4OAoKMjAxMy0xMS0wNiAxODo0NjoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEFsd2F5cyBzZW5kIFNFRUsgZXZlbnRzIHRvIGFsbCBwYWRzLCBldmVuIGlmIG9uZSBmYWlscwoKMjAxMy0xMS0wNiAxODo0MToxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIGZsdXNoaW5nIHNlZWsgaGFuZGxpbmcKCjIwMTMtMTEtMDYgMTg6MDU6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBsZWFrIHNlZWsgZXZlbnRzCgoyMDEzLTA5LTE2IDA5OjU1OjU4ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogaW1wbGVtZW50IGZsdXNoaW5nIHNlZWsgc3VwcG9ydAoJICBJbXBsZW1lbnQgY29tbW9uIGZsdXNoaW5nIHNlZWsgbG9naWMgaW4gR3N0Q29sbGVjdFBhZHMuIEFkZCBuZXcKCSAgQVBJIHNvIHRoYXQgZWxlbWVudHMgY2FuIG9wdC1pbiB0byB1c2luZyB0aGUgbmV3IGxvZ2ljCgkgIChnc3RfY29sbGVjdF9wYWRzX3NyY19ldmVudF9kZWZhdWx0KSBhbmQgY2FuIGV4dGVuZCBpdAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hfZnVuY3Rpb24pIHRvIGZsdXNoIGFueSBpbnRlcm5hbAoJICBzdGF0ZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY3NzkgYW5kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NDEgZm9yIHRoZQoJICBiYWNrZ3JvdW5kIGRpc2N1c3Npb24uCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hfZnVuY3Rpb24oKQoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc3JjX2V2ZW50X2RlZmF1bHQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTA5LTE2IDA4OjM1OjM3ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiBhZGQgZmx1c2hpbmcgc2VlayB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTA5LTE2IDA4OjMxOjQ3ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiB0d2VhayBzdHViIF9jb2xsZWN0IHRvIHB1c2ggYWxsIGJ1ZmZlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0wOS0xNiAwODoyNjoyNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogdXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0xMS0xMSAxMzoyNzoyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCB1c2UgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSgpIHdoZW4gcG9zc2libGUKCSAgTWFrZXMgcXN0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlIDIwJSBmYXN0ZXIKCjIwMTMtMTEtMTEgMTI6MjU6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3lzdGVtY2xvY2s6IEFkZCBnc3Rfc3lzdGVtX2Nsb2NrX3NldF9kZWZhdWx0CgkgIFVzZWQgZm9yIHNldHRpbmcgdGhlIGRlZmF1bHQgc3lzdGVtIGNsb2NrIHRoYXQgaXMgb2J0YWluZWQgdGhyb3VnaAoJICBnc3Rfc3lzdGVtX2Nsb2NrX29idGFpbigpLCB3aGljaCBpcyBzb21ldGltZXMgbmVlZGVkIGZvciB1bml0CgkgIHRlc3RpbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEyNjkKCjIwMTMtMTEtMDQgMTg6NTc6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgdHlwZWZpbmQ6IHVzZSBnX2dldF9wcmduYW1lKCkgZm9yIGVycm9yIG1lc3NhZ2UKCjIwMTMtMTEtMDYgMTA6MTU6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBwcm94eSBjYXBzIGFuZCBhbGxvY2F0aW9uCgkgIFByb3h5IHRoZSBjYXBzIHF1ZXJpZXMgb24gdGhlIHNyY3BhZCBhcyB3ZWxsLgoJICBQcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBvbiB0aGUgc2lua3BhZC4KCjIwMTMtMTEtMDUgMTE6MTc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg2NWFhMjAgdG8gZGJlZGFhMAoKMjAxMy0xMS0wNCAxMzo1NjozNyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ac2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBSZW1vdmUgc29tZSBkZWFkIGNvZGUKCjIwMTMtMTEtMDQgMTE6NDg6NDcgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGV4cGxpY2l0bHkgY2FzdCB0byBHc3RMb2NrRmxhZ3MgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTMtMTEtMDIgMTU6MzY6MTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlc3VycmVjdCBzYW5pdGl6aW5nIHN0YXJ0IGFuZCBzdG9wIGZvciBzZWVraW5nCgoyMDEzLTExLTAyIDE1OjQyOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWluZCBib2dnbGluZyB3cmFwIHdoZW4gY29tcGFyaW5nIG9mZnNldHMKCjIwMTMtMTEtMDIgMTU6Mzg6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHJ5IGZpcnN0IGZyYW1lIHB0cyBhbmQgZHRzIGZvciBhIHZhbGlkIHN0YXJ0IHRpbWVzdGFtcAoKMjAxMy0xMS0wMiAxNTozNzozMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmludCBwcm9wZXIgdmFyaWFibGUgaW4gZGVidWcgc3RhdGVtZW50CgoyMDEzLTExLTAxIDE2OjM1OjU5ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IE1ha2UgdGhlIEZBVEFMX0VSUk9SUyBmbGFnIGFsc28gd29yayB3aXRob3V0IGEgR0Vycm9yCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0cwoKMjAxMy0xMC0yMyAxNTo1NjoyMCArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IHBvdGVudGlhbCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDc1OAoKMjAxMy0xMC0zMSAxNjoxNjo0OCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ac2lzYS5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSAgZG9jczogZml4IGNvbW1vbiB0eXBvcyBlbWl0ZWQvZWFjaG90aGVyLy4uLgoKMjAxMy0xMC0zMCAyMTo1MzozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCBzb21lIGF0dHJpYnV0ZXMgYW5kIHJlb3JnYW5pemUgY29kZSB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCSAgZ3N0dXRpbHMuYzozNjU5OjQxOiBlcnJvcjogZm9ybWF0IHN0cmluZyBpcyBub3QgYSBzdHJpbmcgbGl0ZXJhbAoJICBbLVdlcnJvciwtV2Zvcm1hdC1ub25saXRlcmFsXQoJICBnY2hhciAqZXhwYW5kZWQgPSBnX3N0cmR1cF92cHJpbnRmIChzdHJlYW1faWQsIHZhcl9hcmdzKTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDYyMQoKMjAxMy0xMC0yNSAxNDo1NjoxNiArMDIwMCAgQW50b25pbyBPc3BpdGUgPG9zcGl0ZUBzdHVkZW50aS51bmluYS5pdD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiByZW5hbWUgdGhlICJzYW1wbGVyYXRlIiB2YXJpYWJsZSB0byBtYWtlIGV4YW1wbGUgY29kZSBjb21waWxhYmxlCgkgIEluIG9uZSBvZiB0aGUgZXhhbXBsZXMgYWJvdXQgZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkgdGhlcmUgaXMgYSB2YXJpYWJsZQoJICBkZWNsYXJlZCBhcyAicmF0ZSIsIGJ1dCB0aGVuIHRoZSBuYW1lICJzYW1wbGVyYXRlIiBpcyB1c2VkIHdoZW4gc2V0dGluZwoJICB0aGUgY2Fwcy4KCSAgVXNlIHRoZSBuYW1lICJyYXRlIiBldmVyeXdoZXJlIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwODc2CgoyMDEzLTEwLTI5IDE4OjA5OjMyICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBkb2M6IGZpeCBmb3J3YXJkIHJlZmVyZW5jZSBhYm91dCBnaG9zdCBwYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEwODkKCjIwMTMtMTAtMjggMTI6NTU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICBkb2NzOiBkZXNpZ246IGZpeCBzb21lIGZpeGVzCgoyMDEzLTEwLTI2IDA5OjQ4OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGRvY3M6IGZsZXNoIG91dCBnc3QtdW5pbnN0YWxsZWQgZW50cnkgaW4gZmFxIHNvbWUgbW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5OTE2CgoyMDEzLTEwLTE2IDE1OjAwOjQxICswMjAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZG9jczogRkFRIHVwZGF0ZSB0byBtZW50aW9uIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5OTE2CgoyMDEzLTEwLTI1IDIxOjI5OjAxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBzbWFsbCBjbGVhbnVwcyBhbmQgdXNlIG9iamVjdCBsb2cgdmFyaWFudHMgbW9yZQoKMjAxMy0xMC0yNSAyMToyODozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBwcml2YXRlOiByZW1vdmUgbGVmdC1vdmVyIGNvbW1lbnQKCSAgVGhlIGNhcHMgYXJlIHNhdmVkIGluIHRoZSByZWdpc3RyeS4KCjIwMTMtMTAtMjUgMTg6NTE6NTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHVzZSBnX3NsaWNlX2ZyZWUgZm9yIHNsaWNlIG1lbW9yeQoJICBBdm9pZCBtZW1vcnkgbGlzdCBjb3JydXB0aW9uLCBidXQgZ19mcmVlJ2luZyBzbGljZSBtZW1vcnkuCgoyMDEzLTEwLTIzIDE4OjE2OjU0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogZmxlc2ggb3V0IHRoZSB0cmFjaW5nIGRlc2lnbiBhIGxpdHRsZSBtb3JlCgoyMDEzLTEwLTI1IDExOjAyOjE5IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggdHlwb3MgaW4gZ3N0b2JqZWN0CgoyMDEzLTEwLTIxIDE4OjAxOjIxIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1tZXRhLnR4dAoKMjAxMy0xMC0xNCAyMjowMzo1MCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWVsZW1lbnQtc291cmNlLnR4dAoKMjAxMy0xMC0xNCAyMTo1NDozMSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1zaW5rLnR4dAoKMjAxMy0xMC0xNCAxODo0Mzo0MCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNvbnZlbnRpb25zLnR4dAoKMjAxMy0xMC0xNCAxODozNDowNiAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY29udHJvbGxlci50eHQKCjIwMTMtMTAtMTQgMTg6MjQ6MTggLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNvbnRleHQudHh0CgoyMDEzLTEwLTE0IDE4OjEzOjM1IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNsb2Nrcy50eHQKCjIwMTMtMTAtMTQgMTg6MDU6NDMgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNhcHMudHh0CgoyMDEzLTEwLTE0IDE3OjQ0OjI3IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWJ1ZmZlci50eHQKCjIwMTMtMTAtMTQgMTc6Mjk6MTkgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWJ1ZmZlcnBvb2wudHh0CgoyMDEzLTEwLTE0IDA1OjM5OjE5IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWJ1ZmZlcmluZy50eHQKCjIwMTMtMTAtMTMgMjE6MTY6NDcgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1tZXNzYWdlcy50eHQKCjIwMTMtMTAtMTMgMjA6NDI6NDAgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtbWVtb3J5LnR4dAoKMjAxMy0xMC0xOCAwODo1ODowNSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBuZXQ6IENvbnN0aWZ5IGEgcGFyYW1ldGVyIHRvIGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldygpCgkgIEV2ZW4gdGhvdWdoIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCB1c2VkLCBpdCBzaG91bGQgYmUgY29uc3QgdG8gZml0IGluIHdpdGggdGhlCgkgIGNvZGluZyBzdGFuZGFyZHMgZm9yIG90aGVyIHNpbWlsYXIgcGFyYW1ldGVycy4gQ2xpZW50IGNvZGUgYWxyZWFkeSBwYXNzZXMgaW4KCSAgY29uc3Qgc3RyaW5ncyB1bmRlciB0aGUgZXhwZWN0YXRpb24gdGhhdCB0aGV5IHdvbuKAmXQgYmUgbW9kaWZpZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0NDIKCjIwMTMtMTAtMTUgMTE6NDQ6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogTWFrZSBzdXJlIHRvIGluY2x1ZGUgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgZ2xpYi1jb21wYXQtcHJpdmF0ZS5oCgkgIFdlIG5lZWQgdG8gZGVmaW5lIHRoZSBHTGliIGxvZyBkb21haW4gYmVmb3JlIGluY2x1ZGluZyBnbGliLmgsIHdoaWNoIGlzCgkgIGluY2x1ZGVkIGJ5IGdsaWItY29tcGF0LXByaXZhdGUuaC4KCjIwMTMtMTAtMTQgMTg6MDc6MTcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCB0byBzZWN0aW9ucy50eHQKCSAgU28gaXQgYXBwZWFycyBpbiB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24KCjIwMTMtMDktMjkgMTc6MzU6MTEgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzL2ZpbGVzcmM6IFNldCBsb2NhdGlvbiBpbiB3cm9uZyBzdGF0ZQoJICBBbHNvIHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudCBhYm91dCBjb2RlIHBvc3NpYmx5IG5vdCBiZWluZyByZWFjaGFibGUKCSAgdGhhdCBpcyBub3cgZXhlcmNpc2VkIGJ5IHRoZSBmaWxlc3JjIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTgzMQoKMjAxMy0xMC0xMiAxNjoxNjowOSArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IEZpeCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgcGFyc2VfbGF1bmNoIGZ1bmN0aW9ucy4KCSAgZ3N0X3BhcnNlX2xhdW5jaHYsIGdzdF9wYXJzZV9sYXVuY2h2X2Z1bGwgYW5kIGdzdF9wYXJzZV9sYXVuY2hfZnVsbAoJICBhbGwgcmV0dXJuIGZsb2F0aW5nIHJlZnMsIHRoZSBzYW1lIGFzIGdzdF9wYXJzZV9sYXVuY2gsIHdoaWNoIGp1c3QKCSAgY2FsbHMgZ3N0X3BhcnNlX2xhdW5jaF9mdWxsIGludGVybmFsbHkgYW55d2F5LgoJICBBZGQgYSB1bml0IHRlc3QgYXNzZXJ0aW9uIHRvIGNoZWNrIGl0J3MgdHJ1ZS4KCSAgU3BvdHRlZCBieSBuZW1lcXUgb24gSVJDLgoKMjAxMy0xMC0xMCAwODozMDoyNyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBnc3QvZ3N0LmM6CgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSAgY29yZTogRml4IG1heCBERUJVR19MRVZFTCBpbmNvbmdydWVuY2Ugb24gNSB2cyA5CgkgIEluIHRoZSBkb2NzIGFuZCB0aGUgYXV0b2NvbXBsZXRpb24gbG9naWMgdGhlIG1heGltdW0KCSAgdmFsdWUganVtcGVkIGluY29uZ3J1ZW50bHkgYmV0d2VlbiA1IGFuZCA5LgoKMjAxMy0xMC0xMCAxMzoxOTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2tpcCB0ZXN0X3N1YnNldF9kdXBsaWNhdGlvbiB1bnRpbCB0aGUgYnVnIGlzIGZpeGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNTMKCjIwMTMtMTAtMTAgMTI6NTY6NTQgKzAyMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGRvY3M6IEZpeCBzb21lIHJlZmVyZW5jZSBVUklzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4MDQKCjIwMTMtMTAtMDIgMTM6MDM6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCBhIHRlc3RjYXNlIGZvciBzdWJzZXQgY2hlY2tzIG9uIGxpc3RzIHdpdGggZHVwbGljYXRlZCBpdGVtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjUzCgoyMDEzLTEwLTA5IDE1OjM2OjQ4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBDYWxsIHRoZSBjb2xsZWN0ZWQgZnVuY3Rpb24gd2hpbGUgaXQgcmV0dXJucyBGTE9XX09LCgkgIFRoaXMgYWxsb3dzIHVzIHRvIG1ha2Ugc3VyZSB0aGUgZWxlbWVudHMgaXMgRU9TIGFuZCBkb2VzIG5vdCBoYXZlCgkgIHJlbWFpbmluZyBidWZmZXJzIHRvIGJlIGRyYWluZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk2MzcKCjIwMTMtMTAtMDUgMTA6MDg6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IGZpeCBmdW5jdGlvbiBuYW1lIGluIHFvcyBkZXNpZ24gZG9jcwoKMjAxMy0xMC0wMiAxMjozMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IHVzZSB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgdG8gc2tpcCBicm9rZW4gbXVsdGlxdWV1ZSB0ZXN0CgkgIFNvIHRoYXQgd2UgZ2V0IGEgd2FybmluZyBpbiB0aGUgb3V0cHV0IHRoYXQgcmVtaW5kcyB1cyB0aGF0CgkgIHNvbWV0aGluZyBuZWVkcyB0byBiZSBmaXhlZC4KCjIwMTMtMTAtMDIgMTE6MjQ6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBjaGVjazogRGlzYWJsZSBtdWx0aXF1ZXVlIHRlc3Rfb3V0cHV0X29yZGVyIGNoZWNrCgkgIFRoZSBjaGVjayBpdHNlbGYgaXMgcmFjeS4KCSAgKENLX0ZPUks9bm8gR1NUX0NIRUNLPXRlc3Rfb3V0cHV0X29yZGVyIG1ha2UgZWxlbWVudHMvbXVsdGlxdWV1ZS5mb3JldmVyKS4KCSAgVGhlIHByb2JsZW0gaXMgaW5kZWVkIHRoZSB0ZXN0IGFuZCBub3QgdGhlIGFjdHVhbCBlbGVtZW50IGJlaGF2aW91ci4KCSAgVGhlIG9iamVjdHMgdG8gcHVzaCBhcmUgYmVpbmcgcHVsbGVkIG91dCBvZiB0aGUgc2luZ2xlIGludGVybmFsIHF1ZXVlcyBpbiB0aGUKCSAgcmlnaHQgb3JkZXIgYW5kIGF0IHRoZSByaWdodCB0aW1lLi4uCgkgIEJ1dCBiZXR3ZWVuOgoJICAqIHRoZSBtb21lbnQgdGhlIGdsb2JhbCBtdWx0aXF1ZXVlIGxvY2sgaXMgcmVsZWFzZWQgKHdoaWNoIHdhcyB1c2VkIHRvIGRldGVjdAoJICBpZiB3ZSBzaG91bGQgcG9wIGFuZCBwdXNoIGRvd25zdHJlYW0gdGhlIG5leHQgYnVmZmVyKQoJICAqIGFuZCB0aGUgbW9tZW50IGl0IGlzIHJlY2VpdmVkIGJ5IHRoZSBzb3VyY2UgcGFkICh3aGljaCBkb2VzIHRoZSBjaGVjaykKCSAgPT4gYW5vdGhlciBzaW5nbGUgcXVldWUgKGxpa2UgdGhlIHVubGlua2VkIHBhZCkgbWlnaHQgcG9wIGFuZCBwdXNoIGEgYnVmZmVyCgkgIGRvd25zdHJlYW0KCSAgV2hhdCBzaG91bGQgd2UgZG8gPyBQdXR0aW5nIGEgYmlnZ2VyIG1hcmdpbiBvZiBlcnJvciAoc2F5IDUgYnVmZmVycykgZG9lc24ndAoJICBoZWxwLCBpdCdsbCBldmVudHVhbGx5IGZhaWwuCgkgIEkgY2FuJ3Qgc2VlIGhvdyB3ZSBjYW4gZGV0ZWN0IHRoaXMgcmVsaWFibHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2NjEKCjIwMTMtMDktMjUgMTk6MDY6NTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY2FwcyBzZXJpYWxpemF0aW9uIHdoZW4gdGhlcmUgYXJlIGNhcHMgaW5zaWRlIGNhcHMKCSAgV3JhcCBjYXBzIHN0cmluZ3Mgc28gdGhhdCBpdCBjYW4gaGFuZGxlIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbgoJICBvZiBjYXBzIGluc2lkZSBjYXBzLiBPdGhlcndpc2UgdGhlIHZhbHVlcyBmcm9tIHRoZSBpbnRlcm5hbCBjYXBzIGFyZSBwYXJzZWQKCSAgYXMgaWYgdGhleSB3ZXJlIGZyb20gdGhlIHVwcGVyIG9uZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NzcyCgoyMDEzLTA5LTI4IDA4OjQwOjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IENoZWNrIGVycm9ycyBvbiB0aGUgcHJvcGVyIGZkCgkgIE1vc3QgbGlrZWx5IGEgY29weS1wYXN0ZSBlcnJvciBmcm9tIHRoZSBibG9jayBiZWZvcmUuCgkgIElmIHdlJ3JlIGdvaW5nIHRvIGNoZWNrIGZvciBlcnJvci9jbG9zZWQgb24gdGhlIHdyaXRlIGZkLi4uIGRvIGl0CgkgIG9uIHRoZSB3cml0ZSBmZAoKMjAxMy0wOS0yNiAxNDowOTowMiAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggc3BlbGxpbmcgb2YgImdlbmVyaWMiIGluIEdzdEJhc2VTcmMncyBkb2N1bWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4ODcwCgoyMDEzLTA5LTI2IDExOjMyOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgY2hlY2sgZXZlbnQgb3JkZXIgd2hlbiBzb21ldGhpbmcgY2hhbmdlZAoJICBDaGVjayB0aGUgZXZlbnQgb3JkZXIgaW4gZGF0YWZsb3cgb25seSB3aGVuIHNvbWV0aGluZyBjaGFuZ2VkIGluc3RlYWQKCSAgb2YgZm9yIGVhY2ggYnVmZmVyLgoKMjAxMy0wOS0yNCAxODoyODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YjAzYmE3IHRvIDg2NWFhMjAKCjIwMTMtMDktMjQgMTU6MDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBY3R1YWxseSB1c2UgMS4zLjAuMSBhcyB2ZXJzaW9uIHRvIG1ha2UgY29uZmlndXJlIGhhcHB5CgoyMDEzLTA5LTI0IDE1OjAwOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMi4wID09PQoKMjAxMy0wOS0yNCAxNDowNzowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMi4wCgoyMDEzLTA5LTI0IDE0OjA2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA5LTI0IDEzOjEwOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBBZGQgdGVzdCBmb3IgdGhlIGNvbnRleHQgY2FjaGluZyBpbiBHc3RCaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODY2OAoKMjAxMy0wOS0yNCAxMjo0Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIFJldmVydCAiUG90ZW50aWFsIEdzdENvbnRleHQgcmVncmVzc2lvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlNjU4Mzc5NTM0ZWI0YTkwYjY1NGQ5MGYxZDBiZGY4NmYzN2M2ZTMxLgoJICBUaGlzIHRlc3QgY29tbWl0IHNob3VsZCd2ZSBuZXZlciBiZWVuIHB1c2hlZC4gT29wcy4KCjIwMTMtMDktMjQgMTI6NDY6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgdG8gY2FjaGUgY29udGV4dCB0eXBlcyB0aGF0IHdlIGRpZCBub3Qgc3RvcmUgeWV0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2NjgKCjIwMTMtMDktMjQgMTA6Mjk6MDYgKzAxMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBQb3RlbnRpYWwgR3N0Q29udGV4dCByZWdyZXNzaW9uCgkgIFNpbmNlIHRoZSByZWZhY3RvcmluZyBvZiBHc3RDb250ZXh0IChjb21taXRzCgkgIHFjOWZhMjc3MWI1MDhlOWFhZWVjYzcwMGU2NmU5NTgxOTA0NzZmLAoJICBhN2Y1ZGM4YjhhZjgzN2YwMTc4MmQxNTcyMzc5OTQ4ZmY2MmRhYWI3LAoJICA2OTAzMjZmOTA2ZGM4MmU0MWVhNThiODFjZGIyZTNlODhiNzU0LAoJICBkMzY3ZGMxYjBkNGVjYjM3ZjRkMjcyNjdlMDNkN2JmMGM2YzA2YTYsIGFuZAoJICA4MmQxNThhZWQzZjJlODU0NWUxZTdkMzUwODUwODVmZjU4ZjE4KSBJIGFtIG5vIGxvbmdlciBhYmxlIHRvIGdldAoJICBhIHNoYXJlZCBjb250ZXh0IGZvciBhbiBlbGVtZW50IHRoYXQgaXMgdXNlZCB0d2ljZSBpbiBhIHBpcGVsaW5lLgoJICBJIHVzZWQgdGhlIGRvY3VtZW50YXRpb24gYW5kIGVnbGdsZXNzaW5rIGFzIG15IHJlZmVyZW5jZSBmb3IKCSAgaW1wbGVtZW50aW5nIHRoZSBHc3RDb250ZXh0IGxvZ2ljLgoJICBBcyB0aGUgY29kZSB3YXMgdGllZCB0byBhIGhhcmR3YXJlIGRlY29kZXIsIEkgaGF2ZSBwb3J0ZWQgdGhlCgkgIEdzdENvbnRleHQgY29kZSB0byBmYWtlc2luayB0byBzaG93IHRoZSBwcm9ibGVtLiBVc2luZyB0aGUgb2xkCgkgIEFQSSBhIHNpbmdsZSBFeGFtcGxlTWdyIGluc3RhbmNlIGlzIGNyZWF0ZWQsIGJ1dCB1c2luZyB0aGUgbmV3CgkgIEFQSSBlYWNoIGVsZW1lbnQgaXMgY3JlYXRpbmcgaXRzIG93biBpbnN0YW5jZS4KCjIwMTMtMDktMjQgMTA6NDI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IE1ha2Ugc3VyZSB0aGF0IHRoZSBvYmplY3QgbG9jayBpcyBhbHdheXMgdGFrZW4gd2hlbiBhY2Nlc3NpbmcgdGhlIHByaXZhdGUgcGFkIGxpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODYzNgoKMjAxMy0wOS0xNyAyMzoyMzozNCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXNlIHByaXZhdGUgcGFkIGxpc3QgaW4gc2V0X2ZsdXNoaW5nX3VubG9ja2VkCgkgIHBhZHMtPmRhdGEgaXMgdGhlIHB1YmxpYyBsaXN0LiBJdCBpcyBkeW5hbWljYWxseSByZWJ1aWx0IGF0IGVhY2ggY2FsbCB0bwoJICBjaGVja19jb2xsZWN0ZWQsIGluIGNoZWNrX3BhZHMgdG8gYmUgc3BlY2lmaWMuIFdoZW4geW91IGFkZCBhIHBhZCBhbmQKCSAgY29sbGVjdHBhZHMgaGF2ZSBiZWVuIHN0YXJ0ZWQsIGl0IGlzIG5vdCBhZGRlZCB0byB0aGUgcHVibGljIGxpc3QuCgkgIFRodXMgdGhlcmUgZXhpc3RzIGEgcG9zc2libGUgcmFjZSB3aGVyZSA6CgkgIDEpIFlvdSB3b3VsZCBhZGQgYSBwYWQgdG8gY29sbGVjdHBhZHMgd2hpbGUgcnVubmluZy4KCSAgMikgWW91IHNldCBjb2xsZWN0cGFkcyB0byBmbHVzaGluZyBiZWZvcmUgY2hlY2tfY29sbGVjdGVkIGhhcyBiZWVuIGNhbGxlZCBhZ2FpbgoJICAtPiB0aGUgcGFkIGlzIG5vdCBzZXQgdG8gZmx1c2hpbmcKCSAgMykgdGhlIHBhZCBzdGFydHMgcHVzaGluZyBkYXRhIGFzIGRvd25zdHJlYW0gbWlnaHQgbm90IGJlIHByZXBhcmVkLCBpbiB0aGUgY2FzZQoJICBvZiBhZGRlciBpdCB0aGVuIHJldHVybnMgRkxPV19GTFVTSElORy4KCSAgNCkgZWxlbWVudHMgbGlrZSBkZW11eGVycywgd2hlbiB0aGV5IGdldCBhIEZMT1dfRkxVU0hJTkcsIHN0b3AgdGhlaXIgdGFza3MsCgkgIG5ldmVyIHRvIGJlIHNlZW4gYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2MzYKCjIwMTMtMDktMjMgMTE6NDc6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdHM6IGhhbmRsZSB1bnNjaGVkdWxlZCBlbnRyaWVzIGNvcnJlY3RseQoJICBNYWtlIHRoZSB0ZXN0Y2xvY2sgcmV0dXJuIEdTVF9DTE9DS19VTlNDSEVEVUxFRCB3aGVuIGFuIHVuc2NoZWR1bGVkIGVudHJ5IGlzCgkgIHVzZWQgZm9yIGdzdF9jbG9ja193YWl0KCkgb3IgZ3N0X2Nsb2NrX3dhaXRfYXN5bmMoKS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODYwNQoKMjAxMy0wOS0yMiAxMTowOTozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFsbG93IHNwZWNpZnlpbmcgdGhlIGNoZWNrb3V0IGRpcmVjdG9yeSBieSBlbnYgdmFyaWFibGUKCSAgRm9yIHNvbWUgcmFyZSBjYXNlcywgb25lIG1pZ2h0IG5vdCBiZSBhYmxlIHRvIHVzZSB0aGUgaGFyZGNvZGVkICRIT01FL2dzdAoJICBsb2NhdGlvbiB5ZXQgd291bGQgc3RpbGwgd2FudCB0byB1c2UgdGhlIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgYXMtaXMgKHdoaWNoCgkgIGhhcyB0aGUgYmVuZWZpdCBvZiBiZWluZyBjb25zdGFudGx5IHVwZGF0ZWQpLgoJICBGb3IgdGhlc2UgY2FzZXMsIHRoZSBjaGVja291dCBkaXJlY3RvcnkgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZQoJICBHU1RfVU5JTlNUQUxMRURfUk9PVCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgRXg6CgkgIGV4cG9ydCBHU1RfVU5JTlNUQUxMRURfUk9PVD0kSE9NRS9zb21ld2hlcmUvd2l0aC9jaGVja291dHMKCSAgQW5kIHRoZW4ganVzdCBjYWxsIGdzdC11bmluc3RhbGxlZCBkaXJlY3RseToKCSAgJEdTVF9VTklOU1RBTExFRF9ST09UL2dzdHJlYW1lci9nc3QtdW5pbnN0YWxsZWQKCjIwMTMtMDktMjAgMTY6MTY6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNjEzNjYxIHRvIDZiMDNiYTcKCjIwMTMtMDktMTkgMTg6NDI6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDc0YTY4NTcgdG8gYjYxMzY2MQoKMjAxMy0wOS0xOSAxNzozNDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTJhZjEwNSB0byA3NGE2ODU3CgoyMDEzLTA5LTE5IDE3OjEyOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiB0ZXN0Y2xvY2s6IGZpeCBmdW5jdGlvbiBndWFyZHMKCSAgU2hvdWxkIGJlIGdfcmV0dXJuXyooKSBub3QgZ19hc3NlcnQoKSwgZXZlbiBpZiBpdCdzIGZvciB0ZXN0cyBvbmx5LgoKMjAxMy0wOS0xOSAxNjo0MzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogdGVzdGNsb2NrOiBkb24ndCBwdXQgY29kZSB3aXRoIHNpZGUtZWZmZWN0cyBpbiBnX2Fzc2VydCgpCgkgIEZpeGVzIHVuaXQgdGVzdCBmYWlsdXJlcyB3aGVuIC1ER19ESVNBQkxFX0FTU0VSVCBpcyB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NTUxCgoyMDEzLTA5LTE5IDEyOjA3OjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGdzdGNvbnRleHQ6IEZpeCByZXR1cm4gdmFsdWVzIHNvbWUgbW9yZQoJICBSZXR1cm4gdmFsdWUgaXMgYSBib29sZWFuIG5vdCBhIHBvaW50ZXIKCjIwMTMtMDktMTkgMTE6NDk6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEZpeCByZXR1cm4gdmFsdWVzIGZvciBnc3RfY29udGV4dF9oYXNfY29udGV4dF90eXBlKCkgaW4gYXNzZXJ0aW9ucwoKMjAxMy0wOS0xOSAxMTozNDo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuOTAgPT09CgoyMDEzLTA5LTE5IDEwOjQ4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuOTAKCjIwMTMtMDktMTkgMTA6MDU6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDktMTkgMDk6NDk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250ZXh0OiBBZGQgY29udmVuaWVuY2UgZnVuY3Rpb24gZ3N0X2NvbnRleHRfaGFzX2NvbnRleHRfdHlwZSgpCgoyMDEzLTA5LTE5IDA5OjQyOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMy0wOS0xOCAyMzowNzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogSW1wbGVtZW50IGdldHRpbmcgdGhlIG5hbWUgb2YgdGhlIGNvbnRleHQgbWVzc2FnZSB0eXBlcwoKMjAxMy0wOS0xNyAyMTozNjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEZpeCB1bml0IHRlc3QgZm9yIEdzdENvbnRleHQgY2hhbmdlcwoKMjAxMy0wOS0xNyAxNDozNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVcGRhdGUgZm9yIEdzdENvbnRleHQgY2hhbmdlcwoKMjAxMy0wOS0xNyAxNDoyOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRleHQ6IFVwZGF0ZSBkb2NzCgoyMDEzLTA5LTE3IDE0OjI1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW1wbGVtZW50IGNvbnRleHQgY2FjaGluZyBhbmQgcHJvcGFnYXRpb24gYWdhaW4KCjIwMTMtMDktMTcgMTM6NTA6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBtZXNzYWdlL3F1ZXJ5OiBTaW1wbGlmeSBDT05URVhUIG1lc3NhZ2VzL3F1ZXJpZXMgdG8gb25seSBjb250YWluIGEgc2luZ2xlIHR5cGUKCjIwMTMtMDktMTcgMTM6MzM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IFVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDEzLTA5LTE3IDEzOjI4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBjb250ZXh0OiBDaGFuZ2UgR3N0Q29udGV4dCB0byBjb250YWluIG9ubHkgYSBzaW5nbGUgY29udGV4dAoJICBJdCB3YXMgdW5pbnR1aXRpdmUgdGhhdCBHc3RDb250ZXh0IHdhcyBhY3R1YWxseSBhIGxpc3Qgb2YgZGlmZmVyZW50CgkgIGNvbnRleHRzLiBHc3RDb250ZXh0IG5vdyBpcyBvbmx5IGEgdHlwZSBzdHJpbmcgYW5kIGEgc3RydWN0dXJlIHRvCgkgIGNvbnRhaW4gdGhlIGFjdHVhbCBjb250ZXh0LgoKMjAxMy0wOS0xNyAxMzoxMjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBSZW1vdmUgR3N0Q29udGV4dCBjYWNoaW5nCgoyMDEzLTA5LTE3IDEzOjEwOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJICBjb250ZXh0OiBBZGQgcGVyc2lzdGVudCBxdWFsaWZpZXIgZm9yIGEgY29udGV4dAoJICBOb24tcGVyc2lzdGVudCBjb250ZXh0cyBhcmUgcmVtb3ZlZCB3aGVuIGVsZW1lbnRzIGdvIGJhY2sKCSAgdG8gTlVMTCBzdGF0ZSwgcGVyc2lzdGVudCBjb250ZXh0cyBhcmUgbm90LiBBcHBsaWNhdGlvbnMKCSAgbW9zdCBsaWtlbHkgd2FudCB0byBzZXQgcGVyc2lzdGVudCBjb250ZXh0cy4KCjIwMTMtMDktMTcgMTM6MTA6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogTWFrZSBDT05URVhUIHF1ZXJ5IHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtCgoyMDEzLTA5LTE3IDEzOjA5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IFJlbW92ZSBDT05URVhUIGRvd25zdHJlYW0gZXZlbnQKCSAgVGhpcyBpcyBnb2luZyB0byBiZSBpbXBsZW1lbnRlZCB3aXRoIGFuIHVwc3RyZWFtIHF1ZXJ5IGluc3RlYWQKCSAgZm9yIGNvbnNpc3RlbmN5IGFuZCBzaW1wbGljaXR5LgoKMjAxMy0wOS0xMyAxNDo0MTo0NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogU3RvcCBhbGwgdW51c2VkIHRocmVhZHMgaW4gR1RocmVhZFBvb2wgaW4gZ3N0X2RlaW5pdCgpCgkgIFNpbmNlIHRoZSBkZWZhdWx0IG51bWJlciBvZiBtYXggdW51c2VkIHRocmVhZHMgaW4gR1RocmVhZFBvb2wgaGFzIGJlZW4KCSAgY2hhbmdlZCBmcm9tIDAgdG8gMiBpdCBuZWVkcyB0byBiZSBzZXQgdG8gMCB0byBzdG9wIGFsbCB0aHJlYWRzIG9yCgkgIHZhbGdyaW5kIHdpbGwgcmVwb3J0IHRoZW0gYXMgbWVtb3J5IGxlYWtzLgoKMjAxMy0wOS0xMCAxNjozOTozMCArMDEwMCAgUmljbyBUenNjaGljaGhvbHogPHJpY290ekB0LW9ubGluZS5kZT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmdzOiBmaXggcHNwZWMgcmVsYXhhdGlvbiBmb3IgY29udHJvbCBzb3VyY2UgcHJvcGVydGllcwoJICBUaGUgY2hhbmdlIHNob3VsZCBoYXZlIGJlZW4gZnJvbSBQQVJBTV9DT05TVFJVQ1RfT05MWSB0bwoJICBQQVJBTV9DT05TVFJVQ1QsIG90aGVyd2lzZSBiaW5kaW5ncyBhcmUgYWZmZWN0ZWQsIHNpbmNlCgkgIHRoZXkgbG9vayBmb3IgdGhlIENPTlNUUlVDVCBmbGFnLgoJICBTZWUgZWM1NTM2M2QKCjIwMTMtMDktMTAgMTA6MTU6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogT25seSB1cGRhdGUgY3VycmVudCBsZXZlbCBpZiB3ZSBhbHJlYWR5IGRvd25sb2FkZWQgYSByYW5nZQoJICBPdGhlcndpc2UgcXVldWUtPmxldmVsIGlzIE5VTEwgYW5kIGRlcmVmZXJlbmNpbmcgdGhhdCBpcyBub3QgYSBnb29kCgkgIGlkZWEgaW4gZ2VuZXJhbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzY0OAoKMjAxMy0wOS0wOSAxNTo0MDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogRGVwcmVjYXRlIEdTVF9NRVRBX1RBR19NRU1PUlkKCSAgVGhlIEdRdWFya3MgYXJlIG5vdCBleHBvcnRlZCBieSBhbnkgcHVibGljIEFQSQoKMjAxMy0wOC0yMiAwMDowMjoyOCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IEFkZCBhICNkZWZpbmUgZm9yIG1lbW9yeSBtZXRhZGF0YQoKMjAxMy0wOC0yMiAwMDowMTo0NCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcGxlbWVudCBhIGRlZmF1bHQgdHJhbnNmb3JtX21ldGEuIElmIGEgbWV0YWRhdGEgaGFzIG5vIGRlcGVuZGVuY3kgYXMgc2hvd24gYnkgdGhlIHRhZ3MsIGNvcHkgaXQuCgoyMDEzLTA4LTIyIDIxOjMyOjM2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBBUEk6IEFkZCBnc3RfbWV0YV9hcGlfdHlwZV9nZXRfdGFncygpIHRvIGdldCBhbGwgbWV0YSB0YWdzLgoKMjAxMy0wOS0wOSAxNDoyMTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICB0ZXN0cy9jYXBzZmlsdGVyOiBGaXggbWVtb3J5IGxlYWsgYW5kIGNvbXBhcmUgY2FwcyBkaXJlY3RseSBpbnN0ZWFkIG9mIHN0cmNtcCgpCgoyMDEzLTA5LTA2IDIzOjAzOjU0ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgdGVzdHMvY2Fwc2ZpbHRlcjogVGVzdCBjYXBzLXJlbGF0ZWQgcXVlcmllcyBhbmQgcHJvcGVydHkKCjIwMTMtMDktMDYgMTU6MDk6NDYgLTAzMDAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIFVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXRlIGJlZm9yZSBzdGFsbGluZyBmb3IgbW9yZSBkYXRhCgkgIEluIHNvbWUgY2FzZXMgdGhlIHdhaXQgZm9yIG1vcmUgZGF0YSB3YXMgaGFwcGVuaW5nIHdpdGhvdXQgdXBkYXRpbmcKCSAgdGhlIGJ1ZmZlcmluZyBzdGF0ZSwgbWVhbmluZyB0aGUgQVBJIHVzZXIgd291bGQgbm90IGJlIGFibGUgdG8gbm90aWNlCgkgIGl0IHNob3VsZCBwYXVzZSB0aGUgcGlwZWxpbmUgYW5kIHVwZGF0ZSBVSSB0byBpbmRpY2F0ZSB0aGF0IGlzIHRoZQoJICBjYXNlLCB0aGUgdmlkZW8gd291bGQgbGlrZWx5IHN0dXR0ZXIgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzY0OAoKMjAxMy0wOS0wNCAxNToyODoxMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByZXNlcnZlIHNlcW51bSBvbiBzZWdtZW50cyBhZnRlciBzZWVrcwoJICBUaGUgc2VxbnVtIG9mIHRoZSBzZWdtZW50IGFmdGVyIGEgc2VlayBzaG91bGQgYmUgdGhlIHNhbWUgb2YKCSAgdGhlIHNlZWsgZXZlbnQuIERvd25zdHJlYW0gZWxlbWVudHMgbWlnaHQgcmVseSBvbiBzZXFudW1zIHRvCgkgIGlkZW50aWZ5IGV2ZW50cyByZWxhdGVkIHRvIGEgc2Vlay4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHdoZW4gYSBkZW11eGVyIG1hcHMgYSBUSU1FIHNlZWsKCSAgaW50byBhIEJZVEVTIHNlZWsgZm9yIHVwc3RyZWFtIGFuZCBpdCBuZWVkcyB0byBpZGVudGlmeSB0aGUKCSAgY29ycmVzcG9uZGluZyBzZWdtZW50IGV2ZW50IGFuZCBtYXAgaXQgYmFjayBpbnRvIFRJTUUgdG8gcHVzaAoJICBkb3duc3RyZWFtLCBwb3NzaWJseSB1c2luZyB0aGUgdmFsdWVzIGZyb20gdGhlIG9yaWdpbmFsIHNlZWsKCSAgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc1MzAKCjIwMTMtMDktMDUgMTQ6MTQ6NDIgKzAyMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcm1lcmFsaUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCB1bnJlZiBOVUxMIEdzdENvbGxlY3REYXRhCgkgIElmIGEgcGFkIGlzIHJlbW92ZWQgd2hpbGUgYSBjb2xsZWN0cGFkcyBlbGVtZW50IChzYXkgYWRkZXIpIGlzIGluIGEgY2hhaW4KCSAgZnVuY3Rpb24gd2FpdGluZyB0byBiZSBjb2xsZWN0ZWQsIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhhdCBhbiB1bnJlZiBoYXBwZW5zCgkgIG9uIGEgTlVMTCBwb2ludGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NTM2CgoyMDEzLTA5LTA0IDE3OjExOjIwICswMjAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbmcub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFJlbW92ZSBQeVhNTCBmcm9tIHNwZWMgZmlsZSwgaXQgaXMgbm90IGxvbmdlciBuZWVkZWQKCjIwMTMtMDktMDQgMTQ6NDA6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBZGQgbWlzc2luZyBicmVhayBhZnRlciBoYW5kbGluZyB0aGUgR0FQIGV2ZW50CgkgIFRoYW5rcyB0byBFZHdhcmQgSGVydmV5IGZvciBub3RpY2luZy4KCjIwMTMtMDktMDQgMDk6MTg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIHRvb2xzOiBtb3ZlIGdzdC1wbG90LXRpbWVsaW5lLnB5IGludG8gc2NyaXB0cyBkaXJlY3RvcnkKCSAgU28gaXQncyBub3QgaW4gUEFUSCBpbiBhbiB1bmluc3RhbGxlZCBzZXR1cCAodGh3YXJ0aW5nCgkgIGdzdC1wbGF5IGF1dG9jb21wbGV0aW9uKS4KCjIwMTMtMDktMDMgMjM6NTk6MDUgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgcmVkdWNlIHNpbmdsZSBxdWV1ZSB2aXNpYmxlIHNpemUgYmVsb3cgaXRzIGN1cnJlbnQgbGV2ZWwKCSAgSWYgdGhlIG11bHRpcXVldWUgaGFzIGF1dG9tYXRpY2FsbHkgZ3Jvd24gY2hhbmNlcyBhcmUgZ29vZCB0aGF0CgkgIHdlIHdpbGwgY2F1c2UgdGhlIHBpcGVsaW5lIHRvIHN0YXJ2ZSBpZiB0aGUgbWF4aW11bSBsZXZlbCBpcyByZWR1Y2VkCgkgIGJlbG93IHRoYXQgYXV0b21hdGljYWxseSBncm93biBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MTU2CgoyMDEzLTA5LTAyIDEzOjUzOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBEb24ndCBhZGp1c3Qgc2VnbWVudC0+c3RhcnQgdG8gdGhlIGN1cnJlbnQgdGltZSB3aGVuIHN3aXRjaGluZyBwYWRzCgkgIFRoaXMgZG9lcyBub3QgbWFrZSBhbnkgc2Vuc2UgYXQgYWxsIGFuZCBicmVha3MgdGltZXN0YW1wLT5ydW5uaW5nX3RpbWUKCSAgY2FsY3VsYXRpb25zIGluIHVucHJlZGljdGFibGUgd2F5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzEzMAoKMjAxMy0wOC0yOSAyMzoxODozMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IERlbGV0ZSBsaW5rIGRpcmVjdGx5IGluIHBlbmRpbmdfZXZlbnRzLgoJICBXaGVuIHJlbW92aW5nIGEgc2VnbWVudCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzA4OAoKMjAxMy0wOC0yOSAxMTowNzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRlbW90ZSBsb2cgbWVzc2FnZSwgZG9uJ3Qgc3BhbSBJTkZPIGxldmVsIHdoZW4gaGFuZGxpbmcgYnVmZmVyIGxpc3RzCgoyMDEzLTA4LTI4IDEzOjI2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS40ID09PQoKMjAxMy0wOC0yOCAxMjozNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjQKCjIwMTMtMDgtMjggMTI6MzY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDgtMjggMTI6MzA6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA4LTI3IDA5OjMxOjIyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHBsZWFzZSBnY2MgKGF2b2lkIGEgd2Fybl91bnVzZWRfcmVzdWx0IHdhcm5pbmcpCgoyMDEzLTA4LTI3IDA3OjUxOjM1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGZsdXNoIChkaXNjYXJkIGRhdGEpIG9uIEZMVVNIX1NUT1AKCSAgUmVzZXQgdGhlIHdyaXRlIHBvc2l0aW9uIHRvIDAgYW5kIHRydW5jYXRlIHRoZSBmaWxlIG9uIEZMVVNIX1NUT1AuCgoyMDEzLTA4LTI3IDA3OjA1OjExICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBmaWxlc2luazogc21hbGwgcmVmYWN0b3JpbmcKCjIwMTMtMDgtMjYgMTM6MTk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBkb24ndCBwcmludCBwcm9wZXJ0aWVzIGJlaW5nIHJlc2V0IHdoZW4gc2h1dHRpbmcgZG93bgoJICBJdCdzIGp1c3Qgbm9pc2UuCgoyMDEzLTA4LTIyIDE5OjAxOjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBwdXNoIG91dCBpZGVudGljYWwgY2FwcwoJICBUaGlzIGF2b2lkcyB0cmlnZ2VyaW5nIHBsZW50eSBvZiBleHRyYSBjb2RlL21ldGhvZHMvb3ZlcmhlYWQgZG93bnN0cmVhbSB3aGVuCgkgIHdlIGNhbiBqdXN0IHF1aWNrbHkgY2hlY2sgd2hlbmV2ZXIgd2Ugd2FudCB0byBzZXQgY2FwcyB3aGV0aGVyIHRoZXkgYXJlCgkgIGlkZW50aWNhbCBvciBub3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjYwMAoKMjAxMy0wOC0yMSAxMjoyMTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgZG9jczogZmxlc2ggb3V0IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcigpIGEgbGl0dGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NzgKCjIwMTMtMDgtMjAgMjM6NTk6MjkgLTA3MDAgIEtlcnJpY2sgU3RhbGV5IDxrZXJyaWNrQGtlcnJpY2tzdGFsZXkuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IG1ha2UgZ3JhbW1hci55IHdvcmsgd2l0aCBCaXNvbiAzCgkgIFlZTEVYX1BBUkFNIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgaW4gQmlzb24gMy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ2MgoKMjAxMy0wOC0yMCAxNzoxNTo0MSArMDkwMCAgV29uY2h1bCBMZWUgPGNodWwwODEyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiBBZGQgZ3N0X3NhbXBsZV9jb3B5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ1NAoKMjAxMy0wOC0xOSAxNDo1NToyMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBnc3RfYnVmZmVyX21lbWNtcCgpIHdoZXJlIHRoZSBidWZmZXIgaXMgc21hbGxlciB0aGFuIHNpemUKCSAgQWxzbyBhZGQgdW5pdCB0ZXN0cyBmb3IgZ3N0X2J1ZmZlcl9tZW1jbXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjE2MgoKMjAxMy0wOC0yMCAxNzowNjo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0X2VsZW1lbnRfcXVlcnlfe2R1cmF0aW9uLHBvc2l0aW9ufSBkb2NzIGEgYml0CgoyMDEzLTA4LTE0IDE2OjE4OjU5ICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogaGFuZGxlIHB1Ymxpc2hlciBhbmQgaW50ZXJwcmV0ZWQtYnkgdGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTk5CgoyMDEzLTA4LTIwIDEzOjU4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRG9uJ3QgY2FsbCBtZW1jcHkoKSB3aXRoIE5VTEwgc3JjIGFuZCAwIGxlbmd0aAoKMjAxMy0wOC0yMCAxMDoxNjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUHJvcGVybHkgdW5sb2NrIHRoZSBzaW5rcGFkIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTIwIDEwOjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFByb3Blcmx5IHVubG9jayB0aGUgc2lua3BhZCBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjM2MAoKMjAxMy0wOC0xOSAxNjozODo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMTkgMTY6Mzg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0xOSAxNjozODoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wNy0wMSAxNDowNDo0NiAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IEFkZCBHU1RfRkxBR19OT19TSU5HTEVfRUxFTUVOVF9CSU5TCgkgIFRoaXMgbWFrZXMgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgcmV0dXJuIGFuIGVsZW1lbnQgaW5zdGVhZCBvZgoJICBhIGJpbiBpZiB0aGVyZSdzIG9ubHkgb25lIGVsZW1lbnQuIEFsc28gY2hhbmdlZCBnc3RwYXJzZS5jIHRvIHVzZSB0aGlzLAoJICBzbyBnc3QtbGF1bmNoIHdvbid0IGNyZWF0ZSBzdXBlcmZsdW91cyBiaW5zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNDA1CgoyMDEzLTA4LTE2IDIwOjM2OjUzICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogcmV0dXJuIE5VTEwgd2hlbiBwYXJzaW5nIHVyaSByZWRpcmVjdGlvbiB0aGF0IHdhcyBub3Qgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYxNjAKCjIwMTMtMDgtMTggMTE6NDg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVcGRhdGUgc2luY2UgbWFya2VyIGZvciBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkgdG8gMS4wLjEwCgoyMDEzLTA4LTE2IDE2OjQ1OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBjcmFzaCBvbiBFT1MgaWYgcXVldWUgaXMgZW1wdHkKCSAgRml4ZXMgc3B1cmlvdXMgY3Jhc2ggaW4gdGVzdF9zaW1wbGVfc2h1dGRvd25fd2hpbGVfcnVubmluZwoJICB1bml0IHRlc3QuCgoyMDEzLTA4LTE2IDE2OjI4OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBjaGFuZ2UgZ2xvYmFsIGJ1ZmZlcmluZyBzdGF0ZSBmcm9tIHdpdGhpbiBxdWVyeSBoYW5kbGVyCgkgIFdoZW4gYSBidWZmZXJpbmcgcXVlcnkgaXMgaGFuZGxlZCBpdCB1c2VzIHRoZSBnZXRfYnVmZmVyaW5nX3BlcmNlbnQoKQoJICBmdW5jdGlvbiB0byBnZXQgc29tZSBzdGF0aXRpY3MuIFVuZm9ydHVuYXRlbHkgdGhpcyBmdW5jdGlvbiBhbHNvCgkgIGNhbGN1bGF0ZXMgd2hldGhlciB0aGUgcXVldWUgc2hvdWxkIGJlIGJ1ZmZlcmluZyBhbmQgYWRhcHRzIHRoZQoJICBnbG9iYWwgcXVldWUyIHN0YXRlIGluIGNhc2Ugb2Ygc3RhdGUgdHJhbnNpdGlvbnMgZnJvbS90byBidWZmZXJpbmcKCSAgKGluY2x1ZGluZyB3aGV0aGVyIGEgYnVmZmVyaW5nIG1lc3NhZ2Ugd2FzIHBvc3RlZCBvbiB0aGUgYnVzISkuCgkgIFRoaXMgbWVhbnMgdGhhdCB0aGVyZSBpcyBhIHJhY2Ugd2hpY2ggY2FuIGNhdXNlIGJ1ZmZlcmluZyBtZXNzYWdlcwoJICB0byBuZXZlciBwb3N0ZWQgaWYgdGhlIGdsb2JhbCBzdGF0ZSBjaGFuZ2VzIGhhcHBlbiBhcyBhIHJlc3VsdCBvZiBhYQoJICBxdWVyeSBpbnN0ZWFkIG9mIHJlc3VsdGluZyBmcm9tIGJ5dGVzIGZsb3dpbmcgaW4vb3V0LgoJICBTcG90dGVkIGJ5IFNqb2VyZCBTaW1vbnMuCgkgIENoYW5nZSB0byBvbmx5IHF1ZXJ5IHN0YXRlIGluIGdldF9idWZmZXJpbmdfcGVyY2VudCgpIGFuZCB1cGRhdGUKCSAgc3RhdGUgb25seSBpbiB1cGRhdGVfYnVmZmVyaW5nKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUzMzIKCjIwMTMtMDgtMTYgMTI6NTQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBidWZmZXJpbmcgd2hlbiBjaGFuZ2luZyBjYXBhY2l0eQoJICBXaGVuIHRoZSBjYXBhY2l0eSBvZiB0aGUgcXVldWUgY2hhbmdlcywgbWFrZSBzdXJlIHdlIHBvc3QgYW4gdXBkYXRlZCBidWZmZXJpbmcKCSAgbWVzc2FnZSBiZWNhdXNlIHdlIG1pZ2h0IHN1ZGRlbmx5IGhhdmUgY29tcGxldGVkIHRoZSBidWZmZXJpbmcgc3RhZ2UuCgoyMDEzLTA4LTE1IDE1OjM1OjA4ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgRnJlZSB0aHJlYWQgcG9vbHMgaW4gZ3N0X2RlaW5pdCgpCgoyMDEzLTA4LTE2IDExOjAzOjMwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBDYWxsIGdzdF9kZWluaXQoKSBhdCBleGl0IG9mIGFsbCBwcm9jZXNzZXMKCjIwMTMtMDgtMTQgMjE6NDE6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHNpbXBsaWZ5IGludGVybmFsIGdzdF9jbG9ja19yZXR1cm5fZ2V0X25hbWUoKSBoZWxwZXIKCjIwMTMtMDgtMTQgMTc6NDQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBmbHVzaC1zdGFydCBoYW5kbGluZwoJICBVc2UgY3VzdG9tIGNvZGUgdG8gaW1wbGVtZW50IGZsdXNoLXN0b3AsIHdlIGNhbid0IHJldXNlIHRoZSBzZXRfZmx1c2hpbmcgY29kZQoJICBiZWNhdXNlIHdlIGNhbid0IHRvdWNoIHRoZSBsaXZlX3BsYXlpbmcgZmxhZyBhbmQgd2UgbmVlZCB0byBzaWduYWwgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuCgoyMDEzLTA4LTE0IDE3OjE0OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHN0b3AgZmx1c2hpbmcgaW4gZmx1c2gtc3RvcAoKMjAxMy0wOC0xNCAxNjo1ODo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgZmx1c2ggYmV0dGVyCgkgIFVubG9jayB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGZsdXNoaW5nIHNvIHRoYXQgd2UgY2FuCgkgIGluc2VydCB0aGUgZmx1c2gtc3RvcCBjb3JyZWN0bHkuCgoyMDEzLTA4LTE0IDE1OjQ2OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSAuZGlyc3RhbXAKCjIwMTMtMDgtMTQgMDc6MjE6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBEb24ndCB1c2Ugbm9kaXN0IGhlYWRlcnMgb24gZ2lyIHNjYW5uZXIKCSAgSnVzdCBjcmVhdGVzIG5vaXNlIGFuZCBib2d1cyBzeW1ib2xzCgoyMDEzLTA4LTA3IDE4OjIwOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0OiBtaW5vciBkb2NzdHJpbmcgZml4dXBzIHRvIG1ha2UgZy1pIGhhcHB5CgkgIG5vdGU6IHRoZSAjaWZuZGVmIG1vdmUgaXMgYWN0dWFsbHkgYSBtb3ZlIG9mIHRoZSAiU0VDVElPTiIgZG9jc3RyaW5nCgoyMDEzLTA4LTEzIDE3OjE0OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IElnbm9yZSBmaWxlcyBmcm9tIGF1dG9tYWtlIHRlc3QtZHJpdmVyCgoyMDEzLTA4LTA3IDE4OjI0OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWRkIGEgcHJvcGVydHkgdG8gZGlzYWJsZSBwYXNzdGhyb3VnaAoJICBJbiBzb21lIHNwZWNpZmljIGNhc2VzIChsaWtlIHRyYW5zbXV4aW5nKSB3ZSB3YW50IHRvIGZvcmNlIHRoZSBlbGVtZW50CgkgIHRvIGFjdHVhbGx5IHBhcnNlIGFsbCBpbmNvbWluZyBkYXRhIGV2ZW4gaWYgdGhlIGVsZW1lbnQgZGVlbXMgaXQgaXMgbm90CgkgIG5lY2Vzc2FyeS4KCSAgVGhpcyBwcm9wZXJ0eSBzaW1wbHkgaWdub3JlcyByZXF1ZXN0cyBmcm9tIHRoZSBlbGVtZW50IHRvIGVuYWJsZSBwYXNzdGhyb3VnaAoJICBtb2RlIHdoaWNoIHJlc3VsdHMgaW4gcHJvY2Vzc2luZyBhbHdheXMgYmVpbmcgZW5hYmxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTYyMQoKMjAxMy0wOC0wNyAyMToyNjowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWU6IGFkZCBnc3RfZGF0YV9xdWV1ZV9wdXNoX2ZvcmNlCgkgIEFkZHMgYSB2YXJpYW50IG9mIHRoZSBfcHVzaCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgY2hlY2sgdGhlIHF1ZXVlIGxpbWl0cwoJICBiZWZvcmUgYWRkaW5nIHRoZSBuZXcgaXRlbS4gSXQgaXMgdXNlZnVsIHdoZW4gcHVzaGluZyBhbiBlbGVtZW50IHRvIHRoZQoJICBxdWV1ZSBzaG91bGRuJ3QgbG9jayB0aGUgdGhyZWFkLgoJICBPbmUgcGFydGljdWxhciBzY2VuYXJpbyBpcyB3aGVuIHRoZSBxdWV1ZSBpcyB1c2VkIHRvIHNlcmlhbGl6ZSBidWZmZXJzCgkgIGFuZCBldmVudHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgcHVzaGVkIGZyb20gYW5vdGhlciB0aHJlYWQuIFRoZQoJICBkYXRhcXVldWUgc2hvdWxkIGhhdmUgYSBsaW1pdCBvbiB0aGUgYW1vdW50IG9mIGJ1ZmZlcnMgdG8gYmUgc3RvcmVkIHRvCgkgIGF2b2lkIGxhcmdlIG1lbW9yeSBjb25zdW1wdGlvbiwgYnV0IGV2ZW50cyBjYW4gYmUgY29uc2lkZXJlZCB0byBoYXZlCgkgIG5lZ2xpZ2libGUgaW1wYWN0IG9uIG1lbW9yeSBjb21wYXJlZCB0byBidWZmZXJzLiBTbyBpdCBpcyB1c2VmdWwgdG8gYmUKCSAgdXNlZCB0byBwdXNoIGl0ZW1zIGludG8gdGhlIHF1ZXVlIHRoYXQgY29udGFpbiBldmVudHMsIGV2ZW4gdGhvdWdoIHRoZQoJICBxdWV1ZSBpcyBhbHJlYWR5IGZ1bGwsIGl0IHNob3VsZG4ndCBtYXR0ZXIgaW5zZXJ0aW5nIGFuIGl0ZW0gdGhhdCBoYXMKCSAgbm8gc2lnbmlmaWNhdGl2ZSBzaXplLgoJICBUaGlzIHNjZW5hcmlvIGhhcHBlbnMgb24gYWRhcHRpdmUgZWxlbWVudHMgKGRhc2hkZW11eCAvIG1zc2RlbXV4KSBhcwoJICB0aGVyZSBpcyBhIHNpbmdsZSBkb3dubG9hZCB0aHJlYWQgZmV0Y2hpbmcgYnVmZmVycyBhbmQgcHV0dGluZyBpbnRvIHRoZQoJICBkYXRhcXVldWVzIGZvciB0aGUgc3RyZWFtcy4gVGhpcyBzYW1lIGRvd25sb2FkIHRocmVhZCBjYW4gYWxzIGdlbmVyYXRlCgkgIGV2ZW50cyBpbiBzb21lIHNpdHVhdGlvbnMgYXMgY2FwcyBjaGFuZ2VzLCBlb3Mgb3IgYSBpbnRlcm5hbCBjb250cm9sCgkgIGV2ZW50cy4gVGhlcmUgY2FuIGJlIGEgZGVhZGxvY2sgYXQgcHJlcm9sbCBpZiB0aGUgZmlyc3QgYnVmZmVyIGZldGNoZWQKCSAgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpbGwgdGhlIGRhdGFxdWV1ZSBhbmQgdGhlIGRvd25sb2FkIHRocmVhZCBhbmQgdGhlCgkgIG5leHQgaXRlcmF0aW9uIG9mIHRoZSBkb3dubG9hZCB0aHJlYWQgZGVjaWRlcyB0byBwdXNoIGFuIGV2ZW50IHRvIHRoaXMKCSAgc2FtZSBkYXRhcXVldWUgYmVmb3JlIGZldGNoaW5nIGJ1ZmZlcnMgdG8gb3RoZXIgc3RyZWFtcywgaWYgdGhpcyBwdXNoCgkgIGxvY2tzLCB0aGUgcGlwZWxpbmUgd2lsbCBiZSBzdHVjayBpbiBwcmVyb2xsIGFzIG5vIG1vcmUgYnVmZmVycyB3aWxsIGJlCgkgIGRvd25sb2FkZWQuCgkgIFRoZXJlIGlzIGEgc29tZXdoYXQgY29tbW9uIHByYWN0aWNlIGluIGRhc2ggc3RyZWFtcyB0byBoYXZlIGEgc2luZ2xlCgkgIHZlcnkgbGFyZ2UgYnVmZmVyIGZvciBhdWRpbyBhbmQgb25lIGZvciB2aWRlbywgc28gdGhpcyB3aWxsIGFsd2F5cwoJICBoYXBwZW4gYXMgdGhlIGRvd25sb2FkIHRocmVhZCB3aWxsIGhhdmUgdG8gcHVzaCBhbiBFT1MgcmlnaHQgYWZ0ZXIKCSAgZmV0Y2hpbmcgdGhlIGZpcnN0IGJ1ZmZlciBmb3IgYW55IHN0cmVhbS4KCSAgQVBJOiBnc3RfZGF0YV9xdWV1ZV9wdXNoX2ZvcmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2OTQKCjIwMTMtMDgtMTMgMTM6MDY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgc3lzbWVtOiBPbmx5IGNvcHkgdGhlIHJlcXVlc3RlZCBwYXJ0IG9mIG1lbW9yeSBpbnN0ZWFkIG9mIHRoZSBjb21wbGV0ZSBzb3VyY2UgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2NzgKCjIwMTMtMDgtMTMgMTI6MTE6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSSBhbmQgYWRkIHRvIGV4cG9ydHMgZmlsZQoKMjAxMy0wNy0yMyAxNjoyNToyNyArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGFubm90YXRpb24gZm9yIGdzdF9xdWVyeV9wYXJzZV91cmkKCjIwMTMtMDQtMTkgMTI6MTQ6NTQgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBuZXcgcmVkaXJlY3Rpb24gdXJpIHRoZSBVUkkgcXVlcnkKCjIwMTMtMDgtMTIgMDk6MjU6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIHNvbWUgbWlzc2luZyAndHJhbnNmZXIgbm9uZScgZ2kgYW5ub3RhdGlvbnMKCSAgVGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBpcyBjb250cm92ZXJzZSwgd2hpbGUgaXQgc3RhdGVzIHRoYXQgdGhlCgkgIHJldHVybmVkIHZhbHVlIGlzIHZhbGlkIG9ubHkgd2hpbGUgdGhlIHF1ZXJ5IGlzIGlzIHZhbGlkLCB3aGljaCBwcmVzdW1lcwoJICBhICd0cmFuc2ZlciBub25lJyBwb2xpY3kuIEJ1dCB0aGUgdG9vbHRpcCBmb3IgdGhlICdvdXQnIGFubm90YXRpb24KCSAgc3RhdGVzIHRoZSBkZWZhdWx0IGlzICd0cmFuc2Zlci1mdWxsJy4KCSAgQWRkIHRoZSBtaXNzaW5nICd0cmFuc2ZlciBub25lJyBhbm5vdGF0aW9ucyB0byBmaXggdGhpcy4KCjIwMTMtMDgtMDggMTI6MDg6MzEgKzAyMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBBY2NlbGVyYXRlIE1QRUcvSDI2NCBzdGFydCBjb2RlIHNjYW5uaW5nCgkgIEFjY2VsZXJhdGUgTVBFRy9IMjY0IHN0YXJ0IGNvZGUgc2Nhbm5pbmcgdXNpbmcgQm95ZXItTW9vciBiYWQgY2hhcmFjdGVyCgkgIGhldXJpc3RpYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjM1NwoKMjAxMy0wOC0xMCAxMTozMToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogZy1pOiBhbGxvdyBjbG9jayB0byBiZSBOVUxMIGluIGdzdF9waXBlbGluZV91c2VfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NzUxCgoyMDEzLTA4LTA3IDE0OjE3OjI4IC0wMzAwICBBZHJpYW4gUGFyZGluaSA8cHVibGljb0B0YW5nb3BhcmRvLmNvbS5hcj4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZml4ZXMgaW50IG92ZXJmbG93IHdpdGggcHJvcGVydGllcyB0aGF0IHNwYW4gKy1JTlRfTUFYCgkgIFdoZW4gdGhlIHJhbmdlIGZvciBhIHByb3BlcnR5IGlzIGRlZmluZWQgYXMgLUlOVF9NQVgtMSAuLiBJTlRfTUFYLCBsaWtlCgkgIHRoZSB4cG9zIGluIGEgdmlkZW9taXhlciB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gaW4gdGhlIG1hY3JvCgkgIGRlZmluaXRpb25zIG9mIGNvbnZlcnRfZ192YWx1ZV90b18jI3R5cGUgKGFuZCB0aGUgZXF1aXZhbGVudCBpbgoJICBjb252ZXJ0X3ZhbHVlX3RvXyMjdHlwZSkKCSAgdiA9IHBzcGVjLT5taW5pbXVtICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgocHNwZWMtPm1heGltdW0gLSBwc3BlYy0+bWluaW11bSkgKiBzKTsKCSAgYXJlIGNvbnZlcnRlZCB0bzoKCSAgdiA9IC0yMTQ3NDgzNjQ4ICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgoMjE0NzQ4MzY0NyAtIC0yMTQ3NDgzNjQ4KSAqIHMpOwoJICAoMjE0NzQ4MzY0NyAtIC0yMTQ3NDgzNjQ4KSBvdmVyZmxvd3MgdG8gLTEgYW5kIHRoZSBuZXQgcmVzdWx0IGlzOgoJICB2ID0gLTIxNDc0ODM2NDggKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKC0xICogcyk7CgkgIHNvIHYgb25seSB0YWtlcyB0aGUgdmFsdWVzIC0yMTQ3NDgzNjQ4IGZvciBzID09IDAgYW5kIDIxNDc0ODM2NDcKCSAgZm9yIHMgPT0gMS4KCSAgUmV3cml0aW5nIHRoZSBleHByZXNzaW9uIGFzIG1pbmltdW0qKDEtcykgKyBtYXhpbXVtKnMgZ2l2ZXMgdGhlIGNvcnJlY3QKCSAgcmVzdWx0IGluIHRoaXMgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MDU2MzAKCjIwMTMtMDgtMDIgMTM6MzE6NTkgKzAyMDAgIEx1Ym9zeiBTYXJuZWNraSA8bHVib3N6QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGFkZCBzdWJkaXItb2JqZWN0cyB0byBBTV9JTklUX0FVVE9NQUtFCgkgIEZpeGVzIHdhcm5pbmdzIHdpdGggYXV0b21ha2UgMS4xNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MzUwCgoyMDEzLTA4LTAyIDE2OjIxOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIGRlc2lnbjogZml4IHR5cG8KCjIwMTMtMDctMjkgMTU6NDg6MzIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYmFja3dhcmRzIHNlZWtzIGludG8gdW5kb3dsb2FkZWQgcmFuZ2VzCgkgIFdoZW4gaW4gZG93bmxvYWQgYnVmZmVyaW5nIG1vZGUgcXVldWUyIGRpZG4ndCBjaGVjayBpZiBhIHJhbmdlIG9mZnNldCBpcwoJICBpbiBhIHVuZG93bmxvYWRlZCByYW5nZSBiZWZvcmUgdGhlIGN1cnJlbnRseSBpbi1wcm9ncmVzcyByYW5nZS4gQ2F1c2luZwoJICBzZWVrcyB0byBhbiBlYXJsaWVyIG9mZnNldCB0bywgd2VsbCwgdGFrZSBhIHdoaWxlLgoKMjAxMy0wNy0zMCAxOToyNzoyMyArMDIwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBkb2NzOiBzb21lIHNtYWxsIGd0ay1kb2MgbWFya3VwIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxNTYKCjIwMTMtMDctMzAgMTk6Mjc6MjMgKzAyMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWdpc3RlciBuZXcgY29sb3IgbW9kZSBlbnVtLCBmaXhpbmcgJ21ha2UgY2hlY2snCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxNTYKCjIwMTMtMDQtMTYgMTk6MDQ6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogQXZvaWQgdXNpbmcgYnVmZmVyX2dldF9zaXplIGluIHRpZ2h0IGxvb3BzCgkgIENhbGxpbmcgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSByZXByZXNlbnRlZCAyLzMgb2YgdGhlIGNvc3Qgb2YgaGVscGVyX2ZpbmRfcGVlawoJICB3aGljaCB3YXMgY2FsbGVkIHdoZW5ldmVyIGEgdHlwZWZpbmRmdW5jdGlvbiB3YW50ZWQgdG8gcGVlayBhdCBkYXRhLgoJICBXZSBhbHJlYWR5IGtub3cgdGhlIHNpemUgKGZyb20gdGhlIEdzdE1hcEluZm8pLCBzbyBqdXN0IHVzZSB0aGF0LgoKMjAxMy0wNy0yOSAxOTozODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDctMjkgMTk6MTM6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogcmV2ZXJ0IGFjY2lkZW50YWwgcmUtd2luZGluZyBvZiBjb21tb24gc3VibW9kdWxlCgoyMDEzLTA3LTI2IDE2OjE1OjI0ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQ2xhcmlmeSB0aGUgZXN0aW1hdGVkLXRvdGFsIGRvY3VtZW50YXRpb24KCSAgVHdlYWsgdGhlIGRvY3VtZW50YXRpb24gc2xpZ2h0bHkgdG8gY2xhcmlmeSB0aGF0IHRoZSBlc3RpbWF0ZWQtdG90YWwgaW4KCSAgYSBhIEJ1ZmZlcmluZyBxdWVyeSB0aGUgdG90YWwgcmVtYWluaW5nIHRpbWUgb2YgYSBkb3dubG9hZCwgbm90IHRoZQoJICB0b3RhbCB0aW1lIGZvciB0aGUgY29tcGxldGUgZG93bmxvYWQuIEFsc28gaW5kaWNhdGUgdGhlIHVuaXQgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDkzNAoKMjAxMy0wNy0yNiAxNTowODoxMyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZvcndhcmQgdGhlIHNjaGVkdWxlIHF1ZXJ5IHVwc3RyZWFtCgkgIFdoZW4gYXNrZWQgYWJvdXQgdGhlIHNjaGVkdWxpbmcgZmxhZ3MgZmlyc3QgY2hlY2sgd2l0aCB1cHN0cmVhbSBhbmQKCSAgc2ltcGx5IGFkZCB0aGUgX1NFRUtBQkxFIGZsYWcgd2hlbiB1c2luZyBhIHRlbXBvcmFyeSBmaWxlIGFzIHN0b3JhZ2UuCgkgIFRoaXMgZW5hYmxlcyB0aGUgZm9yd2FyZGluZyBvZiBfU0VRVUVOVElBTCBhbmQgX0JBTkRXSURUSF9MSU1JVEVEIGZyb20KCSAgc291cmNlcyBpZiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5MjcKCjIwMTMtMDctMjkgMTQ6NDc6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjMgPT09CgoyMDEzLTA3LTI5IDEzOjM0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjMKCjIwMTMtMDctMjkgMTM6MzA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNy0yOSAxMjoxMDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogRml4IGhhbmRsaW5nIG9mIFNFR01FTlQgcXVlcnkKCSAgVGhlIHZhbHVlcyBzaG91bGQgYmUgaW4gc3RyZWFtLXRpbWUsIGFuZCBzdGFydC9zdG9wIHNob3VsZCBub3QKCSAgYmUgc3dhcHBlZCBmb3IgbmVnYXRpdmUgcmF0ZXMuCgoyMDEzLTA3LTI5IDExOjA1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBhZHZhbmNlIG9mZnNldCBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIGFjdHVhbGx5IHJlYWQKCSAgVGhlcmUgbWlnaHQgYmUgYSBzaG9ydCByZWFkIGF0IEVPUy4KCjIwMTMtMDctMjkgMTA6NDg6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogSW1wbGVtZW50IFNFR01FTlQgcXVlcnkKCjIwMTMtMDctMjYgMTg6MzY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IFNpbmNlOiBtYXJrZXIgZm9yIG5ldyBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkKCjIwMTMtMDctMjYgMTI6MTk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGRlYnVnIHRoZSBjbG9jayByZXR1cm4gdmFsdWVzCgoyMDEzLTA3LTI1IDEyOjIwOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZXFudW0gaGFuZGxpbmcgZm9yIHNlZWtzCgkgIFVzZSB0aGUgc2FtZSBzZXFudW0gYXMgdGhlIHNlZWsgZm9yIGZsdXNoZXMvc2VnbWVudHMgdGhhdCBhcmUKCSAgY2F1c2VkIGJ5IHRoZSBzZWVrLiBBbHNvIGRvIHRoZSBzYW1lIGZvciBzZWdtZW50IGV2ZW50cwoJICBGaXhlcyAjNjc2MjQyCgoyMDEzLTA3LTI0IDEwOjI5OjMwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHBhcnNlIGRlYnVnIGxldmVscyA+IDkKCjIwMTMtMDctMjQgMTY6NTc6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogRml4IGNvcHkmcGFzdGUgbWlzdGFrZXMgaW4gdGhlIGJpdG1hc2sgZnVuY3Rpb24gZG9jcwoKMjAxMy0wNy0yNCAxMToyMToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3Qgc2hhZG93IHZhcmlhYmxlcyB0aGF0IGFyZSBzZXQgaW5zaWRlIG91ciBzY29wZSBhbmQgdGhlbiB1c2VkIG91dHNpZGUgb3VyIHNjb3BlCgkgIEZpeGVzIHVuaW5pdGlhbGl6ZWQgdXNlIG9mIHRoZXNlIHZhcmlhYmxlcy4KCjIwMTMtMDctMjQgMTA6MzA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIG90aGVyIGludGVyZmFjZSBzdHJ1Y3RzIGZyb20gdGhlIEFCSSB0ZXN0cyB0b28KCjIwMTAtMTAtMTUgMTM6MTY6NTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgR3N0VGFnU2V0dGVyIGZyb20gQUJJIGNoZWNrcwoJICBJbnRlcmZhY2VzIGNhbiBoYXZlIG5ldyBtZW1iZXJzIGFkZGVkIHdpdGhvdXQgYnJlYWtpbmcgQUJJLCBzbwoJICByZW1vdmUgaXQgZnJvbSB0aGUgY2hlY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM3OTkKCjIwMTMtMDctMjMgMTU6Mzk6NTMgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkgIGxpYmNoZWNrOiBFc2NhcGUgc3RyaW5ncyBpbiB0aGUgZ2VuZXJhdGVkIHhtbCBmaWxlcwoJICBUaGlzIGlzIGNvcHkgcGFzdGVkIGZyb20gdXBzdHJlYW0gbGliY2hlY2sKCjIwMTMtMDctMjMgMTg6NTM6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFByaW50IHNvbWUgZGVidWcgb3V0cHV0IGlmIGEgc3RyZWFtLXN0YXJ0IGV2ZW50IHdpdGhvdXQgZ3JvdXAtaWQgYXJyaXZlcwoJICBJZGVhbGx5IGFsbCBlbGVtZW50cyB3b3VsZCBpbXBsZW1lbnQgaGFuZGxpbmcgb2YgdGhhdCB0byBnZXQgcHJvcGVyCgkgIHN0cmVhbS1zdGFydCBtZXNzYWdlIGhhbmRsaW5nIGFuZCBvdGhlciB0aGluZ3MuCgoyMDEzLTA3LTIyIDE4OjAzOjAxICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRml4IG1pc3NpbmcgcGFkIGFjdGl2YXRpb24gbm90aWZpY2F0aW9uCgkgIEEgbmV3IGFjdGl2ZSBwYWQgbWlnaHQgbm90IGJlIG5vdGlmaWVkIGluIHNvbWUgY2FzZXMsIHdoaWNoIHJlc3VsdHMKCSAgaW4gdGhlIGN1cnJlbnQgdHJhY2sgbnVtYmVyIG5vdCBiZWluZyBzZXQgaW4gcGxheWJpbi4KCSAgVGhlIGFjdGl2ZS1wYWQgbm90aWZpY2F0aW9uIGlzIG9ubHkgc2VudCBpbiB0aGUgY2hhaW4gYW5kIHNpbmtfZXZlbnQKCSAgZnVuY3Rpb25zLCBhbmQgb25seSB3aGVuIHRoZSBidWZmZXIgb3IgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGFjdGl2ZQoJICBwYWQgc2VsZWN0aW9uIGlzIGZyb20gdGhlIG5ld2x5IGFjdGl2YXRlZCBwYWQuIFNvIGluIHRoZSBvdGhlciBjYXNlCgkgIHRoZSBub3RpZmljYXRpb24gd2lsbCBuZXZlciBiZSBzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0NjkxCgoyMDEzLTA3LTIyIDE3OjI1OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogaGFuZGxlIGRlc2VyaWFsaXNhdGlvbiBvZiBub25leGlzdGFudCBlbnVtIHZhbHVlIG1vcmUgZ3JhY2VmdWxseQoKMjAxMy0wNy0yMiAxNDoxMjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBwdXNoIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnRzIG9uIHN0cmVhbSBjaGFuZ2UgdW5sZXNzIHRoZXkgYWxsIGhhdmUgZ3JvdXAgaWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ0MDgKCjIwMTMtMDctMjIgMTI6MDY6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBVc2UgbmV3IGdyb3VwLWlkIGluIHN0cmVhbS1zdGFydCBldmVudAoKMjAxMy0wNy0yMiAxMjowNjowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogVXNlIG5ldyBncm91cC1pZCBmaWVsZCBpbiBzdHJlYW0tc3RhcnQgZXZlbnQgYW5kIG1lc3NhZ2UKCjIwMTMtMDctMjIgMTE6NDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBVc2UgdGhlIG5ldyBncm91cC1pZCBmaWVsZCBvZiB0aGUgc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgZm9yIHN0cmVhbS1zdGFydCBtZXNzYWdlIGFnZ3JlZ2F0aW9uCgkgIElmIGFsbCBzdHJlYW0tc3RhcnQgbWVzc2FnZXMgaGFkIGEgZ3JvdXAgaWQgKGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSksCgkgIHdlIG9ubHkgY29uc2lkZXIgYSBzdHJlYW0gc3RhcnRlZCBpZiBhbGwgaGFkIHRoZSBzYW1lIGdyb3VwIGlkLgoJICBJbiAyLjAgd2Ugc2hvdWxkIG1ha2UgdGhlIGdyb3VwIGlkIG1hbmRhdG9yeS4KCjIwMTMtMDctMjIgMTE6NDE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBuZXcgZ3JvdXAtaWQgZmllbGQgdG8gdGhlIHN0cmVhbS1zdGFydCBldmVudAoJICBBbGwgc3RyZWFtcyB0aGF0IGhhdmUgdGhlIHNhbWUgZ3JvdXAgaWQgYXJlIHN1cHBvc2VkIHRvIGJlIHBsYXllZAoJICB0b2dldGhlciwgaS5lLiBhbGwgc3RyZWFtcyBpbnNpZGUgYSBjb250YWluZXIgZmlsZSBzaG91bGQgaGF2ZSB0aGUKCSAgc2FtZSBncm91cCBpZCBidXQgZGlmZmVyZW50IHN0cmVhbSBpZHMuIFRoZSBncm91cCBpZCBzaG91bGQgY2hhbmdlCgkgIGVhY2ggdGltZSB0aGUgc3RyZWFtIGlzIHN0YXJ0ZWQsIHJlc3VsdGluZyBpbiBkaWZmZXJlbnQgZ3JvdXAgaWRzCgkgIGVhY2ggdGltZSBhIGZpbGUgaXMgcGxheWVkIGZvciBleGFtcGxlLgoKMjAxMy0wNy0xOCAyMzoyOTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiByZXZlcnQgYWNjaWRlbnRhbCBjaGFuZ2Ugb2YgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMy0wNy0xOCAxNDozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZ3N0OiBBZGQgc29tZSBtb3JlIFNpbmNlOiAxLjIKCjIwMTMtMDctMTggMTQ6MzQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEFkZCBzb21lIFNpbmNlOiAxLjIKCjIwMTMtMDctMTggMTU6MTA6MTAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogQWRkIGRlYnVnIGNvbG9yIG1vZGUgb3B0aW9uCgkgIFRoaXMgYWxsb3dzIHRvIGV4cGxpY2l0ZWx5IHNldCB0aGUgZGVidWcgb3V0cHV0IGNvbG9yCgkgIG1vZGUgdG8gVU5JWCBvbiBldmVyeSBwbGF0Zm9ybSwgZW5hYmxlIGl0ICh1c2UgcGxhdGZvcm0KCSAgZGVmYXVsdCBjb2xvciBtb2RlKSBvciBlbmFibGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQzMjAKCjIwMTItMDQtMTggMTQ6MzU6MzIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRml4IGJsYWNrIGFuZCB1bmRlcmxpbmUgY29sb3Jpbmcgb24gVzMyCgkgIEZpeGVzICM2NzQzMjAKCjIwMTItMDQtMTggMTQ6MTI6MTYgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogQ3V0IGRvd24gc3JjIGZpbGUgbmFtZXMgZm9yIE1pbkdXIHRvbwoJICBGaXhlcyAjNjc0MzIwCgoyMDEzLTA3LTE2IDE3OjQ3OjQ1ICswMjAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEZpeCBnc3QtcGx1Z2lucy1nbCBpbiB1bmluc3RhbGxlZCBzZXR1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNDk5CgoyMDEzLTA3LTE2IDE1OjM1OjA4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBUYWtlIGFjY291bnQgb2YgdGhlIHNraXAgaW4gZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfZmFzdCgpCgkgIEluY2x1ZGUgcmVncmVzc2lvbiB0ZXN0CgoyMDEzLTA3LTE1IDE1OjQxOjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGQgZnVuY3Rpb24gdG8gcmV0dXJuIGJ1ZmZlciBjb21wb3NlZCBvZiBtdWx0aXBsZSBtZW1vcmllcwoJICBBUEk6IGdzdF9hZGFwdGVyX3Rha2VfZmFzdCgpCgoyMDEzLTA3LTE2IDE2OjI0OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IERvbid0IGFzc2VydCBpZiBubyBjb250ZXh0IGlzIHNldCBpbiB0aGUgcXVlcnkKCjIwMTMtMDctMTYgMTQ6NDc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGJlbmNobWFya3M6IGlnbm9yZSBuZXcgYmVuY2htYXJrIGJpbmFyeQoKMjAxMy0wNy0xNiAxNDo0NjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHNwcmlua2xlIHNvbWUgU2luY2UgMS4yIG1hcmtlcnMgaW4gZG9jcwoKMjAxMy0wNy0xNiAxNDo0NDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgdGltZXByb3ZpZGVyOiBnLWk6IGFsbG93IE5vbmUgYXMgYWRkcmVzcyBmb3IgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldygpCgoyMDEzLTA3LTE2IDE1OjM0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBSZXR1cm4gYW4gZW1wdHkgR3N0Q29udGV4dCBpZiBub25lIHdhcyBzZXQgeWV0CgoyMDEzLTA3LTE2IDE1OjE2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIGdzdF9xdWVyeV9oYXNfY29udGV4dF90eXBlKCkKCjIwMTMtMDctMTYgMTE6MzY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBvbmx5IGJsb2NrIHNlcmlhbGl6ZWQgcXVlcnkgd2hlbiBpdCdzIHNhZmUKCSAgV2UgbXVzdCBiZSBjZXJ0YWluIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBkZWFkbG9jayB3aGVuIGJsb2NraW5nIHRoZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMuIE9uZSBzdWNoIGRlYWRsb2NrIGNhbiBoYXBwZW4gd2hlbiB3ZSBhcmUgYnVmZmVyaW5nIGFuZCBkb3duc3RyZWFtIGlzCgkgIGJsb2NrZWQgaW4gcHJlcm9sbCBhbmQgYSBzZXJpYWxpemVkIHF1ZXJ5IGFycml2ZXMuIERvd25zdHJlYW0gd2lsbCBub3QgdW5ibG9jawoJICAoYW5kIGFsbG93IG91ciBxdWVyeSB0byBleGVjdXRlKSB1bnRpbCB3ZSBjb21wbGV0ZSBidWZmZXJpbmcgYW5kIGJ1ZmZlcmluZyB3aWxsCgkgIG5vdCBjb21wbGV0ZSB1bnRpbCB3ZSBjYW4gYW5zd2VyIHRoZSBxdWVyeS4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDAKCjIwMTMtMDctMTUgMTE6MzY6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBIG5ld2x5IGFjdGl2YXRlZCBwYWQgc2hvdWxkIGJlIG1hcmtlZCBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbgoKMjAxMy0wNy0xNSAxMTozMjo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogRG9uJ3QgY29uc2lkZXIgZmx1c2hpbmcgcGFkcyBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NDhhOWQyZjJiNzI4ZjVmYjYwYmU0NWQ0N2E4MThjZWJlYjYwYzdkLgoJICBUaGlzIGlzIHJhY3kgYW5kIHRyeWluZyB0byByZWNvbmZpZ3VyZSBhbmQgZmFpbCBpcyBzdGlsbCBiZXR0ZXIKCSAgdGhhbiBub3QgdHJ5aW5nIHRvIHJlY29uZmlndXJlIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDEwMAoKMjAxMy0wNy0xNSAxMTozMjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IExlYXZlIHRoZSBsb29wIGZ1bmN0aW9uIGZhc3RlciBpZiB3ZSdyZSBmbHVzaGluZwoJICBFc3BlY2lhbGx5IGRvbid0IGV2ZW4gdHJ5IHRvIHNlbmQgc3RyZWFtLXN0YXJ0IGV2ZW50IG9yIHRyeQoJICB0byBuZWdvdGlhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxMDAKCjIwMTMtMDctMTIgMTA6MDg6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEZWFjdGl2YXRlIGFuZCByZW1vdmUgcGFkIHdpdGhvdXQgdGhlIGlucHV0c2VsZWN0b3IgbG9jawoJICBPdGhlcndpc2Ugd2UgbWlnaHQgZ2V0IGRlYWRsb2NrcyBjYXVzZWQgYnkgbG9jayBvcmRlciBpbnZlcnNpb246CgkgIER1cmluZyB0aGUgY2hhaW4gZnVuY3Rpb24gdGhlIHN0cmVhbSBsb2NrIGlzIGZpcnN0IGxvY2tlZCBhbmQgdGhlbiB0aGUKCSAgaW5wdXRzZWxlY3RvciBsb2NrLiBEdXJpbmcgcGFkIHJlbGVhc2Ugd2UgZmlyc3QgbG9ja2VkIHRoZSBpbnB1dHNlbGVjdG9yCgkgIGxvY2sgYW5kIHRoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQgd291bGQgbG9jayB0aGUgc3RyZWFtIGxvY2suCgkgIFRoZXJlJ3Mgbm8gcmVhc29uIHdoeSB0aGUgaW5wdXRzZWxlY3RvciBsb2NrIHNob3VsZCBiZSByZXF1aXJlZCB3aGlsZQoJICBkZWFjdGl2YXRpbmcgYW5kIHJlbW92aW5nIHRoZSBwYWQsIGl0J3Mgb25seSBuZWVkZWQgYmVmb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MDAyCgoyMDEzLTA3LTExIDE2OjU3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4yID09PQoKMjAxMy0wNy0xMSAxNToxMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4yCgoyMDEzLTA3LTExIDE1OjExOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDctMTAgMTU6NTI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHdheXMgZm9yd2FyZCBjbG9jay1sb3N0IG1lc3NhZ2UgaWYgd2UncmUgbm90IGEgdG9wLWxldmVsIGJpbgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBubyBiaW4gbWlzc2VzIHRoZSBjbG9jay1sb3N0IG1lc3NhZ2VzLCBpbmRlcGVuZGVudAoJICBvZiB0aGUgc3RhdGUsIGFuZCBjb3VsZCByZXR1cm4gYW4gb2xkLCBub24td29ya2luZyBjbG9jayBmcm9tCgkgIGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE5OTcKCjIwMTMtMDctMTAgMTQ6MzA6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBLZWVwIHByZXZpb3VzIGFjdGl2ZSBzaW5rcGFkIGFyb3VuZCB1bnRpbCB3ZSdyZSBkb25lIHdpdGggaXQKCSAgT3RoZXJ3aXNlIHdlJ2xsIHNlbmQgYSBuZXcgc2VnbWVudCBldmVudCBkb3duc3RyZWFtIGZvciBlYWNoIGJ1ZmZlci4KCjIwMTMtMDctMDggMTU6MjY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGZpeCB0eXBlIG9mIGdzdF9tZW1vcnlfYWxpZ25tZW50IHRvIG1hdGNoIGRlY2xhcmF0aW9uCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmdzIHN1Y2ggYXMKCSAgZ3N0YWxsb2NhdG9yLmM6NjE6ODogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAnZ3N0X21lbW9yeV9hbGlnbm1lbnQnCgkgIC4uL2dzdC9nc3RhbGxvY2F0b3IuaDo1MjoxODogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2dzdF9tZW1vcnlfYWxpZ25tZW50JyB3YXMgaGVyZQoKMjAxMy0wNy0wNSAyMTozNjoyNyArMDIwMCAgUGlvdHIgRHLEhWcgPHBpb3RyZHJhZ0BnbWFpbC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHVwZGF0ZSBQT1RGSUxFUy5pbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNjgyCgoyMDEzLTA3LTA0IDIwOjM5OjI2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG8gbm90IGxvY2sgYSBtdXRleCB0aGF0IGRvZXMgbm90IGV4aXN0CgkgIFRoZSBHU1RfTElWRV9MT0NLIGlzIG9uIEdzdEJhc2VTcmMsIG5vdCBvbiBpdHMgc291cmNlIHBhZC4KCjIwMTMtMDctMDMgMjE6MjM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IFBUUyBhZnRlciBzZWVrCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI3NzgKCjIwMTMtMDctMDMgMTM6MDM6NDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIEFkZCBmZXcgbWlzc2luZyBhbGxvdy1ub25lIGFubm90YXRpb24KCjIwMTMtMDctMDMgMDk6Mjc6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgbmV3IC1iYWQgbXBlZ3RzIGxpYgoJICBBbmQgcmVtb3ZlIHNpZ25hbHByb2Nlc3Nvci92aWRlbyBsaWJzIGZyb20gLWJhZCB3aGljaCBoYXZlIGdvbmUKCSAgYXdheSBvciB3ZXJlIG1lcmdlZCBpbnRvIC1iYXNlLgoKMjAxMy0wNy0wMSAyMDozNToyMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IFJlLXB1c2ggYWxsIHN0aWNreSBldmVudHMgd2hlbiBidWZmZXJzIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBwYWQKCSAgRG9uJ3Qgc3BlY2lhbCBjYXNlIHNlZ21lbnQvY2FwcywganVzdCBwdXNoIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gdGhleSBhcmUKCSAgcmVjZWl2ZWQgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgcGFkIG9yIHdoZW4gdGhlIGFjdGl2ZSBwYWQgY2hhbmdlcy4KCjIwMTMtMDctMDEgMjA6MjE6MTAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFVzZSBkZWZhdWx0IHBhZCBmdW5jdGlvbiBmb3IgdXBzdHJlYW0gZXZlbnQvcXVlcmllcwoJICBUaGUgZGVmYXVsdCBmdW5jdGlvbnMgaW4gMS54IGFscmVhZHkgZG8gdGhlIHJpZ2h0IHRoaW5nCgoyMDEzLTA3LTAxIDIwOjE4OjU4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBSZW1vdmUgZnVubmVsIHBhZF9hbGxvYyB0ZXN0CgoyMDEzLTA3LTAxIDIwOjA3OjAzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IENoYW5nZSBzdHJlYW1faWQgcGFyYW1ldGVyIG5hbWUgdG8gbWF0Y2ggR3RrRG9jCgoyMDEzLTA3LTAxIDExOjEwOjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgY2hlY2s6IEFkZGVkIGdzdF9jaGVja19zZXR1cF9ldmVudHNfd2l0aF9zdHJlYW1faWQoKQoJICBBZGRlZCBhIG5ldyBmdW5jdGlvbiBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzX3dpdGhfc3RyZWFtX2lkKCksIHNpbmNlCgkgIGdzdF9jaGVja19zZXR1cF9ldmVudHMoKSBkb2VzIG5vdCB3b3JrIHdpdGggbXVsdGlwbGUgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzM3NwoKMjAxMy0wNi0zMCAxODozOTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGNvbnNpZGVyIGZsdXNoaW5nIHBhZHMgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24KCSAgUmVuZWdvdGlhdGlvbiBhbmQgcmVjb25maWd1cmF0aW9uIHdpbGwgZmFpbCBiZWNhdXNlIGFsbCBxdWVyaWVzCgkgIGFuZCBldmVudHMgd29uJ3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHBhZCBpZiBpdCdzIGZsdXNoaW5nLiBJbiB0aGUKCSAgYmVzdCBjYXNlIHRoaXMganVzdCBjYXVzZXMgdW5uZWVkZWQgd29yayBhbmQgc3B1cmlvdXMgd2FybmluZ3MgaW4KCSAgdGhlIGRlYnVnIGxvZ3MsIGluIHRoZSB3b3JzdCBjYXNlIGl0IGNhdXNlcyBlbGVtZW50cyB0byBmYWlsIGNvbXBsZXRlbHkuCgoyMDEzLTA2LTI0IDIzOjI1OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBvbmx5IGJsb2NrIHNlcmlhbGl6ZWQgcXVlcnkgd2hlbiBpdCdzIHNhZmUKCSAgV2UgbXVzdCBiZSBjZXJ0YWluIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBkZWFkbG9jayB3aGVuIGJsb2NraW5nIHRoZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMuIE9uZSBzdWNoIGRlYWRsb2NrIGNhbiBoYXBwZW4gd2hlbiB3ZSBhcmUgYnVmZmVyaW5nIGFuZCBkb3duc3RyZWFtIGlzCgkgIGJsb2NrZWQgaW4gcHJlcm9sbCBhbmQgYSBzZXJpYWxpemVkIHF1ZXJ5IGFycml2ZXMuIERvd25zdHJlYW0gd2lsbCBub3QgdW5ibG9jawoJICAoYW5kIGFsbG93IG91ciBxdWVyeSB0byBleGVjdXRlKSB1bnRpbCB3ZSBjb21wbGV0ZSBidWZmZXJpbmcgYW5kIGJ1ZmZlcmluZyB3aWxsCgkgIG5vdCBjb21wbGV0ZSB1bnRpbCB3ZSBjYW4gYW5zd2VyIHRoZSBxdWVyeS4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDAKCjIwMTMtMDYtMTkgMTI6MzA6NDcgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBhIGZpbHRlciB0byB0aGUgY2Fwc19xdWVyeSBkb25lIGJ5IGFjY2VwdGNhcHMKCSAgVXNlIHRoZSBjYXBzIHRoYXQgdGhlIHBhZCBpcyBhc2tlZCB0byBhY2NlcHQgYXMgZmlsdGVyIGZvciB0aGUgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYzMgoKMjAxMy0wNi0xOSAxMjoxOTowMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb3B0aW1pemUgZGVmYXVsdCBhY2NlcHRjYXBzIGltcGxlbWVudGF0aW9uCgkgIFBhc3MgdGhlIGZpeGVkIGNhcHMgd2UncmUgYXNrZWQgdG8gYWNjZXB0IGFzIGEgZmlsdGVyIGZvciB0aGUgY2FwcwoJICBxdWVyeSwgc28gd2UgZG9uJ3QgZ2V0IGEgZnVsbHktZXhwYW5kZWQgc2V0IG9mIGNhcHMgYmFjayAod2hpY2ggd2UgZG9uJ3QKCSAgbmVlZCBhbmQgY2FuIHRha2UgYSBsb3Qgb2YgdGltZSBmb3IgaW50ZXJzZWN0aW9uKS4KCSAgVGhpcyByZWR1Y2VzIHRoZSB0aW1lIGZvciBjYW1lcmFiaW4gdG8gcHJvZHVjZSBhIHNlY29uZCBmcmFtZSBvbiBhCgkgIGxvZ2l0ZWNoIEM5MTAgY2FtZXJhIGZyb20gYXJvdW5kIDUyIHNlY29uZHMgdG8gYSBiaXQgbGVzcyB0aGVuIDE2CgkgIHNlY29uZHMgb24gbXkgc3lzdGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjMyCgoyMDEzLTA2LTE5IDA5OjE5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IEF2b2lkIGNvbWJpbmF0b3JpYWwgZXhwbG9zaW9uIHdoZW4gbWVyZ2luZyB0YWdzCgkgIFdoZW4gYXBwZW5kaW5nL3ByZXBlbmRpbmcgdGFncywgYXZvaWQgcmUtY3JlYXRpbmcgKGFuZCBjb3B5aW5nKSBsaXN0cyBpZiB3ZSBhbHJlYWR5CgkgIGhhdmUgb25lIGFuZCBpbnN0ZWFkIGp1c3QgYXBwZW5kL3ByZXBlbmQgdGhlIEdWYWx1ZSB0byB0aGUgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjU0NQoKMjAxMy0wNi0xOSAxMDo1MzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgaG9sZCB0aGUgcXVldWUgbXV0ZXggd2hpbGUgZG9pbmcgc2VyaWFsaXplZCBxdWVyaWVzIGRvd25zdHJlYW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjUyMAoKMjAxMy0wNi0xOSAxMDo0NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEFkZCB1bml0IHRlc3QgZm9yIG1hcF9yYW5nZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MTcKCjIwMTMtMDYtMTkgMDg6MzY6MjIgKzAyMDAgIFBhdWwgSEVOUllTIDx2aXNlY2hlbGxlQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggd3Jvbmcgc2l6ZS9pbmRleCBoYW5kbGluZyB3aGVuIG1lcmdpbmcgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MTcKCjIwMTMtMDYtMTggMTE6Mzk6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpc3QtdWxpbmsueHNsOgoJICBkb2NzOiBhZGQgbWlzc2luZyBmaWxlIGZvciBkb2MtbGluayBjaGVjawoKMjAxMy0wNi0xNyAxMToxMjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICB0ZXN0czogYWRkIHN0cmVzcyB0ZXN0IGZvciBidWZmZXJzIGFuZCBwb29scwoKMjAxMy0wNi0xNyAxMDoyNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNhbGwgc3RhdGUgY2hhbmdlIGluIGFsbCBjYXNlcwoJICBXaGVuIHdlIGFzeW5jaHJvbm91c2x5IGdvIGZyb20gUkVBRFkgdG8gUExBWUlORywgYWxzbyBjYWxsIHRoZQoJICBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gc28gdGhhdCBzdWJjbGFzc2VzIGNhbiB1cGRhdGUgdGhlaXIgc3RhdGUgZm9yIFBMQVlJTkcuCgkgIEJlY2F1c2UgdGhlIFBSRVJPTEwgbG9jayBpcyBub3QgcmVjdXJzaXZlLCB3ZSBjYW4ndCBtYWtlIHRoaXMgd2l0aG91dAoJICByYWNlcyBhbmQgd2UgbXVzdCBhc3N1bWUgZm9yIG5vdyB0aGF0IHRoZSBzdWJjbGFzcyBjYW4gaGFuZGxlIGNvbmN1cnJlbnQgY2FsbHMKCSAgdG8gUEFVU0VELT5QTEFZSU5HIGFuZCBQTEFZSU5HLT5QQVVTRUQuIFdlIGNhbiBtYWtlIHRoaXMgYXNzdW1wdGlvbiBiZWNhdXNlIG5vdAoJICBtYW55IGVsZW1lbnRzIGFjdHVhbGx5IGRvIHNvbWV0aGluZyBpbiB0aG9zZSBzdGF0ZSBjaGFuZ2VzIGFuZCB0aGUgb25lcyB0aGF0CgkgIGRpZCB3b3VsZCBiZSBicm9rZW4gZXZlbiBtb3JlIHdpdGhvdXQgdGhpcyBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIyODIKCjIwMTMtMDYtMTYgMTU6MDc6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIGRvY3M6IGZpeCBzb21lIGV4dGVybmFsIGxpbmtzCgoyMDEzLTA2LTE2IDE0OjQ1OjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogY2hlY2sgZm9yIGJyb2tlbiBsaW5rcyBpbiBkb2NzCgkgIFRoZSBjaGVjayBpcyBkb25lIHVzaW5nIGN1cmwgKGlmIGF2YWlsYWJsZSkuIEl0IGxpc3RzIHRoZSBjdXJsIGV4aXQgY29kZSArIGh0dHAKCSAgc3RhdHVzIGNvZGUgKGZvciB0aG9zZSA+IDM5OSkgdG9nZXRoZXIgd2l0aCB0aGUgdXNlIG9mIHRoZSB1cmwgaW4gdGhlIGNvZGUuIFRoZQoJICBjaGVjayBpcyBub3QgZmF0YWwuCgoyMDEzLTA2LTE2IDEzOjA1OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIGRvY3M6IGNoYW5nZSBodHRwcyB0byBodHRwIHVybHMKCSAgVGhhbmsgeW91IGJyb3dzZXIgZm9yIG5lZWRsZXNzbHkgY2hhbmdpbmcgdG8gaHR0cHMgZm9yIHN0YXRpYyBkb2MgcGFnZXMuCgoyMDEzLTA2LTE2IDExOjQxOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIGRvY3M6IHVwZGF0ZSBsaW5rcyB0byBkZXZlbG9wZXIuZ25vbWUub3JnCgkgIFRoZSBVUkwgbGF5b3V0IGhhcyBjaGFuZ2VkLiBGaXggdGhlIGxpbmtzIGFuZCBjb21tZW50IG91dCBvbmUgcGFyYWdyYXBoIHdoZXJlCgkgIHRoZSBkb2MgaXMgZ29uZS4KCSAgRml4ZXMgIzcwMjEzNQoKMjAxMy0wNi0xNCAxMzowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX25ld19mcm9tX3N0cmluZygpCgkgIENvbnZlbmllbmNlIEFQSSBmb3IgYmluZGluZ3MsIGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcoKSByZXR1cm5zCgkgIGEgdHVwbGUgKHN0cnVjdHVyZSwgZW5kX3B0cikgaW4gYmluZGluZ3MgYW5kIGlzIHVuaW50dWl0aXZlIHRvIHVzZQoJICBiZWNhdXNlIG9mIHRoYXQuCgoyMDEzLTA2LTEzIDA4OjM2OjIzICswMjAwICBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IERvbid0IGludGVyY2VwdCAtLWhlbHAgaW4gZ3N0X2luaXQoKQoJICBCZWZvcmUgdGhpcyBwYXRjaCBnc3RfaW5pdCB3b3VsZCBpbnRlcmNlcHQgLS1oZWxwLCBjYXVzaW5nIGZvciBleGFtcGxlCgkgIGNoZWVzZSdzIC0taGVscCB0byBsb29rIGxpa2UgdGhpczoKCSAgW2hhbnNAc2hhbGVtIGNoZWVzZV0kIGNoZWVzZSAtLWhlbHAKCSAgVXNhZ2U6CgkgIGNoZWVzZSBbT1BUSU9OLi4uXSAtIEdTdHJlYW1lciBpbml0aWFsaXphdGlvbgoJICBIZWxwIE9wdGlvbnM6CgkgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IGhlbHAgb3B0aW9ucwoJICAtLWhlbHAtYWxsICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBhbGwgaGVscCBvcHRpb25zCgkgIC0taGVscC1nc3QgICAgICAgICAgICAgICAgICAgICAgICBTaG93IEdTdHJlYW1lciBPcHRpb25zCgkgIGdzdF9pbml0IGlzIHRoZSBvbmx5IGdmb29faW5pdCBmdW5jdGlvbiB3aGljaCBkb2VzIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIwODkKCjIwMTMtMDYtMTIgMDk6NDU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdXJpZG93bmxvYWRlciBsaWIgaW4gLWJhZCB0byBzZWFyY2ggcGF0aHMKCSAgRXZlbiBpZiBpdCBtaWdodCBub3QgYmUgYXJvdW5kIGZvciBsb25nLgoKMjAxMy0wNi0xMSAxMDoyNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBSZW1vdmUgdW5yZWYgdGhhdCBzaG91bGQgbm90IGJlIHRoZXJlCgkgIFdlIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQgYXJvdW5kIGFsbCB0aGUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTk4NQoKMjAxMy0wNi0wOSAxNzoyMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBJbXByb3ZlIEdzdENvbnRleHQgaGFuZGxpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk2NwoKMjAxMy0wNi0wNyAxMzowNzozNyArMDIwMCAgS2ltIExhbSA8a2ltQHJlZGdpYW50c29mdHdhcmUuY29tPgoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSAgd2luMzI6IERvbid0IGluY2x1ZGUgZ3N0Y29sbGVjdHBhZHMuYyB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjAzCgoyMDEzLTA1LTMxIDA5OjM5OjU1IC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBzZW5kIG5vdGlmeTo6YWN0aXZlIHNpZ25hbCBmb3IgaW5wdXQtc2VsZWN0b3IgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTMxOQoKMjAxMy0wNi0wNiAxNjo0NjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBmb3JjZS11cGRhdGUgdGhlIGR1cmF0aW9uIGZvciBkeW5hbWljIHNvdXJjZXMgd2hlbiBkb2luZyB0aGUgRFVSQVRJT04gcXVlcnkKCSAgRG9pbmcgaXQgYWZ0ZXIgZXZlcnkgc2luZ2xlIGNyZWF0ZSgpIGlzIG5vdCB2ZXJ5IGVmZmljaWVudCBhbmQgbm90IG5lY2Vzc2FyeS4KCSAgRXNwZWNpYWxseSBvbiBuZXR3b3JrIGZpbGUgc3lzdGVtcyBmc3RhdCgpIGlzIG5vdCBjYWNoZWQgYW5kIGNhdXNlcyBuZXR3b3JrCgkgIHRyYWZmaWMsIG1ha2luZyB0aGUgc291cmNlIHBvc3NpYmx5IHVudXNhYmxlIHNsb3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMzcKCjIwMTMtMDYtMDUgMTg6MzY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMSA9PT0KCjIwMTMtMDYtMDUgMTc6NTg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMQoKMjAxMy0wNi0wNSAxNjowNjozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDYtMDUgMTU6MTQ6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDk4YzBkNyB0byAwMWE3YTQ2CgoyMDEzLTA2LTA1IDExOjAyOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgX2FwcGVuZF9hbmRfdGFrZV92YWx1ZSgpIHB1YmxpYyB2YXJpYW50cwoJICBBUEk6IGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfYW5kX3Rha2VfdmFsdWUKCSAgQVBJOiBnc3RfdmFsdWVfbGlzdF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUKCSAgV2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoaXMgaW50ZXJuYWxseSwgdGhpcyBtYWtlcyBpdCBwdWJsaWMgZm9yIGNvZGUKCSAgd2hpY2ggZnJlcXVlbnRseSBhcHBlbmRzIHZhbHVlcyB3aGljaCBhcmUgZXhwZW5zaXZlIHRvIGNvcHkgKGxpa2UKCSAgc3RydWN0dXJlcywgYXJyYXlzLCBjYXBzLCAuLi4pLgoJICBBdm9pZHMgY29waWVzIG9mIHRoZSB2YWx1ZXMgZm9yIHVzZXJzLiBUaGUgcGFzc2VkIEdWYWx1ZSB3aWxsIGFsc28KCSAgYmUgMC1tZW1zZXQnZWQgZm9yIHJlLXVzZS4KCSAgTmV3IHVzZXJzIGNhbiByZXBsYWNlIHRoaXMga2luZCBvZiBjb2RlOgoJICBnc3RfdmFsdWVfKl9hcHBlbmRfdmFsdWUobXljb250YWluZXIsICZteXZhbHVlKTsKCSAgZ192YWx1ZV91bnNldCgmbXl2YWx1ZSk7CgkgIGJ5OgoJICBnc3RfdmFsdWVfKl9hcHBlbmRfYW5kX3Rha2VfdmFsdWUobXljb250YWluZXIsICZteXZhbHVlKTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYzMgoKMjAxMy0wNS0yOSAxNzoyMDozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogVXNlIGludGVybmFsIGZ1bmN0aW9uIGZvciBidWZmZXJfbmV3X3dyYXBwZWQKCSAgU2hhdmVzIH4xMCUgaW5zdHJ1Y3Rpb24gY2FsbHMgZnJvbSB0aGUgdG90YWwgY29zdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjMzCgoyMDEzLTA1LTMwIDIyOjU3OjQ5IC0wNjAwICBCcmVuZGFuIExvbmcgPHNlbGZAYnJlbmRhbmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiByZXR1cm4gRkFMU0UgZm9yICJhY3RpdmUiIHByb3BlcnR5IGlmIHNlbGVjdG9yIGlzIE5VTEwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTMyMwoKMjAxMy0wNi0wMSAxNDowMDoyMiArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZWxlbWVudHMgdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgIkJvb3N0IHByaW9yaXR5IG9mIGEgdGhyZWFkIiBzZWN0aW9uCgoyMDEzLTA2LTAxIDEzOjU1OjUwICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCBjb21tZW50IGluIGVmZmVjdHN3aXRjaCBleGFtcGxlCgoyMDEzLTA2LTAxIDEzOjQ5OjE4ICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCBhIHR5cG8gaW4gIkluc2VydGluZyBkYXRhIHdpdGggYXBwc3JjIiBzZWN0aW9uCgoyMDEzLTA2LTAxIDEzOjIyOjIyICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBwd2c6IGZpeCBhIGZldyB0eXBvcwoKMjAxMy0wNS0zMSAyMzozNzowNyArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiByZW1vdmUgZG91YmxlICJ0aGUiCgoyMDEzLTA1LTI4IDIzOjM0OjU0ICswMTAwICBLcnp5c3p0b2YgS29ub3BrbyA8a3J6eXN6dG9mLmtvbm9wa29AZ21haWwuY29tPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBpbXByb3ZlIGdpdC11cGRhdGUuc2ggc3RhdHVzIG1lc3NhZ2UKCSAgQnkgZGVmYXVsdCB3aGVuIHRoZSBzY3JpcHQgaXMgYWJvdXQgdG8gZXhpdCAobm9ybWFsbHkgb3IgZHVlIHRvIGFuIGVycm9yKSwKCSAgaXQgY2hlY2tzIHdoZXRoZXIgJEVSUk9SX0xPRyBmaWxlIGV4aXN0cy4gIElmIHRoZSBsb2cgZmlsZSBleGlzdHMsIHRoZQoJICBzY3JpcHQgcHJpbnRzIGEgIkZhaWx1cmVzOiAiIG1lc3NhZ2UgcHJlZml4IGFuZCBkdW1wcyB0aGUgbG9nIGZpbGUgdG8gdGhlCgkgIG91dHB1dC4KCSAgQXBwYXJlbnRseSB0aGUgbG9nIGZpbGUgaXMgYWx3YXlzIGNyZWF0ZWQgYW5kIGlmIHRoZSB1cGRhdGUvYnVpbGQgaXMKCSAgc3VjY2Vzc2Z1bCwgdGhlIHNjcmlwdCBmaW5pc2hlcyB3aXRoIGEgYml0IG1pc2xlYWRpbmcgIkZhaWx1cmVzOiAiIG1lc3NhZ2UuCgkgIEFuIGltcHJvdmVtZW50IHByb3ZpZGVkIHdpdGggdGhpcyBjaGFuZ2UgbGV0cyB0aGUgbG9nIGZpbGUgdG8gYmUgY3JlYXRlZCBhcwoJICBuZWVkZWQsIGkuZS4gaWYgdGhlcmUncyBhbiBlcnJvciBtZXNzYWdlIHRvIGJlIHByaW50ZWQuICBJZiB0aGUgZmlsZQoJICBkb2Vzbid0IGV4aXN0cywgdGhlIHNjcmlwdCBwcmludHMgYSAiVXBkYXRlIGRvbmUiIG1lc3NhZ2Ugd2hpY2ggY2xlYXJseQoJICBpbmRpY2F0ZXMgc3VjY2Vzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTE3NwoKMjAxMy0wNS0zMCAwNzowMzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGZpeCBwb3NpdGlvbiB1bml0IHRlc3QKCjIwMTMtMDUtMzAgMDY6NTE6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aXRob3V0IGNsb2NrCgkgIFdoZW4gbm8gYmFzZSB0aW1lIG9yIHdoZW4gc3luYyBpcyBkaXNhYmxlZCwgdXNlIHRoZSBzYW1lIGxvZ2ljIGFzCgkgIGluIHBhdXNlZCB0byByZXBvcnQgcG9zaXRpb24uIFRoZSBsb2dpYyBpbiBQTEFZSU5HIGFzc3VtZXMgd2UgdXNlIHRoZQoJICBjbG9jay4KCjIwMTMtMDUtMjkgMTE6MzY6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEzLTA1LTI4IDEyOjQ0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIHN1cHBvcnQgZm9yIGNoZWNraW5nIHN1YnRpdGxlL21ldGFkYXRhIGZhY3RvcnkgdHlwZXMKCjIwMTMtMDUtMjggMTI6NDE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgb25seSB0aGUgbWVkaWEgdHlwZSBvZiBhIGZhY3RvcnkKCSAgQW5kIHdoaWxlIGF0IGl0IGFsc28gYWRkIE1ldGFkYXRhIGFuZCBTdWJ0aXRsZSBtZWRpYSB0eXBlcy4KCjIwMTMtMDUtMjcgMTY6Mzg6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKG11bHRpKXF1ZXVlOiBEb24ndCBhY2Nlc3MgcXVlcnkgaXRlbXMgZHVyaW5nIGZsdXNoaW5nCgoyMDEzLTA1LTI3IDE2OjIyOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBkbyBzZXJpYWxpemVkIHF1ZXJpZXMgd2hlbiB3ZSdyZSBmbHVzaGluZwoJICBKdXN0IGltbWVkaWF0ZWx5IGZhaWwgdGhlIHF1ZXJ5LCBvdGhlcndpc2Ugd2Ugd291bGQgd2FpdCBmb3JldmVyCgkgIGZvciB0aGUgcXVlcnkgdG8gYmUgYW5zd2VyZWQuCgoyMDEzLTA1LTI3IDE2OjA4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRmlyc3Qgc2V0IHF1ZXJ5IHJlc3VsdCwgdGhlbiBzaWduYWwgR0NvbmQKCjIwMTMtMDUtMjcgMTU6NTk6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBGaXggaGFuZGxpbmcgb2Ygc2VyaWFsaXplZCBxdWVyaWVzCgkgIER1cmluZyBGTFVTSF9TVEFSVCB0aGUgcXVlcnkgbmVlZHMgdG8gYmUgdW5ibG9ja2VkIGFscmVhZHksIG90aGVyd2lzZQoJICBpdCBjYW4gbGVhZCB0byBkZWFkbG9ja3MgaWYgdGhlIEZMVVNIX1NUQVJUIGlzIHRoZSByZXN1bHQgb2Ygc29tZXRoaW5nCgkgIGRvbmUgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBvZiB0aGUgc3JjcGFkICh0aGUgcXVldWUgd2lsbCBuZXZlciBiZQoJICBlbXB0aWVkISkuCgoyMDEzLTA1LTI3IDE1OjQxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVW5ibG9jayBhbnkgd2FpdGluZyBzZXJpYWxpemUgcXVlcmllcyBvbiBGTFVTSF9TVEFSVAoJICBGaXhlcyBzb21lIGRlYWRsb2NrcyBkdXJpbmcgZmx1c2hpbmcuCgkgIEFuZCBzdG9yZSBxdWV1ZSBpdGVtcyBkaWZmZXJlbnRseSB0byBub3QgYWNjaWRlbnRpYWxseSByZWFkCgkgIGFscmVhZHkgdW5yZWZmZWQgcXVlcmllcyB3aGVuIGZsdXNoaW5nLiBRdWVyaWVzIGFyZSBvd25lZCBieQoJICB1cHN0cmVhbSBhbmQgbm90IHVzLgoKMjAxMy0wNS0yNyAxMzowMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUvcXVldWUyL211bHRpcXVldWU6IFdoZW4gZmx1c2hpbmcsIG1ha2Ugc3VyZSB0byBub3QgbG9zZSBhbnkgc3RpY2t5IGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODI0CgoyMDEzLTA1LTI3IDEyOjQwOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU3RvcmUgc3RpY2t5IGV2ZW50cyBldmVuIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgQnV0IGRvIHRoaXMgb25seSBmb3IgZXZlbnRzIHRoYXQgYXJlIG5vdCBkcm9wcGVkIGJ5IGZsdXNoaW5nLAoJICBpLmUuIGRvIGl0IG9ubHkgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0IFNFR01FTlQgYW5kIEVPUy4KCSAgV2l0aG91dCB0aGlzIHdlIG1pZ2h0IGRyb3AgYSBDQVBTIGV2ZW50IGlmIGZsdXNoaW5nIGhhcHBlbnMKCSAgYXQgYW4gdW5mb3J0dW5hdGUgdGltZSBhbmQgbm9ib2R5IGlzIHJlc2VuZGluZyB0aGUgQ0FQUyBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDgwNgoKMjAxMy0wNS0yNSAyMjowMzo1MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBEb24ndCByZWFkIHN0aWNreSBmbGFnIGZyb20gdW5yZWZlZCBldmVudAoKMjAxMy0wNS0yNCAyMzoyODowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBub3ctdW51c2VkICJhbGxvYy1wYWQiIHByb3BlcnR5CgkgIFNob3VsZCBwcm9iYWJseSBwcm94eSBBTExPQ0FUSU9OIHF1ZXJpZXMgb24gdGhhdCB0aG91Z2gsIGlmIHNldC4KCSAgQnV0IHdoYXQgZWxzZT8gQ0FQUyBhbmQgQUNDRVBUX0NBUFMgdG9vPwoKMjAxMy0wNS0yNCAyMzowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgMC4xMC1pc20gZnJvbSBkb2NzCgkgIGdzdF9idWZmZXJfcGFkX2FsbG9jKCkgbmV2ZXIgZXhpc3RlZCwgYW5kIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkKCSAgZG9lc24ndCBleGlzdCBhbnkgbW9yZSBlaXRoZXIsIHNvIGRvbid0IG1lbnRpb24gaXQgaW4gdGhlIGRvY3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQ3MTQKCjIwMTMtMDUtMjQgMTk6MjI6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHN1cHBvcnQgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcyBpZiB1c2luZyBhIG1lbW9yeSBxdWV1ZQoKMjAxMy0wNS0yNCAxODo0NzoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogU2V0IHRoZSBsYXN0IHNlcmlhbGl6ZWQgcXVlcnkgcmVzdWx0IHRvIEZBTFNFIHdoZW4gZmx1c2hpbmcKCjIwMTMtMDUtMjQgMTg6NDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbml0aWFsaXplIGFsbCBHc3RNdWx0aVF1ZXVlSXRlbSBmaWVsZHMgaW4gYm90aCBjb2RlIHBhdGhzCgoyMDEzLTA1LTI0IDE4OjM4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgYWNjZXNzIHRoZSBxdWVyeSBhZnRlciBzaWduYWxsaW5nIHRoZSB3YWl0aW5nIHRocmVhZAoJICBJdCBtaWdodCd2ZSBmcmVlJ2QgdGhlIHF1ZXJ5IGFscmVhZHkuCgoyMDEzLTA1LTI0IDE4OjMwOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTWFrZSBzdXJlIHRvIGFsd2F5cyBzaWduYWwgYW55IHBvc3NpYmxlIHBlbmRpbmcgc2VyaWFsaXplZCBxdWVyaWVzCgkgIEFuZCBkb24ndCB1bnJlZiB0aGVtIHdoZW4gZmx1c2hpbmcgdGhlIHF1ZXVlLCB0aGV5J3JlIG93bmVkIGJ5IHRoZSBjYWxsZXIhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDAzNDIKCjIwMTMtMDUtMjQgMTQ6Mzc6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgdGhlIGFsbG9jYXRvciBkaWQgbm90IGFsbG93IHRvIGFsbG9jYXRlIGEgYnVmZmVyCgoyMDEzLTA1LTI0IDE2OjI0OjEwICswOTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBSZW1vdmUgbWVudGlvbiBvZiBnY29uZiogZWxlbWVudHMKCSAgSW5zdGVhZCByZWNvbW1lbmQgcHVsc2VzcmMvc2luayBmb3IgYXVkaW8sIHRoZXJlIGlzIG5vdGhpbmcgR05PTUUKCSAgc3BlY2lmaWMgZm9yIHZpZGVvLgoKMjAxMy0wNS0xNSAxMzoyMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogSGFuZGxlIHRoZSBmb3JjZS1jYXBzIHByb3BlcnR5IG1vcmUgc2ltaWxhciB0byBhbGwgdHlwZWZpbmRpbmcgY29kZSBmbG93CgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGV2ZW50cyBoYXBwZW4gaW4gb3JkZXIgYW5kIHNpbXBsaWZpZXMgdGhlIGNvZGUgYSBiaXQuCgoyMDEzLTA1LTE1IDExOjIxOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggZXZlbnQgaGFuZGxpbmcgaW4gZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEzLTA1LTE1IDEwOjUxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWVkY2Q4NSB0byAwOThjMGQ3CgoyMDEzLTA1LTEwIDE2OjAzOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGNoZWNrIGlmIHdlIGdldCBidWZmZXJzIGJlZm9yZSBzdHJlYW0tc3RhcnQvc2VnbWVudCBpZiBjb21waWxpbmcgd2l0aG91dCBHX0RJU0FCTEVfQVNTRVJUCgkgIEluIHJlbGVhc2VzIHRoaXMgaXMgc2V0IHVzdWFsbHkuCgoyMDEzLTA1LTA5IDE3OjE3OjE0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBoZWxwZXIgdGhhdCBzZW5kcyBpbml0aWFsIGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwMDMzCgoyMDEzLTA1LTA5IDE3OjIyOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEzLTA1LTA5IDE3OjIxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYWtlIHN1cmUgcGVuZGluZywgb2xkZXIgc3RpY2t5IGV2ZW50cyBhcmUgc2VudCBkb3duc3RyZWFtIGluIGR5bmFtaWMgbGlua2luZyBzY2VuYXJpb3MKCSAgSWYgYSBwYWQgYmxvY2sgd2FzIHRyaWdnZXJlZCBmcm9tIHNlbmRpbmcgYSBzdGlja3kgZXZlbnQgZG93bnN0cmVhbSwgaXQKCSAgY291bGQgaGFwcGVuIHRoYXQgdGhlIHBhZCBibG9jayBpcyByZWxpbmtpbmcgcGFkcywgd2hpY2ggdGhlbiByZXF1aXJlcwoJICB0byByZXNlbmQgcHJldmlvdXMgc3RpY2t5IGV2ZW50cy4KCjIwMTMtMDUtMDkgMTM6MzI6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IEZpeCBldmVudCBvcmRlciB3YXJuaW5ncyBhbmQgZGF0YWZsb3cgYmVmb3JlIHN0cmVhbS1zdGFydC9zZWdtZW50IGV2ZW50CgoyMDEzLTA1LTA5IDEzOjMxOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByb3Blcmx5IHBvcnQgdW5pdCB0ZXN0IHRvIGFjdHVhbGx5IHVzZSBjYXBzIGFuZCBjaGVjayByZXN1bHRzCgoyMDEzLTA1LTA5IDEyOjUwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFN0b3JlIHN0aWNreSBldmVudHMgb24gdGhlIHNyY3BhZCBpZiB3ZSdyZSBkcm9wcGluZyB0aGVtIGJlY2F1c2Ugb2YgbGVha2luZwoKMjAxMy0wNS0wOSAxMjoyNzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBBbHdheXMgZm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIGFsbCBwYWRzCgoyMDEzLTA1LTA5IDEyOjE1OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGb3J3YXJkIGFsbCBzdGlja3kgZXZlbnRzLCBpbmNsdWRpbmcgc3RyZWFtLXN0YXJ0CgoyMDEzLTA1LTA5IDExOjA1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBXYXJuIGlmIGRhdGEgZmxvdyBoYXBwZW5zIGJlZm9yZSBzdHJlYW0tc3RhcnQgb3Igc2VnbWVudCBldmVudAoKMjAxMy0wNS0wOSAxMDo1OTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBsZXQgZ3N0X3BhZF9zdGlja3lfZXZlbnRzX2ZvcmVhY2goKSBpdGVyYXRlIG92ZXIgZXhpc3RpbmcgZXZlbnRzCgoyMDEzLTA1LTA5IDEwOjI5OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiB3ZSBwdXNoIHN0aWNreSBldmVudHMgYmVjYXVzZSBvZiBhbm90aGVyIHN0aWNreSBldmVudCwgb25seSBwdXNoIHRob3NlIHRoYXQgY29tZSBiZWZvcmUgdGhlIG5ldyBldmVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5OTM3CgoyMDEzLTA1LTA5IDA5OjUwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgbW9yZSBkZWJ1ZyBvdXRwdXQgYW5kIGZvcndhcmQgY2FwcyBldmVudHMgaW1tZWRpYXRlbHkgdG9vCgoyMDEzLTA1LTA5IDA5OjQyOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBObyBzdGlja3kgZXZlbnRzIG11c3QgYXJyaXZlIGFmdGVyIEVPUwoKMjAxMy0wNS0wOSAwOTozODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRml4IHR5cG8gaW4gbGFzdCBjb21taXQKCjIwMTMtMDUtMDggMTk6NDQ6MDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcHJvdmUgd2FybmluZyBtZXNzYWdlIG5hbWluZyBldmVudHMgdHlwZSBuYW1lCgkgIFdpdGggdGhpcyBwYXRjaCwgbWVzc2FnZSBzaG91bGQgbG9vayBsaWtlIMKoU3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nLCBnb3QKCSAgJ2NhcHMnIGJlZm9yZSAnc3RyZWFtLXN0YXJ0J8KoIG1ha2luZyBpdCBmYXN0ZXIgdG8gZGVidWcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDggMTg6MTk6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgaW5mb3JjZSBTVFJFQU1fU1RBUlQsIENBUFMgYW5kIFNFR01FTlQgb3JkZXJpbmcKCSAgUHJldmlvdXMgcGF0Y2ggd2FzIGluZm9yY2luZyBhIGNvbXBsZXRlIG9yZGVyaW5nIG9mIHRoZSBzdGlja3kgZXZlbnRzLCB3aGlsZQoJICBpbiBmYWN0LCBvbmx5IFNUUkVBTV9TVEFSVCwgQ0FQUyBhbmQgU0VHTUVOVCBldmVudHMgbmVlZCBwcm9wZXIgb3JkZXJpbmcuCgkgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOSAwOTozMjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IFNlbmQgYWxsIGV2ZW50cyB0aGF0IHNob3VsZCBoYXBwZW4gYWZ0ZXIgQ0FQUyBhZnRlciB0aGUgQ0FQUyBldmVudAoKMjAxMy0wNS0wOCAyMTo0NTowOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IFNlbmQgY2FwcyBiZWZvcmUgc2VnbWVudAoJICBJbiB0aGUgY2FzZSB0aGUgc291cmNlIGhhcyBubyBjYXBzLCBjYXBzIG11c3QgYmUgc2VudCBiZWZvcmUgc2VnbWVudC4gVGhpcwoJICBmaXhlcyBmZXcgdW5pdCB0ZXN0cyB0aGF0IHdoZXJlIGZhaWxpbmcgZHVlIHRvIHRoZSBuZXcgbWlzb3JkZXJpbmcgd2FybmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTk2OAoKMjAxMy0wNS0wNyAyMTo1MzozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRGV0ZWN0LCBmaXggYW5kIHdhcm4gd2hlbiBzdGlja3kgZXZlbnRzIGFyZSBpbiB3cm9uZyBvcmRlcgoJICBXZSBjYW4gcHJldmVudCBidWdneSBlbGVtZW50IGZyb20gY2F1c2luZyBvdGhlciBlbGVtZW50cyB0byBmYWlsIG9yIGNyYXNoCgkgIGJ5IHNvcnRpbmcgc3RpY2t5IGV2ZW50IGF0IGluc2VydGlvbi4gSW4gdGhpcyBjYXNlLCB3ZSBhbHNvIHdhcm4gYXMgdGhpcwoJICBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuLgoJICBTZWU6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDggMTA6MjY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyBjaGVja3MgZm9yIGdzdF9idWZmZXJfZmlsbCgpCgoyMDEzLTA1LTA4IDEwOjI1OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFsbG93IGNhbGxpbmcgX2ZpbGwoKSB3aXRoIGEgTlVMTCBkYXRhIHBvaW50ZXIgaWYgc2l6ZSBpcyAwIGJ5dGVzCgoyMDEzLTA1LTA3IDE2OjQ2OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBBZGQgRklYTUUgY29tbWVudCBmb3IgdW51c2VkIGFzc2lnbm1lbnQgcmVzdWx0cwoKMjAxMy0wNS0wNyAxNToxODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gbWV0YWRhdGEgc2VjdGlvbiBpbiBhcHAgZGV2IG1hbnVhbAoJICBUaGVyZSdzIG5vIGdfdGFnX2xpc3RfZ2V0X3h5eigpLgoKMjAxMy0wNS0wNyAxNDo0NzowOSArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgYSBtaW5vciB0eXBvIGZpeAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5ODI3CgoyMDEzLTA1LTA2IDE4OjQ3OjQ0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2VuZCBzdHJlYW0tc3RhcnQgYmVmb3JlIGFueXRoaW5nIGVsc2UKCSAgVG8gZG8gc28sIHNlbmQgc3RyZWFtLXN0YXJ0IHdoZW4gdGhlIHN0cmVhbWluZyB0aHJlYWQgZ29lcyB1cCBmb3IgdGhlIGZpcnN0CgkgIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk3NjcKCjIwMTItMTItMjYgMTE6NTQ6NTEgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBBbGxvdyAxLjAgYW5kIDAuMTAgc2NyaXB0cyBpbnN0YWxsZWQgc2ltdWx0YW5lb3VzbHkKCSAgQXMgbG9uZyBhcyB0aGUgc2NyaXB0cycgZmlsZW5hbWVzIGFyZSBkaWZmZXJlbnQsIGFuZCB0aGUgX2dzdF9pbnNwZWN0CgkgIGFuZCBfZ3N0X2xhdW5jaCBmdW5jdGlvbnMgYXJlIG5hbWVkIGRpZmZlcmVudGx5LCB0aGUgY29tcGxldGlvbiBzY3JpcHRzCgkgIGZvciBHU3RyZWFtZXIgMS4wIGFuZCAwLjEwIGNhbiBiZSBpbnN0YWxsZWQgc2lkZS1ieS1zaWRlIGluCgkgIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQuCgkgIE9uIG15IDAuMTAgYnJhbmNo4oCgIHRoZSBjb21wbGV0aW9uIHNjcmlwdCBpcyByZW5hbWVkIHRvCgkgICJnc3RyZWFtZXItY29tcGxldGlvbi0wLjEwIiBhbmQgdGhlIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCB0bwoJICAiX2dzdF9pbnNwZWN0XzBfMTAiIGFuZCAiX2dzdF9sYXVuY2hfMF8xMCIuIFRoZSByZW1haW5pbmcgaGVscGVyCgkgIGZ1bmN0aW9ucyBzaG91bGQgcmVtYWluIGlkZW50aWNhbCAodGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8KCSAgZ3N0LWluc3BlY3QgaGFzbid0IGNoYW5nZWQsIG5vciBoYXMgdGhlIGZvcm1hdCBvZiB0aGUgZ3N0LWxhdW5jaAoJICBwaXBlbGluZSksIHNvIGl0IGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSAxLjAgc2NyaXB0IG92ZXJyaWRlcyB0aGUgMC4xMAoJICBzY3JpcHQncyBkZWZpbml0aW9ucy4KCSAgTm90ZSB0aGF0IEkgZG9uJ3QgZXhwZWN0IHRoZXJlIHRvIGJlIGFub3RoZXIgR1N0cmVhbWVyIDAuMTAgcmVsZWFzZSwgc28KCSAgdGhlIDAuMTAgY29tcGxldGlvbiBzY3JpcHQgd2lsbCBwcm9iYWJseSBuZXZlciBiZSBvZmZpY2lhbGx5IHJlbGVhc2VkOwoJICBidXQgaXQgaXMgc3RpbGwgd29ydGh3aGlsZSBhbGxvd2luZyBib3RoIHNjcmlwdHMgdG8gYmUgaW5zdGFsbGVkCgkgIGFsb25nc2lkZSBlYWNoIG90aGVyLCBmb3IgdGhvc2Ugd2hvIGluc3RhbGwgdGhlIDAuMTAgY29tcGxldGlvbiBzY3JpcHQKCSAgbWFudWFsbHkuCgkgIEZpeGVzOiAjNjkwNTE1CgkgIOKAoCBodHRwczovL2dpdGh1Yi5jb20vZHJvdGhsaXMvZ3N0cmVhbWVyL2Jsb2IvYmFzaC1jb21wbGV0aW9uLTAuMTAvdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb24tMC4xMAoKMjAxMi0xMi0yMSAxODoxMzo1MyArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQ29tcGxldGUgb3B0aW9uICYgcHJvcGVydHkgdmFsdWVzIG9uIGJhc2ggMy4yCgkgIEJhc2ggMydzIGNvbXBsZXRpb24gZG9lc24ndCBzcGxpdCB3b3JkcyBieSBjaGFyYWN0ZXJzIGluCgkgIENPTVBfV09SREJSRUFLUy4gSW4gcGFydGljdWxhciBpdCBkb2Vzbid0IHNwbGl0IGF0ICI9IiBzaWducy4gTm93CgkgIF9nc3RfbGF1bmNoX3BhcnNlIGhhbmRsZXMgYm90aCBiYXNoIDMgYW5kIDQgZm9ybWF0IG9mIENPTVBfV09SRFMuCgkgIE5vdGUgdGhhdCAiJHtjdXIlJT0qfSIgbWVhbnMgY3VyJ3MgdmFsdWUgd2l0aCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBtYXRjaAoJICBvZiAiPSoiIGRlbGV0ZWQgZnJvbSB0aGUgZW5kOyAiJHtjdXIjKj19IiBtZWFucyBjdXIncyB2YWx1ZSB3aXRoIHRoZQoJICBzaG9ydGVzdCBwb3NzaWJsZSBtYXRjaCBvZiAiKj0iIGRlbGV0ZWQgZnJvbSB0aGUgYmVnaW5uaW5nLiBTZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9TaGVsbC1QYXJhbWV0ZXItRXhwYW5zaW9uLmh0bWwKCSAgUmVnYXJkbGVzcyBvZiB0aGUgdmVyc2lvbiBvZiBiYXNoIHJ1bm5pbmcgdGhlIHVuaXQgdGVzdHMsIEkgY2FuIHRlc3QgZm9yCgkgIGJvdGggYmVoYXZpb3VycyBiZWNhdXNlIHRoZSB1bml0IHRlc3QgcG9wdWxhdGVzIENPTVBfV09SRFMgbWFudWFsbHkuIFNvCgkgIHRoaXMgdGVzdHMgdGhlIGJhc2ggMyBiZWhhdmlvdXI6CgkgIHRlc3RfZ3N0X2luc3BlY3RfY29tcGxldGlvbiAtLWdzdC1kZWJ1Zy1sZXZlbD00CgkgIGFuZCB0aGlzIHRlc3RzIHRoZSBiYXNoIDQgYmVoYXZpb3VyOgoJICB0ZXN0X2dzdF9pbnNwZWN0X2NvbXBsZXRpb24gLS1nc3QtZGVidWctbGV2ZWwgPSA0CgoyMDEyLTEyLTIxIDA4OjU2OjI2ICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBCYXNoIDMuMiBjb21wYXRpYmlsaXR5IGZpeGVzCgkgIENvbXBhdGlibGUgd2l0aCBiYXNoIDMuMjsgZG9lc24ndCByZXF1aXJlIHRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBhdAoJICBhbGwgKHRob3VnaCB0aGUgZWFzaWVzdCB3YXkgdG8gaW5zdGFsbCB0aGlzIHNjcmlwdCBpcyBzdGlsbCB0byBpbnN0YWxsCgkgIGJhc2gtY29tcGxldGlvbiwgYW5kIHRoZW4gZHJvcCB0aGlzIHNjcmlwdCBpbnRvIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQpLgoJICBOb3RlIHRoYXQgYmFzaCAzIGRvZXNuJ3QgYnJlYWsgQ09NUF9XT1JEUyBhY2NvcmRpbmcgdG8gY2hhcmFjdGVycyBpbgoJICBDT01QX1dPUkRCUkVBS1MsIHNvICJwcm9wZXJ0eT12YWwiIGxvb2tzIGxpa2UgYSBzaW5nbGUgd29yZCwgc28gdGhpcwoJICB3b24ndCBjb21wbGV0ZSBwcm9wZXJ0eSB2YWx1ZXMgKG9uIGJhc2ggMykuIFNpbWlsYXJseSwKCSAgIi0tZ3N0LWRlYnVnLWxldmVsPTxUQUI+IiB3b24ndCBjb21wbGV0ZSBwcm9wZXJseSAob24gYmFzaCAzKSwgYnV0CgkgICItLWdzdC1kZWJ1Zy1sZXZlbCA8VEFCPiIgd2lsbC4KCSAgRm9yIHRoYXQgcmVhc29uLCBJIG5vdyBvZmZlciAiLS1nc3QtZGVidWctbGV2ZWwiIGV0YyBhcyBjb21wbGV0aW9ucwoJICBpbnN0ZWFkIG9mICItLWdzdC1kZWJ1Zy1sZXZlbD0iLgoJICBGdW5jdGlvbnMgIl9pbml0X2NvbXBsZXRpb24iIGFuZCAiX3BhcnNlX2hlbHAiIHdlcmUgcHJvdmlkZWQgYnkgdGhlCgkgIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlID49IDIuMDsgbm93IEkgcm9sbCBteSBvd24gZXF1aXZhbGVudCBvZgoJICAiX3BhcnNlX2hlbHAiLCBhbmQgaW5zdGVhZCBvZiAiX2luaXRfY29tcGxldGlvbiIgSSB1c2UKCSAgIl9nZXRfY29tcF93b3Jkc19ieV9yZWYiIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIGJhc2gtY29tcGxldGlvbiAxLjIKCSAgb253YXJkcy4gSWYgdGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIGlzbid0IGF2YWlsYWJsZSBhdCBhbGwgSSB1c2UKCSAgYmFzaCdzIHJhdyBmYWNpbGl0aWVzLCBhdCB0aGUgZXhwZW5zZSBvZiBub3QgY29tcGxldGluZyBwcm9wZXJseSB3aGVuCgkgIHRoZSBjdXJzb3IgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQuCgkgIFRoZSBidWlsdGluICJjb21wb3B0IiBkb2Vzbid0IGV4aXN0IGluIGJhc2ggMzsgdGhvc2UgdXNlcnMgd2lsbCBqdXN0CgkgIGhhdmUgdG8gbGl2ZSB3aXRoIHRoZSBpbmNvbnZlbmllbmNlIG9mICJwcm9wZXJ0eT0iIGNvbXBsZXRpbmcgdG8KCSAgInByb3BlcnR5PSAiIHdpdGggYSB0cmFpbGluZyBzcGFjZS4gUHJvcGVydHkgdmFsdWVzIGFyZW4ndCBjb21wbGV0ZWQKCSAgcHJvcGVybHkgYW55d2F5IG9uIGJhc2ggMyAoc2VlIGFib3ZlKS4KCSAgIltbIC12IHZhciBdXSIgdG8gdGVzdCB3aGV0aGVyIGEgdmFyaWFibGUgaXMgc2V0LCBhbHNvIGRvZXNuJ3QgZXhpc3QgaW4KCSAgYmFzaCAzLiBOZWl0aGVyIGRvZXMgIjs7JiIgdG8gZmFsbCB0aHJvdWdoIGluIGEgImNhc2UiIHN0YXRlbWVudC4KCSAgSW4gdGhlIHVuaXQgdGVzdHM6CgkgICogT24gbXkgc3lzdGVtIChPUyBYKSwgIiMhL2Jpbi9iYXNoIiBpcyBiYXNoIDMuMiwgd2hlcmVhcwoJICAiIyEvdXNyL2Jpbi9lbnYgYmFzaCIgaXMgdGhlIDQuMiB2ZXJzaW9uIEkgYnVpbHQgbXlzZWxmLgoJICAqIEkgaGF2ZSB0byBpbml0aWFsaXNlIGFycmF5IHZhcmlhYmxlcyBsaWtlICJleHBlY3RlZD0oKSIsIG9yIGJhc2ggMwoJICB0cmVhdHMgIis9IiBhcyBhcHBlbmRpbmcgdG8gYW4gYXJyYXkgYWxyZWFkeSBwb3B1bGF0ZWQgd2l0aCBvbmUgZW1wdHkKCSAgc3RyaW5nLgoKMjAxMi0xMi0xOSAxMDo0Njo1MCArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogU3VwcG9ydCBnc3QtaW5zcGVjdCwgYW5kIGdzdC1sYXVuY2ggZWxlbWVudCBwcm9wZXJ0aWVzCgkgIENvbXBsZXRlcyBvcHRpb25zIGxpa2UgIi0tZ3N0LWRlYnVnLWxldmVsIiBhbmQgdGhlIHZhbHVlcyBvZiBzb21lIG9mCgkgIHRob3NlIG9wdGlvbnM7IGNvbXBsZXRlcyBnc3QtbGF1bmNoIHBpcGVsaW5lIGVsZW1lbnQgbmFtZXMsIHByb3BlcnR5CgkgIG5hbWVzLCBhbmQgZXZlbiBwcm9wZXJ0eSB2YWx1ZXMgKGZvciBlbnVtIG9yIGJvb2xlYW4gcHJvcGVydGllcyBvbmx5KS4KCSAgRG9lc24ndCBjb21wbGV0ZSBhbGwgY2FwcyBzcGVjaWZpY2F0aW9ucywgbm9yIGVsZW1lbnQgbmFtZXMgc3BlY2lmaWVkCgkgIGVhcmxpZXIgaW4gdGhlIHBpcGVsaW5lIHdpdGggIm5hbWU9Li4uIi4KCSAgVGhlIEdTdHJlYW1lciB2ZXJzaW9uIG51bWJlciBpcyBoYXJkLWNvZGVkIGludG8gdGhlIGNvbXBsZXRpb24gc2NyaXB0OgoJICBUaGlzIHBhdGNoIGlzIG9mZiB0aGUgbWFzdGVyIGJyYW5jaCBhbmQgaGFzIHRoZSB2ZXJzaW9uIGhhcmQtY29kZWQgYXMKCSAgIjEuMCI7IGl0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgaWYgYmFja3BvcnRlZCB0byB0aGUgMC4xMCBicmFuY2guIFlvdQoJICBjb3VsZCBhbHdheXMgY3JlYXRlIGEgImdzdHJlYW1lci1jb21wbGV0aW9uLmluIiB0aGF0IGhhcyB0aGUgYXBwcm9wcmlhdGUKCSAgdmVyc2lvbiBpbnNlcnRlZCBieSAiY29uZmlndXJlIiwgYnV0IEknZCByYXRoZXIgbm90IGRvIHRoYXQuIFRoZQoJICBoYXJkLWNvZGVkIHZlcnNpb24gaXMgY29uc2lzdGVudCB3aXRoIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBvZgoJICBnc3RyZWFtZXItY29tcGxldGlvbiwgd2hpY2ggaGFkIHRoZSByZWdpc3RyeSBwYXRoIGhhcmQtY29kZWQgYXMKCSAgfi8uZ3N0cmVhbWVyLTEuMC9yZWdpc3RyeS54bWwuCgkgIE5vdGUgdGhhdCBHU3RyZWFtZXIgMC4xMCBpbnN0YWxscyAiZ3N0LWluc3BlY3QiIGFuZCAiZ3N0LWluc3BlY3QtMC4xMCIuCgkgICJnc3QtaW5zcGVjdCAtLWhlbHAiIG9ubHkgcHJpbnRzIDQgZmxhZ3MgKC0taGVscCwgLS1wcmludCwgLS1nc3QtbW0sCgkgIGdzdC1saXN0LW1tKSB3aGVyZWFzICJnc3QtaW5zcGVjdC0wLjEwIC0taGVscC1hbGwiIHByaW50cyB0aGUgZnVsbCBsaXN0CgkgIG9mIGZsYWdzLiBUaGUgc2FtZSBhcHBsaWVzIHRvICJnc3QtbGF1bmNoIiBhbmQgImdzdC1sYXVuY2gtMC4xMCIuCgkgIEdTdHJlYW1lciAxLjAgb25seSBpbnN0YWxscyAiZ3N0LWluc3BlY3QtMS4wIiwgbm90ICJnc3QtaW5zcGVjdCIuCgkgIFJlcXVpcmVzIGJhc2ggNDsgb25seSB0ZXN0ZWQgd2l0aCBiYXNoIDQuMi4gUmVxdWlyZXMgImJhc2gtY29tcGxldGlvbiIKCSAgKHdoaWNoIHlvdSBpbnN0YWxsIHdpdGggeW91ciBzeXN0ZW0ncyBwYWNrYWdlIG1hbmFnZXIpLgoJICBQdXQgdGhpcyBpbiAvZXRjL2Jhc2hfY29tcGxldGlvbi5kLyBvciBpbiBgcGtnLWNvbmZpZwoJICAtLXZhcmlhYmxlPWNvbXBhdGRpciBiYXNoLWNvbXBsZXRpb25gLCB3aGVyZSBpdCB3aWxsIGJlIGxvYWRlZCBhdCB0aGUKCSAgYmVnaW5uaW5nIG9mIGV2ZXJ5IG5ldyB0ZXJtaW5hbCBzZXNzaW9uOwoJICBvciBpbiBgcGdrLWNvbmZpZyAtLXZhcmlhYmxlPWNvbXBsZXRpb25zZGlyIGJhc2gtY29tcGxldGlvbmAsIHJlbmFtZWQgdG8KCSAgbWF0Y2ggdGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQgaXQgY29tcGxldGVzIChlLmcuICJnc3QtbGF1bmNoLTEuMCIsIHdpdGgKCSAgYW4gYWRkaXRpb25hbCBzeW1saW5rIG5hbWVkICJnc3QtaW5zcGVjdC0xLjAiKSwgd2hlcmUgaXQgd2lsbCBiZQoJICBhdXRvbG9hZGVkIHdoZW4gbmVlZGVkLgoJICB0ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoIGlzIChmb3Igbm93KSBpbiB0ZXN0cy9taXNjIC0tIGl0IG1pZ2h0IGJlCgkgIHdvcnRoIGNyZWF0aW5nICJ0ZXN0cy9jaGVjay90b29scyIsIHdpdGggYWxsIHRoZSBuZWNlc3NhcnkgYXV0b21ha2UKCSAgYm9pbGVycGxhdGUsIGFuZCBtb3ZpbmcgdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaCB0aGVyZSwgYW5kIGhhdmUgaXQKCSAgcnVuIGF1dG9tYXRpY2FsbHkgd2l0aCAibWFrZSBjaGVjayIuCgkgIElGIFlPVSdSRSBORVcgVE8gQkFTSCBDT01QTEVUSU9OIFNDUklQVFMKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAiY29tcGxldGUgLUYgX2dzdF9sYXVuY2ggZ3N0LWxhdW5jaC0xLjAiIG1lYW5zIHRoYXQgYmFzaCB3aWxsIHJ1biB0aGUKCSAgZnVuY3Rpb24gIl9nc3RfbGF1bmNoIiB0byBnZW5lcmF0ZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBmb3IgdGhlIGNvbW1hbmQKCSAgImdzdC1sYXVuY2gtMS4wIi4KCSAgIl9nc3RfbGF1bmNoIiBtdXN0IHJldHVybiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgaW4gdGhlIGFycmF5IHZhcmlhYmxlCgkgIENPTVBSRVBMWS4gKE5vdGUgb24gYmFzaCBzeW50YXg6ICJWPShhIGIgYykiIGFzc2lnbnMgdGhyZWUgZWxlbWVudHMgdG8KCSAgdGhlIGFycmF5ICJWIikuCgkgICJjb21wZ2VuIiBwcmludHMgYSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIHRvIHN0YW5kYXJkIG91dHB1dC4gVHJ5CgkgIGl0OgoJICBjb21wZ2VuIC1XICJhYmMxIGFiYzIgZGVmIiAtLSAiYSIKCSAgY29tcGdlbiAtZiAtLSAiLyIKCSAgVGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIHdvcmQgY3VycmVudGx5IGJlaW5nIGNvbXBsZXRlZDsgY29tcGdlbiB1c2VzIGl0CgkgIHRvIGZpbHRlciBvdXQgdGhlIG5vbi1tYXRjaGluZyBjb21wbGV0aW9ucy4gV2UgcHV0ICItLSIgZmlyc3QsIGluIGNhc2UKCSAgdGhlIHdvcmQgY3VycmVudGx5IGJlaW5nIGNvbXBsZXRlZCBzdGFydHMgd2l0aCAiLSIgb3IgIi0tIiwgc28gdGhhdCBpdAoJICBpc24ndCB0cmVhdGVkIGFzIGEgZmxhZyB0byBjb21wZ2VuLgoJICBGb3IgdGhlIGRvY3VtZW50YXRpb24gb2YgQ09NUF9XT1JEUywgQ09NUF9DV09SRCwgZXRjIHNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL0Jhc2gtVmFyaWFibGVzLmh0bWwjaW5kZXgtQ09NUF8wMDVmQ1dPUkQtMTgwCgkgIFNlZSBhbHNvOgoJICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24uaHRtbAoJICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24tQnVpbHRpbnMuaHRtbAoJICBUaGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgcHJvdmlkZXMgdGhlIGhlbHBlciBmdW5jdGlvbgoJICAiX2luaXRfY29tcGxldGlvbiIgd2hpY2ggcG9wdWxhdGVzIHZhcmlhYmxlcyAiY3VyIiwgInByZXYiLCBhbmQgIndvcmRzIi4KCSAgU2VlCgkgIGh0dHA6Ly9hbm9uc2NtLmRlYmlhbi5vcmcvZ2l0d2ViLz9wPWJhc2gtY29tcGxldGlvbi9iYXNoLWNvbXBsZXRpb24uZ2l0O2E9YmxvYjtmPWJhc2hfY29tcGxldGlvbjtoPTg3MDgxMWI0O2hiPUhFQUQjbDYzNAoJICBOb3RlIHRoYXQgYnkgZGVmYXVsdCwgYmFzaCBhcHBlbmRzIGEgc3BhY2UgdG8gdGhlIGNvbXBsZXRlZCB3b3JkLiBXaGVuCgkgIHRoZSBjb21wbGV0aW9uIGlzICJwcm9wZXJ0eT0iIHdlIGRvbid0IHdhbnQgYSB0cmFpbGluZyBzcGFjZTsgY2FsbGluZwoJICAiY29tcG9wdCAtbyBub3NwYWNlIiBtb2RpZmllcyB0aGUgY3VycmVudGx5LWV4ZWN1dGluZyBjb21wbGV0aW9uCgkgIGFjY29yZGluZ2x5LiBTZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi1CdWlsdGlucy5odG1sI2luZGV4LWNvbXBvcHQKCjIwMTItMTEtMTMgMTY6MzY6NDYgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBVcGRhdGVkIHRvIHdvcmsgd2l0aCB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgIFRoZSBvcmlnaW5hbCByZWdpc3RyeSB3YXMgaW4geG1sIGZvcm1hdCAofi8uZ3N0cmVhbWVyLSovcmVnaXN0cnkueG1sKS4gQQoJICBiaW5hcnkgcmVnaXN0cnkgZm9ybWF0IHdhcyBhZGRlZCBpbiAyMDA3IChjb21taXQgZWJmMGM5ZDMpIGFuZCBtYWRlIHRoZQoJICBkZWZhdWx0IGluIDIwMDggKGNvbW1pdCAzZjM5ZmQ3ZSkuIEluIDAuMTAgeW91IGNvdWxkIHN0aWxsIGNob29zZSBhdAoJICAiY29uZmlndXJlIiB0aW1lIHRvIHVzZSB0aGUgeG1sIHJlZ2lzdHJ5IGluc3RlYWQ7IGluIDEuMCB0aGUgYmluYXJ5CgkgIHJlZ2lzdHJ5IGlzIHlvdXIgb25seSBjaG9pY2UuCgkgIFRoaXMgY2hhbmdlIHRvIGdzdHJlYW1lci1jb21wbGV0aW9uIHNob3VsZCB3b3JrIHdpdGggZWl0aGVyIGZvcm1hdAoJICBiZWNhdXNlIGl0IHBhcnNlcyB0aGUgb3V0cHV0IG9mICJnc3QtaW5zcGVjdCIgaW5zdGVhZCBvZiByZWFkaW5nIHRoZQoJICByZWdpc3RyeSBmaWxlIGRpcmVjdGx5LgoJICBOb3RlIHRoYXQgX2dzdF9sYXVuY2ggbm8gbG9uZ2VyIG5lZWRzIGFuIGV4cGxpY2l0ICJyZXR1cm4gMCIgYmVjYXVzZSwKCSAgdW5saWtlIHRoZSBwcmV2aW91cyBncmVwIGNvbW1hbmQsIGNvbXBnZW4gYWx3YXlzIHJldHVybnMgMCAodW5sZXNzIGEKCSAgZ2VudWluZSBlcnJvciBvY2N1cnMpLgoJICBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGJ5IERhdmlkIFNjaGxlZWYsIHRoaXMgIm9ubHkKCSAgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidXQgdGhhdCdzIDkwJSBvZiB3aGF0IEkgd2FudCBpdCBmb3IuIgoKMjAxMy0wNC0yOSAyMToxMTozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBuaXQgY2xhcmlmaWNhdGlvbgoJICBJdCBpcyB0aGUgcHJvY2VzcyBjb250ZXh0IHRoYXQgbWF0dGVycy4KCjIwMTMtMDQtMjkgMTM6MjA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFsd2F5cyBsZWF2ZSBUWVBFRklORCBtb2RlIHdoZW4gd2UncmUgc3RvcHBpbmcgdHlwZWZpbmRpbmcKCjIwMTMtMDQtMjkgMTM6MDM6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNpbXBsaWZ5IGNvZGUKCSAgVGhpcyBpcyBvbmx5IGNhbGxlZCB3aGVuIGluIFRZUEVGSU5EIG1vZGUuCgoyMDEzLTA0LTI5IDEyOjU4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBQdXNoIHBlbmRpbmcgZXZlbnRzIGluZGVwZW5kZW50IG9mIHRoZSBleGlzdGVuY2Ugb2YgYSBkb3duc3RyZWFtIGNoYWluIGZ1bmN0aW9uIGFuZCBwZWVyCgkgIERvd25zdHJlYW0gbWlnaHQgY3JlYXRlIGEgcGVlciBvbmx5IGFzIHJlc3VsdCBvZiB0aGUgZXZlbnRzIGluIHRoZW9yeS4KCjIwMTMtMDQtMjkgMTI6NTY6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgcHVzaCBDQVBTIGV2ZW50IG9uY2UgaWYgd2UgZ2V0IG9uZSBmcm9tIHVwc3RyZWFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI3ODQKCjIwMTMtMDQtMjkgMTI6NTQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3AgdHlwZWZpbmRpbmcgaWYgd2UgZ2V0IGEgQ0FQUyBldmVudCBmcm9tIHVwc3RyZWFtCgoyMDEzLTA0LTI5IDEyOjUyOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBJbXByb3ZlIGhhbmRsaW5nIG9mIEdBUCBldmVudHMKCSAgVGhlcmUncyBzdGlsbCByb29tIGZvciBpbXByb3ZlbWVudCB0aG91Z2guCgoyMDEzLTA0LTI5IDEyOjQ4OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBGb3J3YXJkIGV2ZW50cyB0aGF0IHNob3VsZCBoYXBwZW4gYmVmb3JlIHRoZSBjYXBzIGV2ZW50IGRpcmVjdGx5CgkgIFRoZXJlJ3Mgbm8gcG9pbnQgaW4gc3RvcmluZyB0aGVtIGFuZCBzZW5kaW5nIHRoZW0gbGF0ZXIsIGFuZCBkb2luZyBzbyB3b3VsZAoJICBsYXRlciByZXF1aXJlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZXZlbnRzIHRoYXQgc2hvdWxkIGNvbWUgYmVmb3JlIGNhcHMgYW5kCgkgIGFmdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNzg0CgoyMDEzLTA0LTI5IDEyOjQ4OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggcGVuZGluZyBidWZmZXJzIGFuZCBldmVudHMgaWYgd2UgaGF2ZSBjYXBzCgoyMDEzLTA0LTI5IDEyOjM5OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZW1vdmUgY29kZSB0aGF0IHdvdWxkIGNhdXNlIGNhcHMgdG8gYmUgc2VudCB0d2ljZQoJICBXaGVuZXZlciB3ZSBzZXQgdHlwZWZpbmQtPmNhcHMgd2Ugd2lsbCBhbHNvIHNlbmQgYSBjYXBzIGV2ZW50IGRvd25zdHJlYW0uCgoyMDEzLTA0LTI3IDIwOjMzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogaW1wcm92ZSBhbGxvY2F0aW9uIGRvY3MKCjIwMTMtMDQtMjcgMTE6NDY6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogc2V0IENLX1RJTUVPVVRfTVVMVElQTElFUiBvbiBBUk0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTU5OQoKMjAxMy0wNC0yNyAwMDowNTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHR5cGVmaW5kOiBmaXggY2FwcyBsZWFrIHdoZW4gdXNlZCBpbiBjb25uZWN0aW9uIHdpdGggdXJpZGVjb2RlYmluIGFuZCBwbGF5YmluCgkgIERvbid0IGxlYWsgZm9yY2VkIHNpbmsgY2Fwcy4KCjIwMTMtMDQtMjIgMTg6MDg6NDMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMy0wNC0yNSAxNjozODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVHJ5IHRvIG5vdCBwdXNoIHJlYWQtb25seSBidWZmZXJzCgkgIFdlIHNob3VsZCBvbmx5IGluY3JlYXNlIHRoZSByZWZjb3VudCBiZWZvcmUgcHVzaGluZyBpZiB3ZSdyZQoJICByZWFsbHkgZ29pbmcgdG8gdXNlIHRoZSBidWZmZXIgYWZ0ZXJ3YXJkcy4KCjIwMTMtMDQtMjUgMDc6MTU6MzkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogYWRkIGNoZWNrIGZvciBGTFVTSCBwYWQgcHJvYmVzCgoyMDEzLTA0LTI0IDA4OjQwOjMyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBydW4gcHJvYmVzIGZvciBGTFVTSCBldmVudHMgc2VudCB3aXRoIGdzdF9wYWRfc2VuZF9ldmVudAoJICBNb3ZlIHByb2JlIGhhbmRsaW5nIGluIGdzdF9wYWRfc2VuZF9ldmVudF91bmNoZWNrZWQgc28gdGhhdCBwcm9iZXMgYXJlIHJ1biBmb3IKCSAgRkxVU0ggZXZlbnRzIHRvby4KCjIwMTMtMDQtMjQgMTU6NTg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0Y2xvY2s6IEFkZCBzdXBwb3J0IGZvciBJUHY2CgoyMDEzLTA0LTI0IDEyOjMwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBhZGQgdHJvdWJsZXNob290aW5nIHNlY3Rpb24KCSAgQWRkIG5vdGUgYWJvdXQgImNhbm5vdCByZWdpc3RlciBleGlzdGluZyB0eXBlIGBHc3RPYmplY3QnIiB3YXJuaW5nLgoKMjAxMy0wNC0yMyAxMTo0Nzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE9ubHkgaW5mZXIgVFMgaWYgUFRTIGludGVycG9sYXRpb24gaXMgZW5hYmxlZAoJICBPdGhlcndpc2UgdGhpcyBpcyBicmVha2luZyB0aW1lc3RhbXBzIG9mIGZvcm1hdHMgdGhhdAoJICBuZWVkIHJlb3JkZXJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc2NjIKCjIwMTMtMDQtMjMgMTE6MTc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90aWZ5IGNhcHMgcHJvcGVydHkgb24gTlVMTCBhcyB3ZWxsCgkgIEFsc28gbm90aWZ5IHRoZSBjYXBzIHByb3BlcnR5IHdoZW4gaXQgY2hhbmdlcyB0byBOVUxMCgoyMDEzLTA0LTIzIDExOjE2OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsYXJpZnkgbG9ja2luZwoKMjAxMy0wNC0yMiAyMzo1MDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIE1BSU5UQUlORVJTOgoJKiBSRUFETUU6CgkqIFJFQURNRS5zdGF0aWMtbGlua2luZzoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzY2IzZDNjIHRvIDVlZGNkODUKCjIwMTMtMDQtMTkgMTU6MDE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIHBhcnQtY29udGV4dDogV3JpdGUgc29tZSBkZXNpZ24gZG9jdW1lbnRhdGlvbiBhYm91dCBHc3RDb250ZXh0CgoyMDEzLTA0LTE5IDEzOjIxOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIHBhcnQtY2FwczogQWRkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY2FwcyBmZWF0dXJlcywgY2FwcyBzZW1hbnRpY3MgYW5kIGhvdyB0byB1c2UgdGhlbQoKMjAxMy0wNC0xOSAxMToyMzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQWRkIGRvY3VtZW50YXRpb24gYWJvdXQgQU5ZIEdzdENhcHNGZWF0dXJlcwoKMjAxMy0wNC0xOSAxMDoyNDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBzZXQgbGFzdF9yZW5kZXJfdGltZSBpZiB3ZSdyZSBjaGVja2luZyBmb3IgYSBsYXRlIGJ1ZmZlciBiZWZvcmUgOjpwcmVwYXJlKCkKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgYXQgbGVhc3Qgb25lIGJ1ZmZlciBwZXIgc2Vjb25kIGlzIHJlbmRlcmVkIGlmIGJ1ZmZlcnMKCSAgYXJlIGRyb3BwZWQgYmVmb3JlIDo6cHJlcGFyZS4gV2l0aG91dCB0aGlzIGNoYW5nZSwgYXQgbGVhc3Qgb25lIGJ1ZmZlciBwZXIKCSAgc2Vjb25kIHdvdWxkbid0IGJlIHRvbyBsYXRlIGJlZm9yZSA6OnByZXBhcmUgYW55bW9yZSBidXQgd291bGQgYmUgZHJvcHBlZAoJICBiZWZvcmUgOjpyZW5kZXIgYmVjYXVzZSBvZiBsYXN0X3JlbmRlcl90aW1lIGJlaW5nIHNldCBiZWZvcmUgOjpwcmVwYXJlCgkgIGFscmVhZHkuCgoyMDEzLTAyLTA4IDAzOjU3OjQ0IC0wMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgY29tcGFyZSBmdW5jdGlvbiBmb3IgY2FwcwoKMjAxMy0wMS0xNSAxNjo1NzoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWU6IGFkZCBnc3RfZGF0YV9xdWV1ZV9wZWVrCgkgIFRoaXMgZnVuY3Rpb24gd29ya3MganVzdCBsaWtlIGdzdF9kYXRhX3F1ZXVlX3BvcCwgYnV0IGl0IGRvZXNuJ3QKCSAgcmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgcXVldWUuCgkgIFVzZWZ1bCB3aGVuIGluc3BlY3RpbmcgbXVsdGlwbGUgR3N0RGF0YVF1ZXVlcyB0byBkZWNpZGUgZnJvbSB3aGljaAoJICB0byBwb3AgdGhlIGVsZW1lbnQgZnJvbS4KCSAgQWRkOiBnc3RfZGF0YV9xdWV1ZV9wZWVrCgoyMDEzLTA0LTE4IDEwOjE0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IHRlc3QgYmluYXJ5CgoyMDEzLTA0LTE4IDEwOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogdXBkYXRlIGZvciBsYXRlc3QgY29udGV4dCBBUEkgY2hhbmdlcwoKMjAxMy0wNC0xOCAxMDoxNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogQWRkIGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZSgpIGFuZCBsZXQgZ2V0X3N0cnVjdHVyZSgpIHJldHVybiBjb25zdCBhZ2FpbgoKMjAxMy0wNC0xOCAwMDo0NDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHByaW50ZjogZml4IGhhbmRsaW5nIG9mIG9sZCBwcmludGYgZXh0ZW5zaW9uIHNwZWNpZmllcnMgZm9yIEFCSSBjb21wYXRpYmlsaXR5CgkgIEZpeGVzIGFib3J0IHdoZW4gdGhlIG9sZCBzcGVjaWZpZXJzIGFyZSB1c2VkLiBGaXggdXAgdGhlIGNvbnZlcnNpb24KCSAgc3BlY2lmaWVyLCBpdCB3b3VsZCBnZXQgb3ZlcndyaXR0ZW4gd2l0aCAnYycgYmVsb3cgdG8gdGhlIGV4dGVuc2lvbgoJICBmb3JtYXQgY2hhciwgd2hpY2ggdGhlbiBsYXRlciBpcyB1bmhhbmRsZWQsIGxlYWRpbmcgdG8gdGhlIGFib3J0LgoJICBBbHNvIGZpeCB1cCBhbmQgZW5hYmxlIHVuaXQgdGVzdCBmb3IgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvcHJvY2Vzc19idWcuY2dpCgoyMDEzLTA0LTE4IDAwOjI4OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIG9sZCBwcmludGYgZXh0ZW5zaW9uIHNwZWNpZmllcnMKCSAgVG8gbWFrZSBzdXJlIHdlIG1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZAoJICBzcGVjaWZpZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MjQyCgoyMDEzLTA0LTE4IDAwOjE5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IHJ1biBza2lwcGVkIHRlc3RzIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHZpYSBHU1RfQ0hFQ0tTCgkgIElmIGEgdGVzdCB0aGF0J3MgZGlzYWJsZWQgd2l0aCB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgaXMgbGlzdGVkCgkgIGluIHRoZSBHU1RfQ0hFQ0tTIGVudmlyb25tZW50IHZhcmlhYmxlLCBydW4gaXQgYW55d2F5LgoKMjAxMy0wNC0xNyAxMzo0NzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEFkZCBHc3RDb250ZXh0IHN1cHBvcnQKCSAgZ3N0LWxhdW5jaCB3aWxsIGNvbGxlY3QgYWxsIHRoZSBjb250ZXh0cyBmcm9tIHRoZSBwaXBlbGluZSBlbGVtZW50cwoJICBhbmQgdXBkYXRlIHRoZSBvdmVyYWxsIHBpcGVsaW5lIGNvbnRleHQgd2l0aCBpdC4KCjIwMTMtMDQtMTcgMTI6NDQ6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEFkZCB1bml0IHRlc3QgZm9yIEdzdENvbnRleHQKCjIwMTMtMDQtMTcgMTI6MTc6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogUmV0dXJuIGEgbm9uLWNvbnN0IEdzdFN0cnVjdHVyZSB0byBtYWtlIGNvZGUgc2ltcGxlciBhbmQgdXBkYXRlIGRvY3MKCjIwMTMtMDMtMjkgMTQ6NTY6NTcgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBxdWVyeTogbmV3IF9CQU5EV0lEVEhfTElNSVRFRCBmbGFnCgkgIFNvdXJjZSBlbGVtZW50cyB3aXRoIGxpbWl0ZWQgYmFuZHdpZHRoIGNhcGFiaWxpdGllcyBhbmQgc3VwcG9ydGluZwoJICBidWZmZXJpbmcgZm9yIGRvd25zdHJlYW0gZWxlbWVudHMgc2hvdWxkIHNldCB0aGlzIGZsYWcgd2hlbiBhbnN3ZXJpbmcKCSAgYSBzY2hlZHVsaW5nIHF1ZXJ5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGhlIG9uLWRpc2sgYnVmZmVyaW5nIHNjZW5hcmlvCgkgIG9mIHVyaWRlY29kZWJpbiB0byBhdm9pZCBjaGVja2luZyB0aGUgVVJJIHByb3RvY29sIGFnYWluc3QgYSBsaXN0IG9mCgkgIGhhcmRjb2RlZCBwcm90b2NvbHMuCgkgIEJ1ZyA2OTM0ODQKCjIwMTMtMDQtMTYgMDk6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGZpeCBtaXNzaW5nIGZsYWNkZWMgaW4gcG9ydGluZy10by0xLjAgcGlwZWxpbmUgZXhhbXBsZQoKMjAxMy0wNC0xNiAwOTowMzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIG5vdGUgYWJvdXQgZGVjb2RlcnMgYW5kIHBhcnNlcnMgdG8gcG9ydGluZy10by0xLjAgZG9jCgoyMDEyLTEwLTI0IDExOjU4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBnc3Q6IEFkZCBiZXR0ZXIgc3VwcG9ydCBmb3Igc3RhdGljIHBsdWdpbnMKCSAgQVBJOiBHU1RfUExVR0lOX1NUQVRJQ19ERUNMQVJFKCkKCSAgQVBJOiBHU1RfUExVR0lOX1NUQVRJQ19SRUdJU1RFUigpCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4uCgkgIFRoaXMgbm93IGFsbG93cyBHU1RfUExVR0lOX0RFRklORSgpIHRvIGNyZWF0ZSBhIHN0YXRpYyBwbHVnaW4gaWYKCSAgR1NUX1BMVUdJTl9CVUlMRF9TVEFUSUMgaXMgZGVmaW5lZC4gVGhlIHJlc3VsdGluZyBwbHVnaW4gY2FuIGJlCgkgIHN0YXRpY2FsbHkgbGlua2VkIG9yIGR5bmFtaWNhbGx5IGxpbmtlZCBkdXJpbmcgY29tcGlsYXRpb24gYnV0CgkgIGNhbid0IGJlIGR5bmFtaWNhbGx5IGxvYWRlZCBkdXJpbmcgcnVudGltZS4KCSAgQWxzbyBhZGRzIEdTVF9QTFVHSU5fU1RBVElDX0RFQ0xBUkUoKSBhbmQgR1NUX1BMVUdJTl9TVEFUSUNfUkVHSVNURVIoKSwKCSAgd2hpY2ggYWxsb3dzIHRvIHJlZ2lzdGVyIGEgc3RhdGljIGxpbmtlZCBwbHVnaW4gZWFzaWx5LgoJICBJdCBpcyBzdGlsbCByZXF1aXJlZCB0byBtYW51YWxseSByZWdpc3RlciBldmVyeSBzaW5nbGUgc3RhdGljYWxseSBsaW5rZWQKCSAgcGx1Z2luIGZyb20gaW5zaWRlIHRoZSBhcHBsaWNhdGlvbiBhcyB0aGlzIGNhbid0IGJlIGF1dG9tYXRlZCBpbiBhIHBvcnRhYmxlCgkgIHdheS4KCSAgQSBuZXcgY29uZmlndXJlIHBhcmFtZXRlciAtLWVuYWJsZS1zdGF0aWMtcGx1Z2lucyB3YXMgYWRkZWQgdGhhdCBhbGxvd3MKCSAgdG8gYnVpbGQgYWxsIHBsdWdpbnMgd2UgYnVpbGQgaGVyZSBhcyBzdGF0aWMgcGx1Z2lucy4KCSAgRml4ZXMgYnVnICM2NjczMDUuCgoyMDEzLTA0LTEyIDEzOjUwOjM5ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIG1hbnVhbDogUGF0Y2ggbWFudWFsIHRvIHJlZmVyIHRvIHBvcnRpbmcgZ3VpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzg0NQoKMjAxMy0wNC0xMyAxOTo0MzoxMCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogRml4IHRoZSBHc3RQbHVnaW5GZWF0dXJlIG5hbWUgY29tcGFyaXNvbi4KCSAgVGhlIGdzdF9wbHVnaW5fZmVhdHVyZV9yYW5rX2NvbXBhcmVfZnVuYygpIHNob3VsZCByZXR1cm4KCSAgbmVnYXRpdmUgdmFsdWUsIGlmIHRoZSByYW5rIG9mIGJvdGggUGx1Z2luRmVhdHVyZXMgYXJlIGVxdWFsIGFuZAoJICB0aGUgbmFtZSBvZiBmaXJzdCBQbHVnaW5GZWF0dXJlIGNvbWVzIGJlZm9yZSB0aGUgc2Vjb25kIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzk5MAoKMjAxMy0wNC0xNCAxNzo1NDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjczNjU5MiB0byAzY2IzZDNjCgoyMDEzLTA0LTE0IDE3OjI1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhZWQ4N2FlIHRvIDI3MzY1OTIKCjIwMTMtMDQtMTQgMTE6MzM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5oOgoJICBwcmludGY6IGRpc2FibGUgc29tZSB1bnVzZWQgcHJpbnRmIHZhcmlhbnRzCgoyMDEzLTA0LTE0IDExOjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogdXNlIHNwcmludGYoKSB0byB3b3JrIGFyb3VuZCBnbGliYyBjb21wbGFpbmluZyBhYm91dCAlbiBpbiBhIHdyaXRhYmxlIGZvcm1hdCBzdHJpbmcKCSAgRG9uJ3QgdXNlIHNucHJpbnRmKCksIGJ1dCB1c2Ugc3ByaW50ZiBpbnN0ZWFkIGFuZCBkbyBvdXIgb3duCgkgIGxlbmd0aCBjYWxjdWxhdGlvbnMsIGJlY2F1c2UgZ2xpYmMgbWF5IGNvbXBsYWluIGFib3V0IHVzIHBhc3NpbmcKCSAgJW4gaW4gYSBmb3JtYXQgc3RyaW5nIGlmIHRoZSBzdHJpbmcgaXMgaW4gd3JpdGFibGUgbWVtb3J5LCBhbmQKCSAgaGVyZSB0aGUgZm9ybWF0IHN0cmluZyBpcyBhbHdheXMgaW4gd3JpdGFibGUgbWVtb3J5IHNpbmNlIHdlCgkgIGNvbnN0cnVjdCBpdCBvbiB0aGUgZmx5LiBUaGlzIGhhcHBlbnMgaWYgZ2xpYmMgaGFzIGJlZW4gY29tcGlsZWQKCSAgd2l0aCBfRk9SVElGWV9TT1VSQ0U9Miwgd2hpY2ggc2VlbXMgdG8gYmUgdGhlIGNhc2Ugb24gc29tZQoJICBkaXN0cm9zL3N5c3RlbXMpLiBPbiB0aGUgdXBzaWRlLCB3ZSBub3cgdXNlIHRoZSBzcHJpbnRmIGNvZGUgcGF0aAoJICBvbiBhbGwgc3lzdGVtcyB3aGljaCBzaG91bGQgYmUgYmV0dGVyIGZyb20gYSBtYWludGVuYW5jZSBwb2ludAoJICBvZiB2aWV3LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTcwCgoyMDEzLTA0LTEzIDEyOjE4OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgdGVzdHM6IHNraXAgYWxsIEdzdFBvbGwgdGVzdHMgb24gV2luZG93cwoJICBBcyB0aGV5IGRvbid0IHdvcmsgdGhlcmUsIGFuZCBpdCdzIG5vbi10cml2aWFsIHRvIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYwOQoKMjAxMy0wNC0xMyAxMjowMDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBvbmx5IGFkZCBhICcqJyBmb3Igbm9uLSdncG9pbnRlcicgcG9pbnRlcnMKCSAgU3BvdHRlZCBieSBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzc5MQoKMjAxMy0wNC0xMiAxNDo0ODoyOSArMDIwMCAgR3dlbm9sZSBCZWF1Y2hlc25lIDxnd2Vub2xlLmJlYXVjaGVzbmVAaW50ZWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IGZpeCBuYW1lIGV4cGFuc2lvbiBmb3IgR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm8KCSAgTWFrZSBHU1RfUExVR0lOX0RFRklORSB1c2UgR19TVFJJTkdJRlkoKSB0byBjb252ZXJ0IHRoZSBuYW1lIGFyZ3VtZW50CgkgIGludG8gYSBtZWFuaW5nZnVsIHN0cmluZy4gVGhlIGFkdmFudGFnZSBvZiB0aGlzIGlzIHRoYXQgYG5hbWUnIGNhbiBiZQoJICBleHBhbmRlZCBmcm9tIG90aGVyIG1hY3JvcyBkZWZpbmVkIGluIHRoZSBwbHVnLWluIGVsZW1lbnQuCgkgIFNpZ25lZC1vZmYtYnk6IEd3ZW5vbGUgQmVhdWNoZXNuZSA8Z3dlbm9sZS5iZWF1Y2hlc25lQGludGVsLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzg3MgoKMjAxMy0wNC0xMyAxMTozNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IGFkZCBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTMtMDQtMTIgMjM6NTg6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBwcmludGY6IGRvbid0IGJ1aWxkIGlmIGRlYnVnZ2luZyBzdWJzeXN0ZW0gd2FzIGRpc2FibGVkCgoyMDEzLTA0LTEwIDExOjUxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiBkZWFsIHdpdGggc29tZSBvZiB0aGUgSEFWRV9GT08gdXNlZCBpbiB0aGUgcHJpbnRmIGNvZGUKCSAgUHJvYmFibHkgbmVlZHMgc29tZSBtb3JlIHdvcmsgZm9yIE1TVkMuCgoyMDEzLTA0LTA4IDE5OjQyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBmaXggYWxsb2NhIHVzZSBmb3Igd2luZG93cyB3aXRoIG1pbmd3MzIKCSAgRG9uJ3QgdXNlIGp1c3QgR0xJQl9IQVZFX0FMTE9DQV9IIHRvIGNoZWNrIGlmIGFsbG9jYSBpcyBhdmFpbGFibGUsCgkgIHRoYXQncyBqdXN0IGZvciB0aGUgaGVhZGVyLiBHTGliIG1heSBkZWZpbmUgYWxsb2NhIGZvciB1cyBvdGhlcndpc2UKCSAgdG9vIGlycmVzcGVjdGl2ZSBvZiBHTElCX0hBVkVfQUxMT0NBX0guCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBtaW5ndzMyOgoJICBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzo3MzowOiB3YXJuaW5nOiAiYWxsb2NhIiByZWRlZmluZWQKCjIwMTMtMDQtMDcgMjA6MTE6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGVuYWJsZSBhbmQgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIEJ1dCBzdXBwcmVzcyAtV2Zvcm1hdC1ub25saXRlcmFsIHdhcm5pbmdzIHNpbmNlIHNwcmludGYKCSAgaXMgdXNlZCB3aXRoIGEgcnVudGltZS1nZW5lcmF0ZWQgZm9ybWF0IHN0cmluZyBpbiBvdXIKCSAgdmFzbnByaW50ZiBpbXBsZW1lbnRhdGlvbi4KCjIwMTMtMDQtMDcgMTg6MjE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmg6CgkgIHByaW50ZjogZml4IHVwIGRvZGd5IHVzZSBvZiAjaWYgSEFWRV9GT08gYW5kICNpZiAhSEFWRV9GT08KCSAgU2hvdWxkIHVzZSAjaWZkZWYgYW5kICNpZm5kZWYuCgoyMDEzLTA0LTA3IDE3OjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSAgcHJpbnRmOiBtYXJrIGludGVybmFsIGZ1bmN0aW9ucyBhcyBpbnRlcm5hbAoKMjAxMy0wNC0wNyAxNzoyOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50Zjogc2tpcCBwb2ludGVyIGV4dGVuc2lvbiBzaWduaWZpZXIgY2hhcnMgYWZ0ZXIgJXAKCSAgU28gdGhleSBkb24ndCBnZXQgcHJpbnRlZCBhZnRlciB0aGUgc2VyaWFsaXNlZCBwb2ludGVyIHN0cmluZy4KCjIwMTMtMDQtMDcgMTc6MjE6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBkb24ndCBsZWFrIHNlcmlhbGlzZWQgcG9pbnRlciBleHRlbnNpb24gc3RyaW5ncwoKMjAxMy0wNC0wNyAxNzowMjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50ZjogaGFuZGxlIG9sZCBHU1RfUFRSX0ZPUk1BVCAlUCBhbmQgR1NUX1NFR01FTlRfRk9STUFUICVRIGRlZmluZXMgdG9vCgkgIEZvciBiaW5hcnkgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDEzLTA0LTA3IDE2OjQxOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmg6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IG1ha2UgcHJpbnRmIHBhcnNlciByZWNvZ25pc2Ugb3VyIHBvaW50ZXIgZXh0ZW5zaW9uIGZvcm1hdAoJICBhbmQgY2FsbCB0aGUgaG9vayB0byBnZXQgYSBzdHJpbmcgZm9yIHRoZSBwb2ludGVyIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTg6Mjg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi9wcmludGYtZXh0ZW5zaW9uLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWV4dGVuc2lvbi5oOgoJICBwcmludGY6IGFkZCBpbmZyYXN0cnVjdHVyZSBmb3IgcG9pbnRlciBleHRlbnNpb25zIGhvb2sKCSAgRG9lcyBub3QgZG8gYW55dGhpbmcgeWV0LiBPbiBhIHNpZGVub3RlLCB3ZSBjYW4ndCBqdXN0IHVzZQoJICAlcFwwMDEgb3Igc28gdG8gc2lnbmFsIHRoZSBleHRlbnNpb24gYmVjYXVzZSBnLWkgY29tcGxhaW5zCgkgIGFib3V0IGFuIGludmFsaWQgYXNjaWkgY2hhcmFjdGVyIHRoZW4sIHNvIGhhdmUgdG8gcmVzb3J0IHRvCgkgIHNvbWV0aGluZyBtb3JlIGVsYWJvcmF0ZSwgc3VjaCBhcyAlcFxhQSBldGMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTc6MjA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogdXNlIG5ldyBpbnRlcm5hbCBwcmludGYgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnRpbmcKCSAgYW5kIHJlbW92ZSBhbGwgdGhlIHByaW50ZiBleHRlbnNpb24vc3BlY2lmaWVyIHN0dWZmIGZvcgoJICB0aGUgc3lzdGVtIHByaW50Zi4gTmV4dCB3ZSBuZWVkIHRvIGFkZCBiYWNrIHRoZSBjdXN0b20KCSAgc3BlY2lmaWVycyB0byBvdXIgb3duIHByaW50ZiBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxNToxMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi9hc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5oOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmg6CgkgIHByaW50ZjogYWRkIG91ciBvd24gcHJpbnRmIGltcGxlbWVudGF0aW9uIGZvciBkZWJ1ZyBsb2dnaW5nCgkgIFdlIHdpbGwgYWRkIHN1cHBvcnQgZm9yIG91ciBvd24gcHJpbnRmIG1vZGlmaWVycywgc28gd2UgY2FuCgkgIGdldCBuaWNlIGRlYnVnIGxvZyBvdXRwdXQgb24gYWxsIG9wZXJhdGluZyBzeXN0ZW1zIGlycmVzcGVjdGl2ZQoJICBvZiB0aGUgc3BlY2lmaWMgbGliYyB2ZXJzaW9uIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDQtMTIgMTY6MTM6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCB0cmlnZ2VyaW5nIGFuIGFzc2VydGlvbgoJICBXaGVuIGRlc2VyaWFsaXphdGlvbiBvZiB0aGUgc3RydWN0dXJlIGZhaWxzLCByZXR1cm4gYSBOVUxMIHRhZ2xpc3QgaW5zdGVhZCBvZgoJICBhc3NlcnRpbmcuCgoyMDEzLTA0LTExIDE0OjU0OjMyICswMjAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGFkZCBwb2ludGVyIG1hcmsgdG8gc2lnbmFsIGFuZCBhY3Rpb24gcmV0dXJuIHR5cGVzIHRoYXQgYXJlIHBvaW50ZXJzCgkgIFdoZW4gdGhlIHJldHVybiB0eXBlIG9mIGEgc2lnbmFsIG9yIGFjdGlvbiBpcyBhIHBvaW50ZXIsIGl0CgkgIHNob3VsZCBoYXZlIGFuIGFzdGVyaXNrIHRvIG1hcmsgaXQgYXMgc3VjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzc5MQoKMjAxMy0wNC0xMSAyMjozMjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZG9jdW1lbnQgdHlwZSBjaGFuZ2Ugb2YgcGxheWJpbidzIGNvbm5lY3Rpb24tc3BlZWQgcHJvcGVydHkgaW4gcG9ydGluZyBkb2NzCgoyMDEzLTA0LTExIDE0OjMxOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBfZ3N0X21heF9tZW1vcnkoKSBmdW5jdGlvbgoJICBBZGQgdGhlIGEgZnVuY3Rpb24gdG8gcXVlcnkgdGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBibG9ja3MgdGhhdCBjYW4gYmUKCSAgYWRkZWQgdG8gYSBidWZmZXIuIEFsc28gaW1wcm92ZSB0aGUgZG9jcyBmb3IgX2luc2VydF9tZW1vcnkoKS4KCjIwMTMtMDQtMTEgMTQ6MDQ6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogbm90aWZ5IG9mIGNoYW5nZWQgYm91bmQgYWRkcmVzcwoJICBOb3RpZnkgd2hlbiB0aGUgYm91bmQgYWRkcmVzcyBpcyBrbm93biwganVzdCBsaWtlIHRoZSBwb3J0LgoKMjAxMy0wNC0xMSAxMzo1NTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBoYW5kbGUgUFJPR1JFU1MgbWVzc2FnZXMKCSAgV2FpdCBmb3IgYWxsIFBST0dSRVNTIG1lc3NhZ2VzIChpZiBhbnkpIHRvIGNvbXBsZXRlIGJlZm9yZSBnb2luZyB0byB0aGUgUExBWUlORwoJICBzdGF0ZS4gVGhpcyBpcyB0aGUgb25seSB3YXkgd2UgY2FuIHdhaXQgZm9yIGxpdmUgZWxlbWVudHMgdG8gY29tcGxldGUgdGhlaXIKCSAgb3BlcmF0aW9ucy4KCSAgVGhpcyBpcyBpbnRlcmVzdGluZyBmb3IgZWxlbWVudHMgbGlrZSBydHNwc3JjIHRoYXQgZG8gc29tZSBhc3luY2hyb25vdXMgbmV0d29yawoJICByZXF1ZXN0cyBhcyBwYXJ0IG9mIGdvaW5nIHRvIHRoZSBQQVVTRUQgc3RhdGUuIEl0IGNvdWxkIGJlIHBvc3NpYmxlIHRoYXQgaXQsIGZvcgoJICBleGFtcGxlLCBwcm92aWRlcyBhIGNsb2NrIGFuZCB0aGVuIHdlIHdvdWxkIGxpa2UgdG8gd2FpdCB1bnRpbCBpdCBjb21wbGV0ZXMKCSAgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBwcm92aWRlZCBjbG9jayB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgoyMDEzLTA0LTExIDE1OjA1OjA4ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBUb2dnbGUgdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0gaW4gUkVDT05GSUdVUkUgcGFyYWdyYXBoLgoKMjAxMy0wNC0xMSAxMDoxMToyNSArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgR3N0Q29sbGVjdFBhZHMgZG9jdW1lbnRhdGlvbjogZ3N0X2NvbGxlY3RfcGFkc19yZWFkIGlzIGdvbmUuCgoyMDEzLTA0LTEwIDIxOjI0OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0aGUgcHJlY29uZGl0aW9uIGZvciBnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKCkKCSAgVXNlIHRoZSByaWdodCB2YXJpYWJsZSBhbmQgaW52ZXJ0IHRoZSB0ZXN0LiBUaGUgcHJlY29uZGl0aW9uIHNob3VsZCBjYXRjaAoJICBzb21lb25lIGNhbGxpbmcgdG8gb25jZSB0b28gb2Z0ZW4uCgoyMDEzLTA0LTA5IDE5OjM3OjA2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEluaXQgZGVidWcgY2F0ZWdvcnkgYmVmb3JlIGV2ZXIgdXNpbmcgaXQKCjIwMTMtMDQtMDkgMjA6NTk6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA0YzdhMWUgdG8gYWVkODdhZQoKMjAxMy0wNC0wMyAyMTozMjo1NCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBVc2UgeGxzdHByb2MgaW5zdGVhZCBvZiBkb2Nib29rMmh0bWwKCjIwMTMtMDQtMDkgMTA6MTc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGJpbmQgc29ja2V0IGJlZm9yZSBxdWVyeWluZyBsb2NhbCBhZGRyZXNzCgkgIEZhaWxzIG9uIHdpbmRvd3Mgb3RoZXJ3aXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjA4CgoyMDEzLTA0LTA4IDEzOjE0OjM1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBbHNvIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lIGluIGxpYnB0aHJlYWQKCSAgbGlid2lucHRocmVhZHMgcHJvdmlkZXMgUE9TSVggdGltZSBBUEkuCgkgIEl0IGFsc28gcHJvdmlkZXMgbGlicHRocmVhZCBhbGlhcyBmb3IgaXRzZWxmLCBmb3IgY29tcGF0aWJpbGl0eSwgc28gdGhhdAoJICBpcyB3aGF0IHdlIHdpbGwgbGluayB3aXRoLgoJICBGaXhlcyAjNjk3NTUwCgoyMDEzLTA0LTA4IDE1OjMwOjA3ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgY2xvY2s6IERvIHVzZSBIQVZFX0NMT0NLX0dFVFRJTUUKCSAgRml4ZXMgIzY5NzU0OQoKMjAxMy0wNC0wOCAxNDo0MjoxNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSAgbGlic2FiaTogU3BlY2lhbCBzdHJ1Y3Qgc2l6ZSB2YWx1ZXMgZm9yIFczMgoJICBUaGVzZSBhY2NvdW50IGZvciBib3RoIHBvc3NpYmxlIHR5cGUgc2l6ZSBtaXNtYXRjaCBBTkQgLW1tcy1iaXRmaWVsZHMKCSAgcGFja2luZy4gU2l6ZXMgYXJlIHRha2VuIGZyb20gYW4gaTY4Ni13NjQtbWluZ3czMi1idWlsdCBHU3RyZWFtZXIsCgkgIGdjYyA0LjguMCwgbWluZ3ctdzY0IHN2bi1yNTY4NS4KCSAgRml4ZXMgIzY5NzU1MQoKMjAxMy0wNC0wOSAwOToyMjozOSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggR3N0UGFkIHRlc3Qgb24gd2luZG93cyBhbmQgaW4gQ0tfRk9SSz1ubyBtb2RlCgkgIE5lZWQgdG8gY2xlYXIgYnVmZmVyIGxpc3RzIGF0IHRoZSBlbmQgb2YgZWFjaCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjEwCgoyMDEzLTA0LTA2IDE2OjA5OjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4IHNwYWNlIGluIGZhdWx0IG1lc3NhZ2UKCjIwMTMtMDQtMDYgMjI6MTA6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IENvcHkgQU5ZIGZsYWcgd2hlbiBjb3B5aW5nIGNhcHMgZmVhdHVyZXMgdG9vCgoyMDEzLTA0LTA2IDIxOjQ5OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNhcHM6IEhhbmRsZSBBTlkgY2FwcyBmZWF0dXJlcyBwcm9wZXJseSBpbiBtb3JlIHBsYWNlcwoKMjAxMy0wNC0wNiAyMToyMTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgdGVzdCBmb3Igb3BlcmF0aW9ucyBvbiBjYXBzIHdpdGggQU5ZIGZlYXR1cmVzCgoyMDEzLTA0LTA2IDIxOjA5OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFByb3Blcmx5IGhhbmRsZSBBTlkgY2FwcyBmZWF0dXJlcyBpbiBjYXBzIG9wZXJhdGlvbnMKCjIwMTMtMDQtMDUgMjE6MTA6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdXBkYXRlIHNpZ25hbCBkb2NzIGZvciBnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24oKQoKMjAxMy0wNC0wNSAxMDoxNTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpZ25vcmUgZW1wdHkgbm90LWxpbmtlZCBxdWV1ZXMKCSAgV2UgbmVlZCB0byBpZ25vcmUgdGhlIG5vdC1saW5rZWQgcXVldWVzIGluIHRoZSB1bmRlcnJ1biBhbmQgb3ZlcnJ1biBjYWxsYmFja3MKCSAgYmVjYXVzZSB0aGV5IGFyZSBleHBlY3RlZCB0byBiZSBlbXB0eS4KCjIwMTMtMDQtMDQgMjM6MTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY2FwcyBmZWF0dXJlIGxlYWsKCSAgRml4ZXMgbGVha3MgaW4gMTQgY29yZSB1bml0IHRlc3RzIGluY2x1ZGluZwoJICBnc3QvZ3N0Y2Fwcy4KCjIwMTMtMDQtMDQgMTk6MTY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxOTowNzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxOTowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTc6NTk6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogc2ltcGxpZnkgaXNfc3Vic2V0IGNoZWNrCgkgIEl0ZXJhdGUgb3ZlciB0aGUgZmllbGRzIG9mIHRoZSBzdXBlcnNldCBpbnN0ZWFkIG9mIHRob3NlIG9mIHRoZSBzdWJzZXQuCgkgIFRoaXMgd2F5IHdlIGNhbiBjaGVjayB0aGUgcHJlc2VuY2Ugb2YgdGhlIHN1YnNldCBmaWVsZCBhbmQgZG8gdGhlIHN1YnNldCBjaGVjawoJICBpbiBvbmUgaXRlcmF0aW9uLgoKMjAxMy0wNC0wNCAxNzo0NjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVwZGF0ZSBkb2NzLCBpc19zdWJzZXQoKSB3b3JrcyBub3cKCjIwMTMtMDQtMDQgMTY6Mzk6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggZG9jcwoKMjAxMy0wNC0wNCAxNjoyMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKQoJICBSZXdpcmUgc29tZSBpbnRlcm5hbCBmdW5jdGlvbnMgYW5kIGV4cG9zZSBhIG5ldwoJICBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpIGZ1bmN0aW9uLgoJICBBUEk6IGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkKCjIwMTMtMDQtMDQgMTU6NDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xhcmlmeSBkb2NzCgoyMDEzLTA0LTA0IDE1OjQ1OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWcKCjIwMTMtMDQtMDQgMTA6MTc6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBkb24ndCBXQVJOLCBqdXN0IERFQlVHCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY5MTEKCjIwMTMtMDMtMzAgMTE6MDY6NTkgKzAwMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IEZpeCBzZWVraW5nIHdoZW4gcG9zaXRpb24gaXMgc2xpZ2h0bHkgb3V0c2lkZSB0aGUgc2VnbWVudAoJICBWZXJ5IG9mdGVuLCB3aGVuIHRoZSBlbmQgb2YgYSBzZWdtZW50IGlzIGRldGVjdGVkIGJ5IGRlbXV4ZXIsIHRoZSBwb3NpdGlvbgoJICBpcyBzbGlnaHRseSBvdXRzaWRlIHRoZSBzZWdtZW50IGJvdW5kYXJpZXMuIEN1cnJlbnRseSwgaWYgdGhhdCBpcyB0aGUgY2FzZQoJICB0aGUgYmFzZSB3aWxsIGJlIHNldCB0byBOT05FIGluc3RlYWQgb2Ygbm9ybWFsIGFjY3VtdWxhdGlvbi4gVGhpcyB3b3VsZAoJICBicmVhayBub24tZmx1c2hpbmcgc2Vla3MgaW4gb2dnZGVtdXggYW5kIG1vc3QgbGlrZWx5IG90aGVyIGRlbXV4ZXJzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2ODk5CgoyMDEzLTA0LTAzIDE3OjI5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMy0wNC0wMyAxNjowMjozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgc3RyZWFtIGZsYWdzCgoyMDEzLTA0LTAyIDE4OjE3OjAwIC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IHN1YnRpdGxlIHRleHQgbWVkaWEgdHlwZXMgY2hhbmdlZCBhcyB3ZWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcxNTMKCjIwMTMtMDQtMDIgMjM6NTE6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBkb2NzOiBtb3JlIHNpbmNlIG1hcmtlcnMgYW5kIG90aGVyIGRvY3MgZml4ZXMKCjIwMTMtMDQtMDIgMjM6MjE6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGRvY3M6IGFkZCBzaW5jZSBtYXJrZXJzIHRvIGNhcHNmZWF0dXJlcyBkb2NzCgoyMDEzLTA0LTAyIDIzOjE4OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBhZGQgc29tZSBtb3JlIG1vZHVsZXMgdG8gZ2l0LXVwZGF0ZS5zaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MDU4CgoyMDEzLTA0LTAyIDIzOjA0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVuaW5zdGFsbGVkIG9yYy9vcmMtdGVzdC8ubGlicyB0byBsaWJyYXJ5IHBhdGhzCgkgIFRoaXMgaXMgbmVlZGVkIGJ5IHRoZSB1bml0IHRlc3RzIGluIGdzdC1wbHVnaW5zLWJhc2UsIC1nb29kIGV0Yy4KCSAgU3BvdHRlZCBieSBBbGV4IEtheWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcwOTMKCjIwMTMtMDQtMDIgMjI6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBBZGQgR1NUX0NBUFNfRkVBVFVSRVNfQU5ZCgkgIFRoaXMgaXMgZXF1YWwgdG8gYW55IG90aGVyIGNhcHMgZmVhdHVyZXMgYnV0IHJlc3VsdHMgaW4gdW5maXhlZCBjYXBzLiBJdAoJICB3b3VsZCBiZSB1c2VkIGJ5IGVsZW1lbnRzIHRoYXQgb25seSBsb29rIGF0IHRoZSBidWZmZXIgbWV0YWRhdGEgb3IgYXJlCgkgIGN1cnJlbnRseSB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUsIGFuZCBhcyBzdWNoIGRvbid0IGNhcmUgYWJvdXQgYW55CgkgIHNwZWNpZmljIGZlYXR1cmVzLgoKMjAxMy0wNC0wMSAyMjoxMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1pbm9yIGNvc21ldGljIGNoYW5nZXMKCSAgTGV0J3Mgbm90IHVzZSB1Z2x5IGxlYWRpbmcgdW5kZXJzY29yZXMgZm9yCgkgIHN0YXRpYyBmdW5jdGlvbnMuCgoyMDEzLTA0LTAxIDIxOjIzOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IG9iamVjdCBwcmludGluZyBvZiBjYXBzIGZlYXR1cmVzIGluIGRlYnVnIGxvZwoKMjAxMy0wNC0wMSAxNjozODo0MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkcmFmdC10cmFjaW5nOiB1cGRhdGUgZHJhZnQgZGVzaWduIHdpdGggdGltZXIgaWRlYXMKCjIwMTMtMDMtMzAgMTc6MDM6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZWZhY3RvciBwcmV0dHkgcHJpbnRpbmcgb2JqZWN0cwoJICBFeHRyYWN0IGZvcm1hdHRlcnMgaW50byBsb2NhbCBmdW5jdGlvbnMuIENoYW5nZSB0aGUgc3RydWN0dXJlIGZpbHRlcmluZyBzbyB0aGF0CgkgIGl0IHdvcmtzIGZvciB0YWdsaXN0cyB0b28uCgoyMDEzLTAzLTMwIDE2OjM5OjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWFrZSBwb3N0X21lc3NhZ2UgYW5kIHF1ZXJ5IG1vcmUgYWxpa2UKCjIwMTMtMDQtMDEgMTA6MjA6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFByaW50IGNhcHMgZmVhdHVyZXMgdG9vCgoyMDEzLTA0LTAxIDEwOjE5OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBGb3IgY29weWluZyBmZWF0dXJlcyBpdCdzIG5vdCByZXF1aXJlZCB0byBoYXZlIG5vIHBhcmVudCByZWZjb3VudAoKMjAxMy0wNC0wMSAxMDoxOTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTZXQgZmVhdHVyZXMnIHBhcmVudCByZWZjb3VudCBpbiBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKSB0b28KCjIwMTMtMDQtMDEgMTA6MTg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2V0IHN5c21lbSBmZWF0dXJlcyBpZiBleHBsaWNpdGVseSByZXF1ZXN0ZWQKCjIwMTMtMDMtMzEgMTk6MDk6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZGVzaWduOiBBZGQgdGhlIGNhcHMgZmVhdHVyZXMgYW5kIGRlc2NyaWJlIGhvdyB0aGUgY2FwcyBvcGVyYXRpb25zIGFjdHVhbGx5IHdvcmsKCjIwMTMtMDMtMzAgMTU6MzU6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IEFkZCBuZXcgZGF0YSB0eXBlIGZvciBoYW5kbGluZyBjYXBzIGZlYXR1cmVzIHRvIHRoZSBjYXBzCgkgIFRoZXNlIGFyZSBtZWFudCB0byBzcGVjaWZ5IGZlYXR1cmVzIGluIGNhcHMgdGhhdCBhcmUgcmVxdWlyZWQKCSAgZm9yIGEgc3BlY2lmaWMgc3RydWN0dXJlLCBmb3IgZXhhbXBsZSBhIHNwZWNpZmljIG1lbW9yeSB0eXBlCgkgIG9yIG1ldGEuCgkgIFNlbWFudGljYWxseSB0aGV5IGNvdWxkIGJlIHRob3VnaCBvZiBhcyBhbiBleHRlbnNpb24gb2YgdGhlIG1lZGlhCgkgIHR5cGUgbmFtZSBvZiB0aGUgc3RydWN0dXJlcyBhbmQgYXJlIGhhbmRsZWQgZXhhY3RseSBsaWtlIHRoYXQuCgoyMDEzLTAzLTMxIDE1OjMwOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgU0VMRUNUIGFuZCBVTlNFTEVDVCBzdHJlYW0gZmxhZ3MgZm9yIHN0cmVhbS1zdGFydCBldmVudAoJICBTbyBkZW11eGVycyBjYW4gc2lnbmFsIHdoaWNoIGF1ZGlvL3ZpZGVvL3N1YnRpdGxlIHN0cmVhbXMgc2hvdWxkCgkgIGJlIHNlbGVjdGVkIGJ5IGRlZmF1bHQgYW5kIHdoaWNoIHNob3VsZCBub3QgYmUgc2VsZWN0ZWQKCSAgYXV0b21hdGljYWxseS4KCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfU0VMRUNUCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1VOU0VMRUNUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5NjgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDkxMQoKMjAxMy0wMS0wNiAyMDoyNzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIHN0cmVhbSBmbGFncyB0byBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgQVBJOiBnc3RfZXZlbnRfc2V0X3N0cmVhbV9mbGFncygpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9mbGFncygpCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX05PTkUKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfU1BBUlNFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2NDgKCjIwMTMtMDMtMzEgMTE6MjY6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogQWRkIEFQSSB0byBnZXQgdGhlIGxhc3Qgc2V0IGNvbnRleHQgZnJvbSBhbiBlbGVtZW50CgkgIEVsZW1lbnRzIHNob3VsZCBvdmVycmlkZSBHc3RFbGVtZW50OjpzZXRfY29udGV4dCgpIGFuZCBhbHNvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoKSB0byBrZWVwIHRoaXMgY29udGV4dCB1cC10by1kYXRlIHdpdGgKCSAgdGhlIHZlcnkgbGF0ZXN0IGNvbnRleHQgdGhleSBpbnRlcm5hbGx5IHVzZS4KCjIwMTMtMDMtMzAgMTQ6MDQ6MjggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiBhZGQgaW5pdGlhbCB0cmFjaW5nIGRlc2lnbiBkb2MKCjIwMTMtMDMtMzAgMTE6NDc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IExldCBnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMoKSBwYXNzIHRoZSBjYXBzIG93biBjYXBzIGFzIGZpbHRlcgoJICBUaGlzIHdpbGwgcmVkdWNlIHRoZSBudW1iZXIgb2YgY2FwcyBjcmVhdGVkIGRvd25zdHJlYW0gYW5kIHdlIGRvbid0CgkgIG5lZWQgdG8gaW50ZXJzZWN0IGluIHRoZSB2ZXJ5IGVuZCB3aXRoIHRoZSBwYWQncyBvd24gY2Fwcy4KCjIwMTMtMDMtMzAgMTA6MjQ6MjcgKzAxMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeGVzIGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0YmFzZXNpbmsuYzogSW4gZnVuY3Rpb24gJ2dzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQnOgoJICBnc3RiYXNlc2luay5jOjMyMDQ6IHdhcm5pbmc6ICdyZXQnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgoKMjAxMy0wMy0yOSAxOTowMTo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBnaXIgd2FybmluZwoKMjAxMy0wMy0yOSAxODo0OToxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBSZXZlcnQgInB3ZzogRml4IGV4YW1wbGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWQ2NGYyN2Q4ODEyNzRhNDBmMDQ0MWJiOGM1YjM4MTZmZGZjNWI5ZS4KCSAgKnNpZ2gqCgoyMDEyLTExLTA2IDA5OjQxOjU4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogRml4IGV4YW1wbGUKCjIwMTItMTEtMTEgMTM6NTI6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBTRUdNRU5UIHN0aWNreSBldmVudHMgd2hlbiBmbHVzaGluZwoJICBXaGVuIGZsdXNoaW5nLCBpdCBpcyBleHBlY3RlZCB0aGF0IHVwc3RyZWFtIHdpbGwgc2VuZCBhIFNFR01FTlQKCSAgZXZlbnQgYWZ0ZXJ3YXJkcy4KCSAgVGhpcyBhbHNvIGF2b2lkcyBzdHJheSBTRUdNRU5UIGV2ZW50cyBmcm9tIGNvbWluZyB0aHJvdWdoIGFmdGVyIGEKCSAgZmx1c2guCgoyMDEzLTAzLTI4IDE1OjM1OjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBuZXcgR3N0Q29udGV4dCBtaW5pb2JqZWN0IGZvciBzaGFyaW5nIGNvbnRleHRzIGluIGEgcGlwZWxpbmUKCjIwMTMtMDMtMjggMTY6NDI6NTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJICBhcmdiLWNvbnRyb2xiaW5kaW5nOiBmaXggbWVzc2VkIHVwIHByb3BlcnR5IHNldHRlcgoJICBUaGlzIHdhcyBtaXNhc3NpZ25pbmcgdGhlIGNvbnRyb2wgc291cmNlcy4gSXQgd2FzIGFsc28gbGVha2luZyB0aGUgb2xkIHZhbHVlcyBpZgoJICBhIGNvbnRyb2wgc291cmNlIHdvdWxkIGJlIHJlcGxhY2VkLgoKMjAxMy0wMy0yNyAxODoyNTowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBuZXh0X3B0cyB1cG9uIFNFR01FTlQgZXZlbnQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMi0yNiAxOTo1ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb3JlIGludGVyLXRpbWVzdGFtcCB0cmFja2luZwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAzLTI2IDE5OjIyOjE4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogQWRkIGFubm90YXRpb25zIGFuZCBweWdpIGZyaWVuZGx5IGV4dHJhY3Rpb24gZnVuY3Rpb24KCSAgQVBJOiBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwCgoyMDEzLTAzLTI3IDE3OjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBob3BlZnVsbHkgY2xhcmlmeSBhIGxpdHRsZQoKMjAxMy0wMy0yNSAxODoxMTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgVXBkYXRlIGRvY3MgZm9yIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9wcmludGYoKQoJICBUbyBpbmRpY2F0ZSB0aGF0IGZvcm1hdCBzdHJpbmdzIHNob3VsZCBiZSBhbHBoYSBzb3J0YWJsZS4KCjIwMTMtMDMtMjUgMDk6MTY6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIHVuaXQgdGVzdCBmb3IgR1NUX0NBUFNfe0FOWSxOT05FfSBhbmQgR1NUX1NUQVRJQ19DQVBTX3tBTlksTk9ORX0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjQzNQoKMjAxMy0wMy0yNSAwOToxOToyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggZ3N0X3N0YXRpY19jYXBzX2dldChHU1RfU1RBVElDX0NBUFNfTk9ORSkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjQzNQoKMjAxMy0wMy0yMSAyMTowMDo1NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3Qgc2VuZCBlcnJvciBpZiBuZWdvdGlhdGUgZmFpbHMgYmVjYXVzZSB3ZSBhcmUgZmx1c2hpbmcKCSAgTmVnb3RpYXRpb24gbWF5IGJlIGFib3J0ZWQgYnkgYSBmbHVzaCBmcm9tIGFub3RoZXIgdGhyZWFkIHRoYXQgbmVlZCB0bwoJICBzdG9wIHRoZSB0YXNrIChpLmUuIHNlZWspLiBDaGVjayB0aGF0IGNhc2UgYW5kIHNpbGVudGx5IHBhdXNlIHRoZSB0YXNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzU3CgoyMDEzLTAzLTI0IDE3OjUzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogc29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMKCjIwMTMtMDMtMjIgMjA6MDI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIHF1ZXJ5IGZ1bmN0aW9uIGV4YW1wbGUgaW4gUGx1Z2luIFdyaXRlcidzIEd1aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYxNDIKCjIwMTMtMDMtMDcgMTI6MTE6MzAgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogZml4IHNwdXJpb3VzIGZhaWx1cmUgaW4gdGVzdF9jb2xsZWN0IGNvbGxlY3RwYWRzIHRlc3QKCSAgcG9wKCkgaW4gY29sbGVjdGVkIGNhbGxiYWNrLgoJICBUaGVyZSB3ZXJlIHRocmVlIHRocmVhZHMgaW4gdGhlIHRlc3QgY2FzZXMgdGhhdCBoYW5nZWQ6IHRoZSB0ZXN0IHRocmVhZCBhbmQgdHdvCgkgIHRocmVhZHMgdGhhdCBwdXNoIGJ1ZmZlcnMuIEVhY2ggdGhyZWFkIHB1c2ggb25lIGJ1ZmZlciBvbiBvbmUgcGFkLiBUaGVyZSBhcmUKCSAgdHdvIHBhZHMgaW4gdGhlIGNvbGxlY3RwYWRzIHNvIHRoZSBzZWNvbmQgYnVmZmVyIHdpbGwgdHJpZ2dlciB0aGUKCSAgY29sbGVjdC1jYWxsYmFjay4KCSAgVGhpcyBpcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgaGFuZyBvY2N1cnM6CgkgIFRoZSBmaXJzdCB0aHJlYWQgcHVzaGVzIGEgYnVmZmVyIGFuZCBpbml0aWFsaXplcyBhIGNvb2tpZSB0byB0aGUgdmFsdWUgb2YgYQoJICBjb3VudGVyIGluIHRoZSBjb2xsZWN0cGFkcyBvYmplY3QgYW5kIHdhaXRzIG9uIGEgY29uZCBmb3IgdGhlIGNvdW50ZXIgdG8gY2hhbmdlCgkgIGFuZCBmb3Igc29tZW9uZSB0byBjb25zdW1lIHRoZSBidWZmZXIgKGkuZS4gX3BvcCgpIGl0KS4KCSAgVGhlIHNlY29uZCB0aHJlYWQgcHVzaGVzIGEgYnVmZmVyIGFuZCBjYWxscyB0aGUgY29sbGVjdGVkIGNhbGxiYWNrLCB3aGljaAoJICBzaWduYWxzIHRoZSBjb25kIHRoYXQgdGhlIHRlc3QgdGhyZWFkIGlzIHdhaXRpbmcgZm9yLgoJICBUaGUgdGVzdCB0aHJlYWQgcG9wcyBib3RoIGJ1ZmZlcnMgKHdpdGhvdXQgaG9sZGluZyBhbnkgbG9jaykuIEVhY2ggY2FsbCB0bwoJICBfcG9wKCkgaW5jcmVhc2VzIHRoZSBjb3VudGVyIGJyb2FkY2FzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRoZSBmaXJzdCB0aHJlYWQgaXMKCSAgbm93IHdhaXRpbmcgZm9yLiBJdCB0aGVuIGpvaW5zIGJvdGggdGhyZWFkcyAoaGFuZ3MpLgoJICBUaGUgZmlyc3QgdGhyZWFkIHdha2VzIHVwIGFuZCByZXR1cm5zLCBzaW5jZSBpdHMgYnVmZmVyIGhhcyBiZWVuIGNvbnN1bWVkLgoJICBUaGUgc2Vjb25kIHRocmVhZCBzdGFydHMgZXhlY3V0aW5nIGFnYWluLiBXaGVuIHRoZSBjYWxsYmFjaywgY2FsbGVkIGJ5IHRoZQoJICBzZWNvbmQgdGhyZWFkLCBoYXMgcmV0dXJuZWQgaXQgaW5pdGlhbGl6ZXMgYSBjb29raWUgdG8gdGhlIHZhbHVlIG9mIGEgY291bnRlciwKCSAgd2hpY2ggaGFzIGFscmVhZHkgcHJlbWF0dXJlbHkgYmVlbiBpbmNyZWFzZWQgYnkgdGhlIHRlc3QgdGhyZWFkIHdoZW4gaXQgcG9wcGVkCgkgIHRoZSBidWZmZXJzLCBhbmQgd2FpdCdzIG9uIGEgY29uZCBmb3IgdGhlIGNvdW50ZXIgdG8gY2hhbmdlIGFuZCBmb3Igc29tZW9uZSB0bwoJICBjb25zdW1lIHRoZSBidWZmZXIgKGkuZS4gX3BvcCgpIGl0KS4gU2luY2UgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIHBvcGVkCgkgIGFuZCB0aGUgY291bnRlciBoYXMgYWxyZWFkeSBiZWVuIGluY3JlYXNlZCBpdCB3aWxsIGJlIHN0dWNrIGZvcmV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU1NTUKCjIwMTMtMDMtMTYgMTI6MDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgZmZtcGVnIGxpYnMgZnJvbSBkeW5hbWljIGxpbmtlciBwYXRocwoJICBXZSBsaW5rIHRob3NlIGxpYnMgaW50byB0aGUgcGx1Z2luIHN0YXRpY2FsbHksIG9yIHVzZSBleHRlcm5hbAoJICBzeXN0ZW0gbGlicywgYnV0IG5ldmVyIHRoZSBpbnRlcm5hbCBzbmFwc2hvdCBkeW5hbWljYWxseS4KCjIwMTMtMDMtMTYgMTI6MDA6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LWVkaXRpbmctc2VydmVzIHRvIEdJX1RZUEVMSUJfUEFUSAoJICBTbyBweWdpIGNhbiBmaW5kIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTM3CgoyMDEzLTAzLTEyIDEzOjUzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogbWFrZSBzdXJlIHNsb3cgR1NUX1JFQURfVUlOVCogdmFyaWFudHMgZG9uJ3QgaGF2ZSB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cwoJICBGaXhlcyB1bml0IHRlc3Qgb24gc3lzdGVtcyB3aGVyZSB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyBpcyBub3QgcG9zc2libGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU1OTkKCjIwMTMtMDMtMDUgMTE6MTQ6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogZG9uJ3QgZXhpdCB0aGUgbG9vcCBvbiBidWZmZXJpbmcgaW4gcGF1c2VkCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIGJ1ZmZlcmluZyBtZXNzYWdlIG9mIDEwMCUgaW4gdGhlIHBhdXNlZCBzdGF0ZSwgd2UgZXhpdAoJICB0aGUgZXZlbnRfbG9vcCBhbmQgbW92ZSB0byB0aGUgUExBWUlORyBzdGF0ZS4gV2hhdCBzaG91bGQgaGFwcGVuIGlzIHRoYXQKCSAgd2Ugd2FpdCBmb3IgYm90aCBBU1lOQy1ET05FIGFuZCAxMDAlIGJ1ZmZlcmluZyBiZWZvcmUgY29udGludWVpbmcuCgoyMDEzLTAzLTA4IDEzOjE1OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgY29udHJvbGxlciBkZXNpZ24gYW5kIGFkZCBzb21lIHRob3VnaHMgZm9yIGZ1dHVyZSBzdHVmZgoKMjAxMy0wMy0wOCAwODoxMzowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgZG9jczogbWVudGlvbiBjbGlwcGluZyBvZiB2YWx1ZXMgaW4gY29udHJvbC1iaW5kaW5nIGRvY3MKCjIwMTMtMDMtMDggMDg6MTA6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBjb2RlIGNsZWFudXBzCgkgIFVzZSBhIHByb3BlcnR5IGZvciBhY2Nlc3NpbmcgdGhlIGNvbnRyb2wtc291cmNlIG9uIHRoZSBiaW5kaW5nLiBEcm9wIGJhc2VfaW5pdAoJICBvbiB0aGUgdGVzdCBvYmplY3QuCgoyMDEzLTAzLTA3IDExOjQ2OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZ3N0X3F1ZXJ5X2dldF9uX2FsbG9jYXRpb25fcGFyYW1zKCkgcmV0dXJucyBhIG5ldyByZWYgdG8gdGhlIGFsbG9jYXRvcgoKMjAxMy0wMy0wNyAxMTozNTowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgYSBib2d1cyB0ZXN0CgkgIFdlIHByZXZpb3VzbHkgZm9yZ290IHRvIGluaXRpbGl6ZSB0aGUgYW1wbGl0ZGUgcHJvcGVydHkgdG8gdGhlIGRlZmF1bHQgYW5kIHRodXMgaXQgd2FzIDAuMC4gVGhlcmVmb3JlIGEgZGVmYXVsdCBsZm8gY29udHJvbHNvdXJjZSByZXR1cm5lZCBhIHNlcmllcyBvZiAwLjAgYW5kIHRoZSB0ZXN0IHdhcyBhc3NlcnRpbmcgb24gdGhhdC4KCjIwMTMtMDMtMDcgMDk6MTU6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogcmVsYXggdGhlIHBzcGVjIGZvciB0aGUgY29udHJvbC1zb3VyY2UKCSAgV2UgY2FuIGNoYW5nZSBjb250cm9sIHNvdXJjZXMgb24gY29udHJvbGJpbmRpbmdzLgoKMjAxMy0wMy0wNyAwOToxMjo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm86IHNldCBhIHNlbnNpYmxlIGxvd2VyIGJvdW5kYXJ5IGZvciB0aGUgZnJlcXVlbmN5CgkgIFVzZSBEQkxfTUlOLCB3aGljaCBpcyBhIHRoZSBzbWFsbGVzIGRvdWJsZSBncmVhdGVyIHRoYW4gemVybyB0aGF0IGlzIG5vdCBpbgoJICBkZW5vcm1hbCBmb3JtYXQuIFRoaXMgZXhwb3NlcyB0aGUgbGltaXQgYmV0dGVyIHRoYW4gdGhlIHJ1bnRpbWUgY2hlY2suCgoyMDEzLTAzLTA2IDIzOjU5OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyZGUyMjFjIHRvIDA0YzdhMWUKCjIwMTMtMDMtMDYgMTY6NDA6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogaW5pdCB0aGUgYW1wbGl0dWRlIHRvIHRoZSBkZWZhdWx0IGFuZCB1cGRhdGUgdGhlIGRvY3MKCjIwMTMtMDMtMDUgMTE6MzA6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIGFsbCB0aGUgYmFzZS9iYWQgbGlicmFyaWVzIGFuZCByZW1vdmUgb2Jzb2xldGUgb25lcwoKMjAxMy0wMy0wMyAxNjowMDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoJICBSdW5uaW5nIHN1aXRlKHMpOiBHc3RCYXNlU2luawoJICA9PTIyMDIzPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQoJICA9PTIyMDIzPT0gICAgYXQgMHg1MDVGRkNFOiBnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzIChnc3RiYXNlc2luay5jOjE5MzYpCgkgID09MjIwMjM9PSAgICBieSAweDUwNjhDODA6IGdzdF9iYXNlX3NpbmtfZG9fc3luYyAoZ3N0YmFzZXNpbmsuYzoyMzc5KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDZCQ0QyOiBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfd2FpdF9ldmVudCAoZ3N0YmFzZXNpbmsuYzoyOTAzKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDYzM0E0OiBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MjkxOCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NkY1QzIxNjogZ3N0X2Zha2Vfc2lua19ldmVudCAoZ3N0ZmFrZXNpbmsuYzozODMpCgkgID09MjIwMjM9PSAgICBieSAweDUwNUYxNjQ6IGdzdF9iYXNlX3NpbmtfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MzEwOCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTJGQTA5MDogZ3N0X3BhZF9zZW5kX2V2ZW50X3VuY2hlY2tlZCAoZ3N0cGFkLmM6NDgyMikKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTMwMzc1NjogZ3N0X3BhZF9zZW5kX2V2ZW50IChnc3RwYWQuYzo0OTg0KQoJICA9PTIyMDIzPT0gICAgYnkgMHg0MDE2NUI6IGJhc2VzaW5rX3Rlc3RfZ2FwIChiYXNlc2luay5jOjE0OCkKCjIwMTMtMDMtMDMgMTI6MDY6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBtZW1vcnkgY29weWluZyBsb2dpYyBpbiBjb3B5X2ludG8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1MDM1CgoyMDEzLTAzLTAzIDExOjI4OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogVXNlIGNvcnJlY3QgcHJpbnQgZm9ybWF0IHNwZWNpZmllcnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEzLTAyLTIyIDE0OjIyOjAxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgRml4IG1pc3NwZWxsaW5ncyBvZiAnY29udGludW91cycKCjIwMTMtMDItMjIgMTQ6NTY6NDkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdGFrZSBEVFMgaW50byBhY2NvdW50CgkgIEltcG9ydGFudGx5LCB0aGlzIHBhdGNoIGNvbnZlcnRzIERUUyB0byBydW5uaW5nIHRpbWUuICBMZXNzIGltcG9ydGFudGx5LAoJICBhbmQgcG9zc2libHkgYSBwcm9ibGVtIGZvciBzb21lIG11eGVycywgaXMgdGhhdCBpdCBvcmRlcnMgYnVmZmVycyBieQoJICBEVFMgKGlmIGl0IGlzIHZhbGlkLCBvdGhlcndpc2UgUFRTKS4gIFRoaXMgaXMgZ2VuZXJhbGx5IGNvcnJlY3QsIGJ1dAoJICBtaWdodCBiZSBzb21ld2hhdCBzdXJwcmlzaW5nIHRvIG11eGVycy4KCSAgQWxzbyBub3RlIHRoYXQgb25jZSBjb252ZXJ0ZWQgdG8gcnVubmluZyB0aW1lLCBEVFMgY2FuIGVuZCB1cCBuZWdhdGl2ZS4KCjIwMTMtMDItMjggMjI6NTk6NDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiBpbXByb3ZlIHRoZSBjb250cm9sbGVyIGRvY3MgYSBsaXR0bGUgbW9yZQoJICBSZXdvcmQgc29tZSBzZWN0aW9ucy4gRXhwbGFpbiB2YWx1ZSBtYXBwaW5ncyBiZXR0ZXIuCgoyMDEzLTAyLTI4IDE5OjQwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1saWJhdiB0byBwa2ctY29uZmlnIHBhdGgKCjIwMTMtMDItMjcgMjI6MTU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBzZWVraW5nOiBhZGQgbW9yZSBsb2dnaW5nIGZvciBzZWVraW5nCgkgIEVzcGVjaWFsbHkgYWRkIGxvZ2dpbmcgdG8gZXJyb3IgY29kZSBwYXRocy4KCjIwMTMtMDItMjcgMTA6MDk6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogR3JhY2VmdWxseSBoYW5kbGUgZ3N0X21lbW9yeV9jb3B5KCkgcmV0dXJuaW5nIE5VTEwgd2l0aG91dCBjcmFzaGluZwoJICBnc3RfYnVmZmVyX2NvcHlfaW50bygpIGFuZCBnc3RfYnVmZmVyX3Jlc2l6ZV9yYW5nZSgpIGNhbiBub3cgZmFpbC4KCjIwMTMtMDItMjYgMTc6MzM6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhbGxvY2F0b3I6IHNtYWxsIGludGVybmFsIGNsZWFudXBzCgkgIFJlbmFtZSBTeXN0ZW0gbWVtb3J5IGFsbG9jYXRvciB0byBHc3RBbGxvY2F0b3JTeXNtZW0gYW5kIHRoZSBtZW1vcnkgdG8KCSAgR3N0TWVtb3J5U3lzdGVtLgoKMjAxMy0wMi0yNiAxNTozNzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZXRob2QgdG8gY2hlY2sgbWVtb3J5IHR5cGUKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGEgbWVtb3J5IHdhcyBhbGxvY2F0ZWQgZnJvbSBhbiBhbGxvY2F0b3Igb2YKCSAgYSBnaXZlbiB0eXBlLgoJICBBUEk6IGdzdF9tZW1vcnlfaXNfdHlwZSgpCgoyMDEzLTAyLTI2IDE1OjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDEzLTAyLTI2IDE1OjMyOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJICB1c2UgR1NUX01FU1NBR0VfRFVSQVRJT05fQ0hBTkdFRCBpbiBkb2NzIGFuZCBjb2RlCgoyMDEzLTAyLTI2IDE0OjQwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGRvbid0IHVucmVmIGFsbG9jYXRvciB0b28gc29vbgoJICBVbnJlZiB0aGUgYWxsb2NhdG9yICphZnRlciogd2UgaGF2ZSBmcmVlZCB0aGUgbWVtb3J5LiBXZSBhbHNvIG5lZWQgdG8ga2VlcAoJICBhIHJlZiB0byB0aGUgYWxsb2NhdG9yIGFyb3VuZCBiZWNhdXNlIGZvbGxvd2luZyB0aGUgbm93IGZyZWVkIG1lbW9yeSB3b3VsZAoJICBsZWFkIHRvIGNyYXNoZXMuCgoyMDEzLTAyLTI2IDA5OjA4OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggaW52ZXJ0ZWQgbG9naWMgZm9yIGRlY2lkaW5nIGlmIG1lbW9yeSBzaG91bGQgYmUgc2hhcmVkIG9yIGNvcGllZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0NzE3CgoyMDEzLTAyLTI2IDA3OjUwOjEzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBtZW50aW9uIHNlZ21lbnQgYWNjdW11bGF0aW9uIGluIHRoZSBwb3J0aW5nIGd1aWRlCgkgIFRoaXMgbmVlZHMgbW9yZSBkZXRhaWwsIGJ1dCBhdCBsZWFzdCBnaXZlcyBwZW9wbGUgYSBoaW50IG9uIHRoZSBpc3N1ZS4KCjIwMTMtMDItMjYgMDc6NDg6MzUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiBzL3N0YXJ0L2RvbmUvIGNvcHknbidwYXN0ZSBtaXN0YWtlCgoyMDEzLTAyLTI1IDEzOjU3OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgbmV3IEFQSSB0byByZW1vdmUgYWxsb2NhdGlvbiBwYXJhbXMgYW5kIHBvb2xzIGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkKCjIwMTMtMDItMjUgMTM6MjQ6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBEb2N1bWVudCB0aGF0IHRoZSBmaXJzdCBhbGxvY2F0b3IgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnkgc2hvdWxkIGFsbG93IG1hcHBpbmcgdG8gc3lzdGVtIG1lbW9yeQoKMjAxMy0wMi0yNCAwOToyNDoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgYWxsb2NhdG9yCgkgIE90aGVyd2lzZSB0aGUgYWxsb2NhdG9yIG1pZ2h0IGdldCBmcmVlZCB3aGlsZSBpdCdzIHN0aWxsIHVzZWQKCSAgYnkgdGhlIG1lbW9yeQoKMjAxMy0wMi0yNCAwOTozMzowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogSWYgc2hhcmluZyBhIEdzdE1lbW9yeSBmYWlscywgZmFsbCBiYWNrIHRvIGNvcHlpbmcgaXQKCjIwMTMtMDItMjMgMTg6MzY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHBvcnRpbmctdG8tMS4wLnR4dDogc29tZSBlbGVtZW50IG5hbWVzIGhhdmUgY2hhbmdlZAoKMjAxMy0wMi0yMyAwODoxOTo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogSXQncyBjb250aWd1b3VzLCBub3QgY29udGlub3VzCgoyMDEzLTAyLTIyIDEyOjQxOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbmV3IG1lbW9yeSBmbGFnIHRvIHNwZWNpZnkgdGhhdCBtZW1vcnkgY2FuJ3QgYmUgbWFwcGVkCgoyMDEzLTAyLTIyIDA5OjAyOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbWVtb3J5IGZsYWcgdG8gbWFyayBwaHlzaWNhbGx5IGNvbnRpbm91cyBtZW1vcnkKCjIwMTMtMDItMTYgMjM6MDI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgcGFzcyBOVUxMIG91dGNhcHMgdG8gdHJhbnNmb3JtX3NpemUgb24gc2h1dGRvd24KCSAgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgb24gdGhlIHNvdXJjZSBwYWQgbWlnaHQgeWllbGQgTlVMTCBjYXBzCgkgIGlmIHdlJ3JlIGJlaW5nIHNodXQgZG93biBhbmQgdGhlIHNvdXJjZSBwYWQgaGFzIGFscmVhZHkgYmVlbgoJICBkZWFjdGl2YXRlZCBieSB0aGUgb3RoZXIgdGhyZWFkIHRoYXQncyBjaGFuZ2luZyBzdGF0ZS4gSnVzdCBiYWlsCgkgIG91dCBpbiB0aGF0IGNhc2UsIGluc3RlYWQgb2YgcGFzc2luZyBOVUxMIGNhcHMgdG8gdGhlIHRyYW5zZm9ybV9zaXplCgkgIGZ1bmN0aW9uLCB3aGljaCBpdCBtaWdodCBub3QgZXhwZWN0LgoJICBGaXhlcyBzcHVyaW91cyB3YXJuaW5ncyBpbiBhdWRpb3Jlc2FtcGxlIHNodXRkb3duIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mzk5NgoKMjAxMy0wMi0yMSAxMDoxODoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgT1JDCgoyMDEzLTAyLTE5IDE4OjAwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIHVuZXhwZWN0ZWQgc2lkZS1lZmZlY3RzIG9mIEdTVF9XUklURV8qIG1hY3JvcwoJICBNYWtlIHN1cmUgdGhlIGRhdGEgYXJndW1lbnQgaXMgb25seSBldmFsdWF0ZWQgb25jZS4KCjIwMTMtMDItMTkgMTc6MzY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGNoZWNrOiBhZGQgc29tZSBtb3JlIGZhaWxfdW5sZXNzXyooKSBtYWNyb3MgZm9yIGNvbnZlbmllbmNlCgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX2ludF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX2ludF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfaW50NjRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc19pbnQ2NF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfdWludDY0X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfdWludDY0X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19wb2ludGVyCgkgIEFQSTogYXNzZXJ0X2VxdWFsc19wb2ludGVyCgoyMDEzLTAyLTE5IDEyOjQyOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBhZGQgbmV3IC1iYXNlIGFsbG9jYXRvcnMgbGlicmFyeSB0byBnc3QtdW5pbnN0YWxsZWQgc2VhcmNoIHBhdGhzCgoyMDEzLTAyLTE4IDIwOjQ3OjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIHR3byBtb3JlIHRlc3RzIHVzaW5nIGNvbGxlY3RwYWRzIHdpdGhpbiBhbiBlbGVtZW50CgkgIEFkZCBhIHN0YXRpYyBwbHVnaW4gd2l0aCBhIHJ1ZGltZW50YXJ5IGVsZW1lbnQgdXNpbmcgY29sbGVjdHBhZHMgYW5kIGRvIHNvbWUKCSAgcGlwZWxpbmUgYmFzZWQgdGVzdHMuCgoyMDEzLTAyLTE3IDEyOjUwOjAzIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBkb2NzOiBGaXggc29tZSBhbWJpZ3VvdXMgd29yZGluZwoKMjAxMy0wMi0xNyAxOTo1Mzo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IGFkZCBtaXNzaW5nIGVuZF9pdGVyIGNoZWNrIGZvciBzZXF1ZW5jZQoJICBBdm9pZCBhY2Nlc3NpbmcgdGhlIGVuZC1pdGVyLCB0aGlzIGlzIGEgbWFya2VyIHdpdGhvdXQgYSBkYXRhIGZpZWxkLgoKMjAxMy0wMi0xNyAxMzoyMDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGxpbmsgdG8gdGhlIGFwcHJvcHJpYXRlIG1lc3NhZ2VzIGZyb20gZ3N0X2VsZW1lbnRzX3NldF9zdGF0ZSgpIGRvY3MKCSAgRm9yIGFuIGFzeW5jIHN0YXRlIGNoYW5nZSByZXR1cm4gb25lIHdvdWxkIHdhaXQgZm9yIEFTWU5DX0RPTkUgb3IgU1RBVEVfQ0hBTkdFRC4KCjIwMTMtMDItMTYgMTQ6MjA6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIHNpbmNlIG1hcmtlciBmb3IgbmV3IENPUFlfREVFUCBidWZmZXIgZmxhZwoKMjAxMy0wMi0xNiAxNDo1OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBvcHRpb24gdG8gZGVlcCBjb3B5IGEgYnVmZmVyCgkgIEFkZCBhIGJ1ZmZlciBjb3B5IGZsYWcgdG8gZm9yY2UgYSBtZW1vcnkgY29weSBpbiBhbGwgY2FzZXMuCgoyMDEzLTAyLTE0IDE0OjA5OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBSZXZlcnQgInV0aWxzOiBVc2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgaW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWExYTllMTQzZmIwZTE1NWQ3NjI3YWE4ZTQ4OWNkNWQwNGJjMDkzYy4KCSAgVGhpcyBicmVha3MgdGhlIHBpcGVsaW5lcy90YWdzY2hlY2tpbmcgdW5pdCB0ZXN0IGZvciBzb21lIHJlYXNvbgoJICAoZmFrZXNyYyAhIGNhcHNmaWx0ZXIgISBxdG11eCBsaW5raW5nIGZhaWxzIG5vdykuIEl0IG1pZ2h0IGJlCgkgIGEgYnVnIGluIHRoZSB1bml0IHRlc3Qgb2YgY291cnNlLCBidXQgc29tZW9uZSB3aWxsIG5lZWQgdG8KCSAgaW52ZXN0aWdhdGUgdGhpcy4gUmV2ZXJ0aW5nIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI1MDgKCjIwMTMtMDItMTUgMTM6MDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogaW1wcm92ZSBmYWxsYmFjayBjb3B5IGZ1bmN0aW9uCgkgIE9ubHkgdXNlIHRoZSBhbGxvY2F0b3Igb2YgdGhlIGNvcGllZCBtZW1vcnkgd2hlbiB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0CgkgIF9hbGxvYyBmdW5jdGlvbiBvbiBpdC4gT3RoZXJ3aXNlIHdlIHdpbGwgaGF2ZSB0byB1c2UgdGhlIGRlZmF1bHQKCSAgYWxsb2NhdG9yIGZvciB0aGUgY29weS4KCjIwMTMtMDItMTQgMTM6NTU6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGZpeCBsb2NhdGlvbiBpbiB1c2VyJ3MgaG9tZSBkaXJlY3Rvcnkgd2hlcmUgR1N0cmVhbWVyIGxvb2tzIGZvciBwbHVnaW5zCgkgIEl0J3MgYmFzZWQgb24gdGhlIHhkZyB1c2VyIGRhdGEgZGlyIG5vdyBpbiAxLjAuCgoyMDEzLTAxLTI1IDA2OjUwOjI3IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgaW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKCkKCSAgbW90aXZhdGlvbiBjb21lcyBmcm9tOiAvKiBGSVhNRTogd2h5IG5vdCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgKHBhZCk7ICovCgkgIHRoaXMgY29kZSBwYXRoIGlzIHF1aXRlIG5pY2VyLCB3ZSBub3cgb25seSByZXZlcnQgdG8gY3JlYXRpbmcgdGhlIHRlbXBsYXRlCgkgIGlmIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSBmYWlscy4KCSAgd2l0aCB0aGlzIGZvcmssIHdlIGdhaW4gYSBub24tYWxsb2NhdGlvbiBvZiBHc3RDYXBzICp0ZW1wbGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjUwOAoKMjAxMy0wMi0xMyAwMDoyNzoyOCArMDAwMCAgS3J6eXN6dG9mIEtvbm9wa28gPGtyenlzenRvZi5rb25vcGtvQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXNlIGdfdW5peF9zaWduYWxfYWRkKCkgdG8gaGFuZGxlIGtleWJvYXJkIGludGVycnVwdGlvbgoJICBDdXJyZW50IGltcGxlbWVudGF0aW9uIHVzZXMgYSB0cmFkaXRpb25hbCBzaWduYWwgaGFuZGxlciBhbmQgYSAyNTBtcwoJICB0aW1lb3V0IGNhbGxiYWNrIGluIHRoZSBldmVudCBsb29wLiAgQWRkaW5nIGEgR1NvdXJjZSB3aXRoCgkgIGdfdW5peF9zaWduYWxfYWRkKCkgdG8gdGhlIEdNYWluTG9vcCBpcyBhIG11Y2ggbW9yZSBlbGVnYW50IHNvbHV0aW9uLgoJICBUaGUgc2lnbmFsIGhhbmRsZXIgd2l0aCB0aGlzIGFwcHJvYWNoIGNhbiBzZW5kIGEgbWVzc2FnZSB0byB0aGUgYnVzCgkgIGRpcmVjdGx5IHJhdGhlciB0aGFuIHNldCBhIGZsYWcgYXMgYWxsIGRpc3BhdGNoaW5nIGludHJpY2FjaWVzIGFyZSBoYW5kbGVkCgkgIGJ5IEdMaWIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM0ODEKCjIwMTMtMDItMTQgMDA6MDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZmxlc2ggb3VyICdSdW5uaW5nIEdTdHJlYW1lcicgYml0cyBhIGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNjA3CgoyMDEzLTAyLTEzIDIzOjI3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UgYSBsaXR0bGUKCSAgRml4IHVwIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIHJlZ2lzdHJ5LgoJICBNZW50aW9uIG1vcmUgb3B0aW9ucyBmb3IgR1NUX0RFQlVHICh3aWxkY2FyZHMgYW5kCgkgIG5hbWVkIGRlYnVnIGxldmVscykuCgkgIEV4cGxhaW4gd2hhdCB0byBkbyB3aXRoIHRoZSBkb3QgZmlsZXMgdGhhdCBjYW4gYmUKCSAgcHJvZHVjZWQgYnkgc2V0dGluZyBHU1RfREVCVUdfRFVNUF9ET1RfRElSLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNjA3CgoyMDEyLTEyLTI3IDAwOjAzOjA2ICswMTAwICBHZXJ0IE1pY2hhZWwgS3VseWsgPGdrdWx5a0B5YWhvby5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogZml4IGFkdmFuY2VkLW1ldGFkYXRhIGNvZGUgZXhhbXBsZSBpbiBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDc1MQoKMjAxMy0wMi0xMyAxNjo1MjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhY2NlcHQgTlVMTCBlcnJvciBhcmd1bWVudCBpbiBnc3RfbWVzc2FnZV9wYXJzZV97ZXJyb3Isd2FybmluZyxpbmZvfQoJICBBbmQgc2ltcGxpZnkgY29kZSBhIGJpdCB3aGlsZSBhdCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzcwNAoKMjAxMy0wMi0xMyAxNzowMDoyMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBSZW1vdmUgc2V0LXN0eWxlIGJpdG1hc2sgaW50ZXJzZWN0aW9uL3VuaW9uL3N1YnRyYWN0aW9uIGZ1bmN0aW9ucwoJICBTZXQgb3BlcmF0aW9ucyBvbiB0aGUgYml0bWFza3MgZG9uJ3QgbWFrZSBtdWNoIHNlbnNlIGFuZCByZXN1bHQKCSAgaW4gaW52YWxpZCBjYXBzIHdoZW4gdXNlZCBhcyBhIGNoYW5uZWwtbWFzay4gVGhleSBhcmUgbm93IGhhbmRsZWQKCSAgZXhhY3RseSBsaWtlIGludGVnZXJzLgoJICBUaGlzIGZ1bmN0aW9uYWxpdHkgd2FzIG5vdCB1c2VkIGFueXdoZXJlIGV4Y2VwdCBmb3IgdGVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTEzNzAKCjIwMTMtMDItMTMgMTE6MTk6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFRoZSBsYXRlbmN5IHF1ZXJ5IHNob3VsZCByZXR1cm4gVFJVRSBieSBkZWZhdWx0LCBkaWZmZXJlbnQgdG8gb3RoZXIgcXVlcmllcwoJICBGaXhlcyB1bml0IHRlc3QgZmFpbHVyZXMgY2F1c2VkIGJ5IGYzZDI2OGRlN2Y3ZmIxMTYxNzc4YTlhOTVlMGQ1NGQ4Yzg5ZWY2MjYKCjIwMTMtMDItMTMgMTA6NDY6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBzdHJ1Y3R1cmU6IE1ha2Ugc3VyZSB0aGF0IHN1YnNldHMgaGF2ZSBhbGwgZmllbGRzIG9mIHRoZSBzdXBlcnNldAoJICAidmlkZW8veC1oMjY0LHBhcnNlZD0oYm9vbGVhbil0cnVlIiBpcyBub3QgYSBzdXBlcnNldCBvZgoJICAidmlkZW8veC1oMjY0LHN0cmVhbS1mb3JtYXQ9KHN0cmluZylieXRlLXN0cmVhbSxhbGlnbm1lbnQ9KHN0cmluZyluYWwiCgkgIGZvciBleGFtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzMzY1CgoyMDEzLTAyLTEyIDEyOjMyOjIzIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgdXBkYXRlIGV4cG9ydHMgZm9yIGJhc2VwYXJzZSBBUEkgY2hhbmdlcwoKMjAxMy0wMi0xMiAxMjozMTo0MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBkb2MgdHlwbwoKMjAxMy0wMi0xMSAxNjo1MTo0OCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBnc3RfYmFzZV9wYXJzZV9zZXRfdHNfYXRfb2Zmc2V0KCkKCSAgU2V0cyB0aGUgYnVmZmVyIHRpbWVzdGFtcHMgYmFzZWQgb24gbGFzdCBzZWVuIHRpbWVzdGFtcHMgYXQgYQoJICBwYXJ0aWN1bGFyIG9mZnNldCBpbnRvIHRoZSBmcmFtZS4KCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9zZXRfdHNfYXRfb2Zmc2V0KCkKCjIwMTMtMDItMTEgMTY6NDI6NDEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBBZGQgZ3N0X2FkYXB0ZXJfcHJldl9bcGRddHNfYXRfb2Zmc2V0KCkKCSAgT3JpZ2luYWwgcGF0Y2ggd3JpdHRlbiBieSBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+LgoJICBBUEk6IGdzdF9hZGFwdGVyX3ByZXZfcHRzX2F0X29mZnNldCgpCgkgIEFQSTogZ3N0X2FkYXB0ZXJfcHJldl9kdHNfYXRfb2Zmc2V0KCkKCjIwMTMtMDItMDkgMTg6MTQ6MDkgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcXVlcnkgc2luayBlbGVtZW50cyBhbmQgc291cmNlIHBhZHMgb2YgdGhlIGJpbgoJICBnc3RfYmluX3F1ZXJ5KCkgbm93IGZvcndhcmRzIHRoZSBxdWVyeSB0byB0aGUgc291cmNlIHBhZHMgYXMgd2VsbCBpZgoJICBub25lIG9mIHRoZSBzaW5rcyBvZiB0aGUgYmluIHNhdGlzZmllZCB0aGUgcXVlcnkuIFRoaXMgaGVscHMgaW4gdGhlCgkgIGNhc2Ugb2YgRFVSQVRJT04gcXVlcmllcyBkb25lIGEgYmluIGNvbnRhaW5pbmcgYSBzb3VyY2UgZWxlbWVudC4KCSAgRml4ZXMgYnVnIDYzODc0OQoKMjAxMy0wMi0wNyAxMjo0NzowMiArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IExldCBnc3RfYmluX3NlbmRfZXZlbnQoKSBzZW5kIGV2ZW50cyB0byBnaG9zdCBwYWRzIGFzIHdlbGwKCjIwMTMtMDItMTEgMjI6NTI6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGNvbXBhdDoga2lsbCBtb3JlIHVzZXMgb2YgZ3N0X3BhZF9zZXRfY2FwcygpCgoyMDEzLTAyLTEyIDAwOjA4OjUxICsxMTAwICBUaW0gJ21pdGhybycgQW5zZWxsIDxtaXRocm9AbWl0aGlzLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkaW5nIG9mZnNldCB0byBHc3RTZWdtZW50IHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzU4NwoKMjAxMy0wMi0wOSAxMjozMjowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXByb3ZlIFBUUyBpbnRlcnBvbGF0aW5nCgkgIC4uLiBhbmQgdHJhY2tpbmcgb2YgRFRTLiAgRml4ZXMgY2FzZXMgd2hlcmUgUFRTIGlzIGxvY2tlZCBvbiB0byB0aGUKCSAgRFRTIG9mIGFuIGluY29taW5nIGJ1ZmZlciB3aXRoIG5vIFBUUyB3aXRoIGludmFsaWQgZGF0YSwgbGVhZGluZyB0bwoJICBubyBvdXRnb2luZyBQVFMgKHNpbmNlIGl0IGlzIG5vdCBhbGxvd2VkIHNtYWxsZXIgdGhhbiBEVFMpLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAyLTA4IDIxOjI4OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBwb3J0aW5nIGRldGFpbHMKCjIwMTMtMDItMDggMjE6MjE6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBlcnJvciBoYW5kbGluZyBmb3IgYmluZGluZyBjb250cm9sc291cmNlcyB0byB3cm9uZyBwcm9wZXJ0aWVzCgkgIEFkZCB3YXJuaW5nIGlmIHByb3BlcnR5IGlzIG5vdCBzdWl0YWJsZSBmb3IgY29udHJvbGxpbmcuIFdoZW4gYWRkaW5nIGEgY29udHJvbC0KCSAgYmluZGluZyBjaGVjayB0aGF0IHBzcGVjIT1OVUxMLgoKMjAxMy0wMi0wNyAxMzowODo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSBvbGQgZG9jcyBhYm91dCBpdGVyYXRvcnMKCjIwMTMtMDItMDcgMTI6NTI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIG9sZCBjb21tZW50CgkgIFRoZSBpdGVyYXRvcnMgbm93IHJldHVybiBhIEdWYWx1ZSBhbmQgbm90IHRoZSBvYmplY3QgZGlyZWN0bHkgYW55bW9yZS4KCjIwMTMtMDItMDcgMTI6NTA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVzZXQgR1ZhbHVlIGZyb20gaXRlcmF0b3IgYWZ0ZXIgdXNhZ2UKCjIwMTMtMDItMDUgMTc6MTU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIHRlc3RzOiBhZGQgYmFzZXNpbmsgdGVzdAoKMjAxMy0wMi0wNSAxNzoxOTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBzeW5jIG9mIEVPUyBhZnRlciBpdGVtIHdpdGhvdXQgZHVyYXRpb24KCSAgQWZ0ZXIgYSBidWZmZXIgb3IgR0FQIHdpdGhvdXQgZHVyYXRpb24sIGFuIEVPUyBldmVudCBzaG91bGQgYmUgcmVuZGVyZWQKCSAgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIHRoZSBzZWdtZW50LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyODY4CgoyMDEzLTAyLTAyIDExOjU1OjUyIC0wODAwICBOYXRlIEJvZ2Rhbm93aWN6IDxuYXRlemJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdHBpcGVsaW5lOiBmaXggZmFpbGVkIGFzc2VydGlvbiBjYXVzZWQgYnkgc2Vla2luZyBwaXBlbGluZSB3aXRoIE5VTEwgY2xvY2sKCSAgVW5kZXIgY2VydGFpbiBHU1RfU1RBVEVfQ0hBTkdFRF9QQVVTRURfVE9fUExBWUlORyB0cmFuc2l0aW9ucywgYSBwaXBlbGluZSB3aXRoCgkgIGEgTlVMTCBjbG9jayB3aWxsIGZhaWwgYW4gYXNzZXJ0aW9uIGR1ZSB0byBhbiB1bmNoZWNrZWQgY2FsbCB0byBnc3Rfb2JqZWN0X3JlZigpLgoJICBUaGlzIGlzIGZpeGVkIGJ5IHNpbXBseSBhZGRpbmcgYSBjaGVjayBhbmQgb25seSByZWYtaW5nIGlmIHRoZSBjbG9jayBpcyBub3QgTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzA2NQoKMjAxMy0wMi0wNSAxMzo0NDowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBjaGFuZ2UgYXJndW1lbnQgbmFtZSBmb3IgZG9jcwoKMjAxMy0wMi0wNCAxMDozMDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBvcmRlciBvZiBjYXBzIG9uIGFuIHVubmVnb3RpYXRlZCBsaW5rCgkgIGhlYWRsYWJlbCBpcyB0aGUgc2lua19wYWQgKHdoZXJlIHRoZSBsaW5rIHBvaW50cyB0bykgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTMtMDItMDEgMjE6NTk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGRvY3M6IHVwZGF0ZSB0aGUgY29udHJvbGxlciBkb2NzCgkgIEFkZCB0aGUgY29udHJvbCBiaW5kaW5ncyB0byB0aGUgZG9jcy4gQWRkIGEgbGl0dGxlIG1vcmUgZGV0YWlsLgoKMjAxMy0wMi0wMSAyMTo1Nzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogYSBmZXcgdXBkYXRlcyBmb3IgdGhlIHBvcnRpbmcgZ3VpZGUKCjIwMTMtMDEtMzAgMTM6MDY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBjYW4ndCBwYXNzIGEgR1R5cGUgdGhyb3VnaCBHSU5UX1RPX1BPSU5URVIKCSAgVXNlIEdTSVpFX1RPX1BPSU5URVIgaW5zdGVhZC4gc2l6ZW9mKEdUeXBlKSBtYXkgYmUgbGFyZ2VyCgkgIHRoYW4gc2l6ZW9mKGd1bG9uZykgYW5kIHNpemVvZihpbnQpLCBzbyB0aGUgY2FzdHMgbWF5CgkgIGNob3Agb2ZmIHNvbWUgYml0cyBmcm9tIHRoZSBHVHlwZSB2YWx1ZSBvbiBzb21lIGFyY2hpdGVjdHVyZXMuCgoyMDEzLTAxLTI5IDEyOjQwOjUyICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogdW5pdCB0ZXN0IHRvIHRyaWdnZXIgdGhlIHF1ZXVlL2ZsdXNoaW5nIHJhY2UgY29uZGl0aW9uIGJ1ZyBmb3IgYWxsb2NhdGlvbiBxdWVyaWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSBxdWVyeSBmcm9tIHF1ZXVlIGlmIHF1ZXVlIGlzIGZsdXNoaW5nCgkgIFdoZW4gcXVlcnlpbmcgYSBxdWV1ZSB0aGF0IGlzIGZsdXNoaW5nIHdlIGVuZCB1cCBhZGRpbmcKCSAgYSBxdWVyeSB0byB0aGUgcXVldWVhcnJheSB3aXRob3V0IHRha2luZyBhIHJlZmVyZW5jZSB0bwoJICB0aGF0IHF1ZXJ5IChiZWNhdXNlIHRoZSBub3JtYWwgZnVuY3Rpb25hbGl0eSBpcyB0byBibG9jawoJICB1bnRpbCB0aGF0IHF1ZXJ5IGlzIGRvbmUgYW5kIGRpc2NhcmRlZCBmcm9tIHRoZSBxdWV1ZSkuCgkgIFRoaXMgbGF0ZXIgY2F1c2VzIHByb2JsZW0gaWYgdGhlIHF1ZXJ5IGlzIHVucmVmZmVkIG91dHNpZGUKCSAgb2YgdGhlIHF1ZXVlIGJlZm9yZSB3ZSBkaXNjYXJkIHRoZSBxdWV1ZS4gVGhlcmUgaXMgYSBjaGVjawoJICB0byBhdm9pZCB1bnJlZmZpbmcgYW55IGxpbmdlcmluZyBxdWVyeS1vYmplY3RzLCBidXQgc2luY2UKCSAgdGhlIHF1ZXJ5IGhhcyBiZWVuIGRlbGV0ZWQgdGhhdCBjaGVjayBmYWlscy4KCSAgVGhpcyBjb21taXQgZGVwZW5kcyBvbiBvdGhlciBmaXhlcyBkb25lIHRvIGdzdF9xdWV1ZV9hcnJheV9maW5kKCkKCSAgYW5kIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0zMCAxMTo1NToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogbWFrZSBfZmluZCgpIGZpbmQgdGhlIHZhbHVlIGlmIG5vIGNvbXBhcmUgZnVuY3Rpb24gaXMgcHJvdmlkZWQKCSAgQWxsb3cgTlVMTCBhcyBjb21wYXJlIGZ1bmN0aW9uIGZvciBkaXJlY3QgdmFsdWUgbG9va3VwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTMwIDExOjM0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogY2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKSB0b28KCSAgV2FzIGFkZGVkIHdoZW4gdGhlIEFQSSB3YXMgbWFkZSBwdWJsaWMgaW4gZ2l0IG1hc3Rlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOSAyMjo1NDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogb25lIG1vcmUgdGVzdCBmb3IgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCSAgQ29uZmxpY3RzOgoJICB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYwoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBnc3RfcXVldWVfYXJyYXlfZmluZCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYwoKMjAxMy0wMS0yOSAxNjo1NToyMyArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJICBkb2NzOiBhbGlnbiB0aGUgY29tbWVudHMgY29ycmVjdGx5IHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIGJpdHJlYWRlciBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI4MDkKCjIwMTMtMDEtMjkgMDk6NDU6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIHJlbmVnb3RpYXRpb24gY29ycmVjdGx5CgkgIERvbid0IHJldHJ5IHRvIG5lZ290aWF0ZSB3aGVuIHdlIGZhaWwgdG8gbmVnb3RpYXRlIGJ1dCBpbnN0ZWFkIHByb2R1Y2UgYQoJICBOT1RfTkVHT1RJQVRFRCBlcnJvci4gV2Ugb25seSB3YW50IHRvIHJldHJ5IG5lZ290aWF0aW9uIGlmIHRoZSByZXN1bHQgZnJvbQoJICBnc3RfcGFkX3B1c2goKSByZXR1cm5lZCBOT1RfTkVHT1RJQVRFRC4KCjIwMTMtMDEtMjggMjA6NDE6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE5NDIyOTMgdG8gMmRlMjIxYwoKMjAxMy0wMS0yOCAxMzowNTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICBleGFtcGxlOiBmaXggRklYTUUgaW4gZXhhbXBsZQoJICBVc2Ugc2V0cHJpb3JpdHkgdG8gcmFpc2UgcHJpb3JpdHkKCjIwMTMtMDEtMjcgMDY6MjA6NTEgLTA4MDAgIFNpbW9uIEZlbHRtYW4gPHNmZWx0bWFuQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGctaTogYWRkIGJ1aWx0IGVudW10eXBlcyBoZWFkZXJzIGFuZCBzb3VyY2VzIHRvIGdpciBjcmVhdGlvbgoJICBBZGQgZ3N0ZW51bXR5cGVzLmgvYyBmb3IgaW5jbHVzaW9uIHdpdGggZy1pci1zY2FubmVyLiBUaGlzIGZpeGVzCgkgIHByb2JsZW1zIHdoZXJlIGludHJvc3BlY3Rpb24gYmFzZWQgYmluZGluZ3MgdGhpbmsgR3N0U3RhdGUgaXMKCSAgdHlwZWxlc3MgZHVlIHRvIHRoZSBHVHlwZSBub3QgYmVpbmcgaW5jbHVkZWQgYXMgYW4gYW5ub3RhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTE4NQoKMjAxMy0wMS0yNyAwOToxODowMCArMDUzMCAgQi5QcmF0aGliaGEgPHByYXRoaWJoYWJAY2RhYy5pbj4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgdGVzdHM6IHVzZSBnX3RpbWVvdXRfYWRkX3NlY29uZHMgaW4gcGlwZWxpbmUgc3RyZXNzIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjYxMgoKMjAxMy0wMS0yNCAxNzo1MDozMSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFB1dCB0aGUgcmlnaHQgcGF0aCBmb3IgdGhlIGdzdHR0ZXN0Y2xvY2sgaW5jbHVkZSBmaWxlCgoyMDEzLTAxLTI0IDE1OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHJlbmFtZSB2YXJpYWJsZQoJICBUaGUgZmlsdGVyIHZhcmlhYmxlIHdhcyB1c2VkIHR3aWNlIGZvciBkaWZmZXJlbnQgdGhpbmdzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNDMyCgoyMDEzLTAxLTE3IDIxOjM1OjQ4IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RfcGFkX2NoZWNrX3JlY29uZmlndXJlOiBvbmx5IHJlbW92ZSBmbGFnIGlmIHNldC4KCSAgdGhlIGNvZGUgaWZlZCBhIGRlYnVnIHN0YXRlbWVudCwgdGhhdCBjYW4ndCBiZSByaWdodC4gYW55d2F5LCB0aGUgd2F5IGl0IGlzLAoJICB3ZSBkb24ndCByZWFsbHkgbmVlZCB0aGF0IGJyYW5jaCwgYXMgd2Ugc2V0IHRoZSBmbGFnIHRvIHVuc2V0IG9ubHkgaWYgc2V0CgkgIChhbmQgdGhhdCBjYW4ndCBmYWlsKSBoZW5jZSB0aGUgZW5kIHJlc3VsdCBpcyBhbHdheXMgdG8gdW5zZXQgdGhlIGZsYWcuCgkgIFNpZ25lZC1vZmYtYnk6IE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE5ODUKCjIwMTMtMDEtMTcgMjE6NDM6MjUgLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc2V0IE5FRURfUkVDT05GSUdVUkUgZmxhZyBpZiBuZWdvdGlhdGUgZmFpbHMKCSAgV2hlbiBuZWdvdGlhdGlvbiBmYWlscywgbWFyayB0aGUgcGFkIGFzIG5lZWRpbmcgYSByZWNvbmZpZ3VyZSBhZ2FpbiBzbwoJICB0aGF0IGl0IGdldHMgcGlja2VkIHVwIGFnYWluIG5leHQgdGltZS4KCSAgU2lnbmVkLW9mZi1ieTogTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTk4NgoKMjAxMy0wMS0xOSAxMjo1MTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9nZXRfc3RyZWFtX2lkKCkgdXRpbGl0eSBmdW5jdGlvbgoJICBBUEk6IGdzdF9wYWRfZ2V0X3N0cmVhbV9pZCgpCgoyMDEzLTAxLTE4IDE2OjA1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1pbm9yIGFkZGl0aW9uIHRvIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIwMTUKCjIwMTMtMDEtMTggMTY6MDE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogdXBkYXRlIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlIGZvciBuZXcgZGVidWcgbGV2ZWxzCgkgIFRoZXJlIGFyZSBtb3JlIGRlYnVnIGxldmVscyB0aGVzZSBkYXlzLCBub3Qgb25seSAwLTUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIwMTUKCjIwMTMtMDEtMTcgMDA6Mzg6MTQgLTA2MDAgIERhbmllbCBEw61heiA8eW9zb3lAZGFuaWVsZGlhei5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGZpeCBBQkkgY2hlY2sgc3RydWN0IHNpemVzIGZvciBBUk0KCSAgYW5kIHJlLWVuYWJsZSBBQkkgY2hlY2sgZm9yIEFSTS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTgyOAoKMjAxMy0wMS0xNiAxNzoyNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogYWRkIGEgbm90ZSB0byB0aGUgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBkb2NzIGFib3V0IGJ1ZmZlciBmbGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMTEwCgoyMDEzLTAxLTE2IDExOjI5OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlc3RzOiBkaXNhYmxlIEFCSSBjaGVja3MgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgdGhlIHN0cnVjdCBzaXplcyBhcmUgbm90IHVwLXRvLWRhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTgyOAoKMjAxMy0wMS0xNSAxNTowMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJhMDY4Y2UgdG8gYTk0MjI5MwoKMjAxMy0wMS0xNSAxMzo0NzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBHU1RfKl8xXzAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGV2ZXJ5d2hlcmUKCSAgVGhlIF8xXzAgc3VmZml4ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZQoJICBub24tc3VmZml4ZWQgb25lcywgc28gaWYgd2UncmUgaW4gYW4gZW52aXJvbm1lbnQgdGhhdAoJICBzZXRzIHRoZSBfMV8wIHN1ZmZpeGVkIG9uZXMsIHN1Y2ggYXMgamhidWlsZCwgd2UgbmVlZAoJICB0byBzZXQgdGhvc2UgdG8gbWFrZSBzdXJlIG91cnMgYWN0dWFsbHkgYWx3YXlzIGdldAoJICB1c2VkLgoKMjAxMy0wMS0xNSAxMzo0NzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGVkIHN0cmluZwoKMjAxMy0wMS0xNSAwOTo0MjoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGFkZCBhbGxvdy1ub25lIGFubm90YXRpb24gZm9yIGdzdF9waXBlbGluZV9uZXcoKSdzIG5hbWUgcHJvcGVydHkKCjIwMTMtMDEtMTQgMjA6MDI6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgR3N0QmFzZVBhcnNlIGRvY3MgZml4ZXMKCSAgRXhwb3NlIGRvY3MgZm9yIGdzdF9iYXNlX3BhcnNlX2ZpbmlzaF9mcmFtZSgpLgoKMjAxMy0wMS0xNCAxNzowMToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xNCAxNzowMDo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTQgMTc6MDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTEzIDE0OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdmZ1bmNzIHRvIGludGVyY2VwdCBxdWVyaWVzCgkgIFVzZWZ1bCBmb3IgdmlkZW8gcGFyc2VzIHRoYXQgd2FudCB0byBhdHRhY2ggbWF0dGVyIG9yCgkgIGZpbmQgb3V0IGlmIGRvd25zdHJlYW0gc3VwcG9ydHMgY2VydGFpbiBtZXRhcy4KCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6c3JjX3F1ZXJ5KCkKCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6c2lua19xdWVyeSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0NzUKCjIwMTMtMDEtMTIgMjA6NTQ6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB1cCBuYW1lIG9mIGRlZmF1bHQgZXZlbnQgdmZ1bmNzCgoyMDEzLTAxLTEwIDExOjM0OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nOiBoaWRlIG9uZSB1bnVzZWQgdHlwZWRlZgoJICBUaGlzIGlzIG5vdCB1c2VkIGludGVybmFsbHkuCgoyMDEzLTAxLTEwIDExOjMzOjQyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGRvY3M6IGltcHJvdmUgYXBpIGRvY3MgZm9yIGNvbnRyb2xzb3VyY2UgYW5kIC1iaW5kaW5nCgoyMDEzLTAxLTA1IDE2OjMwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBnaG9zdHBhZCB1bml0IHRlc3QKCSAgVGhlIGNyZWF0ZWQgcGFkIGlzIG5ldmVyIHVzZWQgYW5kIG92ZXJ3cml0dGVuIHdpdGgKCSAgYW5vdGhlciBuZXdseS1jcmVhdGVkIHBhZCBhIGZldyBsaW5lcyBiZWxvdy4KCjIwMTMtMDEtMDQgMTI6Mjc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IG1pbm9yIHN5c3RlbXNjbG9jayBkb2MgZml4CgoyMDEzLTAxLTAzIDEwOjE2OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEluaXRpYWxpemUgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAxMi0xMi0zMCAyMzozNTo0OCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogcmV0dXJuIGdzc2l6ZSBmcm9tIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuXyogZnVuY3Rpb25zCgkgIEFzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBpcyAtMSB3aGVuIHRoZSBtYXRjaCBpcyBub3QgZm91bmQKCjIwMTMtMDEtMDEgMTA6MjM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2hlY2sgaWYgYnVmZmVycyBhcmUgdG9vIGxhdGUgYmVmb3JlIGNhbGxpbmcgcHJlcGFyZS9wcmVwYXJlX2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDkzNgoKMjAxMi0xMi0zMCAyMzo0ODo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZXBsYWNlIGRlcHJlY2F0ZWQgQU1fQ09ORklHX0hFQURFUiB3aXRoIEFDX0NPTkZJR19IRUFERVJTCgkgIEFNX0NPTkZJR19IRUFERVIgaGFzIGJlZW4gcmVtb3ZlZCBpbiB0aGUganVzdC1yZWxlYXNlZCBhdXRvbWFrZSAxLjEzOgoJICBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2F1dG9tYWtlLzIwMTItMTIvbXNnMDAwMzguaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwODgxCgoyMDEyLTEyLTIyIDE2OjUwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBjYXBzLCBzdHJ1Y3R1cmUsICB0YWdsaXN0OiBtaWNyby1vcHRpbWlzYXRpb25zCgkgIEF2b2lkIHNvbWUgdW5uZWNlc3NhcnkgR1ZhbHVlIGNvcHlpbmcgYnkgbWFraW5nIHVzZSBvZgoJICBnc3Rfc3RydWN0dXJlX2lkX3Rha2VfdmFsdWUoKSB3aGVyZSBwb3NzaWJsZS4KCjIwMTItMTItMjIgMTY6Mjk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHNvbWUgbWljcm8tb3B0aW1pc2F0aW9ucwoJICBBdm9pZCB1bm5lY2Vzc2FyeSB2YWx1ZSBjb3B5aW5nLCBhbmQgdW5uZWNlc3NhcnkgaW5pdC91bnNldAoJICBjeWNsZXMgd2hpY2ggYWxsIGdvIHRocm91Z2ggdGhlIHZhbHVlIHRhYmxlLiBUaGVyZSdzIGEgYnVuY2gKCSAgb2YgcGxhY2VzIHdoZXJlIHdlIGNvcHkgYSB2YWx1ZSBhbmQgdGhlbiB1bnNldCBpdCBpbiB0aGUgbmV4dAoJICBsaW5lLCBpbnN0ZWFkIG9mIGp1c3QgdGFraW5nIG92ZXIgdGhlIHNvdXJjZSB2YWx1ZS4KCjIwMTItMTItMjIgMTY6NTM6NDcgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogZml4IGxvY2F0aW9uIG9mIHJlcG9zaXRvcnkgd2l0aCBzc2gKCjIwMTItMTItMjEgMTY6MzY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSAgYmluOiBhZGQgZmxhZyB0byBkaXNhYmxlIHJlc3luYyBzdGF0ZSBjaGFuZ2UKCSAgQWRkIGEgR1NUX0JJTl9GTEFHX05PX1JFU1lOQyB0aGF0IGRpc2FibGVzIGEgcmVzeW5jIHdoZW4gYW4gZWxlbWVudCBpcyBhZGRlZCwKCSAgcmVtb3ZlZCBvciBsaW5rZWQgaW4gdGhlIGJpbi4gVGhpcyBpcyBpbnRlcmVzdGluZyBmb3IgY29tcGxleCBiaW5zIHRoYXQKCSAgZHluYW1pY2FsbHkgYWRkIGVsZW1lbnRzIHRvIHRoZW1zZWx2ZXMgYW5kIHdhbnQgdG8gbWFuYWdlIHRoZSBzdGF0ZSBvZiB0aG9zZQoJICBlbGVtZW50cyB3aXRob3V0IGludGVyZmVyZW5jZSBmcm9tIHJlc3luY3MuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNDIwCgoyMDEyLTEyLTIxIDEwOjA5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgc3luY2hyb25pemF0aW9uIGRvY3VtZW50IGEgbGl0dGxlCgoyMDEyLTEyLTIwIDE2OjQwOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBhZGQgT1RIRVIgY2xvY2sgdHlwZQoJICBBZGQgYW4gT1RIRVIgY2xvY2sgdHlwZSBzbyB0aGF0IHN1YmNsYXNzZXMgYXJlIGFibGUgdG8gbWFyayB0aGVtc2VsdmVzIGFzCgkgIHVzaW5nIHNvbWUgb3RoZXIgY2xvY2sgc291cmNlIHRoYW4gdGhlIHJlYWx0aW1lIG9yIG1vbm90b25pYyBjbG9jay4KCjIwMTItMTItMjAgMTM6MzE6MDIgKzAxMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua29AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY29ycmVjdCBvdmVycnVuIGhhbmRsaW5nCgkgIFRoZSBjb250cm9sIG9mIHdoZXRlaGVyIGEgU2luZ2xlUXVldWUgaXMgZnVsbCBpcyBub3QgY29ycmVjdC4KCSAgUmV3cm90ZSBzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYigpIHNvIGl0IGNoZWNrcyB0aGUgY29ycmVjdCB2YXJpYWJsZXMKCSAgd2hlbiBjaGVja2luZyBpZiB0aGUgcXVldWUgaGFzIHJlYWNoZWQgdGhlIGhhcmQgbGltaXRzLCBhbmQgdG8KCSAgaW5jcmVhc2UgdGhlIG1heCBidWZmZXIgbGltaXQgb25jZSBmb3IgZWFjaCBjYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTU3CgoyMDEyLTEyLTIwIDExOjU5OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpbXBsZW1lbnQgYnVmZmVyaW5nIHF1ZXJ5IGZvciBhbGwgbW9kZXMKCSAgQWxzbyBpbXBsZW1lbnQgdGhlIGJ1ZmZlcmluZyBxdWVyeSBmb3IgU1RSRUFNIG1vZGUuCgoyMDEyLTEyLTIwIDExOjMwOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvciBidWZmZXJpbmcgcGVyY2VudCBhbmQgc3RhdHMKCSAgTWFrZSBtZXRob2RzIHRvIGdldCB0aGUgY3VycmVudCBidWZmZXJpbmcgcGVyY2VudCBhbmQgdGhlIHN0YXRzLiBXZSB3aWxsIHVzZQoJICB0aGlzIGluIHRoZSBxdWVyeSBsYXRlci4KCjIwMTItMTItMTMgMTM6NDc6MjkgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggaW52YWxpZCBvdXRwdXQgdGltZXN0YW1wcyBpbiBzb21lIGNhc2VzCgoyMDEyLTEyLTE0IDE1OjIyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBORVdTRUdNRU5UIC0+IFNFR01FTlQKCjIwMTItMTItMTQgMTQ6MDM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MKCSAgVXBkYXRlIGFyZ3Mvc2lnbmFscyBldGMuCgoyMDEyLTEyLTE0IDExOjA5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGFkZCBkZWJ1ZyBjYXRlZ29yeQoJICBBZGRpbmcgYSBkZWJ1ZyBjYXRlZ29yeSBpcyBuaWNlciB0aGFuIGxvZ2dpbmcgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkKCjIwMTItMTItMTQgMTE6MDg6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBpbXByb3ZlIGRlYnVnCgoyMDEyLTEyLTEzIDE0OjQ4OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGNhbGwgX3N0b3Agd2hlbiBzdGFydCBmYWlsZWQKCSAgV2hlbiB3ZSBmYWlsZWQgdG8gY29tcGxldGUgdGhlIHN0YXJ0LCBjYWxsIHN0b3AgYWdhaW4uIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGFsbAoJICBzdWNjZXNzZnVsbCBjYWxscyB0byBfc3RhcnQgYXJlIHBhaXJlZCB3aXRoIGEgX3N0b3AuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4NDUKCjIwMTItMTItMTIgMTY6NDQ6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZS5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svY2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9uZXQuaDoKCSAgbGliczogVXNlIGZvby9mb28uaCBhcyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgY29uc2lzdGVudGx5IGV2ZXJ5d2hlcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODc4NQoKMjAxMi0xMi0xMSAxNjo0NjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcGFzcyBEVFMgYW5kIFBUUyB0byBoYW5kbGVfYnVmZmVyCgkgIFRoaXMgbWFrZXMgaXQgaGFuZGxlIHRoZSB0aW1lc3RhbXBzIGNvcnJlY3RseSBhbmQgYXZvaWRzIHVzaW5nIGEgd3JvbmcgdGltZXN0YW1wCgkgIGZvciB0aGUgb3V0cHV0LgoKMjAxMi0xMi0xMSAxNjo0NjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wcm92ZSBkZWJ1ZwoJICBBZGQgcHRzIGFuZCBkdHMgaW4gZGVidWcgbG9nCgoyMDEyLTExLTAzIDE2OjU5OjM5ICswMDAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVwb3J0IGV4ZWN1dGlvbiB0aW1lIGluIEdTVF9USU1FX0ZPUk1BVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NTIzCgoyMDEyLTEyLTEwIDExOjU1OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHByb3RlY3QgYWdhaW5zdCBOVUxMIGZpbGVuYW1lIGluIGRlYnVnCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5OTQ4CgoyMDEyLTEyLTA2IDA5OjQ4OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogY2xhcmlmeSBkb2NzCgoyMDEyLTEyLTA1IDE0OjU2OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvY3MKCjIwMTItMTItMDUgMTQ6MjQ6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IDAuMTAgZG9jcyB0byBtYWtlIG1vcmUgc2Vuc2UgaW4gMS4wCgoyMDEyLTEyLTA1IDE0OjAzOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBkb2NzIGZvciAxLjAKCSAgQWRkIHBhcmVudCB0byBjaGFpbiBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHVzZSBpdC4KCjIwMTItMTEtMzAgMTA6NDE6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgcmVzZXQtdGltZSB0eXBlIHN0cmluZwoKMjAxMi0xMS0zMCAxMDo0MTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW1vdmUgc29tZSBjYXN0cwoKMjAxMi0xMS0yOCAxODowODo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGFkZCBsaW5rIHRvIHB5dGhvbiBwb3J0aW5nIGRvYyBhbmQgYXBwIGRldiBtYW51YWwgdG8gcG9ydGluZy10by0xLjAudHh0CgoyMDEyLTExLTI4IDE3OjM2OjU1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IFVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcKCSAgSW4gb3JkZXIgZm9yIDEueCBhbmQgMS4oeCsxKSB2ZXJzaW9ucyB0byBub3QgaW52YWRlIG9uIGVhY2ggb3RoZXIKCSAgd2UgbmVlZCB0byBoYXZlIGRpZmZlcmVudCBsaWIgdmVyc2lvbnMuCgkgIFNvIHdlIG5lZWQgYSBjb25zaXN0ZW50IGFuZCBwcmVkaWN0YWJsZSBzY2hlbWU6CgkgIGxpYnJhcnkgdmVyc2lvbiBudW1iZXIgPSBNSU5PUiAqIDEwMCArIE1JQ1JPCgkgIEV4OgoJICAxLjAuMCA9PiAwIChkdWgpCgkgIDEuMC4zID0+IDMKCSAgMS4xLjAgPT4gMTAwCgkgIDEuMS4xID0+IDEwMQoJICAxLjIuMCA9PiAxMjAKCSAgMS4xMC41ID0+IDEwMDUKCSAgLi4uLgoKMjAxMi0xMS0yNiAxODoxNjo1MiAtMDUwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LWVkaXRpbmctc2VydmljZXMgdG8gUEtHX0NPTkZJR19QQVRICgoyMDEyLTExLTI2IDAwOjUxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogY2xlYW4gdXAgc2VjdGlvbnMgZmlsZSBmb3IgcGFkIHByb2JlIGRlZmluZXMgdGhhdCBtb3ZlZCBpbnRvIGVudW0KCjIwMTItMTEtMjYgMDA6MjA6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgZ3N0OiBkb24ndCByZXF1aXJlIGd0aHJlYWQtMi4wCgkgIFdlIGRvbid0IG5lZWQgdG8gbGluayB0byBndGhyZWFkLTIuMCBhbnkgbG9uZ2VyLCBzaW5jZSBhbGwKCSAgdGhlIG5vcm1hbCB0aHJlYWQtcmVsYXRlZCBzdHVmZiBpcyBpbiBHTGliIHByb3BlciwgYW5kIHdlCgkgIGRvbid0IHVzZSBnX3RocmVhZF9pbml0KCkgYW55IG1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODkwNDMKCjIwMTItMTEtMjUgMjM6NDI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGdzdHJlYW1lci0xLjAucGM6IG1vdmUgZ21vZHVsZS1uby1leHBvcnQtMi4wIGRlcGVuZGVuY3kgdG8gUmVxdWlyZXMucHJpdmF0ZQoJICBVc2VycyBvZiBHU3RyZWFtZXIgYXJlIG5vdCBnZW5lcmFsbHkgZXhwZWN0ZWQgdG8gdXNlIHRoZSBHTW9kdWxlIEFQSQoJICBkaXJlY3RseS4gc28gZG9uJ3QgZm9yY2UgdGhlbSBhbGwgdG8gbGluayBhZ2FpbnN0IGl0LgoJICBXaGlsZSB3ZSdyZSBhdCBpdCwgbm8gbmVlZCB0byBkZWZpbmUgdGhpcyB2aWEgY29uZmlndXJlLmFjIHJlYWxseSwganVzdAoJICBwdXQgdGhlIGRlcGVuZGVuY2llcyBkaXJlY3RseSBpbnRvIHRoZSAucGMuaW4gZmlsZS4KCjIwMTItMTEtMjUgMjM6MjY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiByZW1vdmUgYWxsIG1lbnRpb24gb2YgZ190aHJlYWRfaW5pdCgpCgkgIEl0J3MgYmVlbiBkZXByZWNhdGVkIHNpbmNlIEdMaWIgMi4zMiBhbmQgaXNuJ3QgbmVlZGVkIGFueQoJICBsb25nZXIuCgoyMDEyLTExLTI1IDE4OjExOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiByZWR1Y2UgZGVidWcgbG9nIHNwYW0gYSBiaXQKCSAgTG9nIGxvY2tpbmcvdW5sb2NraW5nIHdpdGggVFJBQ0UgZGVidWcgbGV2ZWwuCgoyMDEyLTExLTIzIDIxOjA5OjQ1ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGFubm90YXRpb24gZm9yIGdzdF9ldmVudF9wYXJzZV9zdHJlYW1fc3RhcnQKCjIwMTItMTEtMjMgMTM6MzY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZG9jdW1lbnQgbW9yZSBwYWQgcHJvYmUgdmFsdWVzCgoyMDEyLTExLTIzIDEzOjM0OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkgIHRlc3RjbG9jazogcmVtb3ZlIHVubmVjZXNzYXJ5IGluY2x1ZGUKCjIwMTItMTEtMjMgMTM6MzI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgdGVzdHM6IGZpeCBjbG9jayB1bml0IHRlc3QgYnVpbGQgZmFpbHVyZSBhZnRlciBoZWFkZXIgY2hhbmdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4Nzg1CgoyMDEyLTExLTIzIDEyOjQ3OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGRvbid0IHVzZSBwYXJlbnRoZXNpcyBmb3IgT1JlZCBwYWQgcHJvYmUgZmxhZyBlbnVtcwoJICBnbGliLW1rZW51bSBkb2Vzbid0IGxpa2UgdGhlbSBmb3Igc29tZSByZWFzb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg4MDQKCjIwMTItMTEtMjMgMTA6NTg6MjUgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogUHV0IGFsbCBvZiB0aGUgcHJvYmUgdHlwZXMgaW4gdGhlIGVudW0gc28gdGhleSB3b3JrIHdpdGggYmluZGluZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODgwNAoKMjAxMi0xMS0yMCAyMzoxMzozMyAtMDgwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2UuaDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Lmg6CgkgIGxpYnM6IEFkZCBtaXNzaW5nIHNpbmdsZSBpbmNsdWRlIGhlYWRlcnMgYW5kIHVzZSB0aGVtIGluIEdJUnMKCjIwMTItMTEtMjAgMTY6MzQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0czogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgdGhyZWFkIEFQSQoKMjAxMi0xMS0yMCAxNjoxOTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBzb21lIGRlYnVnCgoyMDEyLTExLTIwIDE2OjE5OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVzZXQgU1RBUlRfVElNRSB3aGVuIG5lZWRlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1ODcwCgoyMDEyLTExLTIwIDE1OjM3OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogTWFrZSBHLUkgaGFwcHkgYnkgaGlkaW5nIGdzdF9nX3RocmVhZF9nZXRfdHlwZSgpCgoyMDEyLTExLTIwIDE1OjA3OjM3ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgUmVtb3ZlIHhmaWcgZnJvbSBzcGVjIGZpbGUKCjIwMTItMTEtMjAgMTU6MDY6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBVc2UgdGhlIEdMaWIgR1R5cGUgZm9yIEdUaHJlYWQgaWYgY29tcGlsaW5nIGFnYWluc3QgR0xpYiAyLjM1LjMgb3IgbmV3ZXIKCjIwMTItMTEtMjAgMTI6NTY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IERvbid0IHNldCB0aGUgbG9jYWxlIGluIGdzdF9pbml0KCkKCSAgVGhlIGZ1bmN0aW9uIGluaXRfcHJlKCkgaW4gZ3N0cmVhbWVyL2dzdC9nc3QuYyBjYWxscyBzZXRsb2NhbGUoTENfQUxMLCAiIiksCgkgIHdoaWNoIHNldHMgdGhlIGxvY2FsZSB0byB0aGUgdmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgZW52aXJvbm1lbnQuICBUaGlzIGlzCgkgIHdyb25nIGZvciB0d28gcmVhc29uczoKCSAgMS4gSXQgaXMgYWJzb2x1dGVseSBub3QgdGhlIHRhc2sgb2YgYSBsaWJyYXJ5IHRvIGRlY2lkZSBvbiB0aGUgY29ycmVjdCBsb2NhbGUKCSAgZm9yIGEgcHJvZ3JhbS4gIFNvbWUgcHJvZ3JhbXMgY2hhbmdlIHRoZSBsb2NhbGUgZm9yIHZhcmlvdXMgKGdvb2Qgb3IgYmFkKQoJICByZWFzb25zLCBhbmQgbGlicmFyaWVzIHNob3VsZCByZXNwZWN0IHRoYXQuICBQcm9ncmFtcyB3aGVyZSBHU3RyZWFtZXIncwoJICBvdmVyd3JpdGluZyBvZiB0aGUgbG9jYWxlIGNhdXNlcyBidWdzIGluY2x1ZGUgRW1hY3MgWzEsIDJdLCBTdWJsaW1lIFRleHQgWzNdLAoJICBhbmQgTHVhIFs0XS4KCSAgWzFdIGh0dHA6Ly9kZWJidWdzLmdudS5vcmcvY2dpL2J1Z3JlcG9ydC5jZ2k/YnVnPTEyMzkyCgkgIFsyXSBodHRwOi8vYnVnemlsbGEubm92ZWxsLmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NDI2CgkgIFszXSBodHRwOi8vd3d3LnN1YmxpbWV0ZXh0LmNvbS9mb3J1bS92aWV3dG9waWMucGhwP2Y9MyZ0PTg1NDMKCSAgWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXZvdWsvbGdpL2lzc3Vlcy8xOQoJICBOb3RlIHRoYXQgc2V0dGluZyB0aGUgbG9jYWxlIGNhbiBjYXVzZSBwcm9ibGVtcyBmb3IgcHJvZ3JhbXMgdGhhdCBhcmUgbm90IGV2ZW4KCSAgbGlua2VkIGFnYWluc3QgR1N0cmVhbWVyLiAgSW4gdGhlIGNhc2Ugb2YgRW1hY3MsIGZvciBleGFtcGxlLCBHU3RyZWFtZXIgc2VlbXMKCSAgdG8gYmUgaW5pdGlhbGl6ZWQgdGhyb3VnaCBHVEsgdmlhIGxpYmNhbmJlcnJhLgoJICAyLiBTZXR0aW5nIHRoZSBsb2NhbGUgaXMgbm90IHRocmVhZC1zYWZlLCBhbmQgdGhlcmVmb3JlIHNob3VsZCBub3QgYmUgZG9uZSBpbiBhCgkgIGxpYnJhcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU2NTAKCjIwMTItMTEtMTYgMTk6NDE6NDggKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmb3J3YXJkIHN0cmVhbS1zdGFydCBldmVudCBpbiBwdXNoIG1vZGUKCjIwMTItMTEtMTkgMTM6Mzg6MzAgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL21hbnVhbC9zdGF0ZS1kaWFncmFtLmZpZzoKCSogZG9jcy9yYW5kb20vd3RheS9wbGF5ZXIuZmlnOgoJICBSZW1vdmUgdHdvIGxhc3QgLmZpZyBmaWxlcyBmcm9tIGJ1aWxkLCB0aGV5IGFyZSBub3cgcmVwbGFjZWQgd2l0aCAuc3ZnIGZpbGVzLiBUaGF0IHNhaWQgSSBkb24ndCB0aGluayBlaXRoZXIgLmZpZyBmaWxlIHdhcyBzdGlsbCBiZWluZyB1c2VkIGFueXdoZXJlLiBXaXRoIHRoaXMgY2hhbmdlIGFuZCB0aGUgb25lIGluIGNvbW1vbiBHU3RyZWFtZXIgbm8gbG9uZ2VyIGRlcGVuZHMgb24geGZpZy4KCjIwMTItMTEtMTkgMTM6MTY6NDggKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDEyLTExLTE5IDExOjIzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNDk3YzRmIHRvIGE3MmZhZWEKCjIwMTItMTEtMTkgMTE6NDU6MDcgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGRvY3MvbWFudWFsL3N0YXRlLWRpYWdyYW0uc3ZnOgoJKiBkb2NzL3JhbmRvbS93dGF5L3BsYXllci5zdmc6CgkgIEFkZCBTVkcgdmVyc2lvbnMgb2YgLmZpZyBmaWxlCgoyMDEyLTExLTE3IDEwOjI3OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogZG9uJ3QgY29tcGlsZSB0ZXN0cnRwb29sIGV4YW1wbGUgaWYgcHRocmVhZHMgYXJlIG5vdCBhdmFpbGFibGUgbGlrZSBvbiB3aW4zMgoJICBCYXNlZCBvbiBwYXRjaCBieTogaXRhbGFyYWJAZ21haWwuY29tCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg1MTEKCjIwMTItMTEtMTMgMjE6MTM6MDAgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjbG9jayBsZWFrIGluIHdhaXRfcnVubmluZ190aW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg0NzcKCjIwMTItMTEtMTcgMDA6MTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGdzdGNvbXBhdC5oOiBtb3ZlIG1vcmUgZGVwcmVjYXRlZCBBUEkgaW50byB0aGUgZGVwcmVjYXRlZCBzZWN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU1OTgKCjIwMTItMTEtMTQgMTI6MjA6NTQgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBkb2N1bWVudGF0aW9uIHVwZGF0ZQoJICBHU3RhdGljUmVjTXV0ZXggdXNhZ2UgaGFzIGJlZW4gcmVwbGFjZWQgYnkgR1JlY011dGV4LCByZWZsZWN0IHRoaXMKCSAgY2hhbmdlIGluIHRoZSBkb2N1bWVudGF0aW9uLgoKMjAxMi0xMS0xNCAxMDo1NToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IHBvcnQgdG8gbmV3IEdMaWIgdGhyZWFkaW5nIEFQSQoKMjAxMi0xMS0xMyAyMzoxMTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogZ3N0X2FkYXB0ZXJfcHJldl90aW1lc3RhbXAgLT4gZ3N0X2FkYXB0ZXJfcHJldl9wdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTU5OAoKMjAxMi0xMS0xMyAyMjo0MjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICB0ZXN0Y2xvY2s6IG1pbm9yIGNsZWFudXBzLCBhZGQgc2luY2UgbWFya2VycyBmb3IgZ3RrLWRvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTA4LTMwIDAxOjU4OjQxICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiBhbGxvdyBHc3RUZXN0Q2xvY2sgdG8gaGFuZGxlIGNsb2NrIG5vdGlmaWNhdGlvbnMKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19wZWVrX2lkX2NvdW50KCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19oYXNfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3BlZWtfbmV4dF9wZW5kaW5nX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja193YWl0X2Zvcl9uZXh0X3BlbmRpbmdfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3dhaXRfZm9yX3BlbmRpbmdfaWRfY291bnQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3Byb2Nlc3NfbmV4dF9jbG9ja19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfZ2V0X25leHRfZW50cnlfdGltZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMTEtMTMgMjE6Mjk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGFkZCBkZXBlbmRlbmN5IG9uIGdzdGNoZWNrIGhlYWRlciBmaWxlcyBmb3IgZXhwb3J0cy5zeW0KCSAgU28gZXhwb3J0cy5zeW0gZ2V0cyB1cGRhdGVkIGNvcnJlY3RseSwgYW5kIG91ciBuZXcgc3ltYm9scyBnZXQKCSAgZXhwb3J0ZWQgY29ycmVjdGx5LCB3aGljaCBtYWtlcyBnLWlyLXNjYW5uZXIgbXVjaCBoYXBwaWVyIGluCgkgIHRlcm1zIG9mIGxpbmtpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMDgtMjkgMTY6MTE6MTAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogYWRkIEdzdFRlc3RDbG9jayBhcyBhIGRldGVybWluaXN0aWMgY2xvY2sgZm9yIHRlc3RpbmcKCSAgQVBJOiBHc3RUZXN0Q2xvY2sKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19uZXcoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX25ld193aXRoX3N0YXJ0X3RpbWUoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3NldF90aW1lKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19hZHZhbmNlX3RpbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTExLTA5IDIxOjEwOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTExLTA4IDIwOjIyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IHJlLWluZGVudCBoZWFkZXIgZmlsZQoJICBUYWJzIHRvIHNwYWNlcy4KCjIwMTItMTEtMTIgMTE6NDA6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogQVBJOiBBZGQgYm94ZWQgdHlwZSBmb3IgR1RocmVhZAoKMjAxMi0xMS0xMiAxMDozMDowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IGluZGVudGlvbiBmb3IgcHJpbnRpbmcgdHlwZWZpbmRlciBmZWF0dXJlcwoKMjAxMi0xMS0xMiAwMTo0MDo0MiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsZXIgd2FybmluZyB3aGVuIGRlYnVnZ2luZyBkaXNhYmxlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTMwCgoyMDEyLTExLTEwIDA5OjUwOjQ5ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB1bnVzZWQgbGFiZWwuIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEyLTEwLTI5IDEyOjA4OjMxICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGRvbid0IGZhaWwgaW4gX3NpbmtfZXZlbnQgZm9yIHN0aWNreSBldmVudHMKCSAgSW1wbGVtZW50IHRoZSBzYW1lIGJlaGF2aW91ciBhcyBnc3RfcGFkX3B1c2hfZXZlbnQgd2hlbiBwdXNoaW5nIHN0aWNreSBldmVudHMKCSAgZmFpbHMsIHRoYXQgaXMgZG9uJ3QgZmFpbCBpbW1lZGlhdGVseSBidXQgZmFpbCB3aGVuIGRhdGEgZmxvdyByZXN1bWVzIGFuZCB1cHN0cmVhbQoJICBjYW4gYWdncmVnYXRlIHByb3Blcmx5LgoJICBUaGlzIGZpeGVzIHNlZ21lbnQgc2Vla3Mgd2l0aCBkZWNvZGViaW4gYW5kIHVubGlua2VkIGF1ZGlvIG9yIHZpZGVvIGJyYW5jaGVzLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzg5OQoKMjAxMi0xMS0wOSAxNjo1MDo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIHNpbXBsZSByYXRlIGNvbnRyb2wKCSAgQWRkIGEgbWF4LWJpdHJhdGUgcHJvcGVydHkgdGhhdCB3aWxsIHNsaWdodGx5IGRlbGF5IHJlbmRlcmluZyBvZiBidWZmZXJzIGlmIGl0CgkgIHdvdWxkIGV4Y2VlZCB0aGUgbWF4aW11bSBkZWZpbmVkIGJpdHJhdGUuIFRoaXMgY2FuIGJlIHVzZWQgdG8gZG8KCSAgcmF0ZSBjb250cm9sIG9uIG5ldHdvcmsgc2lua3MsIGZvciBleGFtcGxlLgoJICBBUEk6IEdzdEJhc2VTaW5rOjptYXgtYml0cmF0ZQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X21heF9iaXRyYXRlKCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9tYXhfYml0cmF0ZSgpCgoyMDEyLTExLTA4IDE1OjMzOjAxICsxMTAwICBNYXR0aGV3IFdhdGVycyA8eXN0cmVldDAwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGxvY2sgYmVmb3JlIHVubG9jayBpbiBfZ2V0X2NvbmZpZwoJICBGaXhlcyBkZWFkbG9jayBvbiBXaW5kb3dzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4OTYKCjIwMTItMTEtMDcgMTg6MTU6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVwZGF0ZSBjb3VydGVzeSBvZiBhdXRvdXBkYXRlCgoyMDEyLTExLTA3IDE3OjU5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIEFHX0dTVF9QTFVHSU5fRE9DUyBweXRob24gY2hlY2tzCgoyMDEyLTExLTA2IDE4OjI5OjI4ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRG9jdW1lbnQgR1NUX0RFQlVHX0ZJTEUKCjIwMTItMTEtMDYgMTc6MDM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IGFsaWdubWVudCBvZiByYW5rLCBldGMuCgoyMDEyLTExLTA2IDE2OjU4OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBlbGVtZW50czogZml4IGxlYWRpbmcgc3BhY2UgaW4gcGx1Z2luIGRlc2NyaXB0aW9uIHN0cmluZwoKMjAxMi0xMS0wMyAyMDo0NDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENPUFlJTkc6CgkqIGRvY3MvcmFuZG9tL0xJQ0VOU0U6CgkqIGdzdC9nZXR0ZXh0Lmg6CgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9pbml0LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWRpc2FibGVkLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmg6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJKiB0ZXN0cy9taXNjL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOgoJKiB0ZXN0cy9taXNjL25ldHdvcmstY2xvY2suc2NtOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEZpeCBGU0YgYWRkcmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NTIwCgoyMDEyLTEwLTMxIDE5OjMzOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkICJmbHVzaC1vbi1lb3MiIHByb3BlcnR5CgkgIEluIGZsdXNoLW9uLWVvcz10cnVlIG1vZGUgYW55IGRhdGEgcmVtYWluaW5nIGluIHRoZSBxdWV1ZSBpcwoJICBkaXNjYXJkZWQgd2hlbiBhbiBFT1MgZXZlbnQgaXMgcmVjZWl2ZWQsIGFuZCB0aGUgRU9TIHBhc3NlZAoJICBkb3duc3RyZWFtIGFzIHNvb24gYXMgcG9zc2libGUgKGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgYWxsCgkgIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIHRvIGdldCBwcm9jZXNzZWQgYnkgZG93bnN0cmVhbSBmaXJzdCkuCgkgIE1heSBvciBtYXkgbm90IGJlIHVzZWZ1bCBpbiBjYXB0dXJlL2VuY29kaW5nIHNjZW5hcmlvcy4KCjIwMTItMTAtMzEgMTg6MzI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBweXRob24gZGV0ZWN0aW9uCgkgIEZpeGVzIGRvY3MgYnVpbGQuCgoyMDEyLTEwLTMxIDE3OjM3OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbGV0IEFHX0dTVF9QTFVHSU5fRE9DUyBjaGVjayBmb3IgcHl0aG9uCgkgIEFuZCB1cGRhdGUgY29tbW9uIGZvciBtb3ZlIGZyb20gQVNfUEFUSF9QWVRIT04gdG8gQU1fUEFUSF9QWVRIT04sCgkgIHdoaWNoIGFzIGEgc2lkZS1lZmZlY3Qgc2hvdWxkIHBpY2sgdXAgbmV3ZXIgcHl0aG9uIHZlcnNpb25zIGFzIHdlbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM5MDMKCjIwMTItMTAtMzAgMTA6MDQ6NDQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IENsYXJpZnkgZG9jcyBhYm91dCB0aGUgYnVmZmVyIGhhbmRsZXIgY2FsbGJhY2suCgkgIENsYXJpZnkgdGhhdCB0aGUgY2FsbGJhY2sgb3ducyBhIHJlZiBvbiBhIHBhc3NlZCBidWZmZXIuCgoyMDEyLTEwLTMwIDEwOjA0OjE0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIEVPUyBzdGF0dXMgdG8gZGVidWcgb3V0cHV0IGFib3V0IGZpbGxlZC91bmZpbGxlZAoKMjAxMi0xMC0yMiAwMDozMTowOSArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjaGVjazogQWRkIGEgc2ltcGxlIHRlc3QgZm9yIHRoZSBDb2xsZWN0UGFkcyBidWZmZXIgY29sbGVjdCBjYWxsYmFjawoKMjAxMi0xMC0yOSAxMzoyNjoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnLWk6IGZpeCAiY2FuJ3QgcmVzb2x2ZSBsaWJyYXJpZXMgdG8gc2hhcmVkIGxpYnJhcmllczogZ3N0Y2hlY2stMS4wIiBidWlsZCBlcnJvcgoJICBSZXZlcnQgLS1saWJyYXJ5PWxpYmZvby0xLjAubGEgLT4gLS1saWJyYXJ5PWZvby0xLjAgY2hhbmdlIG1hZGUKCSAgaW4gcHJldmlvdXMgY29tbWl0LiBUdXJucyBvdXQgdGhhdCB3YXMgd3JvbmcsIGRlc3BpdGUgd2hhdCB0aGUKCSAgbWFuIHBhZ2Ugc2F5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMzcxMAoKMjAxMi0xMC0yOSAxMTozMDozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGRvd25ncmFkZSAnY3JlYXRpbmcgcmFuZG9tIHN0cmVhbS1pZCcgZGVidWcgbG9nIG1lc3NhZ2UKCSAgTm8gbmVlZCBmb3IgaXQgdG8gYmUgYSB3YXJuaW5nLgoKMjAxMi0wNi0xMyAxMzowMjo0OCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgZXhjZXNzaXZlbHkgaGlnaCBtZW1vcnkgdXNhZ2Ugd2l0aCBsb25nIHN0cmVhbXMKCSAgTGFyZ2Ugc3RyZWFtcyB3b3VsZCBpbmRleCBvbmUgZnJhbWUgZXZlcnkgc2Vjb25kLCB3aGljaCBjYW4gZ2V0IHF1aXRlCgkgIGxhcmdlIHdpdGggbXVsdGktaG91ciBzdHJlYW1zLCBzbyBhZGQgYW4gYWRkaXRpb25hbCBieXRlLWJhc2VkCgkgIG1pbmltdW0gZGlzdGFuY2UgYXMgd2VsbCwgd2hpY2ggd2lsbCBraWNrIGluIGZvciBsb25nIHN0cmVhbXMKCSAgYW5kIG1ha2Ugc3VyZSB3ZSBuZXZlciBoYXZlIG1vcmUgdGhhbiBhIGNvdXBsZSBvZiB0aG91c2FuZCBpbmRleAoJICBlbnRyaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MDUzCgoyMDEyLTEwLTI4IDE3OjE3OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZy1pOiBhdm9pZCBtdWx0aXBsZSBsaWJyYXJpZXMgaW4gdGhlIHNoYXJlZC1saWJyYXJ5IHRhZwoJICBVc2luZyBtdWx0aXBsZSBsaWJyYXJpZXMgY2F1c2VzIHByb2JsZW1zIGZvciB0aGUgQyMgYmluZGluZ3MgYW5kCgkgIHdpbGwgZm9yIHNpbWlsaWFyIGxhbmd1YWdlcyBzdWNoIGFzIEphdmEgd2hlbiB0aGVyZSBhcmUgYmluZGluZ3MKCSAgZm9yIHRoZW0uCgkgIEFsc28gY2hhbmdlIC0tbGlicmFyeT1saWJnc3Rmb28tWC5sYSB0byAtLWxpYnJhcnk9Z3N0Zm9vLVggYXMKCSAgdGhlIG1hbiBwYWdlIHN1Z2dlc3RzIGl0IHNob3VsZCBiZSBkb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MzE1CgoyMDEyLTEwLTI4IDE1OjUzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbl9uYW1lKCkKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbl9uYW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTgzMgoKMjAxMi0xMC0yNyAxNDo0MDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsbG93IHNldHRpbmcgb2YgR1NUX0RFQlVHIGxldmVscyBieSBuYW1lCgkgIGUuZy4gR1NUX0RFQlVHPSo6SU5GTywqc3JjOkxPRwoKMjAxMi0wNi0yOSAxMjozODo1MiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IG1ha2UgdXMgb2YgdGhlIG5ldyBnc3RfZGVidWdfc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZyBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTUyCgoyMDEyLTA2LTI5IDEyOjA1OjM2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogYWRkIGEgZnVuY3Rpb24gdG8gc2V0IGRlYnVnIHRocmVzaG9sZCBmcm9tIGEgR1NUX0RFQlVHLXN0eWxlIHN0cmluZwoJICBVc2UgdGhlIHNhbWUgZm9ybWF0IGFzIHdpdGggdGhlIEdTVF9ERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQVBJOiBnc3RfZGVidWdfc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNTIKCjIwMTItMTAtMjUgMTU6Mjc6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IEZpeCB1bml0IHRlc3QKCjIwMTItMTAtMjIgMTA6MTM6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlL3F1ZXVlYXJyYXk6IE1ha2UgcHVibGljIEFQSSBhZ2FpbgoJICBUaGVzZSBhcmUgYWN0dWFsbHkgdXNlZCBvdXRzaWRlIG9mIGNvcmVlbGVtZW50cyBub3dhZGF5cy4KCSAgQWxzbyBoaWRlIGxvdHMgb2YgaW50ZXJuYWxzIGFuZCBhZGQgcGFkZGluZyBhbmQgZG9jdW1lbnRhdGlvbi4KCjIwMTItMTAtMjUgMTI6MTA6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZmVhdHVyZSBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4wLjIgPT09CgoyMDEyLTEwLTI1IDAwOjA0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMC4yCgoyMDEyLTEwLTI0IDE2OjEzOjM0ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IGxpbmsgdGVzdHJ0cG9vbCB0byBwdGhyZWFkcwoJICBGaXhlcyAjNjg2Nzg3CgoyMDEyLTEwLTI0IDExOjQ2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWxsb3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyBkdXJhdGlvbiBmb3IgR0FQIGV2ZW50cwoKMjAxMi0xMC0yNCAxMToxNjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgbmV3IEdDb25kIGZvciBhc3luYyBzdGF0ZSBjaGFuZ2UKCSAgVXNlIGEgbmV3IEdDb25kLCBwcm90ZWN0ZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2ssIHRvIHNpZ25hbCBjb21wbGV0aW9uCgkgIG9mIHRoZSBhc3luYyBzdGF0ZSBjaGFuZ2UuIFdlIGNhbid0IHJldXNlIHRoZSBsaXZlIGxvY2sgYmVjYXVzZSB0aGF0CgkgIG9uZSBjYW4gYmUgbG9ja2VkIHdoZW4gdGhlIGNyZWF0ZSBmdW5jdGlvbiBibG9ja3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY3MjMKCjIwMTItMTAtMjIgMjA6MjU6NDMgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGZpeCBtZW1vcnkgbGVhayBpbiBfZmFsbGJhY2tfbWVtX2NvcHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjY1OAoKMjAxMi0xMC0yMiAyMDozMzowNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogcmVtb3ZlIHZhcmlhYmxlIG5vdCByZWFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY2NTkKCjIwMTItMTAtMjIgMTU6MDQ6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbTQvYXhfcHRocmVhZC5tNDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBQcm9wZXJseSBjaGVjayBmb3IgcHRocmVhZAoJICBUaGUgb2xkIGNoZWNrIGZhaWxlZCBvbiBBbmRyb2lkIGZvciBleGFtcGxlLgoKMjAxMi0xMC0yMiAxMDoyNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBEb24ndCB1c2UgR1NUX0RFQlVHKCkgaW4gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5CgkgIElmIEdTdHJlYW1lciB3YXMgbm90IGluaXRpYWxpemVkIHlldCB0aGlzIHdpbGwgY2F1c2UgZ193YXJuaW5ncygpLgoKMjAxMi0xMC0yMCAxOTo0NDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgR3N0Q29sbGVjdFBhZHNCdWZmZXJGdW5jdGlvbgoJICBXZSBwYXNzIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIHRvIHRoZSBmdW5jdGlvbi4KCjIwMTItMTAtMjAgMTI6NTQ6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgZ190eXBlX2luaXQoKSBpcyBubyBsb25nZXIgcmVxdWlyZWQgYW5kIGRlcHJlY2F0ZWQgaW4gZ2xpYiA+PSAyLjM1LjAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjQ1NgoKMjAxMi0xMC0xOSAxMzozNjozMyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBHc3RTYW1wbGU6IGZpeCB0eXBvIGluIEctSSBhbm5vdGF0aW9ucywgYWxsb3dzIGNyZWF0aW5nIEdzdFNhbXBsZXMgZnJvbSBiaW5kaW5ncy4KCjIwMTItMTAtMTggMTU6MzE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY29uc3RuZXNzCgkgIHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnZ19tdXRleF9sb2NrJyBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCSAgcGFzc2luZyBhcmd1bWVudCAxIG9mICdnX211dGV4X3VubG9jaycgZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgoyMDEyLTEwLTE3IDE2OjQ5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJpbiwgcGlwZWxpbmU6IHVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCSAgU28gdGhlIHN0cmluZ3MgYXJlbid0IGNvcGllZC4KCjIwMTItMTAtMTYgMTI6MzE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQVBJOiBBZGQgR3N0RWxlbWVudDo6cG9zdF9tZXNzYWdlKCkgdmZ1bmMKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudC5oCgoyMDEyLTEwLTE2IDExOjU0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgcHdnOiBsaW5rIHRvIGNhcHMgYW5kIHFvcyBjaGFwdGVycwoKMjAxMi0xMC0xNiAxMToyMDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXF1ZXJ5Zm4ueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IGFkZCBzZWN0aW9uIGFib3V0IHF1ZXJ5IGZ1bmN0aW9uCgoyMDEyLTEwLTE2IDExOjEyOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkgIHB3ZzogZml4IGV2ZW50IGZ1bmN0aW9uCgoyMDEyLTEwLTE1IDE5OjU2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogbWlub3IgZG9jcyBmaXhlcwoKMjAxMi0xMC0xNSAxOTo1NTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggYnVmZmVyIGxlYWsgaW4gY2xpcF90aW1lCgoyMDEyLTEwLTE1IDE4OjQ0OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGNhbGwgY2xpcCBmdW5jdGlvbiB3aXRoIHVzZXIgZGF0YQoKMjAxMi0xMC0xNSAxNDowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogcmVvcmRlciBzb21lIGNoYXB0ZXJzCgkgIFJlb3JkZXIgc29tZSBjaGFwdGVyIHNvIHRoYXQgdGhleSBtYXRjaCB0aGUgc3RlcHMgZG9uZSBpbiB0aGUKCSAgZWxlbWVudC4KCjIwMTItMTAtMTUgMTM6NTk6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3Zzogc21hbGwgdHdlYWtzIHRvIG5lZ290aWF0aW9uCgoyMDEyLTEwLTE1IDEzOjQ0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGltcHJvdmUgbmVnb3RpYXRpb24gZG9jdW1lbnRhdGlvbiBzb21lIG1vcmUKCjIwMTItMTAtMTUgMTI6MTA6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHVwZGF0ZSBuZWdvdGlhdGlvbiBwYXJ0CgoyMDEyLTEwLTE1IDEyOjEwOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgc3luY2hyb25pemF0aW9uIGRvY3MKCjIwMTItMTAtMTIgMTY6NTg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3Zzogd29yayBvbiByZXdyaXRpbmcgY2FwcyBuZWdvdGlhdGlvbiBkb2NzCgoyMDEyLTEwLTEyIDE2OjA5OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRlc2lnbjogcmVuYW1lIHBhc3N0aHJvdWdoIG5lZ290aWF0aW9uCgkgIFJlbmFtZSBwYXNzdGhyb3VnaCBuZWdvdGlhdGlvbiB0byB0cmFuc2Zvcm0gbmVnb3RpYXRpb24gdG8gYXZvaWQKCSAgY29uZnVzaW9uIHdpdGggcGFzc3Rocm91Z2ggb3BlcmF0aW9uLgoKMjAxMi0xMC0xMiAxMzoxNTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgbWFudWFsOiBubyBtb3JlIG5ldy1kZWNvZGVkLXBhZAoKMjAxMi0xMC0xMiAxMzoxMzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jb21waWxpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBtYW51YWw6IG1vdmUgZW1iZWRkaW5nIGVsZW1lbnRzIHRvIHNlcGFyYXRlIGNoYXB0ZXIKCjIwMTItMTAtMTIgMTM6MDE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJICBwd2c6IHNtYWxsIGV4YW1wbGUgZm9yIHRocm90dGxlCgoyMDEyLTEwLTEyIDEyOjU1OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBhZGQgaW5mbyBhYm91dCBRb1MKCjIwMTItMTAtMTIgMTI6NTU6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBwd2c6IGFkZHMgc29tZSBtb3JlIGxpbmtzCgoyMDEyLTEwLTEyIDEyOjU1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBxb3M6IG1lc3NhZ2VzIGFyZSBwb3N0ZWQsIG5vdCBkcm9wcGVkCgoyMDEyLTEwLTEyIDEwOjM1OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJKiBkb2NzL21hbnVhbC9nc3RyZWFtZXItb3ZlcnZpZXcucG5nOgoJKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSogZG9jcy9tYW51YWwvdGhyZWFkLWJ1ZmZlcmluZy5wbmc6CgkgIG1hbnVhbDogdXBkYXRlIGdyYXBoaWNzCgoyMDEyLTEwLTExIDE3OjEwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZXhhbXBsZSBvZiBuby1yZWJ1ZmZlciBidWZmZXJpbmcgc3RyYXRlZ3kKCjIwMTItMTAtMTEgMTc6MTA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgbWFudWFsOiBzbWFsbCB0d2Vha3MKCjIwMTItMTAtMTEgMTc6MDk6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGJ1ZmZlcmluZyB0aW1lIGxlZnQgaXMgaW4gbWlsbGlzZWNvbmRzCgoyMDEyLTEwLTExIDE3OjA3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICBtYW51YWw6IGFkZCBzb21lIHRleHQgYWJvdXQgYmluIHN0YXRlIGNoYW5nZSBvcmRlcgoKMjAxMi0xMC0xMCAxNjo0Mzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1wbGF5YmFjay54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiB0YWxrIGFib3V0IHBsYXlzaW5rCgkgIFRhbGsgYWJvdXQgcGxheXNpbmsgYW5kIGdpdmUgYW4gZXhhbXBsZSBvZiBpdHMgdXNhZ2UuCgoyMDEyLTEwLTEwIDEzOjA4OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtcGxheWJhY2sueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIHNvbWV0aGluZyBhYm91dCB1cmlkZWNvZGViaW4KCjIwMTItMTAtMTAgMTE6MzU6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZW5zdXJlIGFsbCB0aW1lc3RhbXBzIGFyZSBpbiBzYW1lIHRpbWUgZG9tYWluCgkgIC4uLiBieSBub3Qgb25seSBwcm9jZXNzaW5nIGluY29taW5nIGJ1ZmZlcnMgdGhyb3VnaCBhIGNsaXAgZnVuY3Rpb24sCgkgIGJ1dCBhbHNvIG90aGVyIHRpbWVzdGFtcHMgc3VjaCBhcyB0aG9zZSBjb21pbmcgZnJvbSBHQVAgZXZlbnQuCgoyMDEyLTEwLTEwIDEwOjM2OjMyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBhZGp1c3Qgc29tZSBwYXJhbWV0ZXIgbWlzbWF0Y2hlcwoKMjAxMi0xMC0xMCAxMTozNDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG93bmdyYWRlIEdTVF9XQVJOSU5HIHRvIEdTVF9JTkZPCgkgIEl0J3MgdXN1YWxseSBub3QgYSBwcm9ibGVtIGlmIGEgcXVlcnkgZmFpbHMgaWYgdGhlcmUncyBubyBwZWVyLAoJICBlc3BlY2lhbGx5IGFzIGl0IHdpbGwgaGFwcGVuIGR1cmluZyBwYWQgbGlua2luZyAoY2FwcyBxdWVyeSkKCSAgcXVpdGUgb2Z0ZW4gYW5kIHNwYW1zIHRoZSBsb2dzLgoKMjAxMi0xMC0wOSAxNzowNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcmVtb3ZlIG91dGRhdGVkIGF1dG9wbHVnZ2luZyBzZWN0aW9uCgkgIFJlbW92ZSBhdXRvcGx1Z2dpbmcgY2hhcHRlciBhbmQgcG9pbnQgdG8gZGVjb2RlYmluL3BsYXliaW4gZXhhbXBsZXMuCgoyMDEyLTEwLTA5IDE2OjEyOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogVGFsayBhYm91dCB0aHJlYWRpbmcKCSAgUmV3b3JrIHRoZSB0aHJlYWRpbmcgY2hhcHRlci4KCSAgVGFsayBhYm91dCBzdHJlYW0tc3RhdHVzIGFuZCBnaXZlIHNvbWUgZXhhbXBsZXMgb24gaG93IHRvIGNoYW5nZQoJICB0aGUgdGhyZWFkIHByaW9yaXRpZXMuCgoyMDEyLTEwLTA5IDE1OjU3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBpbXByb3ZlIHN0cmVhbS1zdGF0dXMgZG9jdW1lbnQKCjIwMTItMTAtMDkgMTU6MzE6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0cmlldmUgdGhlIHJlc3VsdCBmcm9tIHN0YXJ0X2NvbXBsZXRlCgkgIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpIGNhbiBmYWlsIHdoZW4gdGhlIHRocmVhZCBjb3VsZCBub3QgYmUKCSAgc3RhcnRlZCwgZm9yIGV4YW1wbGUuIE1ha2Ugc3VyZSBpdCBjYXVzZXMgdGhlIHN0YXRlIGNoYW5nZSB0byBmYWlsIGJ5CgkgIHJldHJpZXZpbmcgdGhlIHJlc3VsdCBmcm9tIF9zdGFydF9jb21wbGV0ZSgpLgoKMjAxMi0xMC0wOSAxNTozMTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTEwLTA5IDEwOjI0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHNtYWxsIGRvY3MgZml4ZXMgYW5kIHJlbW92ZSBhIDAuMTEgZml4bWUKCjIwMTItMTAtMDggMTY6NDI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIG1hbnVhbDogdGFsayBhIGJpdCBhYm91dCBidWZmZXJpbmcKCjIwMTItMTAtMDggMTM6MjI6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgIGRvY3M6IGltcHJvdmUgY2xvY2sgY2hhcHRlcgoKMjAxMi0xMC0wOCAxMDozOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGV4YW1wbGUgZm9yIGVmZmVjdCBzd2l0Y2hpbmcKCjIwMTItMTAtMDggMDk6MTE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBkb2NzOiBzbWFsbCB1cGRhdGVzCgoyMDEyLTEwLTA3IDE2OjQ4OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWctZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjEgPT09CgoyMDEyLTEwLTA3IDEzOjEwOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4wLjEKCjIwMTItMTAtMDcgMDA6MTU6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICB0ZXN0czogdXBkYXRlIHN0cnVjdF9pMzg2LmggZm9yIEFCSSBjaGVja3MKCSAgRml4ZXMgbWFrZSBjaGVjayBvbiAzMi1iaXQgeDg2LgoKMjAxMi0xMC0wNiAxNzoyNjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSAgdGVzdHM6IHVwZGF0ZSBzdHJ1Y3RfcHBjMzIuaCBmb3IgQUJJIGNoZWNrcwoJICBGaXhlcyBtYWtlIGNoZWNrIG9uIDMyLWJpdCBQb3dlclBDLgoKMjAxMi0xMC0wNiAxNDo1NTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmMwYjUyYyB0byA2YmI2OTUxCgoyMDEyLTEwLTA2IDEyOjA4OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkgIGV4YW1wbGVzOiAuZ2l0aWdub3JlIG1vcmUgYmluYXJpZXMgZnJvbSB0aGUgbWFudWFsCgoyMDEyLTEwLTA1IDE2OjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBvYnNvbGV0ZSBwYXJ0LWJsb2NrIGRvY3VtZW50CgkgIE1lcmdlIHRoZSBwYXJ0LWJsb2NrIGRvY3VtZW50IGludG8gcGFydC1wcm9iZXMKCjIwMTItMTAtMDUgMDk6NDI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVzZW5kIGRyb3BwZWQgZXZlbnRzCgkgIElmIHdlIHRyeSB0byBwdXNoIHN0aWNreSBldmVudHMgYnV0IGEgcHJvYmUgZHJvcHBlZCB0aGVtLCB3ZSBkb24ndCBtYXJrCgkgIHRoZSBldmVudCBhcyByZWNlaXZlZCBhbmQgbWFyayB0aGUgcGFkIGFzIFBFTkRJTkdfRVZFTlRTLiBUaGlzIGVuc3VyZXMKCSAgdGhhdCB3ZSByZXNlbmQgdGhlIGV2ZW50IHRoZSBuZXh0IHRpbWUuIEZvciB0aGlzIHdlIG5lZWQgdG8gbGV0IHRoZQoJICBjdXN0b20gZmxvdyByZXR1cm4gZnJvbSB0aGUgcHJvYmUgdHJpY2tsZSB1cCB0bwoJICBnc3RfcGFkX3B1c2hfZXZlbnRfdW5jaGVja2VkKCkgc28gdGhhdCB3ZSBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuCgkgIE9LIGFuZCBEUk9QUEVEIHByb2JlIHJldHVybnMuCgoyMDEyLTEwLTA1IDA3OjE0OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcvRU9TIHBhZHMKCSAgRG9uJ3Qgc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZyBvciBFT1MgcGFkcy4gVGhpcyB3YXMgZG9uZQoJICBjb3JyZWN0bHkgZm9yIHNvdXJjZSBwYWRzIGJ1dCBub3QgZm9yIHNpbmsgcGFkcy4KCjIwMTItMTAtMDQgMTE6MjQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkgYW5kIGFkZCBpdCB0byBkb2NzIGFuZCAuZGVmIGZpbGUKCjIwMTItMTAtMDQgMTE6NTA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBkeW5hbWljIGNhcHNmaWx0ZXIgZXhhbXBsZQoKMjAxMi0xMC0wNCAxMToxODoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkb24ndCBwcmVmZXIgcGFzc3Rocm91Z2gKCSAgQmFzZXRyYW5zZm9ybSBzaG91bGQgbm90IHRyeSB0byBuZWdvdGlhdGUgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQKCSAgcmVzcGVjdCB0aGUgb3JkZXIgb2Ygd2hhdCB3ZSByZXR1cm4gaW4gdGhlIHRyYW5zZm9ybV9jYXBzIG1ldGhvZC4KCSAgQSB0eXBpY2FsIGNhc2UgaXMgdGhhdCB5b3Ugc3BlY2lmeSBzb21lIHNwZWNpZmljIG5ldyBjYXBzIGluIHRoZQoJICBjYXBzIHByb3BlcnR5IGJ1dCBhbHNvIGFsbG93IHRoZSBjdXJyZW50IGNhcHMgdG8gcGFzcy4KCjIwMTItMTAtMDQgMTE6MTU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuczogYWRkIGFuIG9wdGlvbiB0byBwcmVmZXIgcGFzc3Rocm91Z2gKCSAgQmFzZXRyYW5zZm9ybSBhdHRlbXB0cyB0byBkbyBwYXNzdGhyb3VnaCBtb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIG9mCgkgIHRoZSB0cmFuc2Zvcm1fY2FwcyBtZXRob2QuIEFkZCBhIG1ldGhvZCB0byBkaXNhYmxlIHRoaXMuCgkgIFRoaXMgaXMgbmVlZGVkIGZvciBlbGVtZW50cyBsaWtlIGNhcHNmaWx0ZXIgdGhhdCB3YW50IHRvIHRyYW5zZm9ybSBjYXBzCgkgIGJhc2VkIG9uIHRoZSBvcmRlciBvZiB0aGUgY2FwcyBwcm9wZXJ0eS4KCjIwMTItMTAtMDQgMTA6MDE6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBpbXByb3ZlIHNvbWUgY29tbWVudHMKCjIwMTItMTAtMDMgMTc6MTc6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiB0YWxrIHNvbWUgbW9yZSBhYm91dCBkeW5hbWljIHBpcGVsaW5lcwoKMjAxMi0xMC0wMyAxMzo0OTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGRvbid0IHB1dCBlc3NlbnRpYWwgbG9naWMgaW4gZ19yZXR1cm5fdmFsXyoKCjIwMTItMTAtMDMgMTM6NDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGRvIG1ldGFkYXRhIHJlZ2lzdHJhdGlvbiB0aHJlYWRzYWZlCgkgIFdlIG5lZWQgdG8gdXNlIGdfb25jZSB0byByZWdpc3RlciB0aGUgbWV0YWRhdGEgaW1wbGVtZW50YXRpb25zCgkgIG9ubHkgb25jZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODUzMzIKCjIwMTItMTAtMDMgMTM6MzU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBoYW5kbGUgbXVsdGlwbGUgaW1wbGVtZW50YXRpb24gcmVnaXN0cmF0aW9uCgkgIEZpcnN0IGNoZWNrIHRoYXQgd2UgY2FuIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWZvcmUKCSAgbWFraW5nIGEgR3N0TWV0YUluZm8uIElmIHdlIGNhbid0IHJlZ2lzdGVyIHdlIHdvdWxkIG90aGVyd2lzZSBlbmQKCSAgdXAgd2l0aCBhbiB1bmRlZmluZWQgdHlwZSBhbmQgYW4gaW52YWxpZCBHc3RNZXRhSW5mby4KCSAgSXQncyBwb3NzaWJsZSB0aGF0IHR5cGUgcmVnaXN0cmF0aW9uIGZhaWxzIGJlY2F1c2UgYW5vdGhlciBtZXRhZGF0YQoJICB3aXRoIHRoZSBzYW1lIGltcGxlbWVudGF0aW9uIG5hbWUgd2FzIGFscmVhZHkgcmVnaXN0ZXJlZC4KCjIwMTItMTAtMDMgMTM6MTI6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiB1c2UgQ0RBVEEgZm9yIGNvZGUgYmxvY2tzCgkgIHRoZW4gd2UgZG9uJ3QgaGF2ZSB0byBlc2NhcGUgc3BlY2lhbCB0b2tlbiBhbnltb3JlLgoKMjAxMi0xMC0wMyAxMzowOTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIHBhcnRpYWwgcHJlcm9sbCBleGFtcGxlIHdpdGggcHJvYmVzCgoyMDEyLTEwLTAzIDEwOjUzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogYWRkIG1vcmUgc3R1ZmYgYWJvdXQgcHJvYmVzCgoyMDEyLTEwLTAyIDE3OjIzOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogc3RhcnQgdGFsa2luZyBhYm91dCBkeW5hbWljIHBpcGVsaW5lIGNoYW5nZXMKCjIwMTItMTAtMDIgMTY6NDc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBtb3ZlIHNlY3Rpb24gYXJvdW5kCgoyMDEyLTEwLTAyIDE2OjQ0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcHdnOiBhZGQgYXBwc2luayBkb2NzCgoyMDEyLTEwLTAyIDE2OjE1OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcHdnOiByZXdpdGUgZGF0YS1hY2Nlc3MgY2hhcHRlcgoJICBSZXdyaXRlIHRoZSBkYXRhLWFjY2VzcyBjaGFwdGVyIHNvIHRoYXQgd2UgdGFsayBhYm91dCBhcHBzcmMgaW5zdGVhZAoJICBvZiB0aGUgZmFrZXNyYyBoYWNrcy4KCjIwMTItMTAtMDIgMTM6MjI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBwby9SRUFETUU6CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBkb2NzOiBzb21lIDAuMTAgLT4gMS4wIGNoYW5nZXMKCjIwMTItMTAtMDIgMTM6MTI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBleGFtcGxlCgoyMDEyLTEwLTAyIDEyOjQ5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMi0xMC0wMiAxMTozNDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogZmxlc2ggb3V0IGFsbG9jYXRpb24gZG9jcwoJICBBZGQgbW9yZSBleGFtcGxlcy4KCSAgQWRkIGV4YW1wbGUgZm9yIGltcGxlbWVudGluZyBuZXcgbWV0YWRhdGEuCgkgIEFkZCBwcm9ncmFtcyB0byB0aGUgZG9jcyAoYWdhaW4/KSwgaXQgc2VlbXMgdG8gY29udGFpbiB1c2VmdWwgaW5mby4KCjIwMTItMTAtMDEgMTY6NTk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBwd2c6IGFkZCBuZXcgYXV0aG9yCgoyMDEyLTEwLTAxIDE2OjU1OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGFsbG9jYXRpb24gZG9jcwoKMjAxMi0xMC0wMSAxNjo0NjowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDEyLTEwLTAxIDEzOjI4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogbW9yZSBkb2NzIGZpeGVzCgkgIEZpeCBhbGxvY2F0b3IgZGVzaWduIGRvYwoJICBBZGQgYmVnaW5uaW5nIG9mIGFsbG9jYXRpb24gY2hhcHRlciBpbiB0aGUgcHdnCgoyMDEyLTEwLTAxIDExOjQ3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICBwd2c6IGZpbmFsIGNsZWFudXBzIGZvciAxLjAKCjIwMTItMTAtMDEgMTE6MjQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgcHdnOiBmaXggZXZlbnRzIGFuZCBiYXNlIGNsYXNzZXMKCjIwMTItMTAtMDEgMTA6NDA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgcHdnOiBmaXh1cCB0YWcgZG9jcwoKMjAxMi0xMC0wMSAwOTo0ODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBwd2c6IHBhdGNoIHVwIHRoZSBzZWN0aW9uIGFib3V0IGludGVyZmFjZXMKCjIwMTItMDktMzAgMDQ6MDU6MzYgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggc2VhbWxlc3Mgc2VnbWVudCBmdW5jdGlvbgoJICBUaGUgM3JkIHBhcmFtZXRlciBvZiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQgaW4KCSAgMC4xMCBpcyB0aGUgdGltZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VnbWVudCwKCSAgbm90IHRoZSBwb3NpdGlvbiBpbiB0aGUgbmV3IHNlZ21lbnQuIEZpeCB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLAoJICB0aGUgZG9jcywgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmVlZHMgb2YgdGhlIG9ubHkKCSAgZXh0YW50IGNvbnN1bWVyOiBEVkQgcGxheWJhY2suCgoyMDEyLTA5LTI5IDE0OjM1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB2YWx1ZTogYXZvaWQgZHVwbGljYXRlcyB3aGVuIGludGVyc2VjdGluZyBsaXN0cwoJICBGaXhlcyBuZWdvdGlhdGlvbiB0YWtpbmcgYSByaWRpY3Vsb3VzIGFtb3VudCBvZgoJICB0aW1lIChtdWx0aXBsZSAxMHMgb2Ygc2Vjb25kcyBvbiBhIGNvcmUyKSB3aGVuCgkgIHRoZXJlIGFyZSBkdXBsaWNhdGUgZW50cmllcyBpbiBsaXN0cy4KCSAgQ291bGQgaGF2ZSBhIG5lZ2F0aXZlIHBlcmZvcm1hbmNlIGltcGFjdCBvbiBvdGhlcgoJICBzY2VuYXJpb3MgYmVjYXVzZSB3ZSBub3cgaGF2ZSB0byBpdGVyYXRlIHRoZQoJICBkZXN0IGxpc3QgdG8gYXZvaWQgZHVwbGljYXRlcywgYnV0IHdlIGRvbid0CgkgIGhhdmUgYSBsb3Qgb2YgbGlzdHMgYW55IG1vcmUgdGhlc2UgZGF5cywgYW5kCgkgIHRoZXkgdGVuZCB0byBiZSBzbWFsbCBhbnl3YXkuIFRoZSBuZWdhdGl2ZXMKCSAgYXJlIGhvcGVmdWxseSBjb3VudGVyZWQgYnkgdGhlIHBvc2l0aXZlIGVmZmVjdHMKCSAgb2YgcmVkdWNpbmcgdGhlIGxpc3QgbGVuZ3RoIGVhcmx5IG9uIGluIHRoZQoJICBwcm9jZXNzLiBBbmQgaW4gYW55IGNhc2UsIGl0J3MgdGhlIHJpZ2h0IHRoaW5nCgkgIHRvIGRvLgoJICBCYXNlZCBvbiBwYXRjaCBieSBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk4MQoKMjAxMi0wOS0yOSAwMDoyNzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogbWlub3IgdXBkYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjExMjEKCjIwMTItMDktMjggMjM6NTM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJICBmYXE6IGFkZCBtaXNzaW5nIDwvcGFyYT4gdGFnCgoyMDEyLTA5LTI4IDE1OjE3OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtaW5pb2JqZWN0OiBBbHdheXMgcmVqZWN0IFdSSVRFIGxvY2tzIG9uIFJFQURPTkxZIG1pbmlvYmplY3RzCgkgIFZlcmlmeSB0aGF0IG1hcHBpbmcgYSByZWFkLW9ubHkgbWVtb3J5IGFzIHJlYWQgZG9lc250IG1ha2UgaXQgd3JpdGFibGUKCjIwMTItMDktMjggMjA6Mzg6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBwdXJnZSBhbGwgbWVudGlvbiBvZiBsaWJvaWwsIHVwZGF0ZSBGQVEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzI4NQoKMjAxMi0wOS0yOCAxNjowMzoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgMS4wCgkgIFJld3JpdGUgY2xvY2sgcGFydC4KCSAgc3RhcnQgb24gaW50ZXJmYWNlcwoKMjAxMi0wOS0yOCAxMzoyNTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICBwd2c6IHJld29yayBkeW5hbWljIHBhZHMgZG9jcwoKMjAxMi0wOS0yOCAxMzoyNTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBwd2c6IHJld29yayBzY2hlZHVsaW5nIGRvY3MKCjIwMTItMDktMjggMTM6MjQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBwd2c6IHJlbW92ZSBzb21lIEdTVF9CT0lMRVJQTEFURQoKMjAxMi0wOS0yOCAxMToxODoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBhY3RpdmF0aW9uIGRlc2lnbiBkb2NzCgoyMDEyLTA5LTI4IDEwOjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IGFjdGl2YXRlIGRvY3MKCjIwMTItMDktMjggMTA6MDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogZml4IG1vcmUgbmVnb3RpYXRpb24gZm9yIDEuMAoKMjAxMi0wOS0yNyAxNjo1OTowNCArMDIwMCAgT2xpdmllciBCbGluIDxvbGl2aWVyLmJsaW5Ac29mdGF0aG9tZS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkbyBub3QgcmVnaXN0ZXIgcHJpbnRmIGV4dGVuc2lvbiBmb3IgJXAKCSAgVGhpcyBoYXBwZW5lZCB3aGVuIGdsaWIgd2FzIG5vdCB1c2luZyBzeXN0ZW0gcHJpbnRmLCBhbmQgY2F1c2VkIHRoZQoJICBpbnRlcm5hbCBnc3RyZWFtZXIgcHJpbnRmIGV4dGVuc2lvbnMgdG8gYmUgdXNlZCBmb3IgYWxsICVwIHByaW50ZnMsCgkgIGNhdXNpbmcgY3Jhc2hlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk3MAoKMjAxMi0wOS0yNyAxNzoyMTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBmaXggc29tZSBuZWdvdGlhdGlvbiB0byAxLjAKCjIwMTItMDktMjcgMTQ6NDI6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIHB3ZzogbW9yZSB1cGRhdGVzIGZvciAxLjAKCjIwMTItMDktMjcgMTM6NTc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IG1vcmUgdXBkYXRlcyBmb3IgMS4wCgoyMDEyLTA5LTI3IDExOjUzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiB1cGRhdGUgYm9pbGVyIHRvIDEuMAoKMjAxMi0wOS0yNyAxMTowNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYWxzbyByZWYgdGhlIGludGVybmFsIHBhZCBmb3IgYWN0aXZhdGUgZnVuY3Rpb25zCgkgIEFsc28gdGFrZSBhIHJlZiB0byB0aGUgaW50ZXJuYWwgcGFkIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMKCjIwMTItMDktMjQgMTg6MjY6MTYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgcHJveHlwYWQ6IEhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIHBhZCB3aGlsZSBwdXNoaW5nIHRocm91Z2ggaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDgwOQoKMjAxMi0wOS0yNSAxNDo0NDo1NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogVGVzdCB0aGUgY2FzZSB3aGVyZSBnaG9zdCBwYWRzIGFyZSByZW1vdmVkIHdoaWxlIHN0cmVhbWluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0ODA5CgoyMDEyLTA5LTI3IDA5OjQ0OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogZW5hYmxlIGxpYnJhcnkgYWJpIGNoZWNrcwoKMjAxMi0wOS0yNiAyMzozMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCB1cCBiYXNlc3JjL2Jhc2VzaW5rIGRvY3MgZm9ybWF0dGluZwoKMjAxMi0wOS0yNiAxNzowODozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrcwoJICBFbmFibGUgYWJpIGNoZWNrcyBhZ2Fpbi4KCSAgRml4IGFiaSBzaXplcyBmb3IgeDg2XzY0LCBjb3B5IHRoZSBmaWxlIHRvIG90aGVyIGFyY2hzLgoKMjAxMi0wOS0yNiAxNjoyNjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHVwZGF0ZSBkb2NzIGZvciAxLjAgQVBJCgoyMDEyLTA5LTI2IDE0OjE1OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiB1c2UgcHJvcGVyICd0cmFuc2ZlciBmbG9hdGluZycgYW5ub3RhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MDk5CgoyMDEyLTA5LTI2IDEzOjE5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IHNlbmQgU1RSRUFNLVNUQVJUIGV2ZW50CgkgIFNlbmQgYSBTVFJFQU1fU1RBUlQgZXZlbnQgd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIGluIHB1bGwgbW9kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQyNAoKMjAxMi0wOS0yNiAxMDo1NToyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBtYXJrIEdzdFNlZ21lbnRGbGFncyBhcyBmbGFncyByYXRoZXIgdGhhbiBlbnVtCgkgIC4uLiB3aGljaCByZWFsbHkgbWFrZXMgYSBkaWZmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZQoJICBhIGZsYWdzIHZhbHVlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgZmxhZ3MsIHdoaWNoIGlzIGhhcmQKCSAgdG8gZG8gYXMgYW4gZW51bSB0eXBlLgoKMjAxMi0wOS0yNiAxMDo1NDowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZXRpbWVzdGFtcCBib3RoIHB0cyBhbmQgZHRzIHdoZW4gZG9pbmcgc28KCjIwMTItMDktMjYgMTU6MDE6NDIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTW92ZSBzb21lIHJ1biBvZiB0aGUgbWlsbCBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIExPRyBsZXZlbAoKMjAxMi0wOS0yNiAxNDoyMzo1MiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPdXRwdXQgdGltZXN0YW1wcyBhZnRlciBhIHNlZWsuCgkgIFJlaW5pdGlhbGlzZSB0aGUgRFRTIGFmdGVyIGEgc2VlayBzbyBhcyB0byBjb250aW51ZQoJICBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgd2hlbiBiYXNlcGFyc2UgaXMgbm90IGRvd25zdHJlYW0KCSAgb2YgYSBkZW11eGVyLgoJICBGaXhlczogIzY4NDUzOAoKMjAxMi0wOS0yNSAxNzowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICBkb2NzOiB1cGRhdGVzCgkgIE1JTUUtdHlwZSAtPiBNZWRpYSB0eXBlCgkgIEZpeCBzb21lIG9sZCBnc3QtaW5zcGVjdCBvdXRwdXQKCjIwMTItMDktMjUgMTY6NTM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIDEuMCBBUEkKCjIwMTItMDktMjUgMTU6MTE6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgc2VjdGlvbiBmb3IgbWV0YWRhdGEKCjIwMTItMDktMjUgMTM6MDk6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBGYWlsIGlmIG5vIHZhbGlkIGVsZW1lbnQgZmFjdG9yeSBtZXRhZGF0YSBpcyBzZXQKCjIwMTItMDktMjUgMTM6MDk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IEZhaWwgaWYgbm8gdmFsaWQgcGx1Z2luIG1ldGFkYXRhIGlzIHNldAoKMjAxMi0wOS0yNSAxNTowNjo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhbHNvIHRyYWNrIGFuZCBzdG9yZSBzZWdtZW50IGluZm8gaW4gc2luZ2xlIHNlZ21lbnQgbW9kZQoKMjAxMi0wOS0yNSAxNDo0MDoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGZpeCB1cCB0aGUgbWFudWFsCgkgIE1JTUUtdHlwZSAtPiBtZWRpYSB0eXBlcwoJICBGaXggdXAgdGhlIG1hbnVhbCBpbiB2YXJpb3VzIHBsYWNlcyB3aXRoIHRoZSAxLjAgd2F5IG9mIGRvaW5nIHRoaW5ncwoJICBzdWNoIGFzIHByb2Jlcywgc3RhdGljIGVsZW1lbnRzLCBzY2hlZHVsaW5nLCAuLi4KCSAgQWRkIHBvcnRpbmcgZnJvbSAwLjEwIHRvIDEuMCBjaGFwdGVyLgoJICBBZGQgcHJvYmUgZXhhbXBsZSB0byBidWlsZC4KCSAgUmVtb3ZlIHNvbWUgZG9jcyBmb3IgcmVtb3ZlIGNvbXBvbmVudHMgc3VjaCBhcyBHc3RNaXhlciBhbmQKCSAgR3N0UHJvcGVydHlQcm9iZSwgWE1MLi4uCgoyMDEyLTA5LTI0IDE2OjUwOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgZG9jczogZ3N0LXB5dGhvbiBpcyBubyBtb3JlCgkgIGdzdC1weXRob24gaXMgbm8gbW9yZSBhbmQgZ3N0LWxpYmF2IGlzIG9uZSBvZiB0aGUgbWFpbiBtb2R1bGVzIHRoYXQKCSAgd2UgcmVsZWFzZS4KCjIwMTItMDktMjQgMTY6MzE6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRvY3M6IGZpeCBiYXNlc2luayBkb2NzCgoyMDEyLTA5LTI0IDE2OjI1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgZG9jczogdXBkYXRlIEZBUQoJICBDaGFuZ2UgdmVyc2lvbnMuCgkgIFVzZSB0b29scyB3aXRoIHZlcnNpb24gcHJlZml4LgoKMjAxMi0wOS0yNSAxMzoxNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciB0eXBvIGZpeAoKMjAxMi0wOS0yNSAxMzoxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggdHlwbyBpbiB0cmFuc2xhdGVkIHN0cmluZwoJICBTcG90dGVkIGJ5IENocmlzIExlb25hcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3NTUKCjIwMTItMDktMjUgMDk6Mjc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogUmVtb3ZlIDAuMTEuOVgtPjEuMC4wIHZlcnNpb24gbWFuZ2xpbmcKCjIwMTItMDktMjUgMDE6MDI6MDMgKzAxMDAgIEpvc2VwIFRvcnJhIFZhbGxlcyA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IHByaW50ZiBmb3JtYXQgZml4ZXMgdG8gbWFrZSBpbnRlbCBjb21waWxlciBoYXBweQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNjU3CgoyMDEyLTA5LTI1IDAwOjU1OjU5ICswMTAwICBKb3NlcCBUb3JyYSBWYWxsZXMgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy90b29scy5oOgoJICBNYWtlIGludGVsIGNvbXBpbGVyIGhhcHBpZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MjY1NwoKMjAxMi0wOS0yNCAxNjozMTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgKGJ1ZyBmaXhpbmcpCgo9PT0gcmVsZWFzZSAxLjAuMCA9PT0KCjIwMTItMDktMjQgMTI6MTk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuMAoKMjAxMi0wOS0yNCAwMDozOToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIDAuMTEgcmVmZXJlbmNlcyBpbiBwb3J0aW5nIGd1aWRlCgoyMDEyLTA5LTI0IDAwOjM3OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiByZW5hbWUgcG9ydGluZy10by0wLjExLnR4dCB0byBwb3J0aW5nLXRvLTEuMC50eHQKCjIwMTItMDktMjMgMTk6NTY6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZml4IEZJWE1FIHByaW50aW5nIGZvciB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkKCjIwMTItMDktMjMgMTc6MzA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB1cGRhdGUgcmVsZWFzZSBkb2MKCSAgQ3JlYXRlIHRhZ3MgZm9yIHJlbGVhc2VzIHdpdGhvdXQgdGhlIHVnbHkgUkVMRUFTRS0gcHJlZml4LgoKMjAxMi0wOS0yMyAxMjo0MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvbid0IGZvcndhcmQgcmFuZG9tIHN0cmVhbS1zdGFydCBldmVudAoJICBJdCdzIG5vdCByaWdodCwgYW5kIHdlIGRvbid0IGtub3cgd2hhdCBleHRyYSBwcm9wZXJ0aWVzCgkgIHRoYXQgZXZlbnQgbWlnaHQgaGF2ZSBzZXQgaW4gZnV0dXJlIChlLmcuIHNwYXJzZW5lc3MpLgoJICBUaGlzIGNoYW5nZSBtZWFucyBjb2xsZWN0cGFkIHVzZXJzIG5lZWQgdG8gY3JlYXRlIHRoZWlyCgkgIG93biBzdHJlYW0tc3RhcnQgZXZlbnQgbm93LiBXZSBjb3VsZCBhZGQgYSB1dGlsaXR5CgkgIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIHN0cmVhbS1zdGFydCBldmVudCBiYXNlZCBvbgoJICB0aGUgaW5wdXQgc3RyZWFtLXN0YXJ0IGV2ZW50cy4KCjIwMTItMDktMjIgMTY6MDc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRmOTYyZjcgdG8gNmMwYjUyYwoKMjAxMi0wOS0yMSAyMToxMzoyNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgY29udHJvbGxlciBkb2N1bWVudGF0aW9uCgoyMDEyLTA5LTIxIDIxOjEzOjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiB1cGRhdGUgY29udHJvbGxlciBkb2N1bWVudGF0aW9uCgoyMDEyLTA5LTE4IDE1OjIyOjAzICswMjAwICBCYXN0aWFuIFdpbmtsZXIgPGJ1ekBuZXRidXoub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IEZpeCBzeW50YXggZm9yIHZhbHVlIGxpc3RzIGluIGNhcHMgc3RyaW5ncwoJICBWYWx1ZSBsaXN0cyB1c2UgY3VybHkgYnJhY2tldHMgaW5zdGVhZCBvZiBwYXJlbnRoZXNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MjkzCgoyMDEyLTA5LTIwIDE0OjQ4OjE3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHBhZCBwcm9iZXMgb25seSBvbmNlCgkgIEFsc28gYWRkIHRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgaWYgYSBwYWQgcHJvYmUgaXMgcmVtb3ZlZCB3aGlsZSBpdCdzCgkgIGNhbGxiYWNrIGlzIHJ1bm5pbmcsIHRoZSBjbGVhbnVwX2hvb2sgaXNuJ3QgY2FsbGVkIGFnYWluIGlmIGl0CgkgIHJldHVybnMgR1NUX1BBRF9QUk9CRV9SRU1PVkUKCjIwMTItMDktMTkgMTU6MDE6NDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogQWRkIGZ1bmN0aW9ucyB0byBzYWZlbHkgYWNjZXNzIEdzdFByb2JlSW5mbyBkYXRhIHBvaW50ZXIKCSAgVGhpcyBpcyBzbyB0aGF0IGludHJvc3BlY3Rpb24gYmFzZWQgYmluZGluZ3MgY2FuIGFjY2VzcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQwMgoKMjAxMi0wOS0xOSAyMzoyNTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byAwLjggR3N0QmluIEFQSSBmcm9tIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MDQ4CgoyMDEyLTA5LTE5IDE1OjE0OjM1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHRyYW5zZm9ybSBHQVAgZXZlbnQgaW4gc2luZ2xlIHNlZ21lbnQgbW9kZQoKMjAxMi0wOS0xOSAwOTo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogY29sbGVjdHBhZHMgZG9jIGZpeGVzCgoyMDEyLTA5LTE4IDIxOjQ5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNoZWNrIGFjcXVpcmUgcmVzdWx0IHZhbHVlCgkgIENoZWNrIHRoZSByZXN1bHQgdmFsdWUgZnJvbSBfYnVmZmVyX3Bvb2xfYWNxdWlyZSgpIGFuZCByZXR1cm4gdGhlCgkgIHZhbHVlIHdoZW4gYWxsb2NhdGlvbiBmYWlsZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQyODUKCjIwMTItMDktMTggMTI6MTQ6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByZWZjb3VudCBidWcgYnkgdW5yZWZmaW5nIHRoZSBjb3JyZWN0IHZhcmlhYmxlCgo9PT0gcmVsZWFzZSAwLjExLjk5ID09PQoKMjAxMi0wOS0xNyAxNzo1Njo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTkKCjIwMTItMDktMTcgMTM6MzU6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkgIFJlbW92ZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSBndWFyZCBhbmQgZGVmaW5lcwoKMjAxMi0wOS0xNyAxMzowOTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHBhZDogQWRkIHBhcmVudCBwYXJhbWV0ZXIgdG8gdGhlIGxpbmsgYW5kIHVubGluayBmdW5jdGlvbnMKCSAgRml4ZXMgcGFydCBvZiBidWcgIzY4Mzk5NS4KCjIwMTItMDktMTYgMjM6MjA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHNhbXBsZTogYWRkIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIGZ1bmN0aW9ucyBmb3IgR3N0U2FtcGxlCgkgIFNpbmNlIHRoZXNlIHRoaW5ncyBhcmUgaW5zaWRlIHRhZ2xpc3RzIG5vdywgaXQgd291bGQgYmUgZ29vZCB0byBiZQoJICBhYmxlIHRvIHByaW50IHRoZW0gYW5kIGRlc2VyaWFsaXNlIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEzMjIKCjIwMTItMDktMTUgMjE6NTY6MDcgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBTd2l0Y2ggdG8gRjE4IG5hbWluZyBvZiB0aGUgcGFja2FnZQoKMjAxMi0wOS0xNSAxODo0MzozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB1c2UgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEgdG8gcmVwbGFjZSBvYnNvbGV0ZSBBUEkKCjIwMTItMDktMTQgMTc6NTI6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgcmVwbGFjZSBnc3RfdGFnX2xpc3RfZnJlZSB3aXRoIGdzdF90YWdfbGlzdF91bnJlZgoKMjAxMi0wOS0xNCAxNzowMDoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgcmVwbGFjZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgd2l0aCBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YWRhdGEKCjIwMTItMDktMDYgMTY6MzI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiB3aGl0ZXNwYWNlIGZpeAoKMjAxMi0wOS0xNCAxNDowODoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgIGRvY3M6IGluZGV4ZXJzIGFyZSBubyBtb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQwMTgKCjIwMTItMDktMTQgMTM6MzQ6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHRlc3RzOiBmaXggZm9yIGFwcHNpbmsgcmV0dXJuIHZhbHVlIGFkZGl0aW9uCgoyMDEyLTA5LTE0IDAyOjU0OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjk0ID09PQoKMjAxMi0wOS0xNCAwMjo0NjozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45NAoKMjAxMi0wOS0xNCAwMToyODo0NiArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB0cnkgdG8gcHJldHR5LXByaW50IGV2ZW50IGFmdGVyIHdlJ3ZlIGdpdmVuIGF3YXkgb3duZXJzaGlwCgkgIE1pZ2h0IGNhdXNlIGNyYXNoZXMgd2l0aCBkZWJ1ZyBsb2dnaW5nIGVuYWJsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM5OTYKCjIwMTItMDktMTQgMDE6MTc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEyLTA5LTE0IDAwOjMwOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBnc3Rjb21wYXQ6IGZpeCBiYWNrd2FyZHMgY29tcGF0IG1hY3JvIGZvciBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24KCSAgTmFtZSBpdCBwcm9wZXJseSwgc28gaXQsIGxpa2UsIHdvcmtzLiBDbGVhcmx5IG5vIG9uZSBhY3R1YWxseQoJICB1c2VkIHRoYXQuLgoKMjAxMi0wOS0xMyAxMjowMDowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogZml4IGZvcm1hdHMgYSBsaXR0bGUKCjIwMTItMDktMTMgMTE6Mzg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgYmFzZXBhcnNlIGZ1bmN0aW9uCgoyMDEyLTA5LTEzIDExOjM4OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmb3VyY2MgaXMgbm8gbW9yZQoKMjAxMi0wOS0xMyAxMTozNTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZml4IHNvbWUgZG9jcwoJICBmcm9tIGdpdCBncmVwIGZvciBmZm1wZWdjb2xvcnNwYWNlIGFuZCB4LXJhdy0KCjIwMTItMDktMTMgMTA6NDg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBwYXJzZTogYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24KCjIwMTItMDktMTMgMTA6MjQ6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW5kZW50IGZpeAoKMjAxMi0wOS0xMiAyMjo0NDozNyAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBZGQgYSBtb2RlL2ZsYWcgZm9yIGRpc2FibGluZyBQVFMgaW50ZXJwb2xhdGlvbgoJICBUbyBiZSB1c2VkIGJ5IHN1Yi1jbGFzc2VzIGltcGxlbWVudGluZyB2aWRlbyBmb3JtYXRzIHdpdGggcmVvcmRlcmluZwoJICBzdWNoIGFzIE1QRUcuCgoyMDEyLTA5LTEwIDE4OjM4OjU3IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEhhbmRsZSBHQVAgYW5kIHN0aWxsLWZyYW1lIGV2ZW50cy4KCSAgSGFja3ksIGJlY2F1c2UgdGhlIHN0aWxsLWZyYW1lIGNvZGUgYWxsIGxpdmVzIGluIC1iYXNlLCB3aGVyZSB3ZQoJICBjYW4ndCB1c2UgaXQgLSBzbyB0aGlzIGlzIGEgaGFja3kgZHVwbGljYXRpb24gb2YgLWJhc2UgY29kZS4gTm90CgkgIHN1cmUgd2hpY2ggd2F5IHRvIGZpeCB0aGlzOiBNb3ZlIGJhc2VwYXJzZSB0byAtYmFzZSwgb3IgbW92ZSBzdGlsbC1mcmFtZQoJICBldmVudHMgdG8gY29yZT8KCjIwMTItMDktMDQgMTk6Mzg6MjYgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVzdHJ1Y3R1cmUgZXZlbnQgaGFuZGxpbmcKCSAgTWFrZSB0aGUgZXZlbnQgaGFuZGxpbmcgbW9yZSBsaWtlIHdoYXQgdmlkZW9kZWNvZGVyIGRvZXMsCgkgIHRvIGVuc3VyZSB0aGF0IGFsbCBldmVudHMgYXJlIHBhc3NlZCB0byBjaGlsZCBjbGFzc2VzIGJlZm9yZSBiZWluZwoJICBwbGFjZWQgb24gdGhlIHBlbmRpbmcgcXVldWUgb3IgcHVzaGVkIG9ud2FyZC4KCjIwMTItMDktMDMgMTA6MzA6MDggLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU3RvcmUgaW5jb21pbmcgY2FjaGVkIGV2ZW50cyBpbiByZXZlcnNlIG9yZGVyCgkgIFJldmVyc2UgdGhlIGxpc3QganVzdCBiZWZvcmUgc2VuZGluZy4gUHJlcGVuZGluZyBpcyBtb3JlIGVmZmljaWVudAoJICB0aGFuIGFwcGVuZGluZywgc28gdGhpcyBzYXZlcyBzb21lIGN5Y2xlcy4KCjIwMTItMDktMDIgMjM6MzI6NTAgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRmlyc3QgYXR0ZW1wdCBhdCBoYW5kbGluZyBib3RoIERUUyBhbmQgUFRTCgoyMDEyLTA5LTEzIDAwOjM4OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYWRkIHdhcm5pbmcgd2hlbiB3ZSBnZXQgc29tZXRoaW5nIGVsc2UgdGhhbiBhIHNhbXBsZSBmb3IgYSBzYW1wbGUgdGFnCgkgIEZhY2lsaXRhdGUgR3N0QnVmZmVyIC0+IEdzdFNhbXBsZSB0cmFuc2l0aW9uIGZvciBzb21lIHRhZ3MsCgkgIGNvdWxkIGJlIGhhcmQgdG8gY2F0Y2ggb3RoZXJ3aXNlIHdoZW4gY3JlYXRpbmcgdGFncywgc2luY2UKCSAgaXQnbGwgb25seSBiZSBhcHBhcmVudCBsYXRlciB3aGVuIHNvbWVvbmUgdHJpZXMgdG8gcmVhZCB0aGUKCSAgdGFncy4KCjIwMTItMDktMTIgMTQ6MTQ6MzEgKzAyMDAgIEFuZHJlYXMgRnJpc2NoIDxmcmF4aW5hc0BvcGVuZHJlYW1ib3gub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBkb24ndCBjcmFzaCBpZiBubyBlbGVtZW50IGtsYXNzIGhhcyBiZWVuIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzODY1CgoyMDEyLTA5LTEyIDIzOjEyOjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGEgbWlzcGxhY2VkICcpJwoKMjAxMi0wOS0xMiAyMToyMDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBlcnJvcjogZG9uJ3QgdGVsbCBwZW9wbGUgdG8gZmlsZSBhIGJ1ZyBmb3IgbmVnb3RpYXRpb24gZXJyb3JzCgoyMDEyLTA5LTEyIDIwOjU0OjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogcmVtb3ZlIGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsCgkgIFJlbmFtZSBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCgpIHRvIGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCgpIGFuZCBmaXggYWxsCgkgIGludm9jYXRpb25zLgoKMjAxMi0wOS0xMiAxNzoxNjo0MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBmaXggYnVpbGQgb24gQ3lnd2luCgkgIC4uLiB3aGVyZSBfX2ZidWZzaXplIGlzIG5vdCBhdmFpbGFibGUKCjIwMTItMDktMTIgMTM6MDA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgUmV2ZXJ0ICJ0ZXN0czogZml4IGJ1ZmZlciBsZWFrIGluIHF1ZXVlMiB1bml0IHRlc3QiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjMyZmQyOTUzZWIwMGY2OTRiNjY3ZTc3OTY3MDRmNTk3NGNlYTQ1Mi4KCSAgVGhpcyB3YXMgYWxyZWFkeSBmaXhlZC4KCjIwMTItMDUtMjQgMTM6MDg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcG9zc2libGUgZGF0YSBjb3JydXB0aW9uIGluIHJpbmcgYnVmZmVyIG1vZGUgd2hlbiBzZWVraW5nCgkgIEZpeCByYWNlIHRoYXQgY291bGQgY2F1c2UgZGF0YSBjb3JydXB0aW9uIHdoZW4gc2Vla2luZyBpbiByaW5nIGJ1ZmZlcgoJICBtb2RlLgoJICBJbiBwZXJmb3JtX3NlZWtfdG9fb2Zmc2V0KCksIGNhbGxlZCBmcm9tIHRoZSBkZW11eGVyJ3MgcHVsbF9yYW5nZQoJICByZXF1ZXN0LCB3ZSBkcm9wIHRoZSBsb2NrLCB0ZWxsIHVwc3RyZWFtICh1c3VhbGx5IGEgaHR0cCBzb3VyY2UpCgkgIHRvIHNlZWsgdG8gYSBkaWZmZXJlbnQgb2Zmc2V0LCB0aGVuIHJlLWFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIHdlCgkgIGRvIHRoaW5ncyB0byB0aGUgcmFuZ2VzLiBIb3dldmVyLCBiZXR3ZWVuIHVzIHNlbmRpbmcgdGhlIHNlZWsgZXZlbnQKCSAgYW5kIHJlLWFjcXVpcmluZyB0aGUgbG9jaywgdGhlIHNvdXJjZSB0aHJlYWQgbWlnaHQgYWxyZWFkeSBoYXZlIHB1c2hlZAoJICBzb21lIGRhdGEgYW5kIG1vdmVkIGFsb25nIHRoZSByYW5nZSdzIHdyaXRpbmdfcG9zIGJleW9uZCB0aGUgc2VlawoJICBvZmZzZXQuIEluIHRoYXQgY2FzZSB3ZSBkb24ndCB3YW50IHRvIHNldCB0aGUgd3JpdGluZyBwb3NpdGlvbiBiYWNrCgkgIHRvIHRoZSByZXF1ZXN0ZWQgc2VlayBwb3NpdGlvbiwgYXMgaXQgd291bGQgY2F1c2UgZGF0YSB0byBiZSB3cml0dGVuCgkgIHRvIHRoZSB3cm9uZyBvZmZzZXQgaW4gdGhlIGZpbGUgb3IgcmluZyBidWZmZXIuCgkgIFJlcHJvZHVjaWJsZSBkb2luZyBzZWVrLWVtdWxhdGVkIGZhc3QtZm9yd2FyZC9iYWNrd2FyZCBvbiAwMDY2NTMuCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNS0yNCAxMzowNjo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IGZpeCBidWZmZXIgbGVhayBpbiBxdWV1ZTIgdW5pdCB0ZXN0CgoyMDEyLTA5LTEyIDEyOjIzOjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiByZW1vdmUgZ2xpYiBkZXByZWNhdGlvbiBjb21wYXRpYmlsaXR5IHRyaWNrZXJ5CgoyMDEyLTA5LTEyIDEyOjIyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjazogcG9ydCB0byB0aGUgbmV3IEdMaWIgdGhyZWFkIEFQSQoKMjAxMi0wOS0xMiAxMTo1MjoyNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBwb3J0IHRvIG5ldyBHTGliIHRocmVhZCBBUEkKCjIwMTItMDktMTIgMTE6NDk6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgdGVzdHM6IGJlbmNobWFya3M6IGFsaWduIGVycm9yIG1lc3NhZ2Ugd2l0aCBjb2RlCgoyMDEyLTA5LTExIDE5OjQ5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBleHBvc2UgZ3N0X3BhZF9tb2RlX2dldF9uYW1lKCkgYW5kIHVzZSBpdCBpbiBiYXNlcGFyc2UKCjIwMTItMDktMTEgMTM6MjI6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiB1cGRhdGUgZm9yIGdzdC1mZm1wZWcgLT4gZ3N0LWxpYmF2CgkgIE5vdyB0aGF0IHdlIGhhdmUgYSBnc3QtbGliYXYgZ2l0IHJlcG9zaXRvcnkgKHN5bWxpbmtlZCB0byBnc3QtZmZtcGVnKS4KCjIwMTItMDktMTEgMTc6Mjc6MDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGp1c3QgdGVzdCBsb2dpYyBmb3Igc2NoZWR1bGluZyBtb2RlIHdpdGggZmxhZ1MKCjIwMTItMDktMTEgMTY6Mzk6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGFkZCBjb252ZW5pZW5jZSBBUEkgdG8gcXVlcnkgZm9yIHNjaGVkdWxpbmcgbW9kZSBhbmQgZmxhZ3MKCjIwMTItMDktMTEgMTY6Mjk6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnRzOiByZW1vdmUgU1RSRUFNX0NPTkZJRwoJICBXZSB3b24ndCBiZSBhYmxlIHRvIGltcGxlbWVudCB0aGlzIHNvIGl0J3MgYmV0dGVyIHRvIG1vdmUgaXQgb3V0IG9mIHRoZSB3YXkuCgoyMDEyLTA5LTExIDE2OjA5OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogY2xlYW4gdXAgaGVhZGVyIGluZGVudGF0aW9uCgoyMDEyLTA5LTExIDExOjM0OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhbGxvdyBOVUxMIHN0cmVhbV9pZCBhbHNvIHdoZW4gMCBzcmNwYWRzCgkgIFdlIHVzdWFsbHkgZmlyc3QgY3JlYXRlIHRoZSBzdHJlYW1faWQgZm9yIHRoZSBzdHJlYW1fc3RhcnQgZXZlbnQgYW5kIHRoZW4gYWRkCgkgIHRoZSBwYWQgdG8gdGhlIGVsZW1lbnQuIFRoaXMgbWVhbnMgdGhhdCB0aGlzIGZ1bmN0aW9ucyBzaG91bGQgd29yayB3aGVuIHRoZXJlCgkgIGFyZSBubyBwYWRzIG9uIHRoZSBlbGVtZW50IHlldC4KCjIwMTItMDktMTAgMjE6Mzk6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgYmFzZXBhcnNlLCB0eXBlZmluZDogb25seSBhY3RpdmF0ZSBpbiBwdWxsIG1vZGUgaWYgdXBzdHJlYW0gaXMgc2Vla2FibGUKCSAgVXBzdHJlYW0gbWlnaHQgc3VwcG9ydCBwdWxsIG1vZGUsIGJ1dCBvbmx5IHNlcXVlbnRpYWwgcHVsbHMsCgkgIHdoaWNoIGlzbid0IGdvbm5hIGRvIG11Y2ggZm9yIHVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0OTI3CgoyMDEyLTA5LTEwIDIwOjMwOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZy10by0wLjExLnR4dDogc29tZSBtaW5vciBmaXhlcwoKMjAxMi0wOS0xMCAxNjo1Mjo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIHNhbXBsZTogZnJlZSBpbmZvIHN0cnVjdHVyZSB3aXRoIHNhbXBsZSBpZiB0aGVyZSBpcyBvbmUgYW5kIGZpeCBjb3B5IHdpdGggTlVMTCBpbmZvIHN0cnVjdHVyZQoKMjAxMi0wOS0xMCAxMjoyMDoxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIHBhZGRpbmcgdG8gR3N0TWFwSW5mbwoKMjAxMi0wOS0xMCAxMjoxMjowMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgbGliczogYWRqdXN0IGNvbW1lbnQgc3R5bGUKCjIwMTItMDktMTAgMTI6MTE6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdDogcmVtb3ZlIHNvbWUgZGVmdW5jdCBjb21tZW50ZWQgY29kZQoKMjAxMi0wOS0xMCAxMjowMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IGltcHJvdmUgcG9ydGluZyBkb2MKCjIwMTItMDktMTAgMTA6MDg6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkgIHRlc3RzOiBkaXNhYmxlIGRlcHJlY2F0aW9uIHdhcm5pbmdzCgkgIGRlZmluZSBHTElCX0RJU0FCTEVfREVQUkVDQVRJT05fV0FSTklOR1MgZWFybGllciBzbyB0aGF0IGl0IGlzIGRlZmluZWQgYmVmb3JlCgkgIHRoZSBnbGliIGhlYWRlcnMgYXJlIGxvYWRlZCBvciBlbHNlIHdlIHRyaXAgb3ZlciB0aGUgR1ZhbHVlQXJyYXkgZGVwcmVjYXRpb25zIGluCgkgIGdzdC1pbnNwZWN0LmMuCgoyMDEyLTA5LTA3IDAxOjAyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBmaXggZGlyZWN0IGNvbnRyb2wgYmluZGluZyBkb3VibGUgLT4gaW50IGNvbnZlcnNpb24KCSAgUm91bmQgcHJvcGVybHkgdG8gbmVhcmVzdCBpbnRlZ2VyLiBGaXhlcyBjb250cm9sbGVyCgkgIHVuaXQgdGVzdCBvbiBQb3dlclBDIEc0LgoKMjAxMi0wOS0wNiAxNTowNjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IGZpeCBidXMvZmQgbGVhayBpbiBoZWxsbyB3b3JsZCBleGFtcGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM0NzAKCjIwMTItMDktMDUgMTk6NTU6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkgIGdzdC1lbGVtZW50LWNoZWNrLm00OiBmaXggYWN0aW9uLWlmLWZvdW5kIGFuZCBub3QtZm91bmQgaW52b2NhdGlvbgoJICBBcmd1bWVudHMgZ290IHNoaWZ0ZWQgYmFjayBieSBvbmUuCgoyMDEyLTA5LTA1IDE1OjM3OjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGhhbmRsZSBHQVAgZXZlbnQKCjIwMTItMDktMDQgMTI6MTM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHdhaXRfZW9zIC0+IHdhaXRfZXZlbnQKCSAgRml4IGEgRklYTUUuIE5vdyB3ZSBjYW4gYWxzbyBwYXNzIHRoZSBHQVAgZXZlbnQgdG8gdGhlIHN1YmNsYXNzLgoKMjAxMi0wOS0wMyAxODo0NTowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiB1cGRhdGUgTWFrZWZpbGUuYW0gYW5kcm9pZCBiaXRzIGluIGNvbnRyb2xsZXIgZXhhbXBsZQoJICBTaG91bGQgZml4IGJ1aWxkIGZhaWx1cmUgcmVwb3J0ZWQgb24gSVJDLgoKMjAxMi0wOC0zMCAxOToxNTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBzdGlja3kgZXZlbnRzIGFsc28gYWZ0ZXIgcGFkIGJsb2NrCgkgIFJlY2hlY2sgZm9yIHN0aWNreSBldmVudHMgYWZ0ZXIgZG9pbmcgYSBwYWQgYmxvY2sgYmVjYXVzZSB0aGUgcGFkIGJsb2NrIGNvdWxkCgkgIGhhdmUgY2F1c2VkIGEgcmVsaW5rIGFuZCB0aGVuIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBldmVudHMgdG8gdGhlIG5ld2x5IGxpbmtlZAoJICBwYWQuCgkgIEZpeGVzIHRoaW5ncyBsaWtlIHN3aXRjaGluZyBvZiB2aXN1YWxpc2F0aW9ucy4KCjIwMTItMDktMDIgMDI6MDQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBmb3IgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uIC0+IF9kdXJhdGlvbl9jaGFuZ2VkKCkKCjIwMTItMDktMDIgMDE6MTc6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogcmVuYW1lIEdTVF9NRVNTQUdFX0RVUkFUSU9OIC0+IEdTVF9NRVNTQUdFX0RVUkFUSU9OX0NIQU5HRUQKCSAgVGhlIGR1cmF0aW9uIHNob3VsZCBiZSByZS1xdWVyaWVkIHZpYSBhIHF1ZXJ5IHVzaW5nIHRoZQoJICBub3JtYWwgcGF0aCwgd2UgZG9uJ3Qgd2FudCBhcHBsaWNhdGlvbnMgdG8gdXNlIHRoZSB2YWx1ZQoJICBmcm9tIHRoZSBtZXNzYWdlIGl0c2VsZiwgc2luY2UgaXQgbWlnaHQgbm8gbWF0Y2ggd2hhdCBhCgkgIGR1cmF0aW9uIHF1ZXJ5IGRvbmUgZnJvbSB0aGUgc2luayB1cHN0cmVhbSBtaWdodCB5aWVsZC4KCSAgQWxzbyBkaXNhYmxlcyBkdXJhdGlvbiBjYWNoaW5nIGluIEdzdEJpbi4gSXQgc2hvdWxkIGJlCgkgIGFkZGVkIGJhY2sgYWdhaW4gYXQgc29tZSBwb2ludC4KCjIwMTItMDktMDEgMjM6NTQ6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYWRkIHJlbWluZGVyIHRvIHJlbW92ZSBHU1RfVU5TVEFCTEVfQVBJIHN0dWZmIGJlZm9yZSAxLjAuMAoKMjAxMi0wOS0wMSAxODowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIC5naXRpZ25vcmU6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00OgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSAgZ3N0LWVsZW1lbnQtY2hlY2subTQ6IHJlbmFtZSBBTV9HU1RfRUxFTUVOVF9DSEVDSyB0byBHU1RfRUxFTUVOVF9DSEVDSwoJICBBbmQgYWxsb3cgcGFzc2luZyBvZiBhIG1pbmltdW0gdmVyc2lvbiAoaWYgbm90IG5lZWRlZCwgcGFzcyAxLjApLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTY4CgoyMDEyLTA5LTAxIDE3OjUwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSAgdGVzdHM6IGFkZCBjaGVjayBmb3IgZ3N0LWluc3BlY3QgLS1leGlzdHMgZnVuY3Rpb25hbGl0eQoKMjAxMi0wOS0wMSAxNzo0Nzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBhZGQgLS1leGlzdHMgYW5kIC0tYXRsZWFzdC12ZXJzaW9uIG9wdGlvbiB0byBnc3QtaW5zcGVjdAoJICBGb3IgY2hlY2tpbmcgaWYgYW4gZWxlbWVudCBleGlzdHMgd2l0aCBhIGdpdmVuIG1pbmltdW0gdmVyc2lvbi4KCSAgV2lsbCB1c2UgdGhhdCBpbiBvdXIgbmV3IEdTVF9FTEVNRU5UX0NIRUNLIG00IG1hY3JvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTY4CgoyMDEyLTA5LTAxIDE3OjMyOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGRpc2FibGUgdmVyc2lvbiBtYW5nbGluZyBmb3IgcG9zdC0xLjAuMCByZWxlYXNlCgkgIEp1c3QgaW4gY2FzZSB3ZSBkb24ndCBncmVwIGZvciBGSVhNRSAxLjAgYmVmb3JlIHRoZSByZWxlYXNlLgoKMjAxMi0wOC0zMSAxMTozMTo0NSAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBHQVAgZXZlbnRzIGFjdHVhbGx5IHRyaWdnZXIgcHJlcm9sbAoJICBTbGlnaHRseSBoYWNreSBhcHByb2FjaCBuZWVkaW5nIHJlZmluZW1lbnQKCjIwMTItMDgtMzEgMDY6MjU6MjIgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBtYWtlIHNvbWUgZGVidWcgc3RhdGVtZW50cyBtb3JlIHZlcmJvc2UKCjIwMTItMDgtMzEgMDY6MjM6NTMgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZ2hvc3RwYWQ6IE1ha2Ugc29tZSBkZWJ1Z2dpbmcgbW9yZSB2ZXJib3NlCgkgIEFsc28sIHJlbW92ZSBhbiB1bm5lY2Vzc2FyeSAjaW5jbHVkZSBpbiBpbnB1dC1zZWxlY3RvcgoKMjAxMi0wOC0yOCAxNTo0NDo0OCAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgR3N0U2VnbWVudDogRml4IGRvYyBkZXNjcmlwdGlvbiBzdHJpbmcgbGFzdF9zdG9wLT5wb3NpdGlvbgoKMjAxMi0wOC0zMCAxOTo0Nzo1NyArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNsb2NrIGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk5NwoKMjAxMi0wOC0yOSAyMjo1NzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogb3V0cHV0IGdzdC1pbnNwZWN0IGVycm9ycyB0byBzdGRlcnIKCjIwMTItMDgtMjggMDc6Mzk6NTAgKzAyMDAgIEFsYmFuIEJyb3dhZXlzIDxwcmFoYWxAeWFob28uY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY3Jhc2ggc2VyaWFsaXNpbmcgYSAwIGZsYWdzIHZhbHVlIHdoZW4gdGhlcmUncyBubyBuYW1lIGZvciBpdAoJICBGaXhlcyBzZWdmYXVsdCB3aGVuIGRvaW5nIGdzdC1sYXVuY2gtMS4wIC12IC1tIGNhbWVyYWJpbgoJICAoZW5jb2RlYmluIG5vdGlmaWVzIGEgMCB2YWx1ZSBmb3IgaXRzICJmbGFnIiBwcm9wZXJ0eSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5NTgKCjIwMTItMDgtMjQgMjM6MTQ6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogbG9nIHBlcmZvcm1hbmNlIHdhcm5pbmcgZGVidWcgbWVzc2FnZSBpZiBnbGliIGVtdWxhdGVzIGF0b21pYyBvcHMKCjIwMTItMDgtMjMgMTM6NTE6MjcgKzAxMDAgIExpb25lbCBMYW5kd2VybGluIDxsbGFuZHdlcmxpbkBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogdXNlIGNvbmZpZ3VyZS1kZXRlY3RlZCBvciBleHRlcm5hbGx5IHByb3ZpZGVkIGdsaWItbWtlbnVtcwoJICBUbyBlYXNlIGNyb3NzLWNvbXBpbGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NjIwCgoyMDEyLTA4LTIyIDEzOjI5OjM0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2NjhhY2VlIHRvIDRmOTYyZjcKCjIwMTItMDgtMjIgMTM6MTQ6NTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBndGstZG9jIHJlcSB0byAxLjEyIChtYXItMjAwOSkKCSAgVGhpcyBhbGxvd3MgdXMgdG8gZS5nLiB1bmNvbmRpdGlvbmFsbHkgdXNlIGd0a2RvYy1yZWJhc2UuCgoyMDEyLTA4LTIxIDEzOjMwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBfbWFrZV93cml0YWJsZQoKMjAxMi0wOC0yMSAwMDowMzozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gc29tZSBtZWRpYSB0eXBlIGNoYW5nZXMgaW4gcG9ydGluZy10by0wLjExLnR4dCBkb2MKCjIwMTItMDgtMjAgMTM6NTE6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWlub3IgdXBkYXRlIHRvIHBvcnRpbmcgZG9jIGZvciBjaGlsZCBwcm94eSBsb29rdXAgbWV0aG9kCgkgIEFuZCBhIHR5cG8gZml4LgoKMjAxMi0wOC0yMCAxMTozMTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBtYWtlIGEgY29weSB3aXRoIHRoZSBzYW1lIGFsaWdubWVudAoJICBXaGVuIG1ha2luZyBhIGNvcHkgb2YgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZnJvbSB0aGUgZGVmYXVsdCBtZW1vcnkgYWxsb2NhdG9yLAoJICBtYWtlIHN1cmUgdGhlIG5ldyBjb3B5IGhhcyB0aGUgc2FtZSBhbGlnbm1lbnQgYXMgdGhlIG9yaWdpbmFsIG1lbW9yeS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA3OTYKCjIwMTItMDgtMTkgMTc6NTE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2Ugc2Vla2luZyBpbiBERUZBVUxUIGZvcm1hdCB3b3JrIGlmIHRoZSBzdWJjbGFzcyBjYW4gY29udmVydCBmb3IgdXMKCSAgV2Ugb25seSBkZWFsIGluIFRJTUUgZm9ybWF0IG91cnNlbHZlcywgYnV0IGlmIHRoZSBzdWJjbGFzcyBjYW4gaGFuZGxlCgkgIGNvbnZlcnRpbmcgb3RoZXIgZm9ybWF0cyBpbnRvIFRJTUUgZm9ybWF0LCB3ZSBjYW4gc3VwcG9ydCB0aGF0IHRvby4KCSAgRml4ZXMgc2Vla2luZyBpbiBERUZBVUxUIChzYW1wbGUpIGZvcm1hdCB3aXRoIGZsYWNwYXJzZSwKCSAgYW5kIHRoZSBmbGFjZGVjIHVuaXQgdGVzdC4KCjIwMTItMDgtMTggMjE6NDI6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtaW5vciBmaXhlcyB0byBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDEyLTA4LTE3IDEyOjIzOjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGltcGxlbWVudCBjaGlsZF9wcm94eSBzdXBwb3J0CgkgIEVsZW1lbnRzIHN1Y2ggYXMgdGhlIEdzdElpckVxdWFsaXplck5CYW5kcyB3b3VsZCBzbyBmYXIgbm90IHN0b3JlIHRoZSBwcm9wZXJ0aWVzCgkgIG9mIHRoZWlyIGNoaWxkcmVuLiBOb3cgd2UgYWxzbyBncmFiIHRoZSBwcm9wZXJ0aWVzIG9mIGNoaWxkIGVsZW1lbnRzIGFuZCB0cnkgdG8KCSAgcmVzdG9yZSB0aGVtLgoKMjAxMi0wOC0xNCAxODo0NDozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogV2FpdCBmb3Igb3RoZXIgc3RyZWFtcyB0byBhZHZhbmNlIG9uIHVuc2VsZWN0ZWQgcGFkcwoJICBPdGhlcndpc2Ugd2UgZW5kIHVwIGRyb3BwaW5nIGEgbG90IG9mIGRhdGEgaW4gdGhlIGNhc2Ugd2hlcmUgZGF0YSBzdGFydHMKCSAgYXJyaXZpbmcgb24gdGhlIG5vbi1zZWxlY3RlZCBwYWQsIHJlc3VsdGluZyBpbiBiaWcgZ2FwcyBpbiBzdHJlYW0gc3dpdGNoaW5nCgoyMDEyLTA4LTE0IDE4OjQzOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNb3JlIGRlYnVnIHN0YXRlbWVudHMKCjIwMTItMDgtMTQgMTg6NDI6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IGZvcndhcmQgc3RyZWFtLXN0YXJ0IHN0aWNreSBldmVudHMKCSAgT25seSBvbmUgU1RSRUFNX1NUQVJUIGV2ZW50IHNob3VsZCBiZSBsZXQgdGhyb3VnaCwgZWxzZSBpdCB3aWxsCgkgIGNvbmZ1c2UgZG93bnN0cmVhbSBlbGVtZW50cyB0aGF0IHRoaW5rIGEgbmV3IHN0cmVhbSBpcyBzdGFydGluZwoJICB3aGVyZWFzIGluIGZhY3Qgd2UgYXJlIGp1c3Qgc3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IGlucHV0LgoJICBJbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IHdhbnQgdG8gbGV0IHRoZW0gdGhyb3VnaCBidXQgd2l0aCB0aGUgc2FtZQoJICBzZXF1ZW5jZSBudW1iZXIuCgoyMDEyLTA4LTE0IDE1OjQ2OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogQWRkIG5ldyBiYXNlc3JjL2Jhc2V0cmFuc2Zvcm0gQVBJIHRvIHRoZSBkb2NzCgoyMDEyLTA4LTA3IDE3OjM4OjUzICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogZ2V0dGVycyBmb3IgcG9vbCBhbmQgYWxsb2NhdG9yCgkgIFNvbWV0aW1lcyBhIHRyYW5zZm9ybSBmaWx0ZXIgd291bGQgbmVlZCB0aGUgYnVmZmVyIHBvb2wgb3IgdGhlIG1lbW9yeQoJICBhbGxvY2F0b3IgbmVnb3RpYXRlZCBieSB0aGUgYmFzZSBjbGFzcywgZm9yIGV4YW1wbGUsIGZvciBxdWVyeWluZyBkaWZmZXJlbnQKCSAgcGFyYW1ldGVycywgc3VjaCBhcyBhIGJpZ2dlciBudW1iZXIgb2YgYnVmZmVycyB0byBhbGxvY2F0ZSBieSB0aGUgYnVmZmVyIHBvb2wuCgkgIFRoaXMgcGF0Y2ggZXhwb3NlIGEgdHdvIGdldHRlcnMgYWNjZXNzb3JzOiBvbmUgZm9yIHRoZSBidWZmZXIgcG9vbCBhbmQgdGhlCgkgIG90aGVyIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvci4KCjIwMTItMDgtMDcgMTc6MzU6NDggKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBnZXR0ZXJzIGZvciBwb29sIGFuZCBhbGxvY2F0b3IKCSAgU29tZXRpbWVzIHRoZSBzb3VyY2VzIHdvdWxkIHVzZSB0aGUgYnVmZmVyIHBvb2wgb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IgZm9yCgkgIHNvbWV0aGluZyBlbHNlIHRoYW4ganVzdCBhbGxvY2F0aW5nIG91dHB1dCBidWZmZXJzOyBmb3IgZXhhbXBsZSwgcXVlcnlpbmcgZm9yCgkgIGRpZmZlcmVudCBwYXJhbWV0ZXJzLCBzdWNoIGFzIGEgYmlnZ2VyIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlIGJ5IHRoZQoJICBwb29sLgoJICBUaGlzIHBhdGNoIGV4cG9zZSBhIHR3byBnZXR0ZXJzIGFjY2Vzc29yczogb25lIGZvciB0aGUgYnVmZmVyIHBvb2wgYW5kIHRoZQoJICBvdGhlciBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IuCgoyMDEyLTA4LTE0IDAwOjM5OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IHJlbW92ZSBzb21lIHVudXNlZCBhbmQgaW4gdGhlaXIgY3VycmVudCBmb3JtIHBvaW50bGVzcyBBUEkKCSAgTm90IHNvIHVzZWZ1bDoganVzdCBhZGRzL3JlYWRzIHN0dWZmIGZyb20gYW4gaW50ZXJuYWwgR0xpc3Qgd2l0aG91dAoJICBhY3R1YWxseSBkb2luZyBhbnl0aGluZyB3aXRoIHRob3NlIHBhdGhzLCBzbyByZW1vdmUgZm9yIG5vdzoKCSAgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoCgkgIGdzdF9yZWdpc3RyeV9nZXRfcGF0aF9saXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDg4NDEKCjIwMTItMDgtMTIgMTM6Mjc6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IHVwIGZvciBnc3RfY2hpbGRfcHJveHlfbG9va3VwKCkgb25seSB3b3JraW5nIG9uIGNoaWxkIHByb3h5IGludGVyZmFjZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTY4MQoKMjAxMi0wOC0xMiAxMzoyNDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IG1ha2UgZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCgpIGEgcHJvcGVyIEdzdENoaWxkUHJveHkgbWV0aG9kCgkgIE5vIGxvbmdlciBhY2NlcHQgYW55IG9sZCBHT2JqZWN0cy4gVGhpcyBtYWtlcyB0aGluZ3MgbmljZXIgZm9yCgkgIGJpbmRpbmdzLiBJZiBhIHV0aWxpdHkgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIGJvdGggbmljZWx5CgkgIGlzIGRlZW1lZCB3b3J0aHdoaWxlLCB3ZSBjYW4gc3RpbGwgYWRkIG9uZSB0byBnc3R1dGlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTY4MQoKMjAxMi0wOC0xMyAwMDowMToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogd2hlbiBzZXJpYWxpc2luZyBhcnJheXMgb3IgbGlzdHMsIGhhbmRsZSB0eXBlcyB3ZSBjYW4ndCBzZXJpYWxpc2UgbW9yZSBncmFjZWZ1bGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEzMjIKCjIwMTItMDgtMTIgMTk6Mzk6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhZGQgc29tZSBtb3JlIGRldGFpbHMgdG8gZmFpbHVyZSBtZXNzYWdlcwoJICBNZW50aW9uIHBhZCB3aGVyZSB0aGUgcHJvYmxlbSBvY2N1cmVkLCBhbmQgdGhlIGV2ZW50IG5hbWUuCgoyMDEyLTA4LTEyIDE4OjM2OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGZpeCBjb2xsZWN0cGFkcyB0ZXN0CgkgIEFmdGVyIGFuIEVPUyB3ZSBtdXN0IHNlbmQgYSBGTFVTSF9TVE9QIGV2ZW50IGlmCgkgIHdlIHdhbnQgdG8gc2VuZCBkYXRhIGFnYWluLgoKMjAxMi0wOC0xMiAxODozMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGxlYWsgaW4gZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9zdGFydCgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkgd2lsbCBtYWtlIGEgY29weSBvZiB0aGUgc3RyaW5nCgkgIGV4dHJhY3RlZCwgYnV0IHdlJ3JlIGFzc2lnbmluZyBpdCB0byBhIGNvbnN0IGdjaGFyICouCgoyMDEyLTA4LTEyIDE2OjQwOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBtYWtlIHBpcGVsaW5lIHRlc3QgdmFsZ3JpbmQgY2xlYW4KCjIwMTItMDgtMTIgMTY6Mzc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBmaXggcGlwZWxpbmUgdW5pdCB0ZXN0CgkgIFdoaWNoIHdhcyBkaXNhYmxlZCBiZWNhdXNlIGl0IGZhaWxlZC4KCjIwMTItMDgtMTIgMTU6NDg6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogZml4IHVudGVybWluYXRlZCBxdW90ZWQgc3RyaW5nIGluIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaAoKMjAxMi0wOC0xMiAwMDoxMjo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gZ3N0X3ZpZGVvX2Zvcm1hdF9wYXJzZV9jYXBzKCkgaW4gcG9ydGluZyBndWlkZQoKMjAxMi0wOC0xMSAyMjoxOTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZpeCB1cCBkb2NzIGEgYml0CgoyMDEyLTA4LTExIDIyOjE4OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IHVwIGctaSBhbm5vdGF0aW9uIGZvciBfbG9va3VwKCkgcGFyYW1zcGVjIHJldHVybiB2YWx1ZQoJICBObyByZWYgaXMgcmV0dXJuZWQgaGVyZS4KCjIwMTItMDgtMTEgMjI6MTc6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBidWZmZXIgZnVuY3Rpb25zCgoyMDEyLTA4LTEwIDIyOjU4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjayB3aXRoIHVwc3RyZWFtIGRlbXV4ZXJzIHRoYXQgc3VwcG9ydCBpdAoJICBEb24ndCBqdXN0IHJldHVybiBGQUxTRSBmb3Igc2VlayBldmVudHMgd2l0aCBuZWdhdGl2ZSByYXRlcyB3aGVuCgkgIG9wZXJhdGluZyBpbiBwdXNoIG1vZGUuIEFuIHVwc3RyZWFtIGRlbXV4ZXIgbWF5IHN1cHBvcnQgdGhpcyBqdXN0CgkgIGZpbmUsIHNvIGlmIHdlJ3JlIG5vdCBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlIGFsd2F5cyBjaGVjayB1cHN0cmVhbQoJICBmaXJzdCBpZiBpdCBjYW4gaGFuZGxlIHRoZSBzZWVrIGV2ZW50LiBUaGlzIGZpeGVzIHJldmVyc2UgcGxheWJhY2sKCSAgd2hlcmUgdGhlIHVwc3RyZWFtIGRlbXV4ZXIgc3VwcG9ydHMgaXQgKGUuZy4gd2l0aCBxdGRlbXV4KS4gVGhlCgkgIHNhbWUgY29kZSB3b3VsZCB3b3JrIGZpbmUgaW4gMC4xMCwgYmVjYXVzZSBiYXNlcGFyc2Ugd2lsbCBqdXN0CgkgIGNhbGwgdGhlIGRlZmF1bHQgcGFkIGV2ZW50IGhhbmRsZXIgaWYgRkFMU0Ugd2FzIHJldHVybmVkIGZyb20gdGhlCgkgIGJhc2VwYXJzZSBldmVudCBoYW5kbGVyLCBhbmQgdGhlIHBhZCBldmVudCBoYW5kbGVyIHdpbGwganVzdAoJICBmb3J3YXJkIGl0IHVwc3RyZWFtLiBJbiAwLjExIHRoZSBiYXNlY2xhc3Mgb3Igc3ViY2xhc3MgaXMKCSAgcmVzcG9uc2libGUgZm9yIGNoYWluaW5nIHVwIHRvIHRoZSBwYXJlbnQgY2xhc3Mgb3IgZm9yd2FyZGluZyB0aGUKCSAgZXZlbnQgdXBzdHJlYW0gaW4gYW55IGNhc2UuCgkgIERpc2FibGUgcmV2ZXJzZSBwbGF5YmFjayBpbiBwdWxsIG1vZGUgZm9yIG5vdywgdGhlcmUgc2VlbXMgdG8KCSAgYmUgc29tZXRoaW5nIGdvaW5nIHdyb25nIHdpdGggdGhlIHNlZ21lbnQgY29uZmlndXJhdGlvbiBpbiB0aGF0CgkgIGNhc2UuCgoyMDEyLTA4LTA0IDExOjQ4OjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG8gbm90IGVycm9yIG9uIG5vdC1uZWdvdGlhdGVkCgkgIERvbid0IGVycm9yIG91dCB0b28gZWFybHkgYW5kIGxldCB1cHN0cmVhbSBkZWNpZGUgaWYgaXQgY2FuCgkgIHdvcmthcm91bmQgYSBub3QtbmVnb3RpYXRlZCBwcm9ibGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTgKCjIwMTItMDgtMDQgMTE6NDg6MTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXRyeSBvbiBub3QtbmVnb3RpYXRlIGlmIGEgcmVjb25maWd1cmUgaXMgcGVuZGluZwoJICBCZWZvcmUgZXJyb3Jpbmcgb3V0IG9uIG5vdC1uZWdvdGlhdGVkIHJldHVybnMsIGNoZWNrIGlmIHRoZSBwYWQKCSAgaGFzIHRoZSByZWNvbmZpZ3VyZSBmbGFnIHNldCBhbmQgcmV0cnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTgKCjIwMTItMDgtMDQgMTE6NDI6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9uZWVkc19yZWNvbmZpZ3VyZQoJICBBZGQgYW4gYWx0ZXJuYXRpdmUgdmVyc2lvbiBvZiBnc3RfcGFkX2NoZWNrX3JlY29uZmlndXJlIHRoYXQgZG9lc24ndAoJICBjbGVhciB0aGUgcmVjb25maWd1cmUgZmxhZy4KCSAgVXNlZnVsIGZvciBpbmNyZWFzaW5nIGVycm9yIHJlc2lsaWVuY2Ugd2l0aG91dCBkdXBsaWNhdGluZyB0aGUKCSAgcmVjb25maWd1cmUgY29kZSBpbiBwYWQgdGFzayBmdW5jdGlvbnMuCgkgIEFQSTogZ3N0X3BhZF9uZWVkc19yZWNvbmZpZ3VyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTk4CgoyMDEyLTA3LTI5IDE1OjQ0OjQ1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgR1NUX1BBRF9MSU5LX0NIRUNLX0RFRkFVTFQgdG8gR3N0UGFkTGlua0NoZWNrCgkgIFRoaXMgYWxsb3dzIGludHJvc3BlY3Rpb24tYmFzZWQgYmluZGluZ3MgdG8gYWNjZXNzCgkgIEdzdC5QYWRMaW5rQ2hlY2suREVGQVVMVCBpbnN0ZWFkIG9mCgkgIEdzdC5QQURfTElOS19DSEVDS19ERUZBVUxULgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA3LTI5IDE0OjU3OjQxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBtYXJrIGdzdF9idWZmZXJfd3JhcHBlZCogZGF0YSBhcyBhcnJheQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA3LTI0IDEzOjI2OjAwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJICBpbnRyb3NwZWN0aW9uOiBmaXggc29tZSB3YXJuaW5ncyBnZW5lcmF0ZWQgYnkgZy1pci1zY2FubmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA3LTMwIDIxOjQ2OjE4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGNvbnZlcnQgZ3N0X2J1ZmZlcl8qIG1hY3JvcyB0byBmdW5jdGlvbnMKCSAgR09iamVjdCBJbnRyb3NwZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQgbWFjcm9zLgoJICBUaGlzIGlzIG5lZWRlZCBmb3IgYmluZGluZ3MuIFdlIGNhbiBzdGlsbCBhZGQgYmFjawoJICBtYWNyb3Mgb3IgaW5saW5lIGZ1bmN0aW9ucyBhZ2FpbiBsYXRlciBpZiB3ZSB0aGluawoJICBpdCdzIHdvcnRoIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA4LTEwIDEzOjUwOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogZml4IHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoKMjAxMi0wOC0xMCAxMjoyMzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBtYXhfYnVmZmVycyBoYW5kbGluZwoJICBXaGVuIG1heF9idWZmZXJzID4gMCBhbmQgdGhlIHBvb2wgaXMgZW1wdHksIGFjdHVhbGx5IHRyeSB0byBhbGxvY2F0ZSBtb3JlCgkgIGJ1ZmZlcnMgdXAgdG8gdGhlIG1heF9idWZmZXJzIGxpbWl0LgoJICBXZSBuZWVkIHRvIGFkZCBhIGNvdW50ZXIgZm9yIHRoaXMgdG8gY291bnQgaG93IG1hbnkgYnVmZmVycyB3ZSBhbGxvY2F0ZWQgYW5kCgkgIGNoZWNrIHRoaXMgYWdhaW5zdCB0aGUgbWF4X2J1ZmZlcnMgbGltaXQuCgkgIFJlb3JnYW5pc2UgYW5kIGNsZWFuIHVwIHNvbWUgY29kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE1MwoKMjAxMi0wOC0xMCAwOToxOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogc2ltcGxpZnkgYnkgdXNpbmcgZ19zb2NrZXRfY29uZGl0aW9uX3RpbWVkX3dhaXQoKQoJICBObyBuZWVkIHRvIHVzZSBhIGN1c3RvbSBtYWluIGNvbnRleHQgYW5kIGN1c3RvbSB0aW1lb3V0IHNvdXJjZXMsCgkgIGp1c3QgdXNlIGdfc29ja2V0X2NvbmRpdGlvbl90aW1lZF93YWl0KCkgaW5zdGVhZCwgd2hpY2ggd2FzIGFkZGVkCgkgIGZvciBleGFjdGx5IHRoaXMgY2FzZS4KCSAgQWxzbyBzZWVtcyB0byBoZWxwIHdpdGggdGhlIHVuaXQgdGVzdCBkZWFkbG9ja2luZyB3aXRoIGdsaWIgMi4zMy54CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE1NzUKCjIwMTItMDgtMDkgMTk6MTU6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGZpeCBkb3VibGUgc3RyaW5nIGVzY2FwaW5nIGluIGdzdF9vYmplY3RfZGVmYXVsdF9kZWVwX25vdGlmeSgpCgkgIE1ha2Ugb3V0cHV0IG9mIGdzdC1sYXVuY2ggLXYgcmVhZGFibGUgYWdhaW4uCgkgIGxhc3QtbWVzc2FnZSA9ICJldmVudFwgXCBcIFwqXCpcKlwqXCpcKlwqXCBcKGZha2VzaW5rMDpzaW5rXClcIEVcIFwodHlwZTpcIHRhZ1wgXCgyMDUxMFwpXCxcIEdzdFRhZ0xpc3Qtc3RyZWFtXCxcIHRhZ2xpc3RcPVwodGFnbGlzdFwpXCJ0YWdsaXN0XFxcLFxcXCB2aWRlby1jb2RlY1xcXD1cXFwoc3RyaW5nXFxcKUgyNjRcXFwsXFxcCgkgIG1pbmltdW0tYml0cmF0ZVxcXD1cXFwodWludFxcXCk2MzY2MTFcXFwsXFxcIGJpdHJhdGVcXFw9XFxcKHVpbnRcXFwpOTgwNzI5XFxcLFxcXCBtYXhpbXVtLWJpdHJhdGVcXFw9XFxcKHVpbnRcXFwpMTExNjcwN1xcXDtcIlw7XClcIDB4MTViYzc2MCIKCSAgdnMuCgkgIGxhc3QtbWVzc2FnZSA9IGV2ZW50ICAgKioqKioqKiAoZmFrZXNpbmswOnNpbmspIEUgKHR5cGU6IHRhZyAoMjA1MTApLCBHc3RUYWdMaXN0LXN0cmVhbSwgdGFnbGlzdD0odGFnbGlzdCkidGFnbGlzdFwsXCB2aWRlby1jb2RlY1w9XChzdHJpbmdcKUgyNjRcLFwgbWluaW11bS1iaXRyYXRlXD1cKHVpbnRcKTg1NjAzOVwsXCBiaXRyYXRlCgkgIFw9XCh1aW50XCkxMDE5NzQ4XCxcIG1heGltdW0tYml0cmF0ZVw9XCh1aW50XCkxMTE2NzA3XDsiOykgMHgxMTE0OWUwCgoyMDEyLTA4LTA5IDE2OjE4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogY2hlY2sgd3JpdGFiaWxpdHkKCSAgZml4IHRoZSB3cml0YWJpbGl0eSBjaGVjayBmb3IgbWluaW9iamVjdHMuIFdlIHNob3VsZCBjaGVjayB0aGUgc2hhcmVkIGNvdW50ZXIuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE0NTAKCjIwMTItMDgtMDggMTY6MDg6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IFNldCB0aGUgYWxpZ25tZW50IGF0IHRoZSBjb3JyZWN0IHBsYWNlIGluIEdzdEFsbG9jYXRpb25QYXJhbXMKCjIwMTItMDgtMDggMTY6MTg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTMgPT09CgoyMDEyLTA4LTA4IDE1OjA1OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjkzCgoyMDEyLTA4LTA4IDE0OjQ5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBzaWxseSB0ZXN0X2ZhaWxfYWJzdHJhY3RfbmV3IGNoZWNrCgkgIE91ciBjaGVjayB3b3VsZCBtYWtlIHN1cmUgdGhhdCBHTGliIHNlZ2ZhdWx0cyB3aGVuCgkgIHNvbWVvbmUgdHJpZXMgdG8gaW5zdGFudGlhdGUgYW4gYWJzdHJhY3QgdHlwZSwgd2hpY2gKCSAgaXMgYW4gZXh0cmVtZWx5IHVzZWZ1bCB0aGluZyB0byBjaGVjayBmb3IuCgkgIEluIG5ld2VyIEdMaWJzIHRoaXMgaXMgZml4ZWQgYW5kIHdlIGdldCBhbiBhYm9ydCB3aXRoCgkgIGEgZ19lcnJvcigpIG5vdyBpdCBzZWVtcywgc28gbGV0J3MganVzdCByZW1vdmUgdGhpcwoJICBjaGVjayBlbnRpcmVseS4KCjIwMTItMDgtMDggMDk6NTM6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGV4YW1wbGVzOiBkb24ndCBwdXQgdGhpbmdzIHdpdGggc2lkZSBlZmZlY3RzIGluc2lkZSBnX2Fzc2VydCgpCgkgIFRoZXkgd2lsbCBiZSBkZWZpbmVkIGF3YXkgdG8gTk9PUHMgb3RoZXJ3aXNlIGluIHJlbGVhc2UgYnVpbGRzLgoKMjAxMi0wOC0wOCAwOToxMzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGZvciBzdHJlYW0taWQgQVBJIGFkZGl0aW9ucwoKMjAxMi0wOC0wOCAwMDo1NDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggZm9yIG5ldyBHc3RDaGlsZFByb3h5OjpjaGlsZC1hZGRlZCBzaWduYWwgY2FsbGJhY2sgc2lnbmF0dXJlCgkgIEZpeGVzIGNyYXNoIHdpdGggZ3N0LWxhdW5jaC0xLjAgdXJpZGVjb2RlYmluIHVyaT0uLi4gc3VidXJpPS4uLiAhIC4uCgoyMDEyLTA4LTA3IDEwOjQ2OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBBZGQgYWxsb3ctbm9uZSB0byB0aGUgZnVuY3Rpb24gYXJndW1lbnQgb2YgZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTEzOQoKMjAxMi0wOC0wNiAxNjozMzo1NyArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZG9jczogTWFrZSBzdXJlIHNjYW5uZXIgZ2V0cyByZXF1aXJlZCBsaWJyYXJpZXMKCjIwMTItMDgtMDYgMjA6MDg6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogcHJpbnQgd2hpY2ggZXZlbnQgd2UgcmVjZWl2ZWQgYmVmb3JlIHN0cmVhbS1zdGFydAoKMjAxMi0wOC0wNiAyMDowNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgdHJ5IHRvIGFuc3dlciBVUkkgcXVlcmllcyB3aXRoIE5VTEwgVVJJcwoJICBTaG91bGQgbWFrZSB1bml0IHRlc3RzIGluIC1iYXNlIHRoYXQgdXNlIGFwcHNyYyBhIGJpdCBoYXBwaWVyLgoKMjAxMi0wNy0yOSAxNDoyNTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiBVcGRhdGUgZm9yIHN0cmVhbS1zdGFydCBldmVudCBBUEkgY2hhbmdlcwoKMjAxMi0wNy0yOCAwODozNzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBldmVudDogQWRkIG5ldyBzdHJlYW0taWQgZmllbGQgdG8gdGhlIHN0cmVhbS1zdGFydCBldmVudAoJICBUaGlzIGlzIHN1cHBvc2VkIHRvIGFsbG93IHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGEgc2luZ2xlIHN0cmVhbS4KCjIwMTItMDctMjcgMTc6NDE6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgZmlyc3QgY3JlYXRlZCBwYWQgYnkgZGVmYXVsdAoJICBUaGlzIGd1YXJhbnRlZXMgYSBiaXQgbW9yZSBjb25zaXN0ZW5jeSBpbiB3aGljaCBpbnB1dCBzdHJlYW0gd2lsbAoJICBiZSBzZWxlY3RlZCBieSBkZWZhdWx0LiBJdCB3b3VsZCBwcmV2aW91c2x5IGJlIHRoZSBmaXJzdCBwYWQgb24gd2hpY2gKCSAgYW4gZXZlbnQvYnVmZmVyL3F1ZXJ5IHdhcyByZWNlaXZlZCAuLi4gd2hpY2ggd2FzIHJhY3kgYW5kIG5vbi1wcmVkaWN0YWJsZS4KCjIwMTItMDctMjcgMTc6Mzg6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogU3BlY2lmeSB0aGUgb3JkZXIgb2YgcGFkIGl0ZXJhdG9ycwoJICBUaGUgb3JkZXIgb2YgcmV0dXJuZWQgcGFkcyB3YXNuJ3Qgc3BlY2lmaWVkIGJlZm9yZSwgc28gbGV0J3Mgc3BlY2lmeQoJICBpdCBhbmQgdXNlIGFuIG9yZGVyIHdoaWNoIG1pZ2h0IHByb3ZlIHRoZSBtb3N0IHVzZWZ1bCA6IHRoZSBvcmRlciBpbgoJICB3aGljaCBwYWRzIHdlcmUgYWRkZWQgdG8gdGhlIGVsZW1lbnQuCgkgIElmIHNvbWVvbmUgY2hhbmdlcyB0aGUgb3JkZXIsIG1ha2Ugc3VyZSB1c2VycyBvZiB0aG9zZSBpdGVyYXRvcnMgZnJvbQoJICBub3cgb24gZG9uJ3QgcmVseSBvbiB0aGF0IG9yZGVyICEKCjIwMTItMDgtMDUgMTc6MTY6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKSBkZWZpbmUKCSAgU2tpcHMgYnJva2VuIHRlc3RzIGJ1dCBsb2dzIGFuIEVSUk9SLWxldmVsIG1lc3NhZ2UgdG8KCSAgZHJhdyBhdHRlbnRpb24gdG8gdGhhdCBmYWN0LgoKMjAxMi0wOC0wNSAxNzoxMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgdGVzdHM6IHVwZGF0ZSAuZ2l0aWdub3JlIGZvciBxdWV1ZWFycmF5IHRlc3QgYmluYXJ5CgoyMDEyLTA4LTA1IDE3OjExOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICB0ZXN0czogZml4IHNwdXJpb3VzIG5ldGNsaWVudGNsb2NrIHRlc3QgZmFpbHVyZXMKCSAgR2l2ZSBjbG9ja3MgYSBiaXQgbW9yZSB0aW1lIHRvIHN5bmNocm9uaXNlLgoKMjAxMi0wOC0wNSAxNjo1OTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgZ2VuZXJhdGVkIGZpbGVzCgoyMDEyLTA4LTA1IDE2OjQxOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiB1c2UgZ2VuZXJpYyBtYXJzaGFsbGVyIGZvciAiYmxvY2siIGFjdGlvbiBzaWduYWwKCjIwMTItMDgtMDUgMTY6Mzc6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk0Y2NmNGMgdG8gNjY4YWNlZQoKMjAxMi0wOC0wNCAxMzozNzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXIsIGRlZmF1bHRtZW06IGFkZCBvcHRpb24gdG8gcG9pc29uIG1lbW9yeSBiZWZvcmUgZnJlZWluZyBpdAoJICBNaWdodCBiZSB1c2VmdWwgdG8gdHJhY2sgZG93biBjZXJ0YWluIGJ1Z3MuCgoyMDEyLTA4LTAzIDIzOjU0OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZi91bnJlZiB0YWdsaXN0IHNjb3BlIGVudW0gaW4gZ3N0X2luaXQoKQoJICBGaXhlcyBtYWtlIGNoZWNrIGFuZCBkaXN0Y2hlY2sKCjIwMTItMDgtMDMgMDA6MDU6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogd2FybiBpZiBwbHVnaW4gbmFtZSBzdGFydHMgd2l0aCBhICIKCSAgVGhpcyBjYW4gZWFzaWx5IGhhcHBlbiBhcyBzaWRlLWVmZmVjdCBvZiB0aGUgcGx1Z2luIG5hbWUKCSAgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbm8gbG9uZ2VyIGJlaW5nIGEgc3RyaW5nIGluIDAuMTEsIGJ1dAoJICBhIG5hbWUgdG8gR19TVFJJTkdJRlkuCgoyMDEyLTA4LTAyIDEzOjE5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nLXRvLTAuMTEgZG9jdW1lbnQgd2l0aCBhICJzb2Z0IiBBUEkgY2hhbmdlcyBjaGVja2xpc3QKCSAgUG9pbnQgb3V0IHNvbWUgQVBJIGNoYW5nZXMgdGhhdCB0aGUgY29tcGlsZXIgd29uJ3QKCSAgYmUgYWJsZSB0byB3YXJuIGFib3V0LgoKMjAxMi0wOC0wMiAxMTozMzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggcHJpbnRpbmcgb2YgcGFydGlhbCBkYXRlcyBpbiBnc3QtbGF1bmNoCgoyMDEyLTA4LTAyIDExOjE1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogcHJpbnQgVE9DIHNjb3BlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGVlNmFiN2M5MzYzOGE2NTE5YWNiOTc2Njk5YTZhZDE0OWQ1MjBhOTUuCgkgIFRoZSBhcHBsaWNhdGlvbiB3aWxsIHByb2JhYmx5IG9ubHkgZXZlciByZWNlaXZlIGdsb2JhbCBUT0NzLAoJICBzbyBkb24ndCByZWFsbHkgbmVlZCB0aGlzLgoKMjAxMi0wOC0wMSAxNzo0OToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyB0YWcgbGlzdCBzY29wZSBzeW1ib2xzCgoyMDEyLTA4LTAxIDExOjU4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHNlbmQgc2VnbWVudF9kb25lIGV2ZW50IGluIGFkZGl0aW9uIHRvIHNlZ21lbnRfZG9uZSBtZXNzYWdlCgoyMDEyLTA3LTMxIDE3OjI1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYmFzZXNyYzogQWRkIGRlZmF1bHQgaGFuZGxlciBmb3IgVVJJIHF1ZXJ5IGluIEdzdFVSSUhhbmRsZXIgc3ViY2xhc3NlcwoKMjAxMi0wNy0yOCAxNzozMzo1MiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgY2hlY2s6IHVuYnJlYWsgZmFpbCAjZGVmaW5lCgkgIFRoZSBmYWlsKCkgZGVmaW5pdGlvbiB3YXMgY2hhbmdlZCB0byBub3QgZmFpbCB3aXRoIG5vbi1HQ0MgY29tcGlsZXJzLAoJICB1bmZvcnR1bmF0ZWx5IHRoZSBjaGFuZ2Ugd2FzIGluY29ycmVjdCBhbmQgYXBwZW5kZWQgdGhlIGZpcnN0IGFyZ3VtZW50CgkgIG9mIGZhaWwgdG8gdGhlIGV4cHJlc3Npb24gc3RyaW5nIGluc3RlYWQgb2YgbWFraW5nIGl0IHRoZSBtZXNzYWdlLgoJICBUaGlzIGNoYW5nZSBkb2VzIG1lYW4gdGhhdCBmYWlsKCkgbm93IHJlcXVpcmVzIGEgbWVzc2FnZSB0byBiZSBwYXNzZWQKCSAgYWxvbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA3NTUKCjIwMTItMDctMjkgMjM6Mzc6MTkgKzAyMDAgIEplbnMgR2VvcmcgPG1haWxAamVuc2dlLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVcGRhdGUgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDgwNQoKMjAxMi0wNy0yOSAyMzoyMDowNyArMDIwMCAgSmVucyBHZW9yZyA8bWFpbEBqZW5zZ2Uub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVcGRhdGUgYW5ub3RhdGlvbiBmb3IgZ2V0X2NvbXBhdGlibGVfcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA4MDQKCjIwMTItMDctMjggMjE6MjM6MjQgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggd3JvbmcgJ2FycmF5IHplcm8tdGVybWluYXRlZD0xJyBhbm5vdGF0aW9uIGZvciBzdHJpbmdzCgoyMDEyLTA3LTI4IDExOjAyOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiB1cGRhdGUgVE9DIGRlc2lnbiBkb2NzIGEgbGl0dGxlCgoyMDEyLTA3LTI4IDA5OjQxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBtYWtlIFRPQyBldmVudCBtdWx0aS1zdGlja3kKCSAgV2UgbmVlZCB0byBzZW5kIHR3byBraW5kcyBvZiBUT0NzIGRvd25zdHJlYW0gYXMgZXZlbnRzLAoJICBhbmQgbmVlZCBib3RoIHRvIHN0aWNrIHRvIHRoZSBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NzQyCgoyMDEyLTA3LTI4IDA4OjMwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHByaW50IFRPQyBzY29wZQoKMjAxMi0wNy0yNyAyMzo1Njo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogYWRkIEdzdFRvY1Njb3BlIGFuZCByZXF1aXJlIGl0IGluIHRoZSBjb25zdHJ1Y3RvcgoJICBUaGlzIGlzIGJlY2F1c2Ugd2UgbmVlZCB0byBiZSBhYmxlIHRvIHNpZ25hbCBkaWZmZXJlbnQgVE9DcwoJICB0byBkb3duc3RyZWFtIGVsZW1lbnRzIHN1Y2ggYXMgbXV4ZXJzIGFuZCB0aGUgYXBwbGljYXRpb24sCgkgIGFuZCBiZWNhdXNlIHdlIG5lZWQgdG8gc2VuZCBib3RoIHR5cGVzIGFzIGV2ZW50cyAoYmVjYXVzZQoJICB0aGUgc2luayBzaG91bGQgcG9zdCB0aGUgVE9DIG1lc3NhZ2VzIGZvciB0aGUgYXBwIGluIHRoZQoJICBlbmQsIGp1c3QgbGlrZSB0YWcgbWVzc2FnZXMgYXJlIG5vdyBwb3N0ZWQgYnkgdGhlIHNpbmtzKSwKCSAgYW5kIGhlbmNlIG5lZWQgdG8gbWFrZSBUT0MgZXZlbnRzIG11bHRpLXN0aWNreS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODc0MgoKMjAxMi0wNy0yNyAyMzo1NDowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOiBjaGVjayBmb3IgYmFzaWMgYnVpbGQgdG9vbHMgYW5kIGRlcHMKCSAgLi4gYmVmb3JlIGNoZWNraW5nIG91dCBzdHVmZi4KCjIwMTItMDctMjcgMjM6NTI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRhZzogQWRkIGEgc2NvcGUgdG8gdGFnbGlzdHMKCSAgVGhpcyBzcGVjaWZpZXMgaWYgYSBnaXZlbiB0YWdsaXN0IGFwcGxpZXMgdG8gdGhlIGNvbXBsZXRlCgkgIG1lZGl1bSBvciBvbmx5IHRoaXMgc3BlY2lmaWMgc3RyZWFtLiBCeSBkZWZhdWx0IGEgdGFnbGlzdAoJICBoYXMgYSBzdHJlYW0gc2NvcGUuCgkgIEZpeGVzIGJ1ZyAjNjc3NjE5LgoKMjAxMi0wNy0yNyAxNzowOTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGFkZCBvZmZzZXQgZmllbGQKCSAgQWRkIGFuIG9mZnNldCBmaWVsZCB0aGF0IGlzIHVzZWQgdG8gdHJhY2sgYXQgd2hhdCBwb3NpdGlvbiB0aGUgc2VnbWVudCB3YXMKCSAgdXBkYXRlZC4gVGhpcyBpcyB1c2VkIHRvIHNldCB0aGUgcnVubmluZyB0aW1lIHRvIDAgd2hlbiB3ZSBkbyBhIGZsdXNoaW5nCgkgIHNlZWsgdGhhdCBkb2Vzbid0IHVwZGF0ZSB0aGUgcG9zaXRpb24uCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMzA2CgoyMDEyLTA3LTI3IDE1OjE5OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXBkYXRlIGZvciBuZXcgc2Vla2luZyB2YXJpYWJsZSBuYW1lCgkgIFdoZW4gc2Vla2luZywgdGhlIHN0YXJ0IHZhbHVlIGFuZCB0eXBlIGFyZSBub3cgY2FsbGVkIHN0YXJ0IGFuZCBzdGFydF90eXBlLgoKMjAxMi0wNy0yNyAxNDo1MzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHNtYWxsIGNsZWFudXAKCSAgTW92ZSB0aGUgY29kZSB0byB1cGRhdGUgdGhlIHNlZ21lbnQgYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uCgoyMDEyLTA3LTI3IDEyOjA1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVcGRhdGUgZG9jcyBhbmQgLmRlZiBmaWxlIGZvciB0YWdsaXN0IEFQSSBjaGFuZ2UKCjIwMTItMDctMjcgMTM6MDI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiByZW1vdmUgcmVkdW5kYW50IGNoZWNrcwoJICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSBzZWdtZW50IGZvcm1hdCBhbnltb3JlIGJlY2F1c2Ugd2UgYXNzZXJ0ZWQgb24gdGhlbQoJICBiZWluZyBlcXVhbCBiZWZvcmUuCgoyMDEyLTA3LTI3IDEyOjI0OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGltcHJvdmUgc2VnbWVudCB0ZXN0cwoKMjAxMi0wNy0yNyAxMjoxMjozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgYWxsb2NhdG9yOiByZW1vdmUgdXNlcl9kYXRhIGZyb20gYWxsb2Mgdm1ldGhvZAoJICBSZW1vdmUgdGhlIHVzZXJfZGF0YSBmcm9tIHRoZSBhbGxvYyB2bWV0aG9kLiBTdWJjbGFzc2VzIHRoYXQgaW1wbGVtZW50IGEgbmV3CgkgIGFsbG9jIGZ1bmN0aW9uIGNhbiBhbHNvIGltcGxlbWVudCB0aGVpciBvd24gdm1ldGhvZCB0byBwYXNzIGV4dHJhIGFyZ3VtZW50cy4gV2UKCSAgY2FuIHRoZW4gYWxzbyByZXF1aXJlIHRoYXQgY3VzdG9tIGFsbG9jYXRvcnMgaW1wbGVtZW50IGFuIGFsbG9jIGZ1bmN0aW9uIHNvIHRoYXQKCSAgZ3N0X2FsbG9jYXRvcl9hbGxvYygpIGFsd2F5cyB3b3Jrcy4KCjIwMTItMDctMjcgMTA6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogcmVtb3ZlIHNlZ21lbnQgYWNjdW11bGF0aW9uIGNoZWNrcwoJICBSZW1vdmUgdGhlIGNoZWNrcyBiZWNhdXNlIHRoZXJlIGlzIG5vIG1vcmUgc2VnbWVudCBhY2N1bXVsYXRpb24uCgoyMDEyLTA3LTI2IDE2OjQ0OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEgYWxzbyBhIEdzdFNhbXBsZQoJICBUaGF0IHdheSBhZGRpdGlvbmFsIG1ldGEtZGF0YSBjYW4gYmUgcGFzc2VkIGFsb25nIHdpdGggaXQuCgoyMDEyLTA3LTI2IDE1OjUxOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdsaXN0OiBnc3RfdGFnX2xpc3RfZ2V0X2J1ZmZlciooKSA9PiBnc3RfdGFnX2xpc3RfZ2V0X3NhbXBsZSooKQoJICBJbWFnZSB0YWdzIGFuZCBvdGhlciB0YWdzIGFyZSBub3cgb2YgR3N0U2FtcGxlIHR5cGUuCgoyMDEyLTA3LTI2IDE1OjI2OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmludCBpbWFnZSB0YWdzIGFuZCBvdGhlciBHc3RTYW1wbGUgdGFncyBwcm9wZXJseQoJICBUaGVzZSB0YWdzIGFyZSBub3cgb2YgdHlwZSBHc3RTYW1wbGUgbm90IEdzdEJ1ZmZlci4KCjIwMTItMDctMjQgMjE6Mzg6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgYXBpCgkgIFdlIGNhbiBhbHdheXMgYWRkIHRoaXMgYmFjayBpZiB3ZSBuZWVkIGl0LiBGaXhlcyBwYXJ0cyBvZiAjNjcwODUyLgoKMjAxMi0wNy0yNCAxMzo0OTozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gYWNjb3VudCBmb3IgZnJhbWUgc2l6ZSB3aGVuIG1lcmVseSBzY2FubmluZyBmb3IgZnJhbWUKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDQ5NQoKMjAxMi0wNy0yNCAxMzo0ODozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBvYnNvbGV0ZSBmdW5jdGlvbiBwYXJhbWV0ZXIKCjIwMTItMDctMjQgMTI6Mzg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcmVxdWlyZSBieXRlcyBiZWZvcmUgdHlwZWZpbmRpbmcKCSAgUmVxdWlyZSB0aGF0IHdlIGhhdmUgc29tZSBieXRlcyBpbiB0aGUgYWRhcHRlciBiZWZvcmUgd2UgYXR0ZW1wdCB0byB0eXBlZmluZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDQ3OQoKMjAxMi0wNy0yMyAxODo0OToxMyArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcwoKMjAxMi0wNy0yMyAxNjoyNzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IHBhc3MgaW5kZXggYXMgZ2ludCB0byBfaW5zZXJ0CgkgIE1ha2UgdGhlIGlkeCBhcmd1bWVudCBvZiBfaW5zZXJ0KCkgYSBnaW50IGJlY2F1c2Ugd2UgYWxsb3cgLTEgYXMgYSB2YWx1ZS4KCSAgSW1wcm92ZSBhbm5vdGF0aW9uLgoKMjAxMi0wNy0yMyAxMzo0MDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgcGx1Z2luczogcHJpbnQgZmxhZ3MgYmV0dGVyCgkgIHByaW50IHRoZSBidWZmZXIgZmxhZ3MgYXMgYSBoZXggbnVtYmVyIHNvIHRoYXQgaXQgYmVjb21lcyBlYXNpZXIgdG8gc2VlIHdoYXQKCSAgZmxhZ3MgYXJlIHNldC4KCjIwMTItMDctMTggMTc6MDM6NDUgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogSW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2Ugd2hlbiByZS1hZGRpbmcgZmQgdG8gZmRzZXQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDE4MQoKMjAxMi0wNy0yMyAwODo0NDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk4ZTM4NmYgdG8gOTRjY2Y0YwoKMjAxMi0wNy0yMCAwMDo0OToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgR3N0VGFnTGlzdCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbgoJICBTbyB3ZSBjYW4gc2VyaWFsaXNlL2Rlc2VyaWFsaXNlIHRhZ2xpc3RzIGluc2lkZSBzdHJ1Y3R1cmVzLAoJICB3aGljaCB1c2VkIHRvIHdvcmsgYXV0b21hZ2ljYWxseSBiZWZvcmUgYmVjYXVzZSBHc3RUYWdMaXN0CgkgIHdhcyBqdXN0IGEgdHlwZWRlZiB0byBHc3RTdHJ1Y3R1cmUgKHNhbWUgZm9yIHRoZSBHVHlwZSksCgkgIGJ1dCBub3cgdGhhdCBpdCdzIGEgc2VwYXJhdGUgR1R5cGUgd2UgbmVlZCB0byByZWdpc3RlcgoJICBleHBsaWNpdCBmdW5jdGlvbnMgZm9yIHRoaXMuCgkgIEhlbHBzIHdpdGggR0RQIHN0dWZmIGluIHBpcGVsaW5lcy9zdHJlYW1oZWFkZXIgdGVzdHMuCgoyMDEyLTA3LTIwIDA5OjM4OjQ3ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNy0xOSAxMzo1MToyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBnc3RidWZmZXI6IGFkZCB0ZXN0cyBmb3Igc29tZSBtdWxpdHBsZSBtYXAgY29tYmluYXRpb25zCgoyMDEyLTA3LTE5IDEzOjM1OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IHNoYXJlZG5lc3MgY2hlY2sKCjIwMTItMDctMTkgMTM6MjA6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiByZWZ1c2Ugd3JpdGUgd2hlbiBvYmplY3QgaXMgc2hhcmVkCgkgIEluIGFsbCBjYXNlcywgcmVmdXNlIHRvIHdyaXRlIGFuIG9iamVjdCB3aGVuIGl0IGlzIHNoYXJlZCBieSBtb3JlIHRoYW4gb25lCgkgIG9iamVjdCAoYWxzbyB3aGVuIHRoZSBvYmplY3Qgd2FzIGxvY2tlZCBiZWZvcmUpLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE0NQoKMjAxMi0wNy0xOCAxNToyMTozMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBnc3RidWZmZXI6IGV4dGVuZCBidWZmZXIgY29weSB0ZXN0CgoyMDEyLTA3LTE5IDEyOjQyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgYnVmZmVyaW5nLWxlZnQgdG8gMCBvbiAxMDAlIGJ1ZmZlcmluZwoJICBTZXQgdGhlIGJ1ZmZlcmluZy1sZWZ0IGZpZWxkIGluIHRoZSBxdWVyeSB0byAwIHdoZW4gd2UgYXJlIGNvbXBsZXRlbHkgYnVmZmVyZWQuCgkgIEltcHJvdmUgdGhlIGRlYnVnLgoKMjAxMi0wNy0xOSAxMjoxNDoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlcmluZyBxdWVyeQoJICBGaXggdGhlIGJ1ZmZlcmluZyBxdWVyeSwgZmlsbCBpbiB0aGUgcmlnaHQgYnVmZmVyaW5nLWxlZnQgYW5kIGVzdGltYXRlZC10b3RhbAoJICB2YWx1ZXMuCgoyMDEyLTA3LTE5IDEwOjU0OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdGhlIGJ1ZmZlcmluZy1sZWZ0IGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZQoJICBUaGUgYnVmZmVyaW5nLWxlZnQgZmllbGQgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlIHNob3VsZCBjb250YWluIGEgdGltZSBlc3RpbWF0ZQoJICBpbiBtaWxsaXNlY29uZHMgYWJvdXQgZm9yIGxvbmcgdGhlIGJ1ZmZlcmluZyBpcyBnb2luZyB0byB0YWtlLiBXZSBjYW4gY2FsY3VsYXRlCgkgIHRoaXMgdmFsdWUgd2hlbiB3ZSBkbyByYXRlX2VzdGltYXRlcy4KCjIwMTItMDctMTkgMTA6MTQ6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBpbXByb3ZlIGJ1ZmZlcmluZyBtZXNzYWdlIGRlZmF1bHRzCgkgIFJlbW92ZSB0aGUgZXN0aW1hdGVkLXRvdGFsIGZpZWxkLCB0aGlzIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGUgYnVmZmVyaW5nCgkgIG1lc3NhZ2UuCgkgIFNldCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBidWZmZXJpbmctbGVmdCB0byAwIHdoZW4gdGhlIHBlcmNlbnQgaXMgMTAwLgoKMjAxMi0wNy0xOCAxNzo0NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVidWcgbGluZQoJICBVc2UgUVVFUllfVFlQRSBvbiBxdWVyeSB0eXBlcy4KCjIwMTItMDctMTggMTc6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogcmVtb3ZlIGN1c3RvbSBmdW5jdGlvbgoJICBSZW1vdmUgY3VzdG9tIHBhZCBmdW5jdGlvbnMsIHRoZSBkZWZhdWx0IG9uZXMgYXJlIGJldHRlci4KCjIwMTItMDctMTggMTc6MzA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgUFJPWFlfU0NIRURVTElORyBmbGFnCgkgIEFkZCBhIGZsYWcgdGhhdCBtYWtlcyB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIGZvcndhcmQgdGhlIHNjaGVkdWxpbmcgcXVlcnkuCgoyMDEyLTA3LTE4IDE3OjMwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZG9jcwoKMjAxMi0wNy0xOCAxNjoyMDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogaW1wcm92ZSBxdWVyeSBjYXBzIGZ1bmN0aW9uCgkgIEluIHRoZSBwcm94eV9xdWVyeV9jYXBzIGZ1bmN0aW9uLCBhbHNvIGZpbHRlciBhZ2FpbnN0IHRoZSBmaWx0ZXIgaW4gdGhlIHF1ZXJ5LgoJICBXZSBkb24ndCBuZWVkIHRvIGZpbHRlciBhZ2FpbnN0IHRoZSBmaWx0ZXIgaW4gdGhlIHF1ZXJ5IGFueW1vcmUgaW4gdGhlIGRlZmF1bHQKCSAgY2FwcyBxdWVyeSBmdW5jdGlvbiBiZWNhdXNlIHdlIGFscmVhZHkgZGlkIHRoaXMgaW4gdGhlIHByb3h5X3F1ZXJ5X2NhcHMuCgoyMDEyLTA3LTE4IDExOjE3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgLTEgc3RlcCBhbW91bnRzCgkgIERlZmluZSBhIDAgYW5kIC0xIHN0ZXAgYW1vdW50LiBUaGV5IHVzZWQgdG8gYWxtb3N0IGRvIHRoZSBzYW1lIHRoaW5nIGJ1dCBub3csIDAKCSAgY2FuY2Vscy9zdG9wcyB0aGUgY3VycmVudCBzdGVwIGFuZCAtMSBrZWVwcyBvbiBzdGVwcGluZyB1bnRpbCB0aGUgZW5kIG9mIHRoZQoJICBzZWdtZW50LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTM3OAoKMjAxMi0wNy0xOCAxMjozMDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBnc3RfcXVlcnlfcGFyc2VfbnRoX2FsbG9jYXRpb25fcG9vbCgpIGFubm90YXRpb24KCSAgSXQgcmV0dXJucyBhIHJlZiB0byB0aGUgcG9vbC4KCjIwMTItMDctMTcgMTU6NTI6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrOiBBdm9pZCBkZWFkbG9jawoJICBRdWVyaWVzIHdpbGwgYmUgc2VudCB3aGVuIHBpcGVsaW5lIGdvZXMgZG93biB0byBOVUxMLCB3aGljaCB3b3VsZAoJICByZXN1bHQgaW4gdGhlIHByb2JlIGJlaW5nIGNhbGxlZCAuLi4gYnV0IGNhbid0IHRha2UgdGhlIGxvY2suCgoyMDEyLTA3LTE3IDE1OjUwOjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RnaG9zdHBhZDogRm9yd2FyZCBxdWVyaWVzIGluIGJvdGggZGlyZWN0aW9uCgkgIFVzZSB0aGUgcGVlciBvZiB0aGUgaW50ZXJuYWwgcGFkIHRvIGZvcndhcmQgdGhlbSwgaW5zdGVhZCBvZiB0aGUKCSAgdGFyZ2V0IHdoaWNoIG9ubHkgZXhpc3RzIGZvciB0aGUgZ2hvc3RwYWQgKGFuZCBub3QgdGhlIGludGVybmFsCgkgIHByb3h5IHBhZCkuCgoyMDEyLTA3LTE3IDExOjIwOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IE1vcmUgZW50cmllcwoKMjAxMi0wNy0xOCAwOToxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGFuc3dlciBTQ0hFRFVMSU5HIHF1ZXJ5CgkgIEluc3RlYWQgb2YgbGV0dGluZyB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIGZhaWwuCgoyMDEyLTA3LTE3IDE5OjIwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaGFuZGxlIENBUFMgZXZlbnQgYW5kIGRyb3AgaXQgaWYgb3BlcmF0aW5nIGluIHJpbmcgYnVmZmVyIG1vZGUKCSAgRml4ZXMgIlVuZXhwZWN0ZWQgZXZlbnQgb2Yga2luZCBjYXBzIGNhbid0IGJlIGFkZGVkIGluIHRlbXAgZmlsZSIKCSAgd2FybmluZyB3aGVuIGRvaW5nIGRvd25sb2FkIGJ1ZmZlcmluZy4KCjIwMTItMDctMTcgMTI6NTc6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBtYWtlIF9mb3JlYWNoX21ldGEgbW9yZSBwb3dlcmZ1bAoJICBNYWtlIF9mb3JlYWNoX21ldGEgcmV0dXJuIEZBTFNFIHdoZW4gdGhlIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJuZWQgRkFMU0UuCgoyMDEyLTA3LTE3IDEyOjUyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogaW1wcm92ZSBmb3JlYWNoIGZ1bmN0aW9uCgkgIE1ha2UgdGhlIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJuIEZBTFNFIHdoZW4gb25lIG9mIHRoZSBmdW5jdGlvbiBjYWxscyByZXR1cm5lZAoJICBGQUxTRS4KCjIwMTItMDctMTcgMTI6NTA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgZGVidWcKCjIwMTItMDctMTcgMTI6NDA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggZGVidWcgc3RyaW5nCgoyMDEyLTA3LTE3IDA5OjU3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZTogZml4IHNvbWUgZGVidWcKCjIwMTItMDctMTcgMDk6NDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgcGFyc2U6IG9ubHkgZXNjYXBlIHNwYWNlcyBvdXRzaWRlIG9mIHF1b3RlcwoJICBXaGVuIHdlIGVzY2FwZSBzcGFjZXMgdG8ga2VlcCBhcmd1bWVudHMgdG9nZXRoZXIsIG9ubHkgZXNjYXBlIHdoZW4gdGhlIHNwYWNlIGlzCgkgIG91dHNpZGUgYSAiIiBzdHJpbmcuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMzE5CgoyMDEyLTA3LTE3IDA5OjQ0OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIFJldmVydCAicGFyc2U6IGVzY2FwZSBcIHdpdGggYSBcIGFzIHdlbGwsIHNvIHRoYXQgd2UgZG9uJ3QgbG9zZSB0aGUgXCB3aGVuIHVuZXNjYXBpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGQ5ZmVkYjQxZjFhZGE4ZTFmOGJkNTM0NmZjY2QzZDA2OGQ1NDNjYi4KCSAgVGhpcyBpcyBub3QgdGhlIHJpZ2h0IHBsYWNlIHRvIGVzY2FwZSB0aGUgXCwgd2Ugc2hvdWxkIG9ubHkgZXNjYXBlIHRoZSBzcGFjZXMgdG8KCSAga2VlcCB0aGUgYXJndW1lbnRzIHRvZ2V0aGVyIHRoYXQgd2VyZSBwcm92aWRlZCBhcyBvbmUgZ3JvdXAgKHdpdGggcXVvdGVzIG9uIHRoZQoJICBzaGVsbCkuCgoyMDEyLTA3LTEwIDEyOjI3OjExIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogc2V0IHJldHVybiB0eXBlIG9mIGdzdF9wYXJzZV9iaW5fKiB0byBHc3RCaW4gZm9yIGludHJvc3BlY3Rpb24KCjIwMTItMDYtMzAgMTI6MzM6NDMgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgbmV0dGltZXBhY2tldDogYWRkIG1pc3NpbmcgYXJyYXkgYW5ub3RhdGlvbiB0byBnc3RfbmV0X3RpbWVfcGFja2V0X25ldwoKMjAxMi0wNi0yOSAxNzozMzo0OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBtaXNzaW5nIGFycmF5IGFubm90YXRpb24gdG8gZ3N0X2Zvcm1hdHNfY29udGFpbnMKCjIwMTItMDctMTYgMjA6NTQ6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBhZ2dyZWdhdGUgZHVyYXRpb25zIGxpa2UgaW4gYWRkZXIKCSAgU3RvcCBxdWVyeWluZyB0aGUgZHVyYXRpb24gb25jZSBhbiBlbGVtZW50IHJldHVybiB1bmtub3duIGFuZCByZXR1cm4gdW5rbm93bgoJICBhcyBhIGZpbmFsIHJlc3VsdC4gVGhpcyBhdm9pZCBldmVudHVhbGx5IGN1dHRpbmcgb2ZmIGEgc3RyZWFtIHRvbyBlYXJseS4KCSAgQWRkIGEgdGVzdHMgdG8gZG9jdWVtZW50IHRoZSBiZWhhdmlvci4KCjIwMTItMDctMTYgMDA6MjQ6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGp1c3QgcmV0dXJuIE5VTEwgb24gc2hvcnQgaW5wdXQgc3RyaW5ncyBpbnN0ZWFkIG9mIGEgd2FybmluZwoJICBXZSB3YW50IHRvIGJlIGFibGUgdG8gdXNlIHRoaXMgZnVuY3Rpb24gb24gcmFuZG9tIG5vbi1OVUxMIGlucHV0LAoJICB0aGlzIHNob3VsZCBub3QgcmVzdWx0IGluIGEgcnVudGltZS1jcml0aWNhbC4KCjIwMTItMDctMTUgMTI6NTk6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrYWJpbGl0eSBxdWVyeWluZyB3aXRoIGZvcm1hdHMgd2l0aCBoZWFkZXJzIGxpa2UgRkxBQwoJICBNb3ZlIGNvZGUgdGhhdCBjaGVja3MgZm9yIHVwc3RyZWFtIHNlZWthYmlsaXR5IGFuZCBhbGwgdGhhdCB0bwoJICB0aGUgcmlnaHQgcGxhY2UsIG90aGVyd2lzZSBpdCB3aWxsIG5ldmVyIGJlIGRvbmUgZm9yIGZvcm1hdHMKCSAgdGhhdCBoYXZlIGhlYWRlcnMgc3VjaCBhcyBGTEFDLCBhcyBoYW5kbGVfYW5kX3B1c2ggZnJhbWUgd2lsbAoJICBiZSBjYWxsZWQgdGhlIGZpcnN0IHRpbWUgb25seSBhZnRlciBoZWFkZXJzIGhhdmUgYmVlbiBwcm9jZXNzZWQKCSAgKGFuZCBmcmFtZWNvdW50IGlzID4gMCkuIFRoaXMgdGhlbiBtYWtlcyB1cyByZXBvcnQgdGhhdCB3ZQoJICBjYW4ndCBzZWVrLCB3aGljaCBkaXNhYmxlcyB0aGUgc2VlayBiYXIgaW4gdG90ZW0uCgoyMDEyLTA3LTE0IDIwOjMzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSAgcGx1Z2luczogZW1iZWQgR3N0QXVldWVBcnJheSBpbiBkYXRhcXVldWUgc3RydWN0IGFzIHdlbGwKCjIwMTItMDctMTQgMjA6Mjg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIHBsdWdpbnM6IGRvbid0IHVzZSBvbmUtdGltZSBhcnJheSBpbiBwbHVnaW5faW5pdAoKMjAxMi0wNy0xNCAyMDoyNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogZW1iZWQgR3N0UXVldWVBcnJheSBzdHJ1Y3R1cmUKCjIwMTItMDctMTQgMjA6MDA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHBsdWdpbnM6IHNwcmlua2xlIHNvbWUgbW9yZSBHX0dOVUNfSU5URVJOQUwKCjIwMTItMDctMTQgMTk6Mzg6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkgIHBsdWdpbnM6IGFkZCBpbml0L2NsZWFyIGZ1bmN0aW9ucyB0byBHc3RRdWV1ZUFycmF5CgoyMDEyLTA3LTE0IDE5OjI0OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZTogbWFrZSBHc3RRdWV1ZUFycmF5IHByaXZhdGUgdG8gY29yZWVsZW1lbnRzIGZvciBub3cKCSAgS2VlcCBpdCBwcml2YXRlIHVudGlsIHdlIGhhdmUgYSByZWFzb24gdG8gbWFrZSBpdCBwdWJsaWMuCgoyMDEyLTA3LTE0IDE5OjA4OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogY2hlY2sgdmFsdWUgdHlwZSBtYXRjaGVzIHRhZyB0eXBlIHdoZW4gYWRkaW5nIHZhbHVlcyB0byBhIHRhZ2xpc3QKCjIwMTItMDctMTQgMTg6NTI6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtYWtlIHRhZ2xpc3RzIGFuZCBkYXRldGltZSBsb2dnYWJsZSB2aWEgR1NUX1BUUl9GT1JNQVQKCjIwMTItMDctMTMgMTI6MDU6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlbmQgc2VlayBldmVudCB1cHN0cmVhbSBmaXJzdAoJICBGaXJzdCB0cnkgdG8gbGV0IHVwc3RyZWFtIGhhbmRsZSB0aGUgc2VlayBldmVudCwgdGhlbiBmYWlsIGlmIHRoZSBldmVudCBpcwoJICBzb21ldGhpbmcgd2UgZG9uJ3QgdW5kZXJzdGFuZC4KCjIwMTItMDctMTMgMDk6NDM6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHRlc3QgcmFjaW5lc3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTUwNgoKMjAxMi0wNy0xMiAxMzoxNzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBmaXggZ3N0LWZmbXBlZyBwbHVnaW4gcGF0aCBhZ2FpbgoKMjAxMi0wNy0xMiAxMjowOToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgY2x1dHRlci1nc3QgYW5kIHJlZmluZSBwbHVnaW4gc2VhcmNoIHBhdGhzCgoyMDEyLTA3LTEyIDAwOjM0OjIyICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogTW92ZSBzdGlja3kgZmxhZyBjbGVhcmluZyBjb2RlIHRvIGdzdF9wYWRfYWN0aXZhdGVfbW9kZQoJICBUaGUgZ2hvc3RwYWQgY29kZSBkaXJlY3RseSBhY3RpdmF0ZXMvZGVhY3RpdmF0ZXMgdGhlIGNoaWxkIGNvZGUgYnkKCSAgY2FsbGluZyBnc3RfcGFkX2FjdGl2YXRlX21vZGUsIHJhdGhlciB0aGFuIGdzdF9wYWRfc2V0X2FjdGl2ZSwgc28KCSAgbWFrZSBzdXJlIHRvIGNsZWFyIHRoZSBmbGFncyBpbiBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSwgd2hpY2ggc2hvdWxkCgkgIGNhdGNoIGFsbCBjYXNlcy4KCjIwMTItMDctMTEgMTI6NDA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGltcHJvdmUgYW5ub3RhdGlvbgoKMjAxMi0wNy0xMSAxMjozNzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBzdGVwIGVuZCBjb3JyZWN0bHkKCSAgd2hlbiB3ZSBoYXZlIGEgbmV3IHN0ZXAgZXZlbnQgd2l0aCBhIC0xIGFtb3VudCwgbWFrZSBzdXJlIHRoYXQgd2UgZm9sbG93IHRoZQoJICByZWd1bGFyIGNvZGUgcGF0aCBzbyB0aGF0IHRoZSBzdG9wX2VuZCBoYW5kbGVyIGlzIGNhbGxlZCBhcyB1c3VhbC4gVGhpcyB0YWtlcwoJICBjYXJlIG9mIGZsdXNoaW5nIHRoZSBidWZmZXIgaW4gY2FzZSBvZiBhIGZsdXNoaW5nIHN0ZXAgYW5kIGFsc28gcG9zdHMgYSBzdGVwIGVuZAoJICBtZXNzYWdlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTM3OAoKMjAxMi0wNy0xMSAxMzoxNDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICB3aW4zMjogRml4IGV4cG9ydGVkIHN5bWJvbHMgbGlzdCBmb3IgcmVhbCBub3cKCjIwMTItMDctMTEgMTE6MjE6MTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiByZW1vdmUgcmVtb3ZlZCBhcGkgZnJvbSB0aGUgZG9jcy4KCjIwMTItMDctMTEgMTI6NDY6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGVkIGV4cG9ydGVkIHN5bWJvbHMgbGlzdAoKMjAxMi0wNy0xMSAxMjo0NTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBBZGQgZnVuY3Rpb25zIHRvIHJldHJpZXZlIHRoZSBwYXJlbnQgR3N0VG9jL0dzdFRvY0VudHJ5IG9mIGEgR3N0VG9jRW50cnkKCjIwMTItMDctMTAgMTg6MTU6MjAgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBGaXggZ3N0X3RvY19maW5kX2VudHJ5KCkKCSAgUmVjdXJzaXZlIHNlYXJjaCBmb3IgdGhlIHJlcXVpcmVkIGVudHJ5LCBpbnN0ZWFkIG9mIHJldHVybmluZyB0aGUKCSAgdG9wLWxldmVsIGVudHJ5IHRoYXQgY29udGFpbnMgYW4gZW50cnkgd2l0aCB0aGUgc2VhcmNoIFVJRC4KCjIwMTItMDctMTEgMTA6MjY6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBQdXNoIFNUUkVBTV9TVEFSVCBpbiBwdWxsLW1vZGUKCjIwMTItMDctMTEgMTA6MjQ6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERlbW90ZSBXQVJOSU5HIHRvIERFQlVHCgkgIEl0IGlzIG5vdCBhbiBpc3N1ZSB0byBnZXQgZmllbGRzIHRoYXQgZG9uJ3QgZXhpc3QsIGNhbGxpbmcgY29kZSBzaG91bGQKCSAgaGFuZGxlIHRoYXQuCgoyMDEyLTA3LTEwIDExOjQ2OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIFJlbW92ZSAwLjEwLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgIlNpbmNlIiBtYXJrZXJzCgoyMDEyLTA3LTEwIDAwOjM5OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByb3ZpZGUgZmFsbGJhY2sgaW4gY2FzZSBhIGNyZWF0ZSBmdW5jdGlvbiBkb2Vzbid0IGtub3cgYWJvdXQgcHJvdmlkZWQgYnVmZmVycwoJICBJbiAwLjExIHRoZSBjYWxsZXIgbWF5IHByb3ZpZGUgYSBidWZmZXIgdG8gYmUgZmlsbGVkIGJ5IHRoZSBzb3VyY2UgdG8KCSAgcHVsbF9yYW5nZS9nZXRfcmFuZ2UvY3JlYXRlLCBidXQgaXQncyBlYXN5IHRvIG1pc3MgdGhpcyBuZXcgY2FzZSB3aGVuCgkgIHBvcnRpbmcgY29kZSBmcm9tIDAuMTAuIFByb3ZpZGUgZmFsbGJhY2sgdGhhdCBjb3BpZXMgdGhlIGNyZWF0ZWQgZGF0YQoJICBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIgZm9yIG5vdy4KCSAgVGhpcyBtYWtlcyBvZ2dkZW11eCBpbiBwdWxsLW1vZGUgd29yayB3aXRoIGRhdGF1cmlzcmMuCgoyMDEyLTA3LTEwIDEwOjMxOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IGNvcHkgc3RydWN0dXJlIGluIF9hZGRfYWxsb2NhdGlvbl9tZXRhKCkKCSAgTWFrZSBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fbWV0YSgpIHRha2UgYSBjb3B5IG9mIHRoZSBwYXNzZWQgY2FwcyBpbnN0ZWFkIG9mCgkgIHRha2luZyBvd25lcnNoaXAuIFRoaXMgbWFrZXMgaXQgZWFzaWVyIGZvciB0aGUgY2FsbGVyIGluIG1vc3QgY2FzZXMgYmVjYXVzZSBpdAoJICBkb2Vzbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgYW5kIGRlYWwgd2l0aCBOVUxMIHZhbHVlcy4KCjIwMTItMDctMTAgMTA6MTE6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIG5ldyBmbGFncwoKMjAxMi0wNy0wOSAyMzo0Nzo1MyArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBleGNsdXNpdmUgbG9jay91bmxvY2sgcmFjZQoKMjAxMi0wNy0wOSAyMTo1MTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGJhc2VzcmMsIGJhc2VzaW5rLCBiYXNlcGFyc2UsIHR5cGVmaW5kOiB1c2UgR1NUX1NFR01FTlRfRkxBRyB3aXRoIHNlZ21lbnQgZmxhZ3MKCjIwMTItMDctMDkgMjI6MTE6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBhbHNvIGNvcHkgdGhlIHNlZ21lbnQgZmxhZwoJICBGaXhlcyBzZWdtZW50ZWQgc2Vla3MgKGFzIHRlc3RlZCBlLmcuIGluIHRoZSBhZGRlciB0ZXN0cyBpbiBiYXNlKS4KCjIwMTItMDctMDkgMjA6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSAgcGx1Z2luczogc3ByaW5rbGUgR19HTlVDX0lOVEVSTkFMIGZvciBkYXRhcXVldWUgZnVuY3Rpb25zCgkgIEFuZCByZW1vdmUgcGFkZGluZywgc2luY2UgdGhpcyBpcyBub3QgcHVibGljIEFQSSBhbnkgbW9yZS4KCjIwMTItMDctMDkgMjA6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBnc3Q6IHNwcmlua2xlIHNvbWUgR19HTlVDX0lOVEVSTkFMIGZvciBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMTItMDctMDkgMjA6MDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRlc3RzOiBmaXggdG9jIHVuaXQgdGVzdHMKCSAgTWVhbnQgdG8gY2hlY2sgc3Vic3ViZW50cnksIG5vdCBzdWJlbnRyeS4KCjIwMTItMDctMDkgMTg6NTg6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0ZXN0czogbWlub3IgdG9jIHRlc3QgY2xlYW4tdXAKCjIwMTItMDctMDkgMTg6NTE6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRlc3RzOiB0dXJuIHRvYyBjaGVjayBtYWNyb3MgaW50byBwcm9wZXIgZnVuY3Rpb25zCgkgIFNvIHdlIGNhbiBzZWUgdGhlIGxpbmUgbnVtYmVyIG9mIHRoZSBjaGVjayB0aGF0IGZhaWxzLgoKMjAxMi0wNy0wOSAyMDozMTowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGUgZm9yIEFQSSBjaGFuZ2VzL2FkZGl0aW9uCgoyMDEyLTA3LTA5IDIwOjI5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgY2hlY2s6IFVwZGF0ZSB0ZXN0cyBmb3IgbmV3IFNUUkVBTV9TVEFSVCBtZXNzYWdlCgoyMDEyLTA3LTA5IDIwOjI4OjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2s6IEVuc3VyZSBTVFJFQU1fU1RBUlQgbWVzc2FnZSBpcyBwb3N0ZWQKCSAgQSBTVFJFQU1fU1RBUlQgbWVzc2FnZSBpcyBwb3N0ZWQgaWYgYW5kIG9ubHkgaWYgYWxsIHNpbmtzIGluIHRoZQoJICBiaW4vcGlwZWxpbmUgcmVjZWl2ZWQgdGhlIFNUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wNy0wOSAyMDoyODoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQb3N0IGEgU1RSRUFNX1NUQVJUIG1lc3NhZ2Ugd2hlbiB3ZSBzZWUgdGhlIGV2ZW50CgoyMDEyLTA3LTA5IDIwOjI3OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBjb2xsZWN0IGFuZCBhZ2dyZWdhdGUgU1RSRUFNX1NUQVJUIG1lc3NhZ2VzCgkgIHdoZW4gYWxsIHNpbmtzIGhhdmUgcG9zdGVkIGEgU1RSRUFNX1NUQVJULCB0aGUgYmluIHdpbGwgZm9yd2FyZCBhCgkgIG5ldyBTVFJFQU1fU1RBUlQgbWVzc2FnZSB0byB0aGUgcGFyZW50IGJpbiBvciBhcHBsaWNhdGlvbgoKMjAxMi0wNy0wOSAyMDowODoxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0bWVzc2FnZTogTmV3IEdTVF9NRVNTQUdFX1NUUkVBTV9TVEFSVAoJICBtZXNzYWdlIGNvdW50ZXJwYXJ0IHRvIHRoZSBHU1RfRVZFTlRfU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTA3LTA5IDE5OjU5OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2s6IFVuaXQgdGVzdCBmb3IgRU9TIG1lc3NhZ2UKCSAgTWFrZSBzdXJlIHdlIGdldCB0aGUgYWdncmVnYXRlZCBtZXNzYWdlIGlmIGFuZCBvbmx5IGlmIGFsbCBzaW5rcwoJICByZWNlaXZlZCBhbiBFT1MgZXZlbnQKCjIwMTItMDctMDkgMTk6NTY6MTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgU1RSRUFNX1NUQVJUIGhhbmRsaW5nCgkgIFVzZSBhIGZsYWcgdG8gZm9yd2FyZCB0aGUgZmlyc3QgU1RSRUFNX1NUQVJUCgoyMDEyLTA3LTA5IDE2OjIwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzdHJlYW0gZG9jcyBmb3IgU0VHTUVOVF9TVEFSVCBldmVudAoKMjAxMi0wNy0wOSAxNjo0ODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBtb3JlIGRvY3MKCjIwMTItMDctMDkgMTY6MjI6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkgIGRvY3M6IGZpeCBkb2NzIGEgbGl0dGxlIG1vcmUKCjIwMTItMDctMDkgMTY6MDI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIG1lbW9yeTogTWFrZSBHc3RBbGxvY2F0b3IgYSBHc3RPYmplY3QKCSAgTWFrZSBHc3RBbGxvY2F0b3IgYSBHc3RPYmplY3QgaW5zdGVhZCBvZiBhIEdzdE1pbmlPYmplY3QsIGxpa2UgYnVmZmVycG9vbC4KCSAgTWFrZSBhIG5ldyBnc3RhbGxvY2F0b3IuYyBmaWxlLiBNYWtlIGEgR3N0QWxsb2NhdG9yIHN1YmNsYXNzIGZvciB0aGUgZGVmYXVsdAoJICBhbGxvY2F0b3IuCgoyMDEyLTA3LTA5IDEzOjIwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHJlbW92ZSB1bnVzZWQgbWFjcm9zCgoyMDEyLTA3LTA5IDEzOjIwOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICBjbG9jazogbWFrZSBhYnN0cmFjdAoJICBNYWtlIHRoZSBHc3RDbG9jayB0eXBlIGFic3RyYWN0LgoJICBGaXggYSBob3JyaWJsZSBoYWNrIGluIHRoZSBjbG9jayB1bml0IHRlc3QuCgoyMDEyLTA3LTA5IDE1OjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZpeCBoYW5kbGluZyBvZiBtaW4tdGhyZXNob2xkIGFuZCBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgT25seSBjb25zaWRlciB0aGUgcXVldWUgZW1wdHkgaWYgdGhlIG1pbmltdW0gdGhyZXNob2xkcwoJICBhcmUgbm90IHJlYWNoZWQgYW5kIGRhdGEgaXMgYXQgdGhlIHF1ZXVlIGhlYWQuIE90aGVyd2lzZQoJICB3ZSB3b3VsZCBibG9jayBmb3JldmVyIG9uIHNlcmlhbGl6ZWQgcXVlcmllcy4KCSAgVGhpcyBhbHNvIG1ha2VzIHNlbmRpbmcgb2Ygc2VyaWFsaXplZCBldmVudHMsIGxpa2UgY2FwcywgaGFwcGVuCgkgIGZhc3RlciBhbmQgcG90ZW50aWFsbHkgaW1wcm92ZXMgbmVnb3RpYXRpb24gcGVyZm9ybWFuY2UuCgkgIEZpeGVzIGJ1ZyAjNjc5NDU4LgoKMjAxMi0wNy0wOSAxMzoxNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogcmVtb3ZlIHBhZGRpbmcgbm93IHRoYXQgdGhlIHN0cnVjdHMgYXJlIHByaXZhdGUKCjIwMTItMDctMDkgMTM6MTI6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBhZGQgZ3N0X3RvY19kdW1wKCkgZnVuY3Rpb24gZm9yIGRlYnVnZ2luZwoJICBBUEk6IGdzdF90b2NfZHVtcCgpCgoyMDEyLTA3LTAzIDAwOjA3OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBidXMsIGNsb2NrOiBtYWtlIHN1cmUgdGhlc2UgbmV2ZXIgaGF2ZSBhIGZsb2F0aW5nIHJlZgoJICBDbGVhciB0aGUgaW5pdGlhbCBmbG9hdGluZyByZWYgaW4gdGhlIGluaXQgZnVuY3Rpb24gZm9yCgkgIGJ1c3NlcyBhbmQgY2xvY2tzLiBUaGVzZSBvYmplY3RzIGNhbiBiZSBzZXQgb24gbXVsdGlwbGUKCSAgZWxlbWVudHMsIHNvIHRoZXJlJ3Mgbm8gY2xlYXIgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcAoJICBoZXJlLiBJZGVhbGx5IHdlJ2QganVzdCBub3QgbWFrZSB0aGVtIGRlcml2ZSBmcm9tCgkgIEdJbml0aWFsbHlVbm93bmVkIGF0IGFsbCwgYnV0IHNpbmNlIHdlIHdhbnQgdG8ga2VlcAoJICB1c2luZyBHc3RPYmplY3QgZmVhdHVyZXMgZm9yIGRlYnVnZ2luZywgd2UnbGwganVzdCBkbwoJICBpdCBsaWtlIHRoaXMuCgkgIFRoaXMgc2hvdWxkIGFsc28gZml4IHNvbWUgcHJvYmxlbXMgd2l0aCBiaW5kaW5ncywgd2hpY2gKCSAgc2VlbSB0byBnZXQgY29uZnVzZWQgd2hlbiB0aGV5IGdldCBmbG9hdGluZyByZWZzIGZyb20KCSAgbm9uLWNvbnN0cnVjdG9yIGZ1bmN0aW9ucyAob3IgZnVuY3Rpb25zIGFubm90YXRlZCB0bwoJICBoYXZlIGEgJ3RyYW5zZmVyIGZ1bGwnIHJldHVybiB0eXBlKS4gVGhpcyB3b3JrcyBub3c6CgkgIGZyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR09iamVjdCwgR3N0CgkgIEdPYmplY3QudGhyZWFkc19pbml0KCkKCSAgR3N0LmluaXQoTm9uZSkKCSAgcGlwZWxpbmU9R3N0LlBpcGVsaW5lKCkKCSAgYnVzID0gcGlwZWxpbmUuZ2V0X2J1cygpCgkgIHBpcGVsaW5lLnNldF9zdGF0ZShHc3QuU3RhdGUuTlVMTCkKCSAgZGVsIHBpcGVsaW5lOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mjg2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTcyMDIKCjIwMTItMDctMDggMjA6MTU6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBzdXBwcmVzcyBnbGliIGRlcHJlY2F0aW9ucyB3YXJuaW5ncyBmb3IgR19WQUxVRV9BUlJBWQoKMjAxMi0wNy0wNyAyMzoxMzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogYWRkIG1vcmUgdGVzdHMgZm9yIGRhdGV0aW1lIHZhbHVlIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uCgkgIEVzcC4gb2YgcGFydGlhbCBkYXRldGltZXMuCgoyMDEyLTA3LTA3IDIyOjQ2OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHVzZSBkYXRldGltZSBzZXJpYWxpc2UvZGVzZXJpYWxpc2UgZnVuY3Rpb25zIGZvciBkYXRldGltZXMKCSAgVGhpcyByZS11c2VzIGV4aXN0aW5nIGNvZGUgYW5kIG1ha2VzIHN1cmUgd2UgcHJvcGVybHkgc2VyaWFsaXNlCgkgIGFuZCBkZXNlcmlhbGlzZSBkYXRldGltZXMgd2hlcmUgbm90IGFsbCBmaWVsZHMgYXJlIHNldCAodGh1cwoJICBmaXhpbmcgc29tZSB3YXJuaW5ncyB3aGVuIHNlcmlhbGlzaW5nIHN1Y2ggZGF0ZXRpbWVzKS4KCjIwMTItMDctMDcgMjI6NDA6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGRvIG91ciBvd24gc2VyaWFsaXNhdGlvbiBzbyB3ZSBjYW4gc2VyaWFsaXNlIG1pY3Jvc2Vjb25kcyBhcyB3ZWxsCgkgIFdlIHN0aWxsIGRvbid0IGRvIHRoYXQgaW4gX3RvX2lzbzg2MDFfc3RyaW5nKCkgdGhvdWdoLCBzaW5jZQoJICB0aGlzIHdpbGwgcHJvYmFibHkgbW9zdGx5IGJlIHVzZWQgaW4gdGFncywgd2hlcmUgaXQgZG9lc24ndAoJICBtYXR0ZXIgc28gbXVjaCBhbmQgdGhlIG1pY3Jvc2Vjb25kIGFyZ3VtZW50IG1pZ2h0IG5vdCBiZQoJICB3ZWxsLXJlY2VpdmVkIGJ5IHNvbWUgdGFnIHJlYWRlcnMuCgoyMDEyLTA3LTA3IDE5OjQzOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiB3aGVuIGRlc2VyaWFsaXNpbmcgcGFyc2UgbWljcm9zZWNvbmRzIGlmIGF2YWlsYWJsZQoKMjAxMi0wNy0wNyAxNjowMTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogZml4IHNlY29uZCBwYXJzaW5nIGZhaWx1cmUgY2FzZSB3aGVuIGRlc2VyaWFsaXNpbmcgZGF0ZXRpbWUKCSAgV2hlbiB3ZSBmYWlsIHRvIHBhcnNlIHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgcmVzZXQgdGhlIHZhbHVlIHRvIC0xCgkgIGluc3RlYWQgb2YgcGFzc2luZyBzb21lIGVycm9yIHZhbHVlIGFzIHNlY29uZHMuIEFsc28sIHdlIGNhbiBzdGlsbAoJICB0cnkgdG8gcGFyc2UgdGltZXpvbmUgaW5mb3JtYXRpb24uCgoyMDEyLTA3LTA3IDE1OjQ0OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIGV4YW1wbGVzOiBmaXggZGVidWcgbG9nIHByaW50IGZvcm1hdHMgaW4gbWVtb3J5IGV4YW1wbGVzCgoyMDEyLTA3LTA3IDAxOjM3OjUwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IEFkZCBkZXN0cm95IG5vdGlmeSBhcmd1bWVudHMgdG8gZGVidWcgc3R1YnMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTUzNQoKMjAxMi0wNy0wNiAyMDozNzowNiArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogU2V0IGxjb3B5IHN0cmluZyBjb25zdCBleGFjdGx5IGFzIGdsaWIncyBtYWNybwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTM0CgoyMDEyLTA3LTA2IDE3OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBtZW1vcnk6IGV4cG9zZSB0aGUgR3N0QWxsb2NhdGlvbiBzdHJ1Y3R1cmUKCSAgRXhwb3NlIHRoZSBHc3RBbGxvY2F0aW9uIHN0cnVjdHVyZSBhbmQgcHJvdmlkZSBhbiBfaW5pdCBmdW5jdGlvbi4gVGhpcyBtYWtlcyBpdAoJICBlYXNpZXIgdG8gbWFrZSAnc3ViY2xhc3Nlcycgb2YgdGhlIGFsbG9jYXRvciB0aGF0IGNvbnRhaW4gbW9yZSBpbmZvLgoJICBJdCBhbHNvIGFsbG93cyB1cyB0byBleHBvc2UgdGhlIGZsYWdzIG9uIHRoZSBhbGxvY2F0b3IgbWluaW9iamVjdC4KCSAgTWFrZSBhIGZsYWcgdG8gbm90ZSB0aGF0IHRoZSBhbGxvY2F0b3IgdXNlcyBhIGN1c3RvbSBhbGxvYyBmdW5jdGlvbi4KCjIwMTItMDctMDYgMTI6NDU6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERlbW90ZSBXQVJOSU5HIHRvIElORk8KCSAgSXQgaXMgY29tbW9uIHRvIHVzZSBnc3Rfc3RydWN0dXJlX2dldCgpIHRvIGtub3cgaWYgYSBmaWVsZCBpcyBwcmVzZW50CgkgIG9yIG5vdC4KCjIwMTItMDctMDYgMTE6NDE6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFJlbW92ZSB1bnVzZWQgZGVmaW5lCgoyMDEyLTA3LTA2IDExOjQxOjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICBjaGVjazogZ3N0Y29udHJvbGxlci5oIGRvZXNuJ3QgZXhpc3QgYW55bW9yZQoKMjAxMi0wNy0wNiAxMTo0MDo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgY2hlY2s6IFVzZSBjb25zaXN0ZW5jeWNoZWNrIG9uIGJhc2VzcmMKCjIwMTItMDctMDYgMTE6Mzg6NTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogQ2hlY2sgZm9yIFNUUkVBTV9TVEFSVCBldmVudAoJICBDaGVjayB0aGF0IGl0IGlzIGFsd2F5cyBiZWZvcmUgYW55IHNlcmlhbGl6ZWQgZXZlbnQuCgoyMDEyLTA3LTA2IDEwOjEzOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kZWxlbWVudDogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgbWF4aW11bSBwcm9wZXJ0eQoKMjAxMi0wNy0wNiAxMDowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IHJlbW92ZSB1bmltcGxlbWVudGVkIGhhcy1zaW5rLWxvb3AgcHJvcGVydHkKCjIwMTItMDctMDYgMTA6MDc6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgZGVwcmVjYXRlZCB0ZW1wLWxvY2F0aW9uIHVzZSwgbWFrZSBpdCByZWFkLW9ubHkKCjIwMTItMDctMDYgMDk6NTc6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiByZW1vdmUgZGVwcmVjYXRlZCBjaGVjay1wZXJmZWN0IHByb3BlcnR5CgkgIFJlcGxhY2VkIGJ5IHRoZSBtb3JlIHNwZWNpZmljIGNoZWNrLWltcGVyZmVjdC17dGltZXN0YW1wLG9mZnNldH0KCjIwMTItMDctMDYgMTE6NDk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgcXVlcnk6IHVzZSBtb3JlIGdlbmVyaWMgc3RydWN0dXJlIGZvciBtZXRhIHBhcmFtcwoKMjAxMi0wNy0wNiAxMToyMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IG1ha2UgZmluZF9hbGxvY2F0aW9uX21ldGEgbWV0aG9kCgkgIE1ha2UgZ3N0X3F1ZXJ5X2ZpbmRfYWxsb2NhdGlvbl9tZXRhKCkgdGhhdCBhbHNvIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIG1ldGFkYXRhCgkgIGFuZCByZXBsYWNlcyBnc3RfcXVlcnlfaGFzX2FsbG9jYXRpb25fbWV0YSgpLgoKMjAxMi0wNy0wNiAxMTowMDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBxdWVyeTogYWRkIGZsYWdzIHRvIGFsbG9jYXRpb24gcXVlcnkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgQVBJIHNwZWNpZmljIGZsYWdzIHRvIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5LiBUaGlzIG1ha2VzCgkgIGl0IHBvc3NpYmxlIHRvIGFsc28gY2hlY2sgd2hhdCBraW5kcyBvZiBzdWJmZWF0dXJlcyBvZiB0aGUgbWV0YWRhdGEgQVBJIGFyZQoJICBzdXBwb3J0ZWQuCgoyMDEyLTA3LTA2IDA5OjExOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgdW51c2VkIGluY2x1ZGVzCgoyMDEyLTA3LTA1IDE4OjA3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uaDoKCSAgbWVtb3J5OiBhZGQgbW9yZSBleGFtcGxlcwoJICBBZGQgYW4gZXhhbXBsZSBvZiBhIGN1c3RvbSBhbGxvY2F0b3Igd2l0aCBhIGN1c3RvbSBBUEkuCgoyMDEyLTA3LTA1IDE3OjExOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBnc3RfbWVtb3J5X2luaXQoKQoJICBBZGQgYSBtZXRob2QgdGhhdCBtZW1vcnkgaW1wbGVtZW50YXRpb25zIGNhbiBjYWxsIHRvIGluaXRpYWxpemUgdGhlIHN0YW5kYXJkCgkgIEdzdE1lbW9yeSBzdHJ1Y3R1cmUuCgkgIE1vdmUgdGhlIHBhcmVudCBoYW5kbGluZyBpbiB0aGUgX2ZyZWUgaGFuZGxlci4KCSAgUmVhcnJhbmdlIHNvbWUgaW50ZXJuYWwgZnVuY3Rpb24gcGFyYW1ldGVycyBzbyB0aGF0IHRoZSBvcmRlciBpcyBjb25zaXN0ZW50LgoJICBBZGQgbW9yZSBtZW1vcnkgZXhhbXBsZXMKCjIwMTItMDctMDUgMTY6MTc6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggc29tZSBtaW5pb2JqZWN0IGRvY3MKCjIwMTItMDctMDUgMTQ6MjU6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSAgdGVzdHM6IGFkZCBtZW1vcnkgZXhhbXBsZQoKMjAxMi0wNy0wNSAxMjoyNTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRlc3RzOiBmaXggdG9jIHVuaXQgdGVzdCBidWlsZCBieSByZW1vdmluZyB0b2MgcXVlcnkgc3R1ZmYgdGhlcmUgdG9vCgoyMDEyLTA3LTA1IDEzOjAzOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZCBmb3JtYXQgYW5kIHBvc2l0aW9uIHRvIHRoZSBzZWdtZW50LWRvbmUgZXZlbnQKCjIwMTItMDctMDUgMTI6NTM6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taW5pb2JqZWN0LnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDctMDUgMTI6MTc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBpbmNyZWFzZSBhbW91bnQgb2YgcG9zc2libGUgZmxhZ3MKCjIwMTItMDctMDUgMTI6NTI6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBldmVudDogSW1wbGVtZW50IHNlZ21lbnQtZG9uZSBldmVudAoKMjAxMi0wNy0wNSAxMjozNzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIHBhcnQtdG9jOiBSZW1vdmUgc2VjdGlvbiBhYm91dCBUT0MgcXVlcnkKCjIwMTItMDctMDUgMTI6MzQ6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnRlZCBzeW1ib2xzIGxpc3QKCjIwMTItMDctMDUgMTI6MzE6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogUmVtb3ZlIHRoZSBUT0MgcXVlcnksIGl0J3Mgbm90IHZlcnkgdXNlZnVsIG5vdyB0aGF0IHdlIGhhdmUgc3RpY2t5IGV2ZW50cwoKMjAxMi0wNy0wMyAxODo0OToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIHF1YXJrOiBSZW1vdmUgdW5uZWVkZWQgcXVhcmtzCgoyMDEyLTA3LTAzIDE4OjQ1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IE1ha2Ugc3RydWN0dXJlcyBvcGFxdWUgYW5kIGNsZWFuIHVwIGZ1bmN0aW9uIG5hbWVzIGFuZCBmaWVsZHMgYSBiaXQKCjIwMTItMDctMDQgMTc6MDI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjpmaXggZGVidWcgY2F0ZWdvcnkKCjIwMTItMDctMDQgMTY6Mzg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGFkZCBsb2NrIGZ1bmN0aW9uYWxpdHkgdG8gR3N0TWluaU9iamVjdAoJICBNb3ZlIHRoZSBsb2NraW5nIG1ldGhvZHMgZnJvbSBHc3RNZW1vcnkgdG8gR3N0TWluaU9iamVjdC4KCSAgQWRkIGEgbWluaW9iamVjdCBmbGFnIHRvIGVuYWJsZSBMT0NLQUJMRSBvYmplY3RzLiBMT0NLQUJMRSBvYmplY3RzIGNhbgoJICB1c2UgdGhlIGxvY2svdW5sb2NrIEFQSSB0byBjb250cm9sIHRoZSBhY2Nlc3MgdG8gdGhlIG9iamVjdC4KCSAgQWRkIGEgbWlub2JqZWN0IGZsYWcgdGhhdCBhbGxvd3MgeW91IHRvIGxvY2sgYW4gb2JqZWN0IGluIHJlYWRvbmx5IG1vZGUuCgkgIE1vZGlmeSB0aGUgX2lzX3dyaXRhYmxlKCkgbWV0aG9kIHRvIGNoZWNrIHRoZSBzaGFyZWQgY291bnRlciBmb3IgTE9DS0FCTEUKCSAgb2JqZWN0cy4gVGhpcyBhbGxvd3MgdXMgdG8gY29udHJvbCB3cml0YWJpbGl0eSBzZXBhcmF0ZWx5IGZyb20gdGhlIHJlZmNvdW50IGZvcgoJICBMT0NLQUJMRSBvYmplY3RzLgoKMjAxMi0wNy0wNCAxNjowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhZGQgbmV3IGxvY2tpbmcgZGVidWcgY2F0ZWdvcnkKCjIwMTItMDctMDQgMTI6Mjg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGlzX2V4Y2x1c2l2ZQoKMjAxMi0wNy0wNCAxMjowMzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgTE9DS19GTEFHX1JFQURXUklURSBkZWZpbmUKCjIwMTItMDctMDQgMTE6NDg6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIG1lbW9yeTogdXBkYXRlIGRvY3MKCjIwMTItMDctMDQgMTA6MTI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogc21hbGwgY2xlYW51cAoKMjAxMi0wNy0wMyAxMzo1MDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTItMDctMDMgMTM6NDc6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogRml4IHRoZSBOT19TSEFSRSBmbGFnIGluIHRoZSBjb25zdHJ1Y3RvcgoJICBUaGUgTk9fU0hBUkUgZmxhZyBkb2VzIG5vdCBpbmZsdWVuY2UgdGhlIGV4Y2x1c2l2ZW5lc3Mgb2YgdGhlIGJ1ZmZlciBpbml0aWFsbHkKCSAgYnV0IG9ubHkgaWYgYSBfc2hhcmUgb3BlcmF0aW9uIGNhbiBiZSBkb25lLiBPdGhlcndpc2UsIHdlIHdvdWxkIG5vdCBiZSBhYmxlIHRvCgkgIFdSSVRFIG1hcCBhIGJ1ZmZlciBtZW1vcnkgYmVjYXVzZSBpdCB3b3VsZCBoYXZlIGEgc2hhcmUgY291bnQgb2YgYXQgbGVhc3QgMi4KCjIwMTItMDctMDMgMTM6NDc6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogb25seSBjaGVjayB0aGUgbG9ja2luZyByZWZjb3VudAoKMjAxMi0wNy0wMyAxMzo0Njo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggcmVzaXplCgkgIENvcnJlY3RseSB1cGRhdGUgdGhlIGV4Y2x1c2l2ZSBsb2NrcwoKMjAxMi0wNy0wMyAxMzo0NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBVc2UgbG9jayBmbGFncyBmb3IgbWFwIGZsYWdzCgkgIFdlIGltcGxlbWVudCB0aGUgbG9ja2luZyBpbiBnc3RfbWVtb3J5X21hcCB3aXRoIHRoZSBsb2NrIGZsYWdzLCBtYWtlIG1hdGNoaW5nCgkgIGZsYWdzIHRoZSBzYW1lIG51bWJlciBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIG1hcCBmbGFncyBkaXJlY3RseSBhcyBsb2NrIGZsYWdzLgoKMjAxMi0wNy0wMyAxMjoxODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBsb2NrIG1lbW9yeSBFWENMVVNJVkUKCSAgbG9jayB0aGUgbWVtb3J5IHRoYXQgdGhlIGJ1ZmZlciByZWZlcmVuY2VzIGFzIEVYQ0xVU0lWRS4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKCSAgd2hlbiB3ZSBzaGFyZSB0aGUgbWVtb3J5IHdpdGggb3RoZXIgYnVmZmVycyB0aGF0IGl0IGJlY29tZXMgdW53cml0YWJsZS4KCjIwMTItMDctMDMgMTI6MTY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2xlYW51cCB0aGUgbG9ja2luZyBjb2RlCgkgIGNsZWFudXAgYW5kIGZpeCB0aGUgbG9ja2luZyBjb2RlCgoyMDEyLTA3LTAzIDA5OjQ4OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBleHBvc2UgdGhlIGludGVybmFsIGxvY2tpbmcgYXBpCgkgIEV4cG9zZSB0aGUgaW50ZXJuYWxseSB1c2VkIG1ldGhvZHMgZm9yIGxvY2tpbmcgYW5kIHVubG9ja2luZyB0aGUgb2JqZWN0LiBQYXNzCgkgIHRoZSBhY2Nlc3MgbW9kZSB0byB0aGUgdW5sb2NrIGZ1bmN0aW9uIGZvciBleHRyYSBjaGVja3MgYW5kIGJlY2F1c2Ugd2UgbmVlZCBpdAoJICBmb3IgdGhlIEVYQ0xVU0lWRSBsb2Nrcy4KCSAgTWFrZSBzb21lIG5ldyBkZWZpbmVzIHRvIHNwZWNpZnkgdGhlIGRlc2lyZWQgbG9ja2luZy4KCSAgQWRkIGEgbmV3IEVYQ0xVU0lWRSBsb2NrIG1vZGUgd2hpY2ggd2lsbCBpbmNyZW1lbnQgdGhlIHNoYXJlZCBjb3VudGVyLiBPYmplY3RzCgkgIHdpdGggYSBzaGFyZWQgY291bnRlciA+IDEgd2lsbCBub3QgYmUgbG9ja2FibGUgaW4gV1JJVEUgbW9kZS4KCjIwMTItMDYtMjkgMTY6Mzc6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogZ3N0YnVmZmVyOiBleHRlbmQgYnVmZmVyIGNvcHkgdGVzdAoJICAuLi4gdG8gY2hlY2sgZm9yIGluZGVwZW5kZW5jZSBvZiBjb3BpZWQgYnVmZmVyLgoKMjAxMi0wNy0wNCAxODozMjo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHJlbW92ZSBvdXRkYXRlZCBiaXRzIG9mIHdhcm5pbmcgbWVzc2FnZQoJICBJIHRoaW5rIHdlIGNhbiBiZSByZWFzb25hYmxlIHN1cmUgcGVvcGxlIGFyZSB1c2luZyBhbiB1cC10by1kYXRlCgkgIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgbm93LgoKMjAxMi0wNy0wNCAxODoxNjoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBBZGQgdmVyc2lvbmVkIHZhcmlhbnRzIG9mIHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkgIEltcHJvdmUgcGFyYWxsZWwgaW5zdGFsbGFiaWxpdHkgaW4gc2V0dXBzIGxpa2UgamhidWlsZCBieQoJICBwcm92aWRpbmcgdmVyc2lvbmVkIHZhcmlhbnRzIG9mIHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzOgoJICBHU1RfUkVHSVNUUllfMV8wCgkgIEdTVF9QTFVHSU5fUEFUSF8xXzAKCSAgR1NUX1BMVUdJTl9TWVNURU1fUEFUSF8xXzAKCSAgR1NUX1BMVUdJTl9TQ0FOTkVSXzFfMAoJICB3aWxsIG5vdyBiZSBjaGVja2VkIGJlZm9yZSBjaGVja2luZyB0aGUgdW52ZXJzaW9uZWQgb25lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTQwNwoKMjAxMi0wNy0wNCAxNzo1NTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIGRvY3M6IGZpeCB0eXBvIGluIEdzdFNhbXBsZSBkb2NzCgoyMDEyLTA3LTA0IDE3OjM2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHRoZXJlIGFyZSB2YWxpZCBVUkkgcHJvdG9jb2xzIHdpdGggb25seSB0d28gbGV0dGVycywgbGlrZSBmZDovLwoJICBXZSBhZGRlZCBhIG1pbmltdW0gbGVuZ3RoIG9mIHRocmVlIGxldHRlcnMgb3JpZ2luYWxseSBzbyB3ZSB3b3VsZAoJICBmYWlsIHRvIHJlY29nbmlzZSBET1MvV2luZG93cy1zdHlsZSBmaWxlbmFtZXMgYXMgdmFsaWQgVVJJcyAoYXMgd2UKCSAgc2hvdWxkKS4gVHdvIHNob3VsZCBiZSBqdXN0IGZpbmUgYXMgd2VsbC4KCjIwMTAtMTAtMTMgMTM6MzY6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBBUEkgYWRkaXRpb25zCgoyMDA5LTA5LTI5IDA5OjU0OjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSAgZGF0YXF1ZXVlOiBVc2UgR3N0UXVldWVBcnJheQoKMjAwOS0wOS0yOCAxNzozMTo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogVXNlIG5ldyBHc3RRdWV1ZUFycmF5IGZvciBsb2NhbCBzdG9yYWdlLgoJICBNYWtlcyBfY2hhaW4oKSBhbmQgX2xvb3AoKSAyNSUgZmFzdGVyCgoyMDA5LTA5LTI5IDA5OjA2OjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICBjaGVjazogTmV3IHVuaXQgdGVzdCBmb3IgR3N0UXVldWVBcnJheQoKMjAwOS0wOS0yOCAxNzozMDowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBsaWJzOiBOZXcgZ3Jvd2luZy1vbmx5IHF1ZXVlLgoJICBUaGlzIGlzIGEgcXVldWUgd2hpY2ggaGFzIHRoZSBzYW1lIEFQSSBhcyBHUXVldWUsIGV4Y2VwdCB0aGF0OgoJICAqIEl0IHVzZXMgYW4gYXJyYXksIGluc3RlYWQgb2YgYSBkb3VibGVkLWxpbmtlZC1saXN0CgkgICogVGhlIGFycmF5IGNhbiBvbmx5IGdyb3cuCgkgIFRoaXMgY29kZSBpcyBub3QtdGhyZWFkc2FmZS4gSXQgaXMgdXAgdG8gdGhlIG93bmVyIHRvIG1ha2Ugc3VyZSB0aGUKCSAgcHJvcGVyIGxvY2tpbmcgaXMgdGFrZW4gYmVmb3JlIGNhbGxpbmcgdGhpcyBBUEkuCgoyMDEyLTA3LTA0IDE2OjE2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBtYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSB1bm1hcHBlZCBzZWVrIGZsYWdzIGxpdHRlcmluZyBvdXQgc2VnbWVudCBmbGFncwoJICBNYWtlIEdzdFNlZWtGbGFnIHRvIEdzdFNlZ21lbnRGbGFnIGNvbnZlcnNpb24gZXhwbGljaXQsIGFuZAoJICBzZXQgb25seSB0aG9zZSBzZWVrIGZsYWdzIGluIHRoZSBzZWdtZW50IGZsYWdzIHdoaWNoIGFyZQoJICBtYXBwZWQuIFRoaXMgbWFrZXMgc3VyZSB3ZSBkb24ndCBoYXZlIGV4dHJhbmVvdXMgZmxhZ3MKCSAgbGl0dGVyaW5nIG91ciBzZWdtZW50IGZsYWcgZmllbGQsIHdoaWNoIGFsc28gZml4ZXMgdGhlCgkgIGRlYnVnIHByaW50aW5nL3NlcmlhbGlzYXRpb24gb2Ygc2VnbWVudCBldmVudHMgaW4gdGhlCgkgIGRlYnVnIGxvZy4KCjIwMTItMDctMDQgMTA6MjQ6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtaW5vciBwb3J0aW5nLXRvLTAuMTEudHh0IHVwZGF0ZQoKMjAxMi0wNy0wNCAxMDoyMzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogbWFrZSBjaGVja3MgZm9yIGZyb20vdG9fZ19kYXRlX3RpbWUoKSBhY3R1YWxseSB3b3JrIHByb3Blcmx5CgoyMDEyLTA2LTI5IDIxOjUyOjQ3IC0wNDAwICBKb3NodWEgTS4gRG9lIDxqb3NoQGpvc2hkb2UuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBhZGQgY29udmVyc2lvbiB0by9mcm9tIEdEYXRlVGltZQoJICBFeHBvc2VzIGV4aXN0aW5nIGNvbnN0cnVjdG9yLgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfdG9fZ19kYXRlX3RpbWUoKQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fZ19kYXRlX3RpbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MDgwCgoyMDEyLTA3LTA0IDA4OjUyOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSB1bnVzZWQgZ3N0X3ByaW50XyogZnVuY3Rpb25zCgoyMDEyLTA3LTAzIDIyOjI0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiBubyBuZWVkIHRvIGRlYWN0aXZhdGUgcGFkcyB0aGF0IGFyZSBhbHJlYWR5IGluIFBBRF9NT0RFX05PTkUKCjIwMTItMDctMDMgMjI6MjA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogbWFrZSBwYWQgYWN0aXZhdGlvbiBkZWJ1ZyBsb2dzIGEgYml0IG1vcmUgcmVhZGFibGUKCjIwMTItMDctMDMgMTk6MTU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZWxlbWVudCByZS11c2UgdXNpbmcgZmFrZXNyYwoKMjAxMi0wNy0wMyAxOTowNDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2xlYXIgRU9TIGZsYWcgd2hlbiBkZWFjdGl2YXRpbmcgcGFkcyBmaXhpbmcgZWxlbWVudCByZS11c2UKCjIwMTItMDctMDMgMTc6MjU6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUG9zdCBUT0MgbWVzc2FnZXMgb24gdGhlIGJ1cyBpbiB0aGUgc2lua3MsIHNpbWlsYXIgdG8gdGFncwoKMjAxMi0wNy0wMyAxMjozODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggdGhlIF9nZXRfbWFwcGVkIGZ1bmN0aW9uCgkgIEZpeCB0aGUgaW50ZXJuYWwgX2dldF9tYXBwZWQgZnVuY3Rpb24uIGdzdF9tZW1vcnlfbWFrZV9tYXBwZWQoKSB0YWtlcyBvd25lcnNoaXAKCSAgb2YgdGhlIG1lbW9yeSBzbyB3ZSBuZWVkIHRvIGtlZXAgYW4gYWRkaXRpb25hbCByZWYgdW50aWwgd2UgYXJlIGRvbmUuCgoyMDEyLTA3LTAzIDEyOjIzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIGRlYnVnIGxvZwoKMjAxMi0wNy0wMyAxMDowMjo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFRoZSBHQVAgZXZlbnQgaXMgKHBhcnRpYWxseSkgaW1wbGVtZW50ZWQgbm93LCBTVFJFQU1fQ09ORklHIGlzbid0CgoyMDEyLTA2LTI4IDE2OjQyOjA4ICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmdzOiBpbmNsdWRlIGdzdC9tYXRoLWNvbXBhdC5oIGZvciBpc25hbigpCgkgIER1ZSB0byB0aGUgdXNhZ2Ugb2YgaXNuYW4oKSwgd2hlcmUgYW4gaW1wbGVtZW50YXRpb24gaXMgYWRkZWQgaW50bwoJICBnc3QvbWF0aC1jb21wYXQuaC4gRml4ZXMgYnVpbGQgb24gVmlzdWFsIEMrKy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExMgoKMjAxMi0wNi0yOSAxNjo1MjozMSArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQuaDogYWRkIGltcGxlbWVudGF0aW9uIGZvciBpc25hbigpIGZvciBWaXN1YWwgQysrCgkgIFZpc3VhbCBDKysgZG9lcyBub3QgaGF2ZSBpc25hbigpLCBzbyBhZGQgZmFsbGJhY2sgdG8KCSAgbWF0aC1jb21wYXQuaCAoY291bGQgdXNlIF9pc25hbigpIGluIHRoaXMgY2FzZSwgYnV0CgkgIHRoaXMgbWFrZXMgaXQgd29yayBmb3IgYWxsIGNhc2VzIHdoZXJlIGlzbmFuIGlzIG1pc3NpbmcpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTEyCgoyMDEyLTA2LTI5IDEwOjU2OjM0ICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luay5jOiBmaXggR19PU19XSU4zMiAjaWZkZWYKCSAgUG9zdHBvbmUgdGhlICNpZmRlZiB0byBhIHBvaW50IGFmdGVyIGdsaWIuaCAodmlhIGdzdGZkc2luay5oKSBpcyBpbmNsdWRlZAoJICBzbyB0aGF0IHRoZSBuZWVkZWQgZGVmaW5lcyBhbmQgaGVhZGVyIGluY2x1ZGVzIGNhbiBiZSBkb25lIGNvcnJlY3RseSwKCSAgZXNwZWNpYWxseSBvbiBWaXN1YWwgQysrIGJ1aWxkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExMgoKMjAxMi0wNS0yNyAyMzowOTo0MyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IGZpeCBidWlsZCBvZiBkYXRldGltZSB1bml0IHRlc3QgaW4gV2luZG93cwoJICBBbHNvIGluY2x1ZGUgY29uZmlnLmggZm9yIGFsbCB0aGUgI2lmZGVmIEhBVkVfWFlaLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2OTM1CgoyMDEyLTA2LTI5IDExOjE5OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGRvbid0IHVzZSBnX3N0cmR1cF92YWx1ZV9jb250ZW50cygpCgkgIGdfc3RyZHVwX3ZhbHVlX2NvbnRlbnRzKCkgZG9lcyBzb21lIGV4dHJhIGVzY2FwaW5nLCBwcmV2ZW50aW5nIHVzIGZyb20gdXNpbmcgdGhlCgkgIG91dHB1dCBvbiB0aGUgY29uc29sZSB0byBiZSB1c2VkIGRpcmVjdGx5LgoKMjAxMi0wNi0yOCAxNDo0MTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZXhwYW5kIGEgYml0IG1vcmUgb24gR1NUX0RFQlVHIGRvY3MKCjIwMTItMDYtMjggMTE6MDI6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIF9hcHBlbmRfcmVnaW9uIGZ1bmN0aW9uCgkgIE1ha2UgYSBnc3RfYnVmZmVyX2FwcGVuZF9yZWdpb24oKSBmdW5jdGlvbiB0aGF0IGFsbG93cyB5b3UgdG8gYXBwZW5kIGEgbWVtb3J5CgkgIHJlZ2lvbiBmcm9tIG9uZSBidWZmZXIgdG8gYW5vdGhlci4gVGhpcyBpcyBhIG1vcmUgZ2VuZXJhbCB2ZXJzaW9uIG9mCgkgIGdzdF9idWZmZXJfYXBwZW5kKCkuCgoyMDEyLTA2LTI4IDA5OjM2OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBEVFMgYW5kIFBUUwoJICBVc2UgRFRTIGFuZCBQVFMgb2YgdGhlIHN1YmNsYXNzLgoJICBDYWxjdWxhdGUgUFRTIGZyb20gRFRTIG9uIGtleWZyYW1lcy4KCjIwMTItMDYtMjcgMjM6MDE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IHRlc3QgZGF0ZXRpbWUgZGVzZXJpYWxpc2F0aW9uIGEgYml0IG1vcmUKCjIwMTItMDYtMjcgMjM6MDA6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGlnbm9yZSAwIGRheXMgb3IgbW9udGhzIGluIGRhdGVzCgkgIEhhbmRsZSAwIG1vbnRocyBvciBkYXlzIGNvcnJlY3RseSBpbiBkYXRlIHN0cmluZ3MsIHNvIHRoYXQKCSAgMjAxMi0wNi0wMCBpcyBwYXJzZWQgdGhlIHNhbWUgYXMgMjAxMi0wNiwgZm9yIGV4YW1wbGUuCgoyMDEyLTAxLTAxIDE2OjM4OjA4ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGJ1aWxkOiBNYWtlIHN1cmUgQUNfSU5DTFVERVNfREVGQVVMVCBpcyB1c2VkCgkgIFdpdGhvdXQgdXNpbmcgQUNfSU5DTFVERVNfREVGQVVMVCBleHBsaWNpdGx5LAoJICBjZXJ0YWluIHBsYXRmb3JtcyB3aWxsIGNvbXBsYWluIHRoYXQgdGhlIGhlYWRlcgoJICB3YXMgZm91bmQsIGJ1dCBub3QgdXNhYmxlIGJ5IHRoZSBjb21waWxlci4KCSAgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSBvbiBTb2xhcmlzIHdoZXJlIGNlcnRhaW4KCSAgaGVhZGVycyBhcmUgbmVlZGVkIHRvIHB1bGwgaW4gcHJvcGVyIGRlZmluZXMuCgkgIEFsc28gdXBncmFkZSB0byBuZXdlciBhdXRvY29uZiBzeW50YXggYW5kIHVzZSBwcm9wZXIgcXVvdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5MwoKMjAxMi0wNi0yNyAyMDo1Mjo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGZpeCBidXMgbGVhayBpbiBHc3RCaW4gdGVzdF9zdGF0ZV9jaGFuZ2Vfc2tpcCB0ZXN0CgkgIFN0aWxsIG5vdCB2YWxncmluZCBjbGVhbiB0aG91Z2guCgoyMDEyLTA2LTI3IDE5OjU5OjI5ICswMTAwICBDaHJpc3RvcGhlIEZlcmdlYXUgPHRldWZAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiBlc2NhcGUgXCB3aXRoIGEgXCBhcyB3ZWxsLCBzbyB0aGF0IHdlIGRvbid0IGxvc2UgdGhlIFwgd2hlbiB1bmVzY2FwaW5nCgkgIElmIHdlIGhhdmUgYSBmaWxlIGNhbGxlZCBGb29cQmFyLm9nZywgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MKCSAgdGhhdCBmaWxlbmFtZSBwcm9wZXJseSB0byBmaWxlc3JjIGluIGdzdF9wYXJzZV9sYXVuY2goKSwgc2luY2UKCSAgZ3N0X3BhcnNlX3VuZXNjYXBlKCkgd2lsbCBqdXN0IHVuZXNjYXBlIFx4IHRvIHguCgkgIE5vdCBjaGVycnktcGlja2luZyB0aGlzIGludG8gMC4xMCBzaW5jZSB0aGVyZSBhcmUgYXBwYXJlbnRseQoJICBhcHBzIHRoYXQgd29yayBhcm91bmQgdGhpcyBwcm9ibGVtIGFuZCB3aGljaCB3b3VsZCBicmVhayBpZgoJICB3ZSBmaXhlZCBpdCB0aGVyZSB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzMzMTkKCjIwMTItMDYtMjcgMTY6Mzc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBhbm5vdGF0ZSBzb21lIG9mIHRoZSB0eXBlIGRlZmluZXMgZm9yIGctaQoJICBUeXBlIGlzIG5vdCBwaWNrZWQgdXAgeWV0IHRob3VnaCwgYW5kIHdlIHN0aWxsIG5lZWQKCSAgdG8gYW5ub3RhdGUgdmFsdWVzIGZvciB0aGUgJ3NpbXBsZScgZGVmaW5lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzkyNQoKMjAxMi0wNi0yNyAxNDo0ODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGFubm90YXRlIEdTVF9DTE9DS19USU1FX05PTkUgd2l0aCBpdHMgdmFsdWUgZm9yIGctaQoJICBUaGUgdmFsdWUgbm93IGdldHMgcGlja2VkIHVwLCBidXQgaXQgc3RpbGwgdGhpbmtzIHRoZSB0eXBlCgkgIGlzIGEgJ2dpbnQnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4OTI4CgoyMDEyLTA2LTI3IDEzOjE5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogYWRkIHNvbWUgZGF0ZXRpbWUgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAzMQoKMjAxMi0wNi0yNyAxMzoxNjowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkYXRldGltZTogZml4IGNvbXBhcmUgZnVuY3Rpb24KCSAgVGFrZSBpbnRvIGFjY291bnQgdGhhdCBub3QgYWxsIGZpZWxkcyBtaWdodCBiZSB2YWxpZCAodGhvdWdoIHRoZXkKCSAgYXJlIHZhbGlkIGluIHRoZSBHRGF0ZVRpbWUgc3RydWN0dXJlKS4gQnV0IHdlIHNob3VsZCBqdXN0IHJldHVybgoJICB1bm9yZGVyZWQgaWYgdGhlIHNldCBmaWVsZHMgZG9uJ3QgbWF0Y2guIEFsc28sIGRvbid0IGNoZWNrCgkgIG1pY3Jvc2Vjb25kcyB3aGVuIGNvbXBhcmluZyBkYXRldGltZXMsIHNpbmNlIHdlIGRvbid0IHNlcmlhbGlzZQoJICB0aG9zZSBieSBkZWZhdWx0IGlmIHRoZXkncmUgYXZhaWxhYmxlLiBUaGlzIGVuc3VyZXMgZGF0ZSB0aW1lcyBhcmUKCSAgc3RpbGwgcmVnYXJkZWQgYXMgZXF1YWwgYWZ0ZXIgc2VyaWFsaXNpbmcrZGVzZXJpYWxpc2luZy4KCjIwMTItMDYtMTggMDg6MDY6NDkgKzAyMDAgIE9sZWtzaWogUmVtcGVsIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkYXRldGltZTogYWRkIHNlcmlhbGlzYXRpb24gdG8gYW5kIGRlc2VyaWFsaXNhdGlvbiBmcm9tIElTTyA4NjAxIHN0cmluZ3MKCSAgU29tZSB0YWcgcGFyc2VycyBhbmQgd3JpdGVycyB1c2Ugc2FtZSBkYXRldGltZSBmb3JtYXQgYmFzZWQgb24gSVNPIDg2MDEuCgkgIFdlIGNhbiByZWR1Y2Ugc29tZSBjb2RlIGJ5IGNyZWF0aW5nIHNvbWUgZ2VuZXJhbCBmdW5jdGlvbnMgZm9yIGl0LgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfdG9faXNvODYwMV9zdHJpbmcoKQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21faXNvODYwMV9zdHJpbmcoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MDMxCgoyMDEyLTA2LTA3IDExOjMwOjQ4ICswMTAwICBMaW9uZWwgTGFuZHdlcmxpbiA8bGxhbmR3ZXJsaW5AZ21haWwuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogYWRkIC0tZGlzYWJsZS10b29scyBhbmQgLS1kaXNhYmxlLWJlbmNobWFya3Mgb3B0aW9ucwoJICBBZGQgb3B0aW9uIHRvIGF2b2lkIGJ1aWxkIGJpbmFyaWVzLiBXaGVuIGJ1aWxkaW5nIGZvciBwbGF0Zm9ybXMgbGlrZQoJICBhbmRyb2lkLCB5b3UgbWlnaHQgd2FudCB0byBub3QgbGluayBhbnkgImZpbmFsIiBiaW5hcnksIG1vc3RseSBiZWNhdXNlCgkgIGl0IHJlcXVpcmVzIHNwZWNpYWwgbGluayBmbGFncyBvciBvdGhlciBwYXJ0cyBvZiBjb2RlIHRoYXQgYXJlbid0CgkgIGluIHRoZSBDIGxpYnJhcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc2MjEKCjIwMTItMDYtMjYgMjA6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBwdXQgdG9jIGRpcmVjdGx5IGludG8gZXZlbnQvbWVzc2FnZS9xdWVyeSBzdHJ1Y3R1cmUKCSAgTm93IHRoYXQgVE9DcyBhcmUgcmVmY291bnRlZCBhbmQgaGF2ZSBhIEdUeXBlLCB3ZSBjYW4ganVzdAoJICBzdHVmZiBhIHJlZiBvZiB0aGUgVE9DIGRpcmVjdGx5IGludG8gdGhlIHZhcmlvdXMgdG9jCgkgIGV2ZW50L21lc3NhZ2UvcXVlcnkgc3RydWN0dXJlcyBhbmQgZ2V0IHJpZCBvZiBsb3RzIG9mCgkgIGNyYWNrdGFzdGljIEdzdFN0cnVjdHVyZSA8LT4gR3N0VG9jIHNlcmlhbGlzYXRpb24gYW5kCgkgIGRlc2VyaWFsaXNhdGlvbiBjb2RlLiBXZSBsb3NlIHNvbWUgVE9DIHNhbml0eSBjaGVja2luZwoJICBpbiB0aGUgcHJvY2VzcywgYnV0IHRoYXQgc2hvdWxkIHJlYWxseSBiZSBkb25lIHdoZW4KCSAgaXQncyBiZWluZyBjcmVhdGVkIGFueXdheS4KCjIwMTItMDYtMjYgMTg6MjI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogc2tpcCBnc3RfYnVzX2NyZWF0ZV93YXRjaCBhcyBHU291cmNlIGlzIG5vdCBpbnRyb3NwZWN0YWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5MzBlMzZhODliYzVjMmEwZjJlNGFiN2E3M2JmYTYzMGMxZTAzMzZhLgoJICBUaGlzIHNob3VsZG4ndCBoYXZlIGJlZW4gcHVzaGVkLCBzaW5jZSBHU291cmNlIGlzIG5vdyBoYW5kbGVkCgkgIChodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzI1KQoKMjAxMS0wOC0yOSAxMzo1NzowMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogc2tpcCBnc3RfYnVzX2NyZWF0ZV93YXRjaCBhcyBHU291cmNlIGlzIG5vdCBpbnRyb3NwZWN0YWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDEyLTA2LTI2IDE3OjM1OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHNvbWUgbW9yZSBhZGRpdGlvbnMgdG8gdGhlIHBvcnRpbmctdG8tMC4xMSBndWlkZQoKMjAxMi0wNi0yNiAxNzoyNzozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJICB0b29sczogbWlub3IgY2xlYW4tdXAKCSAgR2V0IHJpZCBvZiBzdXBlcmZsdW91cyBhcmd1bWVudC4KCjIwMTItMDYtMjYgMTc6MDQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IHJlbW92ZSB1c2VsZXNzIGdfc2V0X3ByZ25hbWUoKSB3cmFwcGVyCgoyMDEyLTA2LTI2IDE2OjU1OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHBvaW50IHBlb3BsZSB0byByaWdodCBiaW5hcnkgd2hlbiBhIGNyYXNoIGhhcHBlbnMKCSAgImdzdC1sYXVuY2giIGlzIHRoZSAwLjEwIHdyYXBwZXIgc2NyaXB0LCB1c2luZyB0aGF0IHdpdGgKCSAgZ2RiIGlzIG5vdCBnb2luZyB0byB5aWVsZCBncmVhdCByZXN1bHRzLgoKMjAxMi0wNi0yNiAxNjo0MjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIG5vdy1yZWxlYXNlZCBzdGFibGUgdmVyc2lvbgoKMjAxMi0wNi0yNiAxNjo0MjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlIGZvciBvbGQgR0xpYiB2ZXJzaW9ucwoKMjAxMi0wNi0yNSAyMzoxNzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBhZGQgbW9yZSBlbnRyeSB0eXBlcwoJICBNYWtlIGVudHJ5IHR5cGVzIGxlc3MgYWJzdHJhY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg3NDIKCjIwMTItMDYtMTcgMTI6NDg6MDQgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGEgY291cGxlIG9mIG5vdGVzIGZvciB0aGUgMC4xMSBwb3J0aW5nIGd1aWRlCgoyMDEyLTA2LTI2IDA5OjUxOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGFkZCBzdGVhbF9xZGF0YQoJICBSZXdvcmsgdGhlIHFkYXRhIGNvZGUgYSBsaXR0bGUKCjIwMTItMDYtMjUgMTk6NTI6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jc2V0dGVyOiBjbGVhbiB1cCBhbmQgdXBkYXRlIEFQSSBmb3IgcmVmY291bnRlZCBUT0NzCgkgIExldCdzIGtlZXAgaXQgc2ltcGxlIGZvciBub3c6CgkgIGdzdF90b2Nfc2V0dGVyX3Jlc2V0X3RvYygpIC0+IGdzdF90b2Nfc2V0dGVyX3Jlc2V0KCkKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvY19jb3B5KCkgLT4gcmVtb3ZlZAoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jKCkgLT4gcmV0dXJucyBhIHJlZiBub3cKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvY19lbnRyeV9jb3B5KCkgLT4gcmVtb3ZlZCwKCSAgdXNlIFRPQyBmdW5jdGlvbnMgaW5zdGVhZAoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jX2VudHJ5KCkgLT4gcmVtb3ZlZCwKCSAgdXNlIFRPQyBmdW5jdGlvbnMgaW5zdGVhZAoJICBnc3RfdG9jX3NldHRlcl9hZGRfdG9jX2VudHJ5KCkgLT4gcmVtb3ZlZCwKCSAgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCAocmVmY291bnQtZGVwZW5kZW50KQoJICB3cml0YWJpbGl0eSBvZiBUT0M7IHVzZSBUT0MgZnVuY3Rpb25zIGluc3RlYWQKCjIwMTItMDYtMjUgMDk6MzI6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogaW1wcm92ZSBkb2NzCgkgIE1lbnRpb24gdGhhdCBjdXN0b20gYWxsb2NhdG9yIGZ1bmN0aW9ucyBjYW4gcGFzcyB3aGF0ZXZlciB0aGV5IHdhbnQgdG8gdGhlCgkgIHVzZXJfZGF0YS4KCjIwMTItMDQtMDYgMTg6MDA6MzMgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogdXNlIEdfREVGSU5FX0lOVEVSRkFDRV8qIG1hY3JvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM2NDEKCjIwMTItMDQtMDYgMTc6NTk6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgdG9jc2V0dGVyOiB1c2UgR19ERUZJTkVfSU5URVJGQUNFXyogbWFjcm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzY0MQoKMjAxMi0wNi0yNSAwMDoxMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzIGZvciBUT0MgQVBJIGNoYW5nZXMgdG9vCgoyMDEyLTA2LTI0IDIwOjEwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b2NzZXR0ZXIsIGdzdC1sYXVuY2gsIHRlc3RzOiB1cGRhdGUgZm9yIEdzdFRvYyBBUEkgY2hhbmdlcwoKMjAxMi0wNi0yNCAyMDowODozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBtYWtlIEdzdFRvYyBhbmQgR3N0VG9jRW50cnkgbWluaSBvYmplY3RzCgkgIEJlY2F1c2Ugd2UgY2FuLCBhbmQgaW4gb3JkZXIgdG8gbWFrZSB0aGVtIHJlZmNvdW50ZWQuCgoyMDEyLTA2LTIzIDIxOjQyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IGNvbmZ1c2luZyBsb2cgbWVzc2FnZQoKMjAxMi0wNi0yMyAyMTozNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGludDY0IC0gaW50NjQgcmFuZ2UgaW50ZXJzZWN0aW9uIG9uIGJpZyBlbmRpYW4gc3lzdGVtcwoJICBXb3JrcyBiZXR0ZXIgaWYgd2UgdXNlIHRoZSB2X2ludDY0IGZpZWxkIG9mIHRoZSBHVmFsdWUgaW5zdGVhZCBvZiB2X2ludC4KCjIwMTItMDYtMjMgMTk6NTY6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1pbmlvYmplY3RzOiBwYXNzIGNvcHksIGRpc3Bvc2UgYW5kIGZyZWUgZnVuY3Rpb24gdG8gZ3N0X21pbmlfb2JqZWN0X2luaXQoKQoJICBTbyBtaW5pIG9iamVjdHMgZG9uJ3QgaGF2ZSB0byBwb2tlIGludG8gdGhlIEdzdE1pbmlPYmplY3QgcGFydAoJICBvZiB0aGUgc3RydWN0dXJlLiBTYXZlcyBsaW5lcyBvZiBjb2RlLCBhbmQgc2VlbXMgc2xpZ2h0bHkgY2xlYW5lci4KCSAgV2UgZG9uJ3QgaGF2ZSBwcm9wZXIgT08gaGllcmFyY2hpZXMgb3IgbWV0aG9kcyBoZXJlIGFmdGVyIGFsbC4KCjIwMTItMDYtMjMgMTc6MDU6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZW1vdmUgc29tZSBvdXRkYXRlZCBGSVhNRXMgYW5kIGNvbW1lbnRzCgoyMDEyLTA2LTIzIDE3OjA0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBzYW1wbGU6IHNvbWUgbW9yZSBnLWkgYW5ub3RhdGlvbnMKCjIwMTItMDYtMjMgMTY6NTk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBzYW1wbGU6IGFkZCBjb21wYXJlIGZ1bmN0aW9uIGZvciBHc3RTYW1wbGUKCSAgU2hvdWxkIG1ha2UgZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkgd29yayBwcm9wZXJseSB3aXRoIGltYWdlIHRhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI2MzcKCjIwMTItMDYtMjMgMTY6MzA6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBidWZmZXIgY29tcGFyZSBmdW5jdGlvbgoKMjAxMi0wNi0yMyAxNDo0MTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NDY3CgoyMDEyLTA2LTIzIDE0OjQxOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IHVwZGF0ZSBmb3IgZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSgpIGNoYW5nZQoKMjAxMi0wNi0yMyAxNDo0MDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGFkZCBlcnJvciBhcmd1bWVudCB0byBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkKCSAgU28gY2FsbGVycyBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZXJlIG5vdCBiZWluZyBhCgkgIGhhbmRsZXIgZm9yIHRoZSBwcm90b2NvbCwgYW5kIHRoZW0gbm90IGFjY2VwdGluZyB0aGUgVVJJCgkgIGZvciBzb21lIHJlYXNvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTQ2NwoKMjAxMi0wNi0yMyAxMjozNzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYW5ub3RhdGUgR3N0TWFwSW5mbyBkYXRhIGFzIGFycmF5IGZvciBnLWkKCjIwMTItMDYtMjAgMTI6NTM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcmVtb3ZlIHBvaW50bGVzcyBnZXRfc3RhdGUoKSBpbiBnc3QtbGF1bmNoCgkgIFN0YXRlIGNoYW5nZXMgdG8gTlVMTCBzdGF0ZSBhcmUgYWx3YXlzIHN5bmMuCgoyMDEyLTA2LTIxIDAxOjI4OjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYXZvaWQgbm90aWZ5LXRhZ3MgaG9sZGluZyBsb2NrCgkgIHVubG9jayBiZWZvcmUgaXNzdWluZyB0aGlzIG5vdGlmaWNhdGlvbiB0byBwcmV2ZW50CgkgIGRlYWRsb2NrcyB3aGVuIG90aGVyIGVsZW1lbnRzIHJlYWN0cyB0byBuZXcgdGFncy4KCSAgRml4ZXMgIzY3ODIyMAoKMjAxMi0wNi0xOCAxNjo1NDoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1wLWJhZCBnc3QtbGlicyB0byB0aGUgcGF0aAoJICBNYWtlcyB2aWRlb3BhcnNlcnMgYW5kIGNhbWVyYWJpbnMgZnJvbSBiYWQgdXNhYmxlIGZyb20gYW4gdW5pbnN0YWxsZWQKCSAgZW52aXJvbm1lbnQgYXQgb3N4CgoyMDEyLTA2LTIwIDEzOjI4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIGRlc3Ryb3kgbm90aWZ5IHRvIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKCkKCjIwMTItMDYtMjAgMTM6Mjc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBpbnRyb3NwZWN0aW9uIGFubm90YXRpb24KCjIwMTItMDYtMjAgMTI6Mjk6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBidXM6IGFkZCBHRGVzdHJveU5vdGlmeSB0byBzZXRfc3luY19oYW5kbGVyKCkKCjIwMTItMDYtMjAgMTI6MDY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTA2LTIwIDExOjU5OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiBhZGQgc2VwYXJhdGUgbWV0aG9kcyB0byBhZGQgZW50ZXIvbGVhdmUgY2FsbGJhY2sKCSAgUmVtb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgY2FsbGJhY2tzIGFuZCByZXBsYWNlIHdpdGggc2VwYXJhdGUgbWV0aG9kcyB0byByZWdpc3RlcgoJICBlYWNoIGNhbGxiYWNrLiBUaGlzIGlzIG11Y2ggbW9yZSBiaW5kaW5nIGZyaWVuZGx5LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODk4CgoyMDEyLTA2LTIwIDEwOjMxOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGFkZCBHRGVzdHJveU5vdGlmeSB0byBfbmV3CgkgIEFkZCBhIEdEZXN0cm95Tm90aWZ5IHRvIHRoZSB1c2VyX2RhdGEgd2UgcGFzcyB0byBnc3RfdGFza19uZXcoKQoJICBDaGFuZ2UgZ3N0X3BhZF9zdGFydF90YXNrKCkgdG8gYWxzbyB0YWtlIHRoZSBub3RpZnkKCjIwMTItMDYtMjAgMDk6NTg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiByZW1vdmUgX2Z1bGwgdmVyc2lvbgoJICBSZW5hbWUgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCgpIHRvIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkKCSAgYW5kIHJlbW92ZSB0aGUgb2xkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkgdmVyc2lvbi4KCjIwMTItMDYtMjAgMDk6MjI6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICBuZXR0aW1lcGFja2V0OiBtYWtlIGJveGVkCgoyMDEyLTA2LTE5IDE5OjU1OjMwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldDogZml4IHNvbWUgYXJndW1lbnQgbmFtZXMgaW4gZG9jdW1lbnRhdGlvbgoKMjAxMi0wNi0xOSAxOTo1NTowMiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IGFzc29ydGVkIG1pbm9yIGludHJvc3BlY3Rpb24gZml4ZXMKCjIwMTItMDYtMTkgMTk6NTM6NTQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGFkZCBzb21lIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiwgaW5jbHVkaW5nIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE4OjQxOjA0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYmFzZTogYWRkIHNvbWUgbWlzc2luZyBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE3OjM3OjU5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrIHBvb2w6IHNldCBzY29wZSBvZiBnc3RfdGFza19wb29sX3B1c2ggY2FsbGJhY2sgdG8gYXN5bmMKCjIwMTItMDYtMTkgMTc6MzM6NDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbWlzc2luZyByZXR1cm4gdmFsdWUgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTY6MDk6MTAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIGludHJvc3BlY3Rpb246IHJlbmFtZSBzb21lICJkYXRhIiBhcmd1bWVudHMgdG8gInVzZXJfZGF0YSIKCSAgR09iamVjdCBJbnRyb3NwZWN0aW9uIHdpbGwgYXV0b21hdGljYWxseSB0cmVhdCAidXNlcl9kYXRhIiBhcmd1bWVudHMKCSAgYXMgY2xvc3VyZSBkYXRhLgoKMjAxMi0wNi0xOSAxNjowODo0NiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogYWRkIHNvbWUgbWlzc2luZyBlbGVtZW50LXR5cGUgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTY6MDY6NDkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVyIHBvb2w6IHB1dCBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcyB0eXBlZGVmIGJlZm9yZSBzdHJ1Y3QKCSAgV29ya3MgYXJvdW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01ODE1MjUKCjIwMTItMDYtMTkgMTY6MTQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwcmVyb2xsIGFuZCBzeW5jIG9uIGdhcCBldmVudHMKCjIwMTItMDYtMTkgMTY6MDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW9yZ2FuaXplIHRoZSBjb2RlIGEgbGl0dGxlCgkgIE1vdmUgdGhlIGNvZGUgdG8gZ2V0IHRoZSBzeW5jIHRpbWVzIHRvZ2V0aGVyLgoKMjAxMi0wNi0xOSAxNDozMDozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogRml4IGRvY3MgdHlwbwoKMjAxMi0wNi0xOSAxNDowNToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogYXNzZXJ0IGFib3V0IHRpbWVzdGFtcCBvdmVyZmxvd3MKCSAgQXNzZXJ0IHdoZW4gY29udmVydGluZyB0byB0aW1ldmFsIGFuZCB0aW1lc3BlYyBhYm91dCBvdmVyZmxvd3MuIFRoaXMgY2FuIGhhcHBlbgoJICBvbiBwbGF0Zm9ybXMgd2l0aCAzMmJpdHMgbG9uZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODE4MQoKMjAxMi0wNi0xOSAxMDoxMzoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiByZW1vdmUgZ3N0X3BhZF9zZXRfY2FwcwoKMjAxMi0wNi0xOSAxMDozMjoxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogT25seSBwcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBmb3IgdGhlIGFjdGl2ZSBwYWQgYW5kIHNlbmQgcmVjb25maWd1cmUgZXZlbnRzIHRvIHRoZSBvbGQvbmV3IHBhZCB3aGVuIHN3aXRjaGluZyBwYWRzCgoyMDEyLTA2LTE4IDE2OjE0OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3ZlIGdzdF9wYWRfc2V0X2NhcHMoKSB0byBjb21wYXQKCSAgV2Ugd2FudCBjb2RlIHRvIGV4cGxpY2l0bHkgc2VuZCBhIGNhcHMgZXZlbnQgaW5zdGVhZC4KCjIwMTItMDYtMTggMTY6MTM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBzb21lIGRvY3MKCjIwMTItMDYtMTggMTU6NTI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBzbWFsbCBkb2MgZml4CgoyMDEyLTA2LTE4IDE1OjI4OjIwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgQ2FzdCB0byB0aGUgcmlnaHQgdmFsdWUsIGl0IG1pZ2h0IGluZGVlZCBvdmVyZmxvdyBidXQgd2Ugd2FudCB0aGUgY29tcGlsZXIgdG8KCSAgaWdub3JlIHRoYXQuCgoyMDEyLTA2LTE4IDE1OjIyOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogaGlkZSBxZGF0YSBhcnJheSBsYXlvdXQKCjIwMTItMDYtMTggMTU6MjE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiBjbGFyaWZ5IHFkYXRhIHdydCB0byBtZXRhZGF0YQoKMjAxMi0wNi0xOCAxNToyMToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTItMDYtMTUgMTY6NTY6NDYgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGludHJvc3BlY3Rpb246IGFzc29ydGVkIGludHJvc3BlY3Rpb24gYW5kIGRvY3VtZW50YXRpb24gZml4ZXMgaW4gYmFzZQoKMjAxMi0wNi0xNSAxODozNTowNSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIG1pc3NpbmcgZWxlbWVudC10eXBlIGFubm90YXRpb25zCgoyMDEyLTA2LTE1IDE2OjE0OjQ5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgYXRvbWljIHF1ZXVlOiByZWdpc3RlciBhcyBib3hlZCB0eXBlCgoyMDEyLTA2LTE1IDE2OjQzOjMwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGludHJvc3BlY3Rpb246IGFzc29ydGVkIGludHJvc3BlY3Rpb24gYW5kIGRvY3VtZW50YXRpb24gZml4ZXMKCSAgVGhlc2UgY2hhbmdlcyBhcmUgdG8gY2xlYW4gdXAgc3ludGF4IGlzc3VlcyBzdWNoIGFzIG1pc3NpbmcgY29sb25zLAoJICBtaXNzaW5nIHNwYWNlcywgZXRjLiwgYW5kIG1pbm9yIGlzc3VlcyBzdWNoIGFzIGFyZ3VtZW50IG5hbWVzIGluCgkgIGhlYWRlcnMgbm90IG1hdGNoaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgZG9jdW1lbnRhdGlvbi4KCjIwMTItMDYtMTUgMTQ6NTA6NDggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIHRvYyBzZXR0ZXI6IGNoYW5nZSBHc3RUb2NTZXR0ZXJJRmFjZSB0byBHc3RUb2NTZXR0ZXJJbnRlcmZhY2UKCSAgV2l0aG91dCB0aGlzIEdPYmplY3QgSW50cm9zcGVjdGlvbiBkb2VzIG5vdCByZWNvZ25pemUgdGhlIGNvbm5lY3Rpb24KCSAgdG8gR3N0VG9jU2V0dGVyLgoKMjAxMi0wNi0xOCAxMjoxNTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVwZGF0ZSBkb2NzIGEgbGl0dGxlCgoyMDEyLTA2LTE4IDExOjM2OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IHdhaXRfZW9zKCkgLT4gd2FpdCgpCgkgIFJlbmFtZSBnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKCkgdG8gZ3N0X2Jhc2Vfc2lua193YWl0KCkgdG8gYXZvaWQgY29uZnVzaW9uIGFuZAoJICBpbnRyb3NwZWN0aW9uIHByb2JsZW1zIHdpdGggdGhlIDo6d2FpdF9lb3Mgdm1ldGhvZC4gQWxzbyB0aGlzIG1ldGhvZCBjYW4gYmUgdXNlZAoJICB0byB3YWl0IGZvciBvdGhlciB0aGluZ3MgdGhhbiBFT1MuIFVwZGF0ZSB0aGUgZG9jcyBhIGxpdHRsZS4KCjIwMTItMDYtMTggMTA6MTM6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOmNoZWNrIGNhcHMgYXJndW1lbnQKCSAgQ2FwcyBzaG91bGQgYmUgTlVMTCBvciBmaXhlZCB3aGVuIGNvbmZpZ3VyZWQgaW4gYSBidWZmZXJwb29sCgoyMDEyLTA2LTE1IDE3OjAxOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTlVMTCBpcyBub3QgYSB2YWxpZCBjYXBzIGFueW1vcmUKCjIwMTItMDYtMTUgMTU6NDg6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIGRvY3M6IHJldmlldyB0aGUgYnVmZmVyaW5nIGRvY3MKCjIwMTItMDYtMTUgMTU6MzY6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBwZXJjZW50IHNjYWxpbmcKCSAgVXNlIF9zY2FsZSBmdW5jdGlvbnMgdG8gc2NhbGUgdGhlIHBlcmNlbnQgdmFsdWVzLgoJICBDb3JyZWN0bHkgc2NhbGUgdGhlIHBlcmNlbnQgdmFsdWVzIGluIHRoZSBidWZmZXJpbmcgcmFuZ2VzLgoKMjAxMi0wNi0xNSAxNDo1NDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBmbHVzaCB3aGVuIHN0YXJ0aW5nCgkgIFdoZW4gd2UgYXJlIGRvaW5nIHRoZSBpbml0aWFsIHNlZWsgaW4gc3RhcnR1cCwgYXZvaWQgZG9pbmcgYSBmbHVzaAoJICAoYW5kIHVubG9jaykgYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlIHRhc2sgaXMgbm90IHN0YXJ0ZWQgeWV0LgoKMjAxMi0wNi0xNSAxMjo1ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDYtMTUgMTI6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGRvY3M6IGltcHJvdmUgQVBJIGRvY3MKCjIwMTItMDYtMTUgMDA6MDA6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBhbGxsb2NhdG9yOiBubyBuZWVkIHRvIHN0b3JlIHN0cnVjdHVyZSBzaXplIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjU0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjUyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjQ5OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo0NToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBjYXBzIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo0MTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBubyBuZWVkIHRvIHN0b3JlIHNpemUgb2YgdGhlIG1lc3NhZ2Ugc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjM4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgc2FtcGxlOiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzYW1wbGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHRhZyBsaXN0IHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNSAxMToyNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGV4cGFuZCBkb2NzIGEgbGl0dGxlCgkgIEFkZCBibHVyYiBhYm91dCBxZGF0YSBhbmQgd2VhayByZWZzLgoKMjAxMi0wNi0xNSAxMDo0NDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBhZGQgcWRhdGEKCSAgS2VlcCB0cmFjayBvZiBxZGF0YSBmb3IgbWluaW9iamVjdHMuIFJldXNlIHRoZSB3ZWFrIHJlZiBhcnJheSBmb3IgdGhpcyBiZWNhdXNlCgkgIHdlIGNhbi4KCjIwMTItMDYtMTUgMTA6NTY6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZXJyb3IgaW4gdGhlIHdlYWsgcmVmIGhhbmRsaW5nCgkgIFdoZW4gMiB3ZWFrIHJlZnMgYXJlIGFkZGVkLCB0aGUgYXJyYXkgaXMgbm90IHJlc2l6ZWQgYmlnIGVub3VnaC4KCSAgU2ltcGxpZnkgdGhlIHdlYWsgcmVmIGhhbmRsaW5nIGNvZGUuCgkgIEZyZWUgbWVtb3J5IHdoZW4gd2UgcmVtb3ZlIGFsbCB3ZWFrIHJlZnMuCgkgIEFsbG93IGluc3RhbGxpbmcgdGhlIHNhbWUgd2VhayByZWYgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gZ29iamVjdC4KCjIwMTItMDYtMTQgMTc6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlbW92ZSB0aGUgc2l6ZSBmaWVsZAoJICBUaGUgc2l6ZSBmaWVsZCBpcyB1c2VkIGJ5IHN1YmNsYXNzZXMgdG8gc3RvcmUgdGhlIHRvdGFsIGFsbG9jYXRlZCBzaXplIG9mIHRoZQoJICBtZW1vcnkgZm9yIHRoaXMgbWluaW9iamVjdC4gQmVjYXVzZSBtaW5pb2JqZWN0IGRvZXNuJ3QgcmVhbGx5IGRvIGFueXRoaW5nIHdpdGgKCSAgdGhpcyBmaWVsZCB3ZSBjYW4gbW92ZSBpdCB0byB0aGUgc3ViY2xhc3Nlcy4KCjIwMTItMDYtMTQgMTY6MzA6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgR3N0TWVtb3J5IGEgbWluaW9iamVjdAoKMjAxMi0wNi0xNCAxNjoyNzoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogYWx3YXlzIHByaW50IG1pbmlvYmplY3QgcmVmY291bnQKCjIwMTItMDYtMTQgMTU6NDA6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGNvcHkgZnVuY3Rpb24KCSAgTWFrZSB0aGUgY29weSBmdW5jdGlvbiBtYXAgdG8gcmVmIGJlY2F1c2Ugd2UgY2FuJ3Qgc2FmZWx5IGNvcHkgdGhlIHVzZXJfZGF0YS4KCjIwMTItMDYtMTQgMTU6MzM6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbWFrZSBHc3RBbGxvY2F0b3IgYSBtaW5pb2JqZWN0CgoyMDEyLTA2LTEyIDEzOjI2OjM1ICswMjAwICBEYXZpZCBTdmVuc3NvbiBGb3JzIDxkYXZpZHNmQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZ3N0ZnVubmVsOiBhdm9pZCBhY2Nlc3Mgb2YgZnJlZWQgcGFkCgkgIFNhdmUgdGhlIHZhbHVlIG9mIHRoZSBwYWQncyBnb3RfZW9zIGluIGdzdF9mdW5uZWxfcmVsZWFzZV9wYWQsCgkgIGJlZm9yZSBjYWxsaW5nIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQuIFRoaXMgaXMgYmVjYXVzZQoJICBnc3RfZWxlbWVudF9yZW1vdmVfcGFkIG1heSBmcmVlIHRoZSBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMTcKCjIwMTItMDYtMTQgMTQ6MDU6MTUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBhZCB0cmFuc2ZlciBhbm5vdGF0aW9uIGZyb20gbm9uZSB0byBmdWxsCgkgIHNpbmNlIHRoZSBwYWQgd2lsbCBiZSB1bnJlZmZlZC4KCjIwMTItMDYtMTMgMTA6NTI6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbWVzc2FnZTogYWRkIHRoZSBydW5uaW5nLXRpbWUgdG8gdGhlIGFzeW5jLWRvbmUgbWVzc2FnZQoJICBBZGQgdGhlIHJ1bm5pbmctdGltZSBvZiB0aGUgYnVmZmVyIHRoYXQgY2F1c2VkIHRoZSBhc3luYyBvcGVyYXRpb24gdG8gY29tcGxldGUKCSAgdG8gdGhlIGFzeW5jLWRvbmUgbWVzc2FnZS4KCSAgVXBkYXRlIGJpbiB0byBoYW5kbGUgdGhlIG5ldyBhc3luYy1kb25lIG1lc3NhZ2UuCgoyMDEyLTA2LTEzIDEwOjUxOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgcGlwZWxpbmU6IHVzZSByZXNldF90aW1lIG1lc3NhZ2UgdG8gcmVzZXQgdGhlIHN0YXJ0IHRpbWUKCSAgVXNlIHRoZSBuZXcgUkVTRVRfVElNRSBtZXNzYWdlIHRvIHJlc2V0IHRoZSBzdGFydC10aW1lIG9mIHRoZSBwaXBlbGluZSB0byB0aGUKCSAgcmVxdWVzdGVkIHRpbWUuCgkgIE1ha2UgYmFzZXNpbmsgcmVxdWVzdCBhIG5ldyBydW5uaW5nLXRpbWUgd2hlbiB0aGUgZmx1c2gtc3RvcCBtZXNzYWdlIHRlbGxzIGl0IHRvCgkgIGluc3RlYXNkIG9mIHdhaXRpbmcgZm9yIHByZXJvbGwuCgoyMDEyLTA2LTEzIDEwOjE2OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIGEgbmV3IG1lc3NhZ2UgdG8gcmVzZXQgdGltZQoJICBBZGQgYSBuZXcgbWVzc2FnZSB0byByZXNldCB0aGUgcGlwZWxpbmUgcnVubmluZ190aW1lLiBDdXJyZW50bHkgcmVzZXRpbmcgdGhlCgkgIHBpcGVsaW5lIGNhbiBvbmx5IGJlIHJlcXVlc3RlZCBpbiB0aGUgYXN5bmNfZG9uZSBtZXNzYWdlIHdoaWNoIG1lYW5zIHRoYXQgdGhlCgkgIHBpcGVsaW5lIG5lZWRzIHRvIGJlIHByZXJvbGxlZC4gSXQgaXMgYmV0dGVyIHRvIG1vdmUgdGhpcyB0byBhIHNlcGFyYXRlIG1lc3NhZ2UuCgoyMDEyLTA2LTEyIDE3OjExOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFsd2F5cyByZWN1cnNlIGludG8gYmlucyB3aGVuIGRvaW5nIHN0YXRlIGNoYW5nZXMKCSAgTmV2ZXIgc2tpcCB0aGUgc3RhdGUgY2hhbmdlIG9mIGEgYmluIGJlY2F1c2UgaXQgbmVlZHMgdG8gdXBkYXRlIHRoZSBiYXNlIHRpbWUgb2YKCSAgaXRzIGNoaWxkcmVuIHdoZW4gbmVlZGVkLgoKMjAxMi0wNi0xMyAwMDozMDo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUgZm9yIG5ldyBkYXRldGltZSBhcGkKCjIwMTItMDYtMTMgMDA6Mjg6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBsYXRlc3QgQVBJCgoyMDEyLTA2LTEzIDAwOjI1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgZGF0ZXRpbWUgQVBJCgoyMDEyLTA2LTEzIDAwOjIxOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3IgcGFydGlhbCBkYXRlIHRpbWUgZmllbGRzCgoyMDEyLTA2LTEyIDIzOjUyOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IGNsZWFuLXVwcyBhbmQgbmV3IEFQSSBhZGp1c3RtZW50cwoJICBSZW1vdmUgY29uc3RydWN0b3JzIHdlIGRvbid0IHdhbnQ6CgkgIGdzdF9kYXRlX3RpbWVfbmV3X3ltZF9oKCkgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvCgkgIHN1cHBvcnQgaG91ci1vbmx5IGZvciBub3c7CgkgIGdzdF9kYXRlX3RpbWVfbmV3X3ltZF9obSgpIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bwoJICBhZGQgY29uc3RydWN0b3JzIHdpdGggdGltZSBpbmZvIHdoZXJlIHRoZSBjYWxsZXIgZG9lc24ndAoJICBoYXZlIHRvIHRoaW5rIGFib3V0IHdoYXQgdGltZXpvbmUgdGhlIHRpbWUgaXMgaW4uCgkgIExvdHMgb2YgY29tcHVsc2l2ZSBjbGVhbi11cC4gRG9jcyBmaXhlcy4gUmVwbGFjZQoJICBoYXNfbWludXRlKCkgYW5kIGhhc19ob3VyKCkgd2l0aCBoYXNfdGltZSgpLgoKMjAxMi0wNi0xMiAyMjozNTo0MiArMDIwMCAgT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IGFsbG93IEdzdERhdGVUaW1lIHdoZXJlIG5vdCBhbGwgZmllbGRzIGFyZSBzZXQKCSAgSW4gb3JkZXIgdG8gZGVzZXJpYWxpc2UgYW5kIHJlLXNlcmlhbGlzZSBkYXRlcyBhbmQgZGF0ZSB0aW1lcwoJICBmcm9tIHRhZ3MgcHJvcGVybHksIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBleHByZXNzIHBhcnRpYWwKCSAgZGF0ZXMgKGUuZy4gWVlZWSBvciBZWVlZLU1NKSBhbmQgZGF0ZSB0aW1lcy4KCSAgV2Ugb25seSBzdXBwb3J0IHBhcnRpYWwgZGF0ZSB0aW1lcyB3aGVyZSBhbGwgdGhlIG1vcmUKCSAgc2lnbmlmaWNhbnQgZmllbGRzIGFib3ZlIHRoZSBmaXJzdCB1bnNldCBmaWVsZCBhcmUgc2V0CgkgIChlLmcuIFlZWVktMDAtREQgaXMgbm90IHN1cHBvcnRlZCkuCgkgIENhbGxpbmcgX2dldF9mb28oKSB3aGVuIGZvbyBpcyBub3Qgc2V0IGlzIG5vdCBhbGxvd2VkCgkgIGFueSBtb3JlLCBjYWxsZXJzIG5lZWQgdG8gY2hlY2sgd2hpY2ggZmllbGRzIGFyZSBzZXQKCSAgZmlyc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc3NTcKCjIwMTItMDYtMTIgMjI6NDU6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiBmaXggdXAgbWlub3IgaW5jb25zaXN0ZW5jeSBpbiBzdHJ1Y3R1cmUgbmFtZSBvZiBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2UKCjIwMTItMDYtMTIgMTE6NDI6MzAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgaW50cm9zcGVjdGlvbjogYWRkIHNvbWUgbWlzc2luZyBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xMiAxNDoyNDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgZmx1c2ggZXZlbnRzIG9uIHRoZSBlbGVtZW50IGFzIHdlbGwKCSAgSGFuZGxlIGZsdXNoLXN0YXJ0IGFuZCBmbHVzaC1zdG9wIHNlbnQgb24gdGhlIGVsZW1lbnQgYXMgd2VsbCBhbmQgc2VuZCB0aGVtCgkgIGRvd25zdHJlYW0uIE1ha2Ugc3VyZSB0byBzZW5kIGEgc2VnbWVudCBldmVudCBhZnRlciB0aGUgZmx1c2ggc3RvcC4KCjIwMTItMDYtMTIgMTE6MDU6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBhZGQgYSBmZXcgbW9yZSBjb21tZW50cwoKMjAxMi0wNi0xMSAyMDozNDowMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IGZpeCBzaWduYWwgaGFuZGxlciBzaWduYXR1cmVzIGluIGNsYXNzCgkgIFdoZW4gYWRkaW5nIHRoZSBuYW1lIHBhcmFtZXRlciwgd2UgZm9yZ290IHRvIGFkZCBpdCBoZXJlIHRvby4KCjIwMTItMDYtMTEgMTA6NTk6NDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IHVzZSBHc3RDaGlsZFByb3h5IGluc3RlYWQgb2YgR09iamVjdCBvbiB0aGUgcHVibGljIGFwaQoJICBGaXggdXNhZ2UgYW5kIGFsc28gY2xlYW51cCBnc3Rfb2JqZWN0IGFwaSB1c2Ugb24gZ29iamVjdHMuCgoyMDEyLTA2LTExIDE1OjQ5OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogcmVtb3ZlIHVudXNlZCBVTlBBUkVOVElORyBmbGFnCgoyMDEyLTA2LTExIDE1OjQxOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlb3JnYW5pemUgX3JlbW92ZV9mdW5jIHRvIGF2b2lkIHJhY2VzCgkgIE1ha2UgdGhlIGdzdF9iaW5fcmVtb3ZlX2Z1bmMgbW9yZSBsaWtlIHRoZSBhZGRfZnVuYy4gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgd2UgdHJ5CgkgIHRvIHJlbW92ZSBmcm9tIHRoZSBiaW4gaGFzIHRoZSBiaW4gYXMgdGhlIHBhcmVudCBhbmQgc2V0IHRoZSBwYXJlbnQgZmxhZyB0byBOVUxMCgkgIGltbWVkaWF0ZWx5LCB0aGlzIGFsbG93cyB1cyB0byBhdm9pZCBjb25jdXJyZW50IHJlbW92ZSBvcGVyYXRpb25zIHdpdGhvdXQgdXNpbmcKCSAgdGhlIFVOUEFSRU5USU5HIGVsZW1lbnQgZmxhZy4gQWZ0ZXIgd2UgdW5wYXJlbnRlZCB0aGUgZWxlbWVudCBmcm9tIHRoZSBiaW4sIHdlCgkgIHVwZGF0ZSB0aGUgYmluIHN0YXRlIGFuZCByZW1vdmUgdGhlIGVsZW1lbnQgZnJvbSB0aGUgbGlzdC4gRmluYWxseSB3ZSB1bmxpbmsKCSAgYWxsIHRoZSBwYWRzLgoJICBUaGlzIGF2b2lkcyBhIHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBlbGVtZW50IGNvdWxkIHN0aWxsIGNsYWltIHRvIGhhdmUgdGhlCgkgIGJpbiBhcyB0aGUgcGFyZW50IHdoaWxlIHRoZSBiaW4gZGlkbid0IGhhdmUgYSBwb2ludGVyIHRvIHRoZSBlbGVtZW50IGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc3NTkKCjIwMTItMDYtMTAgMTI6NDg6MDAgLTA0MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IE9ubHkgc2VuZCBjYXBzIHdoZW4gcGFkIGlzIGJlaW5nIGFjdGl2YXRlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODE5CgoyMDEyLTA2LTEwIDEyOjQxOjEyIC0wNDAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0ZWxlbWVudDogU3RhcnQgb3ZlciBpZiBzdWJjbGFzcyByZW1vdmVkIHRoZSBuZXh0IHBhZCB0b28KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzgxOAoKMjAxMi0wNi0wOSAxODowNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IHJlbW92ZSBmYWxsYmFjayBjb2RlIGZvciBvbGQgR0xpYnMKCjIwMTItMDYtMDkgMTc6MTM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGFkZCBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAgc2NyaXB0CgkgIExpdHRsZSBzY3JpcHQgdGhhdCBzZXRzIHVwIHRoaW5ncyBpbiB+L2dzdCBhbmQgY2xvbmVzCgkgIHRoZSBtYWluIG1vZHVsZXMgYW5kIHByaW50cyBzb21lIGluc3RydWN0aW9ucy4KCSAgRnJvbSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1VuaW5zdGFsbGVkU2V0dXAKCjIwMTItMDYtMDggMTU6NDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGVsZW1lbnRzOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCBkb24ndCBpZ25vcmUgaXRzIHJldHVybiB2YWx1ZQoKMjAxMi0wNi0wOCAxNTo0MToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCBjYWxsIGl0IGFmdGVyIHRoZSB2ZnVuYwoKMjAxMi0wNi0wOCAxNTozNjo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgdGhlIG1hbnVhbCBldmVudCBmaWRkbGluZwoKMjAxMi0wNi0wOCAxNTozMjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgcmV0dXJuIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BhZF9zZXRfY2FwcygpCgkgIGUuZy4gaXQgcmV0dXJucyBGQUxTRSBpZiBpbmNvbXBhdGlibGUgY2FwcyBhcmUgc2V0IG9uIHRoZSBwYWQuCgoyMDEyLTA2LTA2IDE5OjAyOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogRmFzdGVyIHJlYWQgbWFjcm9zCgkgIE9uIHBsYXRmb3JtcyB0aGF0IGNhbiBkbyB1bmFsaWduZWQgcmVhZC93cml0ZSwgd2UgY2FuIHJlYWQvd3JpdGUgbXVjaCBmYXN0ZXIKCSAgYnkganVzdCBjYXN0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk5NTQ2CgoyMDEyLTA2LTA3IDEyOjQ5OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBjaGVjazogQWRkIGEgdGVzdCBmb3IgR1NUX1JFQURfKiBtYWNyb3MKCjIwMTItMDYtMDggMTQ6NDk6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMi0wNi0wNyAxNzo1ODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVjb25maWd1cmUKCSAgVXNlIHRoZSBwYWQgbWV0aG9kcyB0byBzZXQgYW5kIGNoZWNrIHRoZSByZWNvbmZpZ3VyZSBmbGFncwoJICBDbGVhciB0aGUgcmVjb25maWd1cmUgZmxhZyBiZWZvcmUgd2UgbmVnb3RpYXRlIHNvIHRoYXQgd2UgZG9uJ3QgbWlzcyBhbnkKCSAgcmVjb25maWd1cmUgZXZlbnRzIHdoaWxlIG5lZ290aWF0aW5nCgoyMDEyLTA2LTA3IDE1OjU2OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MiA9PT0KCjIwMTItMDYtMDcgMTU6NTY6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBSZWxlYXNlIDAuMTEuOTIKCjIwMTItMDYtMDcgMTU6NTM6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA2LTA3IDE1OjI4OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIHNvb25lcgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgd2UgZ2V0IHRoZSB0aW1lIG9mIHRoZSBjbG9jayBiZWNhdXNlIHRoYXQgY29kZQoJICBtaWdodCB0YWtlIG90aGVyIGxvY2tzLgoJICBGaXggcG90ZW50aWFsIGNsb2NrIHJlZmNvdW50IGVycm9yIGJlY2F1c2Ugd2UgcmVsZWFzZWQgdGhlIG9iamVjdCBsb2NrIGJ1dAoJICBkaWRuJ3QgcmVmIHRoZSBjbG9jay4KCjIwMTItMDYtMDcgMTA6MzQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIDAuMTEgZml4bWUKCSAgV2UgYWx3YXlzIHJlcXVpcmUgZWxlbWVudHMgdG8gaGF2ZSBhbiB1bmxvY2tfc3RvcCB2bWV0aG9kLgoKMjAxMi0wNi0wNiAxODoxMToxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFdlIG5hbWUgdGhlIHJlZ2lzdHJ5IGFmdGVyIHRoZSB0YXJnZXQgY3B1CgkgIEFuZCBub3QgdGhlIGhvc3QgY3B1CgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmMKCjIwMTItMDYtMDYgMTg6MTg6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxZmFiMzU5IHRvIDAzYTBlNTcKCjIwMTItMDYtMDYgMTU6NDU6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0IGFmdGVyIGV2ZW50IGNoYW5nZQoJICBTb21lb25lIGZvcmdvdCB0byBydW4gbWFrZSBjaGVjayBiZWZvcmUgcHVzaGluZy4uLgoKMjAxMi0wNi0wNiAxMTowNjozMiArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGdzdGFkYXB0ZXI6IEFsaWduIHRoZSBjb21tZW50IGRlc2NyaXB0aW9uIHdpdGggcHVibGljIGFwaSBpbnN0ZWFkIG9mIGludGVybmFsIG9uZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzUzNgoKMjAxMi0wNi0wNiAxNToyOTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBwYWQgY2xlYW51cCBpbiBkaXNwb3NlCgkgIEluIHRoZSBkaXNwb3NlIGhhbmRsZXIgd2UgZmlyc3QgbmVlZCB0byByZWxlYXNlIGFsbCB0aGUgcmVxdWVzdCBwYWRzIGFuZCB0aGVuCgkgIHJlbW92ZSB0aGUgcmVtYWluaW5nIHBhZHMuIFRoaXMgaXMgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHJlbGVhc2luZyB0aGUKCSAgcmVxdWVzdCBwYWQgbWlnaHQgYWxzbyBjbGVhbmx5IHJlbW92ZSBzb21lIG9mIHRoZSBvdGhlciBkeW5hbWljIHBhZHMsIGxpa2UKCSAgd2hhdCBydHBzZXNzaW9uIGRvZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc0MzYKCjIwMTItMDYtMDYgMTQ6MTQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogRG9uJ3QgbWFrZSB0aGUgVE9DIGV2ZW50IGEgbXVsdGktc3RpY2t5IGV2ZW50CgkgIEVsZW1lbnRzIGFyZSBzdXBwb3NlZCB0byBtZXJnZSB1cHN0cmVhbSBldmVudHMuCgoyMDA5LTEwLTEzIDE3OjI0OjM0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIE1ha2Ugc3VyZSB0aGF0IHVubGlua2VkIHBhZHMgZG8gbm90IGNhdXNlIGEgcmV0dXJuIGZhbHNlIG9uIGxhdGVuY3kgZXZlbnRzLgoJICBDb250ZXh0OiBMYXRlbmN5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIG5vdCBiZQoJICBtZXNzZWQgdXAgYmVjYXVzZSBvZiBub3QtbGlua2VkIHBhZHMuIEluIGdlbmVyYWwsCgkgIG9uZSByZXR1cm4gRkFMU0Ugb24gbGF0ZW5jeSBkaXN0cmlidXRpb24gY2F1c2VzCgkgIHRoZSAib3ZlcmFsbCIgcGlwZWxpbmUgbGF0ZW5jeSBjb25maWd1cmF0aW9uIHRvCgkgIGZhaWwuIFRoaXMgc2hvd3MgdXAgYXMgbm9pc2UgaW4gbG9ncyAod2FybmluZykuCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDEyLTA2LTA2IDEyOjUyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgZXZlbnQ6IGFkZCBuYW1lIHRvIHN0aWNreV9tdWx0aSBldmVudHMKCSAgVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGlzIHVzZWQgdG8gc3RvcmUgbXVsdGlwbGUgc3RpY2t5IGV2ZW50cyBvZiBhIGNlcnRhaW4gdHlwZQoJICBvbiBhIHBhZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Njg1OQoKMjAxMi0wNi0wNiAwOTo1OTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZGVzaWduOiBBbHNvIG1lbnRpb24gdGhhdCB0aGUgb3JkZXIgb2YgdGhlIGZpbHRlciBjYXBzIGlzIGltcG9ydGFudAoKMjAxMi0wNi0wNiAwOToxNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogaW1wcm92ZSBkb2NzCgoyMDEyLTA2LTA2IDA5OjEzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgc2VyaWFsaXplZCBldmVudHMgY2FuJ3QgcGFzcyBhZnRlciBFT1MKCSAgT25seSBzZXJpYWxpemVkIGV2ZW50cyBjYW4ndCBiZSBzZW50IG9uIHBhZHMgdGhhdCBhcmUgRU9TLiBPdGhlcndpc2UgYSBzZWVrCgkgIGV2ZW50IHdvdWxkIGJlIHJlZnVzZWQgYXMgd2VsbC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzUyMAoKMjAxMi0wNi0wNSAxNDozODoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB0YWxrIGFib3V0IHRoZSBmaWx0ZXIgY2FwcwoKMjAxMi0wNi0wMiAxNjo0NDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciB0YWcgbGlzdCB3cml0YWJpbGl0eQoKMjAxMi0wNi0wMiAxNjozODozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICBnc3RfdGFnX2xpc3RfZnJlZSAtPiBnc3RfdGFnX2xpc3RfdW5yZWYKCjIwMTItMDYtMDIgMTY6Mjk6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogZXhwYW5kIHRhZ2xpc3Qgc2VjdGlvbiBpbiBwb3J0aW5nLXRvLTAuMTEgZG9jcyBhIGJpdAoKMjAxMi0wNi0wNSAxMToyODozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgbmVnb3RpYXRpb24gZG9jcwoJICBNZW50aW9uIHRoYXQgdGhlIGFjY2VwdGNhcHMgcXVlcnkgZG9lcyBub3QgaGF2ZSB0byBiZSByZWN1cnNpdmUKCjIwMTItMDYtMDUgMDk6NDA6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSBvYnNvbGV0ZSBjYXBzIGNvZGUKCjIwMTItMDYtMDUgMDk6Mzk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGltcHJvdmUgZGVidWcKCjIwMTItMDYtMDUgMDk6MjE6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCSAgQmVmb3JlIHdlIGNhbiBjaGFuZ2UgdGhlIGNhcHMgb24gYSBzaW5rcGFkIHdpdGggZml4ZWQgY2FwcyB3ZSBuZWVkIHRvIHVuZml4IHRoZQoJICBwYWQgY2Fwcy4KCjIwMTItMDYtMDUgMDk6MTA6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcGF1c2UgdGFzayBvbiBFT1MKCSAgRWxlbWVudHMgc2hvdWxkIG5vdCByZWx5IG9uIGNvcmUgdG8gcGF1c2UgdGFza3Mgb24gRU9TLgoKMjAxMi0wNi0wNSAwOTowMDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZXZlbnQgdHlwZSBjaGVjawoKMjAxMi0wNi0wNCAxNjoxOToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggJ3JlcycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uCgoyMDEyLTA2LTA0IDEzOjAwOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCB1bml0IHRlc3QKCjIwMTItMDYtMDQgMTI6NTc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IEZpeCB1bml0IHRlc3QKCjIwMTItMDYtMDQgMTE6NDY6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogRG9uJ3QgYWNjZXB0IGFueSBidWZmZXJzIG9yIGV2ZW50cyBhZnRlciBFT1MKCjIwMTItMDYtMDQgMTE6MTM6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIHBlcmZvcm0gc3RhdGUgcHJvY2Vzc2luZyB1cG9uIG5vbi1PSyByZXR1cm4KCSAgLi4uIHNpbmNlIHByb2Nlc3NpbmcgbWlnaHQgc3RpbGwgY29udGludWUgKGlmIGUuZy4gTk9UX0xJTktFRCkKCSAgYW5kIHRoZW4gcHJvcGVyIHN0YXRlIChlLmcuIG9mZnNldCkgbmVlZHMgdG8gYmUgbWFpbnRhaW5lZAoJICAoZS5nLiB0byBhcnJhbmdlIGZvciBhIG5ldyBmcmFtZSBzZXR1cCkuCgoyMDEyLTA2LTA0IDExOjI1OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBbHdheXMgcmV0dXJuIGVycm9ycyBmb3IgRU9TIGV2ZW50cyBpbW1lZGlhdGVseQoJICBGb3Igbm9uLUVPUyBldmVudHMgdGhpbmdzIHdpbGwgZXJyb3Igb3V0IGxhdGVyIGR1cmluZyBkYXRhCgkgIGZsb3cgYnV0IGFmdGVyIEVPUyBldmVudHMgbm8gZGF0YSBmbG93IGlzIGhhcHBlbmluZy4KCSAgU2VlIGJ1ZyAjNjc3MzQwLgoKMjAxMi0wNi0wNCAwOToyNzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBmb3J3YXJkIGNhcHMgZXZlbnRzIHRvIGEgcGFkIGlmIGl0IGFjY2VwdHMgdGhlIGNhcHMKCSAgRml4ZXMgYnVnICM2NzczMzUuCgoyMDEyLTA2LTAyIDIwOjAxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IFJldHVybiBGQUxTRSBpZiBwdXNoaW5nIG9mIHN0aWNreSBldmVudHMgZmFpbGVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBmOTI0YjkyMmM3MTIwNTlkNzc1MmZjMTViODMyNTUxNzQ1ZmYyN2UuCgkgIFN0aWNreSBldmVudHMgc2hvdWxkIGFsd2F5cyByZXR1cm4gVFJVRSB3aGVuIHB1c2hpbmcgYW5kIHdpbGwKCSAgb25seSBjYXVzZSBmYWlsdXJlcyBkdXJpbmcgZGF0YSBmbG93IGxhdGVyLgoKMjAxMi0wNi0wMiAxNjoxODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHZhcmlhYmxlLXNldC1idXQtbm90LXVzZWQgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wNi0wMiAxNjo1NTowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSWYgcHVzaGluZyBhIHN0aWNreSBldmVudCBmYWlsZWQsIG1ha2Ugc3VyZSB0byBhdCBsZWFzdCBwdXNoIGFueSBwZW5kaW5nIEVPUyBldmVudHMKCSAgT3RoZXJ3aXNlIGEgcGlwZWxpbmUgd2hlcmUgb25lIHN0aWNreSBldmVudCBmYWlscyB0byBiZSBzZW50IHdpbGwKCSAgbmV2ZXIgZm9yd2FyZCBFT1MgZXZlbnRzIGRvd25zdHJlYW0uIFRoaXMgY2FuIGNhdXNlIHBpcGVsaW5lcyB0bwoJICB3YWl0IGZvcmV2ZXIgZm9yIEVPUyBvbiBlcnJvcnMuCgoyMDEyLTA2LTAyIDE2OjAyOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZXR1cm4gRkFMU0UgaWYgcHVzaGluZyBvZiBzdGlja3kgZXZlbnRzIGZhaWxlZAoJICBJbnN0ZWFkIG9mIGp1c3QgaWdub3JpbmcgZmFpbHVyZSBvZiBwdXNoaW5nIHN0aWNreSBldmVudHMgYW5kCgkgIHJldHVybmluZyBUUlVFIGFzIGlmIGV2ZXJ5dGhpbmcgaXMgZmluZS4KCjIwMTItMDYtMDEgMTY6MzQ6MTYgKzAyMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogQ29ycmVjdGx5IGdldCBjdXJyZW50IHJ1bm5pbmcgdGltZSB3aGVuIHN5bmNpbmcgdG8gdGhlIHNlZ21lbnQgaW5mb3JtYXRpb24KCSAgRml4ZXMgYnVnICM2NzcyNjMuCgoyMDEyLTA2LTAxIDEwOjI4OjMwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjFiNWE5NiB0byAxZmFiMzU5CgoyMDEyLTA1LTI1IDIyOjU4OjU3IC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogQWRkIGZ1bm5lbCB0ZXN0IHRvIGNvdmVyIEVPUyBldmVudCBoYW5kbGluZwoJICBQb3J0ZWQgZnJvbSBmM2IyZGQ2ZiBpbiB0aGUgMC4xMCBicmFuY2gKCjIwMTItMDUtMjUgMjI6NTI6MzMgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBPbmx5IGVtaXQgRU9TIGV2ZW50IGlmIGFsbCBzaW5rcGFkcyBoYXZlIHJlY2VpdmVkIG9uZQoJICBJZiBtdWx0aXBsZSBzb3VyY2VzIGFyZSBwbHVnZ2VkIGludG8gdGhlIGZ1bm5lbCBhbmQgb25lIG9mIHRoZQoJICBzb3VyY2VzIGVtaXRzIGFuIEVPUywgdGhhdCBldmVudCBpcyBwcm9wb2dhdGVkIHRocm91Z2ggdGhlIGZ1bm5lbAoJICBldmVuIHRob3VnaCBvdGhlciBzb3VyY2VzIGNvbm5lY3RlZCB0byB0aGUgZnVubmVsIG1heSBzdGlsbCBiZQoJICBwdXNoaW5nIGRhdGEuIFRoaXMgcGF0Y2ggd2FpdHMgdG8gc2VuZCBhbiBFT1MgZXZlbnQgdW50aWwgdGhlCgkgIGZ1bm5lbCBoYXMgcmVjZWl2ZWQgYW4gRU9TIGV2ZW50IG9uIGVhY2ggc2lua3BhZC4KCSAgUG9ydGVkIGZyb20gZDM5N2VhOTcgaW4gMC4xMCBicmFuY2guCgoyMDEyLTA1LTI5IDE5OjI0OjI1IC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogRml4IGludmFsaWQgcmVhZCB3aGVuIHJlbGVhc2luZyByZXF1ZXN0IHBhZHMgaW4gZnVubmVsIHRlc3RzCgoyMDEyLTA1LTI5IDE5OjIzOjA3IC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IGJ1ZmZlciBsZWFrCgoyMDEyLTA1LTMxIDE3OjQ1OjI5ICswMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IHRyeSB0byBzeW5jIG9uIHRoZSBzZWdtZW50IGlmIGl0IGhhcyBubyBUSU1FIGZvcm1hdAoJICAuLi5hbmQgd2FpdCB1bnRpbCBpdCBpcyBhY3R1YWxseSBjb25maWd1cmVkIGFuZCBoYXMgYSBmb3JtYXQgYmVmb3JlCgkgIHRyeWluZyB0byBzeW5jLgoKMjAxMi0wNS0zMSAxNzowMzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTm8gbmVlZCB0byBicm9hZGNhc3QgdGhlIHNpZ25hbCBpbiBmbHVzaC1zdG9wCgkgIEV2ZXJ5dGhpbmcgc3RvcHBlZCBhdCB0aGlzIHBvaW50IGFscmVhZHkuCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCjIwMTItMDUtMzEgMTM6MDc6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5MmI3MjY2IHRvIGYxYjVhOTYKCjIwMTItMDUtMzEgMTA6MTA6NDEgKzAxMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHByb3BlcnR5IG5hbWUgaW4gdGhlIGRvY3MKCSAgdGVtcC10ZW1wbGF0ZSwgbm90IHRlbXAtdG1wbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MTcwCgoyMDEyLTA1LTI4IDE0OjI5OjAwIC0wMzAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBQcm9wZXJseSBzeW5jIHdoZW4gY2hhbmdpbmcgc3RyZWFtcwoJICBUaGlzIGFkZHMgcHJvcGVydGllcyB0byB1c2UgdGhlIGNsb2NrIHRpbWUgZm9yIGRlY2lkaW5nIHdoZW4KCSAgdG8gZHJvcCBidWZmZXJzIGZvciBpbmFjdGl2ZSBwYWRzIGFuZCBhIHByb3BlcnR5IHRvIGJ1ZmZlciBhbGwKCSAgbm90IHJlbmRlcmVkIGJ1ZmZlcnMgZm9yIHRoZSBhY3RpdmUgcGFkIHRvIGFsbG93IHBhZCBzd2l0Y2hpbmcKCSAgd2l0aG91dCBsb3NpbmcgYW55IGJ1ZmZlcnMgYXQgYWxsLgoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgoyMDEyLTA1LTMwIDEyOjQ0OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZWMxYzRhOCB0byA5MmI3MjY2CgoyMDEyLTA1LTMwIDExOjE4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzQyOWJhNiB0byBlYzFjNGE4CgoyMDEyLTA1LTI5IDA4OjQ4OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCBndWFyZHMgdG8gbWFrZSBzdXJlIHRhZ2xpc3QgaXMgd3JpdGFibGUgd2hlbiBtb2RpZnlpbmcgaXQKCSAgTm93IHRoYXQgdGFnbGlzdHMgYXJlIHJlZmNvdW50ZWQgd2UgbmVlZCB0byBjaGVjayBpZiB0aGV5J3JlCgkgIHdyaXRhYmxlIGJlZm9yZSBtb2RpZnlpbmcgdGhlbS4KCjIwMTItMDUtMjggMjM6NTQ6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGF2b2lkIHVubmVjZXNzYXJ5IHN0cmluZyBjb3B5aW5nIHdoZW4gcmVnaXN0ZXJpbmcgdGFncwoJICBBZGQgZ3N0X3RhZ19yZWdpc3Rlcl9zdGF0aWMoKSAtIG5vIG5lZWQgdG8gY29weSBhbGwgdGhvc2UKCSAgc3RyaW5nIGNvbnN0YW50cywgd2hldGhlciB0cmFuc2xhdGVkIG9yIG5vdC4KCSAgQVBJOiBnc3RfdGFnX3JlZ2lzdGVyX3N0YXRpYygpCgoyMDEyLTA1LTI4IDAwOjA4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBjaGVjayBmb3IgR0xpYi1HSU8gY3JpdGljYWxzIGFzIHdlbGwKCjIwMTItMDUtMjggMDA6MDg6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdF90YWdfbGlzdF9mcmVlKCkgLT4gZ3N0X3RhZ19saXN0X3VucmVmKCkKCjIwMTItMDUtMjcgMjM6NTg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBtYWtlIEdzdFRhZ0xpc3QgYSBHc3RNaW5pT2JqZWN0CgkgIFdoaWNoIGFkZHMgcmVmY291bnRpbmcgc3VwcG9ydCwgYW5kIG90aGVyIHRoaW5ncy4KCjIwMTItMDUtMjcgMjA6MzE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbG9nIGZyZWVpbmcgb2YgY2FwcyBhdCBzYW1lIGxvZyBsZXZlbCBhcyBjcmVhdGlvbiwgaS5lLiBUUkFDRQoKMjAxMi0wNS0yNiAxMTozNzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlLCBldmVudDogdXBkYXRlIGZvciB0YWcgbGlzdHMgbm90IGJlaW5nIHN0cnVjdHVyZXMgYW55IG1vcmUKCjIwMTItMDUtMjEgMDA6MzE6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBwcm9wZXIgc3RydWN0IG5vdCBqdXN0IGEgR3N0U3RydWN0dXJlCgoyMDEyLTA1LTI1IDEwOjI4OjQwICswMjAwICBKb3NlcCBUb3JyYSA8am9zZXBAZmx1ZW5kby5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBzdGF0aWMgbGlua2luZyBvbiBPUyBYCgkgIFRoZSBsaW5raW5nIGJlaGF2aW91ciBvZiBleHRlcm5hbCB2YXJpYWJsZXMgdGhhdCBhcmUgbm90IGluaXRpYWxpemVkCgkgIGluIHRoZSBjb21waWxhdGlvbiB1bml0IHdoZXJlIHRoZXkgYXJlIGRlZmluZWQgaXMgdW5kZWZpbmVkLiBPbiBPUyBYCgkgIHRoaXMgY2F1c2VzIGEgbGlua2luZyBmYWlsdXJlIHdoZW4gc3RhdGljYWxseSBsaW5raW5nIEdTdHJlYW1lci4KCjIwMTItMDUtMjUgMDk6MTc6MTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgZml2ZS1idWdzLWEtZGF5OiB1c2Ugc3BsaWNlIHRvIHRyaW0gdGhlIGJ1ZyBsaXN0CgoyMDEyLTA1LTI0IDIzOjMwOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgZmFrZXNyYzogcHV0IGJ5dGUgcG9zaXRpb24gcmF0aGVyIHRoYW4gYnVmZmVyIGNvdW50IGludG8gR1NUX0JVRkZFUl9PRkZTRVQKCSAgSWYgd2UncmUgc2VuZGluZyBhIHNlZ21lbnQgaW4gQllURSBmb3JtYXQsIHRoZSBvZmZzZXQKCSAgc2hvdWxkIGJlIGluIGJ5dGVzIGFzIHdlbGwuCgoyMDEyLTA1LTI0IDExOjQ4OjE5ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgIGRvY3M6IGZpeCBhIHR5cG8gaW4gcGFydC1zZWdtZW50cy50eHQKCjIwMTItMDUtMjQgMTE6MDI6NTMgKzAyMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb24gYXQgb3JhY2xlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGZpeCBwcm90b3R5cGUgb2YgaGVscGVyX2ZpbmRfc3VnZ2VzdAoJICBUaGUgcHJvdG8gZm9yIGhlbHBlcl9maW5kX3N1Z2dlc3QgaGFzIGEgZGlmZmVyZW50IGFyZ3VtZW50IHRoYW4gdGhlIGFjdHVhbAoJICBmdW5jdGlvbiBpbiB0aGUgc2FtZSBmaWxlIGhhcy4gIFRoaXMgY2F1c2VzIHRoZSBTdW4gU3R1ZGlvIGNvbXBpbGVyIHRvIGZhaWwuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY2MjQKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMKCjIwMTItMDUtMjQgMDg6MDc6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIHNjcmlwdHM6IHJlbW92ZSBhIHN0cmF5IHByaW50IGZyb20gZGVidWdnaW5nIGFuZCBmaXggdXAgY3JvbiBlbnRyeSBkb2NzCgoyMDEyLTA1LTI0IDA5OjAzOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBmaXZlLWJ1Z3MtYS1kYXk6IE1ha2UgIyEgdG8gcGVybCBtb3JlIHBvcnRhYmxlCgoyMDEyLTA1LTI0IDA3OjU2OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBzY3JpcHRzOiByZW1vdmUgZml4ZWQgJ2tub3duIGlzc3VlJyBmcm9tIGZpdmUtYnVncy1hLWRheSBzY3JpcHQKCSAgVGhpcyB3YXMgd2l0aCBjb21tYXMgYWN0dWFsbHksIGFuZCBzaG91bGQgYmUgZml4ZWQgbm93LgoKMjAxMi0wNS0yNCAwNzo1NDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgc2NyaXB0czogYWRkIGZpdmUtYnVncy1hLWRheSBzY3JpcHQKCSAgQ3JvbiBmb2RkZXIuCgoyMDEyLTA1LTIyIDE0OjI3OjQ4ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgdGVzdHM6IHJlbmFtZSBwbGF5YmluMiB0byBwbGF5YmluIGFuZCBhZGRpbmcgc29tZSBkZWJ1ZyBpbmZvCgoyMDEyLTA1LTIyIDE4OjI3OjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBBZGQgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEyLTA1LTIyIDEzOjUxOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZQoKMjAxMi0wNS0yMSAwOToxNDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBwb3J0IHVuaXQgdGVzdCB0byAwLjExCgoyMDEyLTA1LTIxIDE1OjE0OjUxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGltcHJvdmUgdGhlIHNlZWtpbmcgZG9jcyBtb3JlLgoJICBBbHNvIG1lbnRpb24gaXQgb24gX2VsZW1lbnRfc2Vla3ssX3NpbXBsZX0gYW5kIGJlIG1vcmUgcHJlY2lzZSB3aHkgaXQgaGFwcGVucy4KCjIwMTItMDUtMjEgMTM6MTc6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogZml4IGEgdHlwbyBhbmQgY2xhcmlmeSBldmVudCBoYW5kbGluZyBhIGJpdCBtb3JlCgkgIFRlbGwgYWJvdXQgYXN5bmNfZG9uZSBtZXNzYWdlcyBmb3Igc29tZSBldmVudHMgYW5kIHJldmlldyB0aGUgX2V2ZW50X25ld19zZWVrCgkgIGRvY3MuCgoyMDEyLTA1LTE4IDE1OjA0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogdHJ5IGhhcmRlciB0byBhdm9pZCBzdGF0ZSBjaGFuZ2VzIGluIHdyb25nIGRpcmVjdGlvbgoJICBXaGVuIHRoZSBiaW4gZG9lcyBhbiB1cHdhcmQgc3RhdGUgY2hhbmdlLCB0cnkgdG8gYXZvaWQgZG9pbmcgYSBkb3dud2FyZCBzdGF0ZQoJICBjaGFuZ2Ugb24gdGhlIGNoaWxkIGFuZCB2aWNlIHZlcnNhLgoJICBBZGQgc29tZSBtb3JlIHVuaXQgdGVzdHMgZm9yIHRoaXMgZml4LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxODMzCgoyMDEyLTA1LTE4IDIwOjExOjU1ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCAtYywgLS10b2MgbWVzc2FnZQoKMjAxMi0wNS0yMSAwMTo0ODoyOSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogQWRkIGJveGVkIHR5cGVzIGZvciBHc3RUb2MgYW5kIEdzdFRvY0VudHJ5CgoyMDEyLTA1LTIwIDE4OjIzOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IGZpeCB0eXBlIG9mIHBhZCBwYXJhbWV0ZXIgdG8gZ3N0X3RvY19lbnRyeV9uZXdfd2l0aF9wYWQoKQoKMjAxMi0wNS0yMCAxODoxNjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogdXNlIGNvcnJlY3QgR1R5cGUgZm9yIHRhZyBsaXN0cwoKMjAxMi0wNS0yMCAxODowNjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogYXZvaWQgdW5uZWNlc3NhcnkgR1ZhbHVlIGFjcm9iYXRpY3MKCjIwMTItMDUtMjAgMTc6NDg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogdXNlIGdsb2JhbCBxdWFyayB0YWJsZQoKMjAxMi0wNS0yMCAxNzoxMDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSAgdG9jOiBmaXggaW50ZXJuYWwgVE9DIHF1ZXJ5IGFuZCBldmVudCBzdHJ1Y3R1cmUgbmFtZXMKCSAgTWFrZSB0aGVtIGNvbnNpc3RlbnQgd2l0aCBhbGwgdGhlIG90aGVyIHF1ZXJ5IGFuZCBldmVudCBuYW1lcy4KCjIwMTItMDUtMTkgMTc6MjQ6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIHBsdWdpbmZlYXR1cmU6IG1ha2UgR3N0UGx1Z2luRmVhdHVyZSBzdHJ1Y3R1cmUgcHJpdmF0ZQoJICBNYWtlIEdzdFBsdWdpbkZlYXR1cmUgb3BhcXVlIHVudGlsIHdlIGhhdmUgdGltZSB0bwoJICBjbGVhbiBpdCB1cCBhIGxpdHRsZS4gT25seSBHc3RFbGVtZW50RmFjdG9yeSBhbmQKCSAgR3N0VHlwZWZpbmRGYWN0b3J5IGRlcml2ZSBmcm9tIGl0LCBhbmQgdGhleSBhcmUKCSAgb3BhcXVlIGFscmVhZHksIGFuZCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydAoJICBjdXN0b20gcGx1Z2luIGZlYXR1cmVzIGluIHRoZSByZWdpc3RyeSBhbnl3YXkuCgoyMDEyLTA1LTE5IDE3OjIzOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMsIHRlc3RzOiBkb24ndCBhY2Nlc3MgdGhlIEdzdFBsdWdpbkZlYXR1cmUgc3RydWN0dXJlIGRpcmVjdGx5CgoyMDEyLTA1LTE5IDE3OjE2OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW4oKQoJICBBZGQgZnVuY3Rpb24gdG8gcmV0cmlldmUgcGx1Z2luIHRoYXQgcHJvdmlkZXMgdGhpcyBmZWF0dXJlLgoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luKCkKCjIwMTItMDUtMTkgMTY6MjE6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgZ3N0c2Nhbm9iaiBjaGFuZ2VzCgoyMDEyLTA1LTE5IDE1OjUxOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBtYWtlIG9iamVjdCBzdHJ1Y3Qgb3BhcXVlIGZvciBub3cKCSAgTWFrZSBHc3RFbGVtZW50RmFjdG9yeSBvcGFxdWUgdW50aWwgd2UgaGF2ZSB0aW1lIHRvCgkgIGNsZWFuIGl0IHVwIGEgbGl0dGxlLiBJdCdzIG5vdCBzb21ldGhpbmcgYW55b25lCgkgIHdvdWxkIG5lZWQgdG8gZGVyaXZlIGZyb20uCgoyMDEyLTA1LTE5IDE0OjU5OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBkb24ndCB1c2UgcHJpdmF0ZSBHc3RFbGVtZW50RmFjdG9yeSBBUEkgaW4gZ3N0LWluc3BlY3QKCjIwMTItMDUtMTkgMTQ6NTI6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudGZhY3Rvcnk6IGFkZCBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YV9rZXlzKCkKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YV9rZXlzKCkKCjIwMTItMDUtMTggMDk6NTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogaW1wcm92ZSBFT1Mgb24gc2h1dGRvd24gaGFuZGxpbmcKCSAgV2hlbiB0aGUgLWUgb3B0aW9uIGlzIHNlbGVjdGVkLCBhbHNvIHdhaXQgZm9yIEVPUyB3aGVuIHRoZSBwaXBlbGluZSBwcm9kdWNlZCBhbgoJICBlcnJvci4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDk5NwoKMjAxMi0wNS0xNiAxODo1MzoxNSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBmaXggZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcoKSBkb2NzCgoyMDEyLTA1LTE2IDEzOjI0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdGhyb3R0bGUtdGltZSBpcyB1c2VkCgoyMDEyLTA1LTE2IDEyOjA4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgcHJlcGFyZSBtZXRob2QKCSAgQWRkIGEgcHJlcGFyZSBtZXRob2QgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHN5bmMgaGFwcGVucy4gVGhlIHB1cnBvc2Ugb2YgdGhpcwoJICBtZXRob2QgaXMgdG8gcHJlcGFyZSB0aGUgcmVuZGVyaW5nIG9mIHRoZSBnaXZpbmcgYnVmZmVyIHNvIHRoYXQgdGhlIGZvbGxvd2luZwoJICByZW5kZXIoKSBjYWxsIGFmdGVyIHN5bmMgaXMgYSBxdWljayBhcyBwb3NzaWJsZS4KCjIwMTItMDUtMTYgMDk6MTY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgcG90ZW50aWFsIGRlYWRsb2NrCgkgIEluIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpIHdlIGRvIGEgcGVyZm9ybV9zZWVrKCkgdGhhdCB3aWxsIGV2ZW50dWFsbHkKCSAgc3RhcnQgdGhlIHN0cmVhbWluZyB0aHJlYWQgd2hpY2ggYWNxdWlyZXMgdGhlIGxpdmUgbG9jayBhbmQgdGhlbiBnb2VzIHRvIHNsZWVwCgkgIGluIHRoZSBjYXNlIG9mIGFwcHNyYy4gUmlnaHQgYWZ0ZXIgd2UgcGVyZm9ybSBzZWVrIHdlIGFsc28gdHJ5IHRvIGFjcXVpcmUgdGhlCgkgIGxpdmUgbG9jayB3aGljaCBtaWdodCB0aGVuIGRlYWRsb2NrLgoJICBmaXggdGhpcyBieSB0YWtpbmcgdGhlIHN0cmVhbSBsb2NrIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzZWVrLiBUaGlzIG1ha2VzIHN1cmUKCSAgdGhhdCB0aGUgc3RyZWFtaW5nIHRocmVhZCBjYW5ub3Qgc3RhcnQgYW5kIGdyYWIgdGhlIGxpdmUgbG9jayB1bnRpbCB3ZSBhcmUgZG9uZQoJICBhbmQgcmVsZWFzZSB0aGUgc3RyZWFtIGxvY2sgYWdhaW4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYwNDgKCjIwMTItMDUtMTUgMTk6MTE6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSByZWZlcmVuY2VzIHRvIG1tYXAgaW4gY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCgoyMDEyLTA1LTE1IDE2OjM4OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IFJlbmFtZSBnc3RfdG9jX2VudHJ5X3R5cGVfdG9fc3RyaW5nKCkgdG8gZ3N0X3RvY19lbnRyeV90eXBlX2dldF9uaWNrKCkKCSAgSXQncyBtb3JlIGNvbnNpc3RlbnQuCgoyMDEyLTA1LTE1IDE0OjU5OjA3ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCBwcmludF90b2NfZW50cnkoKQoKMjAxMi0wNS0xNSAxNDo0ODozNSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IEFQSTogQWRkIGdzdF90b2NfZW50cnlfdHlwZV90b19zdHJpbmcoKQoKMjAxMi0wNS0xNCAwMzo1Nzo1MCArMDIwMCAgQWxiYW4gQnJvd2FleXMgPHByYWhhbEB5YWhvby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGlmIHNpbmsgcGFkIGlzIGFjdGl2YXRlZCBkbyBub3QgY2hhbmdlIG1vZGUKCSAgSW4gY29tbWl0IGJmMDk2NGI2IGEgY2hlY2sgZm9yIHBhZCBpcyBhY3RpdmF0ZWQgd2FzIG5vdCBjYXJyaWVkLgoJICBUaGlzIGxlYWRzIHRvIGF0dGVtcHQgdG8gcHVsbCB3aGlsZSBpbiBwdXNoIG1vZGUgd2hlbiBmb3JjZV9jYXBzCgkgIGlzIHNldC4gSW4gdGhpcyBjYXNlIHdpdGhvdXQgdGhlIGF0dGFjaGVkIGNoZWNrIGV2ZW4gd2hlbiBhY3RpdmF0ZWQKCSAgaW4gcHVsbCBtb2RlIHdlIGFjdGl2YXRlIGJhY2sgdG8gcHVzaCBtb2RlLgoJICBUaGlzIGlzIGZyb20gY29tbWVudCBpbiBwcmV2aW91cyBjb2RlICwgY2FzZSBudW1iZXIgZWlnaHQ6CgkgIDguIGlmIHRoZSBzaW5rIHBhZCBpcyBhY3RpdmF0ZWQsIHdlIGFyZSBpbiBwdWxsIG1vZGUuIHN1Y2NlZWQuCgkgIC0gICAgIG90aGVyd2lzZSBhY3RpdmF0ZSBib3RoIHBhZHMgaW4gcHVzaCBtb2RlIGFuZCBzdWNjZWVkLgoJICBQdXR0aW5nIGl0IGJhY2sgZml4ZXMgcGxheWJhY2sgb2Ygd2VibSBpbiB3ZWJraXQrZ3N0cmVhbWVyIDEuMCAuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYwMDMKCjIwMTItMDUtMTMgMTY6NTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkxID09PQoKMjAxMi0wNS0xMyAxNjowMjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBSZWxlYXNlIDAuMTEuOTEKCjIwMTItMDUtMTMgMTY6MDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA1LTEzIDE1OjU1OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGM3MDIwMyB0byAzNDI5YmE2CgoyMDEyLTA1LTA5IDE0OjIyOjIwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBPbmx5IGluY2x1ZGUgaW5pdC9kZWluaXQgb2YgYWxsb2MgdHJhY2luZyB3aGVuIGVuYWJsZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTgwNgoKMjAxMi0wNS0xMSAwOTowNzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggZG9jcwoJICBHU1RfRkxPV19XUk9OR19TVEFURSAtPiBHU1RfRkxPV19GTFVTSElORwoKMjAxMi0wNS0xMCAxMjoxNTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IGltcHJvdmUgYnVmZmVycG9vbCBkb2NzCgoyMDEyLTA1LTA4IDIwOjEyOjQyICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByaW50IHRhZ3MgaW4gdG9jCgoyMDEyLTA1LTA1IDIyOjE3OjQzICswMzAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICBnc3Q6IEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiBtaW5ndy13NjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTUyNQoKMjAxMi0wNS0wMiAxNDowMDo0MyArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciB0byBkZWZhdWx0X21lbV9tYXAoKQoJICBGaXhlcyBmdW5jdGlvbiBzaWduYXR1cmUgZm9yIGNvcnJlY3RuZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1Mjg5CgoyMDEyLTA1LTAyIDA4OjA4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxMi0wNS0wMSAyMjozNTozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICB0eXBlZmluZGZhY3Rvcnk6IG1ha2Ugb2JqZWN0IHN0cnVjdCBvcGFxdWUgZm9yIG5vdwoJICBNYWtlIG9wYXF1ZSB1bnRpbCB3ZSBoYXZlIHRpbWUgdG8gY2xlYW4gaXQgdXAgYSBsaXR0bGUuCgoyMDEyLTA1LTAxIDIyOjMwOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICB0eXBlZmluZGZhY3Rvcnk6IGZpeCByZXR1cm4gdHlwZSBvZiBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2V4dGVuc2lvbnMoKQoKMjAxMi0wNS0wMSAyMjoyODoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzLCBiYXNlOiBkb24ndCBwb2tlIGludG8gR3N0VHlwZUZpbmRGYWN0b3J5IHN0cnVjdCwgdXNlIHB1YmxpYyBBUEkKCjIwMTItMDUtMDEgMjI6MzM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRmYWN0b3J5OiBhZGQgZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2hhc19mdW5jdGlvbigpCgkgIEFkZCBBUEkgc28gcGVvcGxlIGRvbid0IGhhdmUgdG8gcG9rZSB0aGUgc3RydWN0IGZvciB0aGlzLgoKMjAxMi0wNS0wMSAxNTo1MjoxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXBkYXRlIGRvY3MgZm9yIGdzdF9jYXBzX2lzX2VxdWFsCgkgIE5VTEwgY2FwcyBhcmVuJ3QgdmFsaWQgY2FwcyBpbiAxLjAgYW5kIGFyZW4ndCBhY2NlcHRlZCBpbgoJICBnc3RfY2Fwc19pc19lcXVhbAoKMjAxMi0wNS0wMSAxOTo0NzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiByZXF1aXJlIFVSSSBwcm90b2NvbCBiaXQgdG8gYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzIHRvIGJlIHZhbGlkCgkgIFdlIHdhbnQgdG8gcmV0dXJuIEZBTFNFIHdoZW4gcnVuIG9uIGEgd2luZG93cy1zdHlsZSBmaWxlIHBhdGguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQyOTYKCjIwMTItMDQtMjYgMTc6MjY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtL2Jhc2VzcmM6IERvIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbiBpbnNpZGUgdGhlIGRlZmF1bHQgZGVjaWRlX2FsbG9jYXRpb24oKSBpbXBsZW1lbnRhdGlvbgoJICBUaGlzIGFsbG93cyBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIGl0LCBhcyBpcyBuZWNlc3NhcnkgZm9yIGUuZy4gdGhlCgkgIHZpZGVvLWNyb3AgbWV0YS4gSXQgaXMgbm93IG5lY2Vzc2FyeSB0aGF0IGFmdGVyIGRlY2lkZV9hbGxvY2F0aW9uKCkKCSAgdGhlcmUgaXMgYWx3YXlzIGEgYWxsb2NhdG9yIGFuZCBhIGNvbmZpZ3VyZWQgYnVmZmVyIHBvb2wgaW5zaWRlIHRoZQoJICBxdWVyeS4KCjIwMTItMDQtMjggMjE6Mzc6NTYgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNldCByZXN1bHQgb24gYWNjZXB0IGNhcHMgcXVlcnkgd2hlbiB0aGVyZSBpcyBubyBwZWVyCgoyMDEyLTA1LTAxIDEwOjUwOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiByZW1vdmUgX3RyeV90b19tZXJnZV91cCgpCgkgIEl0IGNhdXNlcyB0aGUgdGltZXN0YW1wIHRvIGdvIHdyb25nLCBzaG91bGQgbm90IGNhdXNlIG11Y2ggb2YgYSBwZXJmb3JtYW5jZQoJICBpbmNyZWFzZSBhbmQgaW4gdGhlIGNhc2VzIHdoZXJlIGl0IGlzIGZhc3RlciwgaXQgaXMgYnJva2VuIGluIDAuMTAgYXMgd2VsbC4KCSAgV2Ugc2hvdWxkIHRyeSB0byByZXZpZXcgdGhpcyB3aGVuIHJld3JpdGluZyB0aGUgYWRhcHRlciBmb3IgMC4xMSBtZW1vcnkKCSAgZmVhdHVyZXMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQ3OTEKCjIwMTItMDUtMDEgMDk6MjU6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IG1ha2UgaW50ZXJuYWxzIHByaXZhdGUKCSAgTWFrZSB0aGUgYWRhcHRlciBmaWVsZHMgcHJpdmF0ZS4KCjIwMTItMDQtMzAgMjA6Mjk6MjEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlYXJyYW5nZSBzeXMvc3RhdC5oIGluY2x1c2lvbiBwb2ludCBmb3IgTWluR1cKCSAgZ3N0cGx1Z2luLmggdXNlZCB0byBpbmNsdWRlIHRoaXMgZm9yIHVzLCBidXQgZG9lc24ndCBhbnkgbG9uZ2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MTcxCgoyMDEyLTA0LTMwIDA5OjU4OjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgZXZlbnQ6IGFkZCBuZXcgc2VlayBzbmFwIGZsYWdzCgkgIFRoZXkgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IHNuYXBwaW5nIGJlaGF2aW9yICh0byBwcmV2aW91cywgbmV4dCwgb3IKCSAgbmVhcmVzdCBsb2NhdGlvbiwgd2hlcmUgcmVsZXZhbnQpIHdoZW4gc2Vla2luZy4KCSAgVGhlIHNlZWtpbmcgaW1wbGVtZW50YXRpb24gKGVnLCBkZW11eGVyKSBtYXkgY3VycmVudGx5IGlnbm9yZSBzb21lCgkgIG9yIGFsbCBvZiB0aGVzZSBmbGFncy4KCjIwMTItMDQtMjkgMjA6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIHJlbW92ZWQgQVBJIGluIHBsdWdpbiBkb2NzCgoyMDEyLTA0LTI5IDIwOjA2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhdm9pZCBzb21lIHJlbG9jYXRpb25zCgoyMDEyLTA0LTI5IDE4OjM1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogcmVtb3ZlIGdzdF9wbHVnaW5fbmFtZV9maWx0ZXIKCSAgSXQncyBvbmx5IHVzZWQgaW50ZXJuYWxseSwgbW9zdCBvdGhlciB1c2VycyB3aWxsIGxpa2VseQoJICB3YW50IHRvIHVzZSBnc3RfcmVnaXN0cnlfZmluZF9wbHVnaW4oKSBkaXJlY3RseSBpbnN0ZWFkCgkgIChhbmQgaWYgbm90LCB0aGV5IGNhbiBlYXNpbHkgd2FsayB0aGUgbGlzdCBhbmQgZG9pbmcgdGhlCgkgIHN0cmNtcCB0aGVtc2VsdmVzKS4KCjIwMTItMDQtMjkgMTc6NDY6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwbHVnaW46IHVzZSBHc3RPYmplY3QgZmxhZ3MgZm9yIHBsdWdpbiBmbGFncwoKMjAxMi0wNC0yOSAxNzowMzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IG1ha2UgR3N0UGx1Z2luIG9iamVjdCBzdHJ1Y3R1cmUgb3BhcXVlIGZvciBub3cKCSAgVGhlcmUncyBubyByZWFzb24gYW55b25lIHdvdWxkIHdhbnQgdG8gZGVyaXZlIGZyb20gdGhpcywgc28KCSAganVzdCBtYWtlIG9wYXF1ZSB1bnRpbCB3ZSBtYW5hZ2UgdG8gbWFrZSBhbGwgdGhlIHByaXZhdGUgYml0cwoJICBwcml2YXRlIHByb3Blcmx5ICh3aGljaCBJJ20gbm90IGRvaW5nIHJpZ2h0IG5vdyBiZWNhdXNlIGl0J3MKCSAgbW9yZSBpbnZhc2l2ZSBhbmQgSSBoYXZlIHJlZ2lzdHJ5IG1vZGlmaWNhdGlvbnMgbG9jYWxseSB3aGljaAoJICB0b3VjaCBhbGwgdGhhdCBjb2RlIGFzIHdlbGwpLgoKMjAxMi0wNC0yOSAxNjo0OTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogdXNlIHB1YmxpYyBhY2Nlc3NvcnMgZm9yIHBsdWdpbiBkZXNjcmlwdGlvbiBkZXRhaWxzCgkgIE1vc3RseSBhbnl3YXkgKGZsYWdzIHN0aWxsIG5lZWQgc29ydGluZyBvdXQpLgoKMjAxMi0wNC0yOSAxNjo0Njo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogcmVtb3ZlIGdzdF9wbHVnaW5fZ2V0X21vZHVsZSgpCgkgIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIHJlYWxseSwgYW5kIGl0J3Mgbm90CgkgIGNsZWFyIHdoYXQgYW55b25lIHdvdWxkIGRvIHdpdGggdGhpcy4gSXQncyB1bnVzZWQgYXMKCSAgZmFyIGFzIEknbSBhd2FyZSwgc28ganVzdCByZW1vdmUgaXQgZm9yIG5vdy4KCjIwMTItMDQtMjkgMTY6MjA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IGFkZCBhY2Nlc3NvciBmb3IgcmVsZWFzZSBkYXRlIHRpbWUgc3RyaW5nIGluIHBsdWdpbiBkZXNjcmlwdGlvbgoJICBBUEk6IGdzdF9wbHVnaW5fZ2V0X3JlbGVhc2VfZGF0ZV9zdHJpbmcoKQoKMjAxMi0wNC0yOSAxNTo1MzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiB1c2UgcHVibGljIGFjY2Vzc29ycyB0byBnZXQgcGx1Z2luIGRlc2NyaXB0aW9uIGRldGFpbHMKCjIwMTItMDQtMjkgMTM6Mjg6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGdpdmUgdGhlIDIwdGggcXVldWUgZWxlbWVudCBhIGRpZmZlcmVudCBuYW1lIHRoYW4gdGhlIGZpcnN0IHF1ZXVlMiBvbmUKCSAgRml4ZXMgaXNzdWUgd2l0aCB0aGUgZGVmYXVsdCBuYW1pbmcgc2NoZW1lLgoKMjAxMi0wNC0xOCAxNzozNzoyNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBGaXggZm9ybWF0IHN0cmluZyBpbiBncmFtbWFyLnkKCSAgRml4ZXMgIzY3NDg0OQoKMjAxMi0wNC0yNSAyMDoxNDoxMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmdzOiBhZGQgY29tbWVudHMgZm9yIHNwYXJzZSBjb250cm9sIHNvdXJjZQoKMjAxMi0wNC0yNSAyMDoxMDoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBlbXVsYXRlIF9nZXRfZ192YWx1ZV9hcnJheSgpCgkgIEFkZCBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb24gdGhlIGJhc2VjbGFzcy4KCjIwMTItMDQtMjUgMDk6NDc6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBleHBhbmQgdGhlIGFwaSB0byBvZmZlciBmdW5jdGlvbnMgZm9yIHBsYWluIGFuZCBHVmFsdWUgYXJyYXlzCgkgIFJlbmFtZSB0aGUgX2dldF92YWx1ZV9hcnJheSgpIGZ1bmN0aW9ucyB0byBfZ2V0X2dfdmFsdWVfYXJyYXkoKSBhbmQgcmVpbnRyb2R1Y2UKCSAgdGhlIGZvcm1lciB0byBvcGVyYXRlIG9uIHBsYWluIHVuYm94ZWQgYyBkYXRhdHlwZXMgKGxpa2UgaW4gMC4xMCkuIFRoZSBfZ192YWx1ZQoJICB2YXJpYW50cyBhcmUgZm9yIGJpbmRpbmdzIHdoaWxlIHRoZSBfdmFsdWUgb25lcyBhcmUgbW9yZSBzdWl0ZWQgdG8gcHJvY2Vzc2luZwoJICBpbiBlbGVtZW50cy4KCjIwMTItMDQtMjUgMTg6MTE6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIGluc2FuaXR5LCBpbnNhbml0eS1nc3QgYW5kIGdzdC1lZGl0aW5nLXNlcnZpY2VzCgoyMDEyLTA0LTI1IDA5OjA2OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogUmVzZXQgdGhlIGJ1ZmZlciBiZWZvcmUgcmVsZWFzaW5nIGludG8gcG9vbAoJICBSZXNldCB0aGUgYnVmZmVyIG5vdCBhZnRlciB3ZSBhY3F1aXJlIGJ1dCBiZWZvcmUgd2UgcmVsZWFzZSBpbnRvIHRoZSBwb29sLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB0aGUgcG9vbCBvbmx5IGhhcyBidWZmZXJzIGluIGEgY2xlYW4gc3RhdGUgYW5kIHRoYXQgd2UgY2FuIHNldAoJICBleHRyYSBtZXRhZGF0YSBvbiBidWZmZXJzIGluIHRoZSBhY3F1aXJlIG1ldGhvZC4gdGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8KCSAgcmVtb3ZlIGFuIGFyZ3VtZW50IGZyb20gdGhlIG1ldGhvZC4KCjIwMTItMDQtMjMgMTU6MzI6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogTUFSS0VSIGlzIGZvciB0aGUgc3RhcnQgb2YgYSB0YWxrc3B1cnQKCjIwMTItMDQtMjQgMTY6MDE6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBsdWcgc29tZSBsZWFrcwoKMjAxMi0wNC0yMyAxNzowNDo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBkbyBub3QgdW5yZWYgZmx1c2hfc3RhcnQgdHdpY2UKCSAgQmFzZWQgb24gcGF0Y2ggYnkgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCjIwMTItMDQtMjMgMTY6NTc6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlZnJlc2ggc2tpcCBmb2xsb3dpbmcgbWVyZ2VfdXAgYXR0ZW1wdAoJICAuLi4gYXMgdGhlIGxhdHRlciBtaWdodCBub3cgYWRqdXN0IHNraXAgYXMgd2VsbC4KCjIwMTItMDQtMjMgMDk6MTg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtIGxpc3QKCSAgVGhpcyBjb21tYSBjb25mdXNlcyBzb21lIGNvbXBpbGVycy4KCjIwMTItMDQtMTggMTU6MzE6MjMgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBSZW1vdmUgdW5uZWVkZWQgdW5sb2NrCgoyMDEyLTA0LTE4IDA1OjEyOjU1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZml4IGhhcmRjb2RlZCAwLjEwIHZlcnNpb24gaW4gd2luMzIgcGx1Z2luc2Nhbm5lcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0Mjk0CgoyMDEyLTA0LTE3IDE1OjM3OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBhZGQgTE9DS0VEIGZsYWcKCSAgQWRkIGEgbmV3IExPQ0tFRCBmbGFnIHRvIHRoZSBtZXRhZGF0YS4gUmVmdXNlIHJlbW92aW5nIExPQ0tFRCBtZXRhZGF0YSBmcm9tCgkgIGEgYnVmZmVyLgoJICBNYXJrIHRoZSBtZXRhZGF0YSBmcm9tIHRoZSBidWZmZXJwb29sIExPQ0tFRC4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgTE9DS0VEIGZsYWcKCjIwMTItMDQtMTcgMTQ6Mzg6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzMi5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2ouZmlsdGVyczoKCSAgY29sbGVjdHBhZHMyOiByZW5hbWUgdG8gY29sbGVjdHBhZHMKCjIwMTItMDQtMTcgMTI6NTQ6NDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGVuc3VyZSB3cml0YWJsZSBoZWFkIGJ1ZmZlciBiZWZvcmUgc2tpcHBpbmcgcGFydCBvZiBpdAoKMjAxMi0wNC0xNyAxMjoyOTo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgoyMDEyLTA0LTE3IDEyOjIzOjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYWx3YXlzIHJlY29yZGluZyBpbmNvbWluZyBzZWdtZW50IGluZm8gaWYgbm8gYnVmZmVyX2Z1bmMgc2V0CgoyMDEyLTA0LTE3IDEwOjM4OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IHVwZGF0ZSB0aGUgZGVidWcgYW5kIHRyYWNlIGVudiB2YXIgZG9jcwoKMjAxMi0wNC0xNyAxMDozMzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogdXNlIGdfcGFyc2VfZGVidWdfc3RyaW5nIGluc3RlYWQgb2YgYXRvaQoJICBNYWtlIHRoZSBHU1RfVFJBQ0UgZW52IHZhcmlhYmxlIHRha2UgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzCgkgIGRlc2NyaWJpbmcgdGhlIG9wdGlvbnMgdG8gZW5hYmxlIGluc3RlYWQgb2YgYSBudW1iZXIuCgoyMDEyLTA0LTE2IDIxOjE0OjE3ICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IElmIHJ1bm5pbmcgd2l0aCAtLXByaW50LWFsbCwgZml4IHByaW50aW5nIG9mIHRoZSBDaGlsZHJlbjogbGluZQoKMjAxMi0wNC0xNiAyMToxNDowMiArMDAwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBJZiBydW5uaW5nIHdpdGggLS1wcmludC1hbGwsIGZpeCBwcmludGluZyBvZiBzaWduYWwgbmFtZXMKCjIwMTItMDQtMTYgMTY6MzY6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBjb2xsZWN0cGFkczIgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wNC0xNiAxNjoyOTozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgoyMDEyLTA0LTE2IDE2OjI0OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogcHJvdmlkZSBxdWVyeSBkZWZhdWx0IGFuZCBjYWxsYmFjayBoYW5kbGluZwoJICAuLi4gd2hpY2ggcHJlc2VudGx5IG1haW5seSBzZXJ2ZXMgdG8gYW5zd2VyIFNFRUtJTkcgcXVlcnkgbmVnYXRpdmVseQoJICB0byBkaXNzdWFkZSB1cHN0cmVhbSBlbmNvZGVycyBmcm9tIGRvaW5nIGFueSBzZWVraW5nIGFuZAoJICAiaGVhZGVyIGZpbmFsaXphdGlvbiIgKHNpbmNlIHRoZSByZXR1cm5lZCByZXN1bHQgb2YgcHVzaGluZyBhCgkgIHN0aWNreSBldmVudCBpcyBmYWlybHkgdXNlbGVzcyBub3dhZGF5cykuCgoyMDEyLTA0LTE2IDE2OjI0OjEwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogbW9kaWZ5IGV2ZW50IGhhbmRsaW5nIHVzaW5nIGEgZGVmYXVsdCBldmVudCBoYW5kbGVyCgkgIC4uLiB0aGF0IGVsZW1lbnRzIHNob3VsZCAiY2hhaW4gdXAiIHRvLgoKMjAxMi0wNC0xNiAxNTozNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBzZWdtZW50OiBhZGQgcnVkZSBzZXJpYWxpemF0aW9uCgkgIEFzcyBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIGZ1bmN0aW9ucyBmb3IgR3N0U2VnbWVudCBzbyB0aGF0IGdkcCBhbmQKCSAgZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcgc2hvdyB0aGUgc2VnbWVudCB2YWx1ZXMuIFdlIGNvbnZlcnQgdG8gYSBHc3RTZWdtZW50CgkgIGZpcnN0IHRvIG1ha2UgdGhpbmdzIGVhc2llci4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQxMDAKCjIwMTItMDItMDMgMTc6MDg6MzUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhc3N1bWUgMCBiYXNlZCBzZWdtZW50IGlmIG5vIHRpbWUgc2VnbWVudCB3YXMgcHJvdmlkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTMwNQoKMjAxMi0wNC0xNiAxMDoyODoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgc2l6ZSB0byBkZWJ1ZyBsb2cKCjIwMTItMDQtMTYgMTA6Mjc6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFNldCBzZXF1ZW5jZSBudW1iZXIgb24gc2VnbWVudCBldmVudHMKCjIwMTItMDQtMTYgMTA6MjI6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZvcndhcmQgYWxsIHN0aWNreSBldmVudHMgd2hlbiBzd2l0Y2hpbmcgcGFkcwoKMjAxMi0wNC0xNiAxMDowNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFN0b3JlIHBhZCBzdGF0ZSBkaXJlY3RseSBpbnNpZGUgdGhlIHBhZHMgaW5zdGVhZCBvZiBHT2JqZWN0IHFkYXRhCgoyMDEyLTA0LTE2IDA5OjQ1OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTZW5kIHJlY29uZmlndXJlIGV2ZW50IG9uIHRoZSBuZXcgYWN0aXZlIHBhZCB3aGVuIHBhZHMgYXJlIHN3aXRjaGVkCgoyMDEyLTA0LTE2IDA5OjA4OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmRiMjViZSB0byBkYzcwMjAzCgoyMDEyLTA0LTE0IDAzOjI3OjI5ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFJlbW92ZSBza2lwcGVkIHBhcnQgb2YgYnVmZmVyIHdoZW4gbWFwcGluZyB0aGUgYWRhcHRlcgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MDg1CgoyMDEyLTA0LTE0IDEwOjI0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgYW5vdGhlciBhZGFwdGVyIHRlc3QKCSAgVGVzdCBwZXJmb3JtYW5jZSBvZiBtZXJnaW5nCgoyMDEyLTA0LTE0IDEwOjIzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZGVidWcKCjIwMTItMDQtMTMgMTQ6MjI6MzQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCB1bmxvY2tzIHRoZSBxdWV1ZSB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MDQ0CgoyMDEyLTA0LTEzIDEzOjM2OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBNb2Rlcm5pemUgYXV0b3Rvb2xzIHNldHVwIGEgYml0CgkgIEFsc28gd2Ugbm93IG9ubHkgY3JlYXRlIHRhci5iejIgYW5kIHRhci54eiB0YXJiYWxscy4KCjIwMTItMDQtMTMgMTM6MzY6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjRmZTE1IHRvIDZkYjI1YmUKCjIwMTItMDQtMTMgMTE6NTg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcGx1ZyBjYXBzIGxlYWsKCjIwMTItMDQtMTMgMDg6MTA6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IG9ubHkgdGFrZSBhIHdlYWsgcmVmIG9uIHRoZSBvYmplY3QKCSAgRml4ZXMgdGhlIGxlYWtzIGluIHRoZSB0ZXN0cy4gQWRkZWQgYSBUT0RPIGNvbW1lbnQgdG8gZXZlbnR1YWxseSByZXdvcmsgdGhpcwoJICBzb21lIG1vcmUgKHdoaWxlIHdlIGNhbikuCgoyMDEyLTA0LTEyIDE4OjE1OjI3IC0wNDAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKCSogQW5kcm9pZC5tazoKCSAgU3luYyBBbmRyb2lkLm1rIGVudHJpZXMgdG8gdGhlIG5ldyBtYWpvciB2ZXJzaW9uCgkgIENoYW5nZSBuYW1pbmcgb24gdGhlIHBrZ2NvbmZpZyBmaWxlcyB0byByZWZsZWN0CgkgIHRoZSAwLjEwIC0+IDEuMCBidW1wLgoKMjAxMi0wNC0xMiAxNDo1OTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IENoYWluIHVwIHRvIHBhcmVudCBjbGFzcyBkaXNwb3NlL2ZpbmFsaXplCgkgIEF2b2lkcyBsZWFrcwoKMjAxMi0wNC0xMiAxNDo1OTozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBVc2UgZ3N0X29iamVjdF97cmVmfHVucmVmfSB3aGVyZSBhcHBsaWNhYmxlCgkgIEFsbG93cyB1cyB0byBkZWJ1ZyBvYmplY3QgbGlmZQoKMjAxMi0wNC0xMiAxNDo1ODo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGdzdDogVXNlIGdzdF9vYmplY3Rfe3JlZnx1bnJlZn0gd2hlcmUgYXBwbGljYWJsZQoJICBBbGxvd3MgdXMgdG8gZGVidWcgb2JqZWN0IGxpZmUKCjIwMTItMDQtMTIgMTE6NTM6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBhcmcgY2hlY2tpbmcKCSAgQWxsb3cgaWR4ID09IDAgYW5kIGxlbmd0aCA9PSAtMSBvbiBlbXB0eSBidWZmZXJzIGZvciB0aGUgX3JhbmdlIG1ldGhvZHMuCgoyMDEyLTA0LTEyIDExOjE4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MCA9PT0KCjIwMTItMDQtMTIgMDk6NTc6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45MAoKMjAxMi0wNC0xMiAwOTo1Njo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDQtMTEgMTM6MjA6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZXJnZSBlcnJvcgoKMjAxMi0wNC0xMSAxMjo1ODoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXIgdG8gTlVMTCBiZWZvcmUgcHVsbAoKMjAxMi0wNC0xMSAxMjo1NDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogcG9ydCBxdWV1ZTIgdGVzdHMgdG8gMC4xMQoKMjAxMi0wNC0xMSAxMjo1MDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R0b2MuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTExIDEyOjM0OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzaWduYWwgZGVsZXRlIGJlZm9yZSB3YWl0aW5nCgkgIFdoZW4gd2UgZG9uJ3QgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgaW4gdGhlIHJpbmdidWZmZXIgYW5kIHdlIG1vdmUgb3VyIHJlYWQKCSAgcG9pbnRlciB0byB0aGUgcmVxdWVzdGVkIHBvc2l0aW9uLCBzaWduYWwgdGhlIGRlbGV0ZSBjb25kIHRvIGluZm9ybSB0aGUgd3JpdGVyCgkgIHRoYXQgd2UgY2hhbmdlZCB0aGUgY3VycmVudCBmaWxsIGxldmVsLiBJZiB3ZSBkb24ndCwgdGhlIHdyaXRlciBtaWdodCBzdGF5CgkgIGJsb2NrZWQgYW5kIHdlIG1pZ2h0IHdhaXQgZm9yZXZlci4KCjIwMTItMDQtMTEgMTI6MTU6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdGVzdCBmb3IgcmluZ2J1ZmZlciBkZWFkbG9jawoKMjAxMi0wNC0xMSAxMjowMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXBkYXRlIGN1cnJlbnQgcmVhZCBwb3NpdGlvbiBiZWZvcmUgd2FpdGluZwoJICBXaGVuIHdlIGRvbid0IGhhdmUgZW5vdWdoIGJ5dGVzIGluIHRoZSByaW5nYnVmZmVyIHRvIHNhdGlzZnkgdGhlIGN1cnJlbnQKCSAgcmVxdWVzdCwgZmlyc3QgdXBkYXRlIHRoZSBjdXJyZW50IHJlYWQgcG9zaXRpb24gYmVmb3JlIHdhaXRpbmcuIElmIHdlIGRvbid0IGRvCgkgIHRoYXQsIHRoZSByaW5nYnVmZmVyIG1pZ2h0IGFwcGVhciBmdWxsIGFuZCB0aGUgd3JpdGVyIHdpbGwgbmV2ZXIgd3JpdGUgbW9yZQoJICBieXRlcyB0byB3YWtlIHVzIHVwLgoKMjAxMi0wNC0xMSAxMjowMDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHJhbmdlIG9ubHkgb24gc2lua3BhZAoJICBPbmx5IGFkZCB0aGUgcmFuZ2Ugd2hlbiB3ZSByZWNlaXZlIGEgc2VnbWVudCBldmVudCBvbiB0aGUgc2lua3BhZC4gVGhlIGFkZF9yYW5nZQoJICBtZXRob2Qgd2lsbCBtb2RpZnkgdGhlIHdyaXRlIHBvc2l0aW9uLCB3aGljaCBvbmx5IG1ha2VzIHNlbnNlIHRvIGRvIG9uIHRoZQoJICBzaW5rcGFkLgoKMjAxMi0wNC0xMSAxMTo1NTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGRlYnVnIG1lc3NhZ2UKCSAgV2UncmUgbm90IHdyaXRpbmcgdG8gdGhlIG9mZnNldCBvZiB0aGUgYnVmZmVyCgoyMDEyLTA0LTExIDExOjU1OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGRfcmFuZ2UgYWxyZWFkeSB1cGRhdGVzIHRoZSBsZXZlbAoKMjAxMi0wNC0xMCAxNDoxMToyNiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIHdoaWxlIGNvcHlpbmcgY29udGVudAoKMjAxMi0wNC0xMCAxNDoxODo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxNjo1MCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxODo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxNjo1MCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxMToyNiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIHdoaWxlIGNvcHlpbmcgY29udGVudAoKMjAxMi0wNC0xMCAxOTozOTo1OCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IENsZWFuIHVwIGhlYWRlciBmaWxlcwoKMjAxMi0wNC0xMCAxNjowNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0xMCAxNjowNDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYXIgc2Vla2luZyBmbGFnIGluIGFsbCBjYXNlcwoJICBBbHNvIGNsZWFyIHRoZSBzZWVraW5nIGZsYWcgd2hlbiBkb3duc3RyZWFtIGlzIGluIHB1bGwgbW9kZS4KCjIwMTItMDQtMTAgMTI6NTU6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0LmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNC0xMCAxMjo0OTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgdG9jIGVudHJ5IHJlZi91bnJlZgoKMjAxMi0wNC0xMCAxMjowOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IHNlZWtpbmcgZmxhZyB3aXRoIHRoZSBxdWV1ZSBsb2NrCgoyMDEyLTA0LTEwIDExOjIwOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBLZWVwIHRyYWNrIG9mIHRoZSBzZWVraW5nIHN0YXRlCgkgIFNldCB0aGUgc2Vla2luZyBmbGFnIHJpZ2h0IGJlZm9yZSB3ZSBzZW5kIGEgc2VlayBldmVudCB1cHN0cmVhbSBhbmQgZGlzY2FyZCBhbGwKCSAgZGF0YSB1bnRpbGwgd2Ugc2VlIGEgZmx1c2gtc3RvcCBhZ2Fpbi4gV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2Ugd2UgYWN0aXZhdGUKCSAgdGhlIHJhbmdlIHRoYXQgd2Ugc2VlayB0byBpbW1lZGlhdGVseSBhZnRlciBzZW5kaW5nIHRoZSBzZWVrIGV2ZW50IGFuZCBpdCBpcwoJICBwb3NzaWJsZSB0aGF0IHdlIHJlY2VpdmUgZGF0YSBpbiBvdXIgY2hhaW4gZnVuY3Rpb24gZnJvbSBiZWZvcmUgdGhlIHNlZWsKCSAgd2hpY2ggd291bGQgdGhlbiBiZSBhZGRlZCB0byB0aGUgd3JvbmcgcmFuZ2UgcmVzdWx0aW5nIGluIGRhdGEgY29ycnVwdGlvbi4KCjIwMTItMDQtMTAgMTE6MTY6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG1ha2UgcmFuZ2Ugb24gbmV3c2VnbWVudCBmb3IgcmluZ2J1ZmZlcgoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyLCBoYW5kbGUgdGhlIG5ld3NlZ21lbnQgZXZlbnQgbGlrZSB3ZSBoYW5kbGUgaXQgd2hlbgoJICB1c2luZyB0aGUgdGVtcC1maWxlIG1vZGU6IGNyZWF0ZSBhIG5ldyByYW5nZSBmb3IgdGhlIG5ldyBieXRlIHNlZ21lbnQuIFRoZSBuZXcKCSAgc2VnbWVudCBzaG91bGQgbm9ybWFsbHkgYWxyZWFkeSBiZSBjcmVhdGVkIHdoZW4gd2UgZG8gYSBzZWVrLgoKMjAxMi0wNC0wOSAxNjo0MjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMDkgMTY6NDA6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHVzZSBidWZmZXIgYWZ0ZXIgcHVzaGluZyBpdCBkb3duc3RyZWFtCgoyMDEyLTA0LTA5IDE2OjA0OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0wOSAxNTo1ODoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGYWlsIGlmIGEgcGFkIGZvciBhIG5vbi1yZXF1ZXN0IHRlbXBsYXRlIGlzIHJlcXVlc3RlZAoKMjAxMi0wNC0wOSAxMzo0MDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGVsZW1lbnQ6IHVzZSBxdWFya3Mgd2hlbiBzdG9yaW5nIHN0YW5kYXJkIG1ldGFkYXRhIGluIHN0cnVjdHVyZXMKCjIwMTItMDQtMDkgMTM6MDU6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHBsdWdpbnM6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgoyMDEyLTA0LTA5IDEyOjQ3OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3Nfe3NldCxhZGR9X3N0YXRpY19tZXRhZGF0YSgpCgkgIEFkZCBnc3RfZWxlbWVudF9jbGFzc197YWRkLHNldH1fbWV0YWRhdGEoKSB2YXJpYW50cyBmb3Igc3RhdGljIHN0cmluZ3MsCgkgIHNvIHdlIGNhbiBhdm9pZCB1bm5lY2Vzc2FyeSBnX3N0cmR1cCgpcy4KCSAgQVBJOiBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX21ldGFkYXRhKCkKCSAgQVBJOiBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCjIwMTItMDQtMDggMjE6MTc6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRhc2s6IHJlbW92ZSBnc3RfdGFza19zZXRfcHJpb3JpdHkoKQoJICBJdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nLgoKMjAxMi0wMS0xNCAwMDozMTozMiAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHdpbjMyL3ZzMTAvQ29tbW9uLnByb3BzOgoJKiB3aW4zMi92czEwL0xpYnJhcnkucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUGx1Z2luLnByb3BzOgoJKiB3aW4zMi92czEwL1JlYWRNZS50eHQ6CgkqIHdpbjMyL3ZzMTAvVG9vbC5wcm9wczoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qLmZpbHRlcnM6CgkgIHdpbjMyOiBhZGQgVlMgMTAgUHJvamVjdCBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MjE5CgoyMDEyLTA0LTA4IDE4OjI1OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgZm9yIHZlcnNpb24gY2hhbmdlcwoKMjAxMi0wNC0wNyAxNjozNToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMDcgMTY6MDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IFRPQyBBUEkgdG8gbGliZ3N0cmVhbWVyLmRlZgoJICBGaXhlcyAnbWFrZSBjaGVjaycuCgoyMDEyLTA0LTA3IDE2OjA1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogYWRkIG5ldyB0b2MgdGVzdCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDEyLTA0LTA3IDE2OjA0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJICBnc3Q6IGRvbid0IGV4cG9ydCBwcml2YXRlIFRPQyBmdW5jdGlvbnMKCjIwMTItMDQtMDcgMTU6NDI6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGF0b21pY3F1ZXVlLmMKCjIwMTItMDItMjQgMTU6MjQ6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCByYWNlCgkgIEFmdGVyIGEgd3JpdGVyIGhhcyB3cml0dGVuIHRvIGl0cyByZXNlcnZlZCB3cml0ZSBsb2NhdGlvbiwgaXQgY2FuIG9ubHkgbWFrZSB0aGUKCSAgbG9jYXRpb24gYXZhaWxhYmxlIGZvciByZWFkaW5nIGlmIGFsbCBvZiB0aGUgd3JpdGVycyB3aXRoIGxvd2VyIGxvY2F0aW9ucyBoYXZlCgkgIGZpbmlzaGVkLgoKMjAxMi0wMi0yNCAxMjo1MToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHN1YnRsZSByYWNlCgkgIEZpeCBhIHJhY2Ugd2hlcmUgdGhlIHJlYWRlciB3b3VsZCBzZWUgdGhlIHVwZGF0ZWQgdGhlIHRhaWwgcG9pbnRlciBiZWZvcmUgdGhlCgkgIHdyaXRlIGNvdWxkIHdyaXRlIHRoZSBkYXRhIGludG8gdGhlIHF1ZXVlLiBGaXggdGhpcyBieSBoYXZpbmcgYSBzZXBhcmF0ZSByZWFkZXIKCSAgdGFpbCBwb2ludGVyIHRoYXQgaXMgb25seSBpbmNyZW1lbnRlZCBhZnRlciB0aGUgd3JpdGVyIHdyb3RlIHRoZSBkYXRhLgoKMjAxMi0wNC0wNyAxNToyMDowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogc2V0IGRlZmF1bHQgYmxvY2sgc2l6ZSBmcm9tIGxvY2FsIGRlZmluZQoJICBEb2Vzbid0IGFjdHVhbGx5IGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSwganVzdCBtYWtlcyB1c2Ugb2YgdGhlCgkgIGRlZmluZSB0aGVyZSBpcy4gU3VwZXJmaWNpYWwgdGVzdGluZyB3aXRoIGZha2VzaW5rIGFuZCBqcGVnZGVjIGRpZAoJICBub3QgcmV2ZWFsIGltcHJvdmVkIHBlcmZvcm1hbmNlIGZvciBiaWdnZXIgYmxvY2sgc2l6ZXMsIHNvIGxlYXZlCgkgIGRlZmF1bHQgYXMgaXQgaXMuCgoyMDEyLTA0LTA2IDE2OjQ2OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB1cGRhdGUgdGhlIGN1cnJlbnQgcmVhZGluZ19wb3MgaW4gZmx1c2gKCSAgQSBmbHVzaCBmcm9tIHRoZSB1cHN0cmVhbSBlbGVtZW50IHNob3VsZCBub3QgbWFrZSBidWZmZXJpbmcgZ28gdG8gMCwgdGhlIG5leHQKCSAgcHVsbCByZXF1ZXN0IG1pZ2h0IGJlIGluc2lkZSBhIHJhbmdlIHRoYXQgd2UgaGF2ZSBhbmQgdGhlbiB3ZSBkb24ndCBuZWVkIHRvCgkgIGJ1ZmZlciBhdCBhbGwuIElmIHRoZSBuZXh0IHB1bGwgaXMgb3V0c2lkZSBhbnl0aGluZyB3ZSBoYXZlLCBidWZmZXJpbmcgd2lsbAoJICBoYXBwZW4gYXMgdXN1YWwgYW55d2F5LgoKMjAxMi0wNC0wNiAxMjo0MjozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGZvciBtZXJnZWQgY2hhbmdlcwoKMjAxMi0wNC0wNiAxMjozNzo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCjIwMTItMDQtMDYgMTI6MzI6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNoZWNrIHRoZSBwYWQgbW9kZSBvbiB0aGUgcmlnaHQgcGFkCgoyMDEyLTA0LTA2IDEyOjI0OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmb3J3YXJkIGZsdXNoIGV2ZW50cyBjb3JyZWN0bHkKCSAgV2Ugd2FudCB0byBmb3J3YXJkIHRoZSBmbHVzaCBldmVudHMgcmVjZWl2ZWQgb24gdGhlIHNpbmtwYWQgd2hlbmV2ZXIgdGhlIHNyY3BhZAoJICBpcyBhY3RpdmF0ZWQgaW4gcHVzaG1vZGUsIHdoaWNoIGNhbiBhbHNvIGhhcHBlbiB3aGVuIHVzaW5nIHRoZSBSSU5HQlVGRkVSIG9yCgkgIERPV05MT0FEIG1vZGUgYW5kIGRvd25zdHJlYW0gZmFpbGVkIHRvIGFjdGl2YXRlIHVzIGluIHB1bGwgbW9kZS4KCjIwMTItMDQtMDUgMjE6NTY6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IGNoYWluIHVwIG9uIGRpc3Bvc2UgYW5kIGZpbmFsaXplCgoyMDEyLTA0LTA1IDIxOjU1OjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IHVucGFyZW50IHRoZSBjb250cm9sYmluZGluZyBvbiBkaXNwb3NlCgoyMDEyLTA0LTA1IDIxOjA3OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBkdXAgdGhlIG9iamVjdHMgdG8gYXZvaWQgcHJlbWF0dXJlIGZyZWVzCgoyMDEyLTA0LTA1IDIxOjA2OjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgZmluYWxpemVyIGZvciB0aGUgdGVzdCBjb250cm9sYmluZGluZ3MKCSAgTm8gaWRlYSB3aHkgdmFsZ3JpbmQgc3RpbGwgaW5pc3RzIHRoYXQgdGhlcmUgYXJlIGxlYWtzLgoKMjAxMi0wNC0wNSAxODo0MjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdmZGE1MjQgdG8gNDY0ZmUxNQoKMjAxMi0wNC0wNSAxNDoxNzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZ3N0OiBDaGFuZ2UgbmFtZSBwYXJhbWV0ZXIgb2YgR1NUX1BMVUdJTl9ERUZJTkUoKSB0byBub3QgdGFrZSBhIHN0cmluZyBhbnltb3JlCgkgIFRoaXMgd2lsbCBiZSBuZWVkZWQgd2hlbiB3ZSBsYXRlciBhZGQgc3VwcG9ydCBmb3Igc3RhdGljIGxpbmtpbmcKCSAgb2YgcGx1Z2lucyB3aXRob3V0IGludHJvZHVjaW5nIG5ldyBBUEkgb3IgY2hhbmdpbmcgZXhpc3RpbmcgQVBJLgoKMjAxMi0wNC0wNSAxMzoyMzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGdzdHBsdWdpbjogQWRkIGhhY2sgZm9yIGhhbmRsaW5nIDAuMTEuOVggYW5kIDAuMTEuODkuWCB3aXRoIFg+MCB0aGUgc2FtZSBhcyAxLjAuMAoJICBBbHNvIHVwZGF0ZSB0aGUgdmVyc2lvbiBudW1iZXIgdG8gMC4xMS44OS4xCgoyMDEyLTA0LTA1IDEyOjIyOjExICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiBjbGVhciBtdXRleCB1cG9uIGZyZWUKCjIwMTItMDQtMDUgMTA6NTY6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIHJlZ2lzdHJ5OiBTZXQgcmVnaXN0cnkgdmVyc2lvbiB0byAxLjAuMCB0b28KCjIwMTItMDQtMDUgMTA6MzY6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNC0wNSAxMDowMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3RvcCB3YWl0aW5nIGZvciBtb3JlIGRhdGEgYWZ0ZXIgRU9TCgkgIFdoZW4gd2UgaGF2ZSBFT1MsIHJlYWQgdGhlIHJlbWFpbmluZyBieXRlcyBpbiB0aGUgYnVmZmVyIGFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QKCSAgd2FpdCBmb3IgbW9yZSBkYXRhLiBBbHNvIGNsaXAgdGhlIG91dHB1dCBidWZmZXIgdG8gdGhlIGFtb3VudCBvZiByZW1haW5pbmcKCSAgYnl0ZXMuCgoyMDEyLTA0LTA1IDA5OjU2OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjaGVjayBmb3IgZmlsbGVkIGJ1ZmZlciBjb3JyZWN0bHkKCSAgV2hlbiB1c2luZyB0aGUgcmluZ2J1ZmZlciBtb2RlLCB0aGUgYnVmZmVyIGlzIGZpbGxlZCB3aGVuIHdlIHJlYWNoZWQgdGhlCgkgIG1heF9sZXZlbC5ieXRlcyBtYXJrIG9yIHRoZSB0b3RhbCBzaXplIG9mIHRoZSByaW5nYnVmZmVyLCB3aGljaGV2ZXIgaXMgc21hbGxlci4KCjIwMTItMDQtMDQgMTM6MDc6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIHdhaXRpbmcgZm9yIGEgZmlsbGVkIGJ1ZmZlcgoJICBVc2UgYSB0aHJlc2hvbGQgdmFyaWFibGUgdG8gaG9sZCB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjdXJyZW50IHBvc2l0aW9uCgkgIGZvciB3aXRoIHdlIHdpbGwgd2FpdCBpbnN0ZWFkIG9mIGRvaW5nIGEgc2Vlay4KCSAgV2hlbiB1c2luZyB0aGUgcmluZ2J1ZmZlciBhbmQgdGhlIHJlcXVlc3RlZCBvZmZzZXQgaXMgbm90IGF2YWlsYWJsZSwgYXZvaWQKCSAgd2FpdGluZyB1bnRpbCB0aGUgY29tcGxldGUgcmluZ2J1ZmZlciBpcyBmaWxsZWQgYnV0IGluc3RlYWQgZG8gYSBzZWVrIHdoZW4gdGhlCgkgIHJlcXVlc3RlZCBkYXRhIGlzIGZ1cnRoZXIgdGhhbiB0aGUgdGhyZXNob2xkLgoJICBBdm9pZCBkb2luZyB0aGUgc2VlayB0d2ljZSBpbiB0aGUgcmluZ2J1ZmZlciBjYXNlLgoJICBVc2UgdGhlIHNhbWUgdGhyZXNob2xkIGZvciByaW5nYnVmZmVyIGFuZCBkb3dubG9hZCBidWZmZXJpbmcuCgoyMDEyLTA0LTA1IDA5OjA3OjE4ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBmaXggY29tcGlsZSB3YXJuaW5nCgoyMDEyLTA0LTA0IDEzOjEzOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGdzdDogQ2hhbmdlIHZlcnNpb25pbmcKCSAgUmVtb3ZlIEdTVF9NQUpPUk1JTk9SIGFuZCByZXBsYWNlIGl0IGJ5IEdTVF9BUElfVkVSU0lPTgoJICBBbHNvIHNldCBHU1RfVkVSU0lPTl97TUFKT1IsTUlOT1IsTUlDUk8sTkFOT30gZXhwbGljaXRlbHkKCSAgbm93LgoJICBBbGwgdmVyc2lvbnMgYXJlIGF0IDEuMC4wIG5vdyBmb3IgdGhlIHJlbGVhc2Ugc29vbiBidXQKCSAgQVBJL0FCSSBjYW4gc3RpbGwgY2hhbmdlIHVudGlsIHRoZSAxLjAuMCByZWxlYXNlLgoJICBOZXh0IHJlbGVhc2UgdmVyc2lvbnMgdW50aWwgMS4wLjAgd2lsbCBiZSAwLjEwLjlYIGFuZAoJICB0aGVzZSB3aWxsIGJlIHJlbGVhc2UgY2FuZGlkYXRlcy4gR1NUX1ZFUlNJT05fKiB3aWxsCgkgIG5vbmV0aGVsZXNzIHN0YXkgYXQgMS4wLjAuMC4KCjIwMTItMDQtMDQgMTI6MjU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvTWFrZWZpbGUuYW0KCSAgZ3N0L2dzdC5jCgkgIGdzdC9nc3QuaAoJICBnc3QvZ3N0ZXZlbnQuYwoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0bWVzc2FnZS5jCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdHF1YXJrLmMKCSAgZ3N0L2dzdHF1YXJrLmgKCSAgZ3N0L2dzdHF1ZXJ5LmMKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgZ3N0L2dzdHRvYy5jCgkgIGdzdC9nc3R0b2MuaAoJICBnc3QvZ3N0dG9jc2V0dGVyLmMKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0KCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYwoKMjAxMi0wNC0wMyAxNjo1MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIF9zZXRfc2l6ZSgpCgoyMDEyLTA0LTAzIDE2OjQ0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1ha2UgZ2V0X3NpemVzIGFuZCBfcmVzaXplIHdpdGggcmFuZ2VzCgkgIE1ha2UgdGhlIF9nZXRfc2l6ZXMgYW5kIF9yZXNpemUgbWV0aG9kcyB3b3JrIG9uIGEgcmFuZ2Ugb2YgbWVtb3J5IHRvIG1ha2UgdGhlbQoJICBtb3JlIHBvd2VyZnVsbC4KCjIwMTItMDQtMDMgMTg6MjU6NDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogYWxsb3cgc29tZSBtb3JlIGV2ZW50cyBiZWZvcmUgYSBzZWdtZW50IGV2ZW50CgoyMDEyLTA0LTAzIDE1OjQ2OjI5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IHVzZSBuZXcgZ2xpYiBtdXRleCBhcGkKCjIwMTItMDQtMDIgMjM6MTc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0LWxhdW5jaC5jOiBJbiBmdW5jdGlvbiDigJhwcmludF90b2NfZW50cnnigJk6CgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHRoZSBzaXplIG9mIGFycmF5IOKAmHNwY+KAmSBjYW7igJl0IGJlIGV2YWx1YXRlZCBbLVdlcnJvcj12bGFdCgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHZhcmlhYmxlLXNpemVkIG9iamVjdCBtYXkgbm90IGJlIGluaXRpYWxpemVkCgoyMDEyLTA0LTAyIDIzOjI5OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogYWRkIG5ldyB1bml0IHRlc3QgYmluYXJpZXMgdG8gLmdpdGlnbm9yZQoKMjAxMi0wNC0wMiAyMzoyODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmIG5ldyBlbnRyeSBlbnVtIHR5cGVzCgkgIEZpeGVzICdtYWtlIGNoZWNrJywgYWdhaW4uCgoyMDEyLTA0LTAyIDIzOjI0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgkgIEZpeGVzICdtYWtlIGNoZWNrJy4KCjIwMTItMDQtMDIgMjM6MjM6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGRvbid0IGV4cG9ydCBwcml2YXRlIGZ1bmN0aW9ucwoKMjAxMi0wNC0wMiAyMzoxNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBnc3QtbGF1bmNoLmM6IEluIGZ1bmN0aW9uIOKAmHByaW50X3RvY19lbnRyeeKAmToKCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdGhlIHNpemUgb2YgYXJyYXkg4oCYc3Bj4oCZIGNhbuKAmXQgYmUgZXZhbHVhdGVkIFstV2Vycm9yPXZsYV0KCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdmFyaWFibGUtc2l6ZWQgb2JqZWN0IG1heSBub3QgYmUgaW5pdGlhbGl6ZWQKCjIwMTItMDQtMDIgMjM6MTY6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTItMDQtMDIgMjM6MDE6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJwoKMjAxMi0wNC0wMiAyMjowOTowNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2M6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMy0yMiAwODozNjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1jLCAtLXRvYyB0byBwcmludCB0aGUgdG9jCgkgIFByaW50IHRoZSBuZXN0ZWQgY2hhcHRlciBhbmQgZWRpdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIGNoYXB0ZXJzIG1lc3NhZ2UuCgoyMDEyLTAzLTI4IDIzOjE1OjQxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogYWRkIG92ZXJ2aWV3IG9mIEdzdFRvYyB1c2FnZQoKMjAxMi0wMy0xNCAyMToxNDoyMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3RUb2MgYW5kIEdzdFRvY1NldHRlciBzZWN0aW9ucyB3aXRoIHJlbGF0ZWQgZnVuY3Rpb25zCgoyMDEyLTAzLTE0IDIxOjEzOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jU2V0dGVyCgoyMDEyLTAzLTE0IDIxOjEyOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jCgoyMDEyLTAzLTE0IDIwOjQ1OjM1ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICBBZGQgbmV3IEdzdFRvY1NldHRlciBpbnRlcmZhY2UKCjIwMTItMDMtMTQgMjA6NDI6NTYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBuZXcgVE9DIHF1ZXJ5CgoyMDEyLTAzLTE0IDIwOjQxOjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIG5ldyBUT0MgbWVzc2FnZQoKMjAxMi0wMy0xNCAyMDo0MDozMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgbmV3IFRPQyBhbmQgVE9DIHNlbGVjdCBldmVudHMKCjIwMTItMDMtMTQgMjA6MDE6NTEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIEFkZCBnZW5lcmljIHRhYmxlIG9mIGNvbnRlbnRzIChUT0MpIHN1cHBvcnQKCjIwMTItMDQtMDIgMjE6MTU6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvTWFrZWZpbGUuYW0KCSAgZ3N0L2dzdC5jCgkgIGdzdC9nc3QuaAoJICBnc3QvZ3N0ZXZlbnQuYwoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0bWVzc2FnZS5oCgkgIGdzdC9nc3RxdWFyay5jCgkgIGdzdC9nc3RxdWFyay5oCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RxdWVyeS5oCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtCgoyMDEyLTA0LTAyIDE1OjMwOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTItMDQtMDIgMTU6MTM6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHdheXMgYXR0ZW1wdCB0byBwdXNoIGlmIG5vdC1saW5rZWQKCSAgVGhpcyBhdm9pZHMgZW5kaW5nIHVwIHdpdGggcGxlbnR5IG9mIHBlbmRpbmcgZGF0YSAoc2luY2Ugd2UnbGwgb25seQoJICB0cnkgdG8gcGFyc2UvcHVzaCBvbmUgZnJhbWUgZnJvbSB0aGUgaW5jb21pbmcgYnVmZmVyKS4KCSAgRml4ZXMgaW5jcmVhc2luZyBtZW1vcnkgY29uc3VtcHRpb24gd2hlbiBwYXJzZXJzIGFyZW4ndCBsaW5rZWQKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDEyLTA0LTAyIDE1OjEzOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWx3YXlzIGF0dGVtcHQgdG8gcHVzaCBpZiBub3QtbGlua2VkCgkgIFRoaXMgYXZvaWRzIGVuZGluZyB1cCB3aXRoIHBsZW50eSBvZiBwZW5kaW5nIGRhdGEgKHNpbmNlIHdlJ2xsIG9ubHkKCSAgdHJ5IHRvIHBhcnNlL3B1c2ggb25lIGZyYW1lIGZyb20gdGhlIGluY29taW5nIGJ1ZmZlcikuCgkgIEZpeGVzIGluY3JlYXNpbmcgbWVtb3J5IGNvbnN1bXB0aW9uIHdoZW4gcGFyc2VycyBhcmVuJ3QgbGlua2VkCgoyMDEyLTA0LTAxIDAzOjMwOjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgVGltZW91dCBpcyBub3QgdXNlZCBvbiBXMzIKCSAgRml4ZXMgIzY3MzI2NwoKMjAxMi0wNC0wMiAxMTowOTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgdHJhbnM6IGFkZCB0cmFuc2Zvcm1faXBfb25fcGFzc3Rocm91Z2gKCSAgQWRkIGFuIG9wdGlvbiB0byBjb250cm9sIGlmIHRyYW5zZm9ybV9pcCBpcyBjYWxsZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBvciBub3QuCgkgIGZvciBlbGVtZW50cyB0aGF0IGRvbid0IHdhbnQgdG8gbG9vayBhdCB0aGUgZGF0YSBpbiBwYXNzdGhyb3VnaCBtb2RlLCB0aGlzIGNhbgoJICBhdm9pZCBzb21lIGV4dHJhIHByb2Nlc3NpbmcsIG1vc3RseSBpbiBzdWJjbGFzc2VzLgoKMjAxMi0wMy0yMiAwODozNjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1jLCAtLXRvYyB0byBwcmludCB0aGUgdG9jCgkgIFByaW50IHRoZSBuZXN0ZWQgY2hhcHRlciBhbmQgZWRpdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIGNoYXB0ZXJzIG1lc3NhZ2UuCgoyMDEyLTAzLTI4IDIzOjE1OjQxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogYWRkIG92ZXJ2aWV3IG9mIEdzdFRvYyB1c2FnZQoKMjAxMi0wMy0xNCAyMToxNDoyMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3RUb2MgYW5kIEdzdFRvY1NldHRlciBzZWN0aW9ucyB3aXRoIHJlbGF0ZWQgZnVuY3Rpb25zCgoyMDEyLTAzLTE0IDIxOjEzOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jU2V0dGVyCgoyMDEyLTAzLTE0IDIxOjEyOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jCgoyMDEyLTAzLTE0IDIwOjQ1OjM1ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICBBZGQgbmV3IEdzdFRvY1NldHRlciBpbnRlcmZhY2UKCjIwMTItMDMtMTQgMjA6NDI6NTYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBuZXcgVE9DIHF1ZXJ5CgoyMDEyLTAzLTE0IDIwOjQxOjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIG5ldyBUT0MgbWVzc2FnZQoKMjAxMi0wMy0xNCAyMDo0MDozMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgbmV3IFRPQyBhbmQgVE9DIHNlbGVjdCBldmVudHMKCjIwMTItMDMtMTQgMjA6MDE6NTEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIEFkZCBnZW5lcmljIHRhYmxlIG9mIGNvbnRlbnRzIChUT0MpIHN1cHBvcnQKCjIwMTItMDQtMDEgMTI6MDE6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmV1c2UgbW9yZSBjb2RlCgoyMDEyLTA0LTAxIDExOjQyOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbWFrZSBmdW5jdGlvbiB0byBmaW5kIG1lbW9yeSBpbiBhIGJ1ZmZlcgoJICBNYWtlIGEgZnVuY3Rpb24gdG8gZmluZCB0aGUgbWVtb3J5IGJsb2NrcyBmb3IgYSByZWdpb24gaW4gYSBidWZmZXIuCgoyMDEyLTAzLTMxIDIxOjI2OjIyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IG1vcmUgbWlzc2luZyBHU1RfT0JKRUNUIC0+IEdfT0JKRUNUIHVzZQoKMjAxMi0wMy0zMSAxODozNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1c2UgYnVmZmVyX3dyYXAKCjIwMTItMDMtMzEgMTc6MTA6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIHBlZWtfbWVtb3J5IG1ldGhvZAoJICBBZGQgYSBwZWVya19tZW1vcnkgbWV0aG9kIHRoYXQgc2ltcGx5IGZldGNoZXMgdGhlIG1lbW9yeSBhdCBhbiBvZmZzZXQgd2l0aG91dAoJICByZWZjb3VudGluZyBvciBtZXJnaW5nLgoKMjAxMi0wMy0zMSAxMjowMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdyYW1tYXIueTogZml4IGNoaWxkcHJveHkgY29kZQoJICBJdCB0YWtlcyBHT2JqZWN0IGFuZCBub3QgR3N0T2JqZWN0IG5vdwoKMjAxMi0wMy0zMCAyMjo0NjowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogaW5jbHVkZSB0aGUgY2hpbGQgbmFtZSBpbiB0aGUgc2lnbmFsCgoyMDEyLTAzLTMwIDIyOjQ0OjMxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiB1cGRhdGUgZm9yIGNoaWxkcHJveHkgYXBpIGNoYW5nZXMKCjIwMTItMDMtMzAgMjI6MzY6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggc2lnbmFsIHBhcmFtZXRlciB0eXBlcwoKMjAxMi0wMy0zMCAyMjoxNzowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogdXNlIEdPYmplY3QgaW5zdGVhZCBvZiBHc3RPYmplY3QKCSAgVGhpcyBtYWtlcyBpdCBwcm9zc2libGUgdG8gYmUgdXNlZCBtb3JlIHdpZGVseS4gRml4IGltcGxlbWVudGF0aW9ucyBmb3IgdGhlIEFQSQoJICBjaGFuZ2UuCgoyMDEyLTAzLTMwIDIyOjAxOjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogbWFrZSBnZXRfY2hpbGRfYnlfbmFtZSB2aXJ0dWFsCgkgIEFsbG93cyBpbXBsZW1lbnRhdGlvbnMgdG8gdXNlIGN1c3RvbSBuYW1lLT5vYmplY3QgbWFwcGluZ3MuCgoyMDEyLTAzLTMwIDIyOjAxOjI2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IGluZGVudGF0aW9uCgoyMDEyLTAzLTMwIDE4OjA0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBpbXByb3ZlIHRoZSBidWZmZXIgbWVtb3J5IG1ldGhvZHMKCSAgZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSAtPiBnc3RfYnVmZmVyX2luc2VydF9tZW1vcnkgYmVjYXVzZSBpbnNlcnQgaXMgd2hhdCB0aGUKCSAgbWV0aG9kIGRvZXMuCgkgIE1ha2UgYWxsIG1ldGhvZHMgZGVhbCB3aXRoIHJhbmdlcyBzbyB0aGF0IHdlIGNhbiByZXBsYWNlLCBtZXJnZSwgcmVtb3ZlIGFuZCBtYXAKCSAgYSBjZXJ0YWluIHN1YnNldCBvZiB0aGUgbWVtb3J5IGluIGEgYnVmZmVyLiBXaXRoIHRoZSBuZXcgbWV0aG9kcyB3ZSBjYW4gbWFrZQoJICBzb21lIGNvZGUgbmljZXIgYW5kIHJldXNlIG1vcmUgY29kZS4gQmVpbmcgYWJsZSB0byBkZWFsIHdpdGggYSBzdWJzZXQgb2YgdGhlCgkgIGJ1ZmZlciBtZW1vcnkgYWxsb3dzIHVzIHRvIG9wdGltaXplIG1vcmUgY2FzZXMgbGF0ZXIgKG1vc3Qgbm90YWJseSBSVFAgaGVhZGVycwoJICBhbmQgcGF5bG9hZCB0aGF0IGNvdWxkIGJlIGluIGRpZmZlcmVudCBtZW1vcnkgb2JqZWN0cykuCgkgIE1ha2Ugc29tZSBtb3JlIGNvbnZlbmllbnQgbWFjcm9zIHRoYXQgY2FsbCB0aGUgbW9yZSBnZW5lcmljIHJhbmdlIG1ldGhvZHMuCgoyMDEyLTAzLTMwIDE2OjUzOjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogcGx1ZyBjYXBzIGxlYWtzCgoyMDEyLTAzLTMwIDE2OjUzOjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IGFsc28gdW5tYXAgY29sbGVjdGVkIG1hcHBlZCBidWZmZXJzCgoyMDEyLTAzLTMwIDE2OjUzOjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBwbHVnIGNhcHMgbGVhawoKMjAxMi0wMy0zMCAxMTo1ODoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IFJlbmFtZSA6OmV2ZW50KCkgdG8gOjpzaW5rX2V2ZW50KCkgZm9yIGNvbnNpc3RlbmN5CgoyMDEyLTAzLTMwIDExOjQ5OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc2luazogbG93ZXIgR1NUX0JBU0VfU1JDX0ZMQUdfTEFTVAoJICBJdCB3b3VsZG4ndCBsZWF2ZSB0aGF0IG11Y2ggcm9vbSBmb3Igc3ViY2xhc3MgdXNlcnMKCjIwMTItMDMtMzAgMDg6NTU6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZQoKMjAxMi0wMy0yOSAxODowMzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWN0dWFsbHkgY29tbWl0IHRoZSAuYyBmaWxlIGNoYW5nZXMgdG9vCgoyMDEyLTAzLTI5IDE3OjU5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgdW5jaGVja2VkL2lubGluZSB2YXJpYW50IG9mIGdzdF9ieXRlX3dyaXRlcl9wdXRfYnVmZmVyKCkKCjIwMTItMDMtMjkgMTc6NTM6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBGaXggYW5ub3RhdGlvbgoKMjAxMi0wMy0yOSAxNzo0NDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBGbHVzaCB0aGUgaW50ZXJuYWwgcXVldWUgd2hlbiB3ZSBzZWUgR1NUX0ZMT1dfRkxVU0hJTkcKCSAgRW5zdXJlcyB0aGF0IHdlIGRvbid0IGVuZCB1cCB3aXRoIHN0YWxlIGNvbnRlbnRzIChsaWtlIEdzdFF1ZXJ5KSBpbgoJICB0aGUgaW50ZXJuYWwgR1F1ZXVlIGFmdGVyIGFueSBibG9ja2luZyB1cHN0cmVhbSB0aHJlYWQgcmV0dXJucy4KCjIwMTItMDMtMjkgMTc6NDM6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgdW5yZWYgR3N0UXVlcnkgdHJhdmVsbGluZyB0aHJvdWdoIHRoZSBxdWV1ZQoJICBVbmxpa2UgZXZlbnRzIGFuZCBidWZmZXJzLCB0aGUgcmVmZXJlbmNlIGlzIG5vdCBnaXZlbiB0byB1cwoKMjAxMi0wMy0yOSAxNzowODo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHBhcnNpbmcgYWxsb2NhdGlvbiBxdWVyeSBuZWVkIG5vdCBwcm92aWRlIHJlZmZlZCBjYXBzCgkgIC4uLiBpbiBsaW5lIHdpdGggb3RoZXIgcXVlcnkgcGFyc2luZyBmdW5jdGlvbi4KCjIwMTItMDMtMjkgMTU6NDU6MDAgKzAyMDAgIEZhYnJpemlvIChNaXN0bykgTWlsbyA8bWlzdG9iYWFuQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNwZWxsaW5nIGZpeGVzCgoyMDEyLTAzLTI5IDE1OjI4OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdzdGVsZW1lbnQ6IGxvd2VyIEdTVF9FTEVNRU5UX0ZMQUdfTEFTVAoJICBJdCB3b3VsZG4ndCBsZWF2ZSB0aGF0IG11Y2ggcm9vbSBmb3Igc3ViY2xhc3MgdXNlcnMKCjIwMTItMDMtMjkgMTU6MTg6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlCgkgIGdjYyA0LjUgY29tcGxhaW5zIG90aGVyd2lzZSA6KAoKMjAxMi0wMy0yOSAxNDo1NDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYwoKMjAxMi0wMy0yOSAxNDo0NTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCBhbGwgbm90LWxpbmtlZCBzdHJlYW1zIHdoZW4gYSBzdHJlYW0gc3dpdGNoZXMgZnJvbSBsaW5rZWQgdG8gbm90LWxpbmtlZAoJICBXZSByZXNldCBhbGwgdGhlIHdhaXRpbmcgc3RyZWFtcywgbGV0IHRoZW0gcHVzaCBhbm90aGVyIGJ1ZmZlciB0bwoJICBzZWUgaWYgdGhleSdyZSBub3cgYWN0aXZlIGFnYWluLiBUaGlzIGFsbG93cyBmYXN0ZXIgc3dpdGNoaW5nCgkgIGJldHdlZW4gc3RyZWFtcyBhbmQgcHJldmVudHMgZGVhZGxvY2tzIGlmIGRvd25zdHJlYW0gZG9lcyBhbnkKCSAgd2FpdGluZyB0b28uCgkgIEFsc28gaW1wcm92ZSBsb2NraW5nIGEgYml0LCBzcmNyZXN1bHQgbXVzdCBiZSBwcm90ZWN0ZWQgYnkgdGhlCgkgIG11bHRpcXVldWUgbG9jayB0b28gYmVjYXVzZSBpdCdzIHVzZWQvc2V0IGZyb20gcmFuZG9tIHRocmVhZHMuCgoyMDEyLTAzLTI5IDE0OjMyOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZWNvbXB1dGUgaGlnaC10aW1lIHRvbyB3aGVuIGZsdXNoaW5nLCBub3Qgb25seSBoaWdoLWlkCgoyMDEyLTAzLTI5IDEzOjM5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBPbmx5IHdhaXQgdW50aWwgdGhlIGFjdGl2ZSBwYWQncyBydW5uaW5nIHRpbWUgaXMgcmVhY2hlZCBpZiB0aGUgYWN0aXZlIHBhZCBhbHJlYWR5IHNhdyBkYXRhCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBibG9jayBmb3JldmVyIGJlY2F1c2UgdXBzdHJlYW0gKGUuZy4gbXVsdGlxdWV1ZSkgaXMgd2FpdGluZwoJICBmb3IgdGhlIHByZXZpb3VzbHkgYWN0aXZlIHN0cmVhbSB0byByZXR1cm4gZm9yZXZlciAod2hpY2ggaXMgd2FpdGluZyBoZXJlCgkgIGluIGlucHV0c2VsZWN0b3IpIGJlZm9yZSBwdXNoaW5nIHNvbWV0aGluZyBvbiB0aGUgbmV3bHkgc2VsZWN0ZWQgc3RyZWFtLgoKMjAxMi0wMy0yOSAxMzozNDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IHVwZGF0ZSBtb3JlIGRvY3VtZW50YXRpb24KCjIwMTItMDMtMjggMTg6MTI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHJldmlldyBzb21lIGRvY3MKCjIwMTItMDMtMjggMTY6NDQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogc2ltcGxpZnkgYW5kIHJlZmFjdG9yIF9zcGFuIGFuZCBfbWVyZ2UKCSAgVW5pZnkgdGhlIF9zcGFuIGFuZCBfbWVyZ2UgY29kZSBwYXRocyBhbmQgc2ltcGxpZnkgbm93IHRoYXQgd2Ugb25seSB1c2UgdGhpcwoJICBpbnRlcm5hbGx5LgoKMjAxMi0wMy0yOCAxNToxNjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB3ZSBhbHdheXMgY2FsbCBfc3BhbiB3aXRoIHRoZSBidWZmZXIgc2l6ZQoKMjAxMi0wMy0yOCAxNToxMjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBtb3ZlIHNvbWUgY29kZSBhcm91bmQKCjIwMTItMDMtMjggMTU6MDg6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogd2UgY2FsbCBfc3BhbiBhbHdheXMgd2l0aCAwIG9mZnNldAoKMjAxMi0wMy0yOCAxMzowODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgYWx3YXlzIEZBTFNFIGZ1bmN0aW9uIGFyZ3VtZW50CgoyMDEyLTAzLTI4IDE2OjM5OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkZWxheSBidWZmZXIgdW5yZWYgdW50aWwgYnVmZmVyIG5vIGxvbmdlciBuZWVkZWQKCjIwMTItMDMtMjggMTI6NDQ6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiB1bmlmeSBidWZmZXIgbWVyZ2UgbWV0aG9kcwoJICBBZGQgZ3N0X2J1ZmZlcl9hcHBlbmQoKSB3aGljaCBhcHBlbmRzIHRoZSBtZW1vcnkgYmxvY2tzIGZyb20gb25lIGJ1ZmZlciB0bwoJICBhbm90aGVyLiBSZW1vdmUgdGhlIG9sZCBpbmVmZmljaWVudCBfbWVyZ2UoKSBhbmQgX2pvaW4oKSBtZXRob2RzIHdoaWNoIGZvcmNlZCBhCgkgIHByZW1hdHVyZSBtZW1jcHkgaW4gbW9zdCBjYXNlcy4KCSAgUmVtb3ZlIHRoZSBfaXNfc3BhbigpIGFuZCBfc3BhbigpIG1ldGhvZHMgdGhleSBhcmUgbm90IG5lZWRlZCBhbnltb3JlIG5vdyB0aGF0CgkgIHdlIGNhbiBfYXBwZW5kKCkuIE1lcmdpbmcgYW5kIHNwYW5uaW5nIHdpbGwgYmUgZGVsYXllZCB1bnRpbCBtYXBwaW5nIG9yIG1heWJlCgkgIG5vdCBhdCBhbGwgd2hlbiB0aGUgZWxlbWVudCBjYW4gZGVhbCB3aXRoIHRoZSBkaWZmZXJlbnQgbWVtb3J5IGJsb2Nrcy4KCjIwMTItMDMtMjcgMTU6MjQ6NDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggdHlwbyBpbiBkb2NzdHJpbmcKCjIwMTItMDMtMjcgMTU6MjQ6NDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggdHlwbyBpbiBkb2NzdHJpbmcKCjIwMTItMDMtMjcgMTU6MTY6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmUtZW5hYmxlIF9zcGFuIG9mZnNldCBjYWxjdWxhdGlvbnMKCSAgd2hlbiB3ZSBfc3BhbiB0d28gY29tcGxldGUgYnVmZmVycywgd2UgY2FuIGNvcHkgb2Zmc2V0cyBhbmQgdGltZXN0YW1wcy4KCjIwMTItMDMtMjcgMTU6MDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGFkZCByZWZjb3VudCB0byB0cmFjZSBkZWJ1ZwoKMjAxMi0wMy0yNyAxNDo1OTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBfaXNfd3JpdGFibGUgY2hlY2tzCgkgIEFkZCBzb21lIGNoZWNrcyB0byBhc3NlcnQgb24gd3JpdGFiaWxpdHkgZm9yIGZ1bmN0aW9ucyB0aGF0IG1vZGlmeSBtZXRhZGF0YS4KCjIwMTItMDMtMjcgMTI6NDA6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiByZW1vdmUgY29uc3QgZnJvbSBnZXQvc2V0X3BhcmFtCgkgIFJlbW92ZSB0aGUgY29uc3QgZnJvbSB0aGUgR3N0Q2FwcyBpbiBnZXQvc2V0X3BhcmFtLiBzZXRfcGFyYW0gbW9kaWZpZXMKCSAgdGhlIHJlZmNvdW50IG9mIHRoZSBjYXBzLgoJICBEb24ndCBpbmNyZW1lbnQgdGhlIHJlZmNvdW50IG9mIHRoZSBjYXBzIHJlc3VsdCBvZiBnZXRfcGFyYW0gbGlrZSB3ZQoJICBkbyB3aXRoIG90aGVyIG9iamVjdHMuCgkgIFVwZGF0ZSBzb21lIGFubm90aWF0aW9ucy4KCjIwMTItMDMtMjcgMTI6Mzk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggYW5ub3RhdGlvbiBmb3IgX3JlbGVhc2UKCSAgX3JlbGVhc2UgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBidWZmZXIKCjIwMTItMDMtMjcgMTI6MzE6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogQ2hhbmdlIHRoZSB0aW1lb3V0IGFyZ3VtZW50IHR5cGUgb2YgZ3N0X2J1c19wb2xsKCkgZnJvbSBHc3RDbG9ja1RpbWVEaWZmIHRvIEdzdENsb2NrVGltZQoJICBUaGlzIGlzIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBHc3RCdXMgbWV0aG9kcyB0aGF0IGhhdmUgYSB0aW1lb3V0LgoKMjAxMi0wMy0yNiAxOToxMzoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHJlbW92ZSBvbGQgY29kZQoJICBSZW1vdmUgYXR0ZW1wdCB0byBkZWxheSBfbWFrZV93cml0YWJsZQoKMjAxMi0wMy0yNiAxODowNzozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBlbnN1cmUgd3JpdGFibGUgY2FwcyBwcmlvciB0byBtb2RpZmljYXRpb24KCjIwMTItMDMtMjYgMTc6Mzg6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBjaGVjayBtaW4vbWF4X2J1ZmZlcnMKCjIwMTItMDMtMjYgMTc6MzU6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6Zml4IGNvcHktYW5kLXBhc3RlIHByb2JsZW0KCjIwMTItMDMtMjYgMTE6NTQ6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBSZXBsYWNlIG1hc3RlciB3aXRoIDAuMTEKCjIwMTItMDMtMjMgMTg6NTE6NTIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhZGQgYW5kIGltcHJvdmUgZGVidWcgbWVzc2FnZXMKCSAgLi4uIHNvIHRoZXkgZW5kIHVwIGluIGEgbW9yZSBleHBlY3RlZCBkZWJ1ZyBjYXRlZ29yeSByYXRoZXIgdGhhbiBvYmxpdmlvbi4KCjIwMTItMDMtMjIgMTU6NTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gZGV2ZWwKCjIwMTItMDMtMjIgMTU6NDk6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LWJ1aWxkLnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMS4zCgoyMDEyLTAzLTIyIDE1OjIyOjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgYXV0b21hdGljIGFuZCB1bmRvY3VtZW50ZWQgc2V0dGluZyBvZiBhbHdheXNfaW5fcGxhY2UKCSAgLi4uIHdoaWNoIGNvbnRyb2xzIGhvdyB0byAoZm9yY2libHkpIGRlYWwgd2l0aCAobm9uLSl3cml0YWJsZSBkYXRhIGFuZAoJICBpcyBub3QgbmVjZXNzYXJpbHkgcmVsYXRlZCB0byBpZGVudGljYWwgY2Fwcy4KCSAgSW4gcGFydGljdWxhciwgaXQgaXMgYWxzbyBub3Qgc28gaGVscGZ1bCBhbnltb3JlIHdpdGggYSBtb3JlIGFkdmFuY2VkCgkgIEdzdFZpZGVvRmlsdGVyIHN1YmNsYXNzIHdoaWNoIGFsd2F5cyBoYXMgYSB0cmFuc2Zvcm1faXAgbWV0aG9kIGN1cnJlbnRseSwKCSAgZXZlbiB0aG91Z2ggaXRzIHN1YmNsYXNzIG1heSBub3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgX2lwIG1ldGhvZC4KCjIwMTItMDMtMjIgMTA6NDU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgoyMDEyLTAzLTIyIDA4OjM1OjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBkb24ndCBzaGFkb3cgZ2xvYmFsIHZhcmlhYmxlCgoyMDEyLTAzLTIxIDEyOjEwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIGRpc3QgbmV0IGRpcmVjdG9yeSBvbmx5IG9uY2UKCjIwMTItMDMtMjEgMDk6MDA6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBPbmx5IGFsbG93IGZpeGVkIGNhcHMgaW4gdGhlIGFjY2VwdC1jYXBzIHF1ZXJ5CgoyMDEyLTAzLTIwIDE3OjA4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBxdWVyaWVzIG1vcmUgZGlyZWN0bHkKCSAgSnVzdCBjYWxsIG91ciBpbnRlcm5hbCBxdWVyeSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggdGhlIHBhZCBhbmQgdGhlCgkgIHF1ZXJ5IGhhbmRsZXIgZXRjLgoKMjAxMi0wMy0yMCAxNzowODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgc29tZSBwZXJmb3JtYW5jZSBkZWJ1ZwoKMjAxMi0wMy0yMCAxMzoxNDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBhZDogaW1wcm92ZSBkb2NzIG9mIGdldC9wdWxsX3JhbmdlCgkgIEltcHJvdmUgdGhlIGRvY3Mgb2YgdGhlIGdldC9wdWxsX3JhbmdlIGZ1bmN0aW9ucywgZGVmaW5lIHRoZSBsaWZldGltZSBvZiB0aGUKCSAgYnVmZmVyIGluIGNhc2Ugb2YgZXJyb3JzIGFuZCBzaG9ydCByZWFkcy4KCSAgTWFrZSBzdXJlIHRoZSBjb2RlIGRvZXMgd2hhdCB0aGUgZG9jcyBzYXkuCgoyMDEyLTAzLTIwIDEwOjIwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBidWZmZXI6IGltcHJvdmUgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKCkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byB3cmFwIGFsbCBraW5kcyBvZiBtZW1vcnkgYnkgZXhwb3NpbmcgYWxsIHByb3BlcnRpZXMgdG8KCSAgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKCkuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYWxzbyBjcmVhdGUgd3JpdGFibGUKCSAgbWVtb3J5IHdpdGhvdXQgYSBmcmVlIGZ1bmN0aW9uIG9yIG1lbW9yeSB3aXRoIGV4dHJhIHBhZGRpbmcuCgoyMDEyLTAzLTE5IDExOjQ1OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGhhbmRsZSBzZXJpYWxpemVkIHF1ZXJpZXMKCjIwMTItMDMtMTYgMjI6NTE6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAzLTE2IDIyOjI1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNtYWxsIGNsZWFudXBzCgoyMDEyLTAzLTE2IDIxOjM3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBwYWQ6IGNoYW5nZSB0aGUgc2VtYW50aWNzIG9mIGdldC9wdWxsX3JhbmdlIGEgbGl0dGxlCgkgIE1ha2UgaXQgc28gdGhhdCBvbmUgY2FuIHNwZWNpZnkgYSBidWZmZXIgZm9yIGdldC9wdWxsX3JhbmdlIHdoZXJlIHRoZSBkb3duc3RyZWFtCgkgIGVsZW1lbnQgc2hvdWxkIHdyaXRlIGludG8uIFdoZW4gcGFzc2luZyBOVUxMLCB1cHN0cmVhbSBzaG91bGQgYWxsb2NhdGUgYSBidWZmZXIsCgkgIGxpa2UgaW4gMC4xMC4KCSAgV2UgYWxzbyBuZWVkIHRvIGNoYW5nZSB0aGUgcHJvYmVzIGEgbGl0dGxlIGJlY2F1c2UgYmVmb3JlIHRoZSBwdWxsIHByb2JlLCB0aGVyZQoJICBjb3VsZCBhbHJlYWR5IGJlIGEgYnVmZmVyIHBhc3NlZC4gVGhpcyB0aGVuIGFsbG93cyB1cyB0byB1c2UgdGhlIHNhbWUgUFJPQkUKCSAgbWFjcm8gZm9yIGJlZm9yZSBhbmQgYWZ0ZXIgcHVsbGluZy4KCSAgV2hpbGUgd2UncmUgYXQgdGhlIHByb2JlcywgbWFrZSB0aGUgcXVlcnkgcHJvYmUgbW9yZSBwb3dlcmZ1bCBieSBoYW5kbGluZyB0aGUKCSAgR1NUX1BBRF9QUk9CRV9EUk9QIHJldHVybiB2YWx1ZS4gUmV0dXJuaW5nIF9EUk9QIGZyb20gYSBxdWVyeSBwcm9iZSB3aWxsIG5vdwoJICByZXR1cm4gVFJVRSB1cHN0cmVhbSBhbmQgd2lsbCBub3QgZm9yd2FyZCB0aGUgcHJvYmUgdG8gdGhlIHBlZXIgb3IgaGFuZGxlci4KCSAgQWxzbyBoYW5kbGUgX0RST1AgZm9yIGdldC9wdWxsX3JhbmdlIHByb3Blcmx5IGJ5IG5vdCBkaXNwYXRjaGluZyB0byB0aGUKCSAgcGVlci9oYW5kbGVyIG9yIGJ5IGdlbmVyYXRpbmcgRU9TIHdoZW4gdGhlIHByb2JlIHJldHVybnMgRFJPUCBhbmQgbm8gYnVmZmVyLgoJICBNYWtlIGZpbGVzcmMgaGFuZGxlIHRoZSBub24tTlVMTCBidWZmZXIgcGFzc2VkIGluIHRoZSBnZXRfcmFuZ2UgZnVuY3Rpb24gYW5kCgkgIHNraXAgdGhlIGFsbG9jYXRpb24gaW4gdGhhdCBjYXNlLCB3cml0aW5nIGRpcmVjdGx5IGludG8gdGhlIGRvd25zdHJlYW0gcHJvdmlkZWQKCSAgYnVmZmVyLgoJICBVcGRhdGUgdGVzdHMgYmVjYXVzZSBub3cgd2UgbmVlZCB0byBtYWtlIHN1cmUgdG8gbm90IHBhc3MgYSByYW5kb20gdmFsdWUgaW4gdGhlCgkgIGJ1ZmZlciBwb2ludGVyIHRvIGdldC9wdWxsX3JhbmdlCgoyMDEyLTAzLTE2IDIxOjM2OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCjIwMTItMDMtMTYgMTg6Mzk6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBkb2NzIGEgbGl0dGxlLCBhbGxvY19idWZmZXIgaXMgZ29uZQoKMjAxMi0wMy0xNSAyMjowOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBzcGxpdCBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb24KCSAgTWFrZSBzZXBhcmF0ZSBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGJ1ZmZlcnBvb2wgYW5kIHRoZSBhbGxvY2F0b3IgdXNlZCBieSB0aGUKCSAgYnVmZmVycG9vbC4KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGFsbG9jYXRvciBvZiBhIHBvb2wuCgoyMDEyLTAzLTE1IDIwOjIzOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogcmV3b3JrIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5CgkgIFNlcGFyYXRlIHRoZSBidWZmZXJwb29sIGFuZCBhbGxvY2F0b3IgaGludHMgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnksIHNvbWUKCSAgb2YgdGhlIHZhbHVlcyBkb24ndCBhbHdheXMgbWFrZSBzZW5zZSB0b2dldGhlci4KCSAgS2VlcCB0aGUgYnVmZmVycG9vbCBhbmQgaXRzIGNvbmZpZ3VyYXRpb24gdG9nZXRoZXIuCgkgIEtlZXAgdGhlIGFsbG9jYXRvciBhbmQgaXRzIHBhcmFtZXRlcnMgdG9nZXRoZXIuCgkgIEFsbG93IGZvciBtdWx0aXBsZSBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb25zIGluIHRoZSBxdWVyeS4KCjIwMTItMDMtMTUgMTY6NTA6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY29tbWVudCBhbmQgZGVidWcgaW1wcm92ZW1lbnQKCjIwMTItMDMtMTUgMTY6NDk6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGltcHJvdmUgZGVidWcKCSAgYWxzbyBmaXggYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKCjIwMTItMDMtMTUgMTQ6Mjg6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAzLTE1IDE0OjAxOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBHc3RCdWZmZXJQb29sUGFyYW1zIC0+IEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zCgkgIEJlY2F1c2UgdGhvc2UgZmxhZ3MgYXJlIG5vdCBmcm9tIHRoZSBidWZmZXJwb29sIGJ1dCBmb3IgdGhlIGFjcXVpcmUgZnVuY3Rpb24uCgoyMDEyLTAzLTE1IDEzOjI4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBncm91cCBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gYSBzdHJ1Y3QKCSAgR3JvdXAgdGhlIGV4dHJhIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBhIEdzdEFsbG9jYXRpb25QYXJhbXMgc3RydWN0dXJlIHRvIG1ha2UKCSAgaXQgZWFzaWVyIHRvIGRlYWwgd2l0aCB0aGVtIGFuZCBzbyB0aGF0IHdlIGNhbiBleHRlbmQgdGhlbSBsYXRlciBpZiBuZWVkZWQuCgkgIE1ha2UgZ3N0X2J1ZmZlcl9uZXdfYWxsb2NhdGUoKSB0YWtlIHRoZSBHc3RBbGxvY2F0aW9uUGFyYW1zIGZvciBhZGRlZAoJICBmdW5jdGlvbmFsaXR5LgoJICBBZGQgYm94ZWQgdHlwZSBmb3IgR3N0QWxsb2NhdGlvblBhcmFtcy4KCjIwMTItMDMtMTUgMDA6MjU6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogb25seSB1cGRhdGUgYnVmZmVyIHNpemUgb24gc2hvcnQgcmVhZAoKMjAxMi0wMy0xNSAwMDoyNDo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGNvcHkgZnVuY3Rpb24KCSAgQ29weSB0aGUgc3RydWN0dXJlIHRvby4KCjIwMTItMDMtMTUgMDA6MjM6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IG1heHNpemUgYWZ0ZXIgYWxpZ24KCSAgd2hlbiB3ZSBhbGlnbiB0aGUgZGF0YSBwb2ludGVyLCBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBtYXhzaXplLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnCgoyMDEyLTAzLTE0IDIyOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogcmVtb3ZlIHVzZWxlc3MgUFJPWFlfQUxMT0NBVElPTiBmbGFnCgoyMDEyLTAzLTE0IDIxOjMyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBBZGQgMCBwYWRkaW5nCgkgIENoYW5nZSBnc3RfYWxsb2NhdG9yX2FsbG9jKCkgc28gdGhhdCB3ZSBjYW4gYWxzbyBzcGljaWZ5IGZsYWdzIGFuZCBwYWRkaW5nLgoJICBBZGQgMiBuZXcgZmxhZ3MgdG8gbWFyayB0aGUgbWVtb3J5IDAgcHJlZml4ZWQvcGFkZGVkLiBUaGlzIGFsbG93cyB1cyB0bwoJICByZW1vdmUgc29tZSByZXNpemVzIGluIHRoZSBiYXNlIGNsYXNzZXMuCgkgIFdoZW4gYWxsb2NhdGluZyBtZW1vcnksIG1lbXNldCBwcmVmaXggYW5kIHBhZGRpbmcgd2l0aCAwIHdoZW4gdGhlIGZsYWdzIHRlbGwKCSAgdXMgdG8uCgkgIE9uIHJlc2l6ZSwgY2xlYXIgdGhlIHplcm8gcGFkZGluZyBmbGFncyBpZiB3ZSBjYW4ndCBndWFyYW50ZWUgdGhlIG1lbW9yeSBpcwoJICBzdGlsbCAwIGZpbGxlZC4KCSAgVXBkYXRlIHRlc3RzLgoKMjAxMi0wMy0xNCAxOTozNzoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBhbHNvIGluY2x1ZGUgcGFkZGluZyBpbiBBTExPQ0FUSU9OIHF1ZXJ5CgkgIE5lZ290aWF0aW5nIHBhZGRpbmcgaXMgbmVlZGVkIG9uIHNlY29uZCB0aG91Z2h0IHNvIGluY2x1ZGUgaXQgaW4gdGhlCgkgIEFMTE9DQVRJT04gcXVlcnkuCgkgIE1ha2UgdGhlIGJ1ZmZlcnBvb2wgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCB3aGVuIGFsbG9jYXRpbmcuCgkgIE1ha2UgYmFzZXNyYyB0YWtlIHBhZGRpbmcgaW50byBhY2NvdW50LgoJICBVc2UgcGFkZGluZyBhbmQgcHJlZml4IHdoZW4gYWxsb2NhdGluZyBpbiBiYXNldHJhbnNmb3JtLgoKMjAxMi0wMy0xNCAxODo0NTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB0YWtlIHByZWZpeCBpbnRvIGFjY291bnQgd2hlbiBhbGxvY2F0aW5nCgkgIFRha2UgaW50byBhY2NvdW50IHRoZSBwcmVmaXggdGhhdCB3ZSByZWNlaXZlZCBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGFuZCB1c2UKCSAgaXQgdG8gYWxsb2NhdGUgYW5kIHJlc2l6ZSBhIGxhcmdlciBidWZmZXIuCgoyMDEyLTAzLTE0IDE3OjE2OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZyZWUgb3duZWQgZGlzY2FyZGVkIHBvb2wgY29uZmlnCgoyMDEyLTAzLTE0IDE2OjI3OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHBhZDogaW1wbGVtZW50IERSQUlOIGhhbmRsaW5nCgkgIFdoZW4gd2UgZm9yd2FyZCB0aGUgRFJBSU4gcXVlcnkgYW5kIHRoZXJlIGlzIG5vdGhpbmcgdG8gZm9yd2FyZCBpdCB0bywgYXNzdW1lIHdlCgkgIGFyZSBkcmFpbmVkLgoJICBXaGVuIGEgYmFzZXNpbmsgcmVjZWl2ZXMgYSBkcmFpbiBxdWVyeSwgcmVwbHkgd2l0aCBUUlVFLgoKMjAxMi0wMy0xNCAxNjoxNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGFkZCBuZXcgZHJhaW4gcXVlcnkKCSAgV2l0aCB0aGUgbmV3IHNlcmlhbGl6ZWQgZG93bnN0cmVhbSBxdWVyaWVzIHdlIGNhbiBpbXBsZW1lbnQgYSBkcmFpbiBxdWVyeSB0aGF0CgkgIG1ha2VzIGFuIGVsZW1lbnQgd2FpdHMgdW50aWwgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmVwbGllcyB0byB0aGUgcXVlcnkuCgoyMDEyLTAzLTE0IDE2OjAxOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2Ugc2VyaWFsaXplZCBxdWVyaWVzIHB1c2ggc3RpY2t5IGV2ZW50cyBmaXJzdAoJICBCZWZvcmUgd2UgY2FuIHByb2NlZWQgd2l0aCBhIHNlcmlhbGl6ZWQgcXVlcnksIHdlIG5lZWQgdG8gYmUgc3VyZSB0aGF0IGFsbAoJICBzdGlja3kgZXZlbnRzIHdlcmUgcHVzaGVkLgoKMjAxMi0wMy0xNCAxNTo0Mjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZXM6IHdhcm4gd2hlbiByZWNlaXZpbmcgYSBzZXJpYWxpemVkIGV2ZW50CgkgIC4uIHVudGlsIHdlIGltcGxlbWVudCBpdC4KCjIwMTItMDMtMTQgMTU6NDI6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemVkIHF1ZXJpZXMKCjIwMTItMDMtMTQgMTU6Mjk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGFrZSBzdHJlYW0gbG9jayBvbiBzZXJpYWxpemVkIHF1ZXJpZXMKCjIwMTItMDMtMTQgMTU6MTY6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZW5mb3JjZSBjb3JyZWN0IHF1ZXJ5IGRpcmVjdGlvbgoKMjAxMi0wMy0xNCAxNDo1MToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IHJlZ2lzdGVyIHF1ZXJpZXMgbGlrZSBldmVudHMKCSAgQWxzbyByZWdpc3RlciBxdWVyaWVzIHdpdGggYSBRdWVyeVR5cGUgdGhhdCBhbGxvd3MgdXMgdG8gY2hlY2sgaWYgdGhlIGV2ZW50IGlzCgkgIHNlbnQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbi4gQWRkIGEgc2VyaWFsaXplZCBxdWVyeSB0eXBlIGJlY2F1c2Ugd2Ugd2lsbCBuZWVkCgkgIHRoaXMgZm9yIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoJICBSZW1vdmUgdGhlIFF1ZXJ5VHlwZURlZmluaXRpb24gc3R1ZmYsIGl0IGlzIG5vdCB1c2VkIGFueW1vcmUgYW5kIHdlIG5vdyB1c2UKCSAgY3VzdG9tIHF1ZXJpZXMgYW5kIHNlcGFyYXRlIEFQSSBmb3IgdGhlbS4KCSAgVXBkYXRlIGRlZnMuCgoyMDEyLTAzLTE0IDEyOjQyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBtb3JlIGRlYnVnCgoyMDEyLTAzLTEzIDE1OjQwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbW92ZSBvbGQgY29tcGF0IG1vZGUKCjIwMTItMDMtMTMgMTU6NDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBkb2NzIHVwZGF0ZQoKMjAxMi0wMy0xMyAxMDowNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbW92ZSBnc3RfY2Fwc191bmlvbigpCgkgIFJlbW92ZSBnc3RfY2Fwc191bmlvbigpLCB1c2UgZ3N0X2NhcHNfbWVyZ2UoKS4gVGhpcyBmdW5jdGlvbiB3YXMgbm90IHVzZWQKCSAgYW55bW9yZSBhbmQgaXQgaXMgdW5jbGVhciB3aGF0IHRoZSBkaWZmZXJlbmNlIGlzIHdpdGggX21lcmdlKCkuCgoyMDEyLTAzLTEyIDIzOjA1OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEFTX0xJQlRPT0wgdmVyc2lvbgoJICBBUEkgd2FzIGFkZGVkIHRvIGNvbGxlY3RwYWRzMgoKMjAxMi0wMy0xMiAyMzowMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFja3BvcnQgQVNfTElCVE9PTCB2ZXJzaW9uIGZyb20gMC4xMC4zNiByZWxlYXNlCgkgIE1pZ2h0IGZpeCBpc3N1ZXMgd2l0aCBtaXNzaW5nIHN5bWJvbHMgZm9yIHBlb3BsZSB3aG8gaW5zdGFsbCBHU3RyZWFtZXIKCSAgZnJvbSBzb3VyY2UgYW5kIGF0IHNvbWUgcG9pbnQganVtcGVkIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gZ2l0IG1hc3RlcgoJICBhbmQgdGhlIDAuMTAuMzYgcmVsZWFzZSAob3IgMC4xMC4gYnJhbmNoKS4KCjIwMTItMDMtMTIgMjM6MDg6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBkb2NzOiBmaXggZnVuY3Rpb24gbmFtZSBhbmQgdHlwbwoKMjAxMi0wMy0xMiAxOTo1MjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBnZXQgdGVtcGxhdGUgY2FwcyBvbmx5IG9uY2UKCSAgR2V0IHRoZSB0ZW1wbGF0ZSBjYXBzIG9mIHRoZSBwYWRzIG9ubHkgb25jZSwgYXZvaWRzIHVuZWNlc3NhcnkgcmVmCgkgIGFuZCB1bnJlZnMuCgoyMDEyLTAzLTEyIDE4OjM0OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZGVsYXkgX21ha2Vfd3JpdGFibGUoKSB1bnRpbCBuZWVkZWQgaW4gX25vcm1hbGl6ZSgpCgkgIERlbGF5IF9tYWtlX3dyaXRhYmxlKCkgdW50aWwgd2UgYWN0dWFsbHkgZm91bmQgYSBsaXN0IGFuZCBuZWVkIHRvIHVwZGF0ZSB0aGUKCSAgY2Fwcy4KCjIwMTItMDMtMTIgMTg6MjU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzaG9ydGN1dCBzaW1wbGlmeSBlYXJsaWVyCgkgIEEgc2ltcGxlIGNhcHMgaXMgYWxyZWFkeSBzaW1wbGlmaWVkLCBubyBuZWVkIHRvIGNoZWNrIGZvciBmaXhlZG5lc3MuCgoyMDEyLTAzLTEyIDE4OjIyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgY2xlYW51cCwgcmVtb3ZlIGNvbnN0CgoyMDEyLTAzLTEyIDE4OjAyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgY2xlYW51cHMKCjIwMTItMDMtMTIgMTY6NDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBkb2MgaW1wcm92ZW1lbnQKCjIwMTItMDMtMTIgMTY6MTg6NDUgKzAyMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBidW1wIHJlcXVpcmVkIEdMaWIgdG8gMi4zMS4xNAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcxOTExCgoyMDEyLTAzLTEyIDEzOjUwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nLXRvLTAuMTEudHh0IGEgbGl0dGxlCgoyMDEyLTAzLTEyIDEyOjM1OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHNvbWUgMC4xMSBGSVhNRXMKCjIwMTItMDMtMTIgMTI6MjE6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBtYWtlIF9ub3JtYWxpemUgdGFrZSBvd25lcnNoaXAgb2YgaW5wdXQKCSAgTWFrZSBnc3RfY2Fwc19ub3JtYWxpemUoKSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgc28gdGhhdCBpdCBjYW4gbW9yZQoJICBpbnRlbGxpZ2VudGx5IGRlY2lkZSB3aGVuIHRvIGNvcHkgb3Igbm90LgoKMjAxMi0wMy0xMiAxMTozODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBfZG9fc2ltcGxpZnkoKSAtPiBfc2ltcGxpZnkoKQoJICBSZW5hbWUgX2RvX3NpbXBsaWZ5KCkgdG8gX3NpbXBsaWZ5KCkuIFRoZSBuYW1lIHdhcyBpbnRyb2R1Y2VkIGFzIGEgcmVwbGFjZW1lbnQKCSAgbWV0aG9kIGZvciBhIGRlcHJlY2F0ZWQgbWV0aG9kIGJ1dCB3ZSBjYW4gbm93IHJlbmFtZSBpdCBhZ2Fpbi4KCSAgRml4IHNvbWUgZG9jcy4KCjIwMTItMDMtMTIgMTA6NDI6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGltcHJvdmUgX2RvX3NpbXBsaWZ5CgkgIE1ha2UgZ3N0X2NhcHNfZG9fc2ltcGxpZnkoKSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgY2FwcyBhbmQgcHJvZHVjZSBhCgkgIHNpbXBsaWZpZWQgb3V0cHV0IGNhcHMuIFRoaXMgcmVtb3ZlcyB0aGUgcmVxdWlyZW1lbnQgb2YgaGF2aW5nIHdyaXRhYmxlIGlucHV0CgkgIGNhcHMgYW5kIHRoZSBtZXRob2QgY2FuIG1ha2UgdGhlIGNhcHMgd3JpdGFibGUgb25seSB3aGVuIG5lZWRlZC4KCjIwMTItMDMtMTIgMTA6NDE6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0CgkgIHdpdGggdGhlIG5ldyBjYXBzIEFQSSwgdGhlcmUgaXMgbW9yZSBzaGFyaW5nIGFuZCBsZXNzIGNvcHlpbmcgZ29pbmcgb24gc28gdGhlCgkgIHVuaXQgdGVzdCByZWZjb3VudHMgYXJlIGRpZmZlcmVudC4KCjIwMTItMDMtMTIgMDk6MDM6NDIgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgdXBkYXRlIGxpY2Vuc2UgbGluayB0byBwb2ludCB0byAyLjEgbGljZW5zZSwgaW5zdGVhZCBvZiBqdXN0IGdlbmVyaWMgbGdwbCBmaWxlLCB3aGljaCBpcyBhbHdheXMgdGhlIGxhdGVzdCBhbmQgdGh1cyBub3QgY29ycmVjdCBmb3IgZ3N0cmVhbWVyCgoyMDEyLTAzLTExIDE4OjU3OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGF2b2lkIHVzaW5nIGluLXBsYWNlIG9wcmF0aW9ucwoJICBSZXdvcmsgc29tZSBjYXBzIG9wZXJhdGlvbnMgc28gdGhleSBkb24ndCByZWx5IG9uIHdyaXRhYmxlIGNhcHMgYnV0IGluc3RlYWQgdGFrZQoJICBvd25lcnNoaXAgb2YgdGhlIGlucHV0IGNhcHMgYW5kIGRvIF9tYWtlX3dyaXRhYmxlKCkgb25seSB3aGVuIG5lZWRlZC4KCSAgUmVtb3ZlIHNvbWUgY29uc3QgZnJvbSBjYXBzIGZ1bmN0aW9ucywgaXQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlIGZvcgoJICByZWZjb3VudGVkIG9iamVjdHMgYW5kIGRvZXMgbm90IGFsbG93IHVzIHRvIHJldHVybiBhIHJlZmNvdW50IHRvIHRoZSBjb25zdCBpbnB1dAoJICBjYXBzLgoJICBSZXdvcmsgdGhlIGJhc2UgY2xhc3NlcyBmaXhhdGUgdm1ldGhvZHMgdG8gbm90IG9wZXJhdGUgb24gdGhlIGNhcHMgaW4tcGxhY2UuCgkgIEFsbCB0aGlzIHNhdmVzIHVzIGFyb3VuZCAzMCUgb2YgY2FwcyBhbmQgc3RydWN0dXJlIGNvcHkgYW5kIG5ldyBvcGVyYXRpb25zLgoKMjAxMi0wMy0xMSAxNzoyMjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgYWxsb2NhdGlvbiBkZWJ1ZwoKMjAxMi0wMy0xMCAwOToyNTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogcmVtb3ZlIGNvbnN0IGZyb20gcmVmY291bnRlZCBHc3RDYXBzCgkgIEhhdmluZyBjb25zdCBvbiByZWZjb3VudGVkIG9iamVjdHMgcmVxdWlyZSB1cyB0byBtYWtlIGNvcGllcyBpbnN0ZWFkIG9mIHNpbXBseQoJICB0YWtpbmcgYSByZWYsIGRvbid0IGRvIHRoYXQuCgoyMDEyLTAzLTEwIDA5OjE1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBjb3B5IHdoZW4gY2FwcyBhcmUgZml4ZWQKCSAgQXZvaWQgZG9pbmcgYSB1c2VsZXNzIGNvcHkgd2hlbiB0aGUgY2FwcyBhcmUgZml4ZWQgYW5kIHNpbXBsaWZ5IHdpbGwgbm90IGRvCgkgIGFueXRoaW5nLgoKMjAxMi0wMy0wOSAxNjoxNDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBzbWFsbCBvcHRpbWl6YXRpb25zCgkgIHNob3J0Y3V0IGhlYXZ5IHdvcmsgd2hlbiBidWZmZXJfcmVzaXplIGRvZXMgbm90aGluZy4KCSAgQXZvaWQgYW4gZXh0cmEgX3JlZiB3aGVuIG1hcHBpbmcgYSBidWZmZXIuCgkgIEFkZCBzb21lIEdfTElLRUxZLgoKMjAxMi0wMy0wOSAxNTowMzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBhcnJheSB0eXBlcwoKMjAxMi0wMy0wOSAxNDozMDowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDMtMDkgMTE6NTM6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWxzbyBwdXNoIHN0aWNreSBldmVudHMgb24gbmV3IGV2ZW50CgkgIE1ha2UgYSBoZWxwZXIgZnVuY3Rpb24gY2hlY2tfc3RpY2t5IHRvIGNoZWNrIGFuZCBwdXNoIHBlbmRpbmcgc3RpY2t5IGV2ZW50cy4KCSAgTW92ZSB0aGUgaGFuZGxpbmcgb2YgdGhlIHJlc3VsdCBvZiBwdXNoaW5nIHRoZSBzdGlja3kgZXZlbnQgaW5zaWRlIHRoZQoJICBwdXNoX2V2ZW50IGZ1bmN0aW9uLCB3ZSBuZWVkIHRvIG1hcmsgdGhlIGV2ZW50IGFzIHJlY2VpdmVkIHdoZW4gaXQgd2FzIHB1c2hlZAoJICBjb3JyZWN0bHkuCgkgIE1vdmUgdGhlIHN0aWNreSBldmVudHMgY29kZSBvdXRzaWRlIG9mIGdzdF9wYWRfcHVzaF9ldmVudF91bmNoZWNrZWQgYW5kCgkgIG1ha2UgaXQgcHVyZWx5IGhhbmRsZSBzZW5kaW5nIHRoZSBldmVudCB0byB0aGUgcGVlci4KCSAgd2hlbiBwdXNoaW5nIGEgc3RpY2t5IGV2ZW50LCBmaXJzdCBzdG9yZSBpdCBvbiB0aGUgcGFkLiBUaGVuIGNoZWNrIGFuZCBwdXNoIGFueQoJICBwZW5kaW5nIHN0aWNreSBldmVudHMgd2hlbiB3ZSBnZXQgYSBzZXJpYWxpemVkIG9yIHN0aWNreSBldmVudCBvbiBhIHNyY3BhZC4gVGhpcwoJICBmaXhlcyB0aGUgaXNzdWUgd2hlcmUgc3RpY2t5IGV2ZW50cyBhcmUgbm90IHB1c2hlZCB3aGVuIGFuIGV2ZW50IGlzIHB1c2hlZC4KCjIwMTItMDMtMDkgMTE6NTI6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc3RvcmUgdGhlIHJlY2VpdmVkIHJlc3VsdCBmcm9tIF9mb3JlYWNoCgkgIElmIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIGNoYW5nZXMgdGhlIHJlY2VpdmVkIHN0YXRlIG9mIHRoZSBzdGlja3kgZXZlbnQsIG1ha2UKCSAgc3VyZSB3ZSByZW1lbWJlciB0aGF0LgoKMjAxMi0wMy0wOSAxMTo1MjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgY29tbWVudAoKMjAxMi0wMy0wOSAxMTo0OTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogYWRkIHRlc3QgdG8gY2hlY2sgc3RpY2t5IGV2ZW50cyBvcmRlcgoJICBTdGlja3kgZXZlbnRzIHB1c2hlZCBvbiBhbiB1bmxpbmtlZCBwYWQgc2hvdWxkIGJlIHN0b3JlZCBvbiB0aGUgcGFkLiBXaGVuIHRoZQoJICBwYWQgaXMgdGhlbiBsaW5rZWQgYW5kIGFuIGV2ZW50IGlzIHB1c2hlZCwgdGhlIGV2ZW50IHNob3VsZCBiZSBtZXJnZWQgd2l0aCB0aGUKCSAgYWxyZWFkeSBleGlzdGluZyBzdGlja3kgZXZlbnRzIGFuZCB0aGVuIHRoZSBzdGlja3kgZXZlbnRzIHNob3VsZCBiZSBwdXNoZWQgaW4KCSAgdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIG9yaWdpbmFsbHkgcHVzaGVkLgoKMjAxMi0wMy0wOSAxMTo0ODo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0OiBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEyLTAzLTA4IDIwOjA4OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHRlc3RzOiBwb3J0IHBpcGVsaW5lL3NlZWsgdGVzdCB0byAwLjExCgkgIERvZXNuJ3QgZmFpbCBpbiAwLjExIG9mIGNvdXJzZSwgYXQgbGVhc3Qgbm90IG9uIG15IG1hY2hpbmUuCgoyMDEyLTAzLTA4IDE5OjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbW1vbgoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHRhc2suYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oCgoyMDEyLTAzLTA4IDE2OjMwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgcGFkLCB0YXNrOiBpbXByb3ZlIGRlYnVnIGxvZ2dpbmcKCjIwMTItMDMtMDggMTY6MjY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBwYWRzLCBjb2xsZWN0cGFkczI6IGdldCByaWQgb2Ygc3VwZXJmbHVvdXMgYnJhY2tldHMgYXJvdW5kIHN0YXRpYyByZWMgbXV0ZXggY2FsbHMKCSAgTWFrZXMgaXQgcG9zc2libGUgdG8gZGVmaW5lIHRob3NlIGNhbGxzIHRvIHNvbWV0aGluZyBmb3IgdHJhY2luZy4KCjIwMTItMDMtMDggMTY6MjU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBjb21tb24gbW9kdWxlCgkgIEZvciBtYWtlIGZvby9iYXIuY2hlY2stbm9yZXBlYXQgdGFyZ2V0LgoKMjAxMi0wMy0wOCAxNToyMzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHRlc3RzOiBhZGQgbWluaW1hbCBiYXNlc3JjICEgc2luayBzZWVraW5nIHVuaXQgdGVzdAoJICBTaG91bGQgcmVwcm9kdWNlICdHU3RyZWFtZXItV0FSTklORyAqKjogd3JvbmcgU1RSRUFNX0xPQ0sgY291bnQgMCcKCSAgd2FybmluZ3MgKHdpdGggbWFrZSBwaXBlbGluZXMvc2Vlay50b3J0dXJlIG9yIHBpcGVsaW5lcy9zZWVrLmZvcmV2ZXIKCSAgYW55d2F5LCBzaW5jZSBpdCBhcHBlYXJzIHRvIGJlIHJhY3kpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwODQ2CgoyMDExLTEyLTI2IDAwOjE4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHZhbHVlOiByZW1vdmUgZ3N0X3ZhbHVlX3JlZ2lzdGVyX3tzdWJ0cmFjdCx1bmlvbixpbnRlcnNlY3R9X2Z1bmMoKSBBUEkKCSAgVGhlcmUgaXNuJ3QgcmVhbGx5IGFueSBuZWVkIHRvIHByb3ZpZGUgcHVibGljIEFQSSBmb3IgdGhhdC4gSXQncyBub3QKCSAgdXNlZCBhbnl3aGVyZSBpbiBwcmFjdGljZSwgYW5kIHdlIGFpbSB0byBwcm92aWRlIGFuIEFQSSB0aGF0IHdvcmtzCgkgIGZvciBHc3RDYXBzLCBub3Qgc29tZSBraW5kIG9mIGdlbmVyaWMgc2V0IG1hbmlwdWxhdGlvbiBBUEkgYmFzZWQgb24KCSAgR1ZhbHVlLiBNYWtpbmcgdGhpcyBwcml2YXRlIGFsc28gbWFrZXMgaXQgZWFzaWVyIHRvIG9wdGltaXNlIHRoaXMKCSAgbGF0ZXIuIFdlIGNhbiBhbHdheXMgcHV0IGl0IGJhY2sgaWYgc29tZW9uZSBhY3R1YWxseSBuZWVkcyBpdC4KCjIwMTItMDMtMDggMTA6NDc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCByZWZjb3VudCBlcnJvcgoKMjAxMi0wMy0wOCAwOTo0NTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJldHVybiBBTlkgZm9yIGEgcGFkIHdpdGhvdXQgdGVtcGxhdGUKCSAgQmVjYXVzZSBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGVfY2FwcygpIHJldHVybnMgQU5ZIHdoZW4gdGhlcmUgaXMgbm8gdGVtcGxhdGUsCgkgIHRoZSBxdWVyeSBjYXBzIGZ1bmN0aW9uIHNob3VsZCBhbHNvIHJldHVybiBBTlkgd2hlbiB0aGVyZSBpcyBubyB0ZW1wbGF0ZSAoYW5kIG5vCgkgIHBhZCBjdXJyZW50IGNhcHMpIGluc3RlYWQgb2YgRU1QVFkuCgoyMDEyLTAzLTA4IDA5OjQ0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNtYWxsIGNsZWFudXAKCjIwMTItMDMtMDcgMTU6MzQ6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGNvbW1lbnQKCjIwMTItMDMtMDggMTA6MzI6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggbWVyZ2UgbWlzdGFrZQoKMjAxMi0wMy0wOCAxMDoxOTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jCgoyMDEyLTAzLTA3IDExOjIzOjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYXJyYW5nZSBmb3IgcHJvcGVybHkgZGlzam9pbnQgZnJhbWUgZmxhZ3MKCjIwMTItMDMtMDYgMTU6MTc6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZGVsYXkgcG9vbCBhY3RpdmF0aW9uCgkgIERlbGF5IHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBidWZmZXJwb29sIHVudGlsIHdlIGFjdHVhbGx5IG5lZWQgYSBidWZmZXIgZnJvbSB0aGUKCSAgcG9vbC4KCjIwMTItMDMtMDYgMTI6Mjg6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggJ3NlbGYtY29tcGFyaXNvbiBhbHdheXMgZXZhbHVhdGVzIHRvIHRydWUnCgkgIFRoaXMgd2FzIHJlYWxseSBhIGJ1Zy4KCjIwMTItMDMtMDYgMTI6MjQ6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBGaXggJ3VzZSBvZiBsb2dpY2FsICcmJicgd2l0aCBjb25zdGFudCBvcGVyYW5kJyBjb21waWxlciB3YXJuaW5nCgkgIFRoaXMgaXMgYWN0dWFsbHkgYSByZWFsIGJ1Zy4KCjIwMTItMDMtMDYgMTI6MjM6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCAnZXF1YWxpdHkgY29tcGFyaXNvbiB3aXRoIGV4dHJhbmVvdXMgcGFyZW50aGVzZXMnIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDMtMDYgMTI6MTY6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCAnY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBlbnVtIGV4cHJlc3Npb24gPj0gMCBpcyBhbHdheXMgdHJ1ZScgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMy0wNSAxNToyMzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkb24ndCBwcm9wb3NlX2FsbG9jYXRpb24gYmVmb3JlIG5lZ290aWF0aW9uCgkgIEFuc3dlciB0aGUgYWxsb2NhdGlvbiBxdWVyeSB3aXRoIEZBTFNFIHdoZW4gd2UgYXJlIG5vdCBuZWdvdGlhdGVkIHlldCBiZWNhdXNlIGF0CgkgIHRoYXQgcG9pbnQgd2UgaGF2ZSBubyBpZGVhIGlmIHdlIG5lZWQgdG8gcHJveHkgdGhlIGFsbG9jYXRpb24gcXVlcnkgb3Igbm90LgoKMjAxMi0wMy0wNSAxNDo0MToxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBoYW5kbGluZyBvZiBtdWx0aXBsZSBuZXdzZWdtZW50IGV2ZW50cwoJICBQcmV2aW91c2x5IG9ubHkgdGhlIGxhc3Qgd291bGQgYmUgcHVzaGVkLCB3aGljaCB3b3VsZCBjYXVzZQoJICBpbnZhbGlkIHJ1bm5pbmcgdGltZXMgZG93bnN0cmVhbS4gVGhpcyBhbHNvIGZpeGVzIHRoZSBoYW5kbGluZwoJICBvZiB1cGRhdGUgbmV3c2VnbWVudCBldmVudHMuCgoyMDEyLTAzLTA1IDE0OjI1OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWxzbyBmbHVzaCB0aGUgY2xvc2Vfc2VnbWVudAoJICBQdXNoaW5nIHRoaXMgYWZ0ZXIgZmx1c2hpbmcgd2lsbCBjb25mdXNlIGRvd25zdHJlYW0uCgoyMDEyLTAzLTA1IDE0OjIzOjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtb3ZlIG9ic29sZXRlIGNvZGUgYW5kIG1vdmUgZ2FwIGhhbmRsaW5nIHRvIHRoZSBjb3JyZWN0IHBsYWNlCgkgIFRoZSBzZWdtZW50IHN0YXJ0IGFkanVzdG1lbnQgY29kZSBpbiBwdWxsIG1vZGUgc2hvdWxkIG5ldmVyIHRyaWdnZXIKCSAgYW55bW9yZSBiZWNhdXNlIHRoZSBiaXNlY3Rpb24gY29kZSBlYXJsaWVyIHdvdWxkIGhhdmUgYWxyZWFkeSBtYWRlCgkgIHN1cmUgdGhhdCB3ZSdyZSBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbi4KCSAgQWxzbyBtb3ZlIHRoZSBnYXAgaGFuZGxpbmcgc29tZSBsaW5lcyBiZWxvdyBhZnRlciBzZW5kaW5nIHRoZSBjdXJyZW50bHkKCSAgY29uZmlndXJlZCBzZWdtZW50cy4gT3RoZXJ3aXNlIHdlIG1pZ2h0IGZpbGwgZ2FwcyBpbiBhIHNlZ21lbnQgdGhhdCBpcwoJICBub3QgY29uZmlndXJlZCBkb3duc3RyZWFtIHlldC4KCjIwMTItMDMtMDUgMTM6MTI6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBDbGVhciBzb21lIG1vcmUgc3RhdGUgd2hlbiByZWNlaXZpbmcgRkxVU0hfU1RPUAoJICBMaWtlIHBlbmRpbmcgc2VyaWFsaXplZCBldmVudHMgYW5kIHRoZSBjdXJyZW50bHkgY2FjaGVkIGJ1ZmZlci4KCjIwMTItMDMtMDUgMTM6MDA6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPbmx5IHF1ZXVlIHNlcmlhbGl6ZWQgZXZlbnRzIGZvciBzZW5kaW5nIHRoZW0gbGF0ZXIKCjIwMTItMDMtMDUgMDA6MzQ6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGxpYmdzdGNoZWNrOiBleHBvcnQgZ3N0X2NvbnNpc3RlbmN5X2NoZWNrZXJfYWRkX3BhZCgpCgkgIEZpeCBidWlsZCBvZiB0aGUgYWRkZXIgdW5pdCB0ZXN0IGluIC1iYXNlIGFnYWluLgoKMjAxMi0wMy0wMiAxNzozMjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVmaW5lIG1ldGFkYXRhIGZpbHRlciBhbmQgdHJhbnNmb3JtCgkgIEFkZCBhIHZtZXRob2QgdG8gZmlsdGVyIG1ldGFkYXRhIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB1cHN0cmVhbS4gQnkgZGVmYXVsdCwKCSAgZG9uJ3QgcGFzcyBhbnl0aGluZy4KCSAgQWRkIGEgdm1ldGhvZCB0byB0cmFuc2Zvcm0gbWV0YWRhdGEgZnJvbSB0aGUgaW5wdXQgYnVmZmVyIHRvIHRoZSBvdXRwdXQgYnVmZmVyLgoJICBCeSBkZWZhdWx0LCBub3RoaW5nIGlzIHRyYW5zZm9ybWVkIG9yIGNvcGllZC4KCjIwMTItMDMtMDIgMTc6MDQ6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdDogaW5jbHVkZSBnc3RtZXRhLmgKCjIwMTItMDMtMDIgMTc6MDM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgbW9yZSBkZWJ1ZyBpbmZvCgoyMDEyLTAzLTAyIDEzOjAyOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMy0wMiAxMzowMjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBpbXByb3ZlIG1ldGFkYXRhIHRlc3QKCjIwMTItMDMtMDIgMTI6NDU6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCBib29sZWFuIHRvIHNpZ25hbCBhIHJlZ2lvbiBjb3B5CgkgIEFkZCBhIGJvb2xlYW4gdG8gdGhlIG1ldGFkYXRhIGNvcHkgdHJhbnNmb3JtIHRoYXQgc2lnbmFscyBpZiBhIG9ubHkgYQoJICByZWdpb24gaXMgY29waWVkLgoKMjAxMi0wMy0wMiAxMjoxNjowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXRlbmN5Y2hlY2tlcjogZG9uJ3QgZmFpbCBvbiBtdWx0aXBsZSBmbHVzaF9zdGFydCBldmVudHMKCSAgVGhpcyBzZWVtcyB0byBiZSBva2F5IGFmdGVyIGEgaXJjIGRpc2N1c3Npb24uCgoyMDEyLTAzLTAyIDExOjU3OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogdHJhbnNmb3JtIGRvY3MKCSAgVXNlIGdzdC0gcHJlZml4IGZvciBtZXRhZGF0YSB0cmFuc2Zvcm0gdHlwZXMuCgoyMDEyLTAzLTAyIDExOjA0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogZml4IGNvbW1lbnQKCjIwMTItMDMtMDIgMTE6MDU6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgZ3N0OiBSZW1vdmUgZ3N0bWFyc2hhbC5bY2hdIGNvbXBsZXRlbHkgYW5kIHVzZSB0aGUgZ2VuZXJpYyBtYXJzaGFsbGVyCgkgIEZpeGVzIGJ1ZyAjNjcxMTMwLgoKMjAxMi0wMy0wMiAxMDo1MTo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogRG9uJ3QgaW5zdGFsbCBnc3RtYXJzaGFsLmgKCSAgVGhlIGdlbmVyaWMsIEZGSSBiYXNlZCBtYXJzaGFsbGVyIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlc2UKCSAgYW5kIHdlIGRlZmluaXRlbHkgc2hvdWxkbid0IGV4cG9ydCB0aGUgbWFyc2hhbGxlcnMgaW4gb3VyIHB1YmxpYyBBUEkuCgoyMDEyLTAzLTAxIDE3OjM5OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGltcHJvdmUgZGVidWdnaW5nCgkgIEFkZCBjYXRlZ29yeSBmb3IgbWV0YWRhdGEgZGVidWcKCjIwMTItMDMtMDEgMTc6Mzg6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDMtMDEgMTc6Mzg6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDMtMDEgMTU6MTg6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBtZXRhZGF0YSB0YWdnZWQgd2l0aCB0aGUgbWVtb3J5IHRhZwoJICBSZW1vdmUgbWV0YWRhdGEgdGhhdCBkZXNjcmliZXMgdGhlIHBhcnRpY3VsYXIgbWVtb3J5IG9mIHRoZSBidWZmZXIgaXQgaXMKCSAgYXR0YWNoZWQgdG8uIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIGluIG5vbi1wYXNzdGhyb3VnaCBtb2RlIHdlIHdpbGwgYWxsb2NhdGUKCSAgbmV3IG1lbW9yeSBmb3Igb3VyIG91dHB1dCBidWZmZXIuCgoyMDEyLTAzLTAxIDE1OjE3OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIHRhZyBmb3IgbWVtb3J5IG1ldGFkYXRhCgoyMDEyLTAzLTAxIDE0OjQ5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZCB0byByZW1vdmUgYWxsb2NhdGlvbl9tZXRhCgkgIEFsc28gZ19yZXR1cm5faWZfZmFpbCBmb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW5zdGVhZCBvZiBzaWxlbnRseSBmYWlsaW5nLgoKMjAxMi0wMy0wMSAxNDozMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcm9wb3NlX2FsbG9jYXRpb24KCSAgSW1wcm92ZSB0aGUgcHJvcG9zZSBhbGxvY2F0aW9uIHZtZXRob2QgYnkgcGFzc2luZyB0aGUgZG93bnN0cmVhbSBhbGxvY2F0aW9uCgkgIHF1ZXJ5IHRvIGl0LiBUaGlzIHdheSB0aGUgdm1ldGhvZCBpbXBsZW1lbnRhdGlvbiBjYW4gdXNlIHByb3BlcnRpZXMgb2YgdGhlCgkgIGRvd25zdHJlYW0gYWxsb2NhdGlvbiB0byBnZW5lcmF0ZSB0aGUgdXBzdHJlYW0gcXVlcnkgcmVzdWx0LiBJZiB0aGVyZSBpcyBubwoJICBkb3duc3RyZWFtIHF1ZXR5LCBpdCBtZWFucyB0aGF0IHRoZSBlbGVtZW50IGlzIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZS4KCSAgSW1wbGVtZW50IGEgZGVmYXVsdCBkZWNpZGVfYWxsb2NhdGlvbi4KCjIwMTItMDMtMDEgMTE6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2xlYXIgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIHBhc3N0aHJvdWdoCgkgIENsZWFyIHRoZSBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgd2hlbiB3ZSBvcGVyYXRlIGluIHBhc3N0aHJvdWdoLgoKMjAxMi0wMy0wMSAxMTowNjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICB0ZXN0czogZml4IG9sZCBjYXBzIGluIHRlc3RzIG5vdyB0aGF0IGNvcmUgd2FybnMKCjIwMTItMDMtMDEgMTQ6NTE6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGxpYnM6IEZpeCBzb21lIG1lcmdlIG1pc3Rha2VzCgoyMDEyLTAzLTAxIDE0OjQzOjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jCgoyMDEyLTAyLTI4IDEyOjAzOjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggc29tZSBkZWJ1ZyBtZXNzYWdlIHR5cG9zCgoyMDEyLTAyLTI5IDIxOjU3OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBjb25zaXRlbmN5Y2hlY2tlcjogYWRkIGhhbmRsaW5nIGZvciBzaW5rLXBhZHMKCSAgQWRkIGEgcGFkLXByb2JlIGZvciBzaW5rLXBhZHMuIE9uZSBjYW4gbm93IGFkZCBleHRyYSBwYWRzIChiZWxvbmdpbmcgdG8gdGhlIHNhbWUKCSAgZWxlbWVudCkgdG8gYSBjaGVja2VyLiBUaGlzIGFsbG93cyB1cyB0byBleHRlbmQgdGhlIGNoZWNrcy4KCjIwMTItMDItMjkgMTc6MjA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogc3BsaXQgcmVnaXN0cmF0aW9uIG9mIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KCSAgU3BsaXQgb3V0IHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIG1ldGFkYXRhIEFQSSBhbmQgaXRzIGltcGxlbWVudGF0aW9uLiBNYWtlIGEKCSAgR1R5cGUgZm9yIGVhY2ggbWV0YWRhdGEgQVBJLiBUaGlzIGFsbG93cyB1cyB0byBzdG9yZSBleHRyYSBpbmZvcm1hdGlvbiB3aXRoIHRoZQoJICBBUEkgdHlwZSBzdWNoIGFzIHRoZSB0YWdzLgoJICBDaGFuZ2UgdGhlIGJ1ZmZlciBBUEkgc28gdGhhdCB3ZSBjYW4gZ2V0IHRoZSBtZXRhZGF0YSB1c2luZyB0aGUgQVBJIEdUeXBlLgoJICBDaGFuZ2UgdGhlIHF1ZXJ5IEFQSSBzbyB0aGF0IHdlIHVzZSB0aGUgbWV0YWRhdGEgQVBJIEdUeXBlIGluIHRoZSBhbGxvY2F0aW9uCgkgIHF1ZXJ5IGluc3RlYWQgb2YgYSBzdHJpbmcuCgkgIFVwZGF0ZSBuZXRhZGRyZXNzIGFuZCB1bml0IHRlc3RzCgoyMDEyLTAyLTI5IDE2OjAwOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWlub2JqZWN0OiBzbWFsbCAuaCBpbmRlbnQgZml4CgoyMDEyLTAyLTI5IDEyOjQxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBwcmludCBhIGdfd2FybmluZygpIGlmIHNvbWVvbmUgdHJpZXMgdG8gY29uc3RydWN0IDAuMTAtc3R5bGUgcmF3IGF1ZGlvL3ZpZGVvIGNhcHMKCjIwMTItMDItMjkgMDg6NDQ6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhbHNvIGNoZWNrIGZvciBkdXBsaWNhdGVkIGZsdXNoX3N0YXJ0cwoKMjAxMi0wMi0yOCAyMDozNjo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYWRkIG1vcmUgbG9nZ2luZwoKMjAxMi0wMi0yOCAxNjoxNzo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBhZGQgcmV0dXJuIHZhbGUgdG8gdHJhbnNmb3JtCgkgIEFkZCBhIGJvb2xlYW4gcmV0dXJuIHZhbHVlIHNvIHRoYXQgd2UgY2FuIHNlZSB3aGVuIGEgdHJhbnNmb3JtIGZhaWxzLgoKMjAxMi0wMi0yOCAxMjo1MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBhZGQgbWV0aG9kIHRvIGNoZWNrIGZvciBhIHRhZwoKMjAxMi0wMi0yOCAxMjo1MToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0CgoyMDEyLTAyLTI4IDExOjM0OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkgIG1ldGE6IGFkZCBzdXBwb3J0IHRvIHRhZ2dpbmcgdGhlIG1ldGFkYXRhCgkgIEFkZCBzdXBwb3J0IGZvciBhZGRpbmcgdGFncyB0byB0aGUgbWV0YWRhdGEuIHdpdGggc29tZSBzdGFuZGFyZCBrZXlzLCB0aGlzCgkgIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvIGRlc2NyaWJlIHdoYXQgdGhlIG1ldGFkYXRhIHJlZmVycyB0by4gV2Ugc2hvdWxkIGJlCgkgIGFibGUgdG8gdXNlIHRoaXMgaW5mb3JtYXRpb24gdG8gZGVjaWRlIGlmIGEgdHJhbnNmb3JtYXRpb24gZGVzdHJveXMgdGhlIG1ldGFkYXRhCgkgIG9yIG5vdC4KCjIwMTItMDItMjcgMTM6MzU6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGluIHNlbGVjdGVkIGZpbGVzLCBmb3IgZ192YWx1ZV9hcnJheV8qIG1vc3RseQoKMjAxMi0wMi0yNyAxMTo0NjowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGluY3JlYXNlIGJ1cyB0ZXN0IHRpbWVvdXQKCjIwMTItMDItMjEgMjA6NDM6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBtYWtlIGRhdGV0aW1lIHRlc3QgbW9yZSByZWxpYWJseSB3aGVuIGNvbXBhcmluZyB0d28gYWxtb3N0IGlkZW50aWNhbCBub3dzCgkgIEFjY291bnQgZm9yIHJvdW5kaW5nIGVycm9ycyBpbiBzb21lIHBsYWNlcywgYW5kIHRoYXQgdHdvIG5vd3MgYXJlCgkgIG5vdCBhbHdheXMgZW50aXJlbHkgaWRlbnRpY2FsLCBzbyBhbGxvdyBzb21lIGxlZXdheSB3aGVuIGNvbXBhcmluZwoJICBtaWNyb3NlY29uZHMgYW5kIHNlY29uZHMuIFJhbiBpbnRvIHRoaXMgdG9vIG9mdGVuLCBlc3AuIHdoZW4gdGhlCgkgIHN5c3RlbSBpcyB1bmRlciBsb2FkLgoKMjAxMi0wMi0yNyAwOTo0ODowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIHJlbW92ZSBzb21lIHVzZWxlc3MgaW5jbHVkZXMgaW4gLmgKCjIwMTItMDItMjcgMDk6MDI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCSAgRXhwb3NlIG1ldGhvZHMgdG8gZ2V0IGFuZCBzZXQgdGhlIHRpbWVvdXQgYmVjYXVzZSBzdWJjbGFzc2VzIHVzZXMgdGhpcy4KCjIwMTItMDItMjYgMjA6NDU6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoKMjAxMi0wMi0yNiAyMDo0NDo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAyLTI2IDE2OjMyOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogbWFrZSBtb3JlIGZpZWxkcyBwcml2YXRlCgoyMDEyLTAyLTI3IDAwOjA5OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZml4IGNvbXBpbGF0aW9uIGFmdGVyIG1lcmdlCgoyMDEyLTAyLTI3IDAwOjA4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIE5FV1MKCSAgUkVMRUFTRQoJICBjb25maWd1cmUuYWMKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeQoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbAoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaAoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmMKCSAgd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaAoKMjAxMi0wMi0yNiAyMzoxMToyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogcmVzY3VlIHRoZSBhbm5vdGF0aW9uIGZyb20gY29sbGVjdHBhZHMKCjIwMTItMDItMjYgMjM6MTA6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGZpeCBhIHR5cG8gaW4gY29tbWVudAoKMjAxMi0wMi0yNiAyMjo1NzowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogbW92ZSAiTVQgc2F2ZSIgdGFncyB0byBkb2MgYm9keQoJICBJdCBpcyBub3QgdXNlZnVsIHRvIGhhdmUgIk1UIHNhZmUiIHRhZ3MgcmFuZG9tbHkgaW4gYm9keSwgcmV0dXJucyBvciBzaW5jZSBwYXJhZ3JhcGhzLgoKMjAxMi0wMi0yNSAxNToxODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGltcGxlbWVudCBHc3RCYXNlU2luazo6cXVlcnkgaW5zdGVhZCBvZiBtZXNzaW5nIHdpdGggdGhlIHBhZAoKMjAxMi0wMi0yNSAxNTowODo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmZHNpbms6IGltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5CgkgIFdlIG1heSBvciBtYXkgbm90IHN1cHBvcnQgc2Vla2luZy4gc3Rkb3V0IHRvIGEKCSAgdGVybWluYWwgZG9lc24ndCBzdXBwb3J0IHNlZWtpbmcsIGZvciBleGFtcGxlLCBidXQKCSAgLi4uICEgZmRzaW5rID4gZmlsZS5mb28ganVzdCBtaWdodC4KCjIwMTItMDItMjUgMTU6MDc6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogaW1wbGVtZW50IFNFRUtJTkcgcXVlcnkKCSAgV2UgbWF5IG9yIG1heSBub3QgZG8gc2Vla2luZywgZGVwZW5kcyBvbiB0aGUKCSAgb3V0cHV0IGZpbGUvZGV2aWNlIHJlYWxseSwgaXQgZG9lc24ndCBoYXZlIHRvCgkgIGJlIGEgZmlsZSBhZnRlciBhbGwuCgoyMDEyLTAyLTI1IDE1OjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGFuc3dlciBTRUVLSU5HIHF1ZXJ5CgkgIFdlIGRvbid0IGRvIHNlZWtpbmcsIGluIGNhc2UgYW55b25lIHdhbnRzIHRvIGtub3cuCgoyMDEyLTAyLTI0IDIzOjM5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZml4IGxzZWVrKCkgcmV0dXJuIGNvZGUgaGFuZGxpbmcKCSAgbHNlZWsoKSByZXR1cm5zIHRoZSBvZmZzZXQgaWYgc3VjY2Vzc2Z1bCwgYW5kIHRoaXMgaXMgIT0gMCBhbmQKCSAgZG9lcyBub3QgaW5kaWNhdGUgYW4gZXJyb3IuIEFuZCBpZiBpdCBkb2VzIGFjdHVhbGx5IGZhaWwsIGRvbid0CgkgIHJldHVybiBGQUxTRSAoMCkgYXMgYW4gaW50LCBidXQgLTEuIE5vbmUgb2YgdGhlc2UgdGhpbmdzIGFyZQoJICBsaWtlbHkgdG8gaGF2ZSBtYWRlIGEgZGlmZmVyZW5jZSwgZXZlci4gSSBkb24ndCB0aGluayB0aGUgb2Zmc2V0CgkgIHNlZWsgY2FuIGV2ZXIgYWN0dWFsbHkgaGFwcGVuLCB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uIGFuZCB0aGUKCSAgY3VycmVudCBvZmZzZXQgc2hvdWxkIGFsd2F5cyBiZSBpbmNyZWFzZWQgaW4gbG9jayBzdGVwLCB1bmxlc3MKCSAgdGhlcmUgd2FzIGFuIGVycm9yIGluIHdoaWNoIGNhc2Ugd2UnZCBqdXN0IGVycm9yIG91dC4KCjIwMTItMDItMjQgMjM6MTk6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmb3JnZXQgdG8gY2xlYW4gdXAgcmVnaXN0cnkgdGVtcCBmaWxlIGluIGFub3RoZXIgZXJyb3IgY2FzZQoJICBBbHNvIGNsZWFuIHVwIHRlbXAgZmlsZSBpZiB3ZSBnZXQgYW4gZXJyb3IgZHVyaW5nIHdyaXRlKCkgcmF0aGVyCgkgIHRoYW4ganVzdCB3aGVuIGRvaW5nIGZzeW5jKCkgb3IgY2xvc2UoKS4KCjIwMTItMDItMjQgMTU6MjQ6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCByYWNlCgkgIEFmdGVyIGEgd3JpdGVyIGhhcyB3cml0dGVuIHRvIGl0cyByZXNlcnZlZCB3cml0ZSBsb2NhdGlvbiwgaXQgY2FuIG9ubHkgbWFrZSB0aGUKCSAgbG9jYXRpb24gYXZhaWxhYmxlIGZvciByZWFkaW5nIGlmIGFsbCBvZiB0aGUgd3JpdGVycyB3aXRoIGxvd2VyIGxvY2F0aW9ucyBoYXZlCgkgIGZpbmlzaGVkLgoKMjAxMi0wMi0yNCAxMjo1MToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHN1YnRsZSByYWNlCgkgIEZpeCBhIHJhY2Ugd2hlcmUgdGhlIHJlYWRlciB3b3VsZCBzZWUgdGhlIHVwZGF0ZWQgdGhlIHRhaWwgcG9pbnRlciBiZWZvcmUgdGhlCgkgIHdyaXRlIGNvdWxkIHdyaXRlIHRoZSBkYXRhIGludG8gdGhlIHF1ZXVlLiBGaXggdGhpcyBieSBoYXZpbmcgYSBzZXBhcmF0ZSByZWFkZXIKCSAgdGFpbCBwb2ludGVyIHRoYXQgaXMgb25seSBpbmNyZW1lbnRlZCBhZnRlciB0aGUgd3JpdGVyIHdyb3RlIHRoZSBkYXRhLgoKMjAxMi0wMi0yNCAxMTowMDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlY29uZmlndXJlIG1ldGhvZHMKCSAgUmVuYW1lIGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0IHRvIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZV9zaW5rIGJlY2F1c2UKCSAgdGhhdCBpcyB3aGF0IGl0IGRvZXMuIEFsc28gcmVtb3ZlIHRoZSBjYXBzIGFuZCBzaXplIGJlY2F1c2UgdGhhdCBpcyBub3QgbmVlZGVkLgoJICBSZW5hbWUgZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlIHRvIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZV9zcmMuCgkgIFJlbW92ZSBzb21lIG9sZCB1bnVzZWQgY29kZSBpbiBjYXBzZmlsdGVyLgoKMjAxMi0wMi0yNCAxMDoyMzoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBmbGVzaCBvdXQgdGhlIG1ldGFkYXRhIHRyYW5zZm9ybQoJICBGbGVzaCBvdXQgdGhlIHRyYW5zZm9ybSBtZXRob2QuIEFkZCBhIHR5cGUgYW5kIGV4dHJhIGluZm8gdG8gdGhlIHRyYW5zZm9ybQoJICBmdW5jdGlvbiBzbyB0aGF0IGltcGxlbWVudGF0aW9uIGNhbiB0cmFuc2Zvcm0gdGhlIG1ldGFkYXRhLgoJICBSZW1vdmUgdGhlIGNvcHkgZnVuY3Rpb24gYW5kIHJlcGxhY2Ugd2l0aCB0aGUgbW9yZSBnZW5lcmljIHRyYW5zZm9ybS4KCjIwMTItMDItMjQgMTA6MjM6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wMi0yMyAwODo0ODoyMiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRml4IGdhcCBpbiBNYWtlZmlsZQoKMjAxMi0wMi0yMyAwODo0ODoxMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIHNwZWxsaW5nIGZpeAoKMjAxMS0xMi0yNiAxNjo0NToyMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBmaXggc3BlbGxpbmcgb2Ygd3JpdGFibGUKCjIwMTItMDItMjMgMTU6MzI6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIHVzZXJfZGF0YSB0byBHc3RNYXBJbmZvCgkgIEFkZCBleHRyYSBwb2ludGVycyB0byBHc3RNYXBJbmZvIHNvIHRoYXQgaW1wbGVtZW50YXRpb25zIGNhbiB1c2UgdGhlc2UgdG8gc3RvcmUKCSAgZXh0cmEgaW5mby4KCjIwMTItMDItMjMgMTU6MzI6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBpbXByb3ZlIGRvY3MKCjIwMTItMDItMjMgMTI6MDk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTkVXUzoKCSogUkVMRUFTRToKCSAgVXBkYXRlIE5FV1MgYW5kIFJFTEVBU0UgYXMgd2VsbAoKMjAxMi0wMi0yMyAxMTo1OToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSB0cmFuc2Zvcm0gbG9jawoKMjAxMi0wMi0yMyAxMDozNjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJ1bXAgdmVyc2lvbiBhZnRlciByZWxlYXNlcwoKMjAxMi0wMi0yMyAxMTowODoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHRyYW5zZm9ybSBsb2NrCgkgIFRoaXMgaXMgbm90IG5lZWRlZCBhbnltb3JlIGJ5IHRoZSBiYXNlY2xhc3MuIHN1YmNsYXNzZXMgc2hvdWxkIGRvIHRoZWlyIG93bgoJICBsb2NraW5nIHdoZW4gbmVlZGVkLgoKMjAxMi0wMi0yMyAxMDoxMjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGNsZWFudXBzCgkgIENsZWFuIHVwIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBUaGUgcGFzc3Rocm91Z2ggdmFyaWFibGUgaXMgcHJvdGVjdGVkIHdpdGggdGhlIG9iamVjdCBsb2NrLgoKMjAxMi0wMi0yMiAxNToyNjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcm9wb3NlX2FsbG9jYXRpb24KCSAgQWx3YXlzIGNhbGwgdGhlIHByb3Bvc2VfYWxsb2NhdGlvbiBtZXRob2QgYW5kIHByb3ZpZGUgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uCgkgIHRoYXQgcGFzc2VzIHRoZSBxdWVyeSBvbiBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gYWxzbyBjYWxsCgkgIHRoaXMuIEFsc28gcGFzcyBpZiB0aGUgdHJhbnNmb3JtIGlzIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhhdCB0aGUKCSAgaW1wbGVtZW50YXRpb24gY2FuIGFkanVzdCBpdHMgYWxnb3JpdGhtLgoKMjAxMi0wMi0yMiAxMjoyNDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zOiBpbXByb3ZlIGZpeGF0ZV9jYXBzIGZ1bmN0aW9uCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gYWxzbyBpbXBsZW1lbnQgbm9uLWlucGxhY2UgZml4YXRlIGZ1bmN0aW9ucy4gTGV0IHRoZSBmaXhhdGUKCSAgZnVuY3Rpb24gbWFrZSB0aGUgY2FwcyB3cml0YWJsZSB3aGVuIG5lZWRlZCBiZWNhdXNlIHNvbWUgZml4YXRlIGZ1bmN0aW9ucyBtaWdodAoJICBub3QgbmVlZCB0byBtb2RpZnkgdGhlIGNhcHMuCgoyMDEyLTAyLTIyIDAyOjAyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIG1lbW9yeTogbWFrZSBfbmV3X3dyYXBwZWQgdGFrZSB1c2VyX2RhdGEgYW5kIG5vdGlmeQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSBhIEdEZXN0cm95Tm90aWZ5IGFuZCB1c2VyX2RhdGEgZm9yCgkgIGdzdF9tZW1vcnlfbmV3X3dyYXBwZWQoKSB0aGlzIGFsbG93cyBmb3IgbW9yZSBmbGV4aWJsZSB3cmFwcGluZyBvZiBmb3JlaWduCgkgIG1lbW9yeSBibG9ja3MuCgoyMDEyLTAyLTAyIDEzOjQ1OjI1IC0wNTAwICBSeWFuIExvcnRpZSA8ZGVzcnRAZGVzcnQuY2E+CgoJKiBhdXRvZ2VuLnNoOgoJICBidWlsZDogYXZvaWQgdG91Y2hpbmcgLnBvIGZpbGVzIGR1cmluZyAnbWFrZScKCSAgQSBzaW1wbGUgd29ya2Fyb3VuZCB0byBkZWFsIHdpdGggR05VIGdldHRleHQgYXV0b21ha2UgaW50ZWdyYXRpb24KCSAgZmFpbGluZyB0byBkZWFsIHdpdGggZ2l0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MjA3CgoyMDEyLTAyLTIxIDIxOjA2OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogZGVmYXVsdCB0byBzeW5jLXN0cmVhbXM9dHJ1ZQoJICBJIHRoaW5rIHRoaXMgaXMgdGhlIGV4cGVjdGVkIGJlaGF2aW91ciwgYW5kIHdlIGNvdWxkbid0IGRvIHRoaXMKCSAgaW4gMC4xMCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVhc29ucywgc28gY2hhbmdlIGl0IG5vdy4KCjIwMTItMDItMjEgMTY6Mzk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogZml4IHF1ZXVlIHVuaXQgdGVzdCBhZnRlciBxdWV1ZSBjaGFuZ2VzCgoyMDEyLTAyLTIxIDE2OjM4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHNvbWUgb2xkIGNvZGUKCjIwMTItMDItMjEgMTY6Mzc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaGFuZGxlIE5VTEwgY2FsbGJhY2tzCgkgIFdoZW4gd2UgaGF2ZSBhIG1hdGNoaW5nIE5VTEwgY2FsbGJhY2ssIGFsc28gY29uc2lkZXIgdGhlICdjYWxsYmFjaycgbWFyc2hhbGxlZCwKCSAgdGhpcyB3YXkgYmxvY2tpbmcgcHJvYmVzIHdpdGggYSBOVUxMIGNhbGxiYWNrIGFjdHVhbGx5IHdvcmsuCgoyMDEyLTAyLTIxIDEyOjUyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHdlaXJkIGxpbmsgYmVoYXZpb3VyCgkgIFJlbW92ZSB0aGUgbGluayBmdW5jdGlvbnMgYW5kIGFsd2F5cyBzdGFydCB0aGUgcGFkIHRhc2sgb24gdGhlIHNyY3BhZC4gSWYKCSAgYXBwbGljYXRpb25zIG5lZWQgdG8gYXV0b3BsdWcgdGhleSBjYW4gcHV0IGEgYmxvY2tpbmcgcHJvYmUgb24gdGhlIHNyY3BhZCBsaWtlCgkgIHRoZXkgd291bGQgd2l0aCBhbnkgb3RoZXIgZWxlbWVudC4KCjIwMTItMDItMjEgMTI6NTI6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogaGFuZGxlIHB0cy9kdHMKCjIwMTItMDItMjEgMTI6NDY6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCjIwMTItMDItMjEgMTI6NDM6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhbHNvIGRlYnVnIGR0cy9wdHMKCjIwMTItMDItMjEgMTI6MTM6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBkZWJ1ZyBwdHMgYW5kIGR0cwoKMjAxMi0wMi0yMSAxMjoxMjoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoKMjAxMS0xMS0yNCAxODo0MDo0MCArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgVW5pdCB0ZXN0IGZvciBxdWV1ZSBzcmMgY2FwcyBub3RpZmljYXRpb24KCjIwMTItMDItMjAgMTQ6Mzc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogZml4IHVzZWxlc3Mgc2VnbWVudCB0ZXN0CgoyMDEyLTAyLTIwIDE0OjI5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZG9uJ3QgdXNlIGR1cmF0aW9uIGluIGNsaXBwaW5nCgkgIERvbid0IHVzZSB0aGUgZHVyYXRpb24gaW4gdGhlIHNlZ21lbnQgZm9yIGNhbGN1bGF0aW5nIGNsaXBwaW5nIHZhbHVlcy4KCSAgVGhlIGR1cmF0aW9uIGlzIGV4cHJlc3NlZCBpbiBzdHJlYW0gdGltZSBhbmQgY2xpcHBpbmcgaXMgZG9uZSBvbiB1bnJlbGF0ZWQKCSAgdGltZXN0YW1wIHZhbHVlcy4KCSAgVGhpcyB1c2VkIHRvIGJlIGludGVyZXN0aW5nIGZvciBlbGVtZW50cyB0aGF0IHVzZWQgdGhlIHNlZ21lbnQgc3RydWN0dXJlIHRvCgkgIGltcGxlbWVudCBzZWVraW5nIGJlY2F1c2UgdGhlbiB0aGV5IHdvdWxkIHVzZSBzdHJlYW0tdGltZSBmb3IgdGhlIHNlZ21lbnQKCSAgc3RhcnQvc3RvcCB2YWx1ZXMgYW5kIHRoZSBkdXJhdGlvbiBjb3VsZCBiZSB1c2VkIGFzIGEgZmFsbGJhY2sgd2hlbiB0aGUgc3RvcAoJICBwb3NpdGlvbiB3YXMgbm90IHNldC4gTm93IHRoYXQgdGhlIGNvbXBsZXRlIHNlZ21lbnQgZXZlbnQgaXMgcGFzc2VkIGJldHdlZW4KCSAgZWxlbWVudHMgd2UgY2Fubm90IGRvIHRoaXMgYW55bW9yZSBiZWNhdXNlIHNvbWUgZWxlbWVudHMgbWlnaHQgc3RvcmUgdGhlCgkgIGR1cmF0aW9uIGFuZCBzdGFydC9zdG9wIHZhbHVlcyB3aXRoIGRpZmZlcmVudCB0aW1lIGJhc2VzIGluIHRoZSBzZWdtZW50LgoKMjAxMi0wMi0yMCAxNDoyMjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGRlYnVnIHNlZ21lbnQgZHVyYXRpb24gYXMgd2VsbAoKMjAxMi0wMi0yMCAxMTo0NjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjb3B5IG1ldGFkYXRhIHdoZW4gdXNpbmcgYSBwb29sCgkgIGFsc28gY29weSB0aGUgbWV0YWRhdGEgd2hlbiB3ZSBhbGxvY2F0ZWQgYSBuZXcgYnVmZmVyIGZyb20gYSBwb29sCgoyMDEyLTAxLTI2IDAzOjAyOjQ4IC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgbmV0dGltZXBhY2tldDogZml4IHByaW50ZiBmb3JtYXQgd2FybmluZyBpbiBkZWJ1ZyBtZXNzYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ0OTEKCjIwMTItMDItMTggMDE6MDQ6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IG1vcmUgZG9jcwoKMjAxMi0wMi0xNyAxNTo1Mzo1OCAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBkb2MgZml4dXBzCgoyMDEyLTAyLTE3IDE1OjA5OjU2IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNb3ZlIHZhcmlhYmxlIGFuZCBhc3NpZ25tZW50IHRvIHdoZXJlIGl0J3MgbmVlZGVkCgoyMDEyLTAyLTE3IDE1OjA5OjA2IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgcmV0dXJuIHZhbHVlIG9mIGRlY2lkZV9hbGxvY2F0aW9uIHZtZXRob2QKCSAgSWYgaXQgZmFpbHMsIHByb3Blcmx5IHByb3BhZ2F0ZSB0aGUgZXJyb3IKCjIwMTItMDItMTcgMTU6MDg6MzIgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBSZW1vdmUgdXNlbGVzcyBhc3NpZ25tZW50CgoyMDEyLTAyLTE3IDE1OjA3OjU2IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogR3JhY2VmdWxseSBoYW5kbGUgTlVMTCBHdmFsdWUKCSAgQXZvaWRzIHVucmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyCgoyMDEyLTAyLTE4IDAwOjAzOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2Ugc29tZSBlcnJvcnMgY3JpdGljYWwKCSAgV2hlbiB3ZSBoYXZlIG5vIGNoYWluIGZ1bmN0aW9uIG9yIHdoZW4gd2UgYXJlIG9wZXJhdGluZyB0aGUgcGFkIGluIHRoZSB3cm9uZwoJICBtb2RlLCBlbWl0IGEgY3JpdGljYWwgaW5zdGVhZCBvZiBwb3N0aW5nIGFuIGVycm9yIG1lc3NhZ2UuIFRoaXMgaXMgY2VydGFpbmx5IGEKCSAgcHJvZ3JhbW1pbmcgZXJyb3IgYW5kIHdlIGNhbm5vdCBhbHdheXMgcG9zdCBhIG1lc3NhZ2UgKGxpa2Ugd2hlbiB0aGUgcGFkIGhhcyBubwoJICBwYXJlbnQpCgoyMDEyLTAyLTE4IDAwOjAzOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWxzbyBkZWJ1ZyBwb3NpdGlvbiBvZiBzZWdtZW50CgoyMDEyLTAyLTE3IDIzOjU5OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogYmFjayB0byBkZXZlbG9wbWVudAoKMjAxMi0wMi0xNyAxMTowMjo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjIgPT09CgoyMDEyLTAyLTE3IDExOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMS4yCgoyMDEyLTAyLTE1IDE3OjEyOjA5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdHdlYWsgc29tZSBkb2N1bWVudGF0aW9uCgoyMDEyLTAyLTE1IDE3OjExOjU0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogc2ltcGxpZnkgYW5kIGltcHJvdmUgZnJhbWUgc3RhdGUgaGFuZGxpbmcKCSAgVXNlIGEgZnJhbWUgZmxhZyB0byBzaWduYWwgdG8gc3ViY2xhc3MgaXQgc2hvdWxkIHJlc2V0IGFueSByZXRhaW5lZAoJICBzdGF0ZSB3LnIudC4gZnJhbWUgcGFyc2luZyBzaW5jZSB0aGUgZnJhbWUgYmVpbmcgcGFzc2VkIGlzICduZXcnLAoJICBpLmUuIG5vdCByZWxhdGVkIHRvIHByZXZpb3VzbHkgcGFzc2VkIGFuZCBwcm9jZXNzZWQgZGF0YS4KCjIwMTItMDItMTUgMTM6MTU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGxlYWsgZXZlbnQKCSAgSW4gdGhlIHVubGlrZWx5IGNhc2Ugd2hlcmUgdGhlIHN1YmNsYXNzIHNldCB0aGUgZXZlbnQgZnVuY3Rpb24gdG8gTlVMTCwgZG9uJ3QKCSAgbGVhayB0aGUgZXZlbnQuCgoyMDEyLTAyLTE1IDEyOjE5OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGFjdGl2YXRpb24gY29kZSBtb3JlIGxpa2Ugb3RoZXIKCSAgTWFrZSB0aGUgcGFkIGFjdGl2YXRpb24gY29kZSBsb29rIG1vcmUgbGlrZSBvdGhlciBhY3RpdmF0aW9uIGNvZGUuCgkgIE9ubHkgc3RhcnQgdGhlIHNpbmtwYWQgdGFzayB3aGVuIHdlIGRlY2lkZSB0byBhY3RpdmF0ZSBpbiBwdWxsIG1vZGUsIHdoZW4gd2UKCSAgbGF0ZXIgYWRkIHNyY3BhZCBwdWxsbW9kZSB0aGlzIHdpbGwgYmUgbmVlZGVkLgoKMjAxMi0wMi0xNSAxMjoxODozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGFkZCBtb3JlIGRlYnVnCgoyMDEyLTAyLTE1IDExOjExOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDEyLTAyLTE1IDEwOjU4OjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHJhY2sgY29uc3VtZWQgaW5wdXQgc2l6ZQoJICAuLi4gYXMgdXNlZCBieSBzdWJzZXF1ZW50IGlucHV0IGRhdGEgcmF0ZSBlc3RpbWF0aW9uIChhbmQgc2Vla2luZykuCgoyMDEyLTAyLTE1IDEwOjExOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjaGFpbiB1cCB0byBwYXJlbnQgZm9yIGRlZmF1bHRzCgkgIENoYWluIHVwIHRvIHRoZSBwYXJlbnQgaW5zdGVhZCBvZiB1c2luZyB0aGUgRkFMU0UgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGV2ZW50CgkgIGZ1bmN0aW9uIChiZWNhdXNlIGl0J3Mgb3RoZXJ3aXNlIGltcG9zc2libGUgdG8gcmV0dXJuIGFuIGVycm9yKS4KCjIwMTItMDItMTUgMTA6MTA6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgaWdub3JlIHJldHVybiB2YWx1ZSB3aGVuIHN0YXJ0aW5nIGEgdGFzawoKMjAxMi0wMi0xNCAyMDoxNzozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldmVydCAiYmFzZXBhcnNlOiByZWFsbHkgcHJvdmlkZSB1cHN0cmVhbSB0cyB0byBzdWJjbGFzcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyMzYzNDkwZWY1YTlmZThkNDE0MzY5ZDI0ZmNhYTY1YTlkZmE4M2FjLgoKMjAxMi0wMi0xNCAxOTozMzo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBkZWFkIGNvZGUgYW5kIHN1cGVyZmx1b3VzIGxvb3AgbGV2ZWwKCjIwMTItMDItMTQgMTk6MzM6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtb2RpZnkgcmV2ZXJzZSBwbGF5YmFjayBoYW5kbGluZwoJICAuLi4gc28gYXMgdG8gYWxsb3cgdGhlIHB1c2gtbW9kZSBjYXNlIHRvIHByb3ZpZGUgZGF0YSB0byBzdWJjbGFzcwoJICBvbiBhIGJ1ZmZlciBieSBidWZmZXIgYmFzaXMgKGFzIGluIHJlZ3VsYXIgZm9yd2FyZCBjYXNlKSwgcmF0aGVyCgkgIHRoYW4gYWxsIGJ1ZmZlcnMgb2YgYSBmcmFnbWVudCBjaHVja2VkIHRvZ2V0aGVyLgoJICBBbHNvIHJlZmFjdG9yIGJ1ZmZlciBoYW5kbGluZyBzb21lIG1vcmUsIGFuZCBhZGQgc29tZSBkZWJ1Zy4KCjIwMTItMDItMTQgMTk6MzM6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWFsbHkgcHJvdmlkZSB1cHN0cmVhbSB0cyB0byBzdWJjbGFzcwoKMjAxMi0wMi0xNCAxMzoyNDo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBjbGVhbiB1cCBzcmMgcXVlcnkgaGFuZGxlcgoKMjAxMi0wMi0xNCAxMjo1NzoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBwYXNzIHJlc3VsdHMgZnJvbSBhY3RpdmF0aW9uCgoyMDEyLTAyLTE0IDEwOjM1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0xNCAxMDozMDo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAyLTEzIDE4OjIyOjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbW9kaWZ5IEFQSSB0byBhIF9maW5pc2hfZnJhbWUgYmFzZWQgYXBwcm9hY2gKCSAgLi4uIHdoaWNoIGFsaWducyBpdCB3aXRoIG90aGVyIGJhc2VjbGFzcyBpbiB0aGUgd2lsZCwgYW5kIHNob3VsZCBnaXZlCgkgIGNvbnZlcnRlciBwYXJzZXJzIGEgYml0IGNsZWFuZXIgZnJlZWRvbS4KCjIwMTItMDItMTMgMTg6MDk6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjawoJICAuLi4gZXNwZWNpYWxseSBmb3IgYWxsLWtleWZyYW1lIChhdWRpbykgY2FzZXMuCgoyMDEyLTAyLTEzIDE2OjMzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbW9yZSB3b3JrIG9uIHJlZmNvdW50IGFuZCB3cml0YWJpbGl0eQoJICBSZW5hbWUgX2lzX3dyaXRhYmxlKCkgd2l0aCBfaXNfZXhjbHVzaXZlIGJlY2F1c2UgdGhlIHdyaXRhYmlsaXR5IGRvZXMgbm90IGRlcGVuZAoJICBvbiB0aGUgYW1vdW50IG9mIHJlZmVyZW5jZXMgdG8gdGhlIG1lbW9yeSBvYmplY3QgYW55bW9yZS4KCSAgQWRkIGFjY2Vzc29yIG1hY3JvcyBmb3IgdGhlIG1lbW9yeSBmbGFncy4KCSAgUmVuYW1lIHRoZSBHc3RCdWZmZXIgX3BlZWtfbWVtb3J5KCkgbWV0aG9kIHRvIF9nZXRfbWVtb3J5KCkgYW5kIHJldHVybiBhCgkgIHJlZmVyZW5jZSB0byB0aGUgbWVtb3J5IG5vdyB0aGF0IHdlIGNhbiBkbyB0aGlzIHdpdGhvdXQgYWZmZWN0aW5nIHdyaXRhYmlsaXR5CgkgIG9mIHRoZSBtZW1vcnkgb2JqZWN0LiBNYWtlIGl0IHBvc3NpYmxlIHRvIGFsc28gbWFrZSB0aGlzIGZ1bmN0aW9uIG1lcmdlIHRoZQoJICBidWZmZXIgbWVtb3J5LgoJICBBZGQgbWV0aG9kcyB0byByZXBsYWNlIG1lbW9yeSBpbiBhIGJ1ZmZlci4gTWFrZSBzb21lIGNvbnZpZW5jZSBtYWNyb3MgZm9yIHRoZQoJICBidWZmZXIgbWVtb3J5IGZ1bmN0aW9ucy4KCSAgRml4IHVuaXQgdGVzdHMuCgoyMDEyLTAyLTEzIDE3OjIyOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlCgoyMDEyLTAyLTEzIDE1OjE4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogZml4IHR5cG9zCgoyMDEyLTAyLTEyIDIxOjE3OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogYWRkIGEgcGFyYWdyYXBoIGFib3V0IHRoZSBTVFJFQU0gQ09ORklHIGV2ZW50IHRvIHRoZSBkZXNpZ24gZG9jcwoKMjAxMi0wMi0xMiAyMTowNDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIF9wYXJzZV9udGhfc3RyZWFtX2NvbmZpZ19oZWFkZXIoKSBhbmQgX3BhcnNlX3NldHVwX2RhdGEoKSByZXR1cm4gYSBib29sZWFuCgkgIEFzIHRoZXkgY2FuIGZhaWwgKG9ubHkgb25lIG9mIHN0cmVhbSBoZWFkZXJzIG9yIHNldHVwIGRhdGEKCSAgaXMgdXN1YWxseSBwcmVzZW50KS4KCjIwMTItMDItMTIgMjA6NTE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogcmVuYW1lIGdzdF9ldmVudF97c2V0LHBhcnNlfV9zdHJlYW1fY29uZmlnX2NvZGVjX2RhdGEoKSB0byBfc2V0dXBfZGF0YSgpCgkgIE1vcmUgZ2VuZXJpYy4KCjIwMTItMDItMTAgMTU6MDM6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTEwIDE0OjU4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBjbGVhbiB1cCBvYmplY3QgaW5pdAoJICBNYWtlIGFuIF9pbml0IG1ldGhvZCB3aGVyZSB0aGUgcGFyZW50IG1pbmktb2JqZWN0IGFuZCBvdGhlciBmaWVsZHMgYXJlCgkgIGluaXRpYWxpemVkLgoJICBDaGVjayB0aGF0IHRoZSBwYXNzZWQgc3RydWN0dXJlIGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGEgcGFyZW50LgoJICBVc2UgdGhlIF9uZXdfY3VzdG9tICgpIGNvbnN0cnVjdG9ycwoKMjAxMi0wMi0wNyAxMToyODo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGJpdHJhdGUgbWVjaGFuaWNzIHNob3VsZCBub3QgZGVhbCB3aXRoIGR1cmF0aW9uIHVwZGF0ZQoJICAuLi4gc2luY2UgdGhhdCBpcyBhbHJlYWR5IGhhbmRsZWQgYnkgX3VwZGF0ZV9kdXJhdGlvbiwgb3Igc2hvdWxkIG5vdCBiZSBkb25lCgkgIGFsdG9nZXRoZXIgaWYgdGhlIGR1cmF0aW9uIGlzIGRldGVybWluZWQgYnkgbm9uLWVzdGltYXRlZCBtZWFucy4KCSAgRml4ZXMgIzY2OTUwMi4KCjIwMTItMDItMTAgMTI6NDU6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiBwdXNoX2V2ZW50IGRvZXNuJ3QgcmV0dXJuIGEgZmxvdyB2YWx1ZSBhZnRlciBhbGwKCjIwMTItMDItMTAgMTI6MDU6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2lsZW5jZSBwcm9iZSBkZWJ1ZyBhIGxpdHRlCgoyMDEyLTAyLTEwIDExOjI0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wbGVtZW50IGZhc3RlciBBQ0NFUFRfQ0FQUyBxdWVyeQoKMjAxMi0wMi0xMCAxMTowOTowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBhZGQgc29tZSBwZXJmb3JtYW5jZSBsb2dnaW5nCgkgIEFkZCBzb21lIHBlcmZvcm1hbmNlIGxvZ2dpbmcgZm9yIGNhcHMgY29weSBhbmQgdGhlIHNsb3cgZGVmYXVsdCBhY2NlcHRjYXBzCgkgIGltcGxlbWVudGF0aW9uCgoyMDEyLTAxLTE0IDE5OjE2OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1cGRhdGUgYW5kIGltcHJvdmUgZG9jcwoKMjAxMi0wMi0wOSAwMDoxNDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIGdzdF9lbGVtZW50X2NsYXNzX2luc3RhbGxfc3RkX3Byb3BzKCkKCSAgSXQncyBvbmx5IHVzZWQgaW4gb25lIHBsYWNlIChydG1wKSwgYW5kIHRoZXJlIG5vdCB2ZXJ5IHdlbGwuCgoyMDEyLTAyLTA4IDIzOjQ3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZmFrZXNyYywgaWRlbnRpdHksIGZha2VzaW5rOiBkbyBub3QgZ2VuZXJhdGUgbGFzdC1tZXNzYWdlIHVwZGF0ZXMgYnkgZGVmYXVsdAoJICBEZWZhdWx0IHRvIG5vdCBjcmVhdGluZyBsb3RzIG9mIG92ZXJoZWFkIGJ5IGRvaW5nIGEgY291cGxlIG9mCgkgIGdfc3RyZHVwX3ByaW50ZigpL2dfZnJlZSgpIHBlciBidWZmZXIgb3IgZXZlbnQganVzdCB0byBnZW5lcmF0ZQoJICBhIGxhc3QtbWVzc2FnZSB1cGRhdGUgdGhhdCByYXJlbHkgYW55b25lIGxpc3RlbnMgdG8uIFRoaXMgbWVhbnMKCSAgdGhhdCB5b3UgbmVlZCB0byBlbmFibGUgc2lsZW50PXRydWUgZXhwbGljaXRseSBpbiBvcmRlciB0byBnZXQKCSAgbGFzdC1tZXNzYWdlIGR1bXBzIGluIGdzdC1sYXVuY2ggLXYgbm93LiBPbiB0aGUgdXBzaWRlLCBwZW9wbGUKCSAgd29uJ3QgaW5hZHZlcnRlbnRseSBlbmQgdXAgYmVuY2htYXJraW5nIGdfc3RyZHVwX3ByaW50ZigpCgkgIHBlcmZvcm1hbmNlIGluc3RlYWQgb2YgZ3N0cmVhbWVyIGRhdGEgaGFuZGxpbmcgcGVyZm9ybWFuY2UgYW55CgkgIG1vcmUuCgkgIE1heWJlIHRoZSBzaWxlbnQgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmFtZWQgdG8gZW5hYmxlLWxhc3QtbWVzc2FnZQoJICBvciBzb21ldGhpbmcgbGlrZSB0aGF0PwoKMjAxMi0wMi0wOCAxNToxNjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIEdTVF9GTE9XX1dST05HX1NUQVRFIC0+IEdTVF9GTE9XX0ZMVVNISU5HCgoyMDEyLTAyLTA4IDE1OjM0OjI4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHVzZSBkZWZhdWx0IHF1ZXJ5IGZ1bmN0aW9uIHRvIG9wdGlvbmFsbHkgZm9yd2FyZCBxdWVyeQoJICAuLi4gcmF0aGVyIHRoYW4gcXVlcnlpbmcgcGVlciB1bmNvbmRpdGlvbmFsbHkgd2l0aCBwb3NzaWJseSB1bmRlc2lyYWJsZQoJICBvdXRjb21lIGluIGNhc2Ugb2YgZS5nLiBTQ0hFRFVMSU5HIHF1ZXJ5LgoKMjAxMi0wMi0wOCAxNTowMzo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsZWFuIHVwIGEgZmV3IG1pbm9yIGV4dHJhbmVvdXMgdG9rZW5zCgoyMDEyLTAyLTA3IDEyOjQ4OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGNsb3Npbmcgc2VnbWVudCBoYW5kbGluZwoKMjAxMi0wMi0wOCAxNDo0NToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMDggMTQ6MzI6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IHJhY2UgaW4gcGFkIG1vZGUgY2hhbmdlCgkgIEZpeGVzICM2Njg5MDkgYW5kIHByZXN1bWFibHkgYWxzbyAjNjY5NDgzCgoyMDEyLTAyLTA4IDEyOjU3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGVycm9yIHdoZW4gYWN0aXZhdGlvbiBtb2RlIGlzIHdyb25nCgkgIFBvc3QgYW4gZXJyb3Igd2hlbiB3ZSB0cnkgdG8gcHVzaCBvbiBhIHBhZCBhY3RpdmF0ZWQgaW4gcHVsbCBtb2RlIGFuZCBwdWxsIG9uIGEKCSAgcGFkIGluIHB1c2ggbW9kZS4KCjIwMTItMDItMDggMDk6MzA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBtZXRob2QgZGVjbGFyYXRpb24gdG9vCgoyMDEyLTAyLTA3IDEzOjQxOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgc3RhdHMgcHJvcGVydHkgd2hpbGUgd2UgY2FuCgoyMDEyLTAyLTA3IDEwOjQ0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoJICBSZW1vdmUgb3VyIGN1c3RvbSBtYXJzaGFsbGVyLgoJICBNYWtlIHRoZSBidWZmZXIgaW4gdGhlIGhhbmRvZmYgc2lnbmFsIHN0YXRpY19zY29wZSBzbyB0aGF0IGl0IGlzIGFjdHVhbGx5CgkgIHdyaXRhYmxlLgoKMjAxMi0wMi0wNiAwOTo0Njo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTAxLTA0IDE3OjEwOjE1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBjb21waWxhdGlvbiB3aXRoIC0tZGlzYWJsZS1yZWdpc3RyeQoJICBfX3JlZ2lzdHJ5X3JldXNlX3BsdWdpbl9zY2FubmVyIGlzIG9ubHkgZGVmaW5lZCB3aGVuCgkgIEdTVF9ESVNBQkxFX1JFR0lTVFJZIGlzIG5vdCBkZWZpbmVkLgoJICBnc3RyZWdpc3RyeS5jOiBJbiBmdW5jdGlvbiAnZ3N0X3JlZ2lzdHJ5X3NjYW5fcGx1Z2luX2ZpbGUnOgoJICBnc3RyZWdpc3RyeS5jOjExMzE6ODogZXJyb3I6ICdfX3JlZ2lzdHJ5X3JldXNlX3BsdWdpbl9zY2FubmVyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NAoKMjAxMi0wMi0wMiAxNzoxODoyMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVzZXQgdGhlIEVPUyBkZXRlY3Rpb24gbWFjaGluZXJ5IGFmdGVyIHNlbmRpbmcgYW4gRU9TIG1lc3NhZ2UKCSAgVGhpcyB3aWxsIGFsbG93IGRldGVjdGluZyBmdXJ0aGVyIEVPUywgZm9yIGluc3RhbmNlIGFmdGVyIGxvb3BpbmcKCSAgYSBzdHJlYW0gd2l0aG91dCBjaGFuZ2luZyBzdGF0ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgyODkKCjIwMTItMDEtMDcgMjM6MDA6MTIgLTA1MDAgIFJ5YW4gTG9ydGllIDxkZXNydEBkZXNydC5jYT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IGFsbG93IGNhbGxpbmcgZnJvbSBvdXQtb2YtdHJlZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NjY0CgoyMDEyLTAyLTAyIDE2OjU5OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBwcmludCBjYXBzIGluIGR1bXAKCjIwMTItMDItMDIgMTY6MDQ6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAyLTAyIDE1OjU3OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBkZWJ1ZyBhbmQgdHJhY2UgZm9yIEdzdE1lbW9yeQoKMjAxMi0wMi0wMiAxNTo1NTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBkb24ndCBjaGVjayByYW5kb20gcG9pbnRlcnMgZm9yIG9iamVjdHMKCSAgT25seSBzZWUgaWYgdGhlIHRyYWNlZCBwb2ludGVyIGlzIGEgR09iamVjdCB3aGVuIGl0IHdhcyByZWdpc3RlcmVkIHdpdGggdGhlCgkgIHNwZWNpYWwgb2Zmc2V0IG9mIC0yLgoKMjAxMi0wMi0wMiAxNTo1NDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBVcGRhdGUgZGVidWcgY2F0ZWdvcmllcwoJICBSZW1vdmUgc29tZSBjYXRlZ29yaWVzIG1hcmtlZCBmb3IgZGVsZXRpb24uCgkgIEFkZCBhIGNhdGVnb3J5IGZvciBHc3RNZW1vcnkuCgoyMDEyLTAyLTAyIDE1OjUyOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHJlbW92ZSBUUkFDRV9OQU1FIGZyb20gaGVhZGVycwoKMjAxMi0wMi0wMiAxMzoxNzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbmV3IHRlc3QKCjIwMTItMDItMDIgMTM6MTU6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGRlbnRpdHk6IHJlbW92ZSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgQ29ycmVjdGx5IG1hcmsgcGFzc3Rocm91Z2ggb24gdGhlIGJhc2VjbGFzcyBzbyB0aGF0IGl0IGNhbiBjb3JyZWN0bHkgZG8gdGhlCgkgIGFsbG9jYXRpb24gb2YgdGhlIG91dHB1dCBidWZmZXJzLgoJICBSZW1vdmUgb3VyIGN1c3RvbSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24gbm93IHRoYXQgdGhlIGJhc2VjbGFzcyBpcwoJICBzbWFydGVyLgoKMjAxMi0wMi0wMiAxMzoxMDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICBDbGVhbiB1cCB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGZ1bmN0aW9uLgoJICBSZXVzZSB0aGUgaW5wdXQgYnVmZmVyIHdoZW4gaXQgaXMgd3JpdGFibGUgYW5kIHdoZW4gZG9pbmcgYW4KCSAgaW4tcGxhY2UgYnV0IG5vbi1wYXNzdGhyb3VnaCB0cmFuc2Zvcm0uCgkgIE1vdmUgdGhlIGNvcHktbWV0YWRhdGEgZnVuY3Rpb24gY2FsbCB0byB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGRlZmF1bHQKCSAgZnVuY3Rpb24uIElmIHN1YmNsYXNzZXMgaW1wbGVtZW50IGEgY3VzdG9tIHByZXBhcmVfb3V0cHV0X2J1ZmZlciwgdGhleSBtdXN0IGFsc28KCSAgY29weSB0aGUgbWV0YWRhdGEgdGhlbXNlbHZlcy4KCSAgUmVtb3ZlIGEgdXNlbGVzcyBtZW1vcnkgY29weSBiZWNhdXNlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBhbHJlYWR5IGRpZCB0aGF0LgoKMjAxMi0wMi0wMiAxMjozMjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IG9ubHkgbWFwIHdoZW4gdXNpbmcgdGhlIG1lbW9yeQoKMjAxMi0wMi0wMiAxMjozMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBsdWdpbnM6IHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCjIwMTItMDItMDIgMTI6MzA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc2ltcGxpZnkgY29kZQoJICBXZSBhbHJlYWR5IGNoZWNrZWQgcGFzc3Rocm91Z2ggYSBmZXcgbGluZXMgYWJvdmUuCgoyMDEyLTAyLTAyIDEyOjA3OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIHNvbWUgcGVyZm9ybWNlIGRlYnVnIGluZm8KCSAgQWRkIHNvbWUgUEVSRk9STUFOQ0UgZGVidWcgbGluZXMgd2hlcmUgd2UgY29weSBhbmQgZG8gb3RoZXIgc3Vib3B0aW1hbCB0aGluZ3MuCgoyMDEyLTAyLTAyIDEyOjA1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGZsYWcgdG8gcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoJICBBZGQgYSBmbGFnIHRvIGZvcmNlIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgdG8gZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeQoJICBpbnN0ZWFkIG9mIGRpc2NhcmRpbmcgaXQuCgkgIFJlb3JkZXIgdGhlIHBhZCBmbGFncyBhIGJpdC4KCjIwMTItMDItMDIgMDE6MzA6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBwYXNzIGV4dGVuc2lvbnMgYXMgY29tbWEtc2VwYXJhdGVkIGxpc3QgaW4gYSBzaW1wbGUgc3RyaW5nCgkgIEZpeCBhbm5veWluZyBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkgZnVuY3Rpb24gc2lnbmF0dXJlLiBBIHNpbXBsZQoJICBzdHJpbmcgd2l0aCBjb21tYS1zZXBhcmF0ZWQgZXh0ZW5zaW9ucyB3b3JrcyBqdXN0IGFzIHdlbGwgYW5kIHNhdmVzCgkgIGxpbmVzIG9mIGNvZGUsIGNhc3RzLCByZWxvY2F0aW9ucyBhbmQgdWx0aW1hdGVseSBraXR0ZW5zLgoKMjAxMi0wMS0zMSAxNzo0MToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcmFjZSBpbiBzdGFydHVwCgkgIE1hcmsgcmVuZWdvdGlhdGUgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwdXNoaW5nIHRocmVhZC4KCSAgRG8gYWxzbyBjaGVjayBpZiB3ZSBhcmUgc3RhcnRpbmcgaW4gdGhlIGdldF9yYW5nZSBmdW5jdGlvbi4KCjIwMTItMDEtMzEgMTY6Mjc6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCBjcmFzaCBvbiBtaXNzaW5nIHRlbXBsYXRlCgkgIFNvbWUgcmVxdWVzdCBwYWRzIGRvbid0IGhhdmUgYSBwYWR0ZW1wbGF0ZSAobW9zdGx5IHRob3NlIGZyb20gZW5jb2RlYmluKS4gQXZvaWQKCSAgY3Jhc2hpbmcgaW4gdGhpcyBjYXNlLgoKMjAxMi0wMS0zMSAxMjoyMDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBjb25zdHJ1Y3R1cmVzIGZvciBjb250cm9sIHNvdXJjZXMgcmV0dXJuIEdzdENvbnRyb2xTb3VyY2UKCSAgRG9uJ3QgcmV0dXJuIHRoZSBzcGVjaWZpYyB0eXBlcy4gSW4gbW9zdCBjYXNlcyB0aGVyZSBpcyBubyBzcGVjaWZpYyBhcGkgdGhlcmUKCSAgYW55d2F5LgoKMjAxMi0wMS0zMSAxMjoxMDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZG9uJ3QgZG8gbG9naWMgaW4gZ19hc3NlcnQuLi4KCjIwMTItMDEtMzAgMTk6MTc6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyOiByZW5hbWUgY29udHJvbC1iaW5kaW5ncwoJICBnc3RfY29udHJvbF9iaW5kaW5nX3h4eCAtPiBnc3RfeHh4X2NvbnRyb2xfYmluZGluZyBmb3IgY29uc2lzdGVuY3kuCgoyMDEyLTAxLTMwIDE0OjQ4OjQ0IC0wMjAwICBKb8OjbyBQYXVsbyBQaXphbmkgRmxvciA8am9hb3BpemFuaUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEZpeGVzIHRoZSBsYWNrIG9mIGFuIGluY2x1ZGUgZGlyZWN0aXZlIGluIGdzdC9nc3RwcmVzZXQuaAoJICBJdCBibG9ja2VkIHRoZSBidWlsZCBvZiBleHRlcm5hbCBsaWJyYXJpZXMgZGVwZW5kaW5nIG9uIGdzdHJlYW1lci1jb3JlIChuYW1lbHksIGdzdHJlYW1lcm1tKS4KCSAgQ29tcGxldGUgYnVnIHJlcG9ydCBhdCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MDM2CgoyMDEyLTAxLTMwIDE4OjE3OjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogc2luayB0aGUgZmxvYXRpbmcgcmVmCgkgIGNvbnRyb2wgc291cmNlcyBjYW4gYmUgdXNlZCBvbiBzZXZlcmFsIGNvbnRyb2wgYmluZGluZ3MuCgoyMDEyLTAxLTMwIDE3OjE1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI7IHJlbW92ZSBJTl9DQVBTIGJ1ZmZlciBmbGFnCgkgIFRoZSBJTl9DQVBTIGJ1ZmZlciBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHRoZSBIRUFERVIKCSAgZmxhZy4KCjIwMTItMDEtMzAgMTY6MDk6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczsgdXBkYXRlIGZvciBuZXcgYXBpCgoyMDEyLTAxLTMwIDE1OjU5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBwYXNzIGFsbG9jYXRvciBpbiBxdWVyeQoJICBQbGFjZSB0aGUgYWxsb2NhdG9yIG9iamVjdCBpbiB0aGUgQUxMT0NBVElPTiBxdWVyeSBpbnN0ZWFkIG9mIHRoZSBuYW1lLiBUaGlzCgkgIGFsbG93cyB1cyB0byBleGNoYW5nZSBhbGxvY2F0b3JzIHRoYXQgYXJlIG5vdCBpbiB0aGUgZ2xvYmFsIHBvb2wgb2YgYWxsb2NhdG9ycy4KCSAgVXBkYXRlIGVsZW1lbnRzIGZvciB0aGUgbmV3IGFwaQoKMjAxMi0wMS0zMCAxNTo1NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZW1vcnkgdHlwZQoJICBBZGQgbWVtb3J5IHR5cGUgd2hlbiByZWdpc3RlcmluZyBtZW1vcnkgYWxsb2NhdG9ycy4gQWRkIGdldHRlciBmb3IgdGhlIG1lbW9yeQoJICB0eXBlLgoKMjAxMi0wMS0yOSAyMjo1ODo1MSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogUmVwdXNoIHN0aWNreSBldmVudHMgYWZ0ZXIgZGlzYWJsaW5nIGRyb3BwaW5nCgoyMDEyLTAxLTMwIDEzOjI4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGJveGVkIEdUeXBlIGZvciB0aGUgYWxsb2NhdG9yCgoyMDEyLTAxLTMwIDEzOjAyOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgdGhlIGFsbG9jYXRvciByZWZjb3VudGVkCgkgIEFkZCByZWZjb3VudGluZyB0byB0aGUgR3N0QWxsb2NhdG9yIG9iamVjdC4KCSAgUmVtb3ZlIGNvbnN0IGZyb20gZnVuY3Rpb25zIGJlY2F1c2UgdGhlIGFsbG9jYXRvciBpcyByZWZjb3VudGVkIG5vdy4KCSAgUmVuYW1lIHRoZSB2bWV0aG9kcyBmb3IgY29uc2lzdGVuY3kKCSAgRXhwb3NlIHRoZSBjb25zdHJ1Y3RvciBmb3IgR3N0QWxsb2NhdG9yIGFuZCBhZGQgYSBkZXN0cm95IG5vdGlmeSBmb3IgdGhlCgkgIHVzZXJfZGF0YS4gVGhpcyBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYWxsb2NhdG9ycyB0aGF0IGFyZSBub3QKCSAgcmVnaXN0ZXJlZCBhbmQgc2hhcmVkIGdsb2JhbGx5IGFsb25nIHdpdGggdGhlIHBvc3NpYmlsaXR5IHRvIGRlc3Ryb3kgdGhlbQoJICBwcm9wZXJseS4KCSAgVXBkYXRlIGRlZnMgd2l0aCBuZXcgc3ltYm9scy4KCjIwMTItMDEtMzAgMTA6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBnYXAgZXZlbnQKCjIwMTItMDEtMzAgMTA6MDc6NTEgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSAgY29yZTogZG9uJ3Qgc2hpcCBnc3R0cmFjZS5oIHByaXZhdGUgaGVhZGVyCgkgIEluY2x1ZGUgaXQgZXhwbGljaXRlbHkgaW4gZ3N0LmMgYW5kIG5vIGxvbmdlciBpbmNsdWRlIGl0IGluIGdzdC5oLgoJICBUaGF0IGhlYWRlciB3YXMgbWFkZSBwcml2YXRlIGluIDE5NjliOTQyNjdiNGYzNzdlYTI2NjM4NzZhZTg3MjA3MTc4ODk2OTMuCgoyMDEyLTAxLTI4IDE4OjUwOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogcmVxdWlyZSBhIHZhbGlkIGR1cmF0aW9uIGZvciB0aGUgR0FQIGV2ZW50CgoyMDEyLTAxLTI4IDE4OjQ5OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdCgpCgoyMDEyLTAxLTI3IDE4OjU3OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBhZGQgc29tZSAob3V0KSBhbm5vdGF0aW9ucyBmb3Igc3RyZWFtIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zCgoyMDEyLTAxLTI3IDE4OjU2OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBjb25zdHJ1Y3RvciBhbmQgcGFyc2UgZnVuY3Rpb24gZm9yIG5ldyBHQVAgZXZlbnQKCSAgKFdoYXRldmVyIHlvdSBkbywgZG9uJ3QgbWVudGlvbiB0aGUgZmlsbGVyIGV2ZW50LikKCjIwMTItMDEtMjcgMTg6Mzc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IEdTVF9FVkVOVF9TVFJFQU1fQ09ORklHIGlzIGltcGxlbWVudGVkIG5vdwoKMjAxMi0wMS0yNyAxNzo1Nzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIGNvZGVjIGRhdGEgLyBzdHJlYW0gaGVhZGVyIGNoYW5nZSBpbiBwb3J0aW5nIGRvY3MKCjIwMTItMDEtMjggMTQ6MzU6NTEgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgVXNlIG1hY3JvcyB0byByZWdpc3RlciBib3hlZCB0eXBlcyB0aHJlYWQgc2FmZWx5CgoyMDEyLTAxLTI4IDA4OjM4OjAzICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IFVwZGF0ZSBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlciB0byAwLjExIHN0eWxlIGNhcHMKCSAgUGFzcyB0aGUgZGVzaXJlZCBjYXBzIGV4cGxpY2l0ZWx5CgoyMDEyLTAxLTI3IDE5OjAwOjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggbWVtb3J5IGxlYWsKCjIwMTItMDEtMjcgMTg6NTM6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IERvbid0IHVucmVmIHBsdWdpbiBmZWF0dXJlcyBtdWx0aXBsZSB0aW1lcwoJICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKCkgdW5yZWZzIHRoZW0gdG9vLgoKMjAxMi0wMS0yNyAxNzo1MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHN0cmVhbSBjb25maWcgZnVuY3Rpb25zIHRvIGRvY3MKCjIwMTItMDEtMjcgMTc6NDk6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCBzaW1wbGUtbGF1bmNoLWxpbmVzIGNvbXBpbGF0aW9uCgkgIERvbid0IHVzZSByZW1vdmVkIEFQSS4KCjIwMTItMDEtMjcgMTg6NDY6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogQWRkIHBhZGRpbmcgdG8gdGhlIHB1YmxpYyBzdHJ1Y3QKCjIwMTItMDEtMjcgMTc6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGRvbid0IHJlZiBHVHlwZSBmb3IgcHJpdmF0ZSBlbnVtIGZvciB3aGljaCB0aGVyZSdzIG5vIEdUeXBlIGFueSBtb3JlCgoyMDEyLTAxLTI3IDE3OjQ1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZm9yIG5ldyBhbmQgcmVtb3ZlZCBBUEkKCjIwMTItMDEtMjcgMTc6Mzk6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGNvbnN0cnVjdCBhbmQgcGFyc2UgQVBJIGZvciB0aGUgbmV3IFNUUkVBTSBDT05GSUcgZXZlbnQKCSAgY29kZWMgZGF0YSBhbmQgc3RyZWFtIGhlYWRlcnMgZG9uJ3QgYmVsb25nIGludG8gY2Fwcywgc2luY2UgdGhleQoJICBhcmUgbm90IG5lZ290aWF0ZWQuIFdlIHNpZ25hbCB0aGVtIHVzaW5nIHRoZSBTVFJFQU0gQ09ORklHIGV2ZW50CgkgIGluc3RlYWQuCgoyMDEyLTAxLTI3IDE4OjI0OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB0cmFjZTogcmVtb3ZlIGZyb20gcHVibGljIGhlYWRlcnMKCjIwMTItMDEtMjcgMTI6MTY6MDUgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2N1bWVuYXRpb24gdHlwbwoKMjAxMi0wMS0yNyAxNzo1MDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRyYWNlOiByZXdvcmsgYWxsb2MgdHJhY2luZwoJICBSZW1vdmUgdHJhY2UsIHdlIHVzZSBkZWJ1ZyBsb2cgZm9yIHRoYXQKCSAgTWFrZSBhbGxvYyB0cmFjZSBzaW1wbGVyLCByZW1vdmluZyBzb21lIG1ldGhvZHMuCgkgIEFjdGl2YXRlIGFsbG9jIHRyYWNlIHdpdGggYSBHU1RfVFJBQ0U9MyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgRHVtcCBsZWFrZWQgb2JqZWN0cyBhdGV4aXQuCgkgIFByb3ZpZGUgYW4gb2Zmc2V0IGluIHRoZSBvYmplY3Qgd2hlcmUgdGhlIEdUeXBlIGNhbiBiZSBmb3VuZCBzbyB0aGF0IG1vcmUKCSAgdmVyYm9zZSBpbmZvIGNhbiBiZSBnaXZlbiBmb3Igb2JqZWN0cy4KCSAgUmVtb3ZlIC1UIG9wdGlvbiBmcm9tIGdzdC1sYXVuY2ggYmVjYXVzZSB0cmFjaW5nIGlzIG5vdyB0cmlnZ2VyZWQgd2l0aCB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDEyLTAxLTI1IDEyOjM1OjQzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBhbnN3ZXIgY2FwcyBxdWVyaWVzIHdpdGggb3VyIHR5cGVmb3VuZCBjYXBzCgkgIFRoaXMgYXZvaWRzIG1lcmVseSBmb3J3YXJkaW5nIHRoZSBldmVudCB0byB0aGUgc2luaywgYW5kIGdldHRpbmcKCSAgc29tZXRoaW5nIHVzZWxlc3Mgc3VjaCBhcyBBTlkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc1NzEKCjIwMTItMDEtMjcgMTY6MTg6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IERvIHR5cGVmaW5kaW5nIGZyb20gYSBzZXBhcmF0ZSB0aHJlYWQgYW5kIG5vdCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24KCjIwMTItMDEtMjcgMTU6MzI6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZW1vcnkgbGVhawoJICB1bm1hcCB0aGUgYnVmZmVyIG1lbW9yeSBvbiBlcnJvcnMuCgoyMDEyLTAxLTI3IDE1OjMyOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdHJhY2U6IG1ha2UgYWxsb2MgdHJhY2Ugd29yayBmb3IgbWluaW9iamVjdCBhZ2FpbgoKMjAxMi0wMS0yNyAxNTowOTozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oCgoyMDEyLTAxLTI3IDE1OjAyOjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogTW92ZSBwcml2YXRlIGZpZWxkcyBmcm9tIHRoZSBwdWJsaWMgc3RydWN0cyB0byBwcml2YXRlIHN0cnVjdHMKCSAgRml4ZXMgYnVnICM2Njg3NjQuCgoyMDEyLTAxLTI3IDEzOjA1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IG5vIGZhbmN5IHV0ZjggY2hhcnMgaW4gdGhlIGdpIGFubm90YXRpb25zCgoyMDEyLTAxLTI3IDEyOjUwOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogZml4IHNvbWUgbW9yZSBsZWFrcwoKMjAxMi0wMS0yNyAxMjozMzozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEZpeCBoYW5kbGluZyBvZiB0aGUgbmV3IHN0cmVhbS1zdGFydCBldmVudAoKMjAxMi0wMS0yNyAxMTozMjoxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdHBsdWdpbjogYWRkIGEgZmV3IGNvbnN0cyB0byByZWFkIG9ubHkgZGF0YQoKMjAxMi0wMS0yNyAxMjoyMjo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgZ2kgYW5ub3RhdGlvbnMKCjIwMTItMDEtMjcgMTI6MTQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTAxLTI3IDEyOjEwOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBmaXggbGVha3MKCjIwMTItMDEtMjcgMTE6NDA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYXZvaWQgbWVtb3J5IGxlYWsKCSAgVW5yZWYgdGhlIG9sZCBtZW1vcnkgaW4gbWFrZV9tYXBwZWQuCgkgIEFkZCBzb21lIGRlYnVnIGluZm8KCjIwMTItMDEtMjcgMTE6NDA6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgY2FwcyBsZWFrCgoyMDEyLTAxLTI3IDExOjAxOjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHkvZmFrZXtzcmMsc2lua306IEluY2x1ZGUgZXZlbnQgdHlwZSBuYW1lIGluIHRoZSBkZWJ1ZyBvdXRwdXQKCjIwMTItMDEtMjcgMTA6NTQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogTWFyayB0aGUgbmV3IEdBUCBldmVudCBhcyBub24tc3RpY2t5CgoyMDEyLTAxLTI3IDEwOjQ2OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRHJvcCB0aGUgc3RyZWFtLXN0YXJ0IGFuZCBzdHJlYW0tY29uZmlnIGV2ZW50cyBieSBkZWZhdWx0CgoyMDEyLTAxLTI3IDEwOjQyOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudCByZWJhc2UKCjIwMTItMDEtMjcgMTA6NDE6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgdGhlIHN0cmVhbS1zdGFydCBldmVudCBhcyBmaXJzdCBldmVudCBldmVyCgoyMDEyLTAxLTI3IDEwOjMwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgY29uc3RydWN0b3IgYW5kIGRvY3MgZm9yIHRoZSBuZXcgU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTAxLTI2IDE5OjI4OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHVzZXIgZGF0YSB0byBjaGFpbiBmdW5jdGlvbnMKCjIwMTItMDEtMjYgMTg6NTY6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHR5cG8KCjIwMTItMDEtMjYgMTg6MjI6MjkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVzdG9yZSBkYXRlL3RpbWUgdHlwZSB0byBHc3REYXRlVGltZQoJICBUaGUgY2hhbmdlIHRvIEdEYXRlVGltZSB3YXMgYXBwYXJlbnRseSBhY2NpZGVudGFsLCBhbmQKCSAgYnJlYWtzIHBsdWdpbnMgdHJ5aW5nIHRvIGZlZWQgYSBHc3REYXRlVGltZSB0byB0aGUgdGFnbGlzdCBBUGkuCgoyMDEyLTAxLTI2IDE5OjEyOjE2ICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBnc3Q6IGdzdF9wYXJzZV9sYXVuY2ggbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UKCjIwMTItMDEtMjYgMTg6NTM6NTEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFNldCAidHJhbnNmZXIgbm9uZSIgdG8gcmV0dXJuIHZhbHVlcyB0aGF0IHNob3VsZG4ndCBiZSBmcmVlZAoKMjAxMC0xMi0wNCAxODo1Mzo1NSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBjYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjAxMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyNTYyCgoyMDEyLTAxLTI2IDE2OjMxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIHNvbWUgbW9yZSBldmVudHMKCSAgQWRkIHNvbWUgbW9yZSBuZXcgZXZlbnRzIHRoYXQgd2Ugd2FudCB0byBpbXBsZW1lbnQgbGF0ZXIuCgoyMDEyLTAxLTI2IDE1OjE1OjIxICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGdzdG1lbW9yeTogYWRkIG1pc3NpbmcgcGFyYW1ldGVyCgoyMDEyLTAxLTI2IDE0OjU3OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAxLTI2IDE0OjU1OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFVzZSBjb3JyZWN0IHNpemUgZm9yIGNhcHMgYWxsb2NhdGlvbgoKMjAxMi0wMS0yNiAxNDo0NTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBNYWtlIEdzdENhcHMgcHVibGljIHN0cnVjdCBtb3JlIG9wYXF1ZSBieSBtb3ZpbmcgdGhlIHByaXZhdGUgcG9pbnRlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbgoKMjAxMi0wMS0yNiAxNDozMzoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGNhcHM6IFN0b3JlIGEgcG9pbnRlciB0byBHc3RDYXBzIGluIEdzdFN0YXRpY0NhcHMKCSAgLi4uaW5zdGVhZCBvZiB1c2luZyBoYWNraXNoIHN1YmNsYXNzIG9mIEdzdENhcHMsIHdoaWNoIGFsc28KCSAgaGFkIHNvbWUgdGhyZWFkLXNhZmV0eSBwcm9ibGVtcy4KCjIwMTItMDEtMjYgMTM6MjQ6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IHJlbW92ZSB0aGUgc3RpY2t5IGV2ZW50IGluZGV4CgkgIFdlIGRvbid0IHVzZSB0aGUgc3RpY2t5IGV2ZW50IGluZGV4IGFueW1vcmUsIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgYXJlIGhvdyB0aGV5CgkgIHdlcmUgc2VudCBpbml0aWFsbHkuCgkgIEFkZCBzb21lIG1vcmUgcGFkZGluZyBiZXR3ZWVuIHRoZSBldmVudCBudW1iZXJzIHNvIHRoYXQgd2UgY2FuIGluc2VydCBuZXcgZXZlbnRzCgkgIGxhdGVyLgoKMjAxMi0wMS0yNiAxMDo0ODowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgZG9jczogcmVtb3ZlIGNvbGxlY3RwYWRzIGZyb20gZG9jcywgZml4IGJ1aWxkCgoyMDEyLTAxLTI2IDEwOjIyOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBHc3RWYWx1ZUFycmF5IGluc3RlYWQgb2YgR1ZhbHVlQXJyYXkgZm9yIHN0b3Jpbmcgb3B0aW9ucyBpbiB0aGUgY29uZmlnCgkgIFNpbmNlIEdWYWx1ZUFycmF5IGlzIGRlcHJlY2F0ZWQuIEl0J3MgYWxsIG9ubHkgaW50ZXJuYWwgYW55d2hlcmUgaGVyZSwKCSAgYnV0IGlmIHdlIHVzZSBHc3RWYWx1ZUFycmF5IHRoZSBvcHRpb24gc3RyaW5ncyBnZXQgc2VyaWFsaXplZCBuaWNlbHkKCSAgaW4gdGhlIGRlYnVnIGxvZ3MgYXQgbGVhc3QuCgoyMDEyLTAxLTI2IDA5OjI2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogc3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9yIEdfVFlQRV9WQUxVRV9BUlJBWQoJICBGb3Igbm93IGFueXdheS4KCjIwMTItMDEtMjYgMTE6NDI6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNvbGxlY3RwYWRzMjogVW5pdCB0ZXN0IGlzIHZhbGdyaW5kIGNsZWFuIG5vdwoKMjAxMi0wMS0yNiAxMTo0MDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IEZpeCB1bml0IHRlc3QgdG8gYWN0dWFsbHkgd29yayBhZ2FpbgoKMjAxMi0wMS0yNiAxMTozODoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzMi5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICBjb2xsZWN0cGFkczI6IFBvcnQgY29sbGVjdHBhZHMgdW5pdCB0ZXN0IHRvIGNvbGxlY3RwYWRzMgoJICBDdXJyZW50bHkgZmFpbHMgYnV0IHJlYWxseSBzaG91bGRuJ3QuCgoyMDEyLTAxLTI2IDExOjAxOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHByb2JlIGlkIHRvIHRoZSBpbmZvCgoyMDEyLTAxLTI2IDEwOjQ4OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiBSZW1vdmUgb2xkIGNvbGxlY3RwYWRzCgkgIFN0aWxsIGhhdmUgdG8gcmVuYW1lIGNvbGxlY3RwYWRzMiB0byBjb2xsZWN0cGFkcyBiZWZvcmUgdGhlIDEuMCByZWxlYXNlLgoKMjAxMi0wMS0yNiAxMDozMDoyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IERvbid0IGZvcndhcmQgQ0FQUyBldmVudCBhdXRvbWF0aWNhbGx5CgoyMDEyLTAxLTI1IDE4OjQ5OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRml4IGhhbmRsaW5nIG9mIHRoZSBldmVudCBmdW5jdGlvbiBhbmQgZG9jdW1lbnQgaXQKCSAgVGhlIGV2ZW50IGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGZvcndhcmQvZHJvcCB0aGUgZXZlbnQgaW4gYW55IGNhc2UKCSAgbm93IGFuZCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGV2ZW50LgoKMjAxMi0wMS0yNSAxODozNjo0MiArMDEwMCAgSmFzb24gRGVSb3NlIDxqZGVyb3NlQG5vdmFjdXQuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UKCjIwMTItMDEtMjUgMTk6NDE6MDMgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdF9waXBlbGluZV9uZXcgbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UuCgoyMDEyLTAxLTI1IDE3OjI3OjQwICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiByZXR1cm5zIGEgbmV3IHJlZmVyZW5jZQoKMjAxMi0wMS0yNSAxNToxNDoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHVzZSBHQXJyYXkgZm9yIGludGVybmFsIGFycmF5cyBpbnN0ZWFkIG9mIHRoZSBub3ctZGVwcmVjYXRlZCBHVmFsdWVBcnJheQoKMjAxMi0wMS0yNSAxNjowMTowMiArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogQ2hhbmdlZCBpbnRyb3NwZWN0aW9uIHRyYW5zZmVyIGZsYWcgdG8gKHRyYW5zZmVyIGZsb2F0aW5nKQoJICBmb3IgZ3N0X3BhZF9uZXcsIGdzdF9naG9zdF9wYWRfbmV3IGFuZCBnc3RfYmluX25ldyBjb25zdHVjdG9ycy4gRml4ZXMKCSAgc2VnZmF1bHRzIGR1ZSBvZiB0cmFuc2ZlciBmdWxsIGFuZCBmbG9hdGluZyByZWYgcHJvYmxlbS4KCjIwMTItMDEtMjUgMTM6NDY6MTMgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0NjNiYzAgdG8gN2ZkYTUyNAoKMjAxMi0wMS0yNCAxNDozNzoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBmbGFncyB0byB0aGUgbWFwaW5mbwoKMjAxMi0wMS0yMCAxNjoxMDoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBtYWtlIGd1aW50OCAqIGZvciBlYXN5IHVzYWdlCgoyMDEyLTAxLTIwIDE0OjU2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogYWRkIG1ldGhvZCB0byBjcmVhdGUgbWFwcGVkIG1lbW9yeQoJICBBZGQgYSBtZXRob2QgdG8gY3JlYXRlIGEgR3N0TWVtb3J5IHdpdGggdGhlIGRlc2lyZWQgbWFwcGluZy4gTWFrZXMgYSBjb3B5IG9mIHRoZQoJICBtZW1vcnkgaWYgaXQgaXMgY3VycmVudGx5IGluIHVzZS4KCjIwMTItMDEtMjAgMTQ6MjM6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOgoJICBBZGQgbmV3IEdzdE1hcEluZm8KCSAgVXNlIGEgc3RydWN0dXJlIHRvIGhvbGQgaW5mbyBhYm91dCB0aGUgbWFwcGluZy4gVGhlIGFwcGxpY2F0aW9uIHRoZW4ga2VlcHMgdHJhY2sKCSAgb2YgdGhpcyBzdGF0ZSBhbmQgd2UgY2FuIHVzZSBpdCB0byB1bm1hcCB0aGUgbWVtb3J5IGFnYWluIGxhdGVyLgoKMjAxMi0wMS0yNSAxMTo0OTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSAgY29udHJvbGJpbmRpbmdzOiBuYW1lIGlzIG5vdCBhIGNvbnN0CgkgIEl0IGdldHMgbW9kaWZpZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZSBvYmplY3QuIEZpeGVzIGJ1aWxkLgoKMjAxMi0wMS0yNSAxMTo0MzoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAxLTI1IDExOjM3OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMmE1OTAxNiB0byBjNDYzYmMwCgoyMDEyLTAxLTI0IDIxOjUzOjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIHRoZSBjb250cm9sLWJpbmRpbmcgY29uc3RydWN0aW9uCgkgIFRoaXMgaXMgbm93IGJpbmRpbmdzIGZpcmVuZGx5IGFzIF9uZXcgaXMganVzdCBhIGNsYXNzaWMgYyBjb252ZW5pZW5jZSBhbmQgYWxsCgkgIHRoZSB3b3JrIGlzIGRvbmUgaW4gYSBjb25zdHJ1Y3Rvci4gQXMgYSBzaWRlIGVmZmVjdCBfbmV3IG5ldmVyIGZhaWxzLgoJICBGaXggdGhlIHRlc3RzLgoKMjAxMi0wMS0yNCAxNDo0MDozMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGhhbmRsZSBOVUxMIGRlc3QgaW4gYml0bWFzay9iaXRtYXNrIGludGVyc2VjdGlvbgoKMjAxMS0xMi0wMSAxMjo0MzowMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGFkZCBiYXNpYyB0ZXN0cyBmb3IgbmV3IHN0ZXBwZWQgcmFuZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMzAgMTQ6NDU6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogYWRkIHN0ZXBwZWQgcmFuZ2VzCgkgIGludCBhbmQgaW50NjQgcmFuZ2VzIGNhbiBub3cgaGF2ZSBhbiBvcHRpb25hbCBzdGVwIChkZWZhdWx0aW5nIHRvIDEpLgoJICBNZW1iZXJzIG9mIHRoZSByYW5nZSBhcmUgdGhvc2UgdmFsdWVzIHdpdGhpbiB0aGUgbWluIGFuZCBtYXggYm91bmRzCgkgIHdoaWNoIGFyZSBhIG11bHRpcGxlIG9mIHRoaXMgc3RlcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0zMCAxNzo1ODowNyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBhZGQgYSA2NCBiaXQgdmVyc2lvbiBvZiBHQ0QgY2FsY3VsYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0wNCAxODoyNjoxNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGVuZm9yY2UgaWRlbnRpY2FsIGJhc2ljIHR5cGVzIGluIGxpc3RzLCBhcnJheXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTMyMjU4NwoKMjAxMi0wMS0yMyAxMDozMjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgYmVuY2htYXJrczogYWRkIG1pc3NpbmcgaW5jbHVkZQoKMjAxMi0wMS0yMyAxMTowMzowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiByZWdpc3RlciBhbGwgcHJvcGVydGllcyBpbiBvbmUgZ28KCjIwMTItMDEtMjMgMTE6MDI6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiB1cGRhdGUgY29udHJvbGxlciBhcGkgZGVzaWduCgoyMDEyLTAxLTIxIDIwOjAzOjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBhbGxvdyBkaWZmZXJlbnQgY29udHJvbGJpbmRpbmdzCgkgIE1ha2UgY29udHJvbGJpbmRpbmcgYW4gYWJzdHJhY3QgYmFzZWNsYXNzLiBNb3ZlIGltcGxlbWVudGF0aW9uIHRvIGNvbnRyb2wtCgkgIGJpbmRpbmctZGlyZWN0IGFuZCBhZGQgYSBjb250cm9sLWJpbmRpbmctYXJnYi4gQWRkIGFuIGV4YW1wbGUuCgoyMDEyLTAxLTIyIDIyOjQ0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIFJlcGxhY2UgZGVwcmVjYXRlZCBHU3RhdGljTXV0ZXggd2l0aCBHTXV0ZXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjIwNwoKMjAxMi0wMS0yMiAxNToyMzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZml4IHR5cG8gaW4gZ3N0LWluc3BlY3QgZGVidWcgbWVzc2FnZQoKMjAxMi0wMS0yMiAwMTozOTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXNlIEdMaWIncyB0eXBlIGZvciBHRXJyb3IgaW5zdGVhZCBvZiBvdXIgb3duCgkgIFdlIGludHJvZHVjZWQgb3VyIG93biB3aGVuIEdMaWIgZGlkbid0IHdhbnQgdG8gYWRkIGEgR1R5cGUKCSAgZm9yIEdFcnJvci4gQnV0IG5vdyB0aGF0IHRoZXJlIGlzIG9uZSwgd2UgY2FuIHVzZSBHTGliJ3MKCSAgdW5jb25kaXRpb25hbGx5IGFuZCByZW1vdmUgb3VyIHZlcnNpb24uCgoyMDEyLTAxLTIyIDAxOjI3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBmaXggc2l6ZSBvZiBhdG9taWMgY291bnRlcgoKMjAxMi0wMS0yMiAwMToyNToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIFVzZSByZWNlbnQgR0xpYiBBUEkgdW5jb25kaXRpb25hbGx5IG5vdyB0aGF0IHdlIGRlcGVuZCBvbiB0aGUgbGF0ZXN0IEdMaWIKCjIwMTItMDEtMjIgMDA6NDI6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBkb24ndCB1c2UgZGVwcmVjYXRlZCBHU3RhdGljTXV0ZXggQVBJIGluIChzdGlsbCkgcHVibGljIGhlYWRlcgoKMjAxMi0wMS0yMSAxMjo1Njo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogc2V0IEdJX1RZUEVMSUJfUEFUSCBpbiBnc3QtdW5pbnN0YWxsZWQKCSAgU28gcHlnaSBmaW5kcy91c2VzIHRoZSBsb2NhbCBnLWkgZmlsZXMuCgoyMDEyLTAxLTIwIDE4OjA2OjA0ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGxpYmNoZWNrOiBtYWtlIHRoZSBkZWZpbml0aW9uIG9mIGZhaWwgbm90IGZhaWwgd2l0aCBub24gR0NDIGNvbXBpbGVycwoKMjAxMi0wMS0yMCAxNDo0MjozMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogaW1wcm92ZSBjb250cm9sIGJpbmRpbmcgaGFuZGxpbmcKCSAgQ2hhbmdlIF9zZXRfY29udHJvbF9iaW5kaW5nIHRvIF9hZGRfY29udHJvbF9iaW5kaW5nIGFuZCB0YWtlIG93bmVyc2hpcC4gQWRkIGEKCSAgX3JlbW92ZV9jb250cm9sX2JpbmRpbmcgZnVuY3Rpb24uCgoyMDEyLTAxLTIwIDA4OjI3OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBjb252ZW5pZW5jZSBhcGkgZm9yIGNvbnRyb2wgc291cmNlcwoJICBUaGlzIGlzIG5lZWRlZCB0byBzdXBwb3J0IG11bHRpcGxlIGtpbmRzIG9mIGNvbnRyb2wtYmluZGluZ3MuCgoyMDEyLTAxLTE5IDE1OjE3OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBOVUxMIGZyb20gZ2V0Y2FwcwoJICBJZiB0aGUgZ2V0Y2FwcyBmdW5jdGlvbnMgcmV0dXJucyBOVUxMLCByZXR1cm4gRkFMU0UgZnJvbSB0aGUgQ0FQUyBxdWVyeS4KCjIwMTItMDEtMTkgMTU6MTc6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgbGlzdHMgY29ycmVjdGx5CgoyMDEyLTAxLTE3IDE2OjIzOjMzIC0wNTAwICBDb2xpbiBXYWx0ZXJzIDx3YWx0ZXJzQHZlcmJ1bS5vcmc+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGFkZCAtLWRpc2FibGUtZmF0YWwtd2FybmluZ3MgY29uZmlndXJlIG9wdGlvbgoJICBJdCdzIHJlYXNvbmFibGUgdG8gYnVpbGQgZnJvbSBnaXQsIGJ1dCBub3Qgd2FudCB0byB0dXJuIGFsbCBjb21waWxlcgoJICB3YXJuaW5ncyBpbnRvIGZhdGFsIGVycm9ycy4gIEZvciBleGFtcGxlLCBHTk9NRSdzIGpoYnVpbGQgaGVscHMgcGVvcGxlCgkgIGdldCBuZXdlciB2ZXJzaW9ucyBvZiBzb2Z0d2FyZSB0aGFuIGNhbWUgZnJvbSB0aGVpciBkaXN0cmlidXRpb24sIGJ1dAoJICB0aGV5IG1heSBub3QgbmVjZXNzYXJpbHkgd2FudCB0byBoYWNrIG9uIGl0LgoKMjAxMi0wMS0xOSAxMjo1Nzo0OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIHRlc3RzOiBjbG9ja3N0cmVzczogcGVyZm9ybSBzYW5pdHkgY2hlY2sgb24gdGhyZWFkIG51bWJlciBhcmd1bWVudAoKMjAxMi0wMS0xOSAwOToxMjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5IGltcHJvdmVtZW50cwoJICBNYWtlIHRoZSBtZW1vcnkgb2JqZWN0IHNpbXBseSBtYW5hZ2UgdGhlIGRhdGEgcG9pbnRlciBhbmQgdGhlIG1heHNpemUgYW5kIG1vdmUKCSAgdGhlIG9mZnNldCBhbmQgc2l6ZSBoYW5kbGluZyB0byBjb21tb24gZnVuY3Rpb25hbGl0eS4KCSAgVXNlIHRoZSBSRUFET05MWSBmbGFnIHRvIHNldCBhIHJlYWRvbmx5IGxvY2suCgkgIFJlbW92ZSB0aGUgZGF0YSBhbmQgc2l6ZSBmaWVsZHMgZnJvbSB0aGUgdW5tYXAgbWV0aG9kLiBXZSBuZWVkIGFuIGV4cGxpY2l0CgkgIHJlc2l6ZSBvcGVyYXRpb24gaW5zdGVhZCBvZiB1c2luZyB0aGUgdW5tYXAgZnVuY3Rpb24uCgkgIE1ha2UgaW50ZXJuYWwgaGVscGVyIGxvY2sgYW5kIHVubG9jayBmdW5jdGlvbnMuCgkgIFVwZGF0ZSB1bml0IHRlc3QgYW5kIHVzZXJzIG9mIHRoZSBvbGQgQVBJLgoKMjAxMi0wMS0xOSAxMTo0Mzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGJ1cyBkb2NzCgoyMDEyLTAxLTEzIDE3OjQ1OjE3IC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogYWRkIHZpc3VhbCBzdHVkaW8gSURFIGZpbGVzIGFuZCBPUyBYIC5EU19TdG9yZSBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODk5CgoyMDEyLTAxLTE5IDA5OjI3OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICBVcGRhdGUgZm9yIG5ldyBndGhyZWFkIEFQSQoKMjAxMi0wMS0xOCAxNjo1Mjo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogR0lPIGNoZWNrIGlzIG5vdyBpbiBnc3QtZ2xpYjIubTQKCjIwMTItMDEtMTggMTY6NDU6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwODA3MTg3IHRvIDJhNTkwMTYKCjIwMTItMDEtMTggMTY6MTQ6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYiAyLjMxLjEwIGFuZCBpbXByb3ZlIEdJTyBjaGVjawoKMjAxMi0wMS0xOCAxMjowNzo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEFsd2F5cyBjYWxsIDo6cHJvcG9zZV9hbGxvY2F0aW9uIHZmdW5jCgkgIEFuZCBvbmx5IGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkgaWYgd2UncmUgd29ya2luZyBpbgoJICBwYXNzdGhyb3VnaCBtb2RlIGlmIG5vIDo6cHJvcG9zZV9hbGxvY2F0aW9uIGlzIGltcGxlbWVudGVkLgoJICBJbiBwbGFjZSBidWZmZXIgdHJhbnNmb3JtYXRpb25zIHdpbGwgY2hhbmdlIHRoZSBidWZmZXIKCSAgY29udGVudCBhbmQgcmVxdWlyZSBleHBsaWNpdCBoYW5kbGluZyBvZiBhbGwgbWV0YXMuCgoyMDEyLTAxLTE4IDExOjM3OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJ5IGRlZmF1bHQKCSAgVGhpcyBoYXMgdG8gYmUgaGFuZGxlZCBleHBsaWNpdGVseSBieSBlbGVtZW50cyB0bwoJICBtYWtlIHN1cmUgdGhhdCB0aGV5IHN1cHBvcnQgYWxsIHRoZSBtZXRhcyBwYXNzZWQKCSAgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnkuCgkgIE1ldGFzIGhhdmUgdG8gc3VwcG9ydGVkIGV4cGxpY2l0ZWx5LCBvdGhlcndpc2UgdGhlCgkgIHF1ZXJ5IHdpbGwgZmFpbC4gQWxsIGVsZW1lbnRzIGluIGEgY2hhaW4gbmVlZCB0bwoJICBzdXBwb3J0IGEgc3BlY2lmaWMgbWV0YSB0byBhbGxvdyBpdHMgdXNhZ2UuCgoyMDEyLTAxLTE4IDAxOjMxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZ3N0OiBzdXBwcmVzcyBzb21lIG1vcmUgZGVwcmVjYXRlZCB0aHJlYWQgYXBpIHVudGlsIHdlIGZpeCBpdCB1cAoJICBXaGljaCBzaG91bGQgYmUgc29vbiwgc2luY2Ugd2UgYWxyZWFkeSBkZXBlbmQgb24gYW4gdW5zdGFibGUgZ2xpYiBmb3IgLWJhc2UuCgoyMDEyLTAxLTE4IDAxOjE4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGVzIGZvciBhcGkgY2hhbmdlcwoKMjAxMi0wMS0xNyAyMzo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IHJlbW92ZSAgLS1kaXNhYmxlLW5ldCBvcHRpb24gYW5kIGFsd2F5cyBidWlsZCBsaWJnc3RuZXQKCSAgSXQgc2hvdWxkIHdvcmsgZXZlcnl3aGVyZSBub3csIGFuZCAtYmFzZSBhbmQgLWdvb2QgZGVwZW5kIG9uCgkgIHRoZSBHc3ROZXRNZXRhIEFQSS4KCjIwMTItMDEtMTcgMjM6NTI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIHNvbWUgc29ja2V0IGNydWZ0CgoyMDEwLTA1LTA1IDE2OjMzOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBwb3J0IHRvIHVzZSBnaW8ncyBuZXR3b3JraW5nIEFQSQoJICBTb21lIHdhcnRzIHN0aWxsLCBidXQgaXQncyBhIHN0YXJ0LgoKMjAxMi0wMS0xNyAxNjo1MDoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIG5ldDogQWRkIEdJTyB0byB0aGUgZ2ktc2Nhbm5lciBwYWNrYWdlcwoKMjAxMi0wMS0xNiAxMzozNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkgIG5ldGFkZHJlc3NtZXRhOiBVc2UgR1NvY2tldEFkZHJlc3MgaW5zdGVhZCBvZiBvdXIgb3duIHdyYXBwZXIgdHlwZQoKMjAxMi0wMS0xNiAxNTo1NzozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBtYWtlIHdyaXRhYmlsaXR5IGNoZWNrIGludG8gYSBtZXRob2QKCSAgVXNlIGEgbWV0aG9kIHRvIGNoZWNrIGZvciB3cml0YWJpbGl0eSBpbnN0ZWFkIG9mIGEgbWFjcm8gc28gdGhhdCB3ZSBjYW4gY2hhbmdlCgkgIHRoZSBpbXBsZW1lbnRhdGlvbiBtb3JlIGVhc2lseS4KCjIwMTItMDEtMTYgMTI6MjQ6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBpbXByb3ZlIG1lbW9yeSB0ZXN0CgoyMDEyLTAxLTE2IDEyOjI0OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMi0wMS0xMSAxMDo1OTo1MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZW5zdXJlIGF1dG9tYWdpYyBfdW5tYXAgaW4gc29tZSBtb3JlIGNhc2VzCgoyMDExLTExLTE1IDE3OjQyOjU2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdXRvbWF0aWNhbGx5IHVubWFwIG9uIGNsZWFyaW5nCgkgIFdoZW4gX2NsZWFyIGdldHMgY2FsbGVkIGJldHdlZW4gX21hcCBhbmQgX3VubWFwLCBidWZmZXJzCgkgIHdpbGwgYmUgdW5yZWZmZWQuIElmIHRoZSBhZGFwdGVyIHdhcyBtYXBwZWQsIG1lbW9yeSBsZWFrcwoJICBtYXkgb2NjdXIuCgkgIFdoaWxlIGNhbGxpbmcgX2NsZWFyIGJldHdlZW4gX21hcCBhbmQgX3VubWFwIGRvZXMgbm90IHNlZW0KCSAgbGlrZSBzdWNoIGEgZ3JlYXQgaWRlYSwgdGhpcyBpcyBwb3NzaWJsZSBpbiB0aGUgYXVkaW8KCSAgZW5jb2RlciBiYXNlIGNsYXNzLCBhcyBfY2xlYXIgbWF5IGJlIGNhbGxlZCBpbiBfZmluaXNoX2ZyYW1lLgoJICBTaW5jZSB0aGUgYXVkaW8gZW5jb2RlciByZWxpZXMgb24gZmx1c2hpbmcgdG8ga2VlcCB0cmFjayBvZgoJICB0aW1lc3RhbXBzLCBkZWxheWluZyBmbHVzaGluZyB0aWxsIGFmdGVyIGhhbmRsZV9mcmFtZSBzZWVtcwoJICBkYW5nZXJvdXMuCgkgIFNvLCB3ZSB1bm1hcCBvbiBjbGVhciwgYXMgdGhlIG5leHQgdW5tYXAgd2lsbCBkbyBub3RoaW5nLgoJICBUaGlzIG1ha2VzIF9jbGVhciBzYWZlIHRvIGNhbGwgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAsCgkgIHdoaWxlIGF2b2lkaW5nIGxlYWtpbmcgdGhlIG1hcHBlZCBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQxMzMKCjIwMTItMDEtMTMgMTQ6MjA6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByZXZlbnQgdW5saWtlbHkgY2FwcyBsZWFrCgoyMDEyLTAxLTEzIDEwOjQzOjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwbHVnIGZhY3RvcnkgbGVhayBvbiBlcnJvcgoKMjAxMi0wMS0xMyAwMDoyMjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0b29scy9nc3QtaW5zcGVjdC5jCgoyMDEyLTAxLTEyIDIwOjQ2OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBHU1RfVFlQRV9EQVRFLCBvdXIgb3duIEdEYXRlIHR5cGUKCSAgV2hpY2ggd2UgaGFkIHRvIGFkZCBiZWNhdXNlIEdMaWIgZGlkbid0IGhhdmUgaXQKCSAgYmFjayBpbiB0aGUgZGF5LiBQb3J0IGV2ZXJ5dGhpbmcgdG8gcGxhaW4gb2xkCgkgIEdfVFlQRV9EQVRFLCB3aGljaCBpcyBhbHNvIGEgYm94ZWQgdHlwZS4gSWRlYWxseQoJICB3ZSdkIGp1c3QgdXNlIEdEYXRlVGltZSBmb3IgZXZlcnl0aGluZywgYnV0IGl0CgkgIGRvZXNuJ3Qgc3VwcG9ydCBub3Qgc2V0dGluZyBzb21lIG9mIHRoZSBmaWVsZHMKCSAgdW5mb3J0dW50ZWx5ICh3aGljaCB3b3VsZCBiZSB2ZXJ5IHVzZWZ1bCBmb3IKCSAgdGFnIGhhbmRsaW5nIGluIGdlbmVyYWwsIGlmIHdlIGNvdWxkIGV4cHJlc3MKCSAgMjAxMi0wMSBmb3IgZXhhbXBsZSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYzNTEKCjIwMTItMDEtMTIgMTk6NTM6MTEgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsZWFyIGFkYXB0ZXIgaW4gcmVzZXQgc28gYmFzZXBhcnNlIGlzIHJldXNhYmxlCgkgIEdzdEJhc2VQYXJzZSB3YXMgbm90IGNsZWFyaW5nIGl0cyBhZGFwdGVyIG9uIHJlc2V0IGNhdXNpbmcKCSAgcHJvYmxlbXMgd2hlbiBhIHBpcGVsaW5lIHdlbnQgZm9yIGV4YW1wbGUgZnJvbSBQTEFZSU5HIHRvIE5VTEwKCSAgc3RhdGUgYW5kIHRoZW4gYmFjayB0byBQTEFZSU5HIGFnYWluLiBUaGUgZGF0YSBmcm9tIHRoZSBsYXN0CgkgIHN0cmVhbSB3b3VsZCBiZSB1c2VkIGluIHRoZSBwYXJzZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc0NDQKCjIwMTItMDEtMTIgMTU6NTA6NTMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0aW5zcGVjdDogZml4IGZlYXR1cmVzIGFuZCBsaXN0IGxlYWtzCgoyMDEyLTAxLTEyIDExOjAzOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgoyMDEyLTAxLTExIDEyOjE5OjIwICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBjbGFyaWZ5IF9nZXQgZG9jcyBhYm91dCB0aGUgcmV0dXJuZWQgcmVmZXJlbmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc2ODkKCjIwMTItMDEtMTAgMTM6MDA6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMS0wNiAxNjozOTowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2VuZCBjYXBzIGFnYWluIGFmdGVyIGFjdGl2YXRpb24KCSAgQXZvaWRzIGVuZGluZyB1cCBpbiBjYXNlcyB3aGVyZSB0eXBlZmluZCBnZXRzIGFjdGl2YXRlZCBpbiBwdWxsLW1vZGUKCSAgYW5kIGNhcHMgbmV2ZXIgZ2V0IHNlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjczMzcKCjIwMTItMDEtMDkgMTU6NTk6MDkgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgQWRkIGxhdGVzdCBzcGVjZmlsZSBjaGFuZ2VzCgoyMDEyLTAxLTA5IDE1OjU4OjQ1ICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgQWxzbyBhZGQgaGVhZGVyZmlsZQoKMjAxMi0wMS0wOSAxNTo1Nzo1MSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEZpeCBkb3RmaWxlIEFQSSB0byBiZSBleHBvcnRlZCBzaW5jZSBtYWNyb3MgY2FuJ3QgYmUgR0kgYm91bmQKCjIwMTItMDEtMDkgMTM6MTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IG1lbW9yeSB0ZXN0IGJpbmFyeQoKMjAxMi0wMS0wOSAwMzoxNDo0MSAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBGaXggcHJpbnRmIGZvcm1hdCBidWlsZCB3YXJuaW5ncwoKMjAxMi0wMS0wOSAxMzoxMDoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXcgc3RyaW5ncwoKMjAxMi0wMS0wNiAxNTowMToyNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFsbG93IE5VTEwgZGVzdCB3aGVuIHN1YnRyYWN0aW5nIGJpdG1hc2sKCSAgSGFwcGVucyB3aGVuIGNoZWNraW5nIGZvciBzdWJzZXRzIG9mIGNhcHMKCjIwMTItMDEtMDYgMTM6MzI6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZW5zdXJlIHdyaXRhYmxlIG1lbW9yeSBpbiBtZW1zZXQKCjIwMTItMDEtMDYgMTM6MTA6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2hlY2sgc2VtYW50aWNzIG9mIG5lc3RlZCBtYXBwaW5ncwoJICBDb3VudCBob3cgbWFueSBtYXBwaW5ncyBhcmUgY3VycmVudGx5IGFjdGl2ZSBhbmQgYWxzbyB3aXRoIHdoYXQgYWNjZXNzIHBhdHRlcm4uCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvYyB3aXRoIHJlc3RyaWN0aW9ucyBvbiB0aGUgYWNjZXNzIHBhdHRlcm5zIGZvciBuZXN0ZWQKCSAgbWFwcGluZ3MuCgkgIENoZWNrIGlmIG5lc3RlZCBtYXBwaW5ncyBvYmV5IHRoZSBhY2Nlc3MgbW9kZSByZXN0cmljdGlvbnMgb2YgdGhlIGRlc2lnbiBkb2MuCgkgIEFkZCB2YXJpb3VzIHVuaXQgdGVzdHMgdG8gY2hlY2sgdGhlIGRlc2lyZWQgYmVoYXZpb3VyLgoKMjAxMi0wMS0wNiAxMzowNjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdW5tYXAgd2l0aCB0aGUgcmlnaHQgZGF0YSBwb2ludGVyCgkgIFVzZSB0aGUgb3JpZ2luYWwgZGF0YSBwb2ludGVyIHRvIHVubWFwIHRoZSBidWZmZXIgbWVtb3J5LgoKMjAxMi0wMS0wNiAxMDozOTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZG9jczogaW1wcm92ZSBtZW1vcnkgZG9jcwoKMjAxMi0wMS0wNiAwNzowMjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGhhbmRsZSAtMSBzaXplIGluIHVubWFwCgkgIGhhbmRsZSAtMSBpbiB1bm1hcCBjb3JyZWN0bHkgd2hlbiB0aGUgb2Zmc2V0IGlzIG1vZGlmaWVkLgoKMjAxMi0wMS0wNiAwNjo0MzowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGltcHJvdmUgc2VtYW50aWNzIG9mIHVubWFwCgkgIE1ha2UgYW4gdW5tYXAgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGRhdGEgcG9pbnRlciB0aGFuIHRoZSBtYXAgY2FsbCB1cGRhdGUgdGhlCgkgIG9mZnNldCBmaWVsZC4gVGhpcyBhbGxvd3MgZm9yIGJvdGggb2Zmc2V0IGFuZCBzaXplIGFkanVzdGVtZW50cyBpbiB0aGUgdW5tYXAKCSAgY2FsbC4KCjIwMTEtMTEtMjkgMTQ6MjI6NDQgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IGNvbXBlbnNhdGUgZm9yIHJlbmRlci1kZWxheSB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjk4CgoyMDEyLTAxLTA1IDE4OjE1OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIG1vcmUgY2hlY2tzCgkgIEFkZCBjaGVjayBmb3IgbWFwcGluZyBhbmQgcmVzaXppbmcKCjIwMTItMDEtMDUgMTc6Mjg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudAoJICBUYWtlIHRoZSBvZmZzZXQgaW50byBhY2NvdW50IHdoZW0gbWFwcGluZyBhbmQgdW5tYXBwaW5nIHRoZSBidWZmZXIuCgoyMDEyLTAxLTA1IDE3OjAyOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBjbGFyaWZ5IHJlc2l6ZSBhbmQgY3VycmVudCBtYXBwaW5ncwoKMjAxMi0wMS0wNSAxNjo0MTo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNsYXJpZnkgbmVzdGVkIG1hcHBpbmdzLCBhZGQgdW5pdCB0ZXN0CgoyMDEyLTAxLTA1IDEyOjMwOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgoyMDEyLTAxLTA1IDEzOjIyOjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogYWRkIG1vcmUgbWVtb3J5IHVuaXQgdGVzdHMKCSAgQ2hlY2sgZm9yIHVubWFwIHdpdGggaW52YWxpZCBzaXplCgoyMDEyLTAxLTA1IDEzOjExOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgR3N0TWVtb3J5CgkgIEFkZCBhIEdzdE1lbW9yeSB1bml0IHRlc3QKCSAgQWRkIHNvbWUgbW9yZSBhc3NlcnRzIGluIEdzdE1lbW9yeSB0byBjYXRjaCBpbnZhbGlkIGNhc2VzLgoKMjAxMi0wMS0wNSAxMzowOToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIG1lbW9yeSByZWZjb3VudAoKMjAxMi0wMS0wNSAxMjozOToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDExLTEyLTE2IDEzOjExOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHRlc3RzIGZvciB0aGUgYml0bWFzayB0eXBlCgoyMDExLTEyLTE2IDEyOjM5OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgImJpdG1hc2siIGFzIGFsaWFzIGZvciAoR3N0Qml0bWFzaykgd2hlbiAoZGUtKXNlcmlhbGl6aW5nIHZhbHVlcwoKMjAxMS0xMi0xNiAxMjozMjoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBBZGQgNjQtYml0IGJpdG1hc2sgdHlwZQoKMjAxMi0wMS0wMSAxNjozMjoyNyArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGJ1aWxkOiBkb24ndCBvdXRwdXQgY29uZmlndXJlIG9wdGlvbnMgdmlhIGF1dG9nZW4gaWYgJE5PQ09ORklHVVJFIGlzIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjk2CgoyMDEyLTAxLTA1IDAwOjMwOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBnc3Q6IGluY2x1ZGUgbG9jYWxlLmggYmVmb3JlIGFueSBvdGhlciBpMThuIGhlYWRlcnMKCSAgVGhpcyBpcyBhbHNvIGhvdyB3ZSBkbyBpdCBpbiAtYmFzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5MAoKMjAxMi0wMS0wMSAxNjo0NjowNCArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBhZGRzIGFuZCB1c2VzIFN1blBybyB2aXNpYmlsaXR5IGF0dHJpYnV0ZSBmb3IgcHJvcGVyIGZ1bmN0aW9uIGV4cG9ydHMKCSAgRGVmaW5lIEdTVF9FWFBPUlQgZm9yIFN1blByby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4OQoKMjAxMi0wMS0wMSAxNjo0NzoxNCArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIHBsdWdpbnM6IGV4cGxpY2l0bHkgY2FzdCBpbml0aWFsaXphdGlvbiB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg4CgoyMDEyLTAxLTAxIDIwOjE3OjQxICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW5jbHVkZSBjb3JyZWN0IHBvbGwuaCBiYXNlZCBvbiBhdXRvY29uZiB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODYKCjIwMTItMDEtMDQgMjM6NDY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGNoZWNrIGZvciBzeXMvcG9sbC5oCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODYKCjIwMTItMDEtMDQgMTk6NTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhNjJmM2Q0IHRvIDA4MDcxODcKCjIwMTItMDEtMDQgMTA6MDQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogb25seSByZXNlcnZlIDYgZXh0cmEgZmxhZ3MKCSAgT25seSByZXNlcnZlIDYgZXh0cmEgZmxhZ3MgaW5zdGVhZCBvZiAxMCBzbyB0aGF0IG1vcmUgbWVkaWEgc3BlY2lmaWMgZmxhZ3MKCSAgYXJlIGF2YWlsYWJsZS4KCjIwMTItMDEtMDMgMTU6MjU6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIEdTVF9GTE9XX1VORVhQRUNURUQgLT4gR1NUX0ZMT1dfRU9TCgoyMDEyLTAxLTAzIDE1OjA1OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IHJlc3RvcmUgVU5FWFBFQ1RFRAoKMjAxMi0wMS0wMyAxNTowMzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBkb2NzOiBmaXggc29tZSBkb2NzCgoyMDEyLTAxLTAzIDE0OjQ1OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMS0wMyAxNDo0MzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGF2b2lkIGV4cG9zaW5nIHRoZSBsaXN0cyBpbiB0YWdzCgoyMDEyLTAxLTAzIDEzOjQyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIG1pc3NpbmcgZnVuY3Rpb25zCgkgIEFkZCBtaXNzaW5nIGFuZCBlc3NlbnRpYWwgZnVuY3Rpb25zIG5vdyB0aGF0IHdlIGNhbid0IGRpcmVjdGx5IHVzZSBHc3RTdHJ1Y3R1cmUKCSAgbWV0aG9kcyBvbiB0aGUgdGFnbGlzdCBhbnltb3JlLgoKMjAxMi0wMS0wMyAxMDo0MjozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogYWRkIG1hY3JvIHRvIGNoZWNrIGlmIGEgZ3ZhbHVlIGhvbGRzIGEgc2FtcGxlCgoyMDEyLTAxLTAyIDE1OjQ3OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgZG9jczogZml4IGJ1aWxkIG9mIGRvY3MgZXhhbXBsZXMKCSAgVXBkYXRlIGZvciByZWdpc3RyeSBtZXRob2QgcmVuYW1lCgoyMDEyLTAxLTAyIDE1OjM5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dXJuIGFzc2VydCBpbnRvIGEgcmVhbCBlcnJvcgoJICBQb3N0IGEgcmVhbCBlcnJvciBpbnN0ZWFkIG9mIGp1c3QgYXNzZXJ0aW5nLgoKMjAxMi0wMS0wMiAxNTozODoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgbGF0ZW5jeSBldmVudAoKMjAxMi0wMS0wMiAwMjozMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBnZXQgcmlkIG9mIGdzdF9kZWZhdWx0X3JlZ2lzdHJ5XyooKSBjb252ZW5pZW5jZSBtYWNyb3MKCSAgVGhleSdyZSBub3QgcmVhbGx5IHdvcnRoIGl0OiBoYXJkbHkgc2F2ZSBhbnkgdHlwaW5nLCBhbmQgYXJlbid0CgkgIGdyZWF0IGZvciBiaW5kaW5ncyBvciBnb2JqZWN0LWludHJvc3BlY3Rpb24uCgoyMDEyLTAxLTAyIDAyOjIyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiByZW5hbWUgZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KCkgdG8gZ3N0X3JlZ2lzdHJ5X2dldCgpCgkgIEl0J3Mgbm90IHJlYWxseSBhIGRlZmF1bHQgaWYgdGhlcmUgaXMgb25seSBvbmUgdGhhdCBjYW4ndCBiZSBjaGFuZ2VkLgoJICBTaG91bGQgd2UgcmV0dXJuIGEgcmVmIGxpa2UgZS5nLiBnX3ZvbHVtZV9tb25pdG9yX2dldCgpIGRvZXM/CgoyMDEyLTAxLTAyIDAyOjIxOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R0YWdsaXN0LmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jCgoyMDEyLTAxLTAyIDAwOjE3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBHU1RfVEFHX0xBTkdVQUdFX05BTUUKCSAgQVBJOiBHU1RfVEFHX0xBTkdVQUdFX05BTUUKCjIwMTItMDEtMDEgMjA6NTk6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiB1cGRhdGUgY29udHJvbGxlciBkZXNpZ24gZG9jCgoyMDEyLTAxLTAxIDIwOjU3OjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbmFtZSBzb21lIHRlc3RzCgoyMDEyLTAxLTAxIDIwOjU1OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBzdXBwb3J0IGNvbnRyb2wgbWFwcGluZyBmb3IgZW51bXMKCSAgQWRkIGEgbWFwcGluZyBmb3IgZW51bSB0eXBlcyAoc3VwcG9ydGluZyBzcGFyc2UgZW51bXMpLiBBZGQgYSB0ZXN0LgoKMjAxMi0wMS0wMSAyMDo0Mzo1MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgbm9uc2Vuc2UgcGFydHMgZnJvbSB0ZXN0IG9iamVjdCBwcm9wZXJ0eSBkZXNjcmlwdGlvbnMKCjIwMTItMDEtMDEgMTg6NTQ6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBmaXggY3ViaWMgaW50ZXJwb2xhdGlvbiBmb3IgYXJyYXlzCgoyMDEyLTAxLTAxIDE4OjUwOjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgYXVkaW8tZXhhbXBsZTogYWxzbyBwbG90IHJldmVyc2Utc2F3CgoyMDEyLTAxLTAxIDE4OjQzOjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGNsZWFudXBzIGFuZCBmaXggdHJpYW5nbGUgY2FsY3VsYXRpb25zCgoyMDEyLTAxLTAxIDE4OjM0OjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGF1ZGlvLWV4YW1wbGU6IGZpeCB0aGUgZXhhbXBsZQoJICBXZSBuZWVkIHRvIHNjYWxlIHRoZSBmcmVxdWVuY3kgdmFsdWVzLgoKMjAxMi0wMS0wMSAxNToxNjowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBsZm9jb250cm9sc291cmNlOiBtYWtlIGNoYWluYWJsZQoJICBOb3cgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBjb250cm9sc291cmNlIGFyZSBpbiB0dXJuIGNvbnRyb2xhYmxlLiBBZGQgYW4gZXhhbXBsZQoJICB0byBzaG93IHRoZSB1c2FnZS4KCjIwMTItMDEtMDEgMTU6MDE6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBsb2dnaW5nIGFuZCBmaXggYXJyYXkgZnVuY3Rpb25zCgoyMDEyLTAxLTAxIDE0OjU1OjM1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgdGhlIHRlc3RzCgoyMDEyLTAxLTAxIDE0OjI4OjU0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcKCjIwMTEtMTItMzEgMTc6Mzc6MjAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNvbnZlcnQgTWFrZWZpbGUgc3BhY2VzIHRvIHRhYnMKCjIwMTEtMTItMzEgMTU6NTI6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiBhbHNvIHRlc3QgYXJyYXkgZnVuY3Rpb25zCgkgIEltcHJvdmUgdGhlIGV4YW1wbGUgdG8gYWxzbyBjb2xsZWN0IHZhbHVlIGFycmF5cyBhbmQgcGxvdCB0aGVtLgoKMjAxMS0xMi0zMSAxNToyNjoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG9ic29sZXRlIEZJWE1FIGNvbW1lbnQKCjIwMTEtMTItMzEgMDk6NTY6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZml4IHRlc3RzCgkgIFNldCBhIGRlZmluZWQgdmFsdWUgdG8gY2hlY2sgZm9yIG5vLWNoYW5nZS4KCjIwMTEtMTItMzAgMTg6MzU6NDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sLXNvdXJjZXM6IHR1cm4gaW50byBHc3RPYmplY3RzCgkgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBmb3IgY2hhaW5pbmcgdGhlbS4KCjIwMTEtMTItMzAgMTk6Mzc6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogcmVtb3ZlIHBhZGRpbmcgYW5kIHNpZ25hbCB2ZnVuY3MKCSAgQW5kIGZpeCBzaWduYWwgR1R5cGVzIGFuZCBtYXJzaGFsbGVyLiBObyBvbmUgd2lsbCBldmVyCgkgIG5lZWQgdG8gc3ViY2xhc3Mgb3VyIHJlZ2lzdHJ5LCBzbyBqdXN0IHJlbW92ZSB0aGUgcGFkZGluZwoJICBhbmQgdGhlIHNpZ25hbCB2ZnVuY3MuCgoyMDExLTEyLTMwIDE1OjM5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZGlzYWJsZSBHc3RJbmRleCB1bml0IHRlc3QKCjIwMTEtMTItMzAgMTU6MzE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSAgaW5kZXg6IHJlbmFtZSBHc3RBc3NvY0ZsYWdzIHRvIEdzdEluZGV4QXNzb2NpYXRpb25GbGFncwoJICBKdXN0IGluIGNhc2Ugd2UgcmVzdXJyZWN0IHRoaXMgbGF0ZXIuCgoyMDExLTEyLTMwIDE1OjI0OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkgIGJhc2U6IGRpc2FibGUgdW51c2VkIGluZGV4IEFQSSBhbmQgbWFrZSBmdW5jdGlvbnMgc3RhdGljCgkgIEl0J3Mgc2ltcGx5IHByaXZhdGUgaGVscGVyIEFQSSBmb3Igbm93LCB1bnRpbCBzb21lb25lCgkgIGZpeGVzIHVwIEdzdEJhc2VQYXJzZSBub3QgdG8gbmVlZCBpdCBhbnkgbW9yZS4KCjIwMTEtMTItMzAgMTU6MjQ6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiByZW1vdmUgaW5kZXggQVBJIGZyb20gLmRlZiBmaWxlCgoyMDExLTEyLTMwIDE1OjA2OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGFkZCBMQVJHRSBwYWRkaW5nIHRvIGNsYXNzIHN0cnVjdHVyZQoJICBGb3VyIHNsb3RzIGZvciBleHBhbnNpb24gaXMgbm90IGEgbG90LgoKMjAxMS0xMi0zMCAxNTowMzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBpbmRleDogcmVtb3ZlIEdzdEluZGV4IGFuZCBHc3RJbmRleEZhY3RvcnkgZm9yIG5vdwoJICBUaGVyZSBhcmUgbWFueSBnb29kIHVzZSBjYXNlcyBmb3IgR3N0SW5kZXggYW5kIHdlIHdhbnQKCSAgdG8gYWRkIGl0IGJhY2sgYWdhaW4gaW4gc29tZSBmb3JtLCBidXQgcG9zc2libHkgbm90IHdpdGgKCSAgdGhlIGN1cnJlbnQgQVBJLCB3aGljaCBpcyB2ZXJ5IHBvd2VyZnVsIChtYXliZSB0b28gcG93ZXJmdWwpLAoJICBidXQgYWxzbyBhIGJpdCBjb25mdXNpbmcuIEF0IHRoZSB2ZXJ5IGxlYXN0IHdlJ2QgbmVlZCB0bwoJICBtYWtlIHRoZSBBUEkgYmluZGluZ3MtZnJpZW5kbHkuCgoyMDExLTEyLTMwIDE3OjU3OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHVucmVmIHRoZSB0d28gY290bnJvbGxlciB0eXBlcyBpbiBfZGVpbml0KCkKCjIwMTEtMTItMzAgMTc6NTE6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSB0ZXN0cyB0byBjb3JlIGNvbnRyb2xsZXIgc3VpdGUKCSAgRXh0ZW5kIHRoZSBkdW1teSBjb250cm9sLXNvdXJjZSB0byBhbGxvdyB0ZXN0aW5nIHRoZSBzeW5jIGNvZGUgcGF0aC4gQWRkIHRlc3QKCSAgZm9yIDE6MSBhbmQgMjoxIHZhbHVlIDwtPiBjb250cm9sLXNvdXJjZSBzeW5jLgoKMjAxMS0xMi0zMCAxMzo1MjowOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIHRlc3QgZm9yIGJpbmRpbmdzIGNvbnRyb2wgc291cmNlcyBtdWx0aXBsZSB0aW1lcwoKMjAxMS0xMi0zMCAxMjo1OTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQ6IG1vdmUgc3RhdGljIHZhcmlhYmxlIGZvciBOQU4gaW50byAjaWZuZGVmIE5BTiBibG9jawoJICBBbmQgdXNlIEdfR05VQ19VTlVTRUQgaW5zdGVhZCBvZiBfX2F0dHJpYnV0ZV91c2VkX18KCjIwMTEtMTItMzAgMTM6MzI6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBOQU4gaW5zdGVhZCBvZiBGUF9OQU4gKHdoaWNoIGlzIHRoZSBjbGFzcykKCSAgQWxzbyBhZGQgYSBmYWxsYmFjayBkZWZpbmUgdG8gbWF0aC1jb21wYXQuaC4KCSAgRml4ZXMgIzY2Njg4NwoKMjAxMS0xMi0yOSAxNjo1Njo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IERvIG5vdCBmYWxzZSB3YXJuIGFib3V0IHVubGlua2VkIHBhZAoJICBXaGVuIG91dHB1dC1zZWxlY3RvciBkaWRuJ3QgcmVjZWl2ZSBhIG5ld3NlZ21lbnQgZXZlbnQgaXQgd291bGQKCSAgd2FybiBhYm91dCBwYWQgYmVpbmcgdW5saW5rZWQgd2hlbiBzd2l0Y2hpbmcgcGFkcy4gTWFraW5nIHRoZSBsb2dzCgkgIHdyb25nIGFuZCBtaXNsZWFkaW5nLgoKMjAxMS0xMi0yOSAxNjo0OTozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMjggMTU6MTM6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogRml4IGxlYWsgaW4gcGFkIGNoZWNrCgoyMDExLTEyLTI4IDE0OjUxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGRlaW5pdCBtZXRhIGZsYWdzIHRvbwoKMjAxMS0xMi0yOCAxMjoyNTo1OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogSW5pdGlhbGl6ZSBuZXcgR3N0TWV0YUZsYWdzIGluIGluaXRfcG9zdCgpCgoyMDExLTEyLTAxIDE5OjA1OjU5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogU21hbGwgZG9jIGZpeHVwcwoKMjAxMS0xMi0xNiAwMjoyMDoyNyArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB3aW4zMjogZml4IGV4cG9ydGVkIHZhcmlhYmxlcyBmb3IgVlMgMjAxMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MjE5CgoyMDExLTEyLTI3IDEzOjQ4OjM2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogZml4IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KCSAgUmV0dXJuIE5BTiBhbmQgY2hlY2sgdGhlIHZhbHVlIGZ1cnRoZXIgdXAuCgkgIEZpeGVzICM2NjY4OTAKCjIwMTEtMTItMjcgMTE6NDA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBxdWljay1maXggY29tcGlsZXIgd2FybmluZyBicmVha2luZyB0aGUgYnVpbGQKCSAgVGhpcyBpcyBsaWtlbHkgbm90IHRoZSBwcm9wZXIgZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2ODkwCgoyMDExLTEyLTI3IDExOjM1OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IGNhbid0IGFjY2VzcyBwcml2YXRlIHJlZ2lzdHJ5IHN0cnVjdHVyZSBtZW1iZXJzIGRpcmVjdGx5IGFueSBsb25nZXIKCjIwMTEtMTItMjcgMTE6MjQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBpbiBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlCgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6NTQ6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkCgkgIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY4OTAKCjIwMTEtMTItMjYgMTg6NDQ6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSAiZmQiIHByb3BlcnR5CgkgIEl0J3Mgbm8gbG9uZ2VyIHVzZWZ1bCwgc2luY2Ugd2UgZG9uJ3QgdXNlIG1tYXAgYW55IG1vcmUgYW55d2F5LAoJICBhbmQgd2UgbWlnaHQgdXNlIGEgZGlmZmVyZW50IEFQSSBmb3IgSS9PIGluIGZ1dHVyZSAoc3VjaCBhcyBHSU8pLgoKMjAxMS0xMi0yNiAxODo0MToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogbW92ZSBwcml2YXRlIGJpdHMgaW50byBwcml2YXRlIHN0cnVjdAoKMjAxMS0xMi0yNiAxMToyNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IG1pY3JvLW9wdGltaXNhdGlvbjogYXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBnX3ZhbHVlX3Vuc2V0KCkKCSAgV2Uga25vdyB0aGVyZSdzIG5vdGhpbmcgdG8gZG8gaGVyZSBhbmQgY2FuIHNhdmUgdXMgdGhlIGZ1bmN0aW9uCgkgIGNhbGxzIGFuZCBHVmFsdWVUYWJsZSBsb29rdXBzLgoKMjAxMS0xMi0yNSAyMzo0MTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICBsaWJzOiByZW1vdmUgZ2RwIGRhdGFwcm90b2NvbCBsaWJyYXJ5CgkgIE1hZGUgcHJpdmF0ZSBhbmQgbW92ZWQgdG8gZ2RwIHBsdWdpbiBpbiAtYmFzZSBmb3IKCSAgdGhlIHRpbWUgYmVpbmcsIHVudGlsIHdlIGZpZ3VyZSBvdXQgd2hhdCB3ZSBkbyB3aXRoCgkgIGdkcCBhbmQgMC4xMS4KCjIwMTEtMTItMjUgMjE6MDI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBmaXggdW51c2VkLXZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTEtMTItMjUgMjE6MDE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGZvciBuZXcgQVBJCgoyMDExLTEyLTI1IDIwOjQ5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogYWRkIHRoZSBzdGFydCBvZiBhIGRlc2lnbiBkb2N1bWVudCBmb3IgY29udHJvbGxlcgoKMjAxMS0xMi0yNSAxODo0OTowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogc3BsaXQgYW5kIGNsZWFudXAgdGhlIHRlc3RzCgkgIFRoZSBjb250cm9sbGVyIG9iamVjdCB3YXMgb25jZSBjb3BpZWQgZnJvbSBidXp6dGFyZHMgdW5pdCB0ZXN0cy4gQ2hhbmdlCgkgIFRlc3RNb25vU291cmNlIHRvIFRlc3RPYmogYXMgaXQgaXMgbm90IGEgZnVsbCBmbGVkZ2VkIGVsZW1lbnQuIFNwbGl0IHRoZSB0ZXN0cwoJICBpbnRvIGEgY29yZSBhbmQgbGlicmFyeSB0ZXN0IHN1aXRlLgoKMjAxMS0xMi0yMiAyMzo0ODozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiBtb3ZlIEdWYWx1ZSBoYW5kbGluZyBmcm9tIGNvbnRyb2wtc291cmNlcyB0byAtYmluZGluZwoJICBDb250cm9sU291cmNlcyBhcmUgbm93IGdkb3VibGUgYmFzZWQuIEEgY29udHJvbCBzb3VyY2UgaXMgbWFwcGVkIHRvIGEKCSAgcGFydGljdWxsYXIgR09iamVjdCBwcm9wZXJ0eSB1c2luZyBhIENvbnRyb2xCaW5kaW5nLgoKMjAxMS0xMi0yMCAyMjozNjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgR3N0Q29udHJvbGxlZFByb3BlcnR5IGludG8gYSBzZXBhcmF0ZSBjbGFzcwoJICBBZGQgYSBHc3RDb250cm9sQmluZGluZyBjbGFzcy4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBtYWtpbmcgdGhlCgkgIGNvbnRyb2xzb3VyY2VzIGdlbmVyYXRlIGRvdWJsZSB2YWx1ZWQgY29udHJvbCBjdXJ2ZXMgYW5kIGRvIHRoZSBncGFyYW1zcGVjCgkgIG1hcHBpbmcgaW4gdGhlIGNvbnRyb2wgYmluZGluZy4gTm93IHRoZSBBUEkgaW4gR3N0T2JqZWN0IGlzIGFnYWluIG1vc3RseQoJICBmb3IgY29udmVuaWVuY2UuCgoyMDExLTEyLTI1IDEyOjQ3OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jCgoyMDExLTEyLTI1IDEyOjM5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZXR1cm4gYW55IHJlbWFpbmluZyBkYXRhIG9uIEVPUyBiZWZvcmUgcmV0dXJuaW5nIEZMT1dfVU5FWFBFQ1RFRAoKMjAxMS0xMi0yNSAxMjoyOTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogbWlub3IgY29zbWV0aWMgY2hhbmdlcwoJICBSZW5hbWUgd29mZnNldCB2YXJpYWJsZSwgbWFpbnRhaW4gc2VwYXJhdGUgYnl0ZXNfcmVhZCBpbiBhZGRpdGlvbgoJICB0byBsZW5ndGggdmFyaWFibGUuCgoyMDExLTEyLTI1IDEyOjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogZml4IHVwIGNvbXBpbGF0aW9uIGFmdGVyIG1lcmdlCgoyMDExLTEyLTI1IDExOjU4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYwoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYwoJICBEaXQgbm90IG1lcmdlIGNvbnRyb2xsZXIgb3IgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzLgoKMjAxMS0xMi0yNCAxNDo1OToxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmctdG8tMC4xMQoJICBVcGRhdGUgZ3N0X3BhZF9nZXRfY2FwcyAtPiBnc3RfcGFkX3F1ZXJ5X2NhcHMgY2hhbmdlCgoyMDExLTEyLTIzIDE1OjM3OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogY2xlYW51cCBtZXRhZGF0YSBpbiByZXNldF9idWZmZXIKCSAgVXNlIHRoZSByZXNldF9idWZmZXIgdm1ldGhvZCB0byByZW1vdmUgdGhlIHVucG9vbGVkIG1ldGFkYXRhIGZyb20gdGhlIGJ1ZmZlci4KCjIwMTEtMTItMjIgMTY6MDA6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUgZm9yIG5ldyBzeW1ib2xzCgoyMDExLTEyLTIyIDE1OjU1OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogaGFuZGxlIG1ldGFkYXRhIGluIHRoZSBwb29sCgkgIE1hcmsgYWxsIG1ldGFkYXRhIG9uIHRoZSBhbGxvY2F0ZWQgYnVmZmVycyB3aXRoIGEgUE9PTEVEIGZsYWcuIFdoZW4gYSBidWZmZXIKCSAgcmV0dXJucyB0byB0aGUgcG9vbCwgcmVtb3ZlIGFsbCBtZXRhZGF0YSB0aGF0IGRpZCBub3QgaGF2ZSB0aGUgUE9PTEVEIGZsYWcuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHdlIG5ldmVyIGxlYXZlIHVua25vd24gbWV0YWRhdGEgdG8gdGhlIGJ1ZmZlcnMgaW4gdGhlIHBvb2wuCgoyMDExLTEyLTIyIDE1OjU0OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGZvcmVhY2ggZnVuY3Rpb24gZm9yIHRoZSBtZXRhZGF0YQoKMjAxMS0xMi0yMiAxNTo1MzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHNtYWxsIGRvYyBmaXgKCjIwMTEtMTItMjIgMTU6NTI6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCBtZXRhZGF0YSBmbGFncwoJICBBZGQgbWV0YWRhdGEgZmxhZ3Mgc28gdGhhdCB3ZSBjYW4gc2V0IGV4dHJhIHByb3BlcnRpZXMgb2YgdGhlIG1ldGFkYXRhCgoyMDExLTEyLTAyIDE0OjEwOjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogb25seSBoYXZlIGEgdG9wLWxldmVsIHBpcGVsaW5lIGRvIHBpcGVsaW5lIG1hbmFnZW1lbnQKCSAgRml4ZXMgIzY2NTM5MC4KCjIwMTEtMTItMjIgMTE6MDg6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggR1R5cGUgbmFtZSBvZiBpbnRlcnBvbGF0aW9uIG1vZGUgZW51bQoKMjAxMS0xMi0yMSAxMToxMzo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZQoKMjAxMS0xMi0yMSAxMTowODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbmFtZSB2YXJpYWJsZSBmb3IgY29uc2lzdGVuY3kKCSAgUmVuYW1lIHRoZSB2YXJpYWJsZSBmb3IgR1NUX0NBUFNfTk9ORSB0byBfZ3N0X2NhcHNfbm9uZSBmb3IgY29uc2lzdGVuY3kgYW5kIHRvCgkgIGhpZSB0aGUgZmFjdCB0aGF0IE5PTkUgY2FwcyBhcmUgYWxzbyBhY2NpZGVudGFsbHkgZW1wdHkgY2Fwcy4KCjIwMTEtMTItMTkgMTQ6Mjc6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHRoZSBmaWx0ZXJlZCBwZWVyIGNhcHMgYXJlIGFscmVhZHkgZW1wdHkgZXJyb3Igb3V0IGVhcmx5CgoyMDExLTEyLTIwIDEzOjIxOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlIGRlZnMKCjIwMTEtMTItMjAgMTM6MTQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBhZGQgQU5ZIGFuZCBFTVBUWSBzaW5nbGV0b25zCgkgIEFkZCBhIHNpbmdsZXRvbiBmb3IgQU5ZIGFuZCBFTVBUWSBjYXBzIGFuZCBtYWtlIHRoZSBHU1RfQ0FQU19BTlkgYW5kCgkgIEdTVF9DQVBTX05PTkUgcG9pbnQgdG8gdGhlbS4gVGhpcyBtYWtlcyB0aGUgQVBJIG1vcmUgY29uc2lzdGVudCBub3cKCSAgdGhhdCB0aGUgbWFjcm8gZG9lcyBub3QgbWFnaWNhbGx5IGNyZWF0ZSBhIHJlZi4gSXQgYWxzbyBzb2x2ZXMgc29tZSBsZWFrcyBpbgoJICBwbGFjZXMgd2hlcmUgdGhlIG1hY3JvIHdhcyB1c2VkIHRvIHJlZ2lzdGVyIGEgcGFkdGVtcGxhdGUuCgoyMDExLTEyLTIwIDEzOjEzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICByZW1vdmUgY29uc3QgaW4gZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpCgkgIFJlbW92ZSB0aGUgY29uc3QgZnJvbSB0aGUgR3N0Q2FwcyBpbiBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkgYmVjYXVzZSB0aGUKCSAgZnVuY3Rpb24gdGFrZXMgYSByZWYgdG8gdGhlIGNhcHMuCgoyMDExLTEyLTIwIDEyOjU5OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTItMjAgMTE6Mzg6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgdW51c2VkIHBhcmVudF9jbGFzcyB2YXJyaWFibGUgZnJvbSBjb250cm9sc291cmNlCgoyMDExLTEyLTE5IDIzOjMyOjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgaW50ZXJwb2xhdGlvbiBtb2RlcwoJICBSZW1vdmUgZGVwcmVjYXRlZC91bmltcGxlbWVudGVkIG1vZGVzLiBUdXJuIGludGVycG9sYXRpb24gbW9kZSBpbnRvIGEgZ29iamVjdAoJICBwcm9wZXJ0eS4gVXBkYXRlIGRvY3MgYW5kIGV4YW1wbGVzLgoKMjAxMS0xMi0xOSAxMToxMzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbHNvdXJjZXM6IHJlZmFjdG9yIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UKCSAgTW92ZSBtb3N0IG9mIHRoZSBjb2RlIHRvIGEgR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2UuIFNwbGl0IG91dCB0aGUgdHJpZ2dlcgoJICAnaW50ZXJwb2xhdGlvbiBtb2RlJyB0byBhIG5ldyBjb250cm9sIHNvdXJjZSBjbGFzcy4gTW92ZSB0ZXN0cyBhbmQgZXhhbXBsZXMgdG8KCSAgbmV3IGFwaS4gVXBkYXRlIGRvY3MuCgkgIEZpeGVzICM2MTAzMzgKCjIwMTEtMTItMTkgMjI6MDE6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogY2xlYW4gdXAgbGZvIGNvbnRyb2wgc291cmNlCgkgIFJlbW92ZSBwYXJlbnRfY2xhc3MgYW5kIHVzZSB2YXIgZnJvbSBHX0RFRklORV9UWVBFIG1hY3JvLiBSZW1vdmUgdW51c2VkIGRpc3Bvc2UKCSAgaW1wbGVtZW50YXRpb24uCgoyMDExLTEyLTE5IDIwOjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgY29sbGVjdHBhZHMyIGZ1bmN0aW9uIHRvIC5kZWYgZmlsZQoKMjAxMS0xMi0xNiAxNzo1OToyMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IGFkZCBjb252ZW5pZW5jZSBjbGlwcGluZyBmdW5jdGlvbgoJICAuLi4gd2hpY2ggYWxzbyBjb252ZXJ0cyB0byBydW5uaW5nIHRpbWU7IHVzZWZ1bCBmb3IgdHlwaWNhbCBtdXhlci4KCjIwMTEtMTItMTkgMTc6Mzg6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvIG5vdCBkZWxheSBzcGFyc2Ugc3RyZWFtIG5ld3NlZ21lbnQgdXBkYXRlcwoKMjAxMS0xMi0xOSAxNzowMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtYWtlIHN1YmNsYXNzZXMgYWRkIG90aGVyIGZsYWdzCgkgIEFkZCBHU1RfTUFQX0ZMQUdfTEFTVCBzbyB0aGF0IGltcGxlbWVudGF0aW9ucyBjYW4gYWRkIGFkZGl0aW9uYWwgZmxhZ3Mgd2hlbgoJICBtYXBwaW5nIG1lbW9yeS4KCjIwMTEtMTItMTkgMTI6MzM6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHN1Z2dlc3Rpb24gY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtIGlzIG5vdCBtdWNoIG9mIGEgc3VnZ2VzdGlvbgoJICAuLi4gaW4gdGhhdCB1cHN0cmVhbSBpcyBhbHJlYWR5IGNvbXBseWluZyB3aXRoIHRoYXQgc3VnZ2VzdGlvbi4KCSAgRml4ZXMgIzY2NjE3NC4KCjIwMTEtMTItMTUgMTQ6MzE6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBkZWxheSBjb2xsZWN0aW5nIGJ1ZmZlciBpZiBhIHBhZCBuZXdseSBzZXQgd2FpdGluZwoJICAuLi4gYXMgY29tbWVudGVkOyBtYWtlIGNvZGUgY29ycmVzcG9uZCB0byBpdCAoYWdhaW4pLgoKMjAxMS0xMi0xNSAxNjowNjozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHVzZXIgdGhlIHBhcmVudF9jbGFzcyB2YXJzIGZyb20gR19ERUZJTkVfVFlQRQoKMjAxMS0xMi0xNCAxMjoxMzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBhbGxvdyBOVUxMIGFzIGZpbHRlciBjYXBzIGFyZ3VtZW50IHdpdGggcXVlcnlfY2FwcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYxNTQKCjIwMTEtMTItMTIgMTM6MDU6MzYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGRvIG5vdCBtaXN0YWtlIHNob3J0IHJlYWRzIGZvciBFT1MKCSAgV2hpbGUgbG9jYWwgZmlsZXN5c3RlbXMgd2lsbCB1c3VhbGx5IG5vdCBjYXVzZSBzaG9ydCByZWFkcywKCSAgdGhpcyBtYXkgaGFwcGVuIG9uIHNlZWthYmxlIGZpbGVzIG9uIHNvbWUgcmVtb3RlIGZpbGVzeXN0ZW1zLgoJICBJbnN0ZWFkLCBsb29wIHRpbGwgd2UgZ2V0IHRoZSByZXF1ZXN0ZWQgYW1vdW50IG9mIGRhdGEsIG9yCgkgIGFuIGFjdHVhbCBFT1MgKGllLCAwIGJ5dGVzKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTkyMQoKMjAxMS0xMS0xNCAwMjoyNjozMSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQ2xlYXIgcXVldWVkIGZyYW1lcyB3aXRoIG90aGVyIHF1ZXVlcwoKMjAxMS0xMi0xMiAxMjoxMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIG5ldyAndHJhbnNmZXIgZmxvYXRpbmcnIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpCgkgIFJlcXVpcmVzIGdvYmplY3QtaW50cm9zcGVjdGlvbiAxLjMxLjEgKG9sZGVyIHZlcnNpb25zIHdpbGwKCSAgZXJyb3Igb3V0IHdpdGggdGhhdCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQwOTkKCjIwMTEtMTItMTIgMTI6MDk6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vY3MucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vc3IucG86CgkgIHBvOiB1cGRhdGUgbGFuZ3VhZ2VzCgoyMDExLTEyLTEyIDEyOjAwOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0xMiAxMTo1NDo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgZ2xpYi1jb21wYXQ6IEFkZCBsaWNlbnNlIGJvaWxlcnBsYXRlIGZvciBMR1BMCgoyMDExLTEyLTEwIDAxOjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2NzLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2dsLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3IucG86CgkqIHBvL3VrLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0xMi0xMCAxMTowODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzYXkgd2UgaGFuZGxlIFJFQ09ORklHVVJFIGV2ZW50CgkgIFdlIGhhbmRsZSB0aGUgUkVDT05GSUdVUkUgZXZlbnQgc28gcmV0dXJuIFRSVUUgZnJvbSB0aGUgZXZlbnQgaGFuZGxlci4KCjIwMTEtMTItMTAgMTE6MDc6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZm9yd2FyZCBvbiBOVUxMIHBhZHMKCSAgVGhlIGl0ZXJhdG9yIGNhbiByZXR1cm4gTlVMTCBpbiBzb21lIGNhc2VzLCBhdm9pZCBwdXNoaW5nIG9uIHRob3NlCgkgIE5VTEwgcGFkcy4KCjIwMTEtMTItMDcgMTY6MDE6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHByZXNldDogYWxsb3cgYXBwbGljYXRpb25zIHRvIHNwZWNpZnkgYW4gZXh0cmEgcHJlc2V0IGRpcgoJICBBbiBleHRyYSBhcHBsaWNhdGlvbiBwcmVzZXQgZGlyIGhlbHAgdG8gb3JnYW5pemUgcHJlc2V0cyBjcmVhdGVkIGZvciBzcGVjaWFsCgkgIHB1cnBvc2VzLiBGaXhlcyAjNjYwNzYwCgkgIEFQSTogZ3N0X3ByZXNldF9zZXRfYXBwX2RpcigpLCBnc3RfcHJlc2V0X2dldF9hcHBfZGlyKCkKCjIwMTEtMTItMDkgMTA6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc3RvcCB3aGVuIG5lZ290aWF0aW9uIGZhaWxzCgoyMDExLTEyLTA4IDE3OjMyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0wOCAxODowMDowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGNvZGUgcGF0aCB0byBjb21lIHVwIHdpdGggcG9zc2libGUgY2FwcyBpZiBpbmNvbXBhdGlibGUgY2FwcyBhcmUgcHJvdmlkZWQgdG8gYnVmZmVyX2FsbG9jKCkKCSAgUHJldmlvdXMgY29kZSBjb3VsZCBhbG1vc3QgbmV2ZXIgd29yayBhbmQgdGhpcyBzaG91bGQgYmUgc2xpZ2h0bHkKCSAgYmV0dGVyLgoKMjAxMS0xMi0wOCAxNzoyMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRmFsbCBiYWNrIHRvIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgaWYgc3VnZ2VzdGVkIGNhcHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNpbmtwYWQKCjIwMTEtMTItMDggMTc6MDc6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZhbGwgYmFjayB0byB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGlmIGZpeGF0aW9uIG9mIHN1Z2dlc3RlZCBjYXBzIGZhaWxlZAoKMjAxMS0xMi0wOCAxNzowMjoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVmYWN0b3IgZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYygpIGNvZGUKCSAgRG9uJ3QgY2hlY2sgaWYgdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtCgkgIGFuZCBkb24ndCB0cnkgdG8gZml4YXRlIHRoZXNlIGNhcHMuIFRoZXkgbXVzdCBiZSBmaXhhdGVkIGluIGFueSBjYXNlLgoKMjAxMS0xMi0wOCAwMDo0OToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGxhdGVzdCBBUEkgYWRkaXRpb25zCgoyMDExLTEyLTA4IDAwOjQ3OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBmaXggdXAgc2VsZWN0b3IgdGVzdCBhZnRlciBtZXJnZQoKMjAxMS0xMi0wOCAwMDozOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0aW5kZXhmYWN0b3J5LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCSAgTm90ZTogZGlkIG5vdCBtZXJnZSBhbnkgb2YgdGhlIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcyBmcm9tIDAuMTAuCgoyMDExLTEyLTA3IDE3OjU3OjQ5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IHVzZSBhIGJ5dGUgdmFsdWUgaW5zdGVhZCBvZiBhIHRpbWUgdmFsdWUgd2hlbiBiaXNlY3RpbmcKCSAgVGhpcyBmaXhlcyBGTEFDIHNlZWtpbmcgb24gc29tZSBGTEFDIGZpbGVzLgoKMjAxMS0xMi0wNyAxMTowNDo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogUHVzaCBuZXdzZWdtZW50IGV2ZW50cyBiZWZvcmUgYW55IGJ1ZmZlcnMgYXJlIHB1c2hlZCBpbiB0aGUgdW5pdCB0ZXN0CgoyMDExLTEyLTA3IDExOjAxOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBzZW5kIGEgTkVXU0VHTUVOVCBldmVudCBpZiBhIGJ1ZmZlciBhcnJpdmVkIGJlZm9yZSB0aGUgc2VnbWVudCB3YXMgY29uZmlndXJlZAoKMjAxMS0xMi0wNyAxMTowMTozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBEb24ndCBzZW5kIGxhc3Qgc2VnbWVudC9idWZmZXIgd2hlbiBubyBzZWdtZW50IHdhcyBjb25maWd1cmVkIHlldAoKMjAxMS0xMi0wNyAwOTo1MDo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSWYgc3VnZ2VzdGVkIGNhcHMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0gdHJ5IHRvIGNvbWUgdXAgd2l0aCBjb21wYXRpYmxlIGNhcHMKCSAgRml4ZXMgYnVnICM2NjIxOTkuCgoyMDExLTEyLTA2IDIzOjUyOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSAgaW5kZXhmYWN0b3J5OiBmaXggbWVtb3J5IGxlYWsKCSAgSW50cm9kdWNlZCBieSBjb21taXQgYmQzMDJiYjYgcGx1Z2luZmVhdHVyZTogYXZvaWQgZHVwbGljYXRpbmcgZmVhdHVyZS0+bmFtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5NDY2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MDMKCjIwMTEtMTItMDYgMTg6MDk6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBwdXQgbmV3IGV2ZW50IHByb2JlIHR5cGUgbmV4dCB0byBvdGhlciBldmVudCB0eXBlcwoKMjAxMS0xMi0wNSAyMToyMDo1MiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBBZGQgR1NUX1BBRF9QUk9CRV9UWVBFX0hBTkRMRV9GTFVTSAoKMjAxMS0xMi0wNiAxNDo1NToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBNYWtlIGV2ZW50L2J1ZmZlciB2ZXJib3NlIG91dHB1dCBjb25zaXN0ZW50IHdpdGggaWRlbnRpdHkKCjIwMTEtMTItMDYgMTQ6NTU6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogUHJpbnQgYnVmZmVyIGZsYWdzIGluIHRoZSB2ZXJib3NlIG91dHB1dAoKMjAxMS0xMi0wNiAxNDo1Mzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogTWFrZSBldmVudC9idWZmZXIgdmVyYm9zZSBvdXRwdXQgY29uc2lzdGVudCB3aXRoIGlkZW50aXR5IGFuZCBwcmludCBidWZmZXIgZmxhZ3MKCjIwMTEtMTItMDYgMTQ6NDY6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBkb24ndCBpbmNsdWRlIGdsaWIvZ3RocmVhZC5oIGRpcmVjdGx5CgkgIFRoZSBnX3RocmVhZCBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSBhZnRlciBpbmNsdWRpbmcgZ2xpYi5oIGFzIHBlciBkb2NzLgoKMjAxMS0xMi0wNiAxNDoyMzozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRoZSB0ZXN0IHRvIG5ldyBhcGkgYXMgd2VsbAoKMjAxMS0xMi0wNiAxNDoyMzoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiBmaXggZ3BvaW50ZXIgdnMuIGdwb2ludGVyKiBtZXNzIHVwCgoyMDExLTEyLTA2IDE0OjI0OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgR1NUX0ZMT1dfUkVTRU5ECgkgIEl0IGlzIHVudXNlZCBhbmQgdW5kZWZpbmVkLgoKMjAxMS0xMi0wNiAxNDowMTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBhc3luYyBzdGFydCBvcHRpb24KCSAgQWRkIGEgbWV0aG9kIHRvIGVuYWJsZSBhc3luYyBzdGFydCBiZWhhdmlvdXIuIFRoZSBzdWJjbGFzcyBjYW4gdGhlbiBjb21wbGV0ZSB0aGUKCSAgc3RhcnQgb3BlcmF0aW9uIGZyb20gYW55IG90aGVyIHRocmVhZCBieSBjYWxpbmcgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkuCgkgIFRoZSBiYXNlIGNsYXNzIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgdG8gY29tcGxldGUgd2l0aAoJICBnc3RfYmFzZV9zcmNfc3RhcnRfd2FpdCgpLgoKMjAxMS0xMi0wNiAxMzo1ODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMTEtMTItMDYgMTM6NDc6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogY2xlYW51cCBlcnJvciBwYXRoCgoyMDExLTEyLTA2IDEzOjM5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMi0wNiAwODo0ODo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogdXNlIF9PQkpFQ1QgbG9nZ2luZyB2YXJpYW50cyBtb3JlCgoyMDExLTEyLTA2IDA4OjM1OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBHc3RWYWx1ZUFycmF5CgkgIEluc3RlYWQgcGFzcyB0aGUgdmFsdWVzIGFzIGFyZ3VtZW50cy4gVGhpcyBzaW1wbGlmaWVzIHRoYXQgY29kZSBhbmQgaGVscHMKCSAgYmluZGluZ3MuCgoyMDExLTEyLTA2IDA4OjM1OjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMKCSAgT25lIGNhbiBlYXNpbGx5IGxvb3Agb3ZlciB0aGUgY29udHJvbGxlZCBwcm9wZXJ0aWVzIG1hbnVhbGx5LiBUaGlzIGlzIHN0ZXAgMSBpbgoJICByZW1vdmluZyBHc3RWYWx1ZUFycmF5LgoKMjAxMS0xMi0wNCAwNzozMzozMiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY29ycmVjdCByZXR1cm4gdmFsdWUgaW4gZ3N0X3B1c2hfc3RpY2t5CgoyMDExLTEyLTA1IDExOjA3OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1ha2Ugc29tZSBtYWNyb3MgaW50byBpbmxpbmUgZnVuY3Rpb25zCgoyMDExLTEyLTA1IDEwOjI0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgbWFrZSBzb21lIG1vcmUgbWFjcm9zIGFzIGlubGluZSBmdW5jdGlvbnMKCSAgTWFrZSBzb21lIG1hY3JvcyBhcyBpbmxpbmUgZnVuY3Rpb25zIGZvciBhZGRlZCB0eXBlIGNoZWNraW5nLgoJICBVU2UgbmV3IGdzdF9jYXBzX3Rha2UoKSBpbiB0eXBlZmluZAoKMjAxMS0xMi0wNSAxMDoyMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBzb21lIG9sZCBtZXRob2RzCgoyMDExLTEyLTA0IDIxOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhbGxvdyBub24tam9pbmFibGUgdGhyZWFkcyBpbiBwcml2YXRlIGdfdGhyZWFkX2NyZWF0ZSgpIGNvcHkKCSAgTG9va3MgbGlrZSBzb21lIHRlc3RzIHVzZSBub24tam9pbmFibGUgdGhyZWFkcyBhZnRlciBhbGwuCgoyMDExLTEyLTA0IDE1OjQyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSByZW1vdmVkIHRhZyBsaXN0IGZ1bmN0aW9ucyBmcm9tIGRvY3MgYXMgd2VsbAoKMjAxMS0xMi0wNCAxNTozODowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0b2JqZWN0LmgKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaAoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgdG9vbHMvZ3N0LXhtbGluc3BlY3QuYwoKMjAxMS0xMi0wNCAxNDozODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgU3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gc2VsZWN0ZWQgZmlsZXMsIGZvciBnX3N0YXRpY19yZWNfbXV0ZXhfKiBtb3N0bHkKCSAgR1N0YXRpY1JlY011dGV4IGlzIHBhcnQgb2Ygb3VyIEFQSS9BQkksIG5vdCBtdWNoIHdlIGNhbiBkbyBoZXJlIGluIDAuMTAuCgoyMDExLTEyLTA0IDEzOjM1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBXb3JrIGFyb3VuZCBkZXByZWNhdGVkIHRocmVhZCBBUEkgaW4gZ2xpYiBtYXN0ZXIKCSAgQWRkIHByaXZhdGUgcmVwbGFjZW1lbnRzIGZvciBkZXByZWNhdGVkIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfbXV0ZXhfbmV3KCksIGdfbXV0ZXhfZnJlZSgpLCBnX2NvbmRfbmV3KCkgZXRjLiwgbW9zdGx5CgkgIHRvIGF2b2lkIHRoZSBkZXByZWNhdGlvbiB3YXJuaW5ncy4gV2UgY2FuJ3QgY2hhbmdlIG1vc3Qgb2YKCSAgdGhlc2UgaW4gMC4xMCBiZWNhdXNlIHRoZXkncmUgcGFydCBvZiBvdXIgQVBJIGFuZCBBQkkuCgoyMDExLTEyLTA0IDEzOjA5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IGdfdGhyZWFkX2NyZWF0ZSgpIGlzIGRlcHJlY2F0ZWQgaW4gR0xpYiBtYXN0ZXIsIHVzZSBnX3RocmVhZF90cnlfbmV3KCkgaW5zdGVhZAoKMjAxMS0xMi0wNCAxMzowNDozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IGluaXRpYWxpc2UgR0Vycm9yIHZhcmlhYmxlcyB0byBOVUxMCgoyMDExLTEyLTA0IDExOjQzOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlcwoKMjAxMS0xMi0wNCAxMTo0MjozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlCgoyMDExLTEyLTA0IDExOjMyOjU3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogSW5pdGlhbGl6ZSB3aXRoIHByb3BlciB0eXBlCgoyMDExLTEyLTAzIDE3OjQwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZ190aHJlYWRfaW5pdCgpIGlzIGRlcHJlY2F0ZWQgaW4gZ2xpYiBtYXN0ZXIKCSAgSXQncyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDExLTEyLTAzIDE2OjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1cGRhdGUgZm9yIHRocmVhZCBBUEkgZGVwcmVjYXRpb25zIGluIGdsaWIgbWFzdGVyCgoyMDExLTEyLTAzIDE1OjM2OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHVwZGF0ZSBmb3IgdGhyZWFkIEFQSSBkZXByZWNhdGlvbnMgaW4gZ2xpYiBtYXN0ZXIKCjIwMTEtMTItMDMgMTU6MTg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogcmVtb3ZlIGdzdF90YWdfbGlzdF9nZXRfe2NoYXIsdWNoYXJ9CgkgIFRob3NlIGFyZSB1bnVzZWQgYW5kIHNob3VsZCBuZXZlciBiZSB1c2VkIGFueXdoZXJlIGFueXdheQoJICByZWFsbHkuCgoyMDExLTEyLTAzIDE0OjA2OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBzb21lIG1hY3JvcyB0aGF0IG5vIGxvbmdlciBleGlzdAoKMjAxMS0xMi0wMyAxMzo1ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZ190aHJlYWRfY3JlYXRlKCkgaXMgZGVwcmVjYXRlZCBpbiBHTGliIG1hc3RlciwgdXNlIGdfdGhyZWFkX3RyeV9uZXcoKSBpbnN0ZWFkCgoyMDExLTEyLTAzIDA3OjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIGR0cyBhbmQgcHRzIGZvciBzeW5jCgkgIEZpcnN0IHVzZSBEVFMsIHRoZW4gZmFsbCBiYWNrIHRvIFBUUyBmb3Igc3luY2hyb25pemF0aW9uLgoKMjAxMS0xMi0wMyAwNzowMTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXBzCgoyMDExLTEyLTAzIDA2OjQ1OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWVyZ2UgcHJlcm9sbCBmdW5jdGlvbnMKCSAgSW5saW5lIGEgZnVuY3Rpb24gdGhhdCBpcyBvbmx5IGNhbGxlZCBmcm9tIG9uZSBwbGFjZSB0byBtYWtlIHRoaW5ncyBhIGxpdHRsZQoJICBlYXNpZXIgdG8gZm9sbG93LgoKMjAxMS0xMi0wMyAwNjoyOTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgY2xlYW51cHMKCSAgRG9uJ3QgcGFzcyBhcm91bmQgdGhlIG9iamVjdCB0eXBlLCB3ZSBjYW4gZmluZCB0aGF0IHZlcnkgZWZmaWNpZW50bHkgZnJvbSB0aGUKCSAgb2JqZWN0IGl0c2VsZiBub3cuCgoyMDExLTEyLTAyIDIzOjEzOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgbWV0aG9kIG5hbWVzCgoyMDExLTEyLTAyIDIyOjUwOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWVyZ2UgcmVuZGVyX29iamVjdCBpbnRvIGNoYWluCgkgIE1lcmdlIHRoZSByZW5kZXJfb2JqZWN0IGNvZGUgd2l0aCB0aGUgY2hhaW4gbWV0aG9kLiBJdCBpcyBvbmx5IGNhbGxlZCBmcm9tIHRoZXJlCgkgIGFuZCB0aGVyZSBhcmUgcXVpdGUgYSBmZXcgdmFyaWFibGVzIHRoYXQgY2FuIGJlIHJldXNlZCB0byBtYWtlcyB0aGluZ3MgbGVzcwoJICBjb25mdXNpbmcuCgoyMDExLTEyLTAyIDIyOjM2OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgbW9yZSBjb2RlIG5vdyB0aGF0IHRoZSByZW5kZXJfb2JqZWN0IGV0aG9kIGlzIG9ubHkKCSAgY2FsbGVkIHdpdGggYnVmZmVycyBvciBidWZmZXJsc3RzLgoKMjAxMS0xMi0wMiAyMjoyMDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIGV2ZW50IGhhbmRsaW5nCgkgIEFkZCBuZXcgd2FpdF9lb3Mgdm1ldGhvZCB0byB3YWl0IGZvciB0aGUgZW9zIHRpbWVvdXQgYmVmb3JlIHBvc3RpbmcgdGhlIEVPUwoJICBtZXNzYWdlIG9uIHRoZSBidXMuCgkgIEFkZCBkZWZhdWx0IGV2ZW50IGhhbmRsZXIuIE1vdmUgdGhlIGRlZmF1bHQgZXZlbnQgYWN0aW9ucyBpbiB0aGVyZS4gQ2FsbCB0aGUKCSAgZXZlbnQgdm1ldGhvZCBmcm9tIHRoZSBwYWQgZXZlbnQgaGFuZGxlci4gU3ViY2xhc3NlcyBhcmUgbm93IHN1cHBvc2VkIHRvIGNoYWluCgkgIHVwIHRvIHRoZSBwYXJlbnQgZXZlbnQgaGFuZGxlciBvciB1bnJlZiB0aGUgZXZlbnQgYW5kIGRvIHRoZWlyIG93biB0aGluZy4KCSAgQXZvaWQgcGFzc2luZyB1bnVzZWQgcGFyYW1ldGVycyB0byBmdW5jdGlvbnMuCgoyMDExLTEyLTAyIDEzOjE5OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHVubG9jayBjbG9jayB3YWl0IHdoZW4gYXBwcm9wcmlhdGUKCSAgLi4uIG5vdGFibHkgRkxVU0ggYW5kIHN0YXRlIGNoYW5nZSB0byBSRUFEWS4KCjIwMTEtMTItMDIgMTM6MzU6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwCgkgIEF2b2lkIHBhc3NpbmcgYXJvdW5kIHRoZSBzZWdtZW50LgoKMjAxMS0xMi0wMiAxMzoyODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVtb3ZlIGNsaXBfc2VnbWVudAoJICBXZSBvbmx5IG5lZWQgb25lIHNlZ21lbnQgbm93IHRoYXQgdGhlIHByZXJvbGwgcXVldWUgaXMgZ29uZS4KCjIwMTEtMTItMDIgMTI6NDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIGNsZWFudXBzCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucywgaW5saW5lIHRoZSBjb2RlLgoJICBSZW1vdmUgdGhlIHF1ZXVlX29iamVjdCBmdW5jdGlvbnMsIHdlIGNhbiBwcm9jZWVkIHdpdGggdGhlIHJlbmRlcmluZwoJICBpbW1lZGlhdGVseS4KCjIwMTEtMTItMDIgMTI6MjA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSB0aGUgcHJlcm9sbCBxdWV1ZSBhbmQgcHJvY2VlZCBkaXJlY3RseSB0byB0aGUgcmVuZGVyaW5nIG9mIG9iamVjdHMuCgoyMDExLTEyLTAxIDIzOjM1OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidXMuYwoJICBnc3QvZ3N0ZXZlbnQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMi0wMSAxODo1MDozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2Ugc29tZSB0YWdzIG9mIHR5cGUgR3N0U2FtcGxlCgkgIE1ha2UgdGhlIGltYWdlIGFuZCBhdHRhY2htZW50IHRhZ3Mgb2YgdHlwZSBHc3RTYW1wbGUgc28gdGhhdCB3ZSBjYW4gaW5jbHVkZQoJICBleHRyYSBjYXBzIGFuZCBpbmZvIGFsb25nIHdpdGggdGhlIGJ1ZmZlciBkYXRhLgoKMjAxMS0xMi0wMSAxODo0OTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IHJlbW92ZSBjb25zdAoJICBUaGUgd3JpdGFiaWxpdHkgb2YgdGhlIHN0cnVjdHVyZSBpcyBlbnN1cmVkIGJ5IHRoZSByZWZjb3VudCBvZiB0aGUgcGFyZW50CgkgIG1pbmlvYmplY3QgYW5kIHdlJ3JlIGZpbmUgaWYgdGhlIHBhcmVudCBpcyB3cml0YWJsZS4KCjIwMTEtMTItMDEgMTY6NDY6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBsYXN0LWJ1ZmZlciAtPiBsYXN0LXNhbXBsZQoJICBSZW5hbWUgdGhlIGxhc3QtYnVmZmVyIHByb3BlcnR5IHRvIGxhc3Qtc2FtcGxlIGFuZCBtYWtlIGl0IHJldHVybiB0aGUgbmV3CgkgIEdzdFNhbXBsZSB0eXBlIHNvIHRoYXQgd2UgY2FuIGluY2x1ZGUgY2FwcyBhbmQgdGltaW5nIGluZm8gaW4gb25lIG5pY2UgYnVuZGxlLgoKMjAxMS0xMi0wMSAxNjozNzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNhbXBsZTogYWRkIG5ldyBzYW1wbGUgbWluaW9iamVjdAoJICBBZGQgYSBuZXcgc2ltcGxlIG1pbmlvYmplY3QgdGhhdCBpcyBhIGNvbWJpbmF0aW9uIG9mIGEgR3N0QnVmZmVyLCBHc3RDYXBzLAoJICBHc3RTZWdtZW50IGFuZCBvdGhlciBhcmJpdHJhcnkgaW5mbyBvcmdhbml6ZWQgaW4gYSBHc3RTdHJ1Y3R1cmUuIFRoaXMgb2JqZWN0IGNhbgoJICBiZSB1c2VkIHRvIGV4Y2hhbmdlIHNhbXBsZXMgYmV0d2VlbiBhbiBlbGVtZW50IGFuZCB0aGUgYXBwbGljYXRpb24gb3IgZm9yCgkgIHN0b3JpbmcgYWxidW0gYXJ0IGluIHRhZ3MgZXRjLgoKMjAxMS0xMi0wMSAxNjoyNTowNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB1c2UgR1NUX01FU1NBR0VfU09VUkNFX05BTUUoKSB3aGljaCBhbHNvIHRha2VzIGNhcmUgb2Ygc3JjPU5VTEwuCgoyMDExLTEyLTAxIDE1OjM1OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0xMi0wMSAxNTozNTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTEyLTAxIDE1OjM0OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGNvcHkgZmxhZyBmb3IgbWV0YQoJICBBZGQgYSBmbGFnIHRvIGNvbnRyb2wgaWYgdGhlIG1ldGEgc2hvdWxkIGJlIGNvcGllZCBvciBub3QgaW5zdGVhZCBvZiBhbHdheXMKCSAgY29weWluZy4KCjIwMTEtMTEtMjkgMTk6MDg6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2xkIHByb3BlcnR5CgoyMDExLTExLTMwIDEzOjU5OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHdheXMgaW50ZXJzZWN0IHRoZSBzdWdnZXN0ZWQgc2luayBjYXBzIHdpdGggdGhlIHBlZXIgY2FwcwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBnZXQgY29ycmVjdCBhbmQgY29tcGxldGUgY2Fwcy4gVGhlIHN1Z2dlc3RlZCBjYXBzCgkgIGNvdWxkIGJlIGluY29tcGxldGUsIGUuZy4gdmlkZW8veC1yYXctcmdiIHdpdGhvdXQgYW55IGZpZWxkcywgYW5kIGJ5CgkgIGludGVyc2VjdGluZyB3aXRoIHRoZSBwZWVyIGNhcHMgd2UgZ2V0IHNvbWV0aGluZyB1c2FibGUuCgkgIEZpeGVzIGJ1ZyAjNjYyMTk5LgoKMjAxMS0xMS0zMCAxMjozOTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtb3ZlIEZJWE1FIGxvZyBsZXZlbCBhZnRlciBXQVJOSU5HCgkgIFNvIGl0J3Mgbm93IEVSUk9SIDwgV0FSTklORyA8IEZJWE1FIDwgSU5GTyBhbmQgKjo1IGJlY29tZXMgKjo2LgoKMjAxMS0xMS0zMCAwMDoyNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHdhcm4gYW5kIGZhaWwgaW5zdGVhZCBvZiBjcmVhdGluZyBuZXdzZWdtZW50IGV2ZW50cyBpbiBHU1RfRk9STUFUX1VOREVGSU5FRAoKMjAxMS0xMS0yOSAxNTo1MzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBrZWVwIHRoZSBlbGVtZW50IGZsYWdzIHVwLXRvLWRhdGUKCSAgS2VlcCB0aGUgcmVxdWlyZS9wcm92aWRlX2Nsb2NrIGZsYWdzIHVwIHRvIGRhdGUuCgoyMDExLTExLTI5IDExOjQ3OjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHNvdXJjZSBhbmQgc2luayBwYWRzIHByb3h5IGNhcHMKCjIwMTEtMTEtMjggMjE6MTU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI4IDE4OjIzOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgdXBkYXRlIGZvciBpbmRleGFibGUgY2hhbmdlCgoyMDExLTExLTI4IDE4OjEyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBpbmRleGFibGUgZmxhZwoJICBSZW1vdmUgdGhlIGlzX2luZGV4YWJsZSBtZXRob2QgY2hlY2sgYW5kIHVzZSBhbiBlbGVtZW50IGZsYWcgdG8gY2hlY2sgaWYgdGhlCgkgIGVsZW1lbnQgY2FuIHVzZSBhbiBpbmRleC4KCjIwMTEtMTEtMjggMTc6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTExLTI4IDE3OjIyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBlbGVtZW50OiB1c2UgZmxhZ3MgZm9yIHJlcXVpcmUvcHJvdmlkZSBjbG9jawoJICBSZW1vdmUgdGhlIF9yZXF1aXJlL19wcm92aWRlX2Nsb2NrKCkgbWV0aG9kcyBhbmQgdXNlIGVsZW1lbnQgZmxhZ3MgdG8gbWFyawoJICBlbGVtZW50cyBpbnN0ZWFkIG9mIGxvb2tpbmcgYXQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSB2bWV0aG9kLgoKMjAxMS0xMS0yOCAxNjo1NDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBlbGVtZW50OiBjbGVhbiB1cCBlbGVtZW50IGZsYWdzCgkgIENsZWFuIHVwIHRoZSBlbGVtZW50IGZsYWdzCgoyMDExLTExLTI4IDE1OjM1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgc3RpY2t5IGN1c3RvbSBxdWFyawoKMjAxMS0xMS0yOCAxNDoyNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IF9DQVBTX0ZMQUdTXyAtPiBDQVBTX0ZMQUdfCgoyMDExLTExLTI4IDEyOjMwOjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZV9mcm9tX3N0YXRpYwoJICBUaGlzIGZ1bmN0aW9uIGhlbHBzIGVuc3VyZSB0aGUgcGFkIHRlbXBsYXRlIGlzIHVucmVmZmVkCgkgIHdpdGhvdXQgaGF2aW5nIHRvIGNvbXBsaWNhdGUgdGhlIGNhbGxpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY2NAoKMjAxMS0xMS0yOCAxMzo1NDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBIYW5kbGUgc3RpY2t5IGV2ZW50IGVycm9ycwoJICBVc2UgR3N0Rmxvd1JldHVybiB0byBpbnRlcm5hbGx5IHBhc3MgZXZlbnRzIGJldHdlZW4gcGFkcy4KCSAgV2hlbiB3ZSBzdGlja3kgZXZlbnRzIGNhdXNlIGFuIGVycm9yLCB0cmFuc2xhdGUgdGhpcyBlcnJvciBpbnRvIGEgR3N0Rmxvd1JldHVybi4KCSAgQ2FwcyBldmVudHMgd2lsbCwgZm9yIGV4YW1wbGUsIGdlbmVyYXRlIGEgTk9UX05FR09USUFURUQgcmV0dXJuIHdoZW4gdGhlIGV2ZW50CgkgIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IuCgkgIFRoaXMgYWxsb3dzIHVzIHRoZW4gdG8gcmVmdXNlIHNlbmRpbmcgYnVmZmVycyBpZiBvbmUgb2YgdGhlIHN0aWNreSBldmVudHMgaXMKCSAgcmVmdXNlZCBhbmQgZ2VuZXJhdGUgYSBjb3JyZWN0IGVycm9yIHJldHVybiB2YWx1ZS4KCjIwMTEtMTEtMjggMTM6NTI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBkb24ndCByZXR1cm4gRkFMU0UgZnJvbSBldmVudHMKCSAgUmV0dXJuaW5nIEZBTFNFIGZyb20gdGhlIGV2ZW50IGhhbmRsZXIgc2h1dHMgZG93biB0aGUgc2VuZGVyLgoKMjAxMS0xMS0yOCAxMzo1MToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogZml4IHJlZmNvdW50IGVycm9yCgoyMDExLTExLTI4IDExOjE1OjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIGdzdG1ldGE6IFNvbWUgbW9yZSBkb2NzCgoyMDExLTExLTI4IDEwOjU1OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgY3VzdG9tIGRvd25zdHJlYW0gc3RpY2t5IGV2ZW50CgoyMDExLTExLTI4IDAxOjEyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHVwIGNvbW1lbnQgYWZ0ZXIgbWVyZ2UgZnJvbSAwLjEwCgoyMDExLTExLTI4IDAxOjExOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yOCAwMToxMDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCByZWZhY3RvcmluZyBvZiBkcmFpbmluZy1vbi1lb3MsIG11bmdlIGZsb3cgcmV0dXJuIHRvIEZMT1dfT0sKCjIwMTEtMTEtMjggMDE6MDA6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdXAgbmV3IGJ1ZmZlcmxpc3QgY29kZSBmb3IgMC4xMQoKMjAxMS0xMS0yOCAwMDo0MDo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDExLTExLTAzIDEwOjM0OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGJ1ZmZlcmxpc3Qgc3VwcG9ydAoJICBXZSB3YW50IHRvIG1haW50YWluIGJ1ZmZlciBsaXN0cyBpZiBwb3NzaWJsZS4KCjIwMTEtMTEtMDMgMTM6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzcGxpdCBvdXQgZHJhaW5pbmcgb2YgcXVldWUgb24gRkxPV19VTkVYUEVDVEVEIGludG8gc2VwYXJhdGUgZnVuY3Rpb24KCjIwMTEtMTEtMDMgMDg6NTU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwYXNzIGl0ZW0gdHlwZSBlbnVtIHRvIF9lbnF1ZXVlIGluc3RlYWQgb2Ygc2ltcGxlIGlzYnVmZmVyIGJvb2xlYW4KCSAgQXZvaWRzIHNvbWUgdW5uZWNlc3NhcnkgR1NUX0lTX0VWRU5UKCkKCjIwMTEtMTEtMjcgMjA6MzI6MTQgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBmaXggY29tcGlsYXRpb24gd2FybmluZwoJICBHU1RfU1RBVElDX0NBUFMgaXMgbWlzc2luZyBpbml0aWFsaXplciBmb3IgR3N0TWluaU9iamVjdCdzIG5fd2Vha19yZWZzIGFuZAoJICB3ZWFrX3JlZnMgcmVzdWx0aW5nIGluIGNvbXBpbGF0aW9uIHdhcm5pbmcgKGxsdm0tZ2NjICAtV2FsbCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDkyNwoKMjAxMS0xMS0yNyAyMjoyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjcgMjA6MzY6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHdhcm5pbmdzOiBhdm9pZCBzZXQtYnV0LXVudXNlZCB3YXJuaW5ncyB3aXRoIGxvYWQtc2F2ZSBkaXNhYmxlZAoKMjAxMS0xMS0yNiAxNzozNDoxMiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGJyb2tlbiBkZWZhdWx0IGNhcHMgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDg4MAoKMjAxMS0xMS0yNiAxOTo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjYgMTk6NDU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGZpeCB3cm9uZyBHX0dOVUNfTUFMTE9DCgkgIF9nZXRfcHJvdG9jb2xzKCkgcG9pbnRzIHRvIGNvbnN0IG1lbW9yeSBpbiAwLjEwCgkgIGRlc3BpdGUgdGhlIG5vbi1jb25zdCByZXR1cm4gdmFsdWUuCgoyMDExLTExLTI2IDE5OjQ0OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXIuaAoJICBnc3QvZ3N0YnVmZmVybGlzdC5oCgkgIGdzdC9nc3RjYXBzLmgKCSAgZ3N0L2dzdGRhdGV0aW1lLmgKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmgKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmgKCSAgZ3N0L2dzdGluZGV4ZmFjdG9yeS5oCgkgIGdzdC9nc3RpdGVyYXRvci5oCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdG1pbmlvYmplY3QuaAoJICBnc3QvZ3N0cGlwZWxpbmUuaAoJICBnc3QvZ3N0cXVlcnkuaAoJICBnc3QvZ3N0c2VnbWVudC5oCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuaAoJICBnc3QvZ3N0dGFnbGlzdC5oCgkgIGdzdC9nc3R1cmkuaAoJICBnc3QvZ3N0dmFsdWUuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oCgkgIE5vdGU6IGNhbid0IHVzZSBHX0dOVUNfTUFMTE9DIHdpdGggR3N0Q2FwcyByZXR1cm4KCSAgdmFsdWVzIGluIDAuMTEgYmVjYXVzZSBvZiB0aGUgRU1QVFkrQU5ZIHNpbmdsZXRvbnMuCgoyMDExLTExLTI2IDE4OjU4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGxpYnM6IHNwcmlua2xlIHNvbWUgR19HTlVDX01BTExPQwoJICBNYXliZSBnY2MgY2FuIGRvIHNvbWV0aGluZyBjbGV2ZXIgd2l0aCB0aGF0LCBvciBhdCBsZWFzdAoJICB3YXJuIHVzIGlmIHdlIGRvbid0IHNhdmUgdGhlIHJldHVybiB2YWx1ZSBzb21ld2hlcmUuCgoyMDExLTExLTI2IDE4OjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGdzdDogc3ByaW5rbGUgc29tZSBHX0dOVUNfTUFMTE9DCgkgIE1heWJlIGdjYyBjYW4gZG8gc29tZXRoaW5nIGNsZXZlciB3aXRoIHRoYXQsIG9yIGF0IGxlYXN0CgkgIHdhcm4gdXMgaWYgd2UgZG9uJ3Qgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlIHNvbWV3aGVyZS4KCjIwMTEtMTEtMjUgMjM6NTQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI1IDIzOjE1OjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jcy4KCjIwMTEtMTEtMTYgMDE6MDQ6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfe3NldCxnZXR9X3FkYXRhKCkKCSAgQWxsb3dzIHBlb3BsZS91cyB0byBhdHRhY2ggYXJiaXRyYXJ5IG1ldGFkYXRhIHRvIGJ1ZmZlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ3MjAKCSAgQVBJOiBnc3RfYnVmZmVyX3NldF9xZGF0YSgpCgkgIEFQSTogZ2V0X2J1ZmZlcl9nZXRfcWRhdGEoKQoKMjAxMS0xMS0yNSAwNzoxMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBibG9ja2luZyBwcm9iZSBlbWlzc2lvbgoJICBJZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgYmxvY2tpbmcgcHJvYmUsIG9ubHkgdGhlbiBjaGVjayBpZiBvbmUgdGhlCgkgIGJsb2NraW5nIGZsYWdzIG9mIHRoZSBob29rIG1hdGNoZXMuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIE1ha2UgdGhlIHBhZCB1bml0IHRlc3QgbGVzcyByYWN5LgoKMjAxMS0xMS0yNCAxNzo0NzowOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgQWRkIHRlc3QgZm9yIFBBRF9QUk9CRV9UWVBFX0JMT0NLIGFuZCBQQURfUFJPQkVfVFlQRV9CTE9DS0lORwoKMjAxMS0xMS0yNSAwNTo1NDowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRlYnVnIG9mIHF1ZXJ5IHJlc3VsdAoKMjAxMS0xMS0yNCAyMjo1MjoxOSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IHR5cG8gaW4gZG9jCgkgIENhdXNlcyBhIHdhcm5pbmcgZnJvbSB0aGUgaW50cm9zcGVjdGlvbiBzY2FubmVyLgoKMjAxMS0xMS0yNCAyMTozNjoxMiArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIGNoZWNrOiBkcm9wIGNhcHMgYXJndW1lbnQgZnJvbSBnc3RfY2hlY2tfc2V0dXBfe3NyYyxzaW5rfV9wYWQKCSAgQ2FsbGluZyBzZXRfY2FwcyBhdCB0aGF0IHBvaW50IGlzIG5vdCB1c2VmdWwgaW4gMC4xMCAoRklYTUUgY29tbWVudCEpLCBhbmQgaW4KCSAgMC4xMSBpdCBpcyB0b3RhbGx5IHBvaW50bGVzczogdGhlIGNhcHMgZXZlbnQgZG9lc24ndCBzdGljayB0byBhIGZsdXNoaW5nIHBhZC4KCjIwMTEtMTEtMjQgMTQ6MDc6MTQgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcgoKMjAxMS0xMS0yNCAxMToyMzowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMTEtMjQgMTE6MTU6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBnX3dhcm5pbmcoKSBpZiBwYWQgYWNjZXB0ZWQgY2FwcyB0aGF0IGFyZSBub3QgYSBzdWJzZXQgb2YgdGhlIHBhZCBjYXBzCgkgIFRoaXMgY2hlY2sgaXMgY29ycmVjdCBidXQgdW5mb3J0dW5hdGVseSBpdCdzIGltcG9zc2libGUgdG8gaW1wbGVtZW50CgkgIGluIGEgdGhyZWFkc2FmZSB3YXkgYmVjYXVzZSB0aGUgY2FwcyBjb3VsZCBoYXZlIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoJICBGaXhlcyBidWcgIzY1OTYwNi4KCjIwMTEtMTAtMDMgMTI6MzQ6MjAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNoZWNrIGZpbGxlZCBzdGF0ZSBvZiBxdWV1ZXMgZXZlbiBpZiBhbm90aGVyIG9uZSBpcyBlbXB0eQoJICBUaGlzIHdpbGwgYXZvaWQgYSBjYXNlIHdoZXJlIG92ZXJydW4gaXMgbmV2ZXIgc2lnbmFsbGVkIGlmIHNvbWUKCSAgc3RyZWFtIG5ldmVyIHByb2R1Y2VzIGFueSBkYXRhLCBjYXVzaW5nIHBsYXliaW4yIHRvIG5vdCBlbmQgcHJlcm9sbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDc3OAoKMjAxMS0xMS0yNCAwOTozMToxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBDaGVjayBmb3IgZGF0YWZsb3cgd2l0aCBpbmNvbXBhdGlibGUgY2FwcwoJICBUaGlzIHRlc3QgY3VycmVudGx5IGZhaWxzLCBidXQgaXMgdGhlcmUgdG8gZW5zdXJlIHdlIGZpeCB0aGlzIGlzc3VlCgkgIGFuZCBrZWVwIGl0IGZpeGVkLCBzaW5jZSBpdCBjb21wbGV0ZWx5IGJyZWFrcyBkZWxheWVkIG5lZ290aWF0aW9uCgkgIHVzZS1jYXNlcy4KCSAgVGhpcyBiZWhhdmlvdXIgc3RhcnRlZCBicmVha2luZyBzaW5jZQoJICBkZDY1YWFlOWExNzdmN2IxMWRjZWYwZjY5MGE3OGQ2OThmNjY3Y2Q0CgoyMDExLTExLTI0IDA5OjMxOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IEFkZCBjb21tZW50cyB0byBnc3RwYWQgdGVzdHMKCjIwMTEtMTEtMjQgMDk6MzA6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlICIjaWYgMCIgYmxvY2sgZm9yIGJlaGF2aW91ciB0aGF0IG5vdyB3b3JrcwoKMjAxMS0xMS0yNCAwOToyODozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgY29tbWVudGVkIGJsb2NrCgkgIFRoaXMgYmVoYXZpb3VyIGlzIGFjdHVhbGx5IHRlc3RlZCBpbiB0ZXN0X3B1c2hfdW5saW5rZWQKCjIwMTEtMTEtMjQgMDE6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG1ha2UgZ3N0LWluc3BlY3QgcHJpbnQgYSBuYXN0eSBkZWJ1ZyBtZXNzYWdlIGZvciBub24tZ3JhdGEgcHJvcGVydHkgdHlwZQoJICBUcnkgdG8gZXJhZGljYXRlIHByb3BlcnRpZXMgb2YgbG9uZy91bG9uZy9jaGFyL3VjaGFyIHR5cGUuCgoyMDExLTExLTIzIDE3OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGV2ZW50OiBhZGQgU1RJQ0tZX01VTFRZIGV2ZW50cwoJICBBZGQgYSBuZXcgZXZlbnQgZmxhZyBmb3Igc3RpY2t5IGV2ZW50cyBzbyB0aGF0IG11bHRpcGxlIGV2ZW50cyBvZiB0aGF0IHR5cGUgY2FuCgkgIGJlIHN0b3JlZCBvbiBhIHBhZCBhdCB0aGUgc2FtZSB0aW1lLiBDaGFuZ2UgdGhlIF9nZXRfc3RpY2t5X2V2ZW50KCkgZnVuY3Rpb24gdG8KCSAgbG9vcCBvdmVyIHRoZSBtdWx0aXBsZSBldmVudHMgb2YgYSB0eXBlLgoJICBDaGFuZ2UgdGhlIGZvcmVhY2ggZnVuY3Rpb24gdG8gbWFrZSBpdCBwb3NzaWJsZSB0byByZW1vdmVkIGFuZCBtb2RpZnkgdGhlIHN0aWNreQoJICBldmVudHMgb24gYSBwYWQuCgkgIFVzZSBhbiB2YXJpYWJsZSBzaXplIGFycmF5IG5vdyB0byBzdG9yZSB0aGUgZXZlbnRzLiBUaGlzIGNvdWxkIGxhdGVyIGJlCgkgIG9wdGltaXplZCBzb21lIG1vcmUuCgoyMDExLTExLTIzIDE3OjM5OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGhhbmRsZSBOVUxMIG1lc3NhZ2Ugc3JjIGluIGRlYnVnCgoyMDExLTExLTIzIDE3OjM4OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogYXZvaWQgcmVhZGluZyBwYXN0IHRoZSBhcnJheQoJICBXaGVuIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHRvbGQgdXMgdG8gcmVtb3ZlIHRoZSBidWZmZXIgZnJvbSB0aGUgbGlzdCwgZGVjcmVhc2UKCSAgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgb3IgZWxzZSB3ZSBtaWdodCByZWFkIHBhc3QgdGhlIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCgoyMDExLTExLTIzIDEzOjQyOjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV0dXJuIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBvdGhlciBzaWRlJ3MgcGVlciBjYXBzIGlmIGdldF9zaW5rX2NhcHMgdmZ1bmMgaXMgbm90IGltcGxlbWVudGVkCgkgIFVzaW5nIGdzdF9wYWRfcHJveHlfZ2V0X2NhcHMoKSBicmVha3MgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQKCSAgcGFyc2VycyBiZWNhdXNlIGl0IHdpbGwgcHJvcGFnYXRlIHRoZSBvdGhlciBzaWRlJ3MgZmllbGRzIGxpa2UgInBhcnNlZCIKCSAgYW5kICJmcmFtZWQiIGFuZCBhbHNvIGJyZWFrcyBwYXJzZXIvY29udmVydGVycy4KCSAgRml4ZXMgYnVnICM2NjQyMjEuCgoyMDExLTExLTIzIDExOjAzOjE5ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBhZGQgbWV0aG9kIHRvIHdyaXRlIG91dCBhIGJ1ZmZlcgoJICBJbiAwLjEwLCB0aGlzIGNhbiBiZSBkb25lIHdpdGggYSBvbmUtbGluZXIgYnkgdXNpbmcgR1NUX0JVRkZFUl9EQVRBL1NJWkUgd2l0aAoJICBwdXRfZGF0YS4gQSAwLjExIHVzZXIgaGFzIHRvIHJlc29ydCB0byBnc3RfYnVmZmVyX21hcCwgd2hpY2ggaXMgbGVzcyBjb252ZW5pZW50CgkgIGFuZCBtaWdodCByZXF1aXJlIGEgbWVtY3B5IGludGVybmFsbHkuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9idWZmZXIoKQoKMjAxMS0xMS0yMyAwODoxNzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB0YWtlIHBlZXJwYWQgY29ycmVjdGx5CgkgIERvbid0IHRha2UgdGhlIHBlZXJwYWQgdG9vIGVhcmx5LCBpdCBtaWdodCBjaGFuZ2UgYmVjYXVzZSBvZiB0aGUKCSAgcHJvYmVzLgoKMjAxMS0xMS0yMiAxODozMjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJld29yayBzdGlja3kgZXZlbnRzCgkgIFJld3JpdGUgc3RpY2t5IGV2ZW50cywgdHJ5aW5nIHRvIG1ha2UgaXQgYSBiaXQgbW9yZSBzaW1wbGUuCgkgIFdoZW4gc3RpY2t5IGV2ZW50cyBhcmUgcHVzaGVkIG9uIGEgc3JjcGFkLCBzdG9yZSB0aGVtIGluIHRoZSBzdGlja3kgZXZlbnQKCSAgYXJyYXkgYW5kIG1hcmsgdGhlIGV2ZW50IHdpdGggcmVjZWl2ZWQgPSBGQUxTRS4KCSAgV2hlbiB0aGUgc3RpY2t5IGV2ZW50IGlzIHN1Y2Nlc3NmdWxseSBzZW50IHRvIHRoZSBwZWVyIHBhZCwgbWFrZQoJICByZWNlaXZlZCA9IFRSVUUuCgkgIEtlZXAgYSBQRU5ESU5HX0VWRU5UUyBwYWQgZmxhZyB0aGF0IGlzIHNldCB3aGVuIG9uZSBvZiB0aGUgZXZlbnRzIGlzIGluCgkgIHRoZSByZWNlaXZlZCA9IEZBTFNFIHN0YXRlIGZvciBzb21lIHJlYXNvbi4KCSAgd2hlbiBhY3RpdmF0aW5nIGEgc2lua3BhZCwgbWFyayBhbGwgZXZlbnRzIHJlY2VpdmVkID0gRkFMU0Ugb24gdGhlIHBlZXIKCSAgc3JjcGFkLgoJICBXaGVuIHB1c2hpbmcgYSBidWZmZXIsIGNoZWNrIHRoZSBQRU5ESU5HX0VWRU5UUyBmbGFnIGFuZCBpZiBpdCBpcyBzZXQsIHB1c2ggYWxsCgkgIGV2ZW50cyB0byB0aGUgcGVlciBwYWQgZmlyc3QuCgoyMDExLTExLTIyIDE4OjMyOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIGxldCBjYXBzIGV2ZW50cyBnbyB0aHJvdWdoCgoyMDExLTExLTIyIDE2OjQzOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBuZXcgZmxhZ3MKCjIwMTEtMTEtMjEgMTg6NTY6MTkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBfbWFwKCkgdG8gZ2NvbnN0cG9pbnRlcgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5ncyBvbiBPU1g6CgkgIGdzdGFkYXB0ZXIuaDo4Mjogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgZ3N0YWRhcHRlci5jOjQxMjogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgY29uc3QgZ3BvaW50ZXIgaXMgbm90IHRoZSBzYW1lIGFzIGdjb25zdHBvaW50ZXIgb3IgY29uc3Qgdm9pZCAqLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDExLTExLTIyIDEyOjQ2OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMgZmlsZXMKCjIwMTEtMTEtMjIgMTI6NDU6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJICBwYWRkIHJldHVybiB2YWx1ZSBmcm9tIF9taW5pX29iamVjdF9yZXBsYWNlKCkKCjIwMTEtMTEtMjEgMTg6NTY6MTkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIEZpeCBwcmludGYgZm9ybWF0IGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TWC82NGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDExLTExLTIxIDE3OjQ2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogaW1wcm92ZSBwYWQgdGVzdHMKCjIwMTEtMTEtMjEgMTc6NDM6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGxvY2tpbmcgb3JkZXIgZXJyb3IKCjIwMTEtMTEtMjEgMTc6NDM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBwcmludCBmb3JtYXQKCjIwMTEtMTEtMjEgMTU6NDc6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZGVzdHJveSBub3RpZnkgdG8gcGFkIGZ1bmN0aW9ucwoJICBBZGQgX2Z1bGwgdmFyaWFudHMgb2YgdGhlIHBhZCBmdW5jdGlvbiBzZXR0ZXJzIHRoYXQgdGFrZSBhIGRlc3Ryb3kgbm90aWZ5LgoJICBNYWtlIHNvbWUgbWFjcm9zIHRoYXQgbWFrZSB0aGUgb2xkIG1ldGhvZCBuYW1lIHBhc3MgTlVMTCB0byB0aGlzIG5ldwoJICBmdW5jdGlvbi4KCjIwMTEtMTEtMjEgMTM6Mjk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBwYWQ6IE1lcmdlIHBhZCBtb2RlIGFjdGl2YXRpb24gZnVuY3Rpb25zCgkgIEFkZCB0aGUgcGFkIG1vZGUgdG8gdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGZ1bmN0aW9uCgkgIGZvciBhbGwgYWN0aXZhdGlvbiBtb2Rlcy4gVGhpcyBtYWtlcyB0aGUgY29yZSBsb2dpYyBzbWFsbGVyIGFuZCBhbGxvd3MgZm9yIHNvbWUKCSAgZWxlbWVudHMgdG8gbWFrZSB0aGVpciBhY3RpdmF0aW9uIGNvZGUgZWFzaWVyLiBJdCB3b3VsZCBhbGxvdyB1cyB0byBhZGQgbW9yZQoJICBzY2hlZHVsaW5nIG1vZGVzIGxhdGVyIHdpdGhvdXQgaGF2aW5nIHRvIGFkZCBtb3JlIGFjdGl2YXRlIGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTggMTg6MDg6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2MKCSAgYWxzbyBmaXggZGVmYXVsdCBhbGlnbm1lbnQgdmFsdWUgKDAgPT0gbm8tYWxpZ25tZW50KQoKMjAxMS0xMS0xOCAxNzoyNzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBxdWVyeTogaW1wcm92ZSBzY2hlZHVsaW5nIHF1ZXJ5CgkgIFR1cm5zIHNvbWUgYm9vbGVhbiBhcmd1bWVudHMgaW4gdGhlIHNjaGVkdWxpbmcgcXVlcnkgdG8gZmxhZ3MsIHdoaWNoIGFyZSBlYXNpZXIKCSAgdG8gZXh0ZW5kIGFuZCBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gcmVhZC4KCSAgTWFrZSBleHRyYSBtZXRob2RzIGZvciBjb25maWd1cmluZyBhbmQgcXVlcnlpbmcgdGhlIHN1cHBvcnRlZCBzY2hlZHVsaW5nIG1vZGVzLgoJICBUaGlzIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBhZGQgbmV3IG1vZGVzIGxhdGVyLgoKMjAxMS0xMS0xOCAxNDowODo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogbW92ZSBmbGFncyBjbG9zZXIgdG8gYnVmZmVyaW5nIHF1ZXJ5CgoyMDExLTExLTE4IDEzOjQ2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byBhY3RpdmF0ZSBmdW5jdGlvbnMKCjIwMTEtMTEtMTggMTI6MzU6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBwYWQ6IGZpeCBzY2hlZHVsaW5nIG1vZGUgZW51bXMKCSAgR3N0UGFkQWN0aXZhdGVNb2RlIC0+IEdzdFBhZE1vZGUKCSAgR1NUX1BBRF9BQ1RJVkFURV8qIC0+IEdTVF9QQURfTU9ERV8qCgoyMDExLTExLTE3IDE2OjE0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggZm9yIG5ldyBnZXRyYW5nZSBtZXRob2Qgc2lnbmF0dXJlCgkgIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZV9leHQgLT4gZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlCgoyMDExLTExLTE3IDEyOjQwOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIG90aGVyIGZ1bmN0aW9ucwoJICBBZGQgcGFyZW50IHRvIGNoYWluLCBjaGFpbl9saXN0LCBnZXRyYW5nZSBhbmQgZXZlbnQgZnVuY3Rpb25zLgoKMjAxMS0xMS0xNyAwODoyMTowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtb3ZlIGZpZWxkcyBvdXQgb2YgcmVzZXJ2ZWQgYW5kIHJlc3RvcmUgcGFkZGluZwoJICBEbyB0aGUgMC4xMSBBQkkgY2hhbmdlcy4gQWRkIGV4dHJhIGZpZWxkcyBmb3IgZGVzdHJveV9ub3RpZnkgYW5kIGRyb3AgdGhlIHFkYXRhCgkgIGhhY2suIFJlbmFtZSBfYWRkX3BhZF9mdWxsIHRvIF9hZGRfcGFkIGFuZCByZW1vdmUgdGhlIG9sZCBfYWRkX3BhZC4KCjIwMTEtMTEtMTYgMTc6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGFkZCBwYXJlbnQgdG8gaW50ZXJuYWwgbGlua3MKCjIwMTEtMTEtMTYgMTc6MjI6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byB0aGUgcXVlcnkgZnVuY3Rpb24KCjIwMTEtMTEtMTYgMTI6MzY6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIEdzdFBhZEZsYWdzOiByZW5hbWUgZmxhZ3MgR1NUX1BBRF8qIC0+IEdTVF9QQURfRkxBR18qCgoyMDExLTExLTE2IDEyOjEwOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBwbHVnaW5zOiByZW1vdmUgb2Jzb2xldGUgcGFyZW50IGNoZWNrcwoKMjAxMS0xMS0xNiAxMjowODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGtlZXAgdGhlIHBhcmVudCBhbGl2ZSB3aGVuIHJlcXVlc3RlZAoJICBBZGQgYSBuZXcgcGFkIGZsYWcgTkVFRF9QQVJFTlQgdGhhdCBlbnN1cmVzIHRoYXQgdGhlIHBhcmVudCBvZiBhIHBhZCBpcwoJICByZWZmZWQgYW5kIG5vdCBOVUxMIHdoZW4gdGhlIGV2ZW50LCBxdWVyeSBhbmQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zCgkgIGFyZSBjYWxsZWQuCgkgIFdoZW4gYSBwYWQgaXMgYWRkZWQgdG8gYW4gZWxlbWVudCBhdXRvbWF0aWNhbGx5IG1ha2Ugc3VyZSB0aGUgTkVFRF9QQVJFTlQgZmxhZwoJICBpcyBlbmFibGVkLgoKMjAxMS0xMS0xNiAxMDoyOTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb24ndCByZXF1aXJlIHBhcmVudCBlbGVtZW50IHRvIHByb3h5CgoyMDExLTExLTE2IDEwOjE2OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTExLTE1IDE4OjE2OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgcGFkOiBtb3ZlIHF1ZXJ5IGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0b2dldGhlcgoJICBNb3ZlIHRoZSBjYXBzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byB0aGUgb3RoZXIgcXVlcnkgZnVuY3Rpb25zLgoKMjAxMS0xMS0xNSAxNzo1MDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBfcXVlcnlfcGVlcl8qKCkgLT4gX3BlZXJfcXVlcnlfKigpCgoyMDExLTExLTE1IDE3OjQwOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgX2FjY2VwdF9jYXBzKCkgLT4gX3F1ZXJ5X2FjY2VwdF9jYXBzKCkKCjIwMTEtMTEtMTUgMTc6MTE6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBfcGVlcl9nZXRfY2FwcygpIC0+IHBlZXJfcXVlcnlfY2FwcygpCgoyMDExLTExLTE1IDE2OjQ2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBfZ2V0X2NhcHMoKSAtPiBfcXVlcnlfY2FwcygpCgoyMDExLTExLTE1IDE2OjE2OjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZG9jcwoKMjAxMS0xMS0xNSAxNjoxMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHRoZSBwcm94eSBmdW5jdGlvbnMKCSAgZml4IHRoZSBwcm94eSBmdW5jdGlvbnMgZm9yIHF1ZXJ5X2FjY2VwdF9jYXBzIGFuZCBxdWVyeV9jYXBzIHRvIHVzZSB0aGUgcGFkCgkgIGZvcndhcmQgaGVscGVyIGZ1bmN0aW9ucyB3aGljaCBjb3JyZWN0bHkgZm9yd2FyZHMgb24gdGhlIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgoyMDExLTExLTE1IDE2OjEzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGltcHJvdmUgc29tZSBmbGFnIG1hY3JvcwoKMjAxMS0xMS0xNSAxNjoxMzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVidWcgbGluZQoKMjAxMS0xMS0xNSAxMToyMDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiByZW1vdmUgZ2V0Y2FwcyBhbmQgdXNlIGNhcHMgcXVlcnkKCSAgUmVtb3ZlIHRoZSBnZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBwYWQgYW5kIHVzZSB0aGUgQ0FQUyBxdWVyeSBmb3IKCSAgdGhlIHNhbWUgZWZmZWN0LgoJICBBZGQgUFJPWFlfQ0FQUyB0byB0aGUgcGFkIGZsYWdzLiBUaGlzIGluc3RydWN0cyB0aGUgZGVmYXVsdCBjYXBzIGV2ZW50IGFuZCBxdWVyeQoJICBoYW5kbGVycyB0byBwYXNzIG9uIHRoZSBDQVBTIHJlbGF0ZWQgcXVlcmllcyBhbmQgZXZlbnRzLiBUaGlzIHNpbXBsaWZpZXMgYSBsb3QKCSAgb2YgZWxlbWVudHMgdGhhdCBwYXNzdHJvdWdoIGNhcHMgbmVnb3RpYXRpb24uCgkgIE1ha2UgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIHRvIHByb3h5IGNhcHMgcXVlcmllcyBhbmQgYWdncmVnYXRlIHRoZSByZXN1bHQuIE5lZWRzCgkgIHRvIHVzZSB0aGUgcGFkIGZvcndhcmQgZnVuY3Rpb24gaW5zdGVhZCBsYXRlci4KCSAgTWFrZSB0aGUgX3F1ZXJ5X3BlZXJfIHV0aWxpdHkgZnVuY3Rpb25zIHVzZSB0aGUgZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkgZnVuY3Rpb24gdG8KCSAgbWFrZSBzdXJlIHRoZSBwcm9iZXMgYXJlIGVtaXRlZCBwcm9wZXJseS4KCjIwMTEtMTEtMTQgMTE6MjY6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBjYXBzIHF1ZXJ5CgoyMDExLTExLTE0IDA5OjU3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogcmVtb3ZlIEdTVF9RVUVSWV9MQVNUCgoyMDExLTExLTE0IDEwOjI3OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBmaXggZG9jcwoKMjAxMS0xMS0xMiAxMDoyOTozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgZnVuY3Rpb25zIHRvIGFkZC9yZW1vdmUgY29udHJvbGxlZCBwcm9wZXJ0aWVzCgkgIE1ha2UgdGhhdCBpbXBsaXppdCB3aXRoIGF0dGFjaGluZy9kZXRhY2hpbmcgY29udHJvbHNvdXJjZXMuIFRoaXMgaXMgYSBsb3QgZWFzaWVyCgkgIGFuZCBoYXMgbGVzcyBpbnZhbGlkIHN0YXRlIChjb250cm9sbGVkIHByb3BlcnR5IHdpdGhvdXQgY29udHJvbCBzb3VyY2UpLgoKMjAxMS0xMS0xMyAyMzoyNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBsdWdpbnMsIHRvb2xzOiB1cGRhdGUgZm9yIGdldF9wcm90b2NvbHMoKSByZXR1cm4gdmFsdWUgY2hhbmdlCgoyMDExLTExLTEzIDIzOjE0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBjbGVhbiB1cCBoZWFkZXIgZmlsZXMKCSAgVGFicyB0byBzcGFjZXMuCgoyMDExLTExLTEzIDIzOjA3OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaWhhbmRsZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBnZXRfcHJvdG9jb2xzKCkKCjIwMTEtMTEtMTMgMjA6NTY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaWhhbmRsZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBfZ2V0X3VyaV90eXBlKCkKCSAgUmV0dXJuIGEgR3N0VVJJVHlwZSBhbmQgbm90IGEgcGxhaW4gZ3VpbnQuCgoyMDExLTExLTEzIDE3OjQ1OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IHVwZGF0ZSB1bml0IHRlc3RzIGZvciBVUkkgaGFuZGxlciBBUEkgY2hhbmdlcwoKMjAxMS0xMS0xMyAxNzo0NDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGVsZW1lbnRzOiB1cGRhdGUgZmQgKyBmaWxlIHNvdXJjZXMgYW5kIHNpbmtzIGZvciBHc3RVcmlIYW5kbGVyIGNoYW5nZXMKCjIwMTEtMTEtMTMgMTc6NDQ6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVyaWhhbmRsZXI6IHBhc3MgR0Vycm9yIGFyZ3VtZW50IHRvIGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKCkKCSAgQWxzbyBsZXQgZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkgY2hlY2sgYWxyZWFkeSBpZiB0aGUgcHJvdG9jb2wKCSAgaXMgc3VwcG9ydGVkLCBzbyB0aGF0IG5vdCBldmVyeSB1cmkgaGFuZGxlciBoYXMgdG8gZG8gdGhhdAoJICBpdHNlbGYuCgoyMDExLTExLTEzIDE1OjUxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmloYW5kbGVyOiBtYWtlIF9nZXRfdXJpKCkgcmV0dXJuIGEgY29weQoJICBGb3IgdGhyZWFkLXNhZmV0eS4KCjIwMTEtMTEtMTMgMTU6Mzc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICB1cmloYW5kbGVyOiByZW1vdmUgIm5ldy11cmkiIHNpZ25hbAoJICBObyBvbmUgYnV0IGZpbGVzcmMgdXNlZCB0aGF0IEFQSS4gU2hvdWxkIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5CgkgIHJlcXVpcmluZyBhbiAidXJpIiBwcm9wZXJ0eSBpbnN0ZWFkLCBhbmQgdGhlbiBvYmplY3RzIGNhbiBkbyBhCgkgIG5vdGlmeSBvbiB0aGF0LiBBbHNvIHJlbW92ZWQgaW50ZXJmYWNlIHN0cnVjdHVyZSBwYWRkaW5nLCBpdCdzCgkgIG5vdCBuZWVkZWQuCgoyMDExLTExLTEzIDEzOjIzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMKCjIwMTEtMTEtMTIgMTY6NDI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IGN1cnJlbnQgdmFsdWUgYXMgZGVmYXVsdCB2YWx1ZQoJICBJbnN0ZWFkIG9mIHByaW50aW5nIHNlcGFyYXRlICdDdXJyZW50JyBhbmQgJ0RlZmF1bHQnIHZhbHVlcwoJICAodGhlIGZvcm1lciBvYnRhaW5lZCB2aWEgZ19vYmplY3RfZ2V0KCkgYW5kIHRoZSBsYXR0ZXIgZnJvbQoJICB0aGUgcHJvcGVydHkgR1BhcmFtU3BlYyksIHNpbXBseSBwcmludCB0aGUgQ3VycmVudCB2YWx1ZSBhcwoJICB0aGUgRGVmYXVsdCB2YWx1ZS4gVGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gZm9yIGFsbW9zdAoJICBhbGwgZWxlbWVudHMgYW5kIGF2b2lkcyBjb25mdXNpb24gaWYgYSBzdWJjbGFzcyBvZiBhIGJhc2UKCSAgY2xhc3MgY2hvb3NlcyBhIGRpZmZlcmVudCBkZWZhdWx0IHRoYW4gdGhlIGJhc2UgY2xhc3MuCgoyMDExLTExLTEyIDE0OjU1OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGdzdCwgY29udHJvbGxlcjogcmVwbGFjZSBnX2xpc3RfcHJlcGVuZCArIHJldmVyc2Ugd2l0aCBHUXVldWUKCjIwMTEtMTEtMTIgMTQ6MDQ6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBkb2NzOiBmaXggdHlwbyBpbiBidWZmZXIgZG9jcwoKMjAxMS0xMS0xMiAwMTo1NDo0NCArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggY2FwcyB1bnJlZiBpbiB0cmFuc2Zvcm1fY2FwcyBmaWx0ZXIgc3Vic2V0IGNoZWNrCgkgIEkgZGlkIG5vdCB0ZXN0IHRoaXMsIGJ1dCB0aGUgY29kZSBsb29rZWQgdmVyeSB3cm9uZy4KCjIwMTEtMTEtMTIgMDE6NTE6MTEgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGRvIG5vdCByZXR1cm4gYSByZWYgZnJvbSBwYXJzZV9hY2NlcHRfY2FwcwoJICBNYWtlcyB0aGlzIGV4YWN0bHkgbGlrZSBnc3RfZXZlbnRfcGFyc2VfY2Fwcy4gVGhpcyBpcyB3aGF0IGN1cnJlbnQgY29kZQoJICBleHBlY3RzLCBzbyBpdCBmaXhlcyBzb21lIGxlYWtzLgoKMjAxMS0xMS0xMSAxNzoxNzo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgLmg6IGZpeCBoZWFkZXIgZmlsZXMKCSAgRW5zdXJlIGNvcnJlY3QgaW5kZW50YXRpb24gYW5kIHJldGFiCgkgIE1ha2Ugc3VyZSBhbGwgc3RydWN0dXJlIGhhdmUgcGFkZGluZwoKMjAxMS0xMS0xMSAxNjo1Mjo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgLmg6IGZpeCBoZWFkZXIgZmlsZXMKCSAgRW5zdXJlIGNvcnJlY3QgaW5kZW50YXRpb24gYW5kIDpyZXRhYi4KCSAgTWFrZSBzdXJlIGFsbCBzdHJ1Y3R1cmVzIGhhdmUgcGFkZGluZwoJICBGaXggdXAgc29tZSBvbGQgQUJJIGFkZGl0aW9ucy4KCjIwMTEtMTEtMTEgMTc6MDQ6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGZpeCBpbnZhbGlkIHhtbAoKMjAxMS0xMS0xMSAxMDowMDozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCA8IC0xIHNpemVzCgoyMDExLTExLTExIDAxOjQ3OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgYnVmZmVyLCBtZW1vcnk6IG1ha2Ugc2l6ZSBhcmd1bWVudHMgd2hlcmUgLTEgaXMgYWxsb3dlZCBzaWduZWQKCjIwMTEtMTEtMTEgMDE6NDQ6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBsYXRlc3QgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMTAgMTk6Mzc6MjggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogbWVyZ2UgY29udHJvbGxlciBpbnRvIGdzdG9iamVjdAoJICBUaGlzIG1ha2UgdGhlIGNvbnRyb2xsZXIgZXZlbiBtb3JlIGxpZ2h0d2VpZ2h0IChubyBleHRyYSBvYmplY3QsIG5vIGV4dHJhIGxvY2ssCgkgIGxlc3MgaW5kaXJlY3Rpb25zKS4gRm9yIG9iamVjdCB0aGF0IGRvbid0IHVzZSB0aGUgY29udHJvbGxlciB0aGUgb25seSAnb3ZlcmhlYWQnCgkgIGlzIGEgMyB1bnVzZWQgZmllbGRzIGluIHRoZSBnc3Rfb2JqZWN0IHN0cnVjdHVyZS4KCjIwMTEtMTEtMTAgMTg6NTg6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkgIG5ldG1ldGE6IGF2b2lkIHVzaW5nIGdbdV1sb25nIGluIGhlYWRlcnMKCjIwMTEtMTEtMTAgMTg6MTg6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiByZW1vdmUgZmx1c2ggZnJvbSBfdW5tYXAKCjIwMTEtMTEtMTAgMTY6MDI6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wbGVtZW50IGEgZGVmYXVsdCBnZXRfY2FwcyBmdW5jdGlvbgoJICBEb24ndCByZWx5IG9uIHRoZSByZXR1cm4gdmFsdWUgb2YgYSB2bWV0aG9kIHRvIHRyaWdnZXIgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gYnV0IG1ha2UgYSByZWFsIGRlZmF1bCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWV0aG9kIHRoYXQgdGhlCgkgIHN1YmNsYXNzIGNhbiBjaGFpbiB1cCB0by4KCjIwMTEtMTEtMTAgMTQ6MTM6NTQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IHJlbW92ZSBpbmNvcnJlY3QgYXNzZXJ0aW9uCgkgIE9mZnNldCBhbmQgc2l6ZXMgaGF2ZSBubyBiZWFyaW5nIG9uIGVhY2ggb3RoZXIgaGVyZS4KCjIwMTEtMTEtMTAgMTM6NTk6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWYgZmlsZXMKCjIwMTEtMTEtMTAgMTM6NTM6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGdzdDogTW9yZSBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgoyMDExLTExLTEwIDEzOjUxOjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBnc3RtZW1vcnk6IFJlZ2lzdGVyIGEgR0JveGVkIEdUeXBlCgkgIEFsbG93cyB1c2luZyBpdCBmcm9tIGctaQoKMjAxMS0xMS0xMCAxMzo1MDoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEFkZCAtLXdhcm4tYWxsIHRvIGludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICAuLi4gYW5kIGxldCdzIGdldCBmaXhpbmcgYWxsIHRob3NlIGRvY3MgIQoKMjAxMS0xMS0xMCAxMzozODo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggdm1ldGhvZHMKCSAgTWFrZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRyYW5zZm9ybV9jYXBzIHZtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzCgkgIGNhbiBjYWxsIGludG8gaXQuCgkgIE1ha2UgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRyYW5zZm9ybV9zaXplLgoJICBBdm9pZCBkb2luZyBzb21ldGhpbmcgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZS4KCjIwMTEtMTEtMTAgMTM6Mzc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHRlc3RzOiBvbmx5IG92ZXJyaWRlIHdoZW4gIT0gTlVMTAoJICBPbmx5IG92ZXJyaWRlIHRoZSBtZXRob2RzIGluIHRoZSB1bml0IHRlc3RzIHdoZW4gIT0gTlVMTCBvdGhlcndpc2Ugd2UgbWlnaHQKCSAgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgoyMDExLTExLTEwIDEzOjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBwdXNoc3JjOiBtYWtlIGFsbG9jIG1ldGhvZCBhIHZtZXRob2QKCjIwMTEtMTEtMTAgMTI6MzM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW9yZGVyIHZtZXRob2QgYWNjb3JkaW5nIHRvIC5oIGZpbGUKCjIwMTEtMTEtMTAgMTI6MzM6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGNvbW1lbnRzCgoyMDExLTExLTEwIDEyOjMzOjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGRvIHRoaW5ncyBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lCgoyMDExLTExLTEwIDEyOjA5OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBhZGQgYSBkZWZhdWx0IHNldF9jbG9jayBpbXBsZW1lbnRhdGlvbgoJICBBZGQgYSBkZWZhdWx0IHNldF9jbG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgYXZvaWQgZG9pbmcgd29yayBpbiB0aGUgdm1ldGhvZAoJICB0cmFtcG9saW5lLiBUaGlzIHJlcXVpcmVzIHN1YmNsYXNzZXMgdG8gY2hhaW4gdXAuCgoyMDExLTExLTEwIDEyOjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgZG8gYW55dGhpbmcgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZQoJICBBdm9pZCBkb2luZyBzdHVmZiBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lLCBqdXN0IGxldCB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWV0aG9kIHRha2UgY2FyZSBvZiB0aGluZ3MuCgoyMDExLTExLTEwIDEyOjA4OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHNvbWUgZG9jcwoKMjAxMS0xMS0xMCAxMTo0MjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogdXNlIGdwb2ludGVyIGZvciByZXR1cm4gdHlwZXMKCjIwMTEtMTEtMTAgMTE6MTI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgZG9jCgoyMDExLTExLTEwIDEwOjU4OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiByZW1vdmUgR3N0UGFkRml4YXRlQ2Fwc0Z1bmN0aW9uCgkgIFRoZSBmaXhhdGUgY2FwcyBmdW5jdGlvbiB3YXMgbm90IHVzZWQgZXh0ZXJuYWxseSBhbmQgd2UgaGF2ZSB2bWV0aG9kcyBpbiB0aGUKCSAgYmFzZSBjbGFzc2VzIHdoZXJlIGl0IGlzIG5lZWRlZC4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgc2ltcGxpZnkgc29tZSBmaXhhdGUgZnVuY3Rpb25zIGluIHRoZSBiYXNlIGNsYXNzZXMuIEFsc28gcGFzcyB0aGUgdW50cnVuY2F0ZWQKCSAgY2FwcyB0byB0aGUgdm1ldGhvZC4KCjIwMTEtMTEtMDkgMTc6NDM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3Qgc3RvcmUgZXZlbnRzIG9uIGZsdXNoaW5nIHBhZHMKCSAgY2hlY2sgdGhlIGZsdXNoaW5nIHN0YXRlIG9mIHRoZSBwYWQgYmVmb3JlIHN0b3JpbmcgdGhlIGV2ZW50LgoKMjAxMS0xMS0wOSAxNzozNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiBtYWtlIGFuIEFDQ0VQVF9DQVBTIHF1ZXJ5CgkgIFJlcGxhY2UgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gd2l0aCBhIHF1ZXJ5LgoKMjAxMS0xMS0wOSAxNzoyNTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcGFkOiByZWZ1c2UgZXZlbnRzIGluIGZsdXNoaW5nCgkgIHdoZW4gd2UgYXJlIGZsdXNoaW5nLCBkb24ndCBzdG9yZSB0aGUgZXZlbnQgb24gdGhlIHBhZCBidXQgc2ltcGx5IHJldHVybiBGQUxTRS4KCSAgRG9uJ3QgZGVhY3RpdmF0ZSB0aGUgc3JjcGFkLCB3ZSBuZWVkIGl0IHRvIGJlIGFjdGl2ZSBpbiBvcmRlciB0byBwdXNoIHRoZQoJICBjYXBzLiBEb3duc3RyZWFtIGNhbiBjaGFuZ2UgdGhlIHNjaGVkdWxpbmcgbW9kZSBvZiBhbiBhY3RpdmUgcGFkLgoKMjAxMS0xMS0wOSAxNzoxOToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSBtb3JlIHF1ZXJ5X3R5cGVzCgoyMDExLTExLTA5IDExOjA1OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogQW5kcm9pZC5tazoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgQW5kcm9pZDogYnVpbGQgYXVkaW8gY29udHJvbGxlciBleGFtcGxlCgkgIEFkZCBidWlsZHN5c3RlbSBob29rcyBmb3IgYnVpbGRpbmcgdGhlIGF1ZGlvY29udHJvbGxlciBleGFtcGxlCgkgIHdpdGggdGhlIE5ESy4KCSAgU2lnbmVkLW9mZi1ieTogUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9AY29sbGFib3JhLmNvbT4KCjIwMTEtMTEtMDkgMTI6MjE6MTcgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGFkZCB0ZXN0cyBmb3Igc3RpY2t5IGNhcHMgaGFuZGxpbmcKCSAgdGVzdF9zdGlja3lfY2Fwc19mbHVzaGluZyBpcyBjdXJyZW50bHkgZmFpbGluZy4KCjIwMTEtMTEtMDkgMTI6MTI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIHVwZGF0ZSBjb21tb24KCjIwMTEtMTEtMDkgMTI6MDM6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTA5IDEyOjAyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTExLTA5IDExOjQ3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHJlbW92ZSBxdWVyeSB0eXBlcwoJICBJdCB3YXMgbm90IHJlYWxseSB1c2VmdWwKCjIwMTEtMTEtMDggMTg6MDk6MjggKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBjb25zaWRlciBsaXN0cyBhbmQgcmFuZ2VzIGVxdWFsIGlmIHRoZXkgaG9sZCB0aGUgc2FtZSBzZXQKCSAgVGhpcyBmaXhlcyBjYXBzIG9wZXJhdGlvbnMgd2hlbiBkaWZmZXJlbnQgZWxlbWVudHMgYWR2ZXJ0aXNlIHNvbWUKCSAgb2YgdGhlaXIgY2FwcycgcHJvcGVydGllcyBkaWZmZXJlbnRseSAoZWcsIGZvciBhdWRpbyBjaGFubmVscywgZWl0aGVyCgkgIGEgcmFuZ2UgZnJvbSAxIHRvIDIsIG9yIGEgbGlzdCBvZiAxIGFuZCAyKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MzY0MwoKMjAxMS0xMS0wOSAxMToyNDoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IGFkZCBhIHN1YnNldCB0ZXN0IGZvciBzdHJ1Y3R1cmUKCjIwMTEtMTEtMDkgMTE6MjI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwYWQ6IGFkZCBtb3JlIHF1ZXJpZXMKCSAgQWRkIG1vcmUgcXVlcnkgZnVuY3Rpb25zIHRvIHByZXBhcmUgZm9yIGRvaW5nIG1vcmUgd2l0aCBxdWVyaWVzCgoyMDExLTEwLTI4IDEzOjM5OjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIGRvY3M6IGFsc28gZml4IHdyb25nIGNhbGwgb3JkZXIgZm9yIGNvbnRyb2xsZXIgaW4gbWFudWFsCgoyMDExLTExLTA4IDE3OjMyOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbnN0YWxsIHF1ZXJ5IHByb2JlcwoJICBGaXJlIHF1ZXJ5IHByb2JlcyBhY2NvcmRpbmcgdG8gdXBkYXRlZCBkZXNpZ24gZG9jLgoKMjAxMS0xMS0wOCAxNTo1MTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgbG9jay91bmxvY2tfZnVsbCB2ZXJzaW9ucyBvZiBzdHJlYW0tbG9jawoKMjAxMS0xMS0wOCAxNTo0ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZGVmaW5lcyBmb3IgcXVlcnkgcHJvYmVzCgoyMDExLTExLTA4IDEzOjMwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB1bml0IHRlc3QKCjIwMTEtMTEtMDggMTM6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogdXBkYXRlIGRvY3MKCjIwMTEtMTEtMDggMTM6MDI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3Q6IHBvcnQgdG8gMC4xMQoKMjAxMS0xMS0wOCAxMjo1NDoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCjIwMTEtMTEtMDggMTI6NDc6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwdWxsIG1vZGUgcHJvYmVzCgkgIEFsbG93IHByb2JlcyB0byBpbnNwZWN0IHRoZSBvZmZzZXQgYW5kIHNpemUgZnJvbSBhIHByb2JlIGluIHB1bGwgbW9kZSBhbmQgYWxsb3cKCSAgdGhlIHByb2JlIHRvIG1vZGlmeSB0aGUgYnVmZmVyLgoJICBVcGRhdGUgZGVzaWduIGRvYyBhIGxpdHRsZS4KCjIwMTEtMTEtMDggMTI6MjI6MjEgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGFkZCB0ZXN0IHRvIHZlcmlmeSBmbHVzaGluZyBiZWhhdmlvdXIKCSAgU2VlbXMgbGlrZSBhIHRyaXZpYWwgY2FzZSwgYnV0IHRoaXMgd2FzIGFjdHVhbGx5IGJyb2tlbiBpbiAwLjExIHJlY2VudGx5LgoKMjAxMS0xMS0wOCAxMTowNDoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcGFkOiBBZGQgR3N0UGFkUHJvYmVJbmZvCgkgIE1ha2UgYSBuZXcgR3N0UGFkUHJvYmVJbmZvIHN0cnVjdHVyZSBhbmQgcGFzcyB0aGlzIGluIHRoZSBwcm9iZSBjYWxsYmFjay4gVGhpcwoJICBhbGxvd3MgdXMgdG8gYWRkIG1vcmUgdGhpbmdzIGxhdGVyIGFuZCBhbHNvIGFsbG93IHRoZSBjYWxsYmFjayB0byByZXBsYWNlIG9yCgkgIG1vZGlmeSB0aGUgcGFzc2VkIG9iamVjdC4KCjIwMTEtMTEtMDggMDg6MjY6MjkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGxvZyBjcmVhdGlvbiBvZiBxb3MgZXZlbnRzIGF0IExPRyBsZXZlbCBpbnN0ZWFkIGF0IElORk8KCjIwMTEtMTEtMDcgMTY6NTc6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBwYXJhbWV0ZXIgZG9jcwoKMjAxMS0xMS0wOCAwMDozMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBkb2NzOiBmaXggU2luY2U6IG1hcmtlcnMgZm9yIEFQSSBhZGRlZCBhZnRlciAwLjEwLjM1CgoyMDExLTExLTA4IDAwOjE1OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoJICBBUEk6IGdzdF9jYXBzX2lzX3N0cmljdGx5X2VxdWFsKCkKCjIwMTEtMTEtMDcgMTc6MTc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHZhbHVlLmMKCjIwMTEtMTEtMDcgMTc6MDQ6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcGFkOiByZXdvcmsgcGFkIHByb2JlcwoJICBNYWtlIGEgc2VwYXJhdGUgY29va2llIHRvIGRldGVjdCBjaGFuY2dlcyBpbiB0aGUgbGlzdCBvZiBwcm9iZXMgYW5kIGtlZXBpbmcKCSAgdHJhY2sgb2Ygd2hhdCBob29rcyBoYXZlIGJlZW4gaW52b2tlZCB5ZXQuCgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgdG8gaGF2ZSBwcm9iZXMgb24gc3JjcGFkcyBpbiBwdXNoIG1vZGUgYW5kIHNpbmtwYWRzIGluCgkgIHB1bGwgbW9kZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IGNhbGxiYWNrcyBnb3QgZXhlY3V0ZWQuIElmIG5vIGNhbGxiYWNrIGlzIGNhbGxlZCBhbmQgd2UgYXJlIGEKCSAgYmxvY2tpbmcgcGFkLCBsZXQgdGhlIGl0ZW0gcGFzcy4gVGhpcyBhbGxvd3MgeW91IHRvIGJsb2NrIHBhZHMgb24gc2VsZWN0ZWQKCSAgaXRlbXMgb25seS4KCSAgRXhwbGljaXRseSBoYXZlIGFuIFVQU1RSRUFNIGFuZCBET1dOU1RSRUFNIFBhZFByb2JlVHlwZS4gVGhpcyBhbGxvd3MgeW91IHRvIG9ubHkKCSAgYmxvY2sgdGhlIHBhZCBvbiB1cHN0cmVhbSBvciBkb3duc3RyZWFtIGl0ZW1zLgoJICBBZGQgY29udmVuaWVuY2UgbWFjcm9zIHRvIG9ubHkgYmxvY2sgb24gZG93bnN0cmVhbS91cHN0cmVhbSBpdGVtcy4KCjIwMTEtMTAtMjcgMTI6NTk6NTcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBnaW50NjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMjoyNDoxMyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcXVpY2tlciB2ZXJzaW9uIG9mIGludGVyc2VjdGlvbiB3aGVuIHdlIGRvIG5vdCBuZWVkIHRoZSByZXN1bHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMjowMjo0MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogc2ltcGxpZnkgcmV0dXJuIHN0YXRlbWVudCBpbiBnc3Rfc3RydWN0dXJlX2Nhbl9pbnRlcnNlY3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMTo0MTozMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogZWFybHkgb3V0IHdoZW4gd2Uga25vdyBhIHZhbHVlIGNhbm5vdCBiZSBhIHN1YnNldAoJICBJZiB0d28gdmFsdWVzIGNhbiBiZSBvcmRlcmVkLCBidXQgYXJlIHVuZXF1YWwsIHRoZXkgYXJlCgkgIG5lY2Vzc2FyaWx5IGRpc3RpbmN0LCB0aHVzIG9uZSBjYW5ub3QgYmUgYSBzdWJzZXQgb2YgdGhlIG90aGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDEwOjM1OjUzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBxdWlja2VyIHRlc3QgZm9yIHN1YnN0cmFjdGlvbiBlbXB0aW5lc3MKCSAgV2hlbiB3ZSBkbyBub3QgY2FyZSBhYm91dCB0aGUgYWN0dWFsIHJlc3VsdGluZyBzZXQsCgkgIGJ1dCBvbmx5IHdoZXRoZXIgaXQgaXMgZW1wdHkgb2Ygbm90LCB3ZSBjYW4gc2tpcCBhIGZhaXIgYml0CgkgIG9mIEdWYWx1ZSBqdWdnbGluZy4KCSAgQWRkIGEgZnVuY3Rpb24gdGhhdCBkb2VzIHNvLCBzaW5jZSB3ZSBjYW5ub3QganVzdCBwYXNzIE5VTEwKCSAgdG8gdGhlIGV4aXN0aW5nIEFQSSBhcyBpdCBtYXkgYmUgcGFydCBvZiB0aGUgQVBJIGNvbnRyYWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDA5OjQ1OjQxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiByZWppZyB0ZXN0IG9yZGVyaW5nIGZvciBzcGVlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTExLTA3IDEyOjI4OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBtb3JlIGFwaSBjaGFuZ2VzIGluIHRoZSBwb3J0aW5nIGd1aWRlCgoyMDExLTExLTA3IDEwOjQwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGNvbXBpbGF0aW9uCgoyMDExLTExLTA3IDEwOjAxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTExLTA2IDAwOjA3OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkgIFJldmVydCAiY29udHJvbGxlcjogZml4IGdfcmV0dXJuIHN0YXRlbWVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1OTNkMmIyOTdiZDdiNWNlOWRiY2RmMmYxYWUyYjc2MjRkOTRkNmFlLgoJICBnc3RfY29udHJvbGxlcl9zZXRfZGlzYWJsZWQgKCkgcmV0dXJucyBhIHZvaWQuCgoyMDExLTExLTA1IDEyOjEwOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSByZWZzIHRvIHJlbW92ZWQgQVBJCgoyMDExLTExLTA0IDIxOjM3OjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiB0aGUgb2JqZWN0IG5lZWRzIGEgcmVmIHRvIHRoZSBjb250cm9sbGVyIGZvciB0aGUgY29udmVuaWVuY2UgYXBpCgkgIEFkZCBhIGhhY2sgdG8gZW5zdXJlIHRoZSBvYmplY3Qgd2lsbCBoYXZlIGEgcmVmIHRvIHRoZSBjb250cm9sbGVyIG9uY2Ugd2UKCSAgY3JlYXRlIGl0LiBGaXhlcyB0aGUgYXVkaW8gZXhhbXBsZSAodGhhdCB1c2VzIHRoZSBjb250cm9sbGVyIGFwaSBkaXJlY3RseSkuCgoyMDExLTExLTA0IDIxOjM3OjIxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZml4IGdfcmV0dXJuIHN0YXRlbWVudAoKMjAxMS0xMS0wNCAyMTozNTo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGxvZ2dpbmcgdHdlYWtzCgkgIERvbid0IGxvZyBpbiBfbmV3IGJlZm9yZSB3ZSBoYXZlIHRoZSBsb2cgY2F0ZWdvcnkuIFVzZSBfT0JKRUNUIHZhcmlhbnRzLgoKMjAxMS0xMS0wNSAwMToyNzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdDogZml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MKCSAgZ3N0b2JqZWN0LmM6IEluIGZ1bmN0aW9uICdnc3Rfb2JqZWN0X2hhc19hY3RpdmVfYXV0b21hdGlvbic6CgkgIGdzdG9iamVjdC5jOjEwNzY6MzogZXJyb3I6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoJICBnc3Rjb250cm9sbGVyLmM6IEluIGZ1bmN0aW9uICdnc3RfY29udHJvbGxlcl9pc19hY3RpdmUnOgoJICBnc3Rjb250cm9sbGVyLmM6NTA5OjM6IGVycm9yOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCjIwMTEtMTEtMDQgMjA6NTA6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogYWRkIGFwaSB0byBjaGVjayBmb3IgYWN0aXZlIGNvbnRyb2xsZXJzIChuZWVkZWQgZm9yIGUuZy4gdm9sdW1lKQoKMjAxMS0xMS0wNCAyMDozMjozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG9ic29sZXRlIGNvbW1lbnRzIGZyb20gYXBpIHRyYW5zaXRpb24KCjIwMTEtMTEtMDQgMTQ6MDA6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICBjb250cm9sbGVyOiBmaXggdGVzdHMgYWZ0ZXIgbW92ZSBhbmQgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMDQgMTE6NDI6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHBvcnQgdG8gbmV3IGNvbnRyb2xsZXIgYXBpCgoyMDExLTExLTA0IDExOjM5OjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgY29udHJvbGxlcjogdXBkYXRlIGRvY3MgZm9yIGNvbnRyb2xsZXIgbW92ZQoKMjAxMS0xMS0wNCAxMTozNDoxMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgdG8gY29yZS9nc3RvYmplY3QKCSAgTW92ZSB0aGUgY29udHJvbGxlciB0byBnc3RvYmplY3QgYXMgYSBzaW1wbGUgZGVsZWdhdGUuIFRoZSBjb250cm9sbGVyIGFuZAoJICBjb250cm9sc291cmNlIGFyZSBub3QgY2xhc3NlcyBpbiBjb3JlLiBUaGUgY29udHJvbHNvdXJjZXMgc3RheSBzZXBhcmF0ZSBhcyBhIGxpYgoJICBmb3Igbm93LiBUaGlzIHdheSB3ZSBjYW4gYXZvaWQgdGhlIHFkYXRhIGxvb2t1cHMuCgkgIEFsc28gcmVtb3ZlIGNvbnRyb2xsZXJfaW5pdCgpLiBUaGVyZSBpcyBubyBtb3JlIG5lZWQgdG8gbGluayB0byBjb250cm9sbGVyIGZvcgoJICBlbGVtZW50cy4KCSAgQWxzbyBzYW5pdGl6ZSB0aGUgQVBJLiBXZSBub3cgaGF2ZSBmdW5jdGlvbnMgdG8gYWRkIHByb3BlcnRpZXMgbGlrZSB3ZSBoYWQKCSAgbWV0aG9kcyB0byByZW1vdmUgdGhhdC4gVGhhdCBhdm9pZHMgdGhlbiByZWYgY291bnQgaGFja3Mgd2UgaGFkIGluIF9uZXcuCgoyMDExLTExLTAzIDE4OjIzOjEzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc21hbGwgY2xhcmlmaWNhdGlvbgoKMjAxMS0xMS0wMyAxODoyMjoxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IG1pc3NpbmcgcmVuYW1lIGlmYWNlLT5pbnRlcmZhY2UgaW4gdGhlIGRvY3MKCjIwMTEtMTEtMDQgMTk6MTc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHRoZSBpdGVyYXRvciBjb3B5CgoyMDExLTExLTA0IDE5OjExOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RiaW4uYwoKMjAxMS0xMS0wMyAxNTozNjo1OSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogT25seSB1c2UgdGhlIGNhY2hlZCB0cmFuc2Zvcm0gb24gc3RyaWN0bHkgZXF1YWwgY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzMzMzCgoyMDExLTExLTAzIDE1OjM1OjMyICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19pc19zdHJpY3RseV9lcXVhbAoKMjAxMS0xMS0wNCAxODo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIHRlc3RzOiBmaXggdGVzdHMKCSAgU2luY2UgYmxvY2tzIGFyZSBub3Qgb24gYm90aCBkaXJlY3Rpb25zLCB3ZSBuZWVkIHRvIGNoZWNrIGluIHRoZSBibG9jayBjYWxsYmFjawoJICBpZiB3ZSBhcmUgbm90IGJsb2NraW5nIG9uIGFuIHVwc3RyZWFtIGV2ZW50IGFuZCBsZXQgaXQgcGFzcy4KCjIwMTEtMTEtMDQgMTg6MTk6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHByb2JlcyB3b3JrIG9uIGFsbCBwYWRzCgkgIGZpeGVzICM2NDQ5MDcKCjIwMTEtMTAtMTUgMjI6NTI6MjUgKzAzMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGludHJvc3BlY3Rpb246IGFkZCBWYWx1ZSBhbm5vdGF0aW9ucyBmb3IgR1NUX1NFQ09ORCwgR1NUX01TRUNPTkQsIEdTVF9VU0VDT05ELCBHU1RfTlNFQ09ORCBjb25zdGFudHMKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdvbid0IHBhcnNlIHRoZW0gcHJvcGVybHkgb3RoZXJ3aXNlLgoJICBTdGlsbCBuZWVkIHRvIGZvcmNlIHRoZSByaWdodCB0eXBlIHRob3VnaCAoZWl0aGVyIEdzdENsb2NrVGltZSBvcgoJICBndWludDY0KSwgYnV0IFR5cGU6IHh5eiBoYXMgbm8gZWZmZWN0IGZvciBtZSBoZXJlLCBzbyBzb21lb25lIHdpdGgKCSAgYSBuZXdlciBnLWkgbmVlZHMgdG8gdGVzdCB0aGlzLgoJICBTb21lIG90aGVyIGRlZmluZXMgYXJlIGFsc28gbWlzc2luZywgZS5nLiBHU1RfQ0xPQ0tfVElNRV9OT05FLgoKMjAxMS0xMS0wNCAwMDowMzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzIGlmIGdzdCBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjk1MgoKMjAxMS0xMS0wNCAwMDowMjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IHR5cG8gYXJvdW5kIEdMSUJfRVhUUkFfQ0ZMQUdTIGluIEdTVF9BTExfQ1hYRkxBR1MKCjIwMTEtMTEtMDMgMjM6MDg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgoyMDExLTExLTAzIDIyOjU4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgkgIEJlY2F1c2Ugd2UgY2FuLgoKMjAxMS0xMS0wMyAyMjo1MTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IHVzZSBmbGFncyBlbnVtIGluc3RlYWQgb2YgZ3VpbnQgaW4gc3RydWN0dXJlCgoyMDExLTExLTAzIDA4OjQ3OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoKMjAxMS0xMS0wMyAxNzo0OTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgZml4IHJlcXVlc3QgcGFkCgkgIE1ha2UgYWxsIHJlcXVlc3QgcGFkcyB0YWtlIF8ldSBpbiB0aGUgdGVtcGxhdGUuCgkgIEZpeCB1cCB1bml0IHRlc3RzLgoKMjAxMS0xMS0wMyAxNjo0OTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBkZWY6IHVwZGF0ZSBkZWZzCgoyMDExLTExLTAzIDE2OjQ2OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgbmV0OiBhZGQgbmV0IGFkZHJlc3MgbWV0YWRhdGEKCjIwMTEtMTEtMDMgMTQ6MjY6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgbmV0dGltZTogY2xlYW4gdXAgaGVhZGVyCgoyMDExLTExLTAzIDE0OjE0OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZG9uJ3QgdXNlIGxvY2svdW5sb2NrX2Z1bGwKCjIwMTEtMTEtMDMgMTE6MzA6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCjIwMTEtMTEtMDIgMTI6Mzc6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMS0xMC0yNSAxNzoyNjo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG9uJ3QgY2FjaGUgaW50ZXJuYWwgcHJveHkgcGFkIHRhcmdldAoJICBUaGUgaW50ZXJuYWwgcHJveHkgcGFkIHRhcmdldCBpcyBzaW1wbHkgYSBjYWNoZSBvZiB0aGUgaW50ZXJuYWwgcHJveHkgcGFkCgkgIHBlZXIuIFRoaXMgcGF0Y2ggdXNlcyB0aGUgd2VsbCBpbXBsZW1lbnQgR3N0UGFkIHBlZXIgaGFuZGxpbmcgdG8gb2J0YWluIHRoZQoJICB0YXJnZXQuIFRoaXMgZml4ZXMgaXNzdWVzIHdpdGggdGFyZ2V0IG5vdCBiZWluZyBzZXQgaW4gYm90aCBkaXJlY3Rpb24gd2hlbgoJICB0d28gZ2hvc3RwYWRzIGFyZSBsaW5rZWQgdG9nZXRoZXIgKGVtcHR5IGJpbikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg1MTcKCjIwMTEtMTEtMDIgMTI6MDY6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBfZm91bmRfdGFnc18gQVBJCgkgIHJlbW92ZSBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkgYW5kIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCgpLCB0aGV5IGFyZQoJICBub3RoaW5nIG1vcmUgdGhhbiBhIHdyYXBwZXIgYXJvdW5kIGdzdF9wYWRfcHVzaF9ldmVudCgpCgoyMDExLTExLTAyIDEwOjI5OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbW1vbgoJICBjb25maWd1cmUuYWMKCjIwMTEtMTAtMzAgMjE6MzM6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTI5IDA5OjQzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBHc3RTZWdtZW50IGFyZ3VtZW50IGNvbnN0CgoyMDExLTEwLTI5IDA5OjQxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIG1ldGF0aW1pbmcgZnJvbSBkb2NzCgoyMDExLTEwLTI5IDA5OjI2OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFzazogYXBpIGNsZWFudXAKCSAgZ3N0X3Rhc2tfY3JlYXRlKCkgLT4gZ3N0X3Rhc2tfbmV3KCkKCjIwMTEtMTAtMjkgMDk6MDI6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogY2xlYW51cCBBUEkKCSAgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfaWRfZW1wdHkoKQoJICBnc3Rfc3RydWN0dXJlX2lkX25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2lkKCkKCjIwMTEtMTAtMjkgMDg6Mzg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiByZW1vdmUgdGltaW5nIG1ldGFkYXRhCgkgIFRoaXMgaXMgbm93IG9uIGJ1ZmZlcnMgYnkgZGVmYXVsdAoKMjAxMS0xMC0yOSAwODoyNDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGNsZWFuIHVwIEFQSQoJICBnc3RfYnVmZmVyX2xpc3RfbGVuKCkgLT4gZ3N0X2J1ZmZlcl9saXN0X2xlbmd0aCgpCgkgIGdzdF9idWZmZXJfbGlzdF9zaXplZF9uZXcoKSAtPiBnc3RfYnVmZmVyX2xpc3RfbmV3X3NpemVkKCkKCjIwMTEtMTEtMDEgMTQ6MTc6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHNpbXBsaWZ5IGdzdF9hZGFwdGVyX3Rha2VfbGlzdCgpCgkgIFVzZSBhIHN0YWNrLWFsbG9jYXRlZCBHUXVldWUgdG8gYXNzZW1ibGUgb3VyIEdMaXN0LgoKMjAxMS0xMS0wMSAxMDo1NjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIEdzdEFjdGl2YXRlTW9kZSByZW5hbWUgaW4gcG9ydGluZyBkb2MKCjIwMTEtMTEtMDEgMDA6MjU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgR3N0QWN0aXZhdGVNb2RlIHRvIEdzdFBhZEFjdGl2YXRlTW9kZQoJICBUaGVzZSBtaWdodCBiZSB1c2VmdWw6CgkgIHNlZCAtaSAtZSAncy9Hc3RBY3RpdmF0ZU1vZGUvR3N0UGFkQWN0aXZhdGVNb2RlL2cnIGBnaXQgZ3JlcCBHc3RBY3RpdmF0ZU1vZGUgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dTVF9BQ1RJVkFURV8vR1NUX1BBRF9BQ1RJVkFURV8vZycgICAgYGdpdCBncmVwIEdTVF9BQ1RJVkFURV8gICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoKMjAxMS0xMS0wMSAwMDoxMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgR3N0UHJvYmVUeXBlIGFuZCBHc3RQcm9iZVJldHVybiB0byBHc3RQYWRQcm9iZXtUeXBlLFJldHVybn0KCSAgQmV0dGVyIG5vdyB0aGFuIGxhdGVyIGluIHRoZSBjeWNsZS4gVGhlc2UgbWlnaHQgY29tZSBpbiBoYW5keToKCSAgc2VkIC1pIC1lICdzL0dzdFByb2JlUmV0dXJuL0dzdFBhZFByb2JlUmV0dXJuL2cnICAgYGdpdCBncmVwIEdzdFByb2JlUmV0dXJuICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR1NUX1BST0JFXy9HU1RfUEFEX1BST0JFXy9nJyAgICAgICAgICBgZ2l0IGdyZXAgR1NUX1BST0JFXyAgICAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9Hc3RQcm9iZVR5cGUvR3N0UGFkUHJvYmVUeXBlL2cnICAgICAgIGBnaXQgZ3JlcCBHc3RQcm9iZVR5cGUgICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCjIwMTEtMTAtMzEgMjM6MzI6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBnc3RfdGFnX2xpc3RfZ2V0Xypsb25nKigpCgkgIE5vIG9uZSB1c2VzIHRoaXMgb3Igc2hvdWxkIGV2ZXIgbmVlZCB0byB1c2UgaXQsIHNpbmNlCgkgIHRoZSBzaXplIGlzIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBhbnl3YXkuIElmIG5vcm1hbAoJICBpbnRlZ2VycyBkb24ndCBkbywgb25lIHNob3VsZCB1c2UgNjQtYml0IGludGVnZXJzLgoKMjAxMS0xMC0zMSAxOTowNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlIC5kZWYgZmlsZSBmb3IgcmVtb3ZlZC9jaGFuZ2VkIEFQSQoKMjAxMS0xMC0zMSAxOToyMzo0MSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggY3Jhc2gvd2FybmluZyBpbiBmaW5kX3RyYW5zZm9ybSB3aGVuIHBhZCBpcyB1bmxpbmtlZAoJICBMb29rcyBsaWtlIHRoZSByZXZlcnQgY29uZmxpY3QgaW4gY29tbWl0IGE0NDI3MSB3YXMgcmVzb2x2ZWQgaW5jb3JyZWN0bHkuCgoyMDExLTEwLTMxIDE3OjQ1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IG1ha2UgR0xJQl9FWFRSQV9DRkxBR1Mgb3ZlcndyaXRhYmxlCgkgIE1ha2UgJ21ha2UgR0xJQl9FWFRSQV9DRkxBR1M9Li4uJyB3b3JrLgoKMjAxMS0xMC0zMSAxNDoxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZmlsdGVyOiByZW1vdmUgZ3N0X2ZpbHRlcl9ydW4oKSBhbmQgZGVwcmVjYXRlZCBmaWx0ZXIgZnVuYwoJICBJZiBzb21lb25lIHdhbnRzIHRvIHJlc3VycmVjdCB0aGlzLCBwbGVhc2UgdXNlIGEgbGVzcwoJICBnZW5lcmljIG5hbWUgc3BhY2UgZm9yIGl0LgoKMjAxMS0xMC0zMSAxNDowMzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jCgoyMDExLTEwLTMwIDEwOjI2OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGFnbGlzdDogcmVuYW1lIF9uZXcoKSB0byBfbmV3X2VtcHR5KCkgYW5kIG5ld19mdWxsKigpIHRvIG5ldyooKQoKMjAxMS0xMC0zMCAyMTo1NDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSAgZmlsdGVyOiBkZXByZWNhdGUgZ3N0X2ZpbHRlcl9ydW4oKQoJICBJdCdzIG5vdCByZWFsbHkgdXNlZCBvdXRzaWRlIG9mIGNvcmUgYXQgYWxsLCBhbmQgaGFzCgkgIHNlcmlvdXMgbmFtZXNwYWNlIGlzc3Vlcy4gSWYgYW55b25lIGZlZWxzIHRoZSBuZWVkIHRvCgkgIHJldml2ZSB0aGlzIG9uZSwgcGxlYXNlIHVzZSBhIGxlc3MgZ2VuZXJpYyBuYW1lIHNwYWNlLgoJICBBUEk6IGRlcHJlY2F0ZSBnc3RfZmlsdGVyX3J1bigpCgkgIEFQSTogZGVwcmVjYXRlIEdzdEZpbHRlckZ1bmMKCjIwMTEtMTAtMzAgMjE6Mzk6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCB1c2Ugc29vbi10by1iZS1kZXByZWNhdGVkIGdzdF9maWx0ZXJfcnVuKCkKCSAgTGluZXMtb2YtY29kZSBzYXZpbmdzIGFyZSBuZWdsaWdpYmxlIGFueXdheS4KCjIwMTEtMTAtMzAgMjE6MjE6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHBsdWdpbmZlYXR1cmU6IGRlcHJlY2F0ZSBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcigpCgkgIEl0J3Mgb25seSB1c2VkIGludGVybmFsbHkgYW55d2F5IGFuZCB0aGUgaGVscGVyIHN0cnVjdAoJICBoYXMgbmFtZXNwYWNlIGlzc3Vlcy4KCSAgQVBJOiBkZXByZWNhdGVkIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyKCkKCSAgQVBJOiBkZXByZWNhdGVkIEdzdFR5cGVOYW1lRGF0YQoKMjAxMS0xMC0zMCAxMDowNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIG9wYXF1ZQoJICBIaWRlIHRoZSBmYWN0IHRoYXQgaXQncyBqdXN0IGEgR3N0U3RydWN0dXJlIGZyb20gdGhlIEFQSS4gV2UKCSAgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgaW4gZnV0dXJlIChlLmcuIHRvIGFkZCByZWZjb3VudGluZykuCgkgIEFsc28sIGl0IGNhdXNlZCBwcm9ibGVtcyBmb3IgYmluZGluZ3MgKHRob3VnaCB0aGF0J3MgbW9zdGx5CgkgIHRoZSB3YXkgd2UgdHlwZWRlZmVkIGl0IHRvIEdzdFN0cnVjdHVyZSkuCgoyMDExLTEwLTMwIDEwOjAwOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0zMCAwOTo1ODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgdG9fc3RyaW5nIGFuZCBuZXdfZnJvbV9zdHJpbmcgZnVuY3Rpb25zCgkgIFdlIHdhbnQgdG8gbWFrZSBHc3RUYWdMaXN0IG9wYXF1ZSBhbmQgbm90IGhhdmUgcGVvcGxlIHVzZQoJICBHc3RTdHJ1Y3R1cmUgQVBJIG9uIGl0LgoJICBBUEk6IGdzdF90YWdfbGlzdF90b19zdHJpbmcoKQoJICBBUEk6IGdzdF90YWdfbGlzdF9uZXdfZnJvbV9zdHJpbmcoKQoKMjAxMS0xMC0zMCAwOTozMTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMzAgMDE6NDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgcG9pbnRsZXNzIHRhZyBuYW1lIC0+IHF1YXJrIGxvb2t1cHMKCSAgV2UgbmV2ZXIgZ2V0IGEgdGFnIG5hbWUgcXVhcmsgZnJvbSBhIGNhbGxlciwgaXQncyBhbHdheXMgYQoJICBzdHJpbmcsIGZyb20gd2hpY2ggd2UnbGwgdHJ5IHRvIGxvb2sgdXAgb3VyIHRhZyBpbmZvIGluIHRoZQoJICBoYXNoIHRhYmxlLCBzbyBjaGFuZ2UgdGhlIGhhc2ggdGFibGUga2V5IGZyb20gcXVhcmsgdG8gc3RyaW5nLgoJICBBdm9pZHMgYSBidW5jaCBvZiBwb2ludGxlc3Mgc3RyaW5nID0+IHF1YXJrIGxvb2t1cCBpbiB0aGUKCSAgZ2xvYmFsIHF1YXJrIHRhYmxlLiBXZSBuZWVkIHRvIGRvIGFuIGV4dHJhIHN0cmluZyA9PiBxdWFyawoJICBjb252ZXJzaW9uIG5vdyB3aGVuIHdlIGNvcHkgYSB0YWdsaXN0LCBidXQgaW4gdGhhdCBjYXNlIHdlJ3JlCgkgIGluIGEgc2xvdyBwYXRoIGFueXdheS4KCjIwMTEtMTAtMzAgMDA6NDQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGdzdF90YWdfbGlzdF9pc19lcXVhbCgpCgkgIEFQSTogZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkKCjIwMTEtMTAtMjkgMjM6NTI6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGlkZW50aWNhbCBzdHJ1Y3R1cmVzIGFyZSBkZWZpbml0ZWx5IGVxdWFsCgoyMDExLTEwLTI5IDIwOjA2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzdHJpbmcgZm9yIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMgaXQgd2FzIG1hcHBlZCB0byBhIG11c2ljYnJhaW56IHByZWZpeCwKCSAgYnV0IGl0J3Mgbm90IHJlYWxseSBtdXNpY2JyYWluei1zcGVjaWZpYyBhdCBhbGwuCgoyMDExLTEwLTI5IDE5OjU5OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IG1vdmUgcHJpdmF0ZSBmdW5jdGlvbnMgZm9yIHJlZ2lzdHJ5IHRvIHByaXZhdGUgaGVhZGVyCgoyMDExLTEwLTI4IDIxOjQwOjQ3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBpbnZhbGlkIGFjY2VzcyB0byB1bnJlZmZlZCBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDExLTEwLTI4IDE2OjQ1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGZpeCBkb2NzIHNvbWUgbW9yZQoKMjAxMS0xMC0yOCAxNjoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMC0yOCAxNjowODozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggc2VnbWVudCBjaGVjawoKMjAxMS0xMC0yOCAxNTo1Mjo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHJlbW92ZSBHU1RfU0VFS19UWVBFX0NVUgoKMjAxMS0xMC0yOCAxNTo1Mjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMjggMTM6MDI6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEzOjAyOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkgIGJpdHJlYWRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTM6MDI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEyOjMxOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTI4IDEyOjI4OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlCgoyMDExLTEwLTI4IDEyOjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTEtMTAtMjggMTI6MTc6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY2hlY2s6IGFsc28gZGVidWcgdGhlIERUUwoKMjAxMS0xMC0yOCAxMjoxNjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogdXNlIHB0cy9kdHMgb24gYnVmZmVycwoKMjAxMS0xMC0yOCAxMjoyNDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiBhZGQgdGltZXN0YW1wIGNvbXBhdCBkZWZpbmVzCgoyMDExLTEwLTI4IDEyOjE1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGJ1ZmZlcjogYWRkIHB0cy9kdHMgdG8gYnVmZmVycwoKMjAxMS0xMC0yOCAxMTo1MzozMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxzbyBmdXNoIHRoZSBjYWNoZSB3aGVuIGNoYW5naW5nIHRoZSB1cHN0cmVhbSBjYXBzIHN1Z2dlc3Rpb24KCjIwMTEtMTAtMjggMTE6NTA6MjMgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBkZWJ1ZyBvdXRwdXQgd2hlbiByZXR1cm5pbmcgYSBjYWNoZWQgdHJhbnNmb3JtCgoyMDExLTEwLTI4IDExOjMzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0yOCAxMTozMDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvb2xlY3RwYWRzMjogcG9ydCB0byAwLjExCgoyMDExLTEwLTI4IDExOjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0yOCAxMDo1NDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IEZpeCByZWZjb3VudCBoYW5kbGluZyBpZiBhIGJ1ZmZlciB3YXMgZHJvcHBlZCBkdWUgdG8gY2xpcHBpbmcKCjIwMTEtMTAtMjggMTA6Mzc6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczI6IE1lcmdlIHRoZSBjbGlwIGFuZCBwcmVwYXJlX2J1ZmZlciBmdW5jdGlvbiBpbnRvIG9uZQoKMjAxMS0xMC0yOCAxMDoxNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IE1lcmdlIGNsaXBwaW5nIEFQSSBmcm9tIG9sZCBjb2xsZWN0cGFkcwoKMjAxMS0xMC0yOCAwOToxOToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGRlZmF1bHQgcXVlcnkgZnVuY3Rpb24gbmFtZSBzaG93IHVwIGluIGdzdC1pbnNwZWN0CgoyMDExLTA5LTI3IDE1OjQ4OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYXZvaWQgaGFuZ2luZyBpbiBjYXNlIG9mIHNwYXJzZSBuZXdzZWdtZW50IGV2ZW50cwoJICAuLi4gaW4gdGhlIGV4dGVudCB0aGF0IGEgbm9uLXdhaXRpbmcgcGFkIChzbyBpbmRpY2F0ZWQgYnkgbmV3c2VnbWVudCkKCSAgdHVybnMgb3V0IHRvIHByb3ZpZGUgdGhlIGJlc3QgYnVmZmVyLCB3aGljaCBpcyB0aGVuIGZvcmNlZCB0byB3YWl0aW5nCgkgIGZvciBib29rLWtlZXBpbmcgcHVycG9zZXMsIGJ1dCB0aGF0IHNob3VsZCBvbmx5IGJlIHRlbXBvcmFyeS4KCSAgU2VlIGJ1ZyAjNDE1NzU0LgoKMjAxMS0xMC0yOCAwOTozODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTEwLTI4IDA5OjM1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGNvbGxlY3RwYWRzMjogQWRkIHRvIHRoZSBkb2N1bWVudGF0aW9uCgoyMDExLTEwLTI4IDA5OjI2OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgY29sbGVjdHBhZHMyIEFQSQoKMjAxMS0xMC0yOCAwOToxODo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBiYXNlOiBBZGQgY29sbGVjdHBhZHMyCgkgIFRoaXMgaGFuZGxlcyBtdXhpbmcgb2Ygc3BhcnNlL3N1YnRpdGxlIHN0cmVhbXMgYW5kIGhhcwoJICBsb3RzIG9mIGNsZWFudXAuIFN0aWxsIG1pc3NpbmcgaXMgc3BlY2lhbCBzdXBwb3J0IGZvcgoJICBsaXZlIHN0cmVhbXMgYnV0IHRoaXMgY2FuIGJlIGFkZGVkIGxhdGVyIHdpdGhvdXQgYnJlYWtpbmcKCSAgQVBJL0FCSS4KCSAgQmFzZWQgb24gdGhlIHZlcnNpb24gZnJvbSB0aGUgdmlkZW9taXhlciBwbHVnaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MTU3NTQKCjIwMTEtMTAtMjcgMTc6MDk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjcgMTc6MDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTEwLTI3IDE3OjA5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogYWRkIGVtcHR5X3NpbXBsZSB2YXJpYW50cwoKMjAxMS0xMC0yNyAxNjo1MToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjcgMTQ6NTY6MjQgKzAxMDAgIEpvaGFuIEJvdWzDqSA8Ym9oYW4uZ25vbWVAcmV0cm9wYWdhbmRhLmluZm8+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRCBmb3IgZ3N0X2NhcHNfbmV3X3NpbXBsZSgpIGFuZCBnc3RfY2Fwc19uZXdfZnVsbCgpCgkgIElmIHlvdSBnZXQgd2FybmluZ3MsIHVzZSBnc3RfY2Fwc19uZXdfZW1wdHkoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTM0MzM0NgoKMjAxMS0xMC0yNyAxNToyNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMC0yNyAxMzoyNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogdXNlIEdfR05VQ19OVUxMX1RFUk1JTkFURUQgZm9yIGdzdF9zdHJ1Y3R1cmVfbmV3KCkKCSAgSWYgeW91IGdldCBhIHdhcm5pbmcsIHVzZSBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMzQ2CgoyMDExLTEwLTI3IDIzOjA4OjE0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IHJlZmNvdW50IGxlYWsKCSAgRG9uJ3QgbGVhayBwZWVyY2FwcyBhbmQgYSByZWYgdG8gdGhlIGJhc2V0cmFuc2Zvcm0gd2hlbiByZXR1cm5pbmcKCSAgdGhlIGNhY2hlZCBjYXBzLgoKMjAxMS0xMC0yNyAxMDozODoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggd3Jvbmcgb3JkZXIgb2YgY2FsbHMgaW4gdGhlIGRvY3MuCgoyMDExLTEwLTI2IDEyOjIzOjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBjbGFyaWZ5IGRvY3MgZm9yIHN0ZXAgZXZlbnQKCjIwMTEtMTAtMTggMjM6MTk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhZGQgc3VwcG9ydCBmb3IgR1NUX1JFR0lTVFJZX1JFVVNFX1BMVUdJTl9TQ0FOTkVSPW5vCgkgIFRoaXMgd2lsbCBtYWtlIHN1cmUgd2Ugc3Bhd24gYSBuZXcgcGx1Z2luIHNjYW5uZXIgaGVscGVyIGZvciBlYWNoIHBsdWdpbgoJICB0byBiZSBpbnRyb3NwZWN0ZWQsIHdoaWNoIGhlbHBzIHdpdGggbWFraW5nIHN1cmUgd2UgZG9uJ3QgbG9hZCB0b28gbWFueQoJICBzaGFyZWQgb2JqZWN0cyAobGlicywgcGx1Z2lucykgYXQgdGhlIHNhbWUgdGltZSBvbiBzeXN0ZW1zIHdoZXJlIHRoZXJlCgkgIGlzIGEgaGFyZCBsaW1pdCBsaWtlIG9uIEFuZHJvaWQuCgkgIEEgYmV0dGVyIHZlcnNpb24gbWlnaHQgcmUtdXNlIHRoZSBzY2FubmVyIGZvciB1cCB0byBOIHRpbWVzLCB0aG91Z2gKCSAgaXQncyBub3QgY2xlYXIgd2hldGhlciB0aGF0IHdvdWxkIGFjdHVhbGx5IGltcHJvdmUgdGhpbmdzIGRyYW1hdGljYWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjA5MQoKMjAxMS0xMC0yMSAxMDoyMzowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTm8gbmVlZCB0byByZXF1aXJlIHdyaXRhYmxlIGNhcHMgZm9yIF9hcHBlbmQvX21lcmdlIHNlY29uZCBjYXBzCgkgIFRoZSBzZWNvbmQgY2FwcyBvd25lcnNoaXAgaXMgdHJhbnNmZXJlZCwgbm8gbmVlZCB0byByZXF1aXJlIGl0IHRvCgkgIGJlIHdyaXRhYmxlIGZyb20gdGhlIGNhbGxlciBmdW5jdGlvbi4gSW5zdGVhZCwgX2FwcGVuZCBhbmQgX21lcmdlCgkgIG1ha2UgaXQgd3JpdGFibGUgb24gdGhlaXIgb3duLgoJICBEaXNjb3ZlcmVkIGJlY2F1c2Ugb2YgYW4gYXNzZXJ0aW9uIG9uIGVuY29kaW5nLXByb2ZpbGUuYyBpbgoJICBfZ2V0X2lucHV0X2NhcHMgdXNpbmcgX21lcmdlIGJ1dCBub3QgcGFzc2luZyB3cml0YWJsZSBjYXBzLgoKMjAxMS0xMC0yMSAxNDoyMDo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGludGVyZmFjZXM6IGNsZWFuIHVwIHRoZSB1c2Ugb2YgaWZhY2UgYW5kIGNsYXNzL2tsYXNzCgoyMDExLTEwLTIxIDExOjE1OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZG9jcy9yYW5kb20vc3RhdHVzLTAuMTEtMTQtanVuLTIwMTEudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogc3BlbGxpbmcgYW5kIGZvcm1hdHRpbmcgZml4ZXMKCjIwMTEtMTAtMjEgMTA6NTI6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2luZyBvcmlnaW4vbWFzdGVyCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJpbi5jCgkgIGdzdC9nc3RidXMuYwoJICBnc3QvZ3N0ZGVidWd1dGlscy5jCgkgIGdzdC9nc3RwYWQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTEwLTIwIDE2OjU5OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogRml4IGRvY3VtZW50YXRpb24sIGl0J3MgcHJlX3B1c2hfZnJhbWUgYW5kIG5vdCBwcmVfcHVzaF9idWZmZXIKCjIwMTEtMTAtMjAgMTQ6MDI6NDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNhY2hlIHRyYW5zZm9ybWVkIGNhcHMgd2hlcmUgYXBwcm9wcmlhdGUKCSAgU3BlZWRzIHVwIG5lZ290aWF0aW9uIGEgZmFpciBiaXQgb24gYSBjb250cml2ZWQgcGlwZWxpbmUKCSAgd2l0aCBhIGRvemVuIGNvbG9yc3BhY2UgY29udmVyc2lvbnMuCgkgIEhvcGVmdWxseSBjbGVhcnMgb3V0IHRoZSBjYWNoZSBldmVyeSB0aW1lIGl0IG91Z2h0IHRvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjkxCgoyMDExLTEwLTIwIDEwOjQ1OjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKCSogQW5kcm9pZC5tazoKCSAgRml4IGJyb2tlbiBhbmRyb2lkIGJ1aWxkaW5nIGR1ZSB0byBuYW1lIGNoYW5nZSBpbiAwMWQ4NzI1MGE4NDVlNTVkNgoKMjAxMS0xMC0yMCAwODozMToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlYmFyc2U6IEFkZCBkZXRlY3QgdmZ1bmMgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkbyBmb3JtYXQgZGV0ZWN0aW9uIGJlZm9yZSBhbnl0aGluZyBlbHNlCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OmRldGVjdCgpCgkgIFRoaXMgaXMgY2FsbGVkIHdpdGggdGhlIGZpcnN0IGJ1ZmZlcnMgdW50aWwgdGhlIHN1YmNsYXNzIGhhcyBmaW5pc2hlZCBkZXRlY3Rpb24KCSAgYW5kIG9ubHkgYWZ0ZXJ3YXJkcyB0aGUgb3JpZ2luYWwgYnVmZmVycyBhcmUgaGFuZGxlZCBhcyBiZWZvcmUuIFRoZSB2ZnVuYyBhbGxvd3MKCSAgZGV0ZWN0aW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0IHdpdGhvdXQgYnJlYWtpbmcgdGhlIHVwc3RyZWFtIGZyYW1pbmcuCgoyMDExLTEwLTIwIDA4OjU3OjU3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdCBvbmx5IGRlc2NyaWJlIGNvbmRpdGlvbnMgaW4gdGhlIGRvY3MsIGFsc28gY2hlY2sgdGhlbSBpbiB0aGUgY29kZQoJICBXaGVuIGJsb2NraW5nIHBhZHMsIGNoZWNrIGlmIHRoZSBwYWQgaXMgaW4gdGhlIHJpZ3QgZGlyZWN0aW9uLiBMb2cgc29tZSBpbmZvCgkgIGZvciB0aGUgZGV2ZWxvcGVyIGFuZCByZXR1cm4gRkFMU0UsIGluc3RlYWQgb2YganVzdCBsb2NraW5nIHVwLgoKMjAxMS0xMC0xOSAyMzowNzo0NiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmV2ZXJ0IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfbmFtZSB0byBjb25zdCBzdHJpbmcgcmV0dXJuCgkgIFJldHVybmluZyBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgbWFrZXMgbm8gc2Vuc2UuIEl0J3MgdW5leHBlY3RlZCBmb3IgYQoJICBnZXR0ZXIsIGFuZCBhbHNvIHRoaXMgYmVoYXZlcyBkaWZmZXJlbnRseSBpbiAwLjEwLCBzbyBpdCB3b3VsZCBtYWtlIGZ1dHVyZQoJICBtZXJnZXMgaGFyZGVyLgoJICBFeGNlcHQgZm9yIHRoZXNlIHR3byBwbGFjZXMgaGVyZSBpbiBjb3JlIHdoaWNoIHdlcmUgdXBkYXRlZCBmb3IgdGhlIG5ldwoJICBzZW1hbnRpYywgdGhlIHJldHVybiB2YWx1ZSBpcyBnZXR0aW5nIGxlYWtlZCBhbGwgb3ZlciB0aGUgcGxhY2UuCgoyMDExLTEwLTE5IDEyOjEyOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBZGQgKHNraXApIGFubm90YXRpb24gdG8gZ3N0X29iamVjdF9yZWZfc2luawoKMjAxMS0xMC0xOSAxMTo1OToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgZ3N0aXRlcmF0b3I6IEFkZCBza2lwIGFubm90YXRpb24gZm9yIGNyZWF0aW5nIEdzdEl0ZXJhdG9yCgkgIE5vdCByZWFsbHkgdXNlZnVsIGZvciBiaW5kaW5ncwoKMjAxMS0wOC0yOSAxMzo1NjoxOSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIGdzdF9wb2xsIGFwaXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1NToxMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBHVHlwZSBhbmQgR1ZhbHVlIHRyYW5zZm9ybSBhcGlzCgkgIFRoZXNlIGRvIG5vdCBtYWtlIHNlbnNlIHRvIGV4cG9zZSB0byBsYW5ndWFnZSBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjU0OjIxIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwCgkgIEl0IHVzZXMgR09wdGlvbkdyb3VwIHdoaWNoIGlzIG5vdCB3cmFwcGFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MzozOSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgbWlzc2luZyBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUyOjI2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgaW50cm9zcGVjdGlvbjogUmVuYW1lIGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwgdG8gZ3N0X2J1c19hZGRfd2F0Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MDo0MCAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aW5kZXguaDoKCSAgU3luYyBkb2N1bWVudGF0aW9uIGFyZ3VtZW50cwoJICBUaGUgaW50cm9zcGVjdGlvbiBzY2FubmVyIHdhcm5zIGlmIHRoZSBoZWFkZXIgYW5kIHRoZSBzb3VyY2UKCSAgdXNlcyBtaXNtYXRjaGluZyBwYXJhbWV0ZXIgbmFtZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTA6MDIgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTEwLTE4IDE5OjIxOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBwcm90ZWN0IGFnYWluc3QgbnVsbCBtZXNzYWdlIHNvdXJjZXMKCSAgTWVzc2FnZSBzb3VyY2VzIGNhbiBiZSBudWxsLCBjaGVjayBpZiBpdCBpcyBiZWZvcmUgdHJ5aW5nIHRvCgkgIGFjY2VzcyBpdHMgbmFtZS4KCjIwMTEtMTAtMTggMDg6NDg6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHNpbmNlIGRvYyB0byBuZXcgZ2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0xMC0xOCAxNDowODoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZ2dpbmc6IG1vcmUgbG9nZ2luZyBhbmQgcHJlZmVyIGh1bWFuIHJlYWRhYmxlIGRldGFpbHMgb3ZlciBtZW1vcnkgbG9jYXRpb25zCgoyMDExLTEwLTE4IDE0OjA1OjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogaW1wcm92ZSBkaXNwbGF5IG9mIGdob3N0LSBhbmQgcHJveHlwYWRzCgkgIEhhbmRsZSB2aXJ0dWFsIGxpbmtzIGJldHdlZW4gZ2hvc3QgYW5kIHByb3h5cGFkcyB3aGVuIGl0ZXJhdGluZyBwYWRzIGluc3RlYWQgb2YKCSAgd2hlbiBsaW5raW5nLiBCZXNpZGVzIHVzaW5nIGxlc3MgY29kZSB0aGlzIHByb3ZpZGVzIGEgbW9yZSBhY2N1cmF0ZSBwaWN0dXJlLgoKMjAxMS0xMC0xOCAxMzo1NDo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBBZGQgZy1pIGFubm90YXRpb25zIGFuZCByZW1vdmUgIlNpbmNlOiIgbWFya2VycwoKMjAxMS0xMC0xNyAxNDo0MjowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgZ2V0Y2FwcyBmdW5jdGlvbgoJICBBZGRzIGEgZ2V0Y2FwcyBmdW5jdGlvbiB0byB0aGUgc2luayBwYWQgdG8gbWFrZSBwYXJzZXJzIHByb3BhZ2F0ZQoJICBkb3duc3RyZWFtIGNhcHMgcmVzdHJpY3Rpb25zIHRvIHVwc3RyZWFtLgoJICBUaGUgcGlwZWxpbmUgImF1ZGlvdGVzdHNyYyBudW0tYnVmZmVycz0xMDAgISBmYWFjICEgYWFjcGFyc2UgIQoJICAiYXVkaW8vbXBlZywgdmVyc2lvbj0oaW50KTQsIHN0cmVhbS1mb3JtYXQ9KHN0cmluZylhZHRzIiAhIGZpbGVzaW5rIgoJICB3b3VsZG4ndCB3b3JrIGJlY2F1c2UgYWFjcGFyc2Ugd291bGRuJ3QgcHJvcGFnYXRlIHRoZSBhZHRzIHJlc3RyaWN0aW9uCgkgIHVwc3RyZWFtIHRvIGZhYWMuCgkgIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmF1bHQgZ2V0Y2FwcyB0byB0aGUgc2luayBwYWQgdG8gc2ltcGx5IHByb3h5CgkgIGRvd25zdHJlYW0gY2FwcyBhbmQgYWxzbyBhZGRzIGEgJ2dldF9zaW5rX2NhcHMnIGZ1bmN0aW9uIHBvaW50ZXIKCSAgdG8gR3N0QmFzZVBhcnNlQ2xhc3MgZm9yIHN1YmNsYXNzZXMgdGhhdCBuZWVkIG1vcmUgcmVmaW5lZCBnZXRjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxODc0CgoyMDExLTEwLTE4IDEyOjM5OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFsc28gdXBkYXRlIHRoZSBzdHJlYW0gdGltZQoKMjAxMS0xMC0xOCAxMDo1ODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBoYW5kbGluZyBvZiBxdWV1ZWQgZnJhbWVzCgkgIGdzdF9iYXNlX3BhcnNlX3B1c2hfZnJhbWUoKSBhbHJlYWR5IGZyZWVzIHRoZSBmcmFtZSwgbm8gbmVlZCB0bwoJICBkbyBpdCBhbm90aGVyIHRpbWUgYWdhaW4uCgoyMDExLTEwLTE3IDIxOjM4OjU2ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGZpeCBwYWR0ZW1wbGF0ZSBsZWFrIGluIHNlbGVjdG9yIHRlc3QKCSAgSW4gMC4xMSwgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIHJldHVybnMgYSByZWZlcmVuY2UuCgoyMDExLTEwLTE3IDIxOjM3OjE3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBidWZmZXIvZXZlbnQgbGVhayB3aGVuIHBhZCBpcyBmbHVzaGluZwoJICBBcHBhcmVudGx5IHRoaXMgZ290IGxvc3Qgd2hpbGUgcmVmYWN0b3JpbmcgcHJvYmVzLgoKMjAxMS0xMC0xNyAxNzowMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHRoZSBtZW1vcnkgZnJvbSB0aGUgdG1wYnVmCgkgIFdlIHVzZSBhIHRtcGJ1ZiB0byBob2xkIGEgdGVtcG9yYXJ5IHBvaW50ZXIgdG8gdGhlIGFkYXB0ZXIgbWVtb3J5LiBXZSBuZWVkIHRvCgkgIHJlbW92ZSB0aGF0IG1lbW9yeSB3aGVuIHdlIG5vIGxvbmdlciBuZWVkIGl0LgoKMjAxMS0xMC0xNyAxMzo1NTozNSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCByYWNlIGNvbmRpdGlvbiBhbmQgbWVtb3J5IGxlYWsgaW4gZ3N0X3N0YXRpY19jYXBzX2dldAoJICBUaGlzIHdhcyBsZWFraW5nIHRoZSBQdHJBcnJheSBmcm9tIGNhcHMtPnByaXYsIGFzIHNldCB1cCBieSB0aGUgb3RoZXIgY2FsbCB0bwoJICBnc3RfY2Fwc19pbml0LiBBbHNvLCB0aGUgdGhyZWFkIHNhZmV0eSBpc3N1ZSBwcmVzZW50ZWQgaW4gdGhlIGNvbW1lbnQgYWJvdmUgd2FzCgkgIG5vdCB0YWtlbiBjYXJlIG9mIGFueW1vcmUuIFdlIG5vdyB6ZXJvIHRoZSByZWZjb3VudCBhZ2FpbiB3aGVuIHB1Ymxpc2hpbmcgdGhlCgkgIHN0cnVjdHVyZS4KCSAgRml4ZXMgIzY2MTYyOS4KCjIwMTEtMTAtMTcgMDk6Mjg6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IE1ha2UgQVNTRVJUX01JTklfT0JKRUNUX1JFRkNPVU5UIG1vcmUgdXNlZnVsCgkgIGtub3dpbmcgd2hpY2ggbWluaW9iamVjdCBmYWlsZWQgaGVscHMgdXMgbG9jYXRlIGl0IGluIGRlYnVnIGxvZ3MKCjIwMTEtMTAtMTcgMDk6Mjg6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IE1ha2UgX2NoZWNrX2J1ZmZlcl9kYXRhIGEgYml0IG1vcmUgdmVyYm9zZQoKMjAxMS0xMC0xNyAwOToyNzo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgY2hlY2s6IERvbid0IGxlYWsgdGhlIGZlYXR1cmUgbmFtZQoKMjAxMS0xMC0xNyAwOToyNzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZ3N0cmVnaXN0cnk6IERvbid0IGxlYWsgZmVhdHVyZSBuYW1lCgoyMDExLTEwLTE2IDIxOjEyOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBnaXZlIHdhdGNoIHNvdXJjZSBhIG5hbWUKCSAgR2l2ZSBvdXIgR1NvdXJjZSBhIG1lYW5pbmdmdWwgbmFtZS4gU291cmNlIG5hbWVzIGNhbiBiZQoJICB1c2VkIGZvciBkZWJ1Z2dpbmcgYW5kIHByb2ZpbGluZywgZm9yIGV4YW1wbGUgd2l0aAoJICBzeXN0ZW10YXAgb3IgZ2RiLgoKMjAxMS0xMC0xNCAwOTozNTowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIGdzdF9idWZmZXJfam9pbigpCgoyMDExLTEwLTE2IDE3OjQyOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xNiAxNzowMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTYgMTc6MDA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0xNiAxNDo0NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBmaXggbW9yZSBwYXJlbnRfY2xhc3MKCjIwMTEtMTAtMTYgMTQ6MjA6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGV2ZW50LmgKCjIwMTEtMTAtMTYgMTQ6MTc6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGNsZWFuIHVwIHBhcmVudF9jbGFzcwoKMjAxMS0xMC0xNCAxMjo1NzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhbiB1cCBwYXJlbnRfY2xhc3MgaGFuZGxpbmcKCjIwMTEtMTAtMTQgMDk6MzU6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdGJ1ZmZlcjogQWRkIHRyYW5zZmVyIGFubm90YXRpb25zIGZvciBnc3RfYnVmZmVyX2pvaW4oKQoKMjAxMS0xMC0xNCAwOToyNzozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZSBsaXN0CgoyMDExLTEwLTEzIDE3OjMzOjA2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0eXBvIGluIHRoZSBkb2NzCgoyMDExLTEwLTEzIDE2OjQ4OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogc2hvdyBpZiBhbiBlbGVtZW50IGlzIHN0YXRlLWxvY2tlZAoKMjAxMS0xMC0xMyAxNjo0MjoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgbG9nZ2luZzogdXNlIF9PQkpFQ1QgdmFyaWFudHMgbW9yZQoKMjAxMS0xMC0xMyAxMjoyMzo1OSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggY2FwcyBsZWFrCgoyMDExLTEwLTEzIDEwOjE5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBVc2UgYW4gaW5saW5lIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBtYWNybyBmb3IgZ3N0X2J1ZmZlcl9yZXBsYWNlKCkKCSAgVGhpcyBnaXZlcyB1cyB0eXBlIGNoZWNrcyBieSB0aGUgY29tcGlsZXIgYW5kIG1vcmUgdXNlZnVsIGNvbXBpbGVyIGVycm9ycy4KCjIwMTEtMTAtMTMgMTA6MTg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBVc2UgYW4gaW5saW5lIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBtYWNybyBmb3IgZ3N0X2V2ZW50X3JlcGxhY2UoKQoJICBUaGlzIGdpdmVzIHVzIHR5cGUgY2hlY2tzIGJ5IHRoZSBjb21waWxlciBhbmQgbW9yZSB1c2VmdWwgY29tcGlsZXIgZXJyb3JzLgoKMjAxMS0xMC0xMyAwODo1MTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0xMC0xMiAxODoxNDowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBEbyBub3QgdW5yZWYgdGhlIGludGVybmFsIHBhZCB0d2ljZQoJICBnX3ZhbHVlX3Vuc2V0IHNob3VsZCBhbHJlYWR5IHVucmVmIHRoZSBpbnRlcm5hbCBwcm94eXBhZCwgbm8KCSAgbmVlZCB0byBkbyBpdCBhZ2FpbgoKMjAxMS0xMC0xMiAxNzoxNzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcm9wZXJseSBhZGp1c3Qgc3RhcnQgdGltZQoJICBXaGVuIHdlIGRvIGEgbm9uLWZsdXNoaW5nIHNlZWsgYW5kIGNsb3NlZCB0aGUgY3VycmVudCBzZWdtZW50LAoJICBtYWtlIHN1cmUgdGhhdCB3ZSBvcGVuIHRoZSBuZXh0IHNlZ21lbnQgZnJvbSB3aGVyZSB3ZSBjbG9zZWQuCgoyMDExLTEwLTEyIDE0OjM3OjMxICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgdHJhbnNmZXIgdHlwZSBmb3IgZ3N0X2V2ZW50X25ld19jYXBzIGFyZ3VtZW50CgkgIFRoZXNlIGFubm90YXRpb25zIGFyZSB1c2VmdWwgdG8gaHVtYW5zIGFzIHdlbGwuLi4KCjIwMTEtMTAtMTIgMTQ6MzQ6MjQgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IGNhcHMgbGVhawoJICBnc3RfZXZlbnRfbmV3X2NhcHMgZG9lcyBub3Qgc3RlYWwgYSByZWZlcmVuY2UgdG8gdGhlIGNhcHMuCgoyMDExLTEwLTEyIDEzOjMxOjQ4ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZ3N0X2V2ZW50X25ld19zZWdtZW50IHRyYW5zZmVyIHR5cGUKCjIwMTEtMTAtMTEgMTM6NTQ6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IEZpeCBtb3JlIGxlYWtzCgoyMDExLTEwLTExIDEzOjUzOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBEb24ndCBsZWFrIGNhcHMKCjIwMTEtMTAtMTEgMTM6NTE6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBhIGNhcHMgbGVhayBhbmQgbW92ZSBhIGNvZGVibG9jawoJICBUaGUgcmVzdWx0IGZyb20gdGhlIGJsb2NrIG9mIGNvZGUgdGhhdCB3YXMgbW92ZWQgd291bGQgb25seSBoYXZlCgkgIGJlZW4gdXNlZCBpZiAncGVlcmNhcHMnIHdhcyBwcmVzZW50LgoKMjAxMS0xMC0xMSAxMzo1MTozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogTW9yZSAndHJhbnNmZXInIGFubm90YXRpb25zCgoyMDExLTEwLTEwIDE5OjQxOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogY2F0Y2ggaW52YWxpZCBpbnN0YW5jZSBzaXplcyBpbiBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIEFkZCBndWFyZHMgdG8gY2F0Y2ggb3Zlcmx5IGxhcmdlIGluc3RhbmNlIHNpemVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwOTU1CgoyMDExLTEwLTEwIDE5OjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwoKQoJICBJdCB3YXMgb25seSByZWFsbHkgdXNlZCBieSBHU1RfQk9JTEVSUExBVEUsIGFuZCB0aGF0IGlzIG5vIG1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA5NTUKCjIwMTEtMTAtMTAgMTE6NDc6NDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCB0cnlpbmcgdG8gYWxsb2MgZW5vcm1vdXMgYnVmZmVyCgkgIElmIGEgY2xhc3MgZXh0ZW5kaW5nIGJhc2VzcmMgZG9lc24ndCBzZXQgYmxvY2tzaXplLCBiYXNlc3JjCgkgIHdvdWxkIHRyeSB0byBhbGxvY2F0ZSBhIChndWludCktMSBzaXplZCBidWZmZXIsIHdoaWNoIGlzIGVub3Jtb3VzCgkgIGFuZCBsaWtlbHkgd291bGQgZmFpbC4KCSAgQXZvaWQgaXQgYW5kIGVycm9yIG91dC4KCjIwMTEtMTAtMTAgMTc6MTc6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxNzowNDozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IElmIHdlIGRvbid0IGNvbnRyb2wgYSBwYWQvdGVtcGxhdGUsIHJldHVybiBwcm9wZXIgY2FwcwoJICBJZiB0aGVyZSdzIGEgZmlsdGVyLCB3ZSBjYW4gcmV0dXJuIHRoYXQgaW4gX2dldF9jYXBzKCkKCjIwMTEtMTAtMTAgMTY6NTI6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFNwZWNpZnkgdHJhbnNmZXIgZnVsbCBmb3IgZ3N0X3BhZF9nZXRfY2FwcygpCgkgIEl0IGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgcmV0dXJuZWQgY2Fwcy4KCjIwMTEtMTAtMTAgMTE6MDI6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFkZCBkZWJ1ZyB0byBrbm93IHdoYXQgZXZlbnRzIGFyZSB0cmFuc2ZlcnJlZCBiZXR3ZWVuIHBhZHMKCjIwMTEtMTAtMTAgMTA6Mzg6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFVuc2V0IEVPUyBldmVudCBvbiBGTFVTSF9TVE9QCgoyMDExLTEwLTA3IDExOjQ5OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBEb24ndCBpZ25vcmUgZG93bnN0cmVhbSBGbG93UmV0dXJuIHdpdGggSURMRSBwcm9iZXMKCSAgSWYgcHVzaGdpbiBkb3duc3RyZWFtIHJldHVybmVkIGEgbm9uLW9rIHZhbHVlIChsaWtlIEdTVF9GTE9XX1dST05HX1NUQVRFKSwKCSAgd2UgZG9uJ3Qgd2FudCB0byBlbmQgdXAgcmV0dXJuaW5nIGEgZGlmZmVyZW50IHZhbHVlIChHU1RfRkxPV19PSyBpbiB0aGlzCgkgIGNhc2UpIGlmIElETEUgcHJvYmVzIGFyZSBwcmVzZW50LgoKMjAxMS0xMC0xMCAxMzoyMzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6NTQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjM4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjoyNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTE6NDk6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDExOjM2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IGFkZCBjb21wYXQgZGVmaW5lIGZvciBVTkVYUEVDVEVECgoyMDExLTEwLTEwIDExOjMzOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEdTVF9GTE9XX1VORVhQRUNURUQgLT4gR1NUX0ZMT1dfRU9TCgoyMDExLTEwLTEwIDExOjMwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0wOSAxMTo0OTo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlc3RzOiB0ZWU6IFJlbWVtYmVyIHRvIGluaXRpYWxpemUgdmFyaWFibGVzIHRvIE5VTEwKCSAgYXBwX3RocmVhZCBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB0byBOVUxMLCBvdGhlcndpc2UgdGVzdHMKCSAgd2lsbCB0cnkgdG8gdXNlIGl0IGFuZCBjcmFzaAoKMjAxMS0xMC0wOCAyMDo1Njo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gZm9yIGNoZWNrLWV4cG9ydHMgc2NyaXB0IGNoYW5nZXMKCjIwMTEtMTAtMDggMjA6NDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50ZmFjdG9yeTogZG9uJ3QgZXhwb3J0IHByaXZhdGUgX2dzdF9lbGVtZW50Y2xhc3NfZmFjdG9yeSBxdWFyawoKMjAxMS0xMC0wOCAyMDoxNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtYWtlIF9nc3RfZGVidWdfaW5pdCgpIHByaXZhdGUgZm9yIG5vdwoJICBUaGlzIHdhcyBhIEZJWE1FIGZvciAwLjExLiBJIGd1ZXNzIGEgY2FzZSBjb3VsZCBiZSBtYWRlIHRvIGtlZXAgaXQgYXJvdW5kCgkgIHNlcGFyYXRlbHkgZm9yIGFwcHMgb3IgbGlicmFyaWVzIHRoYXQgb25seSB3YW50IHRvIHVzZSBHU3RyZWFtZXIncyBkZWJ1Z2dpbmcKCSAgc3lzdGVtLCBidXQgaXQgc2VlbXMgbW9yZSBsaWtlbHkgdGhleSdkIGp1c3QgY29weSB0aGUgdHdvIHNvdXJjZSBmaWxlcyBpbnRvCgkgIHRoZWlyIG93biB0cmVlIGlmIHRoZSBjYXNlLiBBbHNvLCB0aGluZ3MgbGlrZSB0eXBlcyB3b3VsZG4ndCBiZSBpbml0aWFsaXNlZAoJICB3aXRob3V0IGdzdF9pbml0KCkuIFdlIGNhbiBzdGlsbCBtYWtlIGl0IHB1YmxpYyBhZ2FpbiBpZiBhbnlvbmUgbmVlZHMgaXQsCgkgIGJ1dCB0aGVuIHdlIHNob3VsZCBtYWtlIGl0IGEgcHJvcGVyIGZ1bmN0aW9uIGFuZCBub3QgaGlkZSBpdCBiZWhpbmQKCSAgdW5kZXJzY29yZXMuCgoyMDExLTEwLTA4IDE5OjU0OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gc3ltYm9sLWV4cG9ydHMKCjIwMTEtMTAtMDggMTQ6MTc6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBnc3RwYXJzZTogcHJlZml4IGdlbmVyYXRlZCBwYXJzZXIgZnVuY3Rpb25zIHNvIHRoZXkgZG9uJ3QgZ2V0IGV4cG9ydGVkCgkgIERvbid0IGV4cG9ydCB0aG9zZSAzNS1zb21ldGhpbmcgcmFuZG9tIF9nc3RfcGFyc2VfeXkqIHN5bWJvbHMuIFRoZXNlIHdlcmUKCSAgbmV2ZXIgaW4gYW55IGhlYWRlciBmaWxlcyBhbmQgYWxzbyBibGFja2xpc3RlZCBmcm9tIG91ciAuZGVmIGZpbGVzLCBpbgoJICBjYXNlIGFueW9uZSB3b25kZXJzLgoKMjAxMS0xMC0wOCAxMzozNzowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IHJlbmFtZSBfX2dzdF9kZWJ1Z18qIHRvIF9nc3RfZGVidWdfKiBhbmQgZml4IHN5bWJvbCBleHBvcnQgcmVnZXhwCgkgIE9ubHkgZXhwb3J0IEdTdHJlYW1lciBzeW1ib2xzIHdpdGggb25lIGxlYWRpbmcgdW5kZXJzY29yZSwgbm90IHR3bwoJICBvciBtb3JlIGxlYWRpbmcgdW5kZXJzY29yZXMuCgkgIFJlcXVpcmVzIGEgcmVidWlsZCBvZiB0aGUgZW50aXJlIHN0YWNrLCBzb3JyeS4KCjIwMTEtMTAtMDggMTU6MTY6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGRvYwoKMjAxMS0xMC0wOCAxNDoyNTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDggMTQ6MjM6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTA4IDEyOjA4OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wOCAwOTo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0wOCAwOToyODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTEtMTAtMDcgMDk6NDU6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVXNlIHBpcGVsaW5lIGNhdGVnb3J5IGZvciBvbmUgbW9yZSBsb2cgbWVzc2FnZQoJICBNYWtlcyBkZWJ1Z2dpbmcgZWFzaWVyLgoKMjAxMS0xMC0wNyAxNjozNjoxMCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBHU1RfUFRSX0ZPUk1BVDogQWRkIEdzdEJ1ZmZlciBwdHIgZm9ybWF0IGFuZCB1c2UgaW4gR1NUX1NDSEVEVUxJTkcKCSAgR3N0QnVmZmVyIHBvaW50ZXJzIGNhbiBub3cgYmUgcHJpbnRlZCB1c2luZyBHU1RfUFRSX0ZPUk1BVC4gVGhpcyBpcyB1c2VkCgkgIGluIHRoZSB2ZXJ5IHVzZWZ1bCBHU1RfU0NIRURVTElORyBkZWJ1ZyBsb2dzIGluIGdzdHBhZC5jIGFuZCBhbGxvd3MgZm9yCgkgIGVhc2llciBhbmQgbW9yZSBpbmZvcm1hdGlvbiB0cmFja2luZyBvZiBidWZmZXIgcHJvZ3Jlc3MgdGhyb3VnaCBhCgkgIHBpcGVsaW5lIHdpdGgganVzdCBkZWJ1ZyBsb2dnaW5nLgoKMjAxMS0xMC0wNyAxMzo1NToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZ3MgaW4gc2lua3MgdGVzdAoKMjAxMS0xMC0wNyAxMzo1NDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBtYWtlIEdzdERhdGFRdWV1ZSBwcml2YXRlIEFQSSBmb3IgbXVsdGlxdWV1ZQoJICBUaGVyZSdzIG5vIGNvZGUgdGhhdCB1c2VzIGl0IG90aGVyIHRoYW4gbXVsdGlxdWV1ZSwgc28gbWFrZSBpdCBwcml2YXRlCgkgIHRvIG11bHRpcXVldWUgZm9yIG5vdy4gVGhhdCB3YXkgd2UgY2FuIGFsc28gZG8gb3B0aW1pc2F0aW9ucyB0aGF0CgkgIHJlcXVpcmUgQVBJL0FCSSBicmVha3MuIElmIGFueW9uZSBldmVyIHdhbnRzIHRvIHVzZSBpdCwgd2UgY2FuIHN0aWxsCgkgIG1ha2UgaXQgcHVibGljIGFnYWluLgoKMjAxMS0xMC0wNiAxNzoyNzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDYgMTc6MjY6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDYgMTQ6MzQ6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZW5kIGR1cmF0aW9uIG1lc3NhZ2Ugd2hlbiB1cGRhdGluZyBpbnRlcm5hbCBkdXJhdGlvbgoKMjAxMS0xMC0wNiAxNDowNDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNiAxMDo1OTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA1IDIwOjA2OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA1IDEzOjQzOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIHN0YXR1cwoKMjAxMS0xMC0wNSAxMToyMDozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBnc3RidWZmZXJwb29sOiBVc2UgZ2xpYiBjb21wYXQgbWFjcm9zIGZvciBhdG9taWMgcG9pbnRlcnMKCjIwMTEtMTAtMDQgMTg6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNCAxODo1NTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMDQgMTc6Mzk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTA0IDE3OjM2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDQgMTU6NTU6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBzcGVjaWZ5ICh0cmFuc2ZlcikgZm9yIGdzdF9ldmVudF9uZXdfc2VnbWVudAoKMjAxMS0xMC0wNCAxMzoxNjoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBhZGQgcG9ydGluZyBsaXN0CgoyMDExLTA5LTI2IDE0OjM2OjQ2ICswNDAwICBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXR1cm4gc3VjY2VzcyBpZiBvcHRpb25hbCBzdGFydC9zdG9wIG1ldGhvZCBpcyBub3QgcHJvdmlkZWQKCSAgVGhpcyBhbGxvd3MgdG8gbm90IGltcGxlbWVudCB0aGUgb3B0aW9uYWwgc3RhcnQvc3RvcCBtZXRob2RzLgoKMjAxMS0xMC0wMyAxMDowNjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDExLTEwLTAzIDA5OjI5OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogTWFrZSBkZWJ1Z2dpbmcgbWVzc2FnZSBtb3JlIGluZm9ybWF0aXZlCgkgIEZvciBhbGwgdGhlIG5ld2NvbWVycyBvdXQgdGhlcmUgd2hvIHN0aWxsIGRvbid0IGtub3cgdGhlIHZhbHVlcyBvZgoJICBHc3RRdWVyeVR5cGUgZW51bSBieSBoZWFydC4uLgoJICAuLi4gYW5kIG9sZC10aW1lcnMgd2hvJ3ZlIGdvdCBiZXR0ZXIgdGhpbmdzIHRvIGRvIDopCgoyMDExLTA5LTMwIDE1OjI1OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBlc3RpbWF0aW5nIHRoZSBwb3NpdGlvbiBpbiBxdWVyeSBoYW5kbGVyIGFjdHVhbGx5IHdvcmsKCSAgTm8gcG9pbnQgZXN0aW1hdGluZyBpZiB3ZSBkb24ndCBzZXQgdGhlIHJlc3VsdCBhZnRlcndhcmRzLgoKMjAxMS0wOS0yNiAxMzoxNDo0MiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFuc3dlciBwb3NpdGlvbiBxdWVyeSBpbiBzdHJlYW0gdGltZSBhbmQgdHJ5IHVwc3RyZWFtIGZpcnN0CgkgIExldCB0aGUgZGVtdXhlciBoYXZlIGZpcnN0IHNheSBhcyB3ZWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5NDg1CgoyMDExLTA5LTMwIDE0OjUyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0Lmg6IGluY2x1ZGUgaGVhZGVyIGZvciBhdG9taWMgcXVldWUKCjIwMTEtMDktMzAgMTQ6NTA6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgdGVzdHM6IGFkZCBtaW5pbWFsIHRlc3QgZm9yIEdzdEF0b21pY1F1ZXVlCgkgIEp1c3QgbmV3ICsgZnJlZS4KCjIwMTEtMDktMjkgMTg6MDY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGUgcmVsZWFzZSBub3RlcwoJICBDaGFuZ2UgdGhlIG1haWwgYWRkcmVzc2VzIHRvIHRoZSBmcmVlZGVza3RvcCBvbmVzCgoyMDExLTA5LTI5IDE3OjA0OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMSA9PT0KCjIwMTEtMDktMjkgMTY6NTA6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSRUxFQVNFIDAuMTEuMQoKMjAxMS0wOS0yOCAxODo0NjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbWVtb3J5IGFsaWdubWVudAoJICBGaXggY29tcGlsYXRpb24gd2hlbiBQT1NJWF9NRU1BTElHTiBpcyBub3Qgc2V0LgoJICBEZWJ1ZyB0aGUgY29uZmlndXJlZCBhbGlnbm1lbnQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAzMDAKCjIwMTEtMDktMjggMTg6NDQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1ZwoKMjAxMS0wOS0yOCAxMToyODoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IGZpeCBhZnRlciBtZXJnZQoKMjAxMS0wOS0yOCAxMToyNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDktMjggMTE6MTY6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBkb2NzOiBmaXggc29tZSBtb3JlIGRvY3MKCjIwMTEtMDktMjYgMTk6NTI6MTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNlbmQgZGVsYXllZCBldmVudHMgZWFybGllcgoJICBTb21lIGVsZW1lbnRzIChzdWNoIGFzIHZpZGVvcmF0ZSkgbWlnaHQgcHVzaCBidWZmZXJzIGVhcmx5LAoJICBmb3IgaW5zdGFuY2UgaW4gaW4gdHJhbnNmb3JtX2lwLiBXZSB3YW50IGV2ZW50cyAoYW5kIGluIHBhcnRpY3VsYXIKCSAgYW55IE5FV1NFR01FTlQgZXZlbnQpIHRvIGJlIHB1c2hlZCBiZWZvcmUgdGhhdC4KCSAgVGhpcyBmaXhlcyB0cmFuc21hZ2VkZG9uIHdlZGdpbmcgb24gY29udmVydGluZyBhIGZpbGUgc3RhcnRpbmcKCSAgd2l0aCBhIG5vbiB6ZXJvIG9mZnNldCB0byBPZ2cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAxNjUKCjIwMTEtMDktMjYgMjA6NDc6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IGZpeCBkb2NzCgoyMDExLTA5LTI2IDE5OjI1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOS0yNiAxOToyNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IGltcHJvdmUgQVBJIGRvY3MgYSBsaXR0bGUKCjIwMTEtMDktMjYgMDA6MzA6NDcgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0OiBGaXggY29tcGlsZXIgd2FybmluZ3Mgb24gNjQgYml0IG1pbmd3LXc2NAoJICBGaXhlcyBidWcgIzY2MDA4My4KCjIwMTEtMDktMjUgMTY6MTA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIGV4YW1wbGVzOiBmaXggYm9ndXMgZ19vYmplY3RfdW5yZWYgaW4gaGVsbG93b3JsZCBleGFtcGxlCgkgIEdNYWluTG9vcCBpcyBub3QgYSBHT2JqZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0MTQzCgoyMDExLTA5LTIzIDEzOjA5OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMDktMjEgMTM6NDM6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gdG8gMC4xMSBicmFuY2gKCjIwMTEtMDktMjAgMTM6MDQ6MDYgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRlbGF5IHNlcmlhbGl6ZWQgZXZlbnRzIHdoZW4gc3JjIGNhcHMgYXJlIG5vdCBzZXQgeWV0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk1NzEKCjIwMTEtMDktMTMgMTc6MDQ6MzEgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU2V0IGNhcHMgb24gcGFkIGJlZm9yZSBjaGVja2luZyBpZiB0aGUgcGFkIGlzIGxpbmtlZAoJICBUaGlzIGFsbG93cyB0aGUgc2V0Y2FwcyBoYW5kbGVyIGFuZCBub3RpZnk6OmNhcHMgdG8gbGluawoJICB0aGUgcGFkIGRvd25zdHJlYW0gYW5kIGRvZXNuJ3QgcmVxdWlyZSBoYWNrcyB0byBhbHdheXMKCSAgcHJvdmlkZSBhIHBlZXIgdG8gdGhlIHBhZCwgbGlrZSBpbiBkZWNvZGViaW4yLgoKMjAxMS0wOS0xNSAxMTo0OTo0MyAtMDcwMCAgRmFicml6aW8gKE1pc3RvKSBNaWxvIDxtaXN0b2JhYW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBhbmQgZ3N0X3ZhbHVlX2dldF9jYXBzKCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgaW50ZXJuYWwgZmllbGRzCgoyMDExLTA5LTE2IDEzOjM4OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBvdGhlciBjaGFpbiBmdW5jdGlvbiBjb2RlIHBhdGggYXMgd2VsbAoKMjAxMS0wOS0xNiAxMzoxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHVwIHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoJICBXaGljaCBJIG1lc3NlZCB1cC4KCjIwMTEtMDktMTUgMTM6MjA6MTUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2Ugc29tZSBkZWJ1ZyB0cmFjZXMgbW9yZSB1c2VmdWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTEzOQoKMjAxMS0wOS0xNCAyMjo1NDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdGN2c3Rlc3Quc2g6CgkgIHNjcmlwdHM6IHJlbW92ZSBnc3RjdnN0ZXN0LnNoCgoyMDExLTA5LTEzIDIzOjA0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBmaXggY2xhbmcgY29tcGlsZXIgd2FybmluZwoJICBDYXN0IGVudW0gdG8gaW50IGJlZm9yZSBjaGVja2luZyBmb3IgbmVnYXRpdmUgdmFsdWVzLCB3aGljaCBhcmUKCSAgaW1wb3NzaWJsZSBhY2NvcmRpbmcgdG8gdGhlIGVudW0gbGlzdC4KCSAgZ3N0bGZvY29udHJvbHNvdXJjZS5jOjY1Mjo0NTogZXJyb3I6IGNvbXBhcmlzb24gb2YgdW5zaWduZWQgZW51bSBleHByZXNzaW9uIDwgMAoJICBpcyBhbHdheXMgZmFsc2UgWy1XZXJyb3IsLVd0YXV0b2xvZ2ljYWwtY29tcGFyZV0KCSAgaWYgKHdhdmVmb3JtID49IG51bV93YXZlZm9ybXMgfHwgd2F2ZWZvcm0gPCAwKSB7CgkgIH5+fn5+fn5+IF4gfgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzMTM3CgoyMDExLTA5LTEzIDIxOjU4OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSBmaWxlc3JjIHJldHVybnMgZXNjYXBlZCBVUklzIGV2ZW4gaWYgdGhlIGlucHV0IHdhcyB1bmVzY2FwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDY3MwoKMjAxMS0wOS0xMCAxODoxNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBtb3ZlIGxvZyBtZXNzYWdlcyBmb3IgY2FwcyBjcmVhdGlvbi9mcmVlaW5nIGludG8gVFJBQ0UgY2F0ZWdvcnkKCSAgUmVkdWNlIFNQQU0gZm9yIEdTVF9DQVBTOjUuCgoyMDExLTA5LTA5IDEyOjU2OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGRvIHRoZSBzdWJzZXQgY2hlY2sgaW4gZ3N0X3BhZF9hY2NlcHRfY2FwcygpIGlmIHRoZSBwYWQgY2xhaW1zIHRvIGFjY2VwdCB0aGUgY2FwcwoKMjAxMS0wOS0wNyAxNzoyMTo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1ha2UgaXQgZWFzeSB0byBvdmVycmlkZSB0aGUgcGFkIHF1ZXJ5CgkgIEFkZCBhIHZtZXRob2QgdG8gaGFuZGxlIHRoZSBwYWQgcXVlcnkuCgkgIEluc3RhbGwgYSBkZWZhdWx0IGhhbmRsZXIgZm9yIHRoZSBwYWQgcXVlcnkuCgkgIFVzZSB0aGUgbmV3IHF1ZXJ5IGZ1bmN0aW9uIGluIGZpbGVzaW5rCgoyMDExLTA5LTA4IDE0OjM5OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgIlJldmVydCAiYmFzZXRyYW5zZm9ybTogVXNlIGNoZWNrIGZvciBzdWJzZXRzIGFuZCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbiB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlIiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwYmM2ZDQ5Yzk1MDIxMGJmNDIyNjE1ZmI4ZGM5OGM1YWRjZDVlNDU2LgoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTA5LTA4IDE0OjMxOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJSZXZlcnQgInBhZDogQ2hlY2sgZm9yIHN1YnNldHMsIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9ucyB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlIiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyYmZhZGE1NTgxZTM1YTJkMzcxODhmNDhhMmM3NDQyNjQ0ZjEwYmIzLgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoJICBGb3IgMC4xMSB3ZSB3YW50IHRvIGVuZm9yY2UgdGhhdCBvbmx5IHN1YnNldHMgb2YgdGhlIHBhZAoJICBjYXBzIGFyZSBhbGxvd2VkLiBUaGlzIGJyZWFrcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvcgoJICBzb21lIGVsZW1lbnRzLCB3aGljaCBpcyB3aHkgd2Ugb25seSBwcmludCBhIHdhcm5pbmcgaW4KCSAgMC4xMC4KCjIwMTEtMDktMDggMTQ6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0wOS0wOCAxNDoyOTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBVc2UgZ3N0X3BhZF9hY2NlcHRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hlY2tpbmcgd2hlbiBjb25maWd1cmluZyBhIHNpbmtwYWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDNjYWQyOGRhOTM2YjAzN2Q4NzdkYzcwYzAyMjg2YjgxYjY4MDI4NC4KCSAgSXQgY2F1c2VzIHBlcmZvcm1hbmNlIHByb2JsZW1zIGJlY2F1c2UgYWNjZXB0Y2FwcygpIHByb3BhZ2F0ZXMgZG93bnN0cmVhbS4KCjIwMTEtMDktMDggMTQ6MjM6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dAoJICBnc3QvZ3N0Y2Fwcy5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5jCgkgIGdzdC9nc3RpbnRlcmZhY2UuYwoJICBnc3QvZ3N0cGFkLmMKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYwoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmMKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluCgoyMDExLTA5LTA4IDEzOjQxOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBVc2UgZ3N0X3BhZF9hY2NlcHRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hlY2tpbmcgd2hlbiBjb25maWd1cmluZyBhIHNpbmtwYWQKCjIwMTEtMDktMDggMTM6NDA6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFByaW50IGEgZ193YXJuaW5nKCkgaWYgcGFkIGFjY2VwdCBjYXBzIHRoYXQgYXJlIG5vdCBhIHN1YnNldCBvZiBpdHMgY2FwcwoJICBJbiAwLjExIG9ubHkgc3Vic2V0cyBhcmUgc3VwcG9ydGVkIGFnYWluIGFzIGRvY3VtZW50ZWQgaW5zdGVhZCBvZiBhbHNvCgkgIGFsbG93aW5nIG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zLgoKMjAxMS0wOS0wOCAxMzoyNjoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWU1Y2M1ZTg5ZTdlMjg1OGE2MzUyZmE0YzgxYTM3NGY2ZTVhNjI5Ny4KCSAgU2VlIGJ1ZyAjNjU4NTQxLgoKMjAxMS0wOS0wOCAxMzoyNjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGM1ZDUwMjA3MzI2ZDc0YTQ4MDViY2Q4OThiZmFjODg3NTQwZjEyYi4KCSAgU2VlIGJ1ZyAjNjU4NTQxLgoKMjAxMS0wOS0wNyAxMzoxNDozOCArMDIwMCAgUGlvdHIgRnVzaWsgPGZveEBzY2VuZS5wbD4KCgkqIFJFQURNRToKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJKiBkb2NzL3JhbmRvbS9hdXRvcGx1ZzI6CgkqIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOgoJKiBkb2NzL3JhbmRvbS9iYmIvc3RyZWFtc2VsZWN0aW9uOgoJKiBkb2NzL3JhbmRvbS9jYXBzOgoJKiBkb2NzL3JhbmRvbS9jb21wYW55L2d2YWRlYy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9wbHVnaW5kb2NzLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJKiBkb2NzL3JhbmRvbS9lb3M6CgkqIGRvY3MvcmFuZG9tL2hpZXJhcmNoeToKCSogZG9jcy9yYW5kb20vaTE4bjoKCSogZG9jcy9yYW5kb20vaW50ZXJmYWNlczoKCSogZG9jcy9yYW5kb20vbmVnb3RpYXRpb246CgkqIGRvY3MvcmFuZG9tL29tZWdhL3NjaGVkL2NoYWluczoKCSogZG9jcy9yYW5kb20vb21lZ2EvdGVzdGluZy9mcmFtZXdvcms6CgkqIGRvY3MvcmFuZG9tL3BsdWdpbnM6CgkqIGRvY3MvcmFuZG9tL3J0cDoKCSogZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6CgkqIGRvY3MvcmFuZG9tL3NvdXJjZXM6CgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSogZG9jcy9yYW5kb20vdGVzdGluZy9zeW50YXg6CgkqIGRvY3MvcmFuZG9tL3R5cGVzMjoKCSogZG9jcy9yYW5kb20vdXJhZXVzL2dzdHJlYW1lcl9hbmRfbWlkaS50eHQ6CgkqIGRvY3MvcmFuZG9tL3Zpcy10cmFuc2Zvcm06CgkqIGRvY3MvcmFuZG9tL3d0YXkvY2Fwcy1uZWdvY2lhdGlvbjoKCSogZG9jcy9yYW5kb20vd3RheS90aHJlYWRpbmc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvdGhyZWFkc19oaWxldmVsOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSAgZG9jcywgZ3N0OiB0eXBvIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg0NDkKCjIwMTEtMDktMDcgMTU6MDc6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogZml4IG1ha2UgZGlzdGNoZWNrCgkgIE5vIHBvaW50IHJlbW92aW4gdGhvc2UgZW1wdHkgb3ZlcnJpZGUgZmlsZXMgZnJvbSBnaXQsIHRoZXknbGwKCSAganVzdCBiZSByZS1jcmVhdGVkIGxhdGVyLCBzbyBsZXQncyB0ZWxsIGd0ay1kb2MgYWJvdXQgdGhlbSwgc28KCSAgaXQgY2FuIGNsZWFuIHRoZW0gdXAgcHJvcGVybHkuCgoyMDExLTA5LTA3IDE2OjAyOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJZiB0aGVyZSdzIG5vIHBlZXIgd2Ugc3RpbGwgaGF2ZSB0byB0cmFuc2Zvcm0gQU5ZIGNhcHMgaW4gZ2V0Y2FwcygpCgkgIE90aGVyd2lzZSBlbGVtZW50cyBsaWtlIGNhcHNmaWx0ZXIgd2lsbCByZXR1cm4gQU5ZIGNhcHMgaWYgbm8KCSAgcGVlciBpcyBwcmVzZW50IGluc3RlYWQgb2YgdGhlIGZpbHRlciBjYXBzLiBUaGUgdHJhbnNmb3JtX2NhcHMoKQoJICB2ZnVuYyBjb3VsZCBkbyB0cmFuc2Zvcm1hdGlvbnMgdG8gdGhlIHRlbXBsYXRlIGNhcHMgdGhhdCBkbyBub3QKCSAgcmVzdWx0IGluIHRoZSB1bm1vZGlmaWVkIHRlbXBsYXRlIGNhcHMuCgoyMDExLTA5LTA3IDE0OjA1OjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBjbGVhbnVwIG1ha2VmaWxlcwoJICBSZW1vdmUgY29tbWVudGVkIG91dCBwYXJ0cyB0aGF0IHdlIGRvbid0IG5lZWQuIFJlbW92ZSAidGhlIHdpbmdvIGFkZGl0aW9uIiAtIG5vCgkgIHNvIHVzZWZ1bCBhZnRlciBhbGwuIE5hcnJvdyBkb3duIGZpbGUtZ2xvYnMgZm9yIHBsdWdpbiBkb2NzLgoKMjAxMS0wOS0wNyAxMzo1MDowOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGVzY2FwZSAlIGluIGRvY2Jsb2IKCjIwMTEtMDktMDIgMTk6NDY6MDYgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3Rhc0BzdGFzLihub25lKT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogVXNlIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IGNoYW5naW5nIGNhcHMKCSAgZ3N0X3BhZF9zZXRfY2FwcygpIGRvZXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgYnV0IGFkZGl0aW9uYWxseSBjYWxscwoJICB0aGUgcGFkJ3Mgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgRml4ZXMgYnVnICM2NTgwNzYuCgoyMDExLTA5LTA2IDIxOjI0OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhMzllYjgzIHRvIDExZjBjZDUKCjIwMTEtMDktMDYgMTU6Mzk6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYwNWNkOWEgdG8gYTM5ZWI4MwoKMjAxMS0wOS0wNiAxMjoxNzowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIGNoZWNrIGZvciBzdWJzZXRzIGFuZCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbiB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlCgoyMDExLTA5LTA2IDEyOjE5OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUKCSAgUGFkcyBzaG91bGQgb25seSBhY2NlcHQgY2FwcyB0aGF0IGFyZSBhIHN1YnNldCBvZiB0aGUgcGFkIGNhcHMsIGUuZy4KCSAgdGhleSBzaG91bGQgYWNjZXB0IG9ubHkgY2FwcyB0aGF0IGhhdmUgYSBub24tZW1wdHkgaW50ZXJzZWN0aW9uIGFuZAoJICBhdCBsZWFzdCBhbGwgZmllbGRzIG9mIHRoZSBwYWQgY2Fwcy4KCSAgV2l0aG91dCB0aGlzIGEgcGFkIHRoYXQgd2FudHMgZm9yIGV4YW1wbGUKCSAgInZpZGVvL3gtaDI2NCxzdHJlYW0tZm9ybWF0PWJ5dGUtc3RyZWFtIgoJICB3aWxsIGJlIGhhcHB5IHRvIGFjY2VwdAoJICAidmlkZW8veC1oMjY0Ii4KCjIwMTEtMDgtMjkgMTc6MDY6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGNoYW5nZSB0byBHU1RfREVGSU5FX01JTklfT0JKRUNUX1RZUEUKCSAgQXBwZW5kIF9UWVBFIHRvIHRoZSBtYWNybyBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBzaW1pbGFyIG1hY3Jvcy4KCjIwMTEtMDgtMjkgMTU6MzQ6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbml0OiBhZGQgX2dldF90eXBlKCkgZnVuY3Rpb25zCgkgIFJlbW92ZSBnc3RfbWluaV9vYmplY3RfcmVnaXN0ZXIoKSBhbmQgYWRkIGEgR1NUX0RFRklORV9NSU5JX09CSkVDVCBtYWNybyB0bwoJICBkZWZpbmUgYSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgdGhlIGJveGVkIG1pbmlvYmplY3QuCgkgIFJlbW92ZSBhIGJ1bmNoIG9mIGN1c3RvbSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZQoJICBtaW5pb2JqZWN0IG1hY3JvLgoJICBSZW5hbWUgc29tZSBfaW5pdCBtZXRob2QgdG8gX3ByaXZfKl9pbml0aWFsaXplKCkgbGlrZSB0aGUgcmVzdCBvZiB0aGVtLgoJICBJbnNwaXJlZCBieSBwYXRjaCBmcm9tIEpvaGFuIERhaGxpbiBhbmQgc2VlIGJ1ZyAjNjU3NjAzCgoyMDExLTA4LTI5IDEzOjI3OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IGFkZCBzb21lIF9wcml2IHByZWZpeGVzIHRvIHByaXZhdGUgbWV0aG9kcwoKMjAxMS0wOC0yOSAxMjozODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmktb2JqZWN0OiB1c2UgcmVmL3VucmVmIGRpcmVjdGx5IGluIGJveGVkIGNvcHkvZnJlZQoJICBHTGliIHdpbGwgbm90IGNhbGwgb3VyIGNvcHkvZnJlZSB3aXRoIGEgTlVMTCBvYmplY3QKCjIwMTEtMDgtMjYgMTQ6Mzc6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG1lc3NhZ2UuYwoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYwoJICBnc3QvZ3N0c2VnbWVudC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCgoyMDExLTA4LTI2IDE0OjE4OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNlOiByZW5hbWUgYWxsb2NhdGlvbiB2bWV0aG9kcwoJICBOYW1lIHRoZSBhbGxvY2F0aW9uIHZtZXRob2Qgb24gc3JjcGFkIGRlY2lkZV9hbGxvY2F0aW9uIGJlY2F1c2Ugc291cmNlIHBhZHMgd2lsbAoJICBoYXZlIHRvIGRlY2lkZSB3aGF0IGFsbG9jYXRpb24gcGFyYW1ldGVycyB3aWxsIGJlIHVzZWQuCgkgIE5hbWUgdGhlIGFsbG9jYXRpb24gdm1ldGhvZCBvbiBzaW5rcGFkcyBwcm9wb3NlX2FsbG9jYXRpb24gYmVjYXVzZSB0aGV5IHdpbGwKCSAgbmVlZCB0byBjb25maWd1cmUgdGhlIGFsbG9jYXRpb24gcXVlcnkgd2l0aCBhIHByb3Bvc2VkIHZhbHVlcyBmb3IgdXBzdHJlYW0uCgoyMDExLTA4LTI2IDE0OjE3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZmxhZ3MKCSAgUmVuYW1lIERST1AgdG8gREVDT0RFX09OTFkuCgkgIEFkZCBEUk9QUEFCTEUgZmxhZyB0byBtYXJrIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgZHJvcHBlZCB0byBzYXZlIGJhbmR3aWR0aCB3aXRob3V0CgkgIGRlc3Ryb3lpbmcgdGhlIHN0cmVhbS4KCjIwMTEtMDgtMjYgMTQ6MDk6NDcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgZG9jczogYWRkIHNpbmNlIDAuMTAuMzYgb24gdGhlIG5ldyBfTk9ORSBlbnVtIHZhbHVlcwoKMjAxMS0wOC0yNiAwMDoxMzoxNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBzdGVwcGluZzogdXNlIHRoZSBwcm9wZXIgYXJndW1lbnQgb3JkZXIKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNiAwMDowNjoxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgZmlsZWluZGV4OiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNiAwMDowMDoyNSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlcjogdXNlIEdTVF9UWVBFX0ZJTkRfTk9ORSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzo1Mzo1OCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6NDk6MzggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBhZGQgR1NUX1RZUEVfRklORF9OT05FIGFuZCB1c2UgaXQKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzoyNjowOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgdGhlIGVudW0gdmFsdWVzIGZvciAwIGFuZCBkb24ndCBhYnVzZSBvbiBnYm9vbGVhbiBjb2luY2lkZW5jZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjA2OjU2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHB1dCB0aGUgYXJndW1lbnRzIG9mIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIGluIHRoZSBwcm9wZXIgb3JkZXIKCjIwMTEtMDgtMjUgMjI6NDg6NTQgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBwYXJzZTogdXNlIEdTVF9QQVJTRV9GTEFHX05PTkUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjI6NDI6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMjoyOTo0NSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtaW5vciBjaGFuZ2VzIHJlbGF0ZWQgdG8gZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIyOjA1OjI2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBhZGQgR1NUX0FMTE9DX1RSQUNFX05PTkUgZm9yIGNvbnNpc3RlbmN5IGFuZCB1c2UgaXQKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTo1MjowNSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTo0OToyOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1c2UgR1NUX1RBR19NRVJHRV9VTkRFRklORUQgaW5zdGVhZCBvZiBGQUxTRQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjMwOjU3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiB1c2UgR1NUX1NFRUtfRkxBR19OT05FIGluc3RlYWQgb2YgMAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjI1OjQ2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjE4OjE1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG1pbm9yIGNoYW5nZXMgcmVsYXRlZCB0byBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MDM6NTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjM6MDA6NDcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6NTE6MjkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgcmlnaHQgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIyOjQxOjMyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIyOjM3OjA4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgaW5kZXg6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6Mjk6NTkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgZm9ybWF0OiB1c2UgR1NUX0ZPUk1BVF9VTkRFRklORUQgYW5kIGZldyBjYXN0cyB0byBHc3RGb3JtYXQKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNiAxMzowMjozNCArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGJvZGdlZCBwcmV2aW91cyBjb21taXQKCjIwMTEtMDgtMjYgMTI6Mzc6NDMgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgR3N0UGFkRGlyZWN0aW9uIGluIHRoZSBxdWVyeSB2ZnVuYwoJICBXaW0gc3VnZ2VzdGVkIHRoYXQgdXNpbmcgR3N0UGFkRGlyZWN0aW9uIGluc3RlYWQgb2YgYSBHc3RQYWQgaW4gdGhlCgkgIGFyZ3VtZW50cyB0byB0aGUgbmV3IHF1ZXJ5IHZmdW5jIHdvdWxkIGJlIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlcgoJICBmdW5jdGlvbnMuCgoyMDExLTA4LTI2IDEzOjQwOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbmFtZSBfQ0xJUCB0byBfRFJPUCBmbGFnCgkgIFdlIGNhbiBhbHNvIHVzZSBhIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBhIGZyYW1lIHNob3VsZCBiZSBkZWNvZGVkIGJ1dCBub3QKCSAgZGlzcGxheWVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHRoZSBzZWdtZW50IGJvdW5kYXJpZXMgc28gd2UgdXNlIHRoZSBtb3JlIGdlbmVyaWMKCSAgX0RST1AuCgoyMDExLTA4LTI2IDEyOjI4OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzCgoyMDExLTA4LTI2IDExOjQ0OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBhZGQgdm1ldGhvZCB0byBjb25maWd1cmUgdXBzdHJlYW0gYnVmZmVycG9vbAoJICBBZGQgYSB2bWV0aG9kIHRoYXQgY2FuIGJlIGltcGxlbWVudGVkIHRvIGluZmx1ZW5jZSB0aGUgYnVmZmVycG9vbCB0aGF0IHVwc3RyZWFtCgkgIGVsZW1lbnRzIHdpbGwgdXNlLgoKMjAxMS0wOC0yNiAxMToyNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogdXNlIHBhZCBkaXJlY3Rpb24gbGlrZSBvdGhlciB2bWV0aG9kcwoKMjAxMS0wOC0yNiAxMTowOTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaAoKMjAxMS0wOC0yNiAxMDo1NzozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBzb21lIGRvYyBmaXhlcwoKMjAxMS0wOC0yNSAxMTowMjoxNiArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEJhc2VUcmFuc2Zvcm06IEFkZCBhIHF1ZXJ5IHZmdW5jCgoyMDExLTA3LTIwIDE0OjA1OjI3ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkb24ndCBhc3N1bWUgX2dldF9jYXBzIHN0aWxsIGhhcyB0byBiZQoJICBfc2V0X2NhcHMgb25seSBnZXRzIGNhbGxlZCB3aGVuIHRoZSBidWZmZXIgaXMgYWN0dWFsbHkgcHVzaGVkLCBzbyB0aGVyZQoJICBpcyBhIHJlYXNvbmFibHkgYmlnIHdpbmRvdyBiZXR3ZWVuIHdoZW4gdGhlIGluaXRpYWwgY2FwcyBhcmUgcmV0cmlldmVkCgkgIGFuZCB3aGVuIHRoZSBjYXBzIGFyZSBzZXQgb24gb3VyIHNyYyBwYWQuIFNvIHdlIGNhbid0IGFzc3VtZSB0aGUgbm90CgkgIGhhdmluZyBuZWdvdGlhdGVkIGNhcHMgb24gb3VyIHNyYyBwYWQgbWVhbnMgX2dldF9jYXBzIHN0aWxsIGhhcyB0byBiZQoJICBjYWxsZWQuCgkgIEluc3RlYWQgc2ltcGx5IGFsd2F5cyBzdWdnZXN0IHRoZSBuZXcgY2FwcyBvbiBidWZmZXJfYWxsb2MuCgoyMDExLTA4LTI1IDE4OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBjbGlwIGZsYWcKCjIwMTEtMDgtMjUgMTY6MjE6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmV3b3JrIGZsYWdzIGEgbGl0dGxlCgkgIFJlb3JkZXIgYnVmZmVyIGZsYWdzIGFuZCBhZGQgc29tZSBuZXcgb25lcy4KCSAgUmVtb3ZlIHRoZSBtZWRpYSBzcGVjaWZpYyBmbGFncywgd2UgY2FuIG5vdyBlYXNpbHkgZG8gdGhpcyB3aXRoIHRoZSBGTEFHX0xBU1QKCSAgZmxhZyBiZWNhdXNlIHdlIGRvbid0IGV4dGVuZCBmcm9tIEdzdEJ1ZmZlciBhbnltb3JlLgoKMjAxMS0wOC0yNSAxNjoyMDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJ1ZmZlcjogYWx3YXlzIGNvcHkgYWxsIGJ1ZmZlciBmbGFncyB3aGVuIGFza2VkCgkgIERvbid0IHRyeSB0byBiZSBzbWFydCBhbmQgY29weSBvbmx5IGEgc3Vic2V0IG9mIGJ1ZmZlciBmbGFnCgoyMDExLTA4LTI1IDE2OjE5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgoyMDExLTA4LTI1IDE0OjA5OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcGx1cmFsaXplIHRoZSBidWZmZXIgZmxhZ3MKCjIwMTEtMDgtMjUgMTI6Mzg6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgcHJlcm9sbC1xdWV1ZS1sZW4gcHJvcGVydHkKCSAgUmVtb3ZlIHRoZSBwcmVyb2xsLXF1ZXVlLWxlbiBwcm9wZXJ0eSBhbmQgbW92ZSBpdHMgdmFyaWFibGVzIHRvIGEgcHJpdmF0ZQoJICBzZWN0aW9uIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGVtIGxhdGVyLgoKMjAxMS0wOC0yNCAxMDo0MzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0b2JqZWN0LmMKCjIwMTEtMDgtMjMgMTg6MTk6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZW5zdXJlIHN0YXJ0X3RpbWUgcmVzZXQgdXBvbiBmbHVzaAoKMjAxMS0wOC0yMyAxMTo1NToxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFsc28gcmVtb3ZlIHRoZSBjYXN0IGFzIHRoaXMgaXMgY2F1c2luZyB0aGUgdHJvdWJsZQoKMjAxMS0wOC0yMyAxMTo0MTowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IHVzZSB0aGUgYXRvbWljIG1hY3JvcyB0byBkZWFsIHdpdGggdGhlIGdsaWIgY2hhbmdlIGluIHRoZSBpbXBsLgoKMjAxMS0wOC0yMiAxMjo0OTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBvYmplY3Q6IG1ha2UgX3JlcGxhY2UgbGlrZSB0aGUgbWluaW9iamVjdCB2ZXJzaW9uCgoyMDExLTA4LTIyIDEyOjMzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXIuaAoJICBnc3QvZ3N0Y2Fwcy5jCgkgIGdzdC9nc3RjYXBzLmgKCSAgZ3N0L2dzdGV2ZW50LmMKCjIwMTEtMDgtMjIgMTI6MTk6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IHJlbW92ZSBvdXIgRk9VUkNDIEdUeXBlCgkgIFJlbW92ZSBvdXIgY3VzdG9tIGZvdXJjYyBHVmFsdWUuCgoyMDExLTA4LTIxIDE0OjA3OjA4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBtYWtlIGdzdF9vYmplY3RfcmVwbGFjZSgpIGF0b21pYwoKMjAxMS0wOC0yMCAxNDowNzo1NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbW9yZSBjbGFyaWZpY2F0aW9uIGZvciBlbGVtZW50IGRvY3MKCSAgRG9uJ3Qgc3VnZ2VzdCBkZXByZWNhdGVkIG1ldGhvZCBpbiB0aGUgZGVzY3Rpb24gZG9jcyBhbmQgdHJ5IHRvIGJlIG1vcmUgaGVscGZ1bAoJICBpbiBvdGhlciBwbGFjZXMgYnkgc3VnZ2VzdGluZyByZWxhdGVkIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMjAgMDk6NTY6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IHNtYWxsIGNsYXJpZmljYXRpb24gaW4gdGhlIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCBkb2NzCgkgIE1ha2UgaXQgbW9yZSBvYnZpb3VzIHRoYXQgb25lIHNob3VsZCBwYXNzIHRoZSB0ZW1wbGF0ZSBuYW1lLgoKMjAxMS0wOC0xOCAyMDo0NjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IHVzZSA9PSBpbiBkZWJ1ZyBzdHJpbmcKCSAgSXQgbWVzc2VzIHVwIEdTVF9ERUJVRz0qOjUgbWFrZSBmb28vYmFyLnZhbGdyaW5kLCBiZWNhdXNlCgkgIG91ciBNYWtlZmlsZSBsb29rcyBmb3IgJz09JyBhcyBtYXJrZXIgb2YgdmFsZ3JpbmQgb3V0cHV0LgoKMjAxMS0wOC0xOCAyMDo0NDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBjcmFzaCBvbiBzZWVrIGZyb20gc3RyZWFtaW5nIHRocmVhZCBvbiBuZXdzZWdtZW50IGV2ZW50CgkgIEV2ZW50IGlmIGl0J3Mgbm90IGFsbG93ZWQsIHdlIGNhbiBlYXNpbHkgcHJldmVudCBpdCwgc28gbGV0J3MgZG8KCSAgdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1Njc3MQoKMjAxMS0wOC0xNyAxNzo1Njo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgbWV0aG9kIHRvIGZpeGF0ZSBvbmUgZmllbGQKCjIwMTEtMDgtMTcgMTc6MTY6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uCgkgIEFkZCBhIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uIHdoaWNoIGRvZXMgZ3N0X2NhcHNfZml4YXRlKCkgYmVjYXVzZQoJICBnc3RfcGFkX2ZpeGF0ZSgpIGRvZXMgbm90IGRvIHRoYXQgYW55bW9yZS4KCjIwMTEtMDgtMTcgMDk6MjU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBkb2NzOiBpbXByb3ZlIHNvbWUgZG9jcwoKMjAxMS0wOC0xNiAxODoyOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJldHVybiBwcm9jZXNzZWQgbnVtYmVyIG9mIGJ5dGVzCgkgIE1ha2UgX2ZpbGwsIF9leHRyYWN0IGFuZCBfbWVtc2V0IHJldHVybiB0aGUgYWN0dWFsIG51bWJlciBvZiBieXRlcyB0aGF0IHdlcmUKCSAgaGFuZGxlZCBpbiBjYXNlIHRoZSBidWZmZXIgc2l6ZSBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplLgoKMjAxMS0wOC0xNiAxNzoxOToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gZWxlbWVudCBmYWN0b3J5IGRvY3VtZW50YXRpb24KCjIwMTEtMDgtMTYgMTc6MzI6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYnVmZmVyOiByZW5hbWUgUFJFUk9MTCAtPiBMSVZFIGZsYWcKCSAgUmVuYW1lIHRoZSBHU1RfQlVGRkVSX0ZMQUdfUFJFUk9MTCB0byBHU1RfQlVGRkVSX0ZMQUdfTElWRSBhbmQgZ2l2ZSB0aGUgbmV3IGZsYWcKCSAgYSBtZWFuaW5nLiBUaGUgb2xkIFBSRVJPTEwgZmxhZyBuZXZlciBoYWQgYSBjbGVhciBtZWFuaW5nLgoKMjAxMS0wOC0xNSAyMTowNTozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY29tcGlsZXIgd2FybmluZyByZXBvcnRlZCBieSBJQ0MKCSAgVGhlIE1BWCBtYWNybyBleHBhbmRzIHRvIGNvZGUgdGhhdCBjaGVja3MgaWYgYW4gdW5zaWduZWQgaW50ZWdlciBpcyA8IDAuCgkgIEZpeGVzIHdhcm5pbmcgIzE4NjogcG9pbnRsZXNzIGNvbXBhcmlzb24gb2YgdW5zaWduZWQgaW50ZWdlciByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTAgMTE6Mzk6MjMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTAgMTE6MDc6NDkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdzdHN0YXRlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjM6NDI6MjYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSByaWdodCBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMzozMzo0MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIHJpZ2h0IEdzdEdFcnJvciBjb2RlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIzOjI2OjEzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiB1c2UgR1NUX1NUQVRFX1ZPSURfUEVORElORyBmb3IgR3N0U3RhdGUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIGEgd2FybmluZyByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjI6NDg6NTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGRlZmluZSBHU1RfQ0FQU19GTEFHU19OT05FIGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIGVudW1lcmF0aW9ucwoJICBVc2UgdGhlbSB0byBmaXggd2FybmluZ3Mgd2hlbiBidWlsZGluZyB3aXRoIElDQy4KCSAgQVBJOiBHU1RfQ0FQU19GTEFHU19OT05FCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjI6Mjk6NDQgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB1c2UgR3N0RGVidWdMZXZlbCBlbnVtIHR5cGUgdG8gZml4IGEgd2FybmluZyBidWlsZGluZyB3aXRoIElDQwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTE1IDE2OjQ1OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgZml4YXRlIGNhcHMgYmVoYXZlIGxpa2Ugb3RoZXIgZnVuY3Rpb25zCgkgIEluc3RhbGwgYSBkZWZhdWx0IGZpeGF0ZSBjYXBzIGZ1bmN0aW9uIG9uIHBhZHMgbGlrZSBhbGwgdGhlIG90aGVyIHBhZCBmdW5jdGlvbnMuCgoyMDExLTA4LTE1IDE2OjQ1OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMDgtMTUgMTQ6NDM6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA4LTE1IDE0OjQwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGNhcHM6IGFkZCBmaXhhdGUgZnVuY3Rpb24KCSAgQWRkIGEgZml4YXRlIGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gZ3N0cGFkLmMKCjIwMTEtMDgtMTUgMTQ6MzI6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IGFkZCBmdW5jdGlvbiB0byBmaXhhdGUKCSAgQWRkIGEgZnVuY3Rpb24gdG8gZml4YXRlIGEgc3RydWN0dXJlIGFuZCB1c2UgaXQgZm9yIHRoZSBkZWZhdWx0IGZpeGF0ZSBmdW5jdGlvbgoJICBpbiBnc3RwYWQuYy4KCjIwMTEtMDgtMTUgMTM6MTc6NDQgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIEZhcnNpZ2h0IGFuZCBOaWNlIHN1cHBvcnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjU1NwoKMjAxMS0wOC0xNSAxNDoxNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVmYXVsdCBhY2NlcHRjYXBzCgkgIE1ha2UgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gYmVoYXZlIGxpa2UgYWxsIHRoZSBvdGhlciBmdW5jdGlvbnMgd2l0aCBhIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24uIERvbid0IHRyeSB0byBjaGFpbiB1cCB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3aGVuIGl0IHdhcwoJICBzZXQgdG8gTlVMTCBleHBsaWNpdGx5IGJ1dCByZXR1cm4gRkFMU0UgaW5zdGVhZC4KCSAgRml4IHNvbWUgZG9jcwoKMjAxMS0wOC0xNSAxMzoyNDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBzb21lIG1hY3JvcwoJICBSZW1vdmUgYSByYXRoZXIgdXNsZXNzIG1hY3JvIHRvIGNoZWNrIGlmIGEgcGFkIG1vZGUgaXMgYWN0aXZlIGFuZAoJICBhZGQgR1NUX1BBRF9JU19BQ1RJVkUoKS4KCjIwMTEtMDgtMTUgMTI6MTg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDgtMTUgMTI6MTY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVtb3ZlIGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcygpCgkgIFJlbW92ZSBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMoKSwgaXQgZG9lcyBub3QgcmVhbHkgZG8gd2hhdCBpdCBzYXlzLAoJICBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSByZXR1cm5zIHRoZSBjdXJyZW50bHkgbmVnb3RpYXRlZCBjYXBzIG9uIHRoZSBwYWQKCSAgY29ycmVjdGx5LgoKMjAxMS0wOC0xMiAxOToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBkZWFkbG9jayBpbiBlcnJvciBwYXRoCgkgIERvbid0IGxvY2sgdGhlIHNhbWUgbG9jayB0d2ljZS4gU3BvdHRlZCBieSBKb3NlcCBUb3JyZSBWYWxsZXMuCgoyMDExLTA4LTEyIDEyOjQ1OjAxICswMzAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IGdzdF9pdGVyYXRvcl9uZXh0KCkgZWxlbWVudCBhbm5vdGF0aW9uCgoyMDExLTA4LTExIDA5OjMxOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gUFdHCgkgIFJCRyAtPiBSR0IuIFNwb3R0ZWQgYnkgV2lsbCBUaG9tcHNvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjMyNgoKMjAxMS0wOC0xMSAxMDowOTo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogcmVtb3ZlZCBub24tc2Vuc2UgY29tbWVudAoKMjAxMS0wOC0xMCAxNzowNzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jCgkgIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oCgkgIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jCgkgIHRvb2xzL2dzdC1ydW4uYwoKMjAxMS0wOC0wOCAxOTozNjowNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogbW92ZSB1dGYtOCB2YWxpZGF0aW9uIHRvIHJlZ2lzdHJ5IHNhdmluZyB0aW1lCgkgIEluc3RlYWQgb2YgY2hlY2tpbmcgZm9yIHZhbGlkIHV0Zi04IGVsZW1lbnQtZGV0YWlscyBldmVyeSB0aW1lIHdlIGNyZWF0ZQoJICBlbGVtZW50cyAoZnJvbSBwbHVnaW4taW5pdCBvciByZWdpc3RyeSksIGRvIGl0IGJlZm9yZSB3ZSBzYXZlIHRoZSByZWdpc3RyeS4KCSAgRml4ZXMgIzY1NjE5My4KCjIwMTEtMDgtMTAgMTE6MDE6NTggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBGaXggYW5kIGNsYXJpZnkgZGVidWcgc3RhdGVtZW50cwoJICBGaXhlcyBidWlsZCBvbiBNYWNPU1gKCSAgU2lnbmVkLW9mZi1ieTogRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoyMDExLTA4LTA1IDEwOjU5OjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBDbGFyaWZ5IGRvYwoKMjAxMS0wOC0wNyAwOToxNDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIGRvY3M6IGZpeCBoZWxsb3dvcmxkIGNvbXBpbGUgY29tbWFuZCBsaW5lIGZvciBuZXdlciBnY2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjA5MgoKMjAxMS0wOC0wNiAxODoyMDo1MSArMDIwMCAgU2hhdW4gSG9vcGVzIDxob29wZXMwMUBzdHVkZW50LnV3YS5lZHUuYXU+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBpbXByb3ZlIGRvdCBmaWxlIGZsb3cgbGF5b3V0CgkgIEl0ZXJhdGUgc291cmNlLSBhbmQgc2luay1wYWRzIHNlcGFyYXRlbHkgdG8gZW5zdXJlIHRoYXQgdGhlIGdyYXBoIHJlZmxlY3RzIHRoZQoJICB1cHN0cmVhbS9kb3duc3RyZWFtIG9yZGVyLiBGaXhlcyAjNjQzMjY5CgoyMDExLTA4LTA2IDE0OjE3OjUwICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGdzdHJlYW1lci5zcGVjOiBtYWtlIGJ1aWxkYWJsZSBhbmQgcGFyYWxsZWwKCjIwMTEtMDgtMDUgMTI6MTI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogbWFrZSB1bnZlcnNpb25lZCB3cmFwcGVyIGxvb2sgZm9yIC0wLjEwIHRvb2xzIG9ubHkKCSAgRG9uJ3Qgd2FudCAoaW5jb21wYXRpYmxlKSAwLjExIHRvb2xzIHRvIGJlIHBpY2tlZCB1cCBieSBhY2NpZGVudC4KCjIwMTEtMDgtMDQgMTg6MDA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGFkZCBhbGxvYyB2bWV0aG9kCgkgIE1ha2UgYW4gYWxsb2Mgdm1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIG9yIGNhbGwgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gd2hlbiB0aGV5IHdhbnQuCgoyMDExLTA4LTA0IDE3OjI2OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDgtMDQgMTc6MTI6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogY2xlYW51cHMgYW5kIG1hcmsgcmVjb25maWd1cmUKCSAgRG9uJ3QgYWJ1c2UgdGhlIHJlc3VsdCB2YXJpYWJsZS4KCSAgTWFyayB0aGUgc3JjcGFkIHdpdGggYSByZWNvbmZpZ3VyZSBzbyB0aGF0IG5lZ290aWF0aW9uIGhhcHBlbnMuCgoyMDExLTA4LTA0IDE3OjEyOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIG1ldGhvZCB0byBtYXJrIHJlY29uZmlndXJlCgoyMDExLTA4LTA0IDE2OjU2OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSBuZWdvdGlhdGlvbiBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgUmVtb3ZlIHRoZSBuZWdvdGlhdGlvbiBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24sIGl0IGNhdXNlcyBkYXRhIHRyYW5zZmVyCgkgIGFuZCBidWZmZXJwb29sIG5lZ290aWF0aW9uLCB3aGljaCBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgZG9uZS4gU2luY2Ugd2UgaGF2ZSB0aGUKCSAgcmVjb25maWd1cmUgc3RhdGUgb24gdGhlIHBhZCwgdGhlIGNyZWF0ZSBmdW5jdGlvbiB3aWxsIGRvIHRoZSBuZWdvdGlhdGlvbiBhcwoJICBzb29uIGFzIGl0IGdldHMgaW4gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgoyMDExLTA4LTA0IDE2OjM0OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBleHBvc2Ugc2V0X2NhcHMgbWV0aG9kCgkgIEV4cG9zZSBhIHByZXZpb3VzbHkgc3RhdGljIG1ldGhvZCBzbyB0aGF0IGN1c3RvbSBuZWdvdGlhdGUgaW1wbGVtZW50YXRpb24gY2FuCgkgIGNhbGwgaXQgYW5kIGRvIHRoZSByaWdodCB0aGluZy4KCjIwMTEtMDgtMDQgMTM6NDg6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUEFVU0VEPC0+UExBWSBkb2Vzbid0IGNoYW5nZSBwb29sIHN0YXRlCgkgIERvbid0IGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIGJ1ZmZlcnBvb2wgd2hlbiBnb2luZyBiZXR3ZWVuIFBBVVNFRCBhbmQgUExBWUlORywKCSAgaXQgd2lsbCBkZWFsbG9jIGFuZCByZWFsbG9jIGFsbCBidWZmZXJzLCB3aGljaCBpcyBjbGVhcmx5IHRvbyBpbnZhc2l2ZS4gV2Ugd2lsbAoJICBuZWVkIHRvIGFkZCBzb21lIG90aGVyIHdheSBvZiB1bmJsb2NraW5nIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wOC0wNCAxMTowMDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZml4IGRlZmF1bHQgYWxpZ25tZW50CgkgIEEgMCBhbGlnbm1lbnQgaXMgdGhlIGRlZmF1bHQuCgoyMDExLTA4LTA0IDEwOjU0OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBnc3RfYnVmZmVyX3Bvb2xfaXNfYWN0aXZlKCkKCjIwMTEtMDgtMDMgMTE6NTc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4wID09PQoKMjAxMS0wOC0wMiAyMDo1NToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMQoKMjAxMS0wOC0wMyAxMTowNDoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nLXRvLTAuMTE6IEFkZCBzZWN0aW9uIGFib3V0IEdzdEl0ZXJhdG9yCgoyMDExLTA4LTAxIDE4OjEyOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZG9uJ3QgYWRkIHRoZSBzYW1lIG9wdGlvbiB0d2ljZQoJICBNYWtlIHN1cmUgdGhhdCB3ZSBvbmx5IGFkZCBhbiBvcHRpb24gdG8gdGhlIGFycmF5IG9uY2UuCgoyMDExLTA3LTMwIDE0OjA0OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIGFuIG9wdGlvbgoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgYW4gb3B0aW9uIGlzIHN1cHBvcnRlZCBvbiB0aGUgYnVmZmVycG9vbC4KCjIwMTEtMDctMjkgMTc6MTA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBhZGQgb3B0aW9ucyBBUEkgdG8gYnVmZmVycG9vbAoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZSBzdXBwb3J0ZWQgb3B0aW9ucyBvZiBhIGJ1ZmZlcnBvb2wgYW5kIGVuYWJsZQoJICBvcHRpb25zLiBUaGlzIGlzIGEgYml0IG1vcmUgZ2VuZXJpYyB0aGFuIHRoZSBBUEkgdG8gZW5hYmxlIG1ldGFkYXRhLiBUaGUgcHVycG9zZQoJICBpcyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBuZXcgY3VzdG9tIGNvbmZpZyBvcHRpb25zIHRvIHRoZSBjb25maWd1cmF0aW9uIG9mCgkgIHRoZSBidWZmZXJwb29sIHdoZW4gc3VwcG9ydGVkLgoKMjAxMS0wNy0yOCAxMjoxMTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBkb24ndCB1c2UgR19DT05TVF9SRVRVUk4KCSAgSXQncyBiZWVuIGRlcHJlY2F0ZWQgaW4gbmV3ZXIgR0xpYiB2ZXJzaW9ucwoKMjAxMS0wNy0yOCAxMjowMTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGZvciBwb3NpdGlvbi9kdXJhdGlvbiBxdWVyeSBBUEkgY2hhbmdlCgoyMDExLTA3LTI3IDAwOjI4OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICB0ZXN0czogdXBkYXRlIGZvciBxdWVyeSBBUEkgY2hhbmdlcwoKMjAxMS0wNy0yNyAwMDoyODoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBwbHVnaW5zOiB1cGRhdGUgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI3IDAwOjI2OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IHVwZGF0ZSBmb3IgcXVlcnkgQVBJIGNoYW5nZXMKCjIwMTEtMDctMjcgMDA6MTc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0OiBmaXggYXdrd2FyZCBkZXN0X2Zvcm1hdCBpbm91dCBwYXJhbWV0ZXIgaW4gcXVlcnkgdXRpbGl0eSBmdW5jdGlvbnMKCSAgVGhlIGlkZWEgd2FzIG9yaWdpbmFsbHkgdGhhdCBpZiBvbmUgcGFzc2VkICZkZXN0X2ZtdCB3aXRoCgkgIGRlc3RfZm10PUdTVF9GT1JNQVRfREVGQVVMVCwgdGhlbiB0aGUgY29kZSBhbnN3ZXJpbmcgdGhlIHF1ZXJ5CgkgIGNvdWxkIGNoYW5nZSBkZXN0X2ZtdCB0byB0aGUgYWN0dWFsIGRlZmF1bHQgZm9ybWF0IHVzZWQuIEhvd2V2ZXIsCgkgIGluIG1vcmUgdGhhbiBoYWxmIGEgZGVjYWRlIG9mIEdTdHJlYW1lciAwLjEwIG5vIHBpZWNlIG9mIGNvZGUgaW4KCSAgR1N0cmVhbWVyIGhhcyBldmVyIHVzZWQgdGhhdCBmZWF0dXJlLCBub3IgYXJlIHRoZXJlIHRoYXQgbWFueQoJICB1c2VycyBvZiB0aGlzIEFQSSB0aGF0IGFjdHVhbGx5IGNoZWNrIHdoZXRoZXIgdGhlIGZvcm1hdCByZXR1cm5lZAoJICBpcyB0aGUgb3JpZ2luYWwgZm9ybWF0IHBhc3NlZCBiZWZvcmUgdXNpbmcgdGhlIHZhbHVlcyByZXR1cm5lZC4KCSAgQWxzbywgaXQncyBqdXN0IGFubm95aW5nLXRvLXVzZSBBUEkgaW4gaXRzIG93biByaWdodC4KCSAgRm9yIGFsbCB0aGVzZSByZWFzb25zLCBtYWtlIGl0IHNvIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBpcwoJICBwYXNzZWQgZGlyZWN0bHkgYW5kIGNhbid0IGJlIGNoYW5nZWQgYnkgdGhlIGVsZW1lbnQgcXVlcmllZC4KCjIwMTEtMDctMjcgMTI6NTA6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA3LTI3IDEyOjQ5OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCBtb3JlIGNvbW1lbnRzCgoyMDExLTA3LTI3IDEyOjQ1OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogYWxzbyBwYXNzIGFsbG9jYXRpb24gcXVlcnkgaW4gaW5fcGxhY2UKCSAgV2hlbiB3ZSBhcmUgZG9pbmcgYW4gaW5fcGxhY2UgdHJhbnNmb3JtLCBkb24ndCBkbyB0aGUgYWxsb2NhdGlvbiBxdWVyeSBidXQgbGV0CgkgIHRoZSB1cHN0cmVhbSBlbGVtZW50IGRlY2lkZS4KCjIwMTEtMDctMjYgMjI6NDE6NTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJhc2U6IGFkZCBtaXNzaW5nIChvdXQpIGFubm90YXRpb24gZm9yIGJ5dGUgcmVhZGVyL3dyaXRlciBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTM4MQoKMjAxMS0wNy0yNyAxMDowOToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgX2NyZWF0ZSgpIGFuZCBfbWFrZSgpIHRvIGFsbG93IE5VTEwgb2JqZWN0IG5hbWVzCgoyMDExLTA3LTI2IDE4OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgdGhlIGdldGNhcHMgZnVuY3Rpb24KCSAgUmVmYWN0b3IgY2FsbGluZyB0aGUgR0VUQ0FQUyBmdW5jdGlvbiBhbmQgY2hlY2tzLgoJICBNb3ZlIHRoZSBmaWx0ZXIgY29kZSBpbiBvbmUgcGxhY2UuCgkgIFdoZW4gdXNpbmcgZml4ZWQgcGFkIGNhcHMsIGdldCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgY2FwcyBhbmQgdGhlbiBmYWxsYmFjawoJICB0byB0aGUgR0VUQ0FQUyBmdW5jdGlvbi4gV2UgdXNlZCB0byBzaW1wbHkgaWdub3JlIHRoZSBHRVRDQVBTIGZ1bmN0aW9uLCB3aGljaAoJICByZXN1bHRlZCBpbiB0cmFuc2Zvcm0gZWxlbWVudHMgcmV0dXJuaW5nIHRoZSB0ZW1wbGF0ZSBjYXBzIGluc3RlYWQgb2YgZG9pbmcgdGhlCgkgIGNhcHMgdHJhbnNmb3JtLgoKMjAxMS0wNy0yNiAxNTo0Mzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvbmx5IHVwZGF0ZSBjYXBzIHdoZW4gY2hhbmdlZAoJICBPbmx5IGNhbGwgdGhlIGV2ZW50IGZ1bmN0aW9uIHdpdGggdGhlIGNhcHMgZXZlbnQgd2hlbiB0aGUgY2FwcyBjaGFuZ2VkLgoKMjAxMS0wNy0yNiAxNDozNzo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTEtMDctMjYgMTI6MjE6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogbWFrZSBpdCBlYXN5IHRvIG92ZXJyaWRlIHRoZSBwYWQgcXVlcnkKCSAgQWRkIGEgdm1ldGhvZCB0byBoYW5kbGUgdGhlIHBhZCBxdWVyeS4KCSAgSW5zdGFsbCBhIGRlZmF1bHQgaGFuZGxlciBmb3IgdGhlIHBhZCBxdWVyeS4KCSAgQWRkIGEgdm1ldGhvZCB0byBzZXR1cCB0aGUgYWxsb2NhdGlvbiBwcm9wZXJ0aWVzLgoJICBVc2UgdGhlIG5ldyBxdWVyeSBmdW5jdGlvbiBpbiBmaWxlc2luawoKMjAxMS0wNy0yNiAxMjoyMDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRvY3MKCjIwMTEtMDctMjYgMTI6MjA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGFsbG9jYXRpb24gcXVlcnkganVzdCBiZWNhdXNlCgoyMDExLTA3LTI1IDE1OjIxOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDctMjUgMTI6NTM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHJhY2UgaW4gYnVmZmVycG9vbCByZWxlYXNlCgkgIEF2b2lkIHBsYXlpbmcgd2l0aCB0aGUgcmVmY291bnQgdG8gZGVjaWRlIHdoZW4gYSBidWZmZXIgaGFzIGJlZW4gcmVjeWNsZWQgYnkgdGhlCgkgIGRpc3Bvc2UgZnVuY3Rpb24uIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgdGhlbiB0ZW1wb3JhcmlseSBjYW4gaGF2ZSBhIGJ1ZmZlciB3aXRoCgkgIGEgcmVmY291bnQgPiAxIGJlaW5nIGFjcXVpcmVkIGZyb20gdGhlIHBvb2wsIHdoaWNoIGlzIG5vdCB3cml0YWJsZS4gSW5zdGVhZCB1c2UKCSAgYSBzaW1wbGUgYm9vbGVhbiByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZGlzcG9zZSBmdW5jdGlvbiB0byBpbmZvcm0gdGhlIGNhbGxlZAoJICB0aGF0IHRoZSBvYmplY3Qgd2FzIHJlY3ljbGVkIG9yIG5vdC4KCjIwMTEtMDctMjUgMTI6NDk6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIERFQlVHIGluc3RlYWQgb2YgRVJST1IgZm9yIGxvZ2dpbmcKCSAgRG9uJ3QgdXNlIHRoZSBFUlJPUiBsb2cgY2F0ZWdvcnkgYmVjYXVzZSB0aGUgYWxsb2NhdGlvbiBmYWlsdXJlIG1pZ2ggb25seSBiZQoJICBiYWNhdXNlIG9mIGEgc3RhdGUgY2hhbmdlLgoKMjAxMS0wNy0yNSAxMjoxNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHN0YXJ0IHdpdGggcmFpc2VkIGNvbnRyb2wgc29ja2V0CgkgIEluIHRoZSBpbmFjdGl2ZSBzdGF0ZSwgdGhlIGNvbnRyb2wgc29ja2V0IHNob3VsZCBiZSBpbiB0aGUgcmFpc2VkIHN0YXRlLCB3ZSB3aWxsCgkgIHJlbGVhc2UgaXQgd2hlbiB3ZSBzdGFydC4KCjIwMTEtMDctMjQgMTE6MjQ6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgIHB3ZDogZGlzY29udGlub3VzIGV2ZW50IC0+IG5ld3NlZ21lbnQgZXZlbnQKCSAgRml4IGEgMC44IGxlZnRvdmVyIGFzIG1lbnRpb25lZCBvbiBidWcgIzYyMTEyMS4KCjIwMTEtMDctMjQgMDk6MDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICB0YWxrIGFib3V0IHRoZSBiYXNldHJhbnNmb3JtIHNpbmtfZXZlbnQgdm1ldGhvZAoKMjAxMS0wNy0yMyAwODowMDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgIGNvbnRyb2xsZXI6IGZpeCBidWlsZCBmYWlsdXJlIGR1ZSB0byBjb21waWxlciB3YXJuaW5nCgkgIFByZXN1bWFibHkgd2l0aCBuZXdlciBHTGliIHZlcnNpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTUxNTUKCjIwMTEtMDctMjIgMjE6MTc6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHNpbmsgZXZlbnQgaGFuZGxpbmcKCSAgSW1wbGVtZW50IHRoZSBzaW5rIGV2ZW50IGhhbmRsaW5nIGxpa2UgdGhlIHNyYyBldmVudCBoYW5kbGVyLiBNYWtlIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHBhcnNlIGFuZCBmb3J3YXJkIHRoZSBldmVudC4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhY3R1YWxseQoJICByZXR1cm4gYW4gZXJyb3IgdmFsdWUgZnJvbSB0aGUgZXZlbnQgaGFuZGxlci4KCjIwMTEtMDctMjIgMTk6MTk6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaGFuZGxlIGZhaWx1cmVzCgkgIEhhbmRsZSBmYWlsdXJlIHRvIGFjdGl2YXRlIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wNy0yMiAxOToxMTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGltcHJvdmUgZGVidWdnaW5nLgoKMjAxMS0wNy0yMSAxODo1MDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCByZXNldF9idWZmZXIgdm1ldGhvZAoJICBBZGQgYSB2bWV0aG9kIHRvIHJlc2V0IGEgYnVmZmVyIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZS4gQWRkIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiB0aGF0IHJlc2V0cyB0aGUgZmxhZ3MsIHRpbWVzdGFtcHMgYW5kIG9mZnNldHMuCgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCjIwMTEtMDctMjEgMTc6NDI6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGJhc2V0cmFuczogUmVtb3ZlIHJlZiBpbiBwYXNzdGhyb3VnaAoJICBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IHRvIGhhdmUgdG8gcmV0dXJuIGEgcmVmIHRvIHRoZSBpbnB1dCBidWZmZXIgd2hlbiBpbgoJICBwYXNzdGhyb3VnaCBtb2RlLiBUaGlzIHNhdmVzIGEgZmV3IHJlZi91bnJlZiBjeWNsZXMgYW5kIGZpeGVzIGFub3RoZXIgMC4xMQoJICBGSVhNRS4KCjIwMTEtMDctMjEgMTc6Mjk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgbmV3ICBjb3B5X21ldGFkYXRhIHZtZXRob2QKCSAgTWFrZSBhIG5ldyBjb3B5X21ldGFkYXRhIHZtZXRob2QgYW5kIG1vdmUgdGhlIGNvZGUgdG8gY29weSB0aGUgdGltZXN0YW1wcywgZmxhZ3MKCSAgYW5kIG9mZnNldHMgaW50byBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBnaXZlIHRoZQoJICBzdWJjbGFzc2VzIGEgY2hhbmNlIHRvIG92ZXJyaWRlIHRoZSBjb3B5IG1ldGhvZC4KCjIwMTEtMDctMjEgMTY6NDk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMKCjIwMTEtMDctMjEgMTY6Mzk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhdm9pZCBpbnRlcm1lZGlhdGUgbWV0aG9kCgkgIFNpbXBseSBjYWxsIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgbWV0aG9kIGluc3RlYWQgb2YgY2FsbGluZyBhbiBpbnRlcm1lZGlhdGUKCSAgZnVuY3Rpb24uCgoyMDExLTA3LTIxIDE2OjMwOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgdGhlIG1ldGFkYXRhIGNvcHkgY29kZQoJICBNb3ZlIHRoZSBtZXRhZGF0YSBjb3B5IGNvZGUgdG8gdGhlIGRlZmF1bHQgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wNy0yMSAxNTo0OTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBjb2RlCgkgIE1vdmUgdGhlIGNvZGUgZm9yIHByZXBhcmVfb3V0cHV0X2J1ZmZlciB0byBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uIHRoaXMgYWxsb3dzCgkgIHVzIHRvIHNpbXBsaWZ5IHNvbWUgdGhpbmdzIGFuZCBoYXZlIHN1YmNsYXNzZXMgY2FsbCBpbnRvIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHdoZW4gbmVlZGVkLgoKMjAxMS0wNy0yMSAxNTo0ODoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvbmx5IGdldCBzaXplIGZvciBkZWJ1ZwoKMjAxMS0wNy0yMSAxNDoxODozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGZpeCBjb21tZW50IGFuZCB3YXJuCgkgIEVtaXQgYSB3YXJuaW5nIGluIHRoZSBkZWJ1ZyBsb2cgd2hlbiBzb21ldGhpbmcgc2VlbXMgd2VpcmQuCgoyMDExLTA3LTIxIDE0OjE0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgZ2V0IGNhcHMgZm9yIHNpemUgdHJhbnNmb3JtCgkgIERlbGF5IGdldHRpbmcgdGhlIGNhcHMgdW50aWwgd2UgbmVlZCB0byBjYWxsIHRoZSB0cmFuc2Zvcm1fc2l6ZSBmdW5jdGlvbi4KCjIwMTEtMDctMjEgMTM6NTY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGJhc2V0cmFuczogcmVtb3ZlIHVzZWxlc3MgdmFyaWFibGVzIGZyb20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIFJlbW92ZSB0aGUgY2FwcyBhbmQgc2l6ZSBmcm9tIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24uIHdpdGgKCSAgYnVmZmVycG9vbHMgYW5kIGNhcHNuZWdvIGRvbmUgZGlmZmVyZW50bHksIHdlIGRvbid0IG5lZWQgdGhpcyBpbiBtb3N0IGNhc2VzIGFuZAoJICBpZiB3ZSBkbywgd2UgY2FuIHNpbXBseSB1c2UgdGhlIHRyYW5zZm9ybV9zaXplIGZ1bmN0aW9uIGFuZCBnZXQgdGhlIGNhcHMgZnJvbQoJICB0aGUgc3JjcGFkLgoKMjAxMS0wNy0xOCAxNzoyMjo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgZG9jczogY2xhcmlmeSBjbG9ja3MgZG9jcyBpbiBtYW51YWwKCSAgQWZ0ZXIgYSBxdWVzdGlvbiBvbiB0aGUgbWFpbGluZyBsaXN0LCBtZW50aW9uIHRoYXQgKmZsdXNoaW5nKiBzZWVrcyByZXNldCB0aGUKCSAgcnVubmluZyB0aW1lLgoKMjAxMS0wNy0xNiAyMjowMDoxNSArMDMwMCAgUmFsdWNhIEVsZW5hIFBvZGl1YyA8cmFsdWNhZWxlbmExOTg1QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiByZW1vdmVkIGRvdWJsZSBuZWdhdGlvbiBpbiBldmVudC9tZXNzYWdlIHNlcSBudW0gZGVzY3JpcHRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDc1MQoKMjAxMS0wNy0xNiAxMjoyMToxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiBtYWtlIHN1cmUgbm9uLUFTQ0lJIGNoYXJzIGluIGZpbGVuYW1lcyBhcmUgZXNjYXBlZCB3aGVuIGNyZWF0aW5nIFVSSXMgZnJvbSB0aGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ2NzMKCjIwMTEtMDctMTUgMTY6MDQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgYWNjaWRlbnRhbGx5IGRpc2FibGUgdGhlIHBvb2wKCSAgV2hlbiB3ZSBzZXQgYSBwb29sIGFuZCBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgb2xkIHBvb2wsIGRvbid0IGRpc2FibGUgdGhlIHBvb2wuCgoyMDExLTA3LTE1IDEzOjI3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogY2FsbCByZWxlYXNlX2J1ZmZlciBhZnRlciBhbGxvYwoJICBBZnRlciB3ZSBhbGxvY2F0ZWQgYSBuZXcgYnVmZmVyLCBjYWxsIHRoZSByZWxlYXNlX2J1ZmZlciB2bWV0aG9kIHRvIHB1dCB0aGUgbmV3CgkgIGJ1ZmZlciBpbiB0aGUgcG9vbCBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgdGhlIHBvb2wgdXNlcyB0aGUgZGVmYXVsdAoJICByZWxlYXNlX21ldGhvZCBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDctMTUgMTE6NTI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIGZsdXNoaW5nCgoyMDExLTA3LTE1IDExOjUxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZGVidWcgbWVzc2FnZQoKMjAxMS0wNy0xNCAxMjo0NTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBwcmludGYgZm9ybWF0IGluIGRlYnVnIG1lc3NhZ2UKCjIwMTEtMDctMTMgMTE6Mzk6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdW5zZXQgUExBWUlORyB0cmFuc2l0aW9uIGZsYWcgd2hlbiB0cmFuc2l0aW9uIGNvbXBsZXRlZAoKMjAxMS0wNy0xMiAxNDowNzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggcmVzaXplIGZ1bmN0aW9uIHNvbWUgbW9yZQoJICBEb24ndCByZW1vdmUgbWVtb3J5IGJsb2NrcyBmcm9tIHRoZSBidWZmZXIgd2hlbiB3ZSBjbGlwIGFuZCByZXNpemUsIGluc3RlYWQgc2V0CgkgIHRoZSBtZW1vcnkgb2Zmc2V0IGFuZCBzaXplIHRvIDAuIFRoaXMgYWxsb3dzIHVzIHRvIG1ha2UgdGhlIGJ1ZmZlciBsYXJnZXIgYWdhaW4KCSAgbGF0ZXIuCgoyMDExLTA3LTEyIDEzOjQwOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBzaXplIGhhbmRsaW5nCgkgIEFsc28gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG11bHRpcGxlIGVtcHR5IG1lbW9yeSBibG9ja3MgYXJlIGluIHRoZSBidWZmZXIuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDExLTA3LTEyIDEyOjAwOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IF9yZXNpemUgc29tZSBtb3JlCgkgIEFkZCBtb3JlIGRlYnVnLgoJICBBbG93IHJlc2l6ZSB0byAwIGJ5dGVzLgoJICBEbyBjbGlwcGluZyBjb3JyZWN0bHkuCgkgIEFkZCBtb3JlIHVuaXQgdGVzdHMuIEFsc28gYWRkIGEgZmFpbGluZyB0ZXN0OiB3aGVuIHdlIHJlc2l6ZSB0byAwIGFuZCB0aGVuCgkgIHRyeSB0byByZXNpemUgYmFjayB0byB0aGUgb3JpZ2luYWwgc2l6ZSBpdCBmYWlscyBiZWNhdXNlIHRoZSBtZW1vcnkgd2FzCgkgIHJlbW92ZWQuCgoyMDExLTA3LTExIDE4OjAwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBuZWdhdGl2ZSBvZmZzZXRzIHNvbWUgbW9yZQoJICBBbGxvdyBmb3IgbmVnYXRpdmUgb2Zmc2V0cyB3aGVuIGRvaW5nIG1lbW9yeSBjb3B5IGFuZCBzaGFyZS4KCSAgQWRkIGZhc3QgcGF0aCBpbiB0aGUgX2dldF9zaXplcygpIGZ1bmN0aW9uLgoJICBGaXggcmVzaXplIGZvciBuZWdhdGl2ZSBvZmZzZXQgYW5kIGV4cGFuZGluZyB0aGUgYnVmZmVyLgoJICBBZGQgc29tZSB1bml0IHRlc3RzLgoKMjAxMS0wNy0xMSAxNjo0MzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgZGVmcyBmb3IgbmV3IG1ldGhvZHMKCjIwMTEtMDctMTEgMTY6NDI6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IF9yZXNpemUgYmV0dGVyCgoyMDExLTA3LTExIDE2OjE3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgYXBpIHRvIGdldCB0aGUgY3VycmVudCBtZW1vcnkgb2Zmc2V0CgkgIEFsc28gcmV0dXJuIHRoZSBvZmZzZXQgaW4gYSBHc3RNZW1vcnkgYmxvY2sgd2l0aCB0aGUgZ2V0X3NpemVzKCkgbWV0aG9kLiBUaGlzCgkgIGFsbG93cyB1cyB0byBmaWd1cmUgb3V0IGhvdyBtdWNoIHByZWZpeCB0aGVyZSBpcyB1bnVzZWQuCgkgIENoYW5nZSB0aGUgcmVzaXplIGZ1bmN0aW9uIHNvIHRoYXQgYSBuZWdhdGl2ZSBvZmZzZXQgY2FuIGJlIGdpdmVuLiBUaGlzIHdvdWxkCgkgIG1ha2UgaXQgcG9zc2libGUgdG8gcmVzaXplIHRoZSBidWZmZXIgc28gdGhhdCB0aGUgcHJlZml4IGJlY29tZXMgYXZhaWxhYmxlLgoJICBBZGQgZ3N0X2J1ZmZlcl9nZXRfc2l6ZXMoKSB0byByZXR1cm4gdGhlIG9mZnNldCBhbmQgbWF4c2l6ZSBhcyB3ZWxsIGFzIHRoZSBzaXplLgoJICBBbHNvIGNoYW5nZSB0aGUgYnVmZmVyIHJlc2l6ZSBtZXRob2Qgc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBhIG5lZ2F0aXZlIG9mZnNldAoJICB0byByZW1vdmUgcHJlZml4IGJ5dGVzLgoKMjAxMS0wNy0xMSAxNDo0MDowNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgc29tZSBtZW1vcnkgd3JhcHBlZCBidWZmZXIgYWxsb2NhdGlvbiBoZWxwZXJzCgoyMDExLTA3LTExIDEyOjExOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogY2xlYW51cCBoZWFkZXJzCgoyMDExLTA3LTExIDExOjQwOjA4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZWF0IGluY29taW5nIGNhcHMgZXZlbnQKCSAgLi4uIGFzIGl0IGlzIHR5cGljYWxseSB1cCB0byBiYXNlY2xhc3MgdG8gc2V0IHByb3BlciBzcmMgY2Fwcy4KCjIwMTEtMDctMTEgMTE6Mzc6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGF2b2lkIGluYWR2ZXJ0ZW50bHkgZHJvcHBpbmcgYW4gZXZlbnQKCSAgLi4uIHBhcnRpY3VsYXJseSBhIG5vbi1zdGlja3kgc2VyaWFsaXplZCBldmVudCB0aGF0IGhhcHBlbnMgdG8gcGFzcwoJICB3aGVuIGFuIGV2ZW50IHVwZGF0ZSBpcyBwZW5kaW5nLgoKMjAxMS0wNy0wNCAxMjo1ODo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0cnkgaGFyZGVyIHRvIGFycmFuZ2UgaW5jcmVhc2luZyBwb3NpdGlvbiByZXBvcnRpbmcKCSAgLi4uIHJhdGhlciB0aGFuIGhhdmluZyBhIG1vbWVudGFyeSBkZWNyZWFzaW5nIG9uZSB3aGlsZSB0cmFuc2l0aW9uaW5nCgkgIHRvIFBMQVlJTkcuCgkgIEZpeGVzICM2MjgwMjEuCgoyMDExLTA3LTA4IDE2OjA3OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgoyMDExLTA3LTA2IDE1OjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG1ha2UgaWR4IGFyZ3VtZW50IHRvIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKSBzaWduZWQKCSAgU2luY2UgLTEgaXMgYWNjZXB0YWJsZSwgaXQgc2hvdWxkIGJlIHNpZ25lZC4KCjIwMTEtMDctMDcgMTQ6NTc6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggaW52YWxpZCBtZW1vcnkgYWNjZXNzIGluIGRlYnVnIG1lc3NhZ2VzCgkgIERvbid0IHVzZSBidWZmZXJzIHRoYXQgd2UndmUgZ2l2ZW4gYXdheSBvciB1bnJlZmVkIGluIGRlYnVnIG1lc3NhZ2VzLgoKMjAxMS0wNy0wNyAxMToxNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggYWZ0ZXIgbWVyZ2UKCjIwMTEtMDctMDcgMTE6MTM6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMDctMDYgMTY6MDg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgbWVtc2V0IGZ1bmN0aW9uCgoyMDExLTA3LTA2IDEyOjA5OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggZ3VhcmRzIGZvciBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5KCkKCSAgU2luY2UgaWR4ID0gLTEgbWFrZXMgaXQgZGVmYXVsdCB0byBpZHg9bGVuLCBsZW4gaXMgYWxzbwoJICBhIHZhbGlkIGlucHV0IGlkeC4KCjIwMTEtMDctMDUgMTY6Mzg6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGNsYXNzIHJlZi91bnJlZgoKMjAxMS0wNy0wNSAxNjozMjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICB0ZXN0OiBkaXNhYmxlIGZhaWxpbmcgdW5pdCB0ZXN0cwoJICBEaXNhYmxlIHVuaXQgdGVzdHMgdGhhdCBhcmUgZmFpbGluZyB1bnRpbCBzb21lb25lIHBvcnRzIHRoaXMgdG8gMC4xMQoKMjAxMS0wNy0wNSAxNjoyMDowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeCB1bml0IHRlc3QKCSAgU2V0IHRoZSByaWdodCBwb3NpdGlvbiBtZW1iZXIgaW4gdGhlIHNlZ21lbnQgZXZlbnQuCgkgIEFkZCBzb21lIGRlYnVnIHRvIHF1ZXVlLgoKMjAxMS0wNy0wNSAwMDoxMDoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdzdDogbWFrZSBjb21waWxlciB3YXJuIGFib3V0IHVuc3RhYmxlIEFQSSBpZiBHU1RfVVNFX1VOU1RBQkxFX0FQSSBpcyBub3QgZGVmaW5lZAoJICBBbmQgZGVmaW5lIGl0IGluIG91ciBvd24gYnVpbGQuCgoyMDExLTA3LTA1IDAwOjEyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGxhdGVzdCBBUEkgY2hhbmdlcy9hZGRpdGlvbnMKCjIwMTEtMDYtMzAgMTc6Mzk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBzbmVha2lseSBtZXNzIHdpdGggY3VycmVudCBvZmZzZXQgd2hlbiB1cGRhdGluZyBsZW5ndGgKCjIwMTEtMDYtMjggMjI6MTg6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVucmVmIGFsbG9jYXRpb24gcXVlcnkgd2hlbiBubyBsb25nZXIgbmVlZGVkCgoyMDExLTA2LTI4IDE5OjAxOjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhdm9pZCBpdGVyYXRpbmcgb3ZlciBhIHNpbmdsZSBOVUxMIHBhZAoKMjAxMS0wNi0yMCAyMzoyODowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgUmVtb3ZlIEdzdEltcGxlbWVudHNJbnRlcmZhY2UKCSAgSXQgd2FzIGEgYml0IHRvbyBjbGV2ZXIsIGFuZCBkaWRuJ3QgcmVhbGx5IHdvcmsgYXMgYW4gQVBJLAoJICBjb25mdXNpbmcgcGVvcGxlIHRvIG5vIGVuZC4gQmV0dGVyIGltcGxlbWVudCBzcGVjaWZpYyBtZXRob2RzCgkgIHdoZXRoZXIgYW4gaW50ZXJmYWNlIGlzIHVzYWJsZS9hdmFpbGFibGUvcmVhZHkgb24gdGhlIGludGVyZmFjZQoJICBpdHNlbGYsIG9yIGV2ZW4gYWRkIEdFcnJvciBhcmd1bWVudHMsIHJhdGhlciB0aGFuIHRyeSB0byBoYXZlCgkgIHBlci1pbnN0YW5jZSBpbnRlcmZhY2VzLgoKMjAxMS0wNi0yNSAxMzo1MTo1MiAtMDcwMCAgRW1tYW51ZWwgUGFjYXVkIDxlbW1hbnVlbC5wYWNhdWRAbGFwcC5pbjJwMy5mcj4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IENoZWNrIGZvciBQUl9TRVRfTkFNRSBiZWZvcmUgdXNpbmcKCSAgRml4ZXM6ICM2NTMxNzIuCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAxMS0wNi0yMyAxMToyNzo1MiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDY5Yjk4MWYgdG8gNjA1Y2Q5YQoKMjAxMS0wNi0yMyAxODowMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIG1ldGFkYXRhCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhIGNlcnRhaW4gbWV0YWRhdGEgaXMgc3VwcG9ydGVkIGluIHRoZSBBTExPQ0FUSU9OCgkgIHF1ZXJ5LgoKMjAxMS0wNi0yMiAxODowNzoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jcyBhIGxpdHRsZQoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2Mgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdmlkZW9tZXRhZGF0YS4KCjIwMTEtMDYtMjIgMTc6MTI6MzQgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiB1c2UgJiBpbnN0ZWFkIG9mICYmIGZvciBtYXNraW5nIGJpdHMKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTc6MDk6NTIgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSByZWR1bmRhbnQgKCkKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTc6MDU6MjcgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2Vla3N0b3AKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTY6NTg6NTMgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogY2FzdCB0byByaWdodCB0eXBlCgkgIFNlZSAjNjUzMTM3CgoyMDExLTA2LTIyIDE2OjM4OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHVyaTogcmVtb3ZlIHNvbWUgX2Z1bGwgdmFyaWFudHMKCjIwMTEtMDYtMjIgMTY6MTY6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICB0YWdzOiBSZW1vdmUgY3JhenkgdGFnIG1lc3NhZ2VzCgkgIERvbid0IG1peCBtZXNzYWdlcyBhbmQgcGFkcyBhbmQgdGFncy4KCSAgTWFrZSB0aGUgc2luayBwb3N0IHRhZyBtZXNzYWdlcyB3aGVuIGEgdGFnIGV2ZW50IGlzIHJlY2VpdmVkLgoJICBTaW5jZSB0YWdzIGFyZSBzdGlja3kgb24gcGFkcyBub3csIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZXJlCgkgIHdoZW4gbmVlZGVkLgoKMjAxMS0wNi0yMiAxMjoyODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBjYXBzOiBIaWRlIGltcGxlbWVudGF0aW9uIGRldGFpbHMKCSAgTWFrZSB0aGUgQXJyYXkgb2Ygc3RydWN0dXJlcyBwcml2YXRlLiBUaGlzIHNob3VsZCBhbGxvdyB1cyB0byBpbXBsZW1lbnQKCSAgdGhlIGFycmF5IG1vcmUgZWZmaWNpZW50bHkgb3Igd2l0aCBzb21lIHByZWFsbG9jYXRlZCBzdHJ1Y3R1cmVzIHdoZW4KCSAgd2Ugd2FudCB0byBsYXRlci4KCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBjbGVhbiB1cCBhIHN0YXRpYyBzdHJ1Y3R1cmUgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHNvbWUgY29kZQoJICB0aGF0IHBva2VzIGludG8gdGhlIHByaXZhdGUgYml0cyBvZiB0aGUgY2Fwcy4KCjIwMTEtMDYtMjIgMTI6MjY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIG5lZ290aWF0aW9uIGRlc2lnbiBkb2MKCjIwMTEtMDYtMjIgMTE6NDI6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgbWVtb3J5OiByZW5hbWUgR3N0TWVtb3J5QWxsb2NhdG9yIC0+IEdzdEFsbG9jYXRvcgoJICBzaW1wbGlmeSB0aGUgbmFtZSBvZiB0aGUgYWxsb2NhdG9yIG9iamVjdC4KCjIwMTEtMDYtMjEgMTc6NTQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaAoJICB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oCgoyMDExLTA2LTIxIDE3OjQ3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYwoKMjAxMS0wNi0yMSAxNzo0NzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNi0yMSAxNToxNTo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkgIGltYWdlczogc3RyaXAgaW1hZ2VzIG9mIGV4dHJhIHRleHQgdGFncwoKMjAxMS0wNi0yMSAxMjozMjo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHJldHVybiBlbXB0eSBtZXRhZGF0YSBhcnJheQoJICBSZXR1cm4gYSBzdHJpbmcgYXJyYXkgd2l0aCBOVUxMIGluc3RlYWQgb2YgTlVMTCBmcm9tIHRoZSBkZWZhdWx0IGdldF9tZXRhcwoJICBmdW5jdGlvbi4KCjIwMTEtMDYtMjEgMTI6MzE6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGV2ZW50IGZ1bmN0aW9uIGRpcmVjdGx5CgkgIFdlIHdpbGwgbmV2ZXIgZ28gaW4gdGhpcyBjb2RlIHBhdGggZm9yIENBUFMgZXZlbnRzIHNvIGRpcmVjdGx5IGNhbGwgdGhlIGV2ZW50CgkgIGZ1bmN0aW9uLgoKMjAxMS0wNi0yMSAxMDoyOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3RpZnkgY2FwcyBhZnRlciB3ZSBzdG9yZSB0aGUgbmV3IGNhcHMKCSAgbm90aWZ5IGNhcHMgYWZ0ZXIgd2Ugc3RvcmUgdGhlIG5ldyBjYXBzIHNvIHRoYXQgdGhlIG5ldyBjYXBzIGFyZSBhY3R1YWxseQoJICB2aXNpYmxlIGZvciB0aGUgYXBwLgoKMjAxMS0wNi0yMCAxNzozMjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhY3RpdmF0ZSB0aGUgYnVmZmVycG9vbAoJICBhbHdheXMgYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wsIGV2ZW4gaWYgd2UgZ2V0IGl0IGZyb20gdGhlIGFsbG9jYXRpb24KCSAgcXVlcnkuCgoyMDExLTA2LTIwIDE3OjMyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFsd2F5cyBhY3RpdmF0ZSB0aGUgcG9vbCB3ZSBnZXQKCSAgQWN0aXZhdGUgdGhlIHBvb2wgd2hlbiB3ZSBnZXQgaXQgZnJvbSB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCjIwMTEtMDYtMjAgMTY6NDc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGlucHJvdmUgYWxsb2NhdGlvbiBoYW5kbGluZwoJICBBZGQgdm1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byBpbmZsdWVuY2UgdGhlIHBvb2wgYW5kIGFsbG9jYXRvci4KCSAgTG9nIHdoZW4gcXVlcnkgZmFpbHMuCgkgIFJlc3BlY3QgbmVnb3RpYXRlZCBhbGxvY2F0b3IgYW5kIGFsaWdubWVudC4KCjIwMTEtMDYtMjAgMTY6NDY6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSW1wcm92ZSBsb2dnaW5nCgkgIExvZyB3aGVuIHRoaW5ncyBmYWlsLgoJICBGaXggYSBxdWVyeSBsZWFrLgoKMjAxMS0wNi0yMCAxNjo0NDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogaW1wcm92ZSBkZWJ1ZwoJICBMb2cgYSBkZWJ1ZyBsaW5lIHdoZW4gdGhlcmUgaXMgbm8gdGFyZ2V0IHBhZCBhbmQgd2hlbiB0aGlzIG1ha2VzIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIGZhaWwuCgkgIFRha2UgdGhlIGludGVybmFsIHBhZHMgZGlyZWN0bHkgd2hlbiB3ZSBjYW4uCgoyMDExLTA2LTIwIDE1OjQwOjUxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBidW1wIHJlcXVpcmVkIEdMaWIgdG8gMi4yNgoKMjAxMS0wNi0yMCAxMzoyNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBmdW5jdGlvbiB0byBzZXQgbWV0YWRhdGEgYXBpCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIHJldHJpZXZlIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBtZXRhZGF0YSBhcGlzIGZyb20gdGhlIHRoZQoJICBidWZmZXJwb29sLgoJICBBZGQgZnVuY3Rpb25zIHRvIGNvbmZpZ3VyZSBhbmQgcXVlcnkgdGhlIGNvbmZpZ3VyZWQgbWV0YWRhdGEgYXBpcyBpbiBhCgkgIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbi4KCjIwMTEtMDYtMTkgMTM6MTU6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IE1pbm9yIGZpeCB0byBkb2NzCgkgIEFkZHMgbWlzc2luZyBwYXJhbWV0ZXIgdG8gZG9jcyBvZiBnc3RfYnVmZmVyX2NvcHlfcmVnaW9uCgoyMDExLTA2LTE4IDE3OjM1OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZG9fZXZlbnRfYWN0aW9ucwoJICBkb19ldmVudF9hY3Rpb25zIHdhcyBhbHdheXMgdXNlZCBhcyBUUlVFCgoyMDExLTA2LTE4IDE0OjM4OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBnb2JqZWN0LWludHJvc3BlY3Rpb24gcmVxdWlyZW1lbnQgdG8gPj0gMC42LjgKCSAgRm9yIC0tYWRkLWluaXQtc2VjdGlvbgoKMjAxMS0wNi0xNiAxNzoyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBCdW1wIGdpdCB2ZXJzaW9uIGFmdGVyIHVucGxhbm5lZCAwLjEwLjM1IHJlbGVhc2UKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAuMzUnCgoyMDExLTA2LTE0IDE3OjU3OjIxICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IHR5cG8gaW4gZG9jdW1lbnRhdGlvbgoJICBGaXhlcyAjNjUyNTc3LgoKMjAxMS0wNi0xNiAxMDo1NToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmV2ZXJ0ICJ1dGlsczogcmVtb3ZlIHNvbWUgbWFjcm9zIG5vdyBpbiBnbGliIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGRlMjlhZTdiOTI5Y2VkYmY2Yjk4MzhlYTUzYjA1ZWZhYmRjZTRjZTcuCgkgIFJlLWFkZHMgR0ZMT0FUX1RPX0xFLCBHRkxPQVRfVE9fQkUsIEdET1VCTEVfVE9fTEUsIGFuZCBHRE9VQkxFX1RPX0JFLgoJICBUdXJucyBvdXQgdGhlc2UgYXJlbid0IGluIEdMaWIgeWV0IGFmZXIgYWxsIChzaW5jZSB3ZSBkaWRuJ3QKCSAgYWN0dWFsbHkgb3BlbiBhIGJ1ZyB0byBnZXQgdGhlbSBhZGRlZC4uKQoKPT09IHJlbGVhc2UgMC4xMC4zNSA9PT0KCjIwMTEtMDYtMTUgMTk6MTU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjM1CgkgIFRoaXMgaXMgYW4gYWQtaG9jIHJlbGVhc2UgdGhhdCBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIDAuMTAuMzQ6CgkgICogd29yayBhcm91bmQgR0xpYiBhdG9taWMgb3BzIEFQSSBjaGFuZ2UKCSAgKiBzb21lIG1pbm9yIHdpbjMyL21pbmd3IGZpeGVzCgkgICogZG9uJ3QgdXNlIEdfQ09OU1RfUkVUVVJOIGluIHB1YmxpYyBoZWFkZXJzCgoyMDExLTA2LTE1IDE2OjU2OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgoyMDExLTA2LTA5IDE3OjEzOjM1ICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgImNvbnN0IiBpbnN0ZWFkIEdfQ09OU1RfUkVUVVJOCgkgIEdfQ09OU1RfUkVUVVJOIHdpbGwgYmUgZGVwcmVjYXRlZCBzb29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMjExCgoyMDExLTA2LTA0IDAwOjMwOjE1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBXb3JrIGFyb3VuZCBjaGFuZ2VzIGluIGdfYXRvbWljIEFQSQoJICBTZWUgIzY1MTUxNCBmb3IgZGV0YWlscy4gIEl0J3MgYXBwYXJlbnRseSBpbXBvc3NpYmxlIHRvIHdyaXRlIGNvZGUKCSAgdGhhdCBhdm9pZHMgYm90aCB0eXBlIHB1bm5pbmcgd2FybmluZ3Mgd2l0aCBvbGQgZ19hdG9taWMgaGVhZGVycyBhbmQKCSAgYXNzZXJ0aW9ucyBpbiB0aGUgbmV3LiAgVGh1cywgbWFjcm9zIGFuZCBhIHZlcnNpb24gY2hlY2suCgoyMDExLTA1LTI1IDEzOjQwOjMwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogUGxhY2F0ZSBnY2MgYnkgZGVmaW5pbmcgRVdPVUxEQkxPQ0sgdG8gc29tZXRoaW5nCgoyMDExLTA1LTI1IDEyOjQ3OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCBXQUtFX0VWRU5UKCkgdG8gYmVoYXZlIHBvc2l4bHkgb24gV2luZG93cwoKMjAxMS0wNi0xNCAxNToxODoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvcmFuZG9tL3N0YXR1cy0wLjExLTE0LWp1bi0yMDExLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTEtMDYtMTMgMTk6MTA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA2LTEzIDE2OjMxOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgYnVmZmVyOiBhZGQgaW5kZXggdG8gX3Rha2VfbWVtb3J5KCkKCSAgQWRkIGFuIGluZGV4IHRvIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKSBzbyB0aGF0IHdlIGNhbiBhbHNvIGluc2VydCBtZW1vcnkgYXQgYQoJICBjZXJ0YWluIG9mZnNldC4gVGhpcyBpcyBtb3N0bHkgaW50ZXJlc3RpbmcgdG8gcHJlcGVuZCBhIGhlYWRlciBtZW1vcnkgYmxvY2sgdG8KCSAgdGhlIGJ1ZmZlci4KCjIwMTEtMDYtMTMgMTY6MzA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZm9yd2FyZCBzY2hlZHVsaW5nIHF1ZXJ5CgkgIFRoZSBzY2hlZHVsaW5nIHF1ZXJ5IHNob3VsZCBub3QgYmUgZm9yd2FyZGVkLCBiZWNhdXNlIGVsZW1lbnRzIG5lZWQgdG8gaW1wbGVtZW50CgkgIHNwZWNpYWwgY29kZSB0byBoYW5kbGUgZGlmZmVyZW50IHNjaGVkdWxpbmcgbWV0aG9kcy4KCjIwMTEtMDYtMTMgMTI6MDc6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBiYXNlc3JjOiBBbGxvY2F0b3IgYnVmZmVycyBmcm9tIG5lZ290aWF0ZWQgYWxsb2NhdG9yCgkgIEFsbG9jYXRlIGJ1ZmZlcnMgZnJvbSB0aGUgbmVnb3RpYXRlZCBhbGxvY2F0b3Igb3IgYnVmZmVycG9vbC4KCSAgSGFuZGxlIHRoZSBzdGF0ZSBvZiB0aGUgYnVmZmVycG9vbCB3aGVuIGZsdXNoaW5nLgoJICBBZGQgZmlsbCBtZXRob2QgdG8gcHVzaHNyYy4KCjIwMTEtMDYtMTMgMTI6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgZGVidWcKCjIwMTEtMDYtMTMgMTE6NTE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBzbWFsbCBpbmRlbnRhdGlvbiBmaXgKCjIwMTEtMDYtMTMgMTE6NTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBwYXNzIHRoZSBhbGxvY2F0b3IgYXMgY29uc3QKCjIwMTEtMDYtMTMgMTA6MTk6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IG5lZ290aWF0ZSBhbGxvY2F0aW9uCgkgIEFkZCB2bWV0aG9kIHRvIGNvbmZpZ3VyZSBhbGxvY2F0aW9uIG1ldGhvZHMuCgkgIFJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKCjIwMTEtMDYtMTEgMjA6NDU6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBzb21lIG1vcmUgY2hlY2tzCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSBhbGlnbm1lbnQgaXMgdmFsaWQuCgkgIFdoZW4gd2UgaGF2ZSBhIDAgc2l6ZSAodmFyaWFibGUgYnVmZmVyIHNpemUpLCB3ZSBjYW4ndCBoYXZlIGEgYnVmZmVycG9vbC4KCjIwMTEtMDYtMTEgMTk6NTQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHNldCBhbGwgZGVmYXVsdCB2YWx1ZXMKCSAgRmlsbCBhbGwgcXVlcnkgdmFsdWVzIHdpdGggZ29vZCBkZWZhdWx0cy4KCjIwMTEtMDYtMTEgMTg6NTI6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVycG9vbDogcmVtb3ZlIHBvc3RmaXggcGFyYW1ldGVyCgkgIFJlbW92ZSB0aGUgcG9zdGZpeCBwYXJhbWV0ZXIsIGl0J3Mgbm90IHVzZWQgYW5kIGNhbiBiZSBkb25lIGRpZmZlcmVudGx5LgoKMjAxMS0wNi0xMCAxNzo1MDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBzYW1lIGFsaWdubWVudCB2YWx1ZXMgYXMgR3N0TWVtb3J5CgkgIFVzZSB0aGUgc2FtZSBhbGlnbm1lbnQgdmFsdWVzIGZvciB0aGUgYnVmZmVycG9vbCBhcyB3ZSB1c2UgZm9yIHRoZSBHc3RNZW1vcnkKCSAgQVBJLgoKMjAxMS0wNi0xMCAxNzozMjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgbmV3IF9jaGVja19yZWNvbmZpZ3VyZSgpIG1ldGhvZAoKMjAxMS0wNi0xMCAxNzozMjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBfY2hlY2tfcmVjb25maWd1cmUoKSBtZXRob2QKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGFuZCBjbGVhciB0aGUgUkVDT05GSUdVUkUgZmxhZyBvbiBhIHBhZC4KCjIwMTEtMDYtMTAgMTY6NDc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBpbiBtZW1vcnkKCSAgRml4IHRoZSBjb2RlIHRvIHN1cHBvcnQgYWxsb2NhdGluZyB0aGUgYnVmZmVyIGFuZCBtZW1vcnkgaW4gb25lIG1lbW9yeSBibG9jay4KCSAgQWRkIGFuIGV4dHJhIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBtZW1vcnkgb2YgdGhlIGJ1ZmZlci4KCSAgVGhpcyBjb2RlIGlzIGRpc2FibGVkIHN0aWxsIGJlY2F1c2Ugb2YgY29tcGxpY2F0aW9ucy4KCjIwMTEtMDYtMTAgMTY6NDY6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBleHBvc2UgZGVmYXVsdCBhbGlnbm1lbnQKCSAgRXhwb3J0IHRoZSBnc3RfbWVtb3J5X2FsaWdubWVudCB2YXJpYWJsZSBzbyB0aGF0IG90aGVycyBjYW4ga25vdyB0aGUgZGVmYXVsdAoJICBjb25maWd1cmVkIGFsaWdubWVudCBvZiB0aGUgc3lzdGVtLgoKMjAxMS0wNi0xMCAxNjoxOTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggaXNfc3BhbgoJICBTdWJ0cmFjdCB0aGUgb2Zmc2V0IG9mIHRoZSBwYXJlbnQgZnJvbSBpc19zcGFuLgoKMjAxMS0wNi0xMCAxMzo1OTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogcmVzcGVjdCBjb25maWd1cmVkIGFsaWdubWVudAoJICBNb3ZlIHRoZSBhbGlnbm1lbnQgZnJvbSBHc3RCdWZmZXIgdG8gR3N0TWVtb3J5LgoJICBtYWtlIHN1cmUgbWVtb3J5IGlzIGF0IGxlYXN0IGFsaWduZWQgdG8gdGhlIGNvbmZpZ3VyZWQgdmFsdWVzLgoKMjAxMS0wNi0xMCAxMzo0MDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgYnVmZmVyOiBtYWtlIG5ldyBfYnVmZmVyX2FsbG9jYXRlIG1ldGhvZAoJICBNYWtlIGEgbmV3IG1ldGhvZCB0byBhbGxvY2F0ZSBhIGJ1ZmZlciArIG1lbW9yeSB0aGF0IHRha2VzIHRoZSBhbGxvY2F0b3IgYW5kIHRoZQoJICBhbGlnbm1lbnQgYXMgcGFyYW1ldGVycy4gUHJvdmlkZSBhIG1hY3JvIGZvciB0aGUgb2xkIG1ldGhvZCBidXQgcHJlZmVyIHRvIHVzZQoJICB0aGUgbmV3IG1ldGhvZCB0byBlbmNvdXJhZ2UgcGx1Z2lucyB0byBuZWdvdGlhdGUgdGhlIGFsbG9jYXRvciBwcm9wZXJseS4KCjIwMTEtMDYtMTAgMTI6NDQ6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogdXBkYXRlIGZvciBnc3RfYmFzZV9zcmNfc2V0X2R5bmFtaWNfc2l6ZQoJICBBZGQgdG8gc2VjdGlvbnMgZmlsZSBhbmQgYWRkIFNpbmNlOiBtYXJrZXIuIEFsc28gdXBkYXRlCgkgIHdpbjMyIC5kZWYgZmlsZS4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfc2V0X2R5bmFtaWNfc2l6ZSgpCgoyMDExLTA2LTEwIDEzOjQ0OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkZXNpZ246IHBhcnQtYnVmZmVybGlzdC50eHQgd2FzIG1lcmdlZCBpbnRvIGFub3RoZXIgZG9jCgoyMDExLTA2LTEwIDEzOjM0OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFVwZGF0ZSBzZWN0aW9ucyBmaWxlcyBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTEwIDEzOjEwOjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZm9yIGFkZGVkL3JlbW92ZWQgc3ltYm9scwoKMjAxMS0wNi0xMCAxMzowNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBmaWxsIHZtZXRob2QgdG8gYmFzZXNyYwoJICBBZGQgYSBuZXcgZmlsbCB2aXJ0dWFsIG1ldGhvZCB0byBiYXNlc3JjLiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0byBmaWxsCgkgIGEgcHJvdmlkZWQgYnVmZmVyIHdpdGggZGF0YS4KCSAgQWRkIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY3JlYXRlIG1ldGhvZCB0aGF0IGFsbG9jYXRlcyBhIGJ1ZmZlciBhbmQKCSAgY2FsbHMgdGhlIGZpbGwgbWV0aG9kIG9uIGl0LiBUaGlzIHdvdWxkIGFsbG93IHRoZSBiYXNlIGNsYXNzIHRvIGltcGxlbWVudAoJICBidWZmZXJwb29sIGFuZCBhbGxvY2F0b3IgbmVnb3RpYXRpb24gb24gYmVoYWxmIG9mIHRoZSBzdWJjbGFzc2VzLgoJICBGaXggdGhlIGJsb2Nrc2l6ZSBwcm9wZXJ0eS4KCSAgTWFrZSBmaWxlc3JjIHVzZSB0aGUgbmV3IGZpbGwgbWV0aG9kLgoKMjAxMS0wNi0xMCAxMjowOTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYwoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaAoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYwoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oCgoyMDExLTA2LTEwIDExOjU1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiBhZGQgcmVzZXRfdGltZSBib29sZWFuIHRvIGZsdXNoX3N0b3AgZXZlbnQKCSAgQWRkIGEgYm9vbGVhbiB0byB0aGUgZmx1c2hfc3RvcCBldmVudCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGltcGxlbWVudCBmbHVzaGVzCgkgIHRoYXQgZG9uJ3QgcmVzZXRfdGltZS4KCSAgTWFrZSBiYXNlc2luayBwb3N0IGFzeW5jX2RvbmUgd2l0aCB0aGUgcmVzZXRfdGltZSBwcm9wZXJ0eSBmcm9tIHRoZSBmbHVzaCBzdG9wCgkgIGV2ZW50LgoJICBGaXggc29tZSB1bml0IHRlc3RzCgoyMDExLTA2LTA5IDE3OjEzOjM1ICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgImNvbnN0IiBpbnN0ZWFkIEdfQ09OU1RfUkVUVVJOCgkgIEdfQ09OU1RfUkVUVVJOIHdpbGwgYmUgZGVwcmVjYXRlZCBzb29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMjExCgoyMDExLTA2LTA5IDEzOjM3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgZXZlbnQgbWV0aG9kcyB0byByZXBsYWNlIGV2ZW50cwoJICBVc2luZyB0aGUgbmV3IGV2ZW50IG1ldGhvZHMsIHdlIGNhbiBhdG9taWNhbGx5IHRyYW5zZmVyIHRoZSBldmVudCBmcm9tIHRoZQoJICBwZW5kaW5nIGxpc3QgdG8gdGhlIGFjdGl2ZSBsaXN0LgoKMjAxMS0wNi0wOSAxMzozNjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBtYWNyb3MgZm9yIG5ldyBtaW5pb2JqZWN0IG1ldGhvZHMKCjIwMTEtMDYtMDkgMTM6MzU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBhZGQgbmV3IG1ldGhvZHMgdG8gbWFuYWdlIG1pbmlvYmplY3QgcG9pbnRlcnMKCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBzdGVhbCB0aGUgbWluaW9iamVjdCBzdG9yZWQgYXQgYSBsb2NhdGlvbi4KCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBzdG9yZSBhIG1pbmlvYmplY3QgaW4gYSBsb2NhdGlvbiBhbmQgdGFraW5nIG93bmVyc2hpcAoJICBvZiB0aGUgbWluaW9iamVjdC4KCjIwMTEtMDYtMDkgMTM6MzQ6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IGhlYWRlcgoKMjAxMS0wNi0wOSAxMjozMTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggc3B1cmlvdXMgaW5jbHVkZQoKMjAxMS0wNi0wOSAxMjowMTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0wNi0wOSAxMTozOTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHBhZDogZm9yd2FyZCBldmVudHMgYnkgZGVmYXVsdAoJICBBbHdheXMgZm9yd2FyZCBhbGwgZXZlbnRzIGluIHRoZSBkZWZhdWx0IGhhbmRsZXIuIFByZXZpb3VzbHkgaXQgdXNlZCB0byBub3QKCSAgZm9yd2FyZCBjYXBzIGV2ZW50cyBieSBkZWZhdWx0LiBJdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGZvcndhcmQgdGhlIGNhcHMgZXZlbnRzLAoJICBpZiB0aGUgZWxlbWVudCBpcyBpbnRlcmVzdGVkIGluIHRoZSBjYXBzLCBpdCB3aWxsIGltcGxlbWVudCBhbiBldmVudCBoYW5kbGVyIHRvCgkgIHJldHJpZXZlIHRoZSBjYXBzIGFuZCB0aGVuIGl0IGNhbiBkZWNpZGUgdG8gZm9yd2FyZCBvciBub3QuIElmIHRoZSBlbGVtZW50IGhhcwoJICBubyBldmVudCBoYW5kbGVyLCBpdCBwcm9iYWJseSBqdXN0IGRvZXNuJ3QgY2FyZSBhYm91dCBjYXBzIGFuZCBpdCBwcm9iYWJseSBpcwoJICBhbHNvIG5vdCBnb2luZyB0byBtb2RpZnkgdGhlIGRhdGEgaW4gYSB3YXkgdGhhdCBuZWVkcyBhIGNhcHMgY2hhbmdlLgoKMjAxMS0wNi0wOSAxMToxMzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggdHlwbyBpbiBkb2NzCgoyMDExLTA2LTA4IDE4OjIyOjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvZmRzcmM6IGluZGljYXRlIGR5bmFtaWMgc2l6ZSBoYW5kbGluZyB0byBiYXNlc3JjCgoyMDExLTA2LTA4IDE4OjIyOjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogYWRkIGR5bmFtaWMgc2l6ZSBoYW5kbGluZwoJICBUaGlzIGFsbG93cyBzdWJjbGFzcyB0byBpbmRpY2F0ZSB0aGF0IHNpemUgcmVwb3J0ZWQgYnkgc3JjIG1heSBub3QgYmUgc3RhdGljCgkgIGFuZCBzaG91bGQgYXMgc3VjaCBiZSB1cGRhdGVkIHJlZ3VsYXJseSwgcmF0aGVyIHRoYW4gb25seSB3aGVuIHJlYWxseQoJICBuZWVkZWQuCgkgIFBhcnRpY3VsYXIgZXhhbXBsZXMgYXJlIGZpbGVzcmMgb3IgZmRzcmMgcmVhZGluZyBmcm9tIGEgZmlsZSB0aGF0IGlzIHN0aWxsCgkgIGdyb3dpbmcgKGUuZy4gYmVpbmcgZG93bmxvYWRlZCkuCgkgIEZpeGVzICM2NTIwMzcuCgoyMDExLTA2LTA4IDIwOjE0OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZXZlcnQgImJhc2VzcmM6IFNlbmQgYW4gdXBkYXRlIE5FV1NFR01FTlQgZXZlbnQgZG93bnN0cmVhbSBpZiB0aGUgZHVyYXRpb24gY2hhbmdlcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5MzRmYWYxNjNjYWYxMGVkM2Q1NGQ4MWZkN2I3OTMwNjk5MTNkZmZkLgoJICBPcmlnaW5hbCBjb21taXQgbGVhZHMgdG8gcG9zc2libHkgc2VuZGluZyBuZXdzZWdtZW50IGV2ZW50IGRvd25zdHJlYW0KCSAgaW4gcHVsbCBtb2RlLiAgSW4gcHVzaCBtb2RlLCBxdWl0ZSBzb21lIGRvd25zdHJlYW0gZWxlbWVudHMKCSAgYXJlIGxpa2VseSB0byBvbmx5IGV4cGVjdCBuZXdzZWdtZW50IGV2ZW50IGZvbGxvd2luZyBhIHNlZWsgdGhleSBwZXJmb3JtZWQKCSAgYW5kIGFzIHN1Y2ggbWF5IGhhdmUgdGhlaXIgc3RhdGUgbWVzc2VkIHVwLgoKMjAxMS0wNi0wOCAxODozNToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogaW5saW5lIHRoZSBjbGlwIHNlZ21lbnQKCjIwMTEtMDYtMDggMTc6MjU6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IHJlbmFtZSB2YXJpYWJsZQoJICBSZW5hbWUgdGhlIG5ld19iYXNlX3RpbWUgdmFyaWFibGUgdG8gcmVzZXRfdGltZSwgd2hpY2ggbG9va3MgYmV0dGVyLgoKMjAxMS0wNi0wOCAxNjo0MTowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHNlcGFyYXRlIHRoZSBzZWVrIGFuZCBzZWdtZW50IGZsYWdzCgkgIFNlcGFyYXRlIHRoZSBzZWVrIGZsYWdzIGFuZCBzZWdtZW50IGZsYWdzIGFzIHNlcGFyYXRlIGVudW1zIGJlY2F1c2Ugd2UgbWlnaHQKCSAgd2FudCB0byBoYXZlIGRpZmZlcmVudCBmbGFncyBmb3IgYm90aC4KCjIwMTEtMDYtMDggMTM6NDA6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbWVzc2FnZTogbW92ZSB0aGUgbmV3X2Jhc2VfdGltZSBmbGFnIHRvIGFzeW5jX2RvbmUKCSAgTW92ZSB0aGUgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgbmV3X2Jhc2VfdGltZSBzaG91bGQgYmUgZGlzdHJpYnV0ZWQgdG8gdGhlCgkgIHBpcGVsaW5lLCBmcm9tIHRoZSBhc3luY19zdGFydCB0byB0aGUgYXN5bmNfZG9uZSBtZXNzYWdlLiBUaGlzIHdvdWxkIGFsbG93IHVzIHRvCgkgIGRlY2lkZSB3aGVuIHRvIHJlc2V0IHRoZSBwaXBlbGluZSB0aW1lIGJhc2VkIG9uIG90aGVyIHJlYXNvbnMgdGhhbiB0aGUKCSAgRkxVU0hfU1RBUlQgZXZlbnQuCgkgIFRoZSBtYWluIGdvYWwgZXZlbnR1YWxseSBpcyB0byBtYWtlIHRoZSBGTFVTSCBldmVudHMgbm90IHJlc2V0IHRpbWUgYXQgYWxsIGJ1dAoJICByZXNldCB0aGUgdGltZSBiYXNlZCBvbiB0aGUgZmlyc3QgYnVmZmVyIG9yIHNlZ21lbnQgdGhhdCBwcmVyb2xscyB0aGUgcGlwZWxpbmUKCSAgYWdhaW4uCgoyMDExLTA2LTA4IDEzOjM5OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFVwZGF0ZSBnc3RyZWFtZXItc2VjdGlvbnMgZm9yIG5ldy9yZW1vdmVkIEFQSQoKMjAxMS0wNi0wOCAxMzozMDo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGdzdGJ1ZmZlcjogUmVtb3ZlIGRlcHJlY2F0ZWQgR1NUX0JVRkZFUl8qIG1hY3JvcwoJICBkYXRhLCBzaXplLCBtYWxsb2NkYXRhIGFuZCBmcmVlX2Z1bmMgbm8gbG9uZ2VyIGV4aXN0LgoKMjAxMS0wNi0wOCAxMzowNjoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTA4IDEyOjU4OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIHNldGNhcHMgZnVuY3Rpb24KCSAgUmVtb3ZlIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLCBlbGVtZW50cyBzaG91bGQgdXNlIHRoZSBjYXBzIGV2ZW50IHRvIGJlIGluZm9ybWVkCgkgIG9mIHRoZSBmb3JtYXQuCgoyMDExLTA2LTA4IDEyOjA0OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1lbW9yeTogUmVxdWlyZSBpbXBsZW1lbnRhdGlvbiB0byBpbXBsZW1lbnQgX3NoYXJlCgkgIFJlcXVpcmUgdGhlIG1lbW9yeSBpbXBsZW1lbnRhdGlvbnMgdG8gaW1wbGVtZW50IGEgc2hhcmUgb3BlcmF0aW9uLiBUaGlzIGFsbG93cwoJICB1cyB0byByZW1vdmUgdGhlIGZhbGxiYWNrIHNoYXJlIGltcGxlbWVudGF0aW9uIHdoaWNoIHVzZXMgYSBkaWZmZXJlbnQgYWxsb2NhdG9yCgkgIGltcGxlbWVudGF0aW9uIGFuZCBjb21wbGljYXRlcyB0aGluZ3MgdG9vIG11Y2guCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIGEgYml0LgoKMjAxMS0wNi0wOCAxMTowMzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgbWVtb3J5OiBjbGVhbnVwcyBhbmQgaW1wcm92ZSBkb2NzCgkgIE1ha2UgdGhlIGZhbGxiYWNrIGNvcHkgdXNlIHRoZSBzYW1lIG1lbW9yeSBhbGxvY2F0b3IgYXMgdGhlIG9yaWdpbmFsIG9iamVjdC4KCSAgSW1wcm92ZSBzb21lIGRvY3MuCgkgIFJlcXVpcmUgYW4gYWxsb2MgZnVuY3Rpb24gd2hlbiByZWdpc3RlcmluZyBhbiBhbGxvY2F0b3IuCgkgIFJlbW92ZSBnc3RfbWVtb3J5X2FsbG9jYXRvcl9nZXRfZGVmYXVsdCgpIGFuZCBtZXJnZSB0aGUgZmVhdHVyZSBpbgoJICBnc3RfbWVtb3J5X2FsbG9jYXRvcl9maW5kKCkKCSAgRml4IGxvY2tzIG9uIHRoZSBoYXNodGFibGUuCgkgIFJlbW92ZSBkZWZpbmVkIGJ1dCBub3QtaW1wbGVtZW50ZWQgZ3N0X21lbW9yeV9zcGFuKCkgbWV0aG9kLgoKMjAxMS0wNi0wNyAxODoxODoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogYWRkIGJlZ2lubmluZ3Mgb2YgbWVtb3J5IGRlc2lnbiBkb2MKCjIwMTEtMDYtMDcgMTc6NTQ6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBwYXNzIHVzZXJfZGF0YSB0byB0aGUgYWxsb2MgZnVuY3Rpb24KCSAgUGFzcyB0aGUgdXNlciBkYXRhIHRoYXQgd2FzIHBhc3NlZCB0byBfcmVnaXN0ZXIgdG8gdGhlIGFsbG9jIGZ1bmN0aW9uIG9mIGFuCgkgIGFsbG9jYXRvci4KCjIwMTEtMDYtMDcgMTc6MzQ6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZml4IHNvbWUgdHlwb3MKCjIwMTEtMDYtMDcgMTc6MDM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIGZpbGVzcmM6IHJlbW92ZSBNTUFQIGNvZGUKCSAgUmVtb3ZlIHRoZSBtbWFwIGNvZGUsIGl0IHdhcyBkaXNhYmxlZCBhbmQgcHJvYmFibHkgbmVlZHMgYSBjb21wbGV0ZSByZXdyaXRlCgkgIGFueXdheSBpZiB0aGlzIGlzIHRvIGJlIHBvcnRlZCB0byAwLjExLgoKMjAxMS0wNi0wNyAxNjozNTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZHMgdG8gcXVlcnkgYWxsb2NhdG9ycwoJICBBZGQgQVBJIHRvIGFkZCBhbmQgcXVlcnkgYWxsb2NhdG9yIGltcGxlbWVudGF0aW9ucyB0by9mcm9tIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5LgoKMjAxMS0wNi0wNyAxNjoxNDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogdXNlIGFsbG9jYXRvcnMgdG8gYWxsb2NhdGUgbWVtb3J5CgkgIFJlbmFtZSB0aGUgR3N0TWVtb3J5SW1wbCB0byBHc3RNZW1vcnlBbGxvY2F0b3IgYmVjYXVzZSB0aGF0J3MgcmVhbGx5IHdoYXQgaXQgaXMuCgkgIEFkZCBhbiBhbGxvYyB2bWV0aG9kIHRvIHRoZSBhbGxvY2F0b3IgbWVtYmVycy4KCSAgSW1wcm92ZSByZWdpc3RyYXRpb24gb2YgYWxsb2NhdG9ycy4KCSAgQWRkIG1ldGhvZHMgdG8gZ2V0IGFuZCBzZXQgdGhlIGRlZmF1bHQgYWxsb2NhdG9yCgkgIEFsd2F5cyB1c2UgYW4gYWxsb2NhdG9yIHRvIGFsbG9jYXRlIG1lbW9yeSwgdXNlIHRoZSBkZWZhdWx0IGFsbG9jYXRvciB3aGVuIE5VTEwKCSAgaXMgcGFzc2VkLgoJICBBZGQgdXNlcl9kYXRhIHRvIHRoZSBhbGxvY2F0b3IgSW5mbyBzbyB0aGF0IHdlIGNhbiBwYXNzIGV4dHJhIGluZm8gdG8gdGhlCgkgIGFsbG9jYXRvciBuZXcgbWV0aG9kLgoKMjAxMS0wNi0wNyAxMzowMzoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogbWlub3IgZml4IGFuZCBjbGFyaWZpY2F0aW9uCgoyMDExLTA2LTA3IDEzOjM4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtb3ZlIHNvbWUgbW9yZSBkZWZpbmVzIG9uIHRvcAoKMjAxMS0wNi0wNyAxMzoyNToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBmaXggc29tZSBjaXJjdWxhciBpbmNsdWRlcwoJICB0eXBlZGVmIHNvbWUgc3RydWN0cyBiZWZvcmUgaW5jbHVkaW5nIG90aGVyIGZpbGVzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcwoJICBpbiB0aGUgaGVhZGVyIGZpbGVzLgoKMjAxMS0wNi0wNyAxMTowMTozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTA2IDEyOjIzOjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjay90ZWU6IFBhZHMgbmVlZCB0byBiZSBhY3RpdmF0ZWQgYmVmb3JlIGNhcHMgYXJlIHNldAoJICBBbHNvIGFkZCBkZWJ1Z2dpbmcgdG8gZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24KCjIwMTEtMDYtMDcgMTA6NTI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiByZW1vdmUgcHJveHlfc2V0Y2FwcwoJICBSZW1vdmUgcHJveHlfc2V0Y2FwcywgZWxlbWVudHMgc2hvdWxkIHVzZSB0aGUgY2FwcyBldmVudCBhbmQgZm9yd2FyZCBjYXBzCgkgIHRoZW1zZWx2ZXMuCgoyMDExLTA2LTA3IDEwOjUxOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogZml4IHJlZmNvdW50aW5nIG9mIGV2ZW50cwoJICBfcGFkX2V2ZW50X2ZvcndhcmQoKSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNhcHMuCgoyMDExLTA2LTA3IDEwOjQ5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcHJvdmUgcGFkIGV2ZW50IGZvcndhcmQgY29kZQoJICBSZXR1cm4gVFJVRSB3aGVuIHRoZSBwYWQgaGFzIG5vIHBhcmVudCBvciB3aGVuIHRoZXJlIGFyZSBubyBpbnRlcm5hbGx5IGxpbmtlZAoJICBwYWRzLgoKMjAxMS0wNi0wNyAxMDowNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGx1Z2luczogdXNlIHRoZSBjYXBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCBhbmQgYXZvaWQgdXNpbmcgdGhlIHNldGNhcHMgZnVuY3Rpb24uIFVzZSBzb21lIG9mIHRoZSBuZXcgcGFkCgkgIGZvcndhcmQgZnVuY3Rpb25zIHRvIGltcGxlbWVudCBkZXNpcmVkIGJlaGF2aW91ci4KCjIwMTEtMDYtMDcgMTA6MDI6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBSZW5hbWUgYW5kIHJld29yayB0aGUgZGlzcGF0Y2hlciBmdW5jdGlvbgoJICBSZW5hbWUgZ3N0X3BhZF9kaXNwYXRjaGVyKCkgdG8gZ3N0X3BhZF9mb3J3YXJkKCkgYW5kIG1ha2UgaXQgbW9yZSB1c2VmdWwgYnkKCSAgaXRlcmF0aW5nIHRoZSBpbnRlcm5hbCBsaW5rcyBvZiBhIHBhZCBhbmQgaGFuZGxpbmcgcmVzeW5jIHByb3Blcmx5LgoJICBBZGQgYSBtZXRob2QgZ3N0X3BhZF9ldmVudF9mb3J3YXJkKCkgdGhhdCB1bmNvbmRpdGlvbmFsbHkgZm9yd2FyZHMgYW4gZXZlbnQgdG8KCSAgYWxsIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgkgIFVwZGF0ZSBzb21lIHBhZCBjb2RlIHRvIHVzZSB0aGUgbmV3IGZvcndhcmQgZnVuY3Rpb24uCgoyMDExLTA2LTA3IDA5OjQzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNhcHM6IHVzZSB0aGUgY2FwcyBldmVudAoJICBVc2UgdGhlIGNhcHMgZXZlbnQgaW5zdGVhZCBvZiBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIHRoZSBzZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTA2LTA2IDE2OjExOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRvY3M6IGdvIG92ZXIgZGVzaWduIGRvY3MgYW5kIGZpeCB0aGluZ3MKCSAgUmVtb3ZlIGJ1ZmZlcmxpc3QgcGFydCwgaXQncyBtZXJnZWQgd2l0aCBwYXJ0LWJ1ZmZlci50eHQKCjIwMTEtMDYtMDYgMTE6MjE6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEFkZCBlbnVtL2ZsYWdzIChkZSlyZWdpc3RyYXRpb24gaW4gZ3N0XyhkZSlpbml0CgoyMDExLTA2LTA2IDExOjIwOjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGFjY2VwdCBzZWdtZW50cyBhZnRlciBFT1MKCSAgQW5kIHJlZmFjdG9yIHRoZSBjb2RlIHNsaWdodGx5IHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCgkgIFRoaXMgc29sdmVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGJkYmMwNjkzCgoyMDExLTA2LTA2IDEwOjI3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjay9naG9zdHBhZDogQWN0aXZhdGUgcGFkcyBiZWZvcmUgY2hlY2tpbmcgZm9yIGNhcHMgZm9yd2FyZGluZy9zZXR0aW5nCgkgIFRoaXMgaXMgbm93IGRvbmUgdmlhIGluLWJhbmQgZXZlbnRzLCBzbyB0aGUgcGFkcyBuZWVkIHRvIGJlIGFjdGl2ZQoKMjAxMS0wNi0wNSAxODoxMToyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgQVBJIGNoYW5nZXMKCSAgQWxzbyByZW1vdmUgR1NUX1BBRF9DSEVDS0dFVFJBTkdFRlVOQyBtYWNybwoKMjAxMS0wNi0wNSAxNTo0Njo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA2LTA0IDE1OjQyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgcGFyc2U6IGFkZCBwcm90b3R5cGVzIGZvciB1bnVzZWQgZnVuY3Rpb25zIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhlIHdhcm5pbmcgaXMgbmV2ZXIgZmF0YWwsIGJlY2F1c2Ugd2UgZG9uJ3QgdXNlIC1XZXJyb3IgZm9yIHRoZQoJICBwYXJzZXIgaGVscGVyIGxpYnJhcnkgYnVpbGQsIGJ1dCB0aGUgd2FybmluZ3MgYXJlIGFubm95aW5nIGFueXdheS4KCjIwMTEtMDYtMDUgMTQ6MTA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1ydW4uYzoKCSAgdG9vbHM6IHJlbW92ZSB1bnZlcnNpb25lZCBnc3QtbGF1bmNoLCBnc3QtaW5zcGVjdCBhbmQgZ3N0LXR5cGVmaW5kCgkgIFRoZSB1bnZlcnNpb25lZCB0b29sIHdyYXBwZXJzIGFyZSBjb25mdXNpbmcgYW5kIGFubm95aW5nIGZvciBwYWNrYWdlcnMsCgkgIHVzZXJzIGFuZCBkZXZlbG9wZXJzIGFsaWtlLiBBIGdzdC1sYXVuY2ggcGlwZWxpbmUgdGhhdCB3b3JrcyBpbiAwLjEwCgkgIHdpbGwgbGlrZWx5IG5vdCB3b3JrIGluIDAuMTEgKGUuZy4gYmVjYXVzZSBlbGVtZW50cyBvciBwcm9wZXJ0aWVzIGdldAoJICByZW5hbWVkLCBvciBzeW50YXggY2hhbmdlcykuIFRoZSB1bnZlcnNpb25lZCB0b29scyBhbHNvIHlpZWxkIHVzZWxlc3MKCSAgcmVzdWx0cyB3aGVuIHVzZWQgd2l0aCBnZGIgb3IgdmFsZ3JpbmQuIFBhY2thZ2VycyBuZWVkIHRvIGNvLW9yZGluYXRlCgkgIHRoZSBwYWNrYWdpbmcgb2YgYWxsIG1ham9yIHZlcnNpb25zIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gY29uZmxpY3RzCgkgIHdoZW4gYm90aCB0cnkgdG8gaW5zdGFsbCB0aGUgc2FtZSBmaWxlcy4gV2hlbiB0d28gbWFqb3IgdmVyc2lvbnMgYXJlCgkgIGluIHVzZSAoZS5nLiAwLjEwIGFuZCAwLjExLzEuMCksIGl0IG1heSBiZSB1bmNsZWFyICh3aGVuIGxvb2tpbmcgYXQKCSAgdGhpbmdzIG9uIElSQy9wYXN0ZWJpbi9tYWlsaW5nIGxpc3QgZXRjLikgd2hpY2ggdmVyc2lvbiBpcyBhY3R1YWxseQoJICBiZWluZyB1c2VkIHdoZW4gdGhlcmUgYXJlIHVudmVyc2lvbmVkIHdyYXBwZXJzLiBGb3IgYWxsIHRoZXNlIHJlYXNvbnMsCgkgIGl0IHNlZW1zIGJlc3QgdG8ganVzdCByZW1vdmUgdGhlbSBmb3Igbm93LgoKMjAxMS0wNi0wNCAxNjowNDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGFuZCBvdGhlciB0aGluZ3MKCjIwMTEtMDYtMDQgMTU6NDQ6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5nIGFuZCByZW1vdmVkIHN0cmluZ3MKCjIwMTEtMDYtMDQgMTU6MjM6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlbW92ZSBHU1RfWE1MIGRlYnVnIGNhdGVnb3J5IGFzIHdlbGwKCjIwMTEtMDYtMDQgMTU6MjI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgUmVtb3ZlIGV2ZXJ5dGhpbmcgbGlieG1sMi0gYW5kIGxvYWRzYXZlLXJlbGF0ZWQKCjIwMTEtMDYtMDQgMTQ6NDE6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgU0lHVVNSKiBoYW5kbGluZyBmcm9tIGdzdC1sYXVuY2gKCSAgUmVtb3ZlIFNJR1VTUiogaGFuZGxpbmcgZnJvbSBnc3QtbGF1bmNoLCBzaW5jZSBpdCBtaWdodCBpbnRlcmZlcmUKCSAgd2l0aCBvdGhlciB0aGluZ3MgKGUuZy4gbGlibGVha3MpLCBhbmQgc2hvdWxkIGJlIGRvbmUgZGlmZmVyZW50bHkKCSAgYW55d2F5IChlaXRoZXIgdmlhIHN1cHBvcnQgZm9yIHNpbXBsZSB0aW1lZC1jb21tYW5kcyBzY3JpcHRpbmcgb3IKCSAgcmVtb3RlIGNvbnRyb2wgdmlhIERCdXMgb3Igc28pLgoKMjAxMS0wNi0wNCAxNDoyODowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvQlVHUzoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL1JFQURNRToKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuMS5pbjoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogdG9vbHMveG1sMnRleHQueHNsOgoJICB0b29sczogcmVtb3ZlIGdzdC14bWxpbnNwZWN0CgkgIFBlb3BsZSBzaG91bGQganVzdCBxdWVyeSB0aGUgcmVnaXN0cnkgdGhlbXNlbHZlcyBvciB3cml0ZSBhIHNtYWxsCgkgIHB5dGhvbiBzY3JpcHQgaWYgdGhleSBuZWVkIHRoaXMgZnVuY3Rpb25hbGl0eSAod2hpY2ggaXMgbGlrZWx5CgkgIGxlc3Mgd29yayB0aGFuIHBhcnNpbmcgdGhlIFhNTCB0aGF0IHRoaXMgc2NyaXB0IG91dHB1dHMsIGFuZCBJJ20KCSAgbm90IGF3YXJlIG9mIGFueXRoaW5nIHVzaW5nIHRoZSB4bWwydGV4dCB4c2wgZWl0aGVyKS4KCjIwMTEtMDYtMDQgMTQ6MjI6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICB0b29sczogcmVtb3ZlIGdzdC1mZWVkYmFjawoJICBJdCdzIG5vdCByZWFsbHkgdGhhdCB1c2VmdWwsIGFuZCBubyBvbmUncyBiZWVuIHVzaW5nIGl0IGZvciB5ZWFycy4KCjIwMTEtMDYtMDQgMTQ6MTM6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29scywgdGVzdHM6IGZpeCBzb21lIHVudXNlZC1idXQtc2V0LXZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA2LTA0IDE0OjAyOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZwoKMjAxMS0wNi0wNCAwMDozMDoxNSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgV29yayBhcm91bmQgY2hhbmdlcyBpbiBnX2F0b21pYyBBUEkKCSAgU2VlICM2NTE1MTQgZm9yIGRldGFpbHMuICBJdCdzIGFwcGFyZW50bHkgaW1wb3NzaWJsZSB0byB3cml0ZSBjb2RlCgkgIHRoYXQgYXZvaWRzIGJvdGggdHlwZSBwdW5uaW5nIHdhcm5pbmdzIHdpdGggb2xkIGdfYXRvbWljIGhlYWRlcnMgYW5kCgkgIGFzc2VydGlvbnMgaW4gdGhlIG5ldy4gIFRodXMsIG1hY3JvcyBhbmQgYSB2ZXJzaW9uIGNoZWNrLgoKMjAxMS0wNi0wMyAxODoxMDoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGdzdHBhZDogU21hbGwgZG9jIGZpeHVwCgoyMDExLTA2LTAzIDE1OjUzOjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZm9yIGxhdGVzdCBBUGkgY2hhbmdlcwoKMjAxMS0wNi0wMyAxNzoyNDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGVhbiB1cCBwcm9iZSBmbGFncwoKMjAxMS0wNi0wMyAxNzoyNDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSAgZG9jczogZmlyc3QgdmVyc2lvbiBvZiBwcm9iZXMgZG9jdW1lbnQKCjIwMTEtMDYtMDMgMTY6NDY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgZmx1c2hpbmcgaW4gcHVsbHJhbmdlIHRvbwoKMjAxMS0wNi0wMyAxMzo1NjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhbnVwcwoJICBVc2UgZGVmaW5lcyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMgZm9yIG1hc2tzLgoKMjAxMS0wNi0wMyAxMzoyNTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBzb21lIG1vcmUgMC4xMSBmaXhtZXMKCSAgZG9uJ3QgYWxsb3cgc3BhY2VzIGluIHN0cnVjdHVyZSBuYW1lcyBhbmQgZml4IHVuaXQgdGVzdHMuCgoyMDExLTA2LTAzIDEyOjQzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYWxsb2NhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jCgkgIE1vdmUgdGhlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYyBmcm9tIGRyYWZ0IHRvIHBhcnQgYW5kIG1lcmdlIGl0IHdpdGgKCSAgdGhlIGFsbG9jYXRpb24gZHJhZnQuCgoyMDExLTA2LTAzIDEyOjQwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWFrZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgdG8gd2FpdAoJICBUaGUgbW9zdCBjb21tb24gY2FzZSBpcyB0byBub3Qgc3BlY2lmeSBhbnkgZmxhZ3Mgd2hlbiBkb2luZyB0aGUgYWxsb2NhdGlvbi4gTWFrZQoJICB0aGUgYWxsb2NhdGlvbiBmcm9tIGEgcG9vbCB3aXRoIGEgbWF4aW11bSBhbW91bnQgb2YgYnVmZmVycyBibG9jayBieSBkZWZhdWx0IGZvcgoJICB0aGlzIHJlYXNvbi4KCjIwMTEtMDYtMDMgMTE6MTU6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDYtMDIgMTk6MjQ6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBjYXBzIGV2ZW50IGluc3RlYWQgb2Ygc2V0Y2FwcwoKMjAxMS0wNi0wMiAxOToyMzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSBzZXRjYXBzIGZ1bmN0aW9ucwoJICBSZW1vdmUgdGhlIHNldGNhcHMgZnVuY3Rpb25zLCBpdCBpcyBub3cgaGFuZGxlZCB3aXRoIHRoZSBjYXBzIGV2ZW50LgoKMjAxMS0wNi0wMiAxODoyODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBwYXNzIHRoZSByaWdodCBhbGlnbm1lbnQKCjIwMTEtMDYtMDIgMTg6Mjg6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW1vcnk6IHNtYWxsIGNsZWFudXAKCjIwMTEtMDYtMDIgMTg6MTM6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGFsaWdubWVudCBjYWxjdWxhdGlvbnMKCSAgRml4IHRoZSBhbGlnbm1lbnQgY2FsY3VsYXRpb24uCgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbi4KCjIwMTEtMDYtMDIgMTg6MTM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBwb29sOiBkZWJ1ZyB0aGUgY29uZmlnCgoyMDExLTA2LTAyIDE1OjM4OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiByZW1vdmUgc29tZSBtYWNyb3Mgbm93IGluIGdsaWIKCSAgV2UgZGVwZW5kIG9uIHRoZSByaWdodCBnbGliIG5vdwoKMjAxMS0wNi0wMiAxNTozODoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggYSBGSVhNRQoKMjAxMS0wNi0wMiAxNTozODowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIGdfcHJpbnRlcnIoKSBhcyBzdGF0ZWQgaW4gdGhlIEZJWE1FCgoyMDExLTA2LTAyIDE1OjM3OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc21hbGwgY2xlYW51cHMKCjIwMTEtMDYtMDIgMTQ6MDk6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBpbmxpbmUgdGhlIHJlY3Vyc2ljZSBzdGF0ZSBsb2NrCgoyMDExLTA2LTAyIDEzOjQ2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW5saW5lIHRoZSByZWN1cnNpdmUgc3RyZWFtIGxvY2sKCjIwMTEtMDYtMDIgMTM6MzU6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgdW51c2VkIGZpZWxkcyBhbmQgbWV0aG9kcyBhbmQgc2lnbmFscwoKMjAxMS0wNi0wMiAxMzoyMzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IGdzdF92YWx1ZV9maXhhdGUgaW5zdGVhZAoJICBVc2UgdGhlIG5ldyBnc3RfdmFsdWVfZml4YXRlKCkgZnVuY3Rpb24gaW5zdGVhZCBvZiBvdXIgb3duIHZlcnNpb24uCgoyMDExLTA2LTAyIDEzOjIxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogYWRkIGZ1bmN0aW9uIHRvIGZpeGF0ZSBhIHZhbHVlCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGZpeGF0ZSBhIEdWYWx1ZS4gVGhpcyBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhcyBpcyBpbiBHc3RQYWQuCgoyMDExLTA2LTAyIDEzOjE4OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVtb3ZlIHNvbWUgY3VzdG9tIHJlZmNvdW50aW5nIG1ldGhvZHMKCSAgUmVtb3ZlIHNvbWUgY3VzdG9tIG1hZGUgcmVmY291bnRpbmcgbWV0aG9kcyBhbmQgdXNlIHRoZSBtaW5pb2JqZWN0IG9uZXMgaW5zdGVhZC4KCjIwMTEtMDYtMDIgMTI6NDA6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb3B0aW1pemUgbGlua2luZwoJICBPcHRpbWl6ZSBsaW5raW5nIGJ5IG9ubHkgcmVsZWFzaW5nIHRoZSBwYWQgbG9ja3Mgd2hlbiB0aGVyZSBhcmUgbGluayBmdW5jdGlvbnMKCSAgaW5zdGFsbGVkIG9uIHRoZSBwYWRzLgoJICBBZGQgc29tZSBHX0xJS0VMWSBoZXJlIGFuZCB0aGVyZS4KCSAgTW92ZSBlcnJvciBwYXRocyBvdXQgb2YgdGhlIG1haW4gY29kZSBmbG93LgoKMjAxMS0wNi0wMiAxMjozOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBkZXByZWNhdGVkIGhhdmUtZGF0YSBzaWduYWwKCjIwMTEtMDYtMDIgMTE6MjE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGlkbGUgcHJvYmUgZm9yIHB1bGwgbWV0aG9kIHRvbwoKMjAxMS0wNi0wMiAxMTowMTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtb3JlIGNsZWFudXBzCgkgIFVzZSBtaW5pb2JqZWN0IHVucmVmIHdoZW4gd2UgY2FuCgkgIFJldXNlIGV4aXN0aW5nIGRhdGEgdHlwZSBpZGVudGlmaWVyIGluc3RlYWQgb2YgYW4gZXh0cmEgYm9vbGVhbi4KCjIwMTEtMDYtMDEgMTk6NDc6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jCgoyMDExLTA2LTAxIDE5OjI3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHBhZDogZnVydGhlciBpbXByb3ZlIHByb2JlcyBhbmQgcGFkIGJsb2NraW5nCgkgIEtlZXAgdHJhY2sgb2YgaW5zdGFsbGVkIG51bWJlciBvZiBwcm9iZXMgdG8gc2hvcnRjdXQgZW1pc3Npb24uCgkgIEFsbG93IE5VTEwgY2FsbGJhY2tzLCB0aGlzIGlzIHVzZWZ1bCBmb3IgYmxvY2tpbmcgcHJvYmVzLgoJICBJbXByb3ZlIHByb2JlIHNlbGVjdGlvbiBiYXNlZCBvbiB0aGUgbWFzaywgYW4gZW1wdHkgbWFzayBmb3IgdGhlIGRhdGEgb3IgdGhlCgkgIHNjaGVkdWxpbmcgZmxhZ3MgZXF1YWxzIHRoYXQgYWxsIHByb2JlcyBtYXRjaC4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBEb24ndCBjaGVjayB0aGUgZmx1c2hpbmcgZmxhZyBpbiB0aGUgcHJvYmUgY2FsbGJhY2sgaGFuZGxlciwgdGhpcyBuZWVkcyB0byBiZQoJICBkb25lIGJlZm9yZSBjYWxsaW5nIHRoZSBoYW5kbGVyLgoJICBGaXggYmxvY2tpbmcgcHJvYmVzLgoJICBGaXggdW5pdCB0ZXN0cwoKMjAxMS0wNS0zMSAxOToxNjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBhZDogaW1wbGVtZW50IHBhZCBibG9jayB3aXRoIHByb2JlcwoKMjAxMS0wNS0zMCAxOTowMzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICB1dGlsczogcmVtb3ZlIF9mdWxsIHZhcmlhbnRzIG9mIHByb2JlcwoJICBSZW1vdmUgdGhlIF9mdWxsIHZhcmlhbnRzIGFuZCBhZGQgdGhlIGRlc3Ryb3kgbm90aWZ5IHRvIHRoZSByZWd1bGFyIG1ldGhvZHMuCgoyMDExLTA2LTAxIDE1OjI5OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkgIGNoZWNrL2FiaTogSWdub3JlIEdzdFhNTCogb24gYXJtIHdoZW4gbm90IHByZXNlbnQKCjIwMTEtMDUtMzEgMTg6MzE6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIGxvY2FsIHByaXYgdmFyaWFibGUgaW5zdGVhZCBvZiB0cmFucy0+cHJpdgoKMjAxMS0wNS0zMSAxODozMDo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCSAgYmFzZSBpcyB1bmNvbmRpdGlvbmFsbHkgd3JpdHRlbiBhIGNvdXBsZSBvZiBsaW5lcyBiZWxvdwoKMjAxMS0wNS0zMSAxODozMDozMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBnc3Q6IFJlbW92ZSBvYnZpb3VzIGRlYWQgYXNzaWdubWVudHMKCjIwMTEtMDUtMzEgMTM6NDM6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogUmVtb3ZlIGRlYWQgYXNzaWdubWVudAoKMjAxMS0wNS0zMCAxODoyOTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJld29yayBwYWQgYmxvY2tpbmcsIGFub3RoZXIgYXR0ZW1wdAoJICBNYWtlIHRoZSBQYWRCbG9jayBjYWxsYmFjayB0YWtlIGEgR3N0QmxvY2tUeXBlIHBhcmFtZXRlciB0byBoYW5kbGUgdGhlIGRpZmZlcmVudAoJICBraW5kIG9mIHN0YWdlcyBpbiB0aGUgcGFkIGJsb2NrLiBUaGlzIHByb3ZpZGVzIGZvciBtb3JlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CgkgIGluIHRoZSBwYWQgYmxvY2sgQVBJLgoJICBTZXBhcmF0ZSBibG9ja2luZyBhbmQgdW5ibG9ja2luZyBpbnRvIGRpZmZlcmVudCBtZXRob2RzLCBvbmx5IGJsb2NraW5nIGNhbiBkbyBhCgkgIGNhbGxiYWNrLCB1bmJsb2NrIGlzIGFsd2F5cyBpbW1lZGlhdGVseS4gQWxzbyByZW1vdmVkIHN5bmNocm9ub3VzIGJsb2NraW5nLCBpdAoJICBjYW4gYWx3YXlzIGJlIGltcGxlbWVudGVkIHdpdGggYSBjYWxsYmFjay4KCjIwMTEtMDUtMzAgMTM6NDA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IHJld29yayBwYWQgYmxvY2tpbmcsIGZpcnN0IHBhcnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDE1ZGE4OWYzYzlmZTQ2ZmMzMzYxMjM2ZGY5YTNiNzZlNjA3ZTEzOC4KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTEtMDUtMzAgMTI6Mjc6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDUtMzAgMTE6MzM6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IENvbnNpZGVyICIxIiBhbmQgInsxfSIgYXMgZXF1YWwgaW4gZ3N0X3ZhbHVlX2NvbXBhcmUoKQoJICBQcmV2aW91c2x5IHRoaXMgd2FzIG9ubHkgZG9uZSBpbiB0aGUgaXNfc3Vic2V0KCkgY2hlY2sgYnV0CgkgIGhhdmluZyBpdCBvbmx5IHRoZXJlIGJyaW5ncyB1cyBpbnRvIGRlZmluaXRpb24taGVsbCB3aGVyZQoJICAiMSIgYW5kICJ7MX0iIGFyZSBzdWJzZXQgb2YgZWFjaCBvdGhlciBidXQgbm90IGVxdWFsLgoKMjAxMS0wNS0zMCAwNzo0NDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IERvbid0IGFjY2VzcyB0aGUgR3N0TWVzc2FnZSBzdHJ1Y3R1cmUgZGlyZWN0bHkKCjIwMTEtMDUtMzAgMDc6NDE6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0zMCAwNzozNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBzdWJzZXQgY2hlY2sgZm9yIGVxdWl2YWxlbnQgbGlzdHMgYW5kIHNjYWxhciB2YWx1ZXMKCSAgRm9yIGV4YW1wbGUgInsgMSB9IiBhbmQgIjEiIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYnV0CgkgIGJvdGggYXJlIGEgc3Vic2V0IG9mIGVhY2ggb3RoZXIuIEFsc28gYWRkIGEgdW5pdCB0ZXN0CgkgIGZvciB0aGlzLgoKMjAxMS0wNS0yOSAxOToyODozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgZG9jczogZml4IGJ1Z3ppbGxhIFVSTAoJICBodHBwIC0+IGh0dHAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MTM2MgoKMjAxMS0wNS0yOCAxMDoyNDozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogeHJlZnMgbW9yZSBhcGkgYXJvdW5kIEdzdFN0YXRlQ2hhbmdlIGFuZCBHc3RTdGF0ZUNoYW5nZVJldHVybi4KCjIwMTEtMDUtMjggMDk6NTE6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvY3M6IHhyZWYgdGhlIGFzeW5jIG1lc3NhZ2VzIHRvIEdzdFN0YXRlQ2hhbmdlCgoyMDExLTA1LTI3IDE3OjIwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV3b3JrIHBhZCBibG9ja2luZywgZmlyc3QgcGFydAoJICBNYWtlIHBhZCBibG9jayBjYWxsIHRoZSBjYWxsYmFjayBhcyBzb29uIGFzIHRoZSBwYWQgaXMgbm90IGluIHVzZS4gVGhpcyBtYWtlcyBpdAoJICBwb3NzaWJsZSB0byBtYWtlIHN1cmUgdGhhdCB3aGVuIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQsIG5vIGFjdGl2aXR5IGlzIGhhcHBlbmluZwoJICBvbiB0aGUgcGFkIGFuZCB0aGF0IG5vIGFjdGl2aXR5IHdpbGwgZXZlciBoYXBwZW4gdW50aWwgdGhlIHBhZCBpcyB1bmJsb2NrZWQKCSAgYWdhaW4uIFRoaXMgbWFrZXMgcGFkIGJsb2NraW5nIHdvcmsgd2hlbiB0aGVyZSBpcyBubyBkYXRhZmxvdyBvciBhZnRlciBFT1MgYW5kCgkgIGdyZWF0bHkgaGVscHMgZHluYW1pYyBwaXBlbGluZXMuCgkgIE1vdmUgdGhlIHByb2JlIGhhbmRsaW5nIHJpZ2h0IHdoZXJlIHdlIHdhaXQgb24gdGhlIHBhZCBibG9jay4gVGhlIHR3byBhcmUKCSAgcmVsYXRlZCBidXQgbm90IHRoZSBzYW1lIGFuZCB0aGUgcHJvYmUgY2FuIGV2ZW50dWFsbHkgaW5mbHVlbmNlIHRoZSBwYWQKCSAgYmxvY2tpbmcgYXMgd2UnbGwgc2UgbGF0ZXIuCgkgIEZpeCB1cCBzb21lIGJyb2tlbiB1bml0IHRlc3RzIG9yIHRlc3RzIHRoYXQgZmFpbCB3aXRoIHRoZSBuZXcgYmVoYXZpb3VyLgoKMjAxMS0wNS0yNyAxNzoxODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIGRlcHJlY2F0ZWQgY2xlYW4gc2h1dGRvd24gbWV0aG9kCgoyMDExLTA1LTI3IDE0OjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBkZWFjdGl2YXRlIHRoZSBwYWQgYWZ0ZXIgcmVtb3ZpbmcgaXQKCSAgV2hlbiByZWxlYXNpbmcgdGhlIHJlcXVlc3QgcGFkLCBmaXJzdCByZW1vdmUgaXQgZnJvbSB0aGUgZWxlbWVudCBhbmQgdGhlbgoJICBkZWFjdGl2YXRlIGl0LiBJZiB3ZSBkbyBpdCB0aGUgb3RoZXIgd2F5IGFyb3VuZCwgYSBnc3RfcGFkX3B1c2ggb24gdGhlIGVsZW1lbnQKCSAgbWlnaHQgcmV0dXJuIHdyb25nLXN0YXRlIGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8gZGV0ZWN0IHRoZSByZW1vdmVkIHBhZCBpbiB0aGUKCSAgY2hhaW4gZnVuY3Rpb24uCgoyMDExLTA1LTI3IDE1OjE0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGNhdGNoIGFuZCBwcmludCBtaXNzaW5nLXBsdWdpbiBtZXNzYWdlcyBpbiBnc3QtbGF1bmNoCgkgIFNvIHRoYXQgdXNlcnMgZ2V0IHNvbWUgZmVlZGJhY2sgaWYgdGhleSdyZSB1c2luZyBhIHBpcGVsaW5lCgkgIGxpa2UgIHNyYyAhIGRlY29kZWJpbjIgISBzaW5rICBhbmQgYXJlIG1pc3NpbmcgYW4gZWxlbWVudC4KCjIwMTEtMDUtMjcgMTQ6MDI6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBmb3IgU0VHTUVOVCBldmVudCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0yNyAxMzo1ODoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTI3IDEzOjU1OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBBZGQgZ3N0X2NhcHNfaXNfc3Vic2V0X3N0cnVjdHVyZSgpCgkgIEFQSTogZ3N0X2NhcHNfaXNfc3Vic2V0X3N0cnVjdHVyZSgpCgkgIFRoaXMgYWxsb3dzIHRvIGNoZWNrIGlmIGEgc3RydWN0dXJlIGlzIGEgc3Vic2V0IG9mIGdpdmVuCgkgIGNhcHMgd2l0aG91dCBhbGxvY2F0aW5nIGEgbmV3IGNhcHMgaW5zdGFuY2UgZm9yIGl0LgoKMjAxMS0wNS0yNyAxMzo0NzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfaXNfc3Vic2V0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lzX3N1YnNldCgpCgoyMDExLTA1LTI3IDEzOjM4OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE9wdGltaXplIGdzdF9jYXBzX2lzX3N1YnNldCgpCgkgIC4uYW5kIGFzIGEgcmVzdWx0IGdzdF9jYXBzX2lzX2VxdWFsKCkgYW5kIG90aGVycy4KCSAgVGhpcyBub3cgb25seSBjaGVja3MgaWYgZm9yIGV2ZXJ5IHN1YnNldCBzdHJ1Y3R1cmUgdGhlcmUgaXMKCSAgYSBzdXBlcnNldCBzdHJ1Y3R1cmUgaW4gdGhlIHN1cGVyc2V0IGNhcHMuIFByZXZpb3VzbHkgd2Ugd2VyZQoJICBzdWJ0cmFjdGluZyBvbmUgZnJvbSBhbm90aGVyLCBjcmVhdGluZyBjb21wbGV0ZWx5IG5ldyBjYXBzCgkgIGFuZCB0aGVuIGV2ZW4gc2ltcGxpZmllZCB0aGVtLgoJICBUaGUgbmV3IGltcGxlbWVudGlvbiBub3cgaXMgYWJvdXQgMS4yNyB0aW1lcyBmYXN0ZXIgYW5kIGRvZXNuJ3QKCSAgYnJlYWsgdGhlIC1iYXNlIHVuaXQgdGVzdHMgYXJlIGFueXRoaW5nIGFueW1vcmUuCgoyMDExLTA1LTI3IDEzOjM3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBzdWJzZXQgY2hlY2sgaW4gZ3N0X2NhcHNfbWVyZ2UoKQoJICBDYXBzIEEgYXJlIGEgc3Vic2V0IG9mIGNhcHMgQiBldmVuIGlmIGNhcHMgQiBkb2Vzbid0CgkgIGhhdmUgYWxsIGZpZWxkcyBvZiBjYXBzIEEuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzLgoKMjAxMS0wNS0yNyAxMjo1NjowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBSZXZlcnQgImNhcHM6IE9wdGltaXplIGdzdF9jYXBzX2lzX3N1YnNldCgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMyMjQ4YTliODUyYmNiNTY4YTViNjQyMjk5ZWNjOGU1YmY0OGVhMTMuCgkgIFRoaXMgYnJlYWtzIHNvbWUgdGVzdHMgaW4gLWJhc2UgYW5kIHRoZSBmYWlsdXJlcyBzaG91bGQKCSAgYmUgZml4ZWQgZmlyc3QuCgoyMDExLTA1LTI3IDEyOjQ1OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE9wdGltaXplIGdzdF9jYXBzX2lzX3N1YnNldCgpCgkgIC4uYW5kIGFzIGEgcmVzdWx0IGdzdF9jYXBzX2lzX2VxdWFsKCkgYW5kIG90aGVycy4KCSAgVGhpcyBub3cgb25seSBjaGVja3MgaWYgZm9yIGV2ZXJ5IHN1YnNldCBzdHJ1Y3R1cmUgdGhlcmUgaXMKCSAgYSBzdXBlcnNldCBzdHJ1Y3R1cmUgaW4gdGhlIHN1cGVyc2V0IGNhcHMuIFByZXZpb3VzbHkgd2Ugd2VyZQoJICBzdWJ0cmFjdGluZyBvbmUgZnJvbSBhbm90aGVyLCBjcmVhdGluZyBjb21wbGV0ZWx5IG5ldyBjYXBzCgkgIGFuZCB0aGVuIGV2ZW4gc2ltcGxpZmllZCB0aGVtLgoJICBUaGUgbmV3IGltcGxlbWVudGlvbiBub3cgaXMgYWJvdXQgMS4yNyB0aW1lcyBmYXN0ZXIuCgoyMDExLTA1LTI3IDExOjQ1OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEcm9wIHN0aWNreSBldmVudHMgcHVzaGVkIG9uIGZsdXNoaW5nIHNyY3BhZHMgaW5zdGVhZCBvZiBhY3RpdmF0aW5nIHRoZW0gaW1tZWRpYXRlbHkKCjIwMTEtMDUtMjYgMTQ6NTY6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFBhc3MgdGhlIGNvbXBsZXRlIGNhcHMgdG8gdHJhbnNmb3JtX2NhcHMKCSAgSW5zdGVhZCBvZiBwYXNzaW5nIGl0IHN0cnVjdHVyZSBieSBzdHJ1Y3R1cmUuIFRoaXMgYWxsb3dzCgkgIGJldHRlciBvcHRpbWl6ZWQgdHJhbnNmb3JtX2NhcHMgZnVuY3Rpb25zIGFuZCBhbGxvd3MgYmV0dGVyCgkgIHRyYW5zZm9ybWF0aW9uIGRlY2lzaW9ucy4KCSAgU2VlIGJ1ZyAjNjE5ODQ0LgoKMjAxMS0wNS0yNyAwOTowNTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCBhbiB1cGRhdGUgTkVXU0VHTUVOVCBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBkdXJhdGlvbiBjaGFuZ2VzCgkgIFRoaXMgYWxsb3dzIHN0cmVhbWluZyB0aGUgY29tcGxldGUgZmlsZSBmb3IgZmlsZXMgdGhhdCBoYXZlIGdyb3duIHNpbmNlCgkgIHN0cmVhbWluZyBzdGFydGVkLgoJICBGaXhlcyBidWcgIzY0Nzk0MC4KCjIwMTEtMDUtMjYgMTk6NDU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVmYWN0b3IgX3B1c2hfZXZlbnQKCSAgUmV3b3JrIF9wdXNoX2V2ZW50KCkgYSBsaXR0bGUgc28gdGhhdCBpdCBkcm9wcyBldmVudHMgb24gYmxvY2tpbmcgcGFkcy4KCSAgTWFrZSBzdXJlIHRoYXQgZXZlbnRzIGFyZSBmb3J3YXJkZWQgd2hlbiB3ZSB1bmJsb2NrLgoJICBBZGQgY291bnRlciBvbiB0aGUgcGFkIHRvIGtlZXAgdHJhY2sgb2YgYnVzeSBwYWRzLgoKMjAxMS0wNS0yNiAxODoyMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWZhY3RvciBwcmUgYW5kIHBvc3QgY2hhaW4gY29kZQoKMjAxMS0wNS0yNiAxNzo1MDoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBrZWVwIGNvdW50ZXIgZm9yIGFjdGl2ZSBwYWRzCgkgIEtlZXAgYSBjb3VudGVyIHRvIG1hcmsgdGhlIGFtb3VudCBvZiB0aHJlYWRzIGN1cnJlbnRseSBwdXNoaW5nIGRhdGEgb24gdGhlIHBhZC4KCjIwMTEtMDUtMjYgMTc6Mzk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVmYWN0b3IgcHJlIHB1c2ggY29kZQoJICBSZWZhY3RvciB0aGUgY29kZSB0aGF0IGlzIGV4ZWN1dGVkIGFzIHRoZSBmaXJzdCBzdGVwIG9mIGEgcHVzaCBvcGVyYXRpb24gd2hlcmUKCSAgd2UgY2hlY2sgdGhlIHByb2JlcyBhbmQgYmxvY2tpbmcgYW5kIHJlc29sdmUgdGhlIHBlZXIuCgoyMDExLTA1LTI2IDE3OjA4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogcmVtb3ZlIHBhZCBjYWNoZQoJICBSZW1vdmUgdGhlIHBhZCBjYWNoZSBhcyB0aGlzIGlzIGdvaW5nIHRvIGJlIHJld29ya2VkIGZvciBuZXcgcGFkIGJsb2NraW5nIGFuZAoJICBwcm9iZXMuCgoyMDExLTA1LTI2IDE2OjQ4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbXBsaWZ5IGhhbmRsaW5nIG9mIGJ1ZmZlciBsaXN0cwoJICBJbXBsZW1lbnQgYSBkZWZhdWx0IGJ1ZmZlci1saXN0IGZ1bmN0aW9uIGluIGNhc2UgdGhlIGVsZW1lbnQgZG9lc24ndCBpbXBsZW1lbnQKCSAgb25lLgoJICBBbHNvIHBhc3MgYnVmZmVyLWxpc3RzIHRvIHRoZSBoYXZlLWRhdGEgc2lnbmFsLCB0aGlzIGFsbG93cyB1cyB0byByZW1vdmUgc29tZQoJICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGNvZGUuCgoyMDExLTA1LTI2IDE2OjE1OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIG9sZCBnc3RfcGFkX3NldF9ibG9ja2VkIG1ldGhvZHMKCjIwMTEtMDUtMjYgMTQ6MTQ6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIHB1c2hzcmM6IEZpeCBpbmZpbml0ZSByZWN1cnNpb24gaW4gcHVzaHNyYyBxdWVyeSBoYW5kbGVyCgoyMDExLTA1LTI2IDEzOjM2OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjUgMTY6MDI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3Q6IHdlIGNhbiBub3cgdXNlIEdMaWIgMi4yNCBBUEkgdW5jb25kaXRpb25hbGx5CgoyMDExLTA1LTI1IDE1OjU0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gPj0gMi4yNAoJICBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTEtMDUtMjUgMTU6Mzg6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogdXBkYXRlIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIGZvciBnbm9tZSBjaGFuZ2UKCjIwMTEtMDUtMjUgMTM6NDA6MzAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBQbGFjYXRlIGdjYyBieSBkZWZpbmluZyBFV09VTERCTE9DSyB0byBzb21ldGhpbmcKCjIwMTEtMDUtMjUgMTI6NDc6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IFdBS0VfRVZFTlQoKSB0byBiZWhhdmUgcG9zaXhseSBvbiBXaW5kb3dzCgoyMDExLTA1LTI0IDIwOjI4OjE4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgcmVnaXN0cnliaW5hcnk6IHNtYWxsIGNsZWFudXBzCgkgIFJlbW92ZSB1bm5lZWRlZCBicmFjZXMgZnJvbSBzdHJpbmcgZGVmaW5lLiBTbWFsbCBkb2MgaW1wcm92ZW1lbnQuCgoyMDExLTA1LTI0IDIwOjI3OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogdXNlIGd1aW50IGZvciB0aGUgdmVyc2lvbiBudW1iZXIgcGFydHMKCSAgVXNlIHVuc2lnbmVkIGludGVnZXJzIGZvciBleHRyYSBzYWZldHkgKGxpa2Ugd2UgZG8gaW4gcGx1Z2luIHZlcnNpb24gcGFyc2luZykuCgoyMDExLTA1LTI0IDE4OjM5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHJlbW92ZSBzb21lIG1vcmUgZGVwcmVjYXRlZCBtZXRob2RzCgoyMDExLTA1LTI0IDE4OjI5OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiByZW1vdmUgdW51c2VkIGZsYWcKCjIwMTEtMDUtMjQgMTg6MTc6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBmZWF0dXJlOiB1c2Ugb2JqZWN0IG5hbWUKCSAgUmVtb3ZlIHRoZSBuYW1lIHByb3BlcnR5IGZyb20gdGhlIHBsdWdpbiBmZWF0dXJlIGFuZCBwb3J0IGNvZGUgdG8gdXNlIHRoZSBvYmplY3QKCSAgbmFtZSBpbnN0ZWFkLgoKMjAxMS0wNS0yNCAxODoxNjozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICByZW1vdmUgb2xkIGdsaWIgY2hlY2sKCjIwMTEtMDUtMjQgMTc6NDM6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTI0IDE3OjM2OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHNjaGVkdWxpbmc6IHBvcnQgdG8gbmV3IHNjaGVkdWxpbmcgcXVlcnkKCjIwMTEtMDUtMjQgMTI6NTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBTQ0hFRFVMSU5HIHF1ZXJ5CgkgIEFkZCBhIG5ldyBxdWVyeSB0byByZXBsYWNlIHRoZSBjaGVja2dldHJhbmdlIGZ1bmN0aW9uLgoKMjAxMS0wNS0yNCAxOTo0Mzo1OCArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfaW50NjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDk3MwoKMjAxMS0wNS0yNCAxNjoxNDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBGb3J3YXJkIHN0aWNreSBldmVudHMgdG8gbmV3bHkgY3JlYXRlZCBzcmNwYWRzCgoyMDExLTA1LTI0IDE2OjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIG5ld2x5IGNyZWF0ZWQgc3JjcGFkcwoKMjAxMS0wNS0yNCAxNjowODo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZ3N0X3BhZF9zdGlja3lfZXZlbnRzX2l0ZXJhdGUoKSBmdW5jdGlvbgoKMjAxMS0wNS0yNCAxMzoyNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggZm9yIEdzdEl0ZXJhdG9yIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTI0IDEzOjI4OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJldmVydCAiZGVidWd1dGlsczogRml4IGZvciBHc3RJdGVyYXRvciBBUEkgY2hhbmdlcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlMWNjMzE3NmQ2ZmI4MDIzYmJlMGM3MzM2MTViMmE4YzQyMGEyMDc3LgoJICBUaGlzIGlzIG5vdCB0aGUgMC4xMSBicmFuY2guLi4KCjIwMTEtMDUtMjQgMTM6Mjc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IGZvciBHc3RJdGVyYXRvciBBUEkgY2hhbmdlcwoKMjAxMS0wNS0yNCAwOTo0ODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmgKCjIwMTEtMDUtMjQgMDA6MjY6NDAgKzAzMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGNpdGEudXRvcm9udG8uY2E+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGltcHJvdmUgdGhlIEdTVF9USU1FX0ZPUk1BVC9BUkdTIGRvY3MKCjIwMTEtMDUtMjMgMjM6NDA6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgZG9jczogaGlkZSB0aGlzIGZyb20gdGhlIGRvY3MKCjIwMTEtMDUtMjMgMTg6MzA6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHVzZSBHU1RfU0VHTUVOVF9GT1JNQVQgZm9yIHNlZ21lbnRzCgoyMDExLTA1LTIzIDE4OjE1OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZml4ZXMgZm9yIGJ1ZmZlcnBvb2wgaGFuZGxpbmcKCSAgRG9uJ3QgZXJyb3Igb3V0IHdoZW4gdGhlIGFsbG9jYXRpb24gcXVlcnkgcmV0dXJucyBzdWNjZXNzLgoJICBEbyBidWZmZXJwb29sIHF1ZXJ5IGFmdGVyIHdlIHB1c2hlZCB0aGUgY2FwcyBldmVudCBkb3duc3RyZWFtIHNvIHRoYXQgd2UgY2FuIGdldAoJICBhIGdvb2QgYnVmZmVycG9vbCBzdWdnZXN0aW9uLgoJICBBbHNvIHByb3h5IHRoZSBidWZmZXJwb29sIHF1ZXJ5IGRvd25zdHJlYW0gd2hlbiB3ZSBvcGVyYXRlIGluIGluX3BsYWNlIG1vZGUuCgoyMDExLTA1LTIzIDE4OjE0OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA1LTIzIDE2OjUzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogcmVzZXQgcmVjb25maWd1cmUgc3RhdGUKCSAgV2hlbiB3ZSBuZWdvdGlhdGUgbmV3IGNhcHMsIHJlc2V0IHRoZSByZWNvbmZpZ3VyZSBzdGF0ZS4KCjIwMTEtMDUtMjAgMTg6NTY6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogV0lQIGhhbmRsZSBidWZmZXJwb29sCgoyMDExLTA1LTIxIDE5OjA2OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIGNhbGxpbmcgX3NldF9jYXBzKCkgb24gdGhlIHNyY3BhZAoJICBBdm9pZCBpbnN0YWxsaW5nIGEgc2V0Y2FwcyBmdW5jdGlvbiBvbiB0aGUgc3JjcGFkIGFuZCBjYWxsaW5nIHRoZSBzZXRjYXBzCgkgIGZ1bmN0aW9uLCB3ZSBjYW4gZG8gbW9yZSBlZmZpY2llbnRseSB3aXRoIHNlbmRpbmcgdGhlIGV2ZW50IG91cnNlbGYgYW5kIGNhbGxpbmcKCSAgb3VyIHZtZXRob2QuCgoyMDExLTA1LTIwIDE2OjAzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luLmgKCjIwMTEtMDUtMjAgMTU6NTg6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHNvbWUgbW9yZSBjb2RlCgkgIFJlbW92ZSBzb21lIG1vcmUgdW51c2VkIGNvZGUgZnJvbSBiYXNldHJhbnNmb3JtLgoJICBQcmVwYXJlIGZvciBpbXBsZW1lbnRpbmcgYnVmZmVycG9vbHMuCgoyMDExLTA1LTIwIDE1OjUwOjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGFwaQoKMjAxMS0wNS0yMCAxNTo0ODowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRlcHJlY2F0aW9uLWd1YXJkczogZml4dXAgZm9yIGNvbW1pdCA5ZmY0ZWMzMTA0ZDI1MTBiOGYzNzlmZjM4YzY3MTY4MmZmNzk1ZTMzCgkgIFJlbW92ZSB0aGUgZGVwcmVjYXRpb24gZ3VhcmRzIGZvciBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgYWdhaW4gKGV2ZW4gdGhvdWdoIGl0CgkgIGlzIGRlcHJlY2F0ZWQpIGFzIHdlIHVzZSBpdCBpbiB0aGUgdGVzdHMuIFJlbW92ZSAiXyIgZm9yIGludGxpbmtmdW5jLgoKMjAxMS0wNS0yMCAxMzowNjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTIwIDEzOjAzOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE9ubHkgcmVpbml0IHRoZSBjYWNoZWQgR3N0Q2xvY2tJRCBpZiBpdCBpcyBmb3IgdGhlIHNhbWUgY2xvY2sKCSAgVGhlIGNsb2NrIG1pZ2h0IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgY2xvY2sgSUQgd2FzIGNyZWF0ZWQgYW5kIGluCgkgIHRoYXQgY2FzZSB3ZSBoYXZlIHRvIHJlcXVlc3QgYSBuZXcgb25lLgoKMjAxMS0wNS0yMCAxMjo0MzoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGFkZCBtZXRob2QgdG8gZ2V0IG1ldGFkYXRhCgkgIEFkZCBhIG1ldGhvZCB0byBnZXQgdGhlIG1ldGFkYXRhIGZyb20gYSBrbGFzcy4KCjIwMTEtMDUtMjAgMTI6NDM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZmFjdG9yeTogZml4IHR5cG8KCjIwMTEtMDUtMjAgMTI6MTg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEFsd2F5cyBzZW5kIGEgU0VHTUVOVCBldmVudCB3aGVuIHRoZSBhY3RpdmUgcGFkIGNoYW5nZXMKCjIwMTEtMDUtMjAgMTI6MTY6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBjb3B5JnBhc3RlIG1pc3Rha2UgaW4gdGhlIHNyY3BhZCBldmVudCBmdW5jdGlvbgoKMjAxMS0wNS0yMCAxMjowNzo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgoyMDExLTA1LTIwIDEyOjAwOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTZW5kIHVwc3RyZWFtIGV2ZW50cyB0byBhbGwgc2lua3BhZHMsIG5vdCBvbmx5IHRoZSBzZWxlY3RlZCBvbmUKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgU0VFSyBldmVudHMgYXJlIHNlbnQgdG8gYWxsIHVwc3RyZWFtIGVsZW1lbnRzLCB3aGljaCBpcwoJICByZXF1aXJlZCBpZiBkaWZmZXJlbnQgc3RyZWFtcyBhcmUgY29tcGxldGVseSBkaXN0aW5jdCBwaXBlbGluZSBwYXJ0cy4gQWxzbyB0aGlzCgkgIGFsbG93cyBRb1MgdG8gYmUgZG9uZSBvbiBkZXNlbGVjdGVkIHN0cmVhbXMsIGZsdXNoZXMgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHksCgkgIGV0Yy4KCjIwMTEtMDUtMjAgMTE6MzY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBwZW5kaW5nIGV2ZW50IGZvciBzdGlja3kgZXZlbnRzCgkgIENoYW5nZSB0aGUgc3RpY2t5IGV2ZW50IGFycmF5IHNvIHRoYXQgaXQgY29udGFpbnMgYSBwZW5kaW5nIGFuZCBhbiBhY3RpdmUgZXZlbnQuCgkgIEV2ZW50cyBvbiB0aGUgc2lua3BhZCBhcmUgY29waWVkIHRvIHRoZSBwZW5kaW5nIGFycmF5IGFuZCBhZnRlciB0aGUgZXZlbnRmdW5jCgkgIHJldHVybmVkIFRSVUUsIG1vdmVkIHRvIHRoZSBhY3RpdmUgZXZlbnQuIFRoaXMgYWxsb3dzIHVzIHRvIHF1ZXVlIG5ldyBldmVudHMKCSAgbGlrZSB3aGVuIHdlIGRvIHBlci1wYWQgb2Zmc2V0cyB3aXRob3V0IHJlbW92aW5nIHRoZSBjdXJyZW50bHkgYWN0aXZlIGV2ZW50LgoJICBSZW1vdmUgdGhlIGFjdGl2ZSBhcmd1bWVudCBmcm9tIHRoZSBnc3RfcGFkX2dldF9zdGlja3lfZXZlbnQoKSBtZXRob2QsIHRoZQoJICBwZW5kaW5nIGV2ZW50cyBhcmUgbm90IHNvbWV0aGluZyB3ZSB3YW50IHRvIGV4cG9zZS4KCjIwMTEtMDUtMjAgMDA6Mzk6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBwcmVzZXQ6IGluY2x1ZGUgY2xlYW51cAoJICBPbmx5IGhhdmUgaW5jbHVkZSBpbiB0aGUgaW5zdGFsbGVkIGhlYWRlciB3ZSBuZWVkIHRvIHVzZSBpdC4gTW92ZSB0aGUgaW5jbHVkZXMKCSAgbmVlZGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgYyBmaWxlLgoKMjAxMS0wNS0xOSAyMzoxOTozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGludHJvc3BlY3Rpb24gZGF0YQoJICBOb3cgbW9yZSBmaWxlcyBhcmUgbWVyZ2VkIGFuZCBwcm9kdWNlZCBpbiBhIGNhbm9uaWNhbCBmYXNoaW9uLCB3aGljaCBob3BlZnVsbHkKCSAgY3JlYXRlcyBsZXNzIG9yIG5vIGRlbHRhIGluIHRoZSBmdXR1cmUuCgoyMDExLTA1LTE5IDIyOjU2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDllNWJiZDUgdG8gNjliOTgxZgoKMjAxMS0wNS0xOSAxOTowNzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGNhcHMgYXJlIG5vdCBzdG9yZWQgb24gZmx1c2hpbmcgcGFkcwoJICBDYXBzIGFyZSBub3cgYWxzbyBzdG9yZWQgb24gZmx1c2hpbmcgcGFkcyBpbiB0aGUgaW5hY3RpdmUgc3RhdGUuCgoyMDExLTA1LTE5IDE5OjAxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFwcGx5IHBhZCBvZmZzZXQgb24gc2lua3BhZCBldmVudHMgdG9vCgkgIEFwcGx5IHRoZSBwYWQgb2Zmc2V0IGluIHRoZSBzZW5kX2V2ZW50KCkgZnVuY3Rpb24gYXMgd2VsbC4KCjIwMTEtMDUtMTkgMTg6Mjc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHBlci1wYWQgb2Zmc2V0cwoJICBXaGVuIGxpbmtpbmcgcGFkcyBhbmQgd2hlbiBjb3B5aW5nIGEgc2VnbWVudCBldmVudCBmcm9tIHRoZSBzb3VyYyBwYWQgdG8gdGhlCgkgIHNpbmtwYWQsIGFwcGx5IHRoZSBzcmMgYW5kIHNpbmtwYWQgb2Zmc2V0cyB0byB0aGUgc2VnbWVudCBiYXNlLiBNYWtlIHN1cmUgdGhhdAoJICB3ZSBvbmx5IG1vZGlmeSB0aGUgZXZlbnQgc3RvcmVkIG9uIHRoZSBzaW5rcGFkIGFuZCBuZXZlciB0aGUgb25lIG9uIHRoZSBzb3VyY2UKCSAgcGFkLgoJICBXaGVuIGNoYW5naW5nIHRoZSBwYWQgb2Zmc2V0LCBwZXJmb3JtIHRoZSBzZWdtZW50IGNvcHkgd2l0aCB0aGUgdXBkYXRlZCBvZmZzZXRzLgoJICBXaGVuIHB1c2hpbmcgYSBzZWdtZW50IGV2ZW50LCBhcHBseSB0aGUgc3JjcGFkIG9mZnNldCBiZWZvcmUgc2VuZGluZyB0aGUgZXZlbnQKCSAgdG8gdGhlIHBlZXIgcGFkLgoJICBUaGlzIHBhcnQgaXMgbWlzc2luZyB0aGUgYWRqdXN0bWVudCBvZiB0aGUgc2VnbWVudCBldmVudCBvbiB0aGUgc2lua3BhZCwgd2hpY2gKCSAgaXMgZm9yIGEgbGF0ZXIgcGF0Y2guCgoyMDExLTA1LTE5IDE2OjI2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIG1ldGhvZHMgdG8gYWRqdXN0IHRoZSBvZmZzZXQKCSAgQWRkIG1ldGhvZHMgdG8gYWRqdXN0IHRoZSBvZmZzZXQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgc2VnbWVudCBldmVudHMKCSAgd2l0aCBhbiBvZmZzZXQgc28gdGhhdCB3ZSBjYW4gdHdlYWsgdGhlIHRpbWluZyBvZiB0aGUgc3RyZWFtIG9uIGEgcGVyLXBhZCBiYXNlLgoKMjAxMS0wNS0xOSAxMjoxMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IFBvcnQgdG8gdGhlIG5ldyBzZWdtZW50IEFQSQoJICBUaGUgc3dpdGNoIGFjdGlvbiBzaWduYWwgd2l0aCB0aGUgc3RvcCBhbmQgc3RhcnQgcnVubmluZyB0aW1lcwoJICBpcyBub3QgbmVjZXNzYXJ5IGFueW1vcmUuIENsb3Npbmcgb2Ygc2VnbWVudHMgaXMgbm90IG5lY2Vzc2FyeQoJICBhbmQgYWRqdXN0aW5nIHRoZSBzdGFydCBydW5uaW5nIHRpbWUgb2YgYSBzZWdtZW50IGNhbiBsYXRlciBiZQoJICBkb25lIHdpdGggbmV3IEdzdFBhZCBBUEkuCgoyMDExLTA1LTE5IDExOjMwOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RnaG9zdHBhZC5oCgoyMDExLTA1LTE4IDE5OjQzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcgc2lua3BhZHMgdG9vCgkgIEZpcnN0IHN0b3JlIHRoZSBzdGlja3kgZXZlbnQgb24gdGhlIHNpbmtwYWQgaW4gdGhlIGluYWN0aXZlIHN0YXRlLCB0aGVuIGNoZWNrCgkgIGZvciB0aGUgZmx1c2hpbmcgZmxhZy4gV2Ugd2FudCB0byBoYXZlIHRoZSBldmVudHMgb24gc2lua3BhZHMgYXQgYWxsIHRpbWVzLAoJICByZWFkeSB0byBiZSBhY3RpdmF0ZWQgd2hlbiB0aGUgcGFkIGJlY29tZXMgYWN0aXZlLgoKMjAxMS0wNS0xOCAxODo1MzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtb3ZlIGNhcHMgY2hlY2sgdG8gY2VudHJhbCBsb2NhdGlvbgoJICBNYWtlIGEgZnVuY3Rpb24gdG8gY2FsbCB0aGUgZXZlbnRmdW5jIGFuZCBwZXJmb3JtIGEgY2FwcyBjaGVjayB3aGVuIHdlIGFyZQoJICBkaXNwYXRjaGluZyBhIGNhcHMgZXZlbnQuCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGFsbCBjb2RlIHBhdGhzIGNvcnJlY3RseSBjaGVjayB0aGF0IHRoZSBjYXBzIGFyZQoJICBhY2NlcHRhYmxlIGJlZm9yZSBzZW5kaW5nIHRoZSBjYXBzIHRvIHRoZSBldmVudGZ1bmN0aW9uLgoKMjAxMS0wNS0xOCAxODo1MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYXZvaWQgY2FsbGluZyBzZXRjYXBzIHRvbyBtYW55IHRpbWVzCgkgIERvbid0IGNhbGwgc2V0Y2FwcywgdGhlIGNhcHMgZXZlbnQgd2lsbCB0YWtlIGNhcmUgb2YgcHJvcGFnYXRpbmcgdGhlIGNhcHMgb24gYWxsCgkgIHBhZHMuCgoyMDExLTA1LTE4IDE4OjQ4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBuYW1lCgkgIEFkZCBBTExPQ0FUSU9OIHF1ZXJ5IG5hbWUgYW5kIGd1YXJkIHNvbWUgZnVuY3Rpb25zIGFnYWluc3QgaW52YWxpZCBxdWVyaWVzLgoKMjAxMS0wNS0xOCAxNjo1NjoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IE1ha2UgU0VHTUVOVCBldmVudCBwYXJzaW5nIEFQSSBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3RoZXJzCgoyMDExLTA1LTE4IDE2OjQ3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbGF4IGNhcHMgY2hlY2sKCSAgQWxzbyBydW4gdGhlIGNhcHMgdHJhbnNmb3JtIGZ1bmN0aW9uIG9uIEFOWSBjYXBzLCBsaWtlIHdlIHVzZWQgdG8gZG8gYmVmb3JlLgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBjYXBzZmlsdGVyIGhhcyBhIGNoYW5jZSB0byBmaWx0ZXIgQU5ZIGNhcHMgYXMgd2VsbC4KCjIwMTEtMDUtMTggMTY6Mjk6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZvcmdldCB0byB0YWtlIHRoZSBvYmplY3QgbG9jayB3aGVuIGdldHRpbmcgYSBzdGlja3kgZXZlbnQKCjIwMTEtMDUtMTggMTY6MjY6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIGZ1bmN0aW9uIHRvIGdldCBzdGlja3kgZXZlbnRzIGZyb20gYSBwYWQKCSAgQVBJOiBnc3RfcGFkX2dldF9zdGlja3lfZXZlbnQoKQoKMjAxMS0wNS0xOCAxNTo0MzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBldmVudCBjb3B5CgkgIEZpeCBwYXJlbnQgcmVmY291bnQgb24gZXZlbnQgY29weS4KCSAgRml4IHVuaXQgdGVzdC4KCjIwMTEtMDUtMTggMTU6Mjk6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90aWZ5IGNhcHMgcHJvcGVydHkgY2hhbmdlIGluIGNhbGxzZXRjYXBzCgkgIE5vdGlmeSB0aGUgY2FwcyBwcm9wZXJ0eSBjaGFuZ2UgaW4gdGhlIGJhY2t3YXJkcyBjb21wYXRpYmxlIGZ1bmN0aW9uIHRvIGNhbGwgdGhlCgkgIHNldGNhcHMgZnVuY3Rpb24uCgoyMDExLTA1LTE4IDE2OjA5OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZkMzUwNzMgdG8gOWU1YmJkNQoKMjAxMS0wNS0xOCAxNTowNDo0OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIEdzdFByb3h5UGFkIGZyb20gcHJpdmF0ZSBzZWN0aW9uCgoyMDExLTA1LTE4IDE1OjAyOjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZG9jczogdXNlIHRoZSBzYW1lIG5hbWUgZm9yIHRoZSBhcmd1bWVudCBpbiBwcm90b3R5cGUgYW5kIGRvY3MKCjIwMTEtMDUtMTggMTQ6NTk6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBwdXQgZ2VuZXJhdGVkIHNvdXJjZXMgdG8gQlVJTFRfU09VUkNFUyBhbmQgY2xlYW4gdGhlbSBvbiBtYWtlIGNsZWFuCgoyMDExLTA1LTE4IDEzOjE5OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0xOCAxMzoxNDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHBsdWdpbi5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMDUtMTggMTQ6MTA6MTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiByZWluc2VydCBtaXNzaW5nIHNwYWNlIHRvIGZpeCBwcmV2aW91cyBjb21taXQKCjIwMTEtMDUtMTggMTM6NTQ6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBzaW1wbGlmeSB0aGUgc25pcGV0IGV4dHJhY3Rpb24gcnVsZXMKCSAgVXNlICQ8IGluc3RlYWQgb2YgcmVwZWF0aW5nIHRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgoKMjAxMS0wNS0xOCAxMDo1OTozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGRvbid0IGV4dHJhY3QgdGhlIHhtbCBleGFtcGxlIGFueW1vcmUsIGl0cyBnb25lCgkgIEFzIGEgZm9sbG93dXAgZm9yIGNvbW1pdCBjZGE1YTM1M2QyNzMyNmMwMjcyYTc5YzkyYzExYzIyMWE0MDkyZGE0IGRvbid0IHRyeQoJICBleHRyYWN0aW5nIGFuIGV4YW1wbGUgdGhhdCBoYXMgYmVlbiByZW1vdmVkLgoKMjAxMS0wNS0xOCAxMjoyMzozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NmRmY2VhIHRvIGZkMzUwNzMKCjIwMTEtMDUtMTggMTE6MjE6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIHNvbWUgbW9yZQoKMjAxMS0wNS0xOCAxMTowODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV3b3JrIHN0aWNreSBldmVudHMgYSBsaXR0bGUKCSAgVXBkYXRlIHRoZSBkZXNpZ24gZG9jcyB3aXRoIHNvbWUgY2xlYXIgcnVsZXMgZm9yIGhvdyBzdGlja3kgZXZlbnRzIGFyZQoJICBoYW5kbGVkLgoJICBSZWltcGxlbWVudCB0aGUgc3RpY2t5IHRhZ3MsIHVzZSBhIHNtYWxsIHN0cnVjdHVyZSB0byBob2xkIHRoZSBldmVudCBhbmQgaXRzCgkgIGN1cnJlbnQgc3RhdGUgKGFjdGl2ZSBvciBpbmFjdGl2ZSkuCgkgIEV2ZW50cyBvbiBzaW5rcGFkcyBvbmx5IGJlY29tZSBhY3RpdmUgd2hlbiB0aGUgZXZlbnQgZnVuY3Rpb24gcmV0dXJuZWQgc3VjY2VzcwoJICBmb3IgdGhlIGV2ZW50LgoJICBXaGVuIGxpbmtpbmcsIG9ubHkgdXBkYXRlIGV2ZW50cyB0aGF0IGFyZSBkaWZmZXJlbnQuCgkgIEF2b2lkIG1ha2luZyBhIGNvcHkgb2YgdGhlIGV2ZW50IGFycmF5LCB1c2UgdGhlIG9iamVjdCBsb2NrIHRvIHByb3RlY3QgdGhlIGV2ZW50CgkgIGFycmF5IGFuZCByZWxlYXNlIGl0IG9ubHkgdG8gY2FsbCB0aGUgZXZlbnQgZnVuY3Rpb24uIFRoaXMgd2lsbCBuZWVkIHRvIGNoZWNrCgkgIGlmIHNvbWV0aGluZyBjaGFuZ2VkLCBsYXRlci4KCSAgRGlzYWJsZSBhIHRlc3QgaW4gdGhlIHVuaXQgdGVzdCwgaXQgY2FuJ3Qgd29yayB5ZXQuCgoyMDExLTA1LTE3IDIyOjE3OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFpbnRhaW4gZnJhbWUgc3RhdGUgZHVyaW5nIGZyYW1lIHBhcnNpbmcgcm91bmQKCSAgU2VlICM2NTAwOTMuCgoyMDExLTA1LTEyIDExOjU1OjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBsYXRlbmN5IHF1ZXJ5IHN1cHBvcnQKCjIwMTEtMDUtMTcgMjI6MTU6MzggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIG1pbmltdW0gZnJhbWUgc2l6ZSBoYW5kbGluZyBtb3JlIGVmZmljaWVudCBhbmQgY29udmVuaWVudAoJICBXaGlsZSBzb21lIGZvcm1hdHMgYWxsb3cgc3ViY2xhc3MgdG8gZGV0ZXJtaW5lIGEgc3BlY2lmaWMgc3Vic2VxdWVudAoJICBuZWVkZWQgZnJhbWUgc2l6ZSwgb3RoZXJzIG1heSB0byBuZWVkIHRvIHNjYW4gZm9yIG1hcmtlcnMgYW5kIGNhbiBvbmx5CgkgIHJlcXVlc3QgJ2FkZGl0aW9uYWwgZGF0YScgYnkgd2hhdGV2ZXIgcmVhc29uYWJsZSBhdmFpbGFibGUgc3RlcC4KCSAgSW4gcHVzaCBtb2RlLCB0cnlpbmcgdG8gbWluaW1pemUgYWRkaXRpb25hbCBsYXRlbmN5IGxlYWRzIHRvIHN0ZXAgc2l6ZQoJICBiZWluZyB0aGUgbmV4dCBpbnB1dCBidWZmZXIuICBJbiBwdWxsIG1vZGUsIGFueSByZWFzb25hYmxlIHN0ZXAgc2l6ZQoJICAoc3VjaCBhcyBhbHJlYWR5IHVzZWQgYnkgYnVmZmVyIGNhY2hpbmcpIGNhbiBiZSBhcHBsaWVkLgoKMjAxMS0wNS0xNyAyMjozODoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNldCBjb3JyZWN0IGJ1ZmZlciBzaXplCgoyMDExLTA1LTA2IDEwOjU0OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBzaG93IGZsYWdzIHRoZSBzYW1lIHdheSB0aGV5IG5lZWQgdG8gYmUgZW50ZXJlZAoJICBUaGUgKGRlKXNlcmlhbGlzYXRpb24gdXNlcyAiKyIgYW5kIG5vdCAiIHwgIi4KCjIwMTEtMDQtMjggMTE6MzQ6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcGx1Z2luZmVhdHVyZTogYXZvaWQgZHVwbGljYXRpbmcgZmVhdHVyZS0+bmFtZQoJICBUaGUgZmVhdHVyZSBuYW1lIGlzIG5vdCBzdXBwb3NlZCB0byBjaGFuZ2Ugb3ZlciB0aW1lIGFueXdheS4gSW4gb3JkZXIgdG8gZW5mb3JjZQoJICB0aGlzIHBhcmVudGl6ZSBmZWF0dXJlcyB0byB0aGUgcmVnaXN0cnkgYW5kIG1ha2UgdGhlIGZlYXR1cmUtPm5hbWUgcG9pbnRpbmcgdG8KCSAgR3N0T2JqZWN0Om5hbWUuIEluIDAuMTEgd2UgY291bGQgY29uc2lkZXIgb2YgcmVtb3ZpbmcgdGhlIGZlYXR1cmUtPm5hbWUgdmFyaWFibGUKCSAgKEZJWE1FIGNvbW1lbnQgYWRkZWQpLgoJICBGaXhlczogIzQ1OTQ2NgoKMjAxMS0wNS0wMiAxNTozNjoxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IGFkZCBkZXByZWNhdGlvbiBndWFyZHMKCSAgTW92ZSBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gdG8gcHJpdmF0ZSBoZWFkZXIgdG8gYXZvaWQgYSBkb3plbiAjaWZkZWZzLiBVc2UgYQoJICBncG9pbnRlciBpbiBwdWJsaWMgaGVhZGVyIGluc3RlYWQuCgoyMDExLTA1LTE3IDE5OjAzOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHB1c2ggc3RpY2t5IGV2ZW50cyBvbiBmbHVzaAoJICBPbmx5IGFsbG93IHNlcmlhbGl6ZWQgYW5kIG5vbi1mbHVzaCBldmVudHMgZm9yd2FyZCB0aGUgc3RpY2t5IGV2ZW50cy4KCjIwMTEtMDUtMTcgMTg6MjM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdDogcmVzZXQgcGFkIGNhcHMgcHJvcGVybHkKCjIwMTEtMDUtMTcgMTg6MjM6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIG1vcmUgZGVidWcKCjIwMTEtMDUtMTcgMTg6MjE6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSB1bnVzZWQgY29kZQoJICBUaGUgY29kZSB0byBtYWtlIHN1cmUgdGhhdCBjYXBzIGFyZSBwcm9wZXJseSBzZXQgb24gYm90aCBwYWRzLCBpdCBub3cgaGFwcGVucwoJICBhdXRvbWF0aWNhbGx5IHdpdGggdGhlIGNhcHMgZXZlbnQuCgoyMDExLTA1LTE3IDE3OjUzOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCB0ZXN0cwoJICBSZW1vdmUgdGhlIHRlc3RzIHRoYXQgaGFuZGxlIGluY29tcGF0aWJsZSBmb3JtYXRzLCB3ZSBkb24ndCB3YW50IHRoYXQgYW55bW9yZS4KCjIwMTEtMDUtMTcgMTc6NTE6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBoYW5kbGUgd3JhcGFyb3VuZCBiZXR0ZXIKCSAgTm93IHRoYXQgd2UgdXNlIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHNlZ21lbnQsIGhhbmRsZSB3cmFwYXJvdW5kIHdoZW4gc2Vla2luZwoJICBiZXR0ZXIuCgoyMDExLTA1LTE3IDE2OjUwOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSB1bnJlZiwgdGhlIG9iamVjdCBpcyBOVUxMCgoyMDExLTA1LTE3IDE0OjAxOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFRoZSBSRUNPTkZJR1VSRSBlbGVtZW50IG9ubHkgZXhpc3RzIGluIDAuMTEKCSAgSW1wbGVtZW50aW5nIGl0IHByb3Blcmx5IGluIDAuMTAgc2VlbXMgdG8gYmUgaW1wb3NzaWJsZS4KCjIwMTEtMDUtMTcgMTM6MTM6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFVwZGF0ZSBmb3IgY2Fwcy9wYWQgdGVtcGxhdGUgcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xNyAxMjoyNToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogVXBkYXRlIGZvciBjYXBzL3BhZCB0ZW1wbGF0ZSByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTE3IDEyOjA0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogVXBkYXRlIGZvciBjYXBzL3BhZCB0ZW1wbGF0ZSByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTE3IDEyOjEyOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENvbnNpZGVyIEdzdFBhZFRlbXBsYXRlIGFzIGltbXV0YWJsZQoJICBEb24ndCBjb3B5IHRoZSB0ZW1wbGF0ZXMgd2hlbiBjcmVhdGluZyBzdWJjbGFzc2VzIGJ1dCBvbmx5IGluY3JlYXNlCgkgIHRoZWlyIHJlZmNvdW50LgoKMjAxMS0wNS0xNyAxMjoxMDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IENyZWF0ZSBwYWQgdGVtcGxhdGVzIHdpdGggZmxvYXRpbmcgcmVmcwoJICBBbmQgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGZsb2F0aW5nIHJlZiBpbiBnc3RfZWxlbWVudF9hZGRfcGFkX3RlbXBsYXRlKCkKCjIwMTEtMDUtMTcgMTI6MDc6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBJbXByb3ZlIHJlZmVyZW5jZSBoYW5kbGluZyBvZiB0aGUgdGVtcGxhdGUncyBjYXBzCgkgIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGNhcHMgYW55bW9yZS4KCjIwMTEtMDUtMTYgMTM6Mzk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZGVsYXkgcHJpdmF0ZSBkYXRhIGluaXRpYWxpc2F0aW9uIHVudGlsIGFjdHVhbGx5IG5lZWRlZAoJICBXZSBvbmx5IHVzZSB0aGUgcHJpdmF0ZSBpbnN0YW5jZSBkYXRhIGZvciB3ZWFrIHJlZmVyZW5jZXMgZm9yIG5vdywKCSAgc28gY2FuIGRlbGF5IGluaXRpYWxpc2F0aW9uIHVudGlsIGFjdHVhbGx5IG5lZWRlZCAobWljcm9vcHRpbWlzYXRpb24pCgoyMDExLTA1LTE3IDExOjU5OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkOiBMZXQgdGVtcGxhdGUgcmVsYXRlZCBmdW5jdGlvbnMgcmV0dXJuIG5ldyByZWZlcmVuY2VzCgkgIGdzdF9wYWRfdGVtcGxhdGVfZ2V0X2NhcHMoKSwgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlX2NhcHMoKQoJICBhbmQgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgcmV0dXJuIGEgbmV3IHJlZmVyZW5jZSBvZiB0aGUKCSAgY2FwcyBvciB0ZW1wbGF0ZSBub3cgYW5kIHRoZSByZXR1cm4gdmFsdWUgbmVlZHMgdG8gYmUKCSAgdW5yZWZmZWQgYWZ0ZXIgdXNhZ2UuCgoyMDExLTA1LTE3IDExOjQ1OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgUmV2ZXJ0ICJldmVudDogZXhhbXBsZSBvZiBob3cgdG8gb3B0aW1pemUgZXZlbnRzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGZhMjhlMmM1ZTZlNWUxNzJiZTMwOGMwYzUwZjQ0ZWQ2ZjM5ZTFhNzEuCgkgIFRoZSBvcHRpbWl6YXRpb24gb25seSBoYXMgbWluaW1hbCBpbXBhY3Qgb24gdGhlIHBlcmZvcm1hbmNlIGFuZAoJICBtYWtlcyBldmVyeXRoaW5nIG1vcmUgY29tcGxleC4KCjIwMTEtMDUtMTcgMTE6NDU6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIFJldmVydCAiZXZlbnQ6IHVwZGF0ZSB0aGUgc3RydWN0dXJlIHdoZW4gbmVlZGVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkwNTEwMGNkYmU1ODBkNGQxODJiZmQ5ZDVlYzliMzY4YTExMGY0NjQuCgoyMDExLTA1LTE3IDExOjIyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBGaXggY29tcGlsYXRpb24KCjIwMTEtMDUtMTcgMTE6MjA6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgIFJldmVydCAicXVlcnk6IGFsbG93IF9tYWtlX3dyaXRhYmxlIG9uIHF1ZXJ5IGhhbmRsZXJzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGNmNGZiYzAwNWM1YzUzMGMyYTUwOWE5NDNhMDViOTFkNmM5YWYzZmIuCgkgIFRoaXMgY2hhbmdlIGRpZCBub3QgaW1wcm92ZSB0aGUgc2l0dWF0aW9uIGZvciBiaW5kaW5ncyBiZWNhdXNlCgkgIHF1ZXJpZXMgYXJlIHVzdWFsbHkgY3JlYXRlZCwgdGhlbiBkaXJlY3RseSBwYXNzZWQgdG8gYSBmdW5jdGlvbgoJICBhbmQgbm90IHN0b3JlZCBlbHNld2hlcmUsIGFuZCB0aGUgd3JpdGFiaWxpdHkgcHJvYmxlbSB3aXRoCgkgIG1pbmlvYmplY3RzIHVzdWFsbHkgaGFwcGVucyB3aXRoIGJ1ZmZlcnMgb3IgY2FwcyBpbnN0ZWFkLgoKMjAxMS0wNS0xNyAxMToxOToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIFJldmVydCAiYmluOiBEZXJlZmVyZW5jZSBHc3RRdWVyeSoqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIEdTVF9RVUVSWV9UWVBFX05BTUUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDM3YzkyYjQwM2UwYzdkYTliOWQ0NTA5ZWY0ZmZiZDA1NzEwZGYyYi4KCjIwMTEtMDUtMTcgMTE6MTk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBSZXZlcnQgImdob3N0cGFkOiBmaXggZ19yZXR1cm5fKiB3aXRoIG5ldyBxdWVyeSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NzdjMWMyOGZmOTU3Y2E5MjkxMWVhZGZjNzg1Zjg2NjFkOWUwMTI3LgoKMjAxMS0wNS0xNyAwOTo0MDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWYKCjIwMTEtMDUtMTcgMDk6MzU6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogTWFrZSBib3RoIHBhcmFtZXRlcnMgdG8gZ3N0X3N0cnVjdHVyZV9pc19lcXVhbCgpIGNvbnN0CgoyMDExLTA1LTE3IDA5OjMzOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBVcGRhdGUgU2luY2UgbWFya2VycyB0byB0aGUgY29ycmVjdCB2ZXJzaW9uCgoyMDExLTA1LTE3IDA5OjMzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9pbnRlcnNlY3QoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaW50ZXJzZWN0KCkKCjIwMTAtMDktMTAgMTg6MzM6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfY2FuX2ludGVyc2VjdCBBUEkKCSAgQWxsb3dzIGNoZWNraW5nIGlmIHR3byBzdHJ1Y3R1cmVzIGNhbiBpbnRlcnNlY3Qgd2l0aG91dCBoYXZpbmcgdG8KCSAgZ28gdGhyb3VnaCBHc3RDYXBzCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9jYW5faW50ZXJzZWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMDAKCjIwMTAtMDktMTAgMTg6MTQ6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHJ1Y3R1cmU6IE5ldyBBUEk6IGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWwKCSAgQWxsb3dzIGNoZWNraW5nIGVxdWFsaXR5IG9mIEdzdFN0cnVjdHVyZSB3aXRob3V0IGhhdmluZyB0byBjcmVhdGUKCSAgaW50ZXJtZWRpYXJ5IEdzdENhcHMuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pc19lcXVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzAwCgoyMDExLTA1LTE2IDE5OjA5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBzZXQgZWxlbWVudHMgaW4gUEFVU0VECgkgIFNldCBlbGVtZW50cyBpbiBQQVVTRUQgYmVmb3JlIHRyeWluZyB0byBzZXQgY2FwcyBvbiBwYWRzLgoKMjAxMS0wNS0xNiAxOTowNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0OiBmaXggZ2hvc3RwYWQgdGVzdAoJICBXZSBuZWVkIHRvIGhhdmUgYWN0aXZhdGVkIHBhZHMgYmVmb3JlIHdlIGNhbiBwYXNzIGFyb3VuZCBjYXBzLgoJICBEb24ndCBzZXQgTlVMTCBjYXBzIG9uIHBhZHMuCgoyMDExLTA1LTE2IDE5OjA0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGF2b2lkIHNldHRpbmcgTlVMTCBjYXBzIG9uIHBhZHMKCjIwMTEtMDUtMTYgMTg6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGJ1ZmZlciByZWZjb3VudGluZwoJICBXaGVuIHdlIGZhaWwgdG8gYWxsb2NhdGUgYW4gb3V0cHV0IGJ1ZmZlciwgc2V0IHRoZSBidWZmZXIgcG9pbnRlciB0byBOVUxMIG9yCgkgIGVsc2UgdGhlIGNhbGxpbmcgZnVuY3Rpb24gd2lsbCB0cnkgdG8gdW5yZWYgaXQuCgkgIFJlbW92ZSBzb21lIG9sZCBjb21tZW50cwoKMjAxMS0wNS0xNiAxODoyOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBhbGxvdyBOVUxMIGZpbHRlcnMgYW5kIGZpeCByZWZjb3VudGluZwoKMjAxMS0wNS0xNiAxODoxMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG9ubHkgYWRkIHRoZSBzdHJ1Y3R1cmUgd2hlbiB3ZSBjb3VsZCBzZXQgdGhlIHBhcmVudAoKMjAxMS0wNS0xNiAxNzo1Mzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IGdfcmV0dXJuXyogd2l0aCBuZXcgcXVlcnkKCjIwMTEtMDUtMTYgMTc6MjQ6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzCgoyMDExLTA1LTE2IDE2OjU5OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGhhbmRsZSBtb3JlIGZvcm1hdHMKCSAgVXNlIHRoZSBzZWdtZW50IGZvcm1hdCBpbnN0ZWFkIG9mIGEgaGFyZGNvZGVkIF9USU1FLgoKMjAxMS0wNS0xNiAxNjo1Nzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBtb3JlIGZvcm1hdHMKCSAgRG9uJ3QgaGFyZGNvZGUgR1NUX0ZPUk1BVF9USU1FIGluIHBsYWNlcywgd2UgY2FuIHdvcmsgd2l0aCBtYW55IGZvcm1hdHMuCgoyMDExLTA1LTE2IDE2OjU0OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMScgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lciBpbnRvIDAuMTEKCjIwMTEtMDUtMTYgMTY6NTM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9nc3RiaW4uYwoJICBnc3QvZ3N0ZWxlbWVudC5jCgkgIGdzdC9nc3RlbGVtZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmMKCjIwMTEtMDUtMTYgMTY6MTA6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIHVwZGF0ZSBtYW51YWwgY29kZSBleGFtcGxlcyBmb3IgbmV3IF9nZXRfY2FwcygpCgoyMDExLTA1LTEzIDA4OjM0OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICB0ZXN0czogVXBkYXRlIGZvciBuZWdvdGlhdGlvbiByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTExIDE1OjM4OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBVcGRhdGUgZm9yIG5lZ290aWF0aW9uIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCSAgVGhlIGZpbHRlciBjYXBzIGFyZSBvbmx5IGZvcndhcmRlZCBhbmQgcmV0dXJuZWQgaW5zdGVhZAoJICBvZiBBTlkgY2FwcyBpbiB0aGUgY29yZSBlbGVtZW50cyBiZWNhdXNlIHRoZXkgZG9uJ3QgZG8KCSAgYW55dGhpbmcgY2FwcyBzcGVjaWZpYy4KCjIwMTEtMDUtMTEgMTU6MTI6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNlOiBJbXByb3ZlIG5lZ290aWF0aW9uIHdpdGggbmV3IGdldGNhcHMoKSBmaWx0ZXIKCjIwMTEtMDUtMTAgMTc6NTY6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdDogQWRkIGEgZmlsdGVyIGNhcHMgcGFyYW1ldGVyIHRvIGFsbCBnZXRfY2FwcygpIGZ1bmN0aW9ucwoJICBUaGlzIGlzIHVzZWQgdG8gcGFzcyB0aGUgcG9zc2libGUgY2FwcyBhbmQgcHJlZmVyZW5jZXMgdG8KCSAgdGhlIHBhZCBhbmQgdG8gYWxsb3cgYmV0dGVyIG5lZ290aWF0aW9uIGRlY2lzaW9ucy4KCjIwMTEtMDQtMTkgMjA6MDU6MDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGp1c3QgaW5wdXQgZGF0YSByYXRlIGVzdGltYXRpb24KCSAgLi4uIGJlaW5nIGF3YXJlIG9mIHBvc3NpYmxlIGluaXRpYWwgaGlnaGVyIGJ1cnN0IHJhdGUuCgoyMDExLTA1LTEzIDE4OjA3OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgUmV3b3JrIEdzdFNlZ21lbnQgaGFuZGxpbmcKCSAgSW1wcm92ZSBHc3RTZWdtZW50LCByZW5hbWUgc29tZSBmaWVsZHMuIFRoZSBpZGVhIGlzIHRvIGhhdmUgdGhlIEdzdFNlZ21lbnQKCSAgc3RydWN0dXJlIHJlcHJlc2VudCB0aGUgdGltaW5nIHN0cnVjdHVyZSBvZiB0aGUgYnVmZmVycyBhcyB0aGV5IGFyZSBnZW5lcmF0ZWQgYnkKCSAgdGhlIHNvdXJjZSBvciBkZW11eGVyIGVsZW1lbnQuCgkgIGdzdF9zZWdtZW50X3NldF9zZWVrKCkgLT4gZ3N0X3NlZ21lbnRfZG9fc2VlaygpCgkgIFJlbmFtZSB0aGUgTkVXU0VHTUVOVCBldmVudCB0byBTRUdNRU5ULgoJICBNYWtlIHBhcnNpbmcgb2YgdGhlIFNFR01FTlQgZXZlbnQgaW50byBhIEdzdFNlZ21lbnQgc3RydWN0dXJlLgoJICBQYXNzIGEgR3N0U2VnbWVudCBzdHJ1Y3R1cmUgd2hlbiBtYWtpbmcgYSBuZXcgU0VHTUVOVCBldmVudC4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgcGFzcyB0aGUgdGltaW5nIGluZm8gZGlyZWN0bHkgdG8gdGhlIG5leHQgZWxlbWVudC4gTm8gYWNjdW11bGF0aW9uIGlzIG5lZWRlZCBpbgoJICB0aGUgcmVjZWl2aW5nIGVsZW1lbnQsIGFsbCB0aGUgaW5mbyBpcyBpbnNpZGUgdGhlIGVsZW1lbnQuCgkgIFJlbW92ZSBnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCgpOiBUaGlzIGZ1bmN0aW9uIGFzIHVzZWQgdG8gYWNjdW11bGF0ZQoJICBzZWdtZW50cyByZWNlaXZlZCBmcm9tIHVwc3RyZWFtLCB3aGljaCBpcyBub3cgbm90IG5lZWRlZCBhbnltb3JlIGJlY2F1c2UgdGhlCgkgIHNlZ21lbnQgZXZlbnQgY29udGFpbnMgdGhlIGNvbXBsZXRlIHRpbWluZyBpbmZvcm1hdGlvbi4KCjIwMTEtMDUtMTYgMTA6MjU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlLWltcGxlbWVudCBub3RpZnk6OmNhcHMKCjIwMTEtMDUtMTQgMTQ6MDI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGRvY3M6IGZpeCB1cCBzb21lIFNpbmNlIG1hcmtlcnMgYW5kIHVwZGF0ZSBmb3IgbmV3IG11bHRpcXVldWUgYXJncwoKMjAxMS0wNS0xMiAxNjo0ODo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRG9uJ3QgaW50ZXJwcmV0ZSBwaXBlbGluZXMgd2l0aG91dCBzaW5rIGVsZW1lbnRzIGFzIGFsd2F5cyBiZWluZyBpbiBFT1Mgc3RhdGUKCSAgU29tZSB0ZXN0cyAoZS5nLiBlbGVtZW50cy9jYXBzZmlsdGVyKSBoYXZlIHBpcGVsaW5lcyB3aXRoIGRhbmdsaW5nCgkgIHNpbmtwYWRzIGFuZCB3aXRob3V0IGEgc2luayBlbGVtZW50LiBUaGVzZSBwaXBlbGluZXMgY2FuIG5ldmVyIHBvc3QKCSAgYW4gRU9TIG1lc3NhZ2UgKGJlY2F1c2UgdGhpcyBpcyBvbmx5IHZhbGlkIGJ5IGEgc2luaykgYW5kIGFzIHN1Y2gKCSAgc2hvdWxkIG5ldmVyIGdldCBhbiBFT1MgbWVzc2FnZSBwb3N0ZWQgYnkgdGhlIGJpbi4KCjIwMTEtMDUtMTIgMTU6NTE6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBPbmx5IHJldHJ5IHdyaXRpbmcgdG8gdGhlIHNvY2tldCBmb3IgRUFHQUlOLCBFV09VTERCTE9DSyBhbmQgRUlOVFIKCSAgRml4ZXMgaW5maW5pdGUgbG9vcCBpbiBzb21lIGNhc2VzLCBidWcgIzY1MDAwMi4KCjIwMTEtMDUtMTIgMDk6NTk6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IEFkZCBuZXcgbWluaW9iamVjdCB3ZWFrIHJlZi91bnJlZiBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMTEtMDUtMTIgMDk6NTU6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogTWlub3IgY2xlYW51cCBvZiBsYXN0IGNvbW1pdAoKMjAxMS0wNS0xMSAxMzowOToxOSAtMDQwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEFkZCB3ZWFrIHJlZmVyZW5jaW5nIGZ1bmN0aW9uYWxpdHkKCSAgQVBJOiBnc3RfbWluaV9vYmplY3Rfd2Vha19yZWYoKQoJICBBUEk6IGdzdF9taW5pX29iamVjdF93ZWFrX3VucmVmKCkKCSAgQWRkIHdlYWsgcmVmZXJlbmNpbmcgZnVuY3Rpb25hbGl0eSB0byBHc3RNaW5pT2JqZWN0LCB3aGljaAoJICBhbGxvd3MgdG8gZ2V0IG5vdGlmaWNhdGlvbnMgd2hlbiBhbiBtaW5pIG9iamVjdCBpcyBkZXN0cm95ZWQKCSAgYnV0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIHJlYWwgcmVmY291bnQuIFRoaXMgaXMgbW9zdGx5CgkgIHVzZWZ1bCBmb3IgYmluZGluZ3MuCgkgIEZpeGVzIGJ1ZyAjNjA5NDczLgoKMjAxMS0wMy0xOSAxMDoyODo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IEFkZCBzeW5jIG1vZGUgdGhhdCBzeW5jcyBpbmFjdGl2ZSBwYWRzIHRvIHRoZSBydW5uaW5nIHRpbWUgb2YgdGhlIGFjdGl2ZSBwYWQKCSAgRml4ZXMgYnVnICM2NDUwMTcuCgoyMDExLTAzLTIyIDEzOjE5OjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogQWRkIG1vZGUgdG8gc3luY2hyb25pemUgZGVhY3RpdmF0ZWQvbm90LWxpbmtlZCBzdHJlYW1zIGJ5IHRoZSBydW5uaW5nIHRpbWUKCSAgRml4ZXMgYnVnICM2NDUxMDcsICM2MDA2NDguCgoyMDExLTA0LTE4IDE0OjI2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHBvc3QgRU9TIG1lc3NhZ2VzIGFmdGVyIHJlYWNoaW5nIHRoZSBQTEFZSU5HIHN0YXRlCgkgIEZpeGVzIGJ1ZyAjNjQ3NzU2LgoKMjAxMS0wNS0xMCAxNjozNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBZGQgR3N0RWxlbWVudDo6c3RhdGVfY2hhbmdlZCB2ZnVuYwoJICBBUEk6IEdzdEVsZW1lbnQ6OnN0YXRlX2NoYW5nZWQKCSAgVGhpcyBpcyBhbHdheXMgY2FsbGVkIHdoZW4gdGhlIHN0YXRlIG9mIGFuIGVsZW1lbnQgaGFzIGNoYW5nZWQgYW5kCgkgIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2UgaXMgcG9zdGVkIG9uIHRoZSBidXMuCgoyMDExLTA1LTA2IDE2OjQ0OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiBBZGQgZG9jcyBmb3IgYWxsIHRoZSBuZXcsIHB1YmxpYyBmdW5jdGlvbnMKCjIwMTEtMDUtMDYgMTY6MTU6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBZGQgZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBwYXJhbWV0ZXJzIHRvIHRoZSBuZXcsIHB1YmxpYyBmdW5jdGlvbnMKCjIwMTEtMDUtMDYgMTY6MDA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IFJlbmFtZSBnaG9zdHBhZC9wcm94eXBhZCBkZWZhdWx0IGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVsbF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1bGxfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9saW5rX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX3NldGNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfdW5saW5rX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfYnVmZmVyYWxsb2NfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfY2hhaW5fZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfY2hhaW5fbGlzdF9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9jaGVja2dldHJhbmdlX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2V2ZW50X2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2ZpeGF0ZWNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZ2V0Y2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9nZXRyYW5nZV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX3F1ZXJ5X2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX3F1ZXJ5X3R5cGVfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfc2V0Y2Fwc19kZWZhdWx0CgoyMDExLTA1LTA2IDE1OjUwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgZ2hvc3RwYWQ6IE1ha2UgYWxsIHRoZSBpbnRlcm5hbCBjYXBzIGZ1bmN0aW9ucyBwdWJsaWMKCSAgVGhpcyBpcyB1c2VmdWwgaWYgZ2hvc3RwYWQvcHJveHlwYWRzIHNob3VsZCBiZSB1c2VkIGJ1dAoJICBhZGRpdGlvbmFsIGNvZGUgc2hvdWxkIGJlIGV4ZWN1dGVkLCBlLmcuIGZvciB0cmFja2luZwoJICBzZWdtZW50cyBpbiB0aGUgZXZlbnQgZnVuY3Rpb24uCgoyMDExLTA1LTA2IDE1OjI1OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogT25seSBpbXBsZW1lbnQgdGhlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgZnVuY3Rpb24gb24gcHJveHlwYWRzCgkgIGdob3N0cGFkcyBpbmhlcml0IGl0IGZyb20gdGhlaXIgcGFyZW50IGNsYXNzLiBBbHNvIG1ha2UgaXQgdGhyZWFkc2FmZS4KCjIwMTEtMDUtMDYgMTU6MTY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiBBUEk6IEV4cG9zZSBnc3RfcHJveHlfcGFkX2dldF9pbnRlcm5hbCgpCgkgIFRoaXMgYWxsb3dzIHRvIGdldCB0aGUgaW50ZXJuYWwgcGFkIG9mIGdob3N0cGFkcyBhbmQKCSAgcHJveHlwYWRzIHdpdGhvdXQgdXNpbmcgZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKCkKCSAgYW5kIGlzIG11Y2ggbW9yZSBjb252ZW5pZW50LgoJICBUaGUgaW50ZXJuYWwgcGFkIG9mIGEgZ2hvc3RwYWQgaXMgdGhlIHBhZCBvZiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uCgkgIHRoYXQgaXMgdXNlZCB0byBsaW5rIHRvIHRoZSBnaG9zdHBhZCB0YXJnZXQuCgoyMDExLTA1LTA1IDE3OjU0OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBXaGVuIHRyeWluZyB0byBmaXhhdGUgdGhlIHNpbmsgc3VnZ2VzdGlvbiBwcmVmZXIgaXRzIHN0cnVjdHVyZSBvcmRlcgoKMjAxMS0wNS0wNSAxMToyODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBNZXJnZSBzdHJ1Y3R1cmVzIHdoZW4gaW50ZXJzZWN0aW5nIGluc3RlYWQgb2YgYXBwZW5kaW5nIHRoZW0KCSAgVGhpcyBwcmV2ZW50cyBhZGRpbmcgZHVwbGljYXRlcyBvdmVyIGFuZCBvdmVyIGFnYWluIHRvIHRoZSByZXN1bHRpbmcKCSAgY2FwcyBpZiB0aGV5IGFscmVhZHkgZGVzY3JpYmUgdGhlIG5ldyBpbnRlcnNlY3Rpb24gcmVzdWx0LgoJICBXaGlsZSB0aGlzIGNoYW5nZXMgaW50ZXJzZWN0aW9uIGZyb20gTyhuKm0pIHRvIE8obl4yKm0pLCBpdCByZXN1bHRzIGluCgkgIHNtYWxsZXIgY2Fwcywgd2hpY2ggaW4gdGhlIGVuZCB3aWxsIGRlY3JlYXNlIGZ1cnRoZXIgcHJvY2Vzc2luZyB0aW1lcy4KCSAgRm9yIGV4YW1wbGUgaW4gYW4gYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0IHBpcGVsaW5lLAoJICB3aGVuIGZvcndhcmRpbmcgdGhlIGRvd25zdHJlYW0gY2FwcyBwcmVmZXJlbmNlIGluIGJhc2V0cmFuc2Zvcm0KCSAgKHNlZSBlMjZkYTcyZGUyNWE5MWMzZWFhZDlmN2M4YjJmNTNiYTg4OGEwMzk0KSB0aGlzIHJlc3VsdHMgaW4KCSAgMTYgaW5zdGVhZCBvZiAxOTEgY2FwcyBzdHJ1Y3R1cmVzLgoKMjAxMS0wNS0wNCAxMToyOToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW4gZ2V0Y2FwcygpIHByZWZlciB0aGUgY2FwcyBvcmRlciBhbmQgY2FwcyBvZiBkb3duc3RyZWFtIGlmIHBvc3NpYmxlCgoyMDExLTA1LTAzIDE3OjI2OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcmVmZXIgY2FwcyBvcmRlciBnaXZlbiBieSB0aGUgc3ViY2xhc3Mgb2YgdGhlIHRlbXBsYXRlIGNhcHMgb3JkZXIKCjIwMTEtMDQtMjAgMjI6NTI6MzYgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IGRvbid0IHVuZXNjYXBlIGluc2lkZSBxdW90ZXMKCSAgRXNjYXBlZCBjaGFyYWN0ZXJzIGluc2lkZSBxdW90ZWQgc3RyaW5ncyBhcmUgc3VwcG9zZWQgdG8gYmUgdW5lc2NhcGVkIGJ5CgkgIGRlc2VyaWFsaXphdGlvbiBmdW5jdGlvbnMsIG5vdCBieSBwYXJzaW5nIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODAyNQoKMjAxMS0wNC0xOCAxMDowNDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHVubmVjZXNzYXJ5IEZJWE1FCgkgIFJlc2V0dGluZyB0aGUgcmVzdWx0IGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiByZXN5bmNpbmcgYmVjYXVzZQoJICBwYWRzIHRoYXQgcHJldmlvdXNseSBnb3QgdGhlIGV2ZW50IHdpbGwgYmUgc2tpcHBlZCBhbmQgd2UKCSAgbmVlZCB0byBjb25zaWRlciB0aGUgcmVzdWx0cyBvZiB0aGUgcHJldmlvdXMgcHVzaGVzLgoKMjAxMS0wNC0xOCAwOTo1Mzo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDQtMTggMDk6NDk6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNS0xNCAwOTozMTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjM0ID09PQoKMjAxMS0wNS0xNCAwMTowMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzQKCjIwMTEtMDUtMTMgMDg6Mzg6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogRml4IGNvbXBpbGF0aW9uIG9mIHRoZSB1bml0IHRlc3QgYWZ0ZXIgcmVtb3ZhbCBvZiB0aGUgc2VyaWFsaXplL2Rlc2VyaWFsaXplIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNCAxNTozMTo1NiArMDMwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IHNldCBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRvIDAgZm9yIGxpdmUgc291cmNlcwoJICBEb2luZyBzbyBhdm9pZHMgYSBsYXJnZSB0aW1lc3RhbXAgZ2FwIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBidWZmZXIKCSAgZm9yIGxpdmUgc291cmNlcyB3aGljaCB0YWtlIHRpbWUgdG8gc3RhcnQgdXAuCgkgIFRoZSBmaXJzdCBidWZmZXIgbm93IGhhcyBhICJsaXZlIiB0aW1lc3RhbXAgYmFzZWQgb24gdGhlIHJ1bm5pbmcgdGltZSwKCSAgYXMgb3RoZXIgYnVmZmVycyBkby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTM2OQoKMjAxMS0wNS0xMSAxOToxMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHJlbW92ZSAoZGUpc2VyaWFsaXplIGZ1bmN0aW9ucwoJICBBZGQgYSBHVHlwZSB0byB0aGUgbWV0YWRhdGEgdG8gaWRlbnRpZnkgdGhlIEdzdE1ldGFJbmZvLgoJICBXZSBjYW4gcmVtb3ZlIHRoZSAoZGUpc2VyaWFsaXplIGZ1bmN0aW9ucyBmb3IgdGhlIG1ldGFkYXRhIGJlY2F1c2Ugd2UgY2FuCgkgIHJlZ2lzdGVyIEdUdHlwZSB0cmFuc2Zvcm0gZnVuY3Rpb25zIGJldHdlZW4gdmFyaW91cyB0eXBlcyB0byBpbXBsZW1lbnQKCSAgc2VyaWFsaXphdGlvbiBsYXRlci4KCjIwMTEtMDUtMTEgMTg6MTc6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogbW9yZSBjbGVhbnVwcwoJICBnc3Rfc3RydWN0dXJlX2dldF90eXBlKCkgLT4gX2dzdF9zdHJ1Y3R1cmVfdHlwZSB0byBhdm9pZCBtZXRob2QgY2FsbHMgZm9yCgkgIGdldHRpbmcgdGhlIEdUeXBlIHRoYXQgaW5pdGlhbGl6ZWQgYXQgdGhlIHN0YXJ0LgoJICBIaWRlIHNvbWUgc3RydWN0dXJlIGZpZWxkcyBpbiBwcml2YXRlIGRhdGEgc28gdGhhdCB3ZSBjYW4gY2hhbmdlIHRoZQoJICBpbXBsZW1lbnRhdGlvbi4KCSAgTW92ZSBzdHJ1Y3R1cmUgZXF1YWxpdHkgY2hlY2sgZnJvbSBjYXBzLmMgdG8gc3RydWN0dXJlLmMgd2hlcmUgaXQgYmVsb25ncy4KCjIwMTEtMDUtMTEgMTg6MDc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgb2Jzb2xldGUgY29kZS4KCSAgRG9uJ3QgdHJ5IHRvIHJlY29uZmlndXJlIHdoZW4gd2UgZG9uJ3QgaGF2ZSBzaW5rIGNhcHMuCgoyMDExLTA1LTExIDE2OjQ2OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBEZXJlZmVyZW5jZSBHc3RRdWVyeSoqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIEdTVF9RVUVSWV9UWVBFX05BTUUKCjIwMTEtMDUtMTEgMTY6MDM6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHVwZGF0ZSB0aGUgc3RydWN0dXJlIHdoZW4gbmVlZGVkCgkgIFdoZW4gd2UgZ2V0IHRoZSBzdHJ1Y3R1cmUgb2YgYW4gZXZlbnQsIG1ha2Ugc3VyZSBpdCBhbHNvIGNvbnRhaW5zIHRoZSBmaWVsZHMKCSAgdGhhdCB3ZSBrZWVwIGluIGZhc3QgdmFyaWFibGVzLCB0aGlzIHdheSB3ZSBjYW4gZWFzaWx5IHNlcmlhbGl6ZSBhbmQgZGVidWcKCSAgdGhlIGV2ZW50cy4gV2Ugd291bGQgcHJvYmFibHkgbGF0ZXIgc2ltcGx5IHByZWZlciB0byByZWdpc3RlciBhIHRyYW5zZm9ybQoJICBmdW5jdGlvbiB0byBHX1RZUEVfU1RSSU5HIGFuZCBHX1RZUEVfQllURUFSUkFZIGV0Yy4uCgoyMDExLTA1LTExIDE2OjAxOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogY2xlYW51cHMKCSAgV2UgZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGUgdHlwZSBpcyAwLCB0aGUgaW5pdCBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlCgkgIGluIHRoZSBiZWdpbm5pbmcuCgoyMDExLTA1LTExIDEyOjA0OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogY2xlYW4gdXAgc29tZSBtYWNyb3MKCSAgQXZvaWQgZXhlY3V0aW5nIGEgbWV0aG9kIGZvciBHU1RfVFlQRV9FVkVOVCBidXQgaW5zdGVhZCB1c2UgdGhlIHR5cGUgdmFyaWFibGUKCSAgZGlyZWN0bHkuIFdlIGNhbiBkbyB0aGlzIGJlY2F1c2Ugd2UgcmVnaXN0ZXIgaXQgYmVmb3JlIGFueXRoaW5nIGVsc2UuCgoyMDExLTA1LTExIDE1OjQ4OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBGaXggR1NUX0RFQlVHIHBhcmFtZXRlcnMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nCgoyMDExLTA1LTExIDE1OjI2OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgcGFkIHJlY29uZmlndXJhdGlvbiBhZ2FpbgoKMjAxMS0wNS0xMSAxNToxODo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRml4IGRlYWRsb2NrLCBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBhbHJlYWR5IHRha2VzIHRoZSBwYWQncyBvYmplY3QgbG9jawoKMjAxMS0wNS0xMSAxMTowNjozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGV4YW1wbGUgb2YgaG93IHRvIG9wdGltaXplIGV2ZW50cwoJICBVc2UgYSBzdHJ1Y3R1cmUgZm9yIHRoZSBRb1MgZXZlbnQgYnkgJ2V4dGVuZGluZycgdGhlIEdzdEV2ZW50SW1wbCBzdHJ1Y3R1cmUuCgkgIFRoaXMgc2hvdWxkIGF2b2lkIGFsbG9jYXRpb24gb2YgR3N0U3RydWN0dXJlcyBhbmQgaXRzIGNvbnRlbnRzLgoKMjAxMS0wNS0xMCAxMToxMToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZW5zdXJlIHRocmVhZCBzYWZldHkgd2hlbiBhZGRpbmcgYSBwYWQKCSAgVGhpcyBzZWVtcyB0byBiZSBhIHJlZ3Jlc3Npb24sIGFuZCB3YXMgY2F1c2luZyBjcmFzaGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5ODc4CgoyMDExLTA1LTEwIDE4OjM2OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhbGxvdyBfbWFrZV93cml0YWJsZSBvbiBxdWVyeSBoYW5kbGVycwoJICBQYXNzIGEgR3N0UXVlcnkgKiogdG8gdGhlIHF1ZXJ5IGhhbmRsZXJzIHNvIHRoYXQgdGhleSBjYW4gbWFrZSB0aGUgcXVlcnkKCSAgd3JpdGFibGUgYmVmb3JlIHVzaW5nIGEgc2V0dGVyIG9uIGl0LgoJICBQb3J0IGNvZGUgdG8gbmV3IEFQSS4KCjIwMTEtMDUtMTAgMTY6NDY6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMTAgMTY6NDE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudDogdXNlIHJlcXVlc3RfbmV3X3BhZF9mdWxsIGFzIHRoZSBkZWZhdWx0CgkgIEFkZCBHc3RDYXBzIHRvIHJlcXVlc3RfbmV3X3BhZCBzbyB0aGF0IHJlcXVlc3RfbmV3X3BhZF9mdWxsIGNhbiBiZSByZW1vdmVkLgoJICBGaXggZWxlbWVudHMuCgoyMDExLTA1LTEwIDE2OjIzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTEwIDE1OjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBtYWtlIHN1cmUgcXVlcnkgaXMgd3JpdGFibGUKCSAgTWFrZSBzdXJlIHRoZSBRdWVyeSBpcyB3cml0YWJsZSBiZWZvcmUgZXhlY3V0aW5nIHRoZSBzZXR0ZXJzLgoKMjAxMS0wNS0xMCAxNTozMzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBIaWRlIEdzdFN0cnVjdHVyZSBpbiBxdWVyaWVzCgkgIEhpZGUgdGhlIEdzdFN0cnVjdHVyZSBmcm9tIHRoZSBxdWVyeSBBUEkuCgkgIFJlbmFtZSBzb21lIG1ldGhvZHMgdG8gbWF0Y2ggdGhlIG1vcmUgY29tbW9uIG5hbWVzIGluIEdPYmplY3QgbGlicmFyaWVzLgoJICBBZGQgc29tZSBtb3JlIHVzZWZ1bCBxdWVyeSBBUEkuCgoyMDExLTA1LTEwIDEzOjM0OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIG1lc3NhZ2U6IGhpZGUgdGhlIG1lc3NhZ2Ugc3RydWN0dXJlIGZpZWxkCgkgIE1ha2UgYSBwcml2YXRlIHN0cnVjdHVyZSB0byBob2xkIHRoZSBHc3RTdHJ1Y3R1cmUgYml0cyBvZiB0aGUgbWVzc2FnZS4KCSAgQWRkIHNvbWUgbW9yZSB1c2VmdWwgbWFjcm9zIGxpa2Ugd2UgaGF2ZSBmb3IgZXZlbnRzLgoKPT09IHJlbGVhc2UgMC4xMC4zMyA9PT0KCjIwMTEtMDUtMTAgMDg6NTU6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMwoJICBIaWdobGlnaHRzOgoJICAtIG5ldyBwYXJzZXIgYmFzZSBjbGFzczogR3N0QmFzZVBhcnNlCgkgIC0gbmV3IGNvcmUgZWxlbWVudDogZnVubmVsCgkgIC0gT1NYIG11bHRpLWFyY2ggZml4ZXMKCSAgLSBuZXcgUW9TIHR5cGUgZm9yIFFvUyBldmVudHMKCSAgLSBuZXcgcHJvZ3Jlc3MgbWVzc2FnZSBBUEkgdG8gbm90aWZ5IGFwcGxpY2F0aW9ucyBvZiBhc3luY2hyb25vdXMgb3BlcmF0aW9ucwoJICAtIGNvdW50bGVzcyBvdGhlciBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzCgoyMDExLTA1LTEwIDEyOjI5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZml4IHRoZSBtYWNyb3MgYSBsaXR0bGUKCjIwMTEtMDUtMTAgMTE6NTA6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGV2ZW50OiBIaWRlIHRoZSBHc3RTdHJ1Y3R1cmUKCSAgSGlkZSB0aGUgR3N0U3RydWN0dXJlIG9mIHRoZSBldmVudCBpbiB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgcGFydCBzbyB0aGF0CgkgIHdlIGNhbiBjaGFuZ2UgaXQuCgkgIEFkZCBtZXRob2RzIHRvIGNoZWNrIGFuZCBtYWtlIHRoZSBldmVudCB3cml0YWJsZS4KCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBnZXQgYSB3cml0YWJsZSBHc3RTdHJ1Y3R1cmUgb2YgdGhlIGVsZW1lbnQuCgkgIEF2b2lkIGRpcmVjdGx5IGFjY2lzaW5nIHRoZSBldmVudCBzdHJ1Y3R1cmUuCgoyMDExLTA1LTA5IDE4OjQ4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBfcW9zX2Z1bGwgLT4gX3FvcwoKMjAxMS0wNS0wOSAxNzo1MTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSBfZnVsbCB2ZXJzaW9uCgkgIFJlbmFtZSB0aGUgX2Z1bGwgdmVyc2lvbnMgb2YgdGhlIGZ1bmN0aW9ucyB0byB0aGUgbm9ybWFsIGZ1bmN0aW9uIG5hbWVzLgoKMjAxMS0wNS0wOSAxNjozOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSBhYnNfcmF0ZSBmcm9tIHNlZ21lbnQgc3RydWN0dXJlCgkgIFJlbW92ZSB0aGUgYWJzX3JhdGUgZmllbGQgZnJvbSB0aGUgc2VnbWVudCBzdHJ1Y3R1cmUsIHdlIGNhbiB0cml2aWFsbHkgY29tcHV0ZQoJICBpdCB3aGVuIG5lZWRlZC4KCjIwMTEtMDUtMDkgMTY6MjE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGNhcHM6IHJlbW92ZSBjYXBzIGZyb20gYnVmZmVycyBhbmQgcGFkcwoJICBSZW1vdmUgdGhlIEdzdENhcHMgZnJvbSBidWZmZXJzIGFuZCBwYWRzLiBXZSBub3cgdXNlIENBUFMgZXZlbnRzIHRvIG5lZ290aWF0ZQoJICBmb3JtYXRzIGJldHdlZW4gZWxlbWVudC4KCjIwMTEtMDUtMDkgMTU6MDY6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIENBUHMgZXZlbnQKCSAgVXNlIHRoZSBjYXBzIGV2ZW50IHRvIGNvbmZpZ3VyZSBiYXNldHJhbnNmb3JtLgoJICBSZW1vdmUgZm9yY2VfYWxsb2MgaGFjaywgd2UgZG9uJ3QgbmVlZCB0aGlzIGluIDAuMTEgd2l0aCBuZXcgdXBzdHJlYW0KCSAgbmVnb3RpYXRpb24uCgkgIEF2b2lkIGdldHRpbmcgc29tZSBwYWQgY2Fwcy4KCjIwMTEtMDUtMDkgMTU6MDY6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTA1LTA4IDExOjAyOjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBzeW1ib2xzCgoyMDExLTA1LTA4IDExOjAxOjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDExLTA1LTA5IDEwOjU0OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBhdm9pZCB1c2luZyBwYWQgY2FwcwoJICBBdm9pZCBkaXJlY3RseSBhY2Nlc3NpbmcgdGhlIHBhZCBjYXBzLCB1c2UgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgaW5zdGVhZC4KCjIwMTEtMDUtMDggMTM6MTQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTA4IDEzOjA3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIENBUFMgZXZlbnQgaW5zdGVhZCBvZiBzZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTA1LTA4IDEyOjQ2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGJhc2U6IGF2b2lkIHVzaW5nIGJ1ZmZlciBjYXBzCgkgIENvbW1lbnQgYWxsIGNvZGUgdXNpbmcgYnVmZmVyIGNhcHMuCgkgIFJld29yayBjYXBzZmlsdGVyIGNvZGUgYSBsaXR0bGUuCgkgIEZpeCBzb21lIHVuaXQgdGVzdHMKCjIwMTEtMDUtMDggMTI6NDM6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBjYXBzIGV2ZW50IGhhbmRsaW5nCgkgIEZpeCByZXBsYWNlIG9mIGNhcHMgZXZlbnRzIHdoZW4gbGlua2luZzogd2UgbmVlZCB0byB1bnJlZiB0aGUgb2xkIG9uZXMuCgkgIE1ha2Ugc3VyZSB3ZSBwYXNzIGVycm9yIHZhbHVlcyBhcm91bmQuCgkgIE1vdmUgYmFja3dhcmQgY29tcGF0IGNvZGUgaW50byB0aGUgZGVmYXVsdCBoYW5kbGVyIGZvciBub3cuCgoyMDExLTA1LTA4IDEyOjM4OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBkb24ndCByZWYgdGhlIGNhcHMKCSAgVXNlIGEgZGlmZmVyZW50IHdheSBvZiBnZXR0aW5nIHRoZSBjYXBzIGZyb20gdGhlIGNhcHMgZXZlbnQgc28gdGhhdCBubwoJICByZWZjb3VudGluZyBoYXBwZW5zLgoKMjAxMS0wNS0wOCAxMjozNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCB1c2luZyBidWZmZXIgY2FwcwoKMjAxMS0wNS0wNiAyMzo0MDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IHBvc3QgbG9hZHMgb2YgZW1wdHkgdGFnbGlzdHMKCSAgT25seSBwb3N0IGJpdHJhdGUgdXBkYXRlcyBpZiB0aGVyZSdzIHNvbWV0aGluZyB0byBwb3N0LCBkb24ndAoJICBwb3N0IGVtcHR5IHRhZ2xpc3RzIGlmIG5vdGhpbmcgY2hhbmdlZC4KCjIwMTEtMDUtMDYgMTk6MDQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGFkOiBhdm9pZCB1c2luZyB0aGUgb2xkIEdTVF9QQURfQ0FQUwoJICBEb24ndCB1c2UgR1NUX1BBRF9DQVBTIGJ1dCBpbnN0ZWFkIHVzZSB0aGUgbmV3IGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpCgkgIG1ldGhvZC4KCSAgQXZvaWQgc2V0dGluZyBjYXBzIG9uIGJ1ZmZlcnMuCgoyMDExLTA1LTA2IDE5OjAzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIDIgbmV3IGNhcHMgbWV0aG9kcwoJICBBZGQgbWV0aG9kIHRvIGdldCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgY2FwcyBvbiB0aGUgcGFkLgoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29uZmlndXJlZCBvbiBhIHBhZC4KCjIwMTEtMDUtMDYgMTc6NTk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBwYWQ6IGltcGxlbWVudCBmaXhlZCBjYXBzIHdpdGggYW4gb2JqZWN0IGZsYWcKCSAgSW1wbGVtZW50IGZpeGVkIGNhcHMgd2l0aCBhbiBvYmplY3QgZmxhZyBpbnN0ZWFkIG9mIGEgY3VzdG9tIGdldGNhcHMgZnVuY3Rpb24uCgoyMDExLTA1LTA2IDE3OjMwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHVzZSBidWZmZXIgY2FwcyBmb3IgbmVnb3RpYXRpb24KCSAgRG9uJ3QgdXNlIHRoZSBidWZmZXIgY2FwcyBmb3IgbmVnb3RpYXRpb24gYW55bW9yZSBidXQgdXNlIHRoZSBDQVBTIGV2ZW50cy4KCSAgTWFrZSB0aGUgX3NldF9jYXBzIG1ldGhvZCBwcm9kdWNlIHRoZSBDQVBTIGV2ZW50LCBhZGQgc29tZSBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5IGNvZGUgdG8gdHJpZ2dlciB0aGUgc2V0Y2FwcyBmdW5jdGlvbnMgb24gc3JjIGFuZCBzaW5rcGFkcy4KCSAgUmVtb3ZlIGFsbCBuZWdvdGlhdGlvbiBjb2RlIGZyb20gdGhlIGNoYWluIGZ1bmN0aW9ucy4KCSAgRG9uJ3QgdXNlIHRoZSBHU1RfUEFEX0NBUFMgdmFyaWFibGUgYW55bW9yZSB0byBzdG9yZSB0aGUgY2FwcyBidXQgcmV0cmlldmUgdGhlCgkgIGNhcHMgZnJvbSB0aGUgc3RpY2t5IGV2ZW50IGFycmF5LgoKMjAxMS0wNS0wNiAxNjoxNDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBkb24ndCB1bnNldCBjYXBzCgoyMDExLTA1LTA2IDE2OjE0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IHVuc2V0IGNhcHMKCjIwMTEtMDUtMDYgMTY6MTM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogbGV0IHRoZSBub3JtYWwgY29kZSB1bnNldCBjYXBzCgoyMDExLTA1LTA2IDE2OjExOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogaGFuZGxlIE5VTEwgcGFkcyBpbiBzb21lIGNhc2VzCgoyMDExLTA1LTA2IDE2OjExOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGxldCB0aGUgcGFkIGNsZWFuIHVwIGluIGFjdGl2YXRlCgoyMDExLTA1LTA2IDE1OjU1OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgbWVzcyB3aXRoIHBhZCBjYXBzIGluIGFjdGl2YXRlCgkgIFdoZW4gZGVhY3RpdmF0aW5nIGEgcGFkLCBsZXQgdGhlIHBhZCBkZWNpZGUgd2hhdCBmaWVsZHMgdG8gY2xlYXIuCgoyMDExLTA1LTA2IDE1OjUxOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBvbmx5IGFsbG93IGZpeGVkIGNhcHMgaW4gY2FwcyBldmVudAoKMjAxMS0wNS0wNiAxMzowMToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZXZlbnRfbmV3X3JlY29uZmlndXJlKCkKCjIwMTEtMDUtMDYgMTI6MjM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMDYgMTI6MTk6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiByZW5hbWUgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkKCSAgUmVuYW1lIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpIHRvIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUoKSBhbmQKCSAgcmVtb3ZlIHRoZSBvbGQgbWV0aG9kIG5hbWUuCgoyMDExLTA1LTA2IDEyOjA5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsZWFuIHVwIHRoZSAuaCBmaWxlIGEgYml0CgoyMDExLTA1LTA2IDExOjE0OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBpbXBsZW1lbnQgbW9yZSBzdGlja3kgZXZlbnRzCgkgIFJlbW92ZSB0aGUgY29udGV4dCBhZ2FpbiwgYWRkaW5nIGFuIGV4dHJhIGxheWVyIG9mIHJlZmNvdW50aW5nIGFuZCBvYmplY3QKCSAgY3JlYXRpb24gdG8gbWFuYWdlIGFuIGFycmF5IGlzIHRvbyBjb21wbGljYXRlZCBhbmQgaW5lZmZpY2llbnQuIFVzZSBhIHNpbXBsZQoJICBhcnJheSBhZ2Fpbi4KCSAgQWxzbyBpbXBsZW1lbnQgZXZlbnQgdXBkYXRlcyB3aGVuIGNhbGxpbmcgZ3N0X3BhZF9jaGFpbigpIGFuZAoJICBnc3RfZXZlbnRfc2VuZF9ldmVudCgpIGRpcmVjdGx5LgoKMjAxMS0wNS0wNiAxMTozNTozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogYXZvaWQgcmVkZWZpbml0aW9uIG9mIHN5bWJvbHMgd2hlbiBkZWJ1Z2dpbmcgaXMgb2ZmCgkgIFRoZSByZWZhY3RvcmluZyBvZiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpIG5vdyBjYXVzZXMgYnVpbGQgZmFpbHVyZSB3aGVuCgkgIGRlYnVnLWxvZ2dpbmcgaXMgdHVybmVkIG9mZi4gSnVzdCBtb3ZlIGl0IHRvIHRoZSBjb25kaXRpb25hbCBwYXJ0IG9mIHRoZSBoZWFkZXIuCgoyMDExLTA1LTA2IDExOjAwOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiByZW9yZGVyIGV2ZW50cwoJICBSZW9yZGVyIHRoZSBzdGlja3kgZXZlbnRzIHNvIHRoYXQgdGhleSBhcmUgaW4gdGhlIG9yZGVyIHRoZXkgc2hvdWxkIGJlIHB1c2hlZC4KCjIwMTEtMDUtMDUgMTk6MjQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2ltcGxpZnkgc29tZSBtb3JlCgkgIElmIHdlIGdldCBhIGNvbnRleHQgaW4gdGhlIGNoYWluIGZ1bmN0aW9ucyB3ZSBhbHdheXMgbmVlZCB0byBkbyBhIGZ1bGwgdXBkYXRlIG9mCgkgIHRoZSBjb250ZXh0IG9uIHRoZSBwZWVyIHBhZC4KCjIwMTEtMDUtMDUgMTg6NTY6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBjb250ZXh0IHBhc3Npbmcgc29tZSBtb3JlCgkgIFBhc3MgdGhlIGNvbnRleHQgZG93bnN0cmVhbSB3aGVuIGl0IGdvdCB1cGRhdGVkLgoJICBIYXZlIHR3byB3YXlzIG9mIGluZm9ybWluZyBkb3duc3RyZWFtIG9mIGV2ZW50cywgZG8gYSBmdWxsIGNvbnRleHQgdXBkYXRlIHdoZW4KCSAgdGhlIENPTlRFWFRfUEVORElORyBmbGFnIGlzIHNldCBhbmQgc2ltcGx5IGZvcndhcmQgdGhlIGV2ZW50IG90aGVyd2lzZS4KCSAgU2V0IHRoZSBDT05URU5UX1BFTkRJTkcgZmxhZyB3aGVuIGxpbmtpbmcgcGFkcy4KCSAgV2UgZG9uJ3QgbmVlZCB0byBvbGQgY29udGV4dCBhbnltb3JlIHdoZW4gdXBkYXRpbmcgdGhlIGNvbnRleHQgb2YgYSBwYWQuCgoyMDExLTA1LTA1IDE4OjIxOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBnZXQgdGhlIHBhcmVudCB0d2ljZSBpbiB0aGUgc2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0wNS0wNSAxNjo1OTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHJlZmNvdW50IGxlYWsgb2YgdGhlIHBhcmVudCBpbiB0aGUgZGVmYXVsdCBldmVudCBkaXNwYXRjaCBmdW5jdGlvbgoKMjAxMS0wNS0wNSAxNjozMjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGltcHJvdmUgcGFzc2luZyBhcm91bmQgdGhlIGNvbnRleHQKCSAgSW1wcm92ZSBwYXNzaW5nIGFyb3VuZCB0aGUgY29udGV4dCwgb25seSBzZW5kIHRoZSBjb250ZXh0IHRvIHRoZSBwZWVyIGVsZW1lbnQKCSAgd2hlbiB0aGUgQ09OVEVYVF9QRU5ESU5HIGZsYWcgaXMgc2V0LgoKMjAxMS0wNS0wNSAxNjowNToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnRzCgoyMDExLTAzLTE3IDExOjUyOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICB0ZXN0czogVXBkYXRlIGZvciBuZXcgR3N0SXRlcmF0b3IgQVBJCgoyMDExLTAzLTE3IDExOjMyOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzL2RlZjogQWRkIG5ldyBzeW1ib2xzLCByZW1vdmUgb2xkIHN5bWJvbHMKCjIwMTEtMDMtMTcgMTE6MzI6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogVXBkYXRlIGV2ZXJ5dGhpbmcgZm9yIHRoZSBuZXcgR3N0SXRlcmF0b3IgQVBJCgoyMDExLTAzLTE3IDExOjMxOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IFVwZGF0ZSBldmVyeXRoaW5nIGZvciB0aGUgbmV3IEdzdEl0ZXJhdG9yIEFQSQoKMjAxMS0wMy0xNiAxMDo1MDozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgaXRlcmF0b3I6IFJlZmFjdG9yIEdzdEl0ZXJhdG9yIHRvIGJlIG1vcmUgYmluZGluZyBmcmllbmRseSBhbmQgaGF2ZSBzYW5lciByZWZjb3VudGluZwoJICBGaXhlcyBidWcgIzYzODk4Ny4KCjIwMTEtMDEtMDggMTI6Mjc6NTUgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogcmVnaXN0ZXIgYXMgYSBib3hlZCB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDEtMDggMTI6MTQ6NDAgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiB1c2UgR1NsaWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDEtMDggMTI6MTI6NDEgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IGZyZWUgc3RydWN0IGluIGdzdF9pdGVyYXRvcl9mcmVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDEtMDggMTI6MDc6NTUgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogc3RvcmUgc2l6ZSBpbiB0aGUgc3RydWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDUtMDUgMTE6Mjg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTWVyZ2Ugc3RydWN0dXJlcyB3aGVuIGludGVyc2VjdGluZyBpbnN0ZWFkIG9mIGFwcGVuZGluZyB0aGVtCgkgIFRoaXMgcHJldmVudHMgYWRkaW5nIGR1cGxpY2F0ZXMgb3ZlciBhbmQgb3ZlciBhZ2FpbiB0byB0aGUgcmVzdWx0aW5nCgkgIGNhcHMgaWYgdGhleSBhbHJlYWR5IGRlc2NyaWJlIHRoZSBuZXcgaW50ZXJzZWN0aW9uIHJlc3VsdC4KCSAgV2hpbGUgdGhpcyBjaGFuZ2VzIGludGVyc2VjdGlvbiBmcm9tIE8obiptKSB0byBPKG5eMiptKSwgaXQgcmVzdWx0cyBpbgoJICBzbWFsbGVyIGNhcHMsIHdoaWNoIGluIHRoZSBlbmQgd2lsbCBkZWNyZWFzZSBmdXJ0aGVyIHByb2Nlc3NpbmcgdGltZXMuCgkgIEZvciBleGFtcGxlIGluIGFuIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCBwaXBlbGluZSwKCSAgd2hlbiBmb3J3YXJkaW5nIHRoZSBkb3duc3RyZWFtIGNhcHMgcHJlZmVyZW5jZSBpbiBiYXNldHJhbnNmb3JtCgkgIChzZWUgZTI2ZGE3MmRlMjVhOTFjM2VhYWQ5ZjdjOGIyZjUzYmE4ODhhMDM5NCkgdGhpcyByZXN1bHRzIGluCgkgIDE2IGluc3RlYWQgb2YgMTkxIGNhcHMgc3RydWN0dXJlcy4KCjIwMTEtMDUtMDQgMTE6Mjk6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEluIGdldGNhcHMoKSBwcmVmZXIgdGhlIGNhcHMgb3JkZXIgYW5kIGNhcHMgb2YgZG93bnN0cmVhbSBpZiBwb3NzaWJsZQoKMjAxMS0wNS0wMyAxNzoyNjo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJlZmVyIGNhcHMgb3JkZXIgZ2l2ZW4gYnkgdGhlIHN1YmNsYXNzIG9mIHRoZSB0ZW1wbGF0ZSBjYXBzIG9yZGVyCgoyMDExLTA1LTAzIDE0OjEzOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBVc2UgdGhlIHJlY29uZmlndXJlIGZsYWcgb24gdGhlIHBhZCBpbnN0ZWFkIG9mIHRoZSBldmVudAoKMjAxMS0wNS0wMyAxNDoxMTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIG5ldyByZWNvbmZpZ3VyZSBmbGFnIG9uIHRoZSBwYWRzIGluc3RlYWQgb2YgdGhlIHJlY29uZmlndXJlIGV2ZW50CgoyMDExLTA1LTAzIDEzOjQyOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEtlZXAgdHJhY2sgb2YgcmVjb25maWd1cmUgZXZlbnRzIGFuZCB0aGUgcGFkLW5lZWRzLXJlY29uZmlndXJpbmcgc3RhdHVzCgoyMDExLTA1LTAzIDEzOjA1OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IFJlbmFtZSByZW5lZ290aWF0ZSBldmVudCB0byByZWNvbmZpZ3VyZQoJICBJbiAwLjExIHRoaXMgZXZlbnQgd2lsbCBhbHNvIGRvIHJlY29uZmlndXJhdGlvbiBvZiBidWZmZXIgcG9vbHMKCSAgYW5kIHNpbWlsYXIgdGhpbmdzLCBub3QganVzdCByZW5lZ290aWF0aW9uLgoKMjAxMC0wMy0xNyAyMToyNDo1NSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFNlbmQgcmVuZWdvdGlhdGUgZXZlbnQgb24gbGluawoKMjAxMC0wMy0xNyAyMToxNzoxMCArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERyb3AgcmVuZWdvdGlhdGUgZXZlbnQgaWYgdGhlcmUgaXMgbm8gZ2V0Y2FwcyBmdW5jdGlvbiBvbiBhIHNpbmsgcGFkCgkgIElmIHRoZXJlIGlzIG5vIGN1c3RvbSBnZXRjYXBzIGZ1bmN0aW9uIG9uIGEgc2luayBwYWQsIHRoZW4gY2hhbmdlcyBpbgoJICBkb3duc3RyZWFtIGNhcHMgd2lsbCBuZXZlciBiZSBwcm9wYWdhdGVkLCBzbyB0aGVyZSBpcyBubyBwb2ludCBpbiB0cnlpbmcgdG8KCSAgcmVuZWdvdGlhdGUgdGhlIGNhcGFiaWxpdGllcy4KCjIwMTEtMDQtMjYgMTY6Mzk6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgcmVuZWdvdGlhdGUgb25jZSBhZnRlciByZWNlaXZpbmcgYSByZW5lZ290aWF0ZSBldmVudAoJICBBbHNvIG1ha2UgdGhpcyB0aHJlYWRzYWZlLgoKMjAxMS0wMS0xNyAxNDoxMzo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSGFuZGxlIHRoZSBuZXcgcmVuZWdvdGlhdGUgZXZlbnQKCSAgTWFrZXMgYmFzZXNyYyBoYW5kbGUgdGhlIG5ldyByZW5lZ290aWF0ZSBldmVudCBieSB1c2luZyBhCgkgIHJlbmVnb3RpYXRlIGZsYWcuCgoyMDExLTA0LTI2IDE2OjQ4OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHNvIGNhbGwgZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKCkgb24gcmVuZWdvdGlhdGUgZXZlbnRzCgoyMDExLTAxLTE3IDE0OjEzOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgdGhlIG5ldyByZW5lZ290aWF0ZSBldmVudAoJICBMZXQgYmFzZXRyYW5zZm9ybSBwdXNoIGEgcmVuZWdvdGlhdGUgZXZlbnQgdXBzdHJlYW0KCSAgd2hlbiBpdCBnZXRzIGEgbmV3IHN1Z2dlc3Rpb24KCjIwMTEtMDEtMTcgMTE6NTE6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkaW5nIG5ldyByZW5lZ290aWF0ZSBldmVudAoKMjAxMS0wNS0wNSAxMzoxMDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBwYXNzIHRoZSBjb250ZXh0IGFyb3VuZAoJICBQYXNzIHRoZSBjb250ZXh0IGZyb20gc3JjcGFkIHRvIHNpbmtwYWQgYmVmb3JlIGRhdGFmbG93IHdoZW4gc29tZXRoaW5nCgkgIGNoYW5nZWQuCgoyMDExLTA1LTA1IDExOjE3OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdXBkYXRlIHRoZSBjb250ZXh0IGxhenlseQoKMjAxMS0wNS0wNSAxMToxNjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IHRoZSBHVHlwZSBlYXJseQoKMjAxMS0wNS0wNSAxMToxNjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wNS0wNSAxMDo0MDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkgIGNvbnRleHQ6IGFkZCBmb3JlYWNoIGZ1bmN0aW9uCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbGwgc3RvcmVkIGV2ZW50cy4KCjIwMTEtMDUtMDUgMTA6Mzc6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAiY29udGV4dDogdXNlIGNvbnRleHQgb24gYnVmZmVycyBpbnN0ZWFkIG9mIGNhcHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWVmMTM0NmIxZmEwYmQyYmI0MmNkOTkxYTUyZmYzMDhhNzI4YmRiNi4KCSAgV2F5IHRvIG11Y2ggZm9yIG9uZSBjb21taXQgYW5kIEknbSBub3Qgc3VyZSB3ZSB3YW50IHRvIGdldCByaWQgb2YgdGhlIHBhZCBjYXBzCgkgIGp1c3QgbGlrZSB0aGF0LiBJdCdzIG5pY2UgdG8gaGF2ZSB0aGUgYnVmZmVyIGFuZCBpdHMgdHlwZSBpbiBvbncgbmljZSBidW5kbGUKCSAgd2l0aG91dCBoYXZpbmcgdG8gZHJhZyB0aGUgY29tcGxldGUgY29udGV4dCB3aXRoIGl0LgoKMjAxMS0wNC0yMCAyMjo1MjozNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogZG9uJ3QgdW5lc2NhcGUgaW5zaWRlIHF1b3RlcwoJICBFc2NhcGVkIGNoYXJhY3RlcnMgaW5zaWRlIHF1b3RlZCBzdHJpbmdzIGFyZSBzdXBwb3NlZCB0byBiZSB1bmVzY2FwZWQgYnkKCSAgZGVzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucywgbm90IGJ5IHBhcnNpbmcgZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MDI1CgoyMDExLTA0LTE4IDE0OjI2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHBvc3QgRU9TIG1lc3NhZ2VzIGFmdGVyIHJlYWNoaW5nIHRoZSBQTEFZSU5HIHN0YXRlCgkgIEZpeGVzIGJ1ZyAjNjQ3NzU2LgoKMjAxMS0wNC0xOCAxMDowNDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHVubmVjZXNzYXJ5IEZJWE1FCgkgIFJlc2V0dGluZyB0aGUgcmVzdWx0IGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiByZXN5bmNpbmcgYmVjYXVzZQoJICBwYWRzIHRoYXQgcHJldmlvdXNseSBnb3QgdGhlIGV2ZW50IHdpbGwgYmUgc2tpcHBlZCBhbmQgd2UKCSAgbmVlZCB0byBjb25zaWRlciB0aGUgcmVzdWx0cyBvZiB0aGUgcHJldmlvdXMgcHVzaGVzLgoKMjAxMS0wNC0xOCAwOTo1Mzo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDQtMTggMDk6NDk6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNS0wNSAxMjoyODowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVtb3ZlIG5vd2FkYXlzIHVudXNlZCBhbmQgdW5pbml0aWFsaXplZCBzZXRjYXBzIHZhcmlhYmxlCgoyMDExLTA1LTA1IDEyOjI3OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCjIwMTEtMDUtMDQgMTg6NTk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGNvbnRleHQ6IHVzZSBjb250ZXh0IG9uIGJ1ZmZlcnMgaW5zdGVhZCBvZiBjYXBzCgkgIFB1dCB0aGUgc3JjcGFkIGNvbnRleHQgb24gYnVmZmVycyBpbnN0ZWFkIG9mIGNhcHMuIFRoaXMgYWxsb3dzIHVzIHRvIGFzc29jaWF0ZQoJICBhbGwgdGhlIHJlbGV2YW50IGluZm8gY29udGFpbmVkIGluIGV2ZW50cyB3aXRoIGEgYnVmZmVyLgoKMjAxMS0wNS0wNCAxNToyOTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gbmV3IG1pbmlvYmplY3QgdGVzdAoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBJbiBmdW5jdGlvbiDigJh0ZXN0X2R1cF9udWxsX21pbmlfb2JqZWN04oCZOgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOjQ1OTo3OiB3YXJuaW5nOiBhc3NpZ25tZW50IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQoKMjAxMS0wNS0wNCAxNTo1MzoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiB1c2UgdGhlIGNvbnRleHQgdG8gc3RvcmUgc3RpY2t5IGV2ZW50cwoJICBTdG9yZSB0aGUgc3RpY2t5IGV2ZW50cyBpbiB0aGUgY29udGV4dCBvZiBhIHNvdXJjZSBwYWQuCgoyMDExLTA1LTA0IDE1OjIwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgY29udGV4dDogYWRkIGhlbHBlciBvYmplY3QgdG8gbWFuYWdlIGV2ZW50cwoJICBBZGQgYSBoZWxwZXIgb2JqZWN0IHRvIG1hbmFnZSB0aGUgZXZlbnRzIHRoYXQgZGVmaW5lIHRoZSBjb250ZXh0IG9mIGEgYnVmZmVyIGFuZAoJICBhIHN0cmVhbS4KCjIwMTEtMDUtMDQgMTE6MDc6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDUtMDQgMTE6MDM6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IGFkZCBuZXcgQ0FQUyBldmVudAoJICBBZGQgYSBuZXcgQ0FQUyBldmVudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBuZWdvdGlhdGUgZG93bnN0cmVhbSBlbGVtZW50cy4gSXQnbGwKCSAgYWxzbyBzdGljayBvbiBwYWQgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZSBHc3RDYXBzIGZpZWxkIG9uIHBhZHMgYW5kIHRoZQoJICBHc3RDYXBzIGZpZWxkIG9uIGJ1ZmZlcnMuCgoyMDExLTA1LTAzIDE4OjU4OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vcmUgc3RpY2t5IGV2ZW50cyB3b3JrCgkgIENvcHkgdGhlIHN0aWNreSBldmVudHMgZnJvbSB0aGUgc3JjcGFkIHRvIHRoZSBzaW5rcGFkIHdoZW4gbGlua2luZyBwYWRzLiBTZXQgdGhlCgkgIFNUSUNLWV9QRU5ESU5HIGZsYWcgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHN0aWNreSBldmVudHMgYXJlIGRpc3BhdGNoZWQgYmVmb3JlCgkgIHB1c2hpbmcgdGhlIG5leHQgYnVmZmVyIHRvIHRoZSBlbGVtZW50LgoKMjAxMS0wNS0wMyAxNjoxMToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IGltcHJvdmUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMDIgMTg6NDU6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2N1bWVudAoKMjAxMS0wNS0wMiAxMTozMDowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBGaXggZHVwX21pbmlfb2JqZWN0IGZ1bmN0aW9uIHRvIGhhbmRsZSBOVUxMIGd2YWx1ZXMKCSAgZ192YWx1ZV9kdXBfb2JqZWN0IGhhbmRsZXMgZ3ZhbHVlcyB0aGF0IGNvbnRhaW4gTlVMTCBwb2ludGVycywKCSAgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCBzaG91bGQgZG8gdGhlIHNhbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkxOTUKCjIwMTEtMDUtMDMgMTM6NTU6NDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IGl0IGl0cyAlVFJVRSAoY29uc3RhbnQpCgkgIEFzIHNwb3R0ZWQgYnkgVGltLgoKMjAxMS0wNS0wMiAxNjoyMjo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGRvY3M6IGZpeCBjb3B5J24ncGFzdGUgZG9jIGhlYWRlciBtaXN0YWtlCgoyMDExLTA1LTAyIDE2OjIwOjI0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBkb2NzOiBhZGQgdHdvIHRyaXZpYWwgZG9jIGJsb2JzCgoyMDExLTA1LTAyIDE2OjAzOjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jcwoKMjAxMS0wNS0wMiAxNjowMDo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgR3N0RFBQYWNrZXRpemVyCgoyMDExLTA1LTAyIDE1OjUyOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBzeW50YXggZm9yIHRoZSBjYXBzaW50ZXJzZWN0bW9kZSBkb2NzCgoyMDExLTA1LTAyIDE1OjQ4OjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBmaXh1cCBicm9rZW4geHJlZgoKMjAxMS0wNS0wMiAxNTo0Njo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBhcGkgdG8gLXNlY3Rpb24udHh0CgoyMDExLTA1LTAyIDE1OjM1OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgZG9jczogZml4IGd0ay1kb2Mgc3ludGF4CgoyMDExLTA1LTAyIDE1OjMwOjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBkb2NzOiBkb24ndCBkdXBsaWNhdGUgaW5mbyB0aGF0IHdlIHRha2UgZnJvbSBlbGVtZW50LWRldGFpbHMKCjIwMTEtMDQtMjggMTU6Mzc6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBub24gZXhpc3Rpbmcgc3ltYm9sCgoyMDExLTA0LTI4IDE1OjA1OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogd2UgZG9uJ3QgbmVlZCB0byBkb2N1bWVudCBwcml2YXRlIG1lbWJlcnMgaW4gb3BhcXVlIHN0cnVjdHMKCjIwMTEtMDQtMjkgMTM6NDM6MDcgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkgIGNvcmU6IHN0b3JlIHByZXNldHMsIHJlZ2lzdHJ5IGFuZCBwbHVnaW5zIGluIFhERyBkaXJlY3Rvcmllcy4KCSAgUHJlc2V0cyBhbmQgcGx1Z2lucyBtb3ZlZCB0byAkWERHX0RBVEFfSE9NRS9nc3RyZWFtZXItMC4xMS8KCSAgcm9vdCBkaXJlY3RvcnkuIFJlZ2lzdHJ5IG1vdmVkIHRvICRYREdfQ0FDSEVfSE9NRS9nc3RyZWFtZXItMC4xMS8uCgkgIEZpeGVzIGJ1ZyAjNTE4NTk3LgoKMjAxMS0wNS0wMyAwOTo0MTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGdzdC9nc3RidXMuYwoKMjAxMS0wNS0wMiAxODozNDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGV2ZW50OiBhZGQgc3RpY2t5IGZsYWdzIHRvIGV2ZW50cwoJICBBZGQgdGhlIHN0aWNreSBmbGFnIHRvIGV2ZW50cyBhbmQgYSBzdGlja3kgaW5kZXguCgkgIEtlZXAgc3RpY2t5IGV2ZW50cyBpbiBhbiBhcnJheSBvbiBlYWNoIHBhZC4KCSAgUmVtb3ZlIEdTVF9FVkVOVF9TUkMoKSwgaXQgaXMgY2F1c2luZyByZWZjeWNsZXMgd2l0aCBzdGlja3kgZXZlbnRzLCB3YXMgbm90IHVzZWQKCSAgYW5kIGlzIG5vdCB2ZXJ5IGludGVyZXN0aW5nIGFueXdheS4KCjIwMTEtMDUtMDIgMTE6MDk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBpbXByb3ZlIGFsbG9jYXRpb24gcGFyYW1ldGVycyBxdWVyeQoJICBVc2UgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB0aG9zZSB1c2VkIGZvciB0aGUgYnVmZmVycG9vbC4gTWFrZSBzdXJlIHdlIGNhbiBwYXNzCgkgIGEgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgYnVmZmVycyBuZWVkZWQuCgoyMDExLTA0LTMwIDE2OjU1OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3RhdGljZWxlbWVudHMueG1sOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMi40IHByZS1yZWxlYXNlCgoyMDExLTA0LTI5IDIzOjQ0OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIHBsdWdpbmZlYXR1cmU6IGluY2x1ZGUgcGx1Z2luLmggaW4gaGVhZGVyIHdoZXJlIHdlIHVzZSBhIEdzdFBsdWdpbiBwb2ludGVyCgkgIFNob3VsZCBmaXggaXNzdWUgd2l0aCBnc3RyZWFtZXJtbSBidWlsZCB3aGVyZSA8Z3N0L2dzdGluZGV4Lmg+IGlzIGluY2x1ZGVkCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgZ3N0L2dzdC5oLgoKMjAxMS0wNC0yOSAxMzo0Mjo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IGRvIHBhZF9hbGxvYyBmYWxsYmFjayBjb3JyZWN0bHkKCjIwMTEtMDQtMjkgMTM6MjY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgcGFkX2FsbG9jLCB0aGlzIGNhbiBub3cgYmUgZG9uZSBiZXR0ZXIKCSAgUmVtb3ZlIHBhZF9hbGxvYyBhbmQgYWxsIHJlZmVyZW5jZXMuIFRoaXMgY2FuIG5vdyBiZSBkb25lIG1vcmUgZWZmaWNpZW50bHkgYW5kCgkgIG1vcmUgZmxleGlibGUgd2l0aCB0aGUgQUxMT0NBVElPTiBxdWVyeSBhbmQgdGhlIGJ1ZmZlcnBvb2wgb2JqZWN0cy4gVGhlcmUgaXMgbm8KCSAgcmV2ZXJzZSBuZWdvdGlhdGlvbiB5ZXQgYnV0IHRoYXQgd2lsbCBiZSBkb25lIHdpdGggYW4gZXZlbnQgbGF0ZXIuCgoyMDExLTA0LTI5IDEyOjExOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBpbml0IHRoZSBBTExPQ0FUSU9OIHF1ZXJ5IGNvcnJlY3RseQoJICBEb24ndCBhZGQgdGhlICdwb29sJyBwcm9wZXJ0eSBpbnN0ZWFkIG9mIGFkZGluZyBpdCB3aXRoIGEgTlVMTCBhcnJheS4KCjIwMTEtMDQtMjkgMTA6NTA6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogZml4IHBhcnNpbmcgb2YgdGhlIEFMTE9DQVRJT04gcXVlcnkKCSAgQWRkIG1ldGhvZHMgZm9yIHBhcnNpbmcgdGhlIGNhcHMgYW5kIHRoZSBuZWVkX3Bvb2wgYm9vbGVhbi4KCjIwMTEtMDQtMjggMTY6MjA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogZml4IHR5cG8gaW4gbWV0aG9kIG5hbWUgYW5kIGltcHJvdmUgZG9jcwoJICBGaXhlZCB0eXBvIGluIG1ldGhvZCBuYW1lIGFuZCBhZGQvaW1wcm92ZSB0aGUgZG9jcy4KCjIwMTEtMDQtMjggMTU6MzE6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1hbGxvY2F0aW9uLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBhZGQgcXVlcnkgdG8gcmVxdWVzdCBwb29sIGFuZCBjb25maWd1cmF0aW9uCgkgIEFkZCBhIHF1ZXJ5IHRvIHJlcXVlc3QgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGFuZCBvcHRpb25hbGx5IGEgYnVmZmVycG9vbCBhcwoJICB3ZWxsLiBUaGlzIHNob3VsZCBhbGxvdyBlbGVtZW50cyB0byBkaXNjb3ZlciBkb3duc3RyZWFtIGNhcGFiaWxpdGllcyBhbmQgYWxzbwoJICB1c2UgdGhlIGRvd25zdHJlYW0gYWxsb2NhdG9ycy4KCjIwMTEtMDQtMjcgMTg6MTA6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHRpbWVvdXQgaGFuZGxpbmcKCjIwMTEtMDQtMjcgMTc6NTY6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IHNvbWUgZG9jcwoKMjAxMS0wNC0yNyAxNzo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogaW1wcm92ZSBhcmd1bWVudCBuYW1lcyBvZiBzZWdtZW50cwoKMjAxMS0wNC0yNyAxMTo0OToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogcG8vYmcucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMi4zIHByZS1yZWxlYXNlCgoyMDExLTA0LTI2IDE1OjQyOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBSZXZlcnQgbG9ja2ZyZWUgR3N0QnVzIGZvciB0aGUgcmVsZWFzZQoJICBEcm9wIGluIG9sZCBHc3RCdXMgY29kZSBmb3IgdGhlIHJlbGVhc2UgdG8gcGxheSBpdCBzYWZlLCBzaW5jZQoJICByZWdyZXNzaW9ucyB0aGF0IGFyZSBhcHBhcmVudGx5IGhhcmQgdG8gdHJhY2sgZG93biBhbmQgcmVwcm9kdWNlCgkgIGhhdmUgYmVlbiByZXBvcnRlZCAob24gd2luZG93cy9PU1ggbW9zdGx5KSBhZ2FpbnN0IHRoZSBsb2NrZnJlZQoJICB2ZXJzaW9uLCBhbmQgbW9yZSB0aW1lIGlzIG5lZWRlZCB0byBmaXggdGhlbS4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwMzM5MWE4OTcwMDFkMzVkMWQyOTBmMjdkZDEyZTk4YThiNzI5ZmI0LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQzY2RiYzE3ZTZmOTQ0Y2RmMDJhZWVkNzhkMWQ1ZjZiZGU1MTkwYzkuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODBlYjE2MGUwZjYyMzUwMjcxZjA2MWRhYTVmMjg5ZDlkNDI3N2NmNC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNDFiMGFkZTI4NzkwZmZkYjBlNDg0YjQxY2Q3OTI5YzRlMTQ1ZGVjLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg3NGQ2MGU1ODk5ZGQ1Yjg5ODU0Njc5ZDFhNGFkMDE2YTU4YmE0ZTAuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzkzNzBkNGIxNzgxYWY5YzlhNjVmMmQxZTM0OTgxMjRkOGM0YzQxMy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyY2IzZTUyMzUxOTZlYjcxZmIyNWUwYTRhNGI4NzQ5ZDZkMGE4NDUzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IGJkMWM0MDAxMTQzNGMxZWZhYTY5NmRjOThlZjg1NWVmOWNjZTliMjguCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNGJmOGYxNTI0ZjZlMzM3NGIzZjNiYzU3MzIyMzM3NzIzZDA2YjkyOC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxNGQ3ZGIxYjUyN2IwNWYwMjk4MTkwNTdhZWY1YzEyM2FjN2UwMTNkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3NDkzCgoyMDExLTA0LTI1IDExOjEwOjQ3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgU21hbGwgY29zbWV0aWMgY2xlYW51cHMKCSAgTWFrZSBzdXJlIHRoZSByZXR1cm4gdmFsdWVzIGZyb20gZ19yZXR1cm5fKiBhcmUgb2YgdGhlIHJpZ2h0IHR5cGUuCgoyMDExLTA0LTI1IDEwOjU2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWl4aW5nIG9mIHJldHVybiB2YWx1ZXMKCjIwMTEtMDQtMjUgMTA6MzA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE1IDIyOjAwOjExIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBtaW5vciBpbmxpbmUgZG9jdW1lbnRhdGlvbiBmaXgKCjIwMTEtMDQtMjQgMTQ6MDI6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjM2NhZmUxIHRvIDQ2ZGZjZWEKCjIwMTEtMDQtMjQgMTE6NDQ6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogY2xlYW4gdXAgcHJvcGVybHkgaW4gdGhlIGJpbiB0ZXN0X2xpbmtfc3RydWN0dXJlX2NoYW5nZSB1bml0IHRlc3QKCSAgRG9uJ3QgZm9yZ2V0IHRvIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byBOVUxMIHN0YXRlLCB3aGljaCBtYWtlcwoJICB2YWxncmluZCBoYXBweSBhZ2Fpbi4KCjIwMTEtMDQtMjQgMDk6NTg6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiB3aGVuIHJlbW92aW5nIGEgY2FjaGVkLWJ1dC1uby1sb25nZXItZXhpc3RpbmcgcGx1Z2luLCBvbmx5IHJlbW92ZSBmZWF0dXJlcyB0aGF0IGJlbG9uZyB0byBpdAoJICBXaGVuIGEgcGx1Z2luIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cywgZS5nLiBiZWNhdXNlIGl0J3MgYmVlbiByZW1vdmVkIG9yCgkgIHJlbmFtZWQsIGRvbid0IHJlbW92ZSBhbGwgZmVhdHVyZXMgaW4gdGhlIHJlZ2lzdHJ5IGJhc2VkIG9uIHRoZSAqbmFtZSoKCSAgb2YgdGhlIHBsdWdpbiB0aGV5IGJlbG9uZyB0bywgYnV0IG9ubHkgcmVtb3ZlIHRob3NlIHdobyBhY3R1YWxseSBiZWxvbmcKCSAgdG8gdGhhdCBwYXJ0aWN1bGFyIHBsdWdpbiAob2JqZWN0L3BvaW50ZXIpLgoJICBUaGlzIGZpeGVzIGlzc3VlcyBvZiBwbHVnaW4gZmVhdHVyZXMgZGlzYXBwZWFyaW5nIHdoZW4gYSBwbHVnaW4gLnNvIGZpbGUKCSAgaXMgcmVuYW1lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNDA5NAoKMjAxMS0wNC0yNCAwOTo1MzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBwbHVnaW5mZWF0dXJlOiBzdG9yZSBwb2ludGVyIHRvIHBsdWdpbiBpbiBhZGRpdGlvbiB0byB0aGUgcGx1Z2luIG5hbWUKCSAgU28gd2UgY2FuIHJlbGlhYmx5IHJlbW92ZSBwbHVnaW4gZmVhdHVyZXMgZm9yIGEgc3BlY2lmaWMgcGx1Z2luIGxhdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA0MDk0CgoyMDExLTA0LTI0IDExOjA1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogdXNlIFRSQUNFIGxvZyBsZXZlbCB0byBsb2cgZmlsZXMgdGhhdCBkb24ndCBsb29rIGxpa2UgcGx1Z2lucwoJICBDdXRzIGRvd24gdGhlIG5vaXNlIGluIHVuaW5zdGFsbGVkIHNldHVwcy4KCjIwMTEtMDQtMTkgMjA6MzU6MDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBuZWdvdGlhdGlvbiByZWdyZXNzaW9uCgkgIEZpeHVwIHBhdGNoIGZvciA4MzU5Nzc2N2IxNjlkZDZjMzlhMDdiNjE0NGE2NTBjMWYwOTg4MjVhCgkgIFVzZSBhIHNlcGFyYXRlIHZhcmlhYmxlIGZvciBrbm93aW5nIGlmIGEgcGFkIGFsbG9jIGhhcyBiZWVuIG1hZGUKCSAgaW5zdGVhZCBvZiBjaGVja2luZyBmb3IgdGhlIGZsb3cgcmV0dXJuIHRoYXQgbWlnaHQgbm90IGJlIHRoZQoJICByZXN1bHQgb2YgdGhlIHBhZCBhbGxvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MjIwCgoyMDExLTA0LTIxIDEyOjMzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogYWRkIHNpbXBsZSBwaXBlbGluZS1pbi1waXBlbGluZSB1bml0IHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODI5NwoKMjAxMS0wNC0yMCAxNTozOToxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogYWxzbyBhbGxvdyBwb3BwaW5nIGEgbWVzc2FnZSB3aXRob3V0IHRpbWVvdXQgaWYgbm8gcG9sbCBhdmFpbGFibGUKCSAgLi4uIHdoaWNoIGhhcHBlbnMgaW4gcGFydGljdWxhciBmbHVzaGluZyBhIGJ1cywgcG9zc2libHkgYXMgcGFydAoJICBvZiBhIHN0YXRlIGNoYW5nZSwgZS5nLiB3aGVuIGhhdmluZyBhIHBpcGVsaW5lIGluIGEgcGlwZWxpbmUKCSAgYW5kIHRoZW4gY2hhbmdpbmcgc3RhdGUgYmFjayB0byBOVUxMLiBUaGUgaW50ZXJpb3IgcGlwZWxpbmUKCSAgd2lsbC9taWdodCB0aGVuIGZsdXNoIHRoZSBidXMsIHdoaWNoIGlzIGEgY2hpbGQgYnVzIGZyb20gdGhlCgkgIHBhcmVudCB3aGljaCBkb2VzIG5vdCBoYXZlIGEgcG9sbCBhbnltb3JlIHRoZXNlIGRheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyOTcKCjIwMTEtMDQtMjAgMTk6MDg6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDQtMjAgMTk6MDM6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIwIDE5OjAwOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgdG91Y2ggYmFzZV90aW1lIG9yIGNsb2NrIGluIHN0YXRlIGNoYW5nZQoJICBEb24ndCB0b3VjaCB0aGUgYmFzZV90aW1lIG9yIHRoZSBjbG9jayB3aGVuIHNldHRpbmcgYW4gZWxlbWVudCB0byB0aGUgUkVBRFkgb3IKCSAgTlVMTCBzdGF0ZS4gSXQgaXMgdGhlIHBhcmVudCB0aGF0IHdpbGwgbWFuYWdlIHRoaXMgZm9yIHVzLgoKMjAxMS0wNC0xOSAyMDo1MjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBJbXBsZW1lbnQgZ3N0X2J1ZmZlcl9saXN0X2ZvcmVhY2goKQoKMjAxMS0wNC0xOSAxOTozMDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTkgMTg6NTc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgbWV0aG9kIHRvIGNvbXBhcmUgYnVmZmVyIGRhdGEKCSAgQWRkIG1ldGhvZCB0byBjb21wYXJlIHRoZSBkYXRhIGluIGEgYnVmZmVyLgoKMjAxMS0wNC0xOSAxNjoyMToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTEtMDQtMTkgMTQ6MDU6MjMgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1bmxvY2sgYmVmb3JlIGZyZWVpbmcgdGhlIGNhY2hlIHRvIGF2b2lkIGRlYWRsb2NrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgxOTkKCjIwMTEtMDQtMTQgMTA6MTU6MjYgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkb24ndCB1bnJlZiB0cmFucyB1bnRpbCB0aGUgZnVuY3Rpb24gaXMgZG9uZSB1c2luZyBpdAoJICB0cmFucy0+cHJpdi0+Zm9yY2VfYWxsb2MgPSBGQUxTRSB3b3VsZCBjcmFzaCBpZiB0aGUgcmVmIGhlbGQgaXMgdGhlIGxhc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODIxNQoKMjAxMS0wNC0xOSAxMzoyMzoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogYWRkIG5vdGUvd2FybmluZyB0byBnc3RfaW5kZXhfZ2V0X3dyaXRlcl9pZCgpIGRvY3MgYWJvdXQgdGhlIE9CSkVDVF9MT0NLCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4MTEKCjIwMTEtMDQtMTkgMTM6MDU6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBkZWFkbG9jayB3aGVuIHNldHRpbmcgZXh0ZXJuYWwgaW5kZXgKCSAgUHJvdGVjdCBpbmRleCB3aXRoIGl0cyBvd24gbG9jay4gZ3N0X2luZGV4X2dldF93cml0ZXJfaWQoKSBtYXkgdGFrZQoJICB0aGUgb2JqZWN0IGxvY2sgaW50ZXJuYWxseSAodGhlIGRlZmF1bHQgcmVzb2x2ZXIsIEdTVF9JTkRFWF9SRVNPTFZFUl9QQVRILAoJICB3aWxsIGFueXdheSksIHNvIGlmIHdlJ3JlIHVzaW5nIHRoYXQgdG8gcHJvdGVjdCB0aGUgaW5kZXggYXMgd2VsbCwKCSAgd2UnbGwgZGVhZGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4MTEKCjIwMTEtMDQtMTkgMTE6NTE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGZtdGxpc3QgY29uc3RhbnQKCjIwMTEtMDQtMTkgMTE6NDg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogY29uc3QtaWZ5IGZvcm1hdHMgYXJndW1lbnRzIHRvIGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YoKQoKMjAxMS0wNC0xOCAxODoxOTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICB0ZXN0czogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTg6MTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXtzaW5rLHNyY306IERvbid0IHRyeSB0byBmaXhhdGUgQU5ZIGNhcHMKCjIwMTEtMDQtMTggMTg6MDc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxNzozMzozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0OiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxNzozMjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgYmFzZTogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTc6Mjg6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBSZW1vdmUgR1NUX0JPSUxFUlBMQVRFIGFuZCBmcmllbmRzCgoyMDExLTA0LTE4IDEwOjQ3OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IE1ha2UgdGhlIHNpemUgcGFyYW1ldGVyIG9mIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgdW5zaWduZWQKCSAgSW50ZXJuYWxseSBndWludHMgd2VyZSB1c2VkIGV2ZXJ5d2hlcmUgYWxyZWFkeS4KCjIwMTEtMDQtMTggMTA6NDE6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGFsbG93IGZpeGF0aW5nIEFOWSBjYXBzIGFuZCByZW1vdmUgRklYTUUKCjIwMTEtMDQtMTggMTA6MzY6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEVuYWJsZSBEVVJBVElPTiBxdWVyeSBjYWNoaW5nCgkgIEVsZW1lbnRzIG11c3Qgbm93IHBvc3QgYSBEVVJBVElPTiBtZXNzYWdlIG9uIHRoZSBidXMgaWYgdGhleQoJICBjaGFuZ2UgdGhlIGR1cmF0aW9uIGluIFBBVVNFRCBvciBQTEFZSU5HLgoKMjAxMS0wNC0xNiAxNToyMDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIGJhc2VwYXJzZSBBUEkgdGhhdCBkaWRuJ3QgbWFrZSBpdAoKMjAxMS0wNC0xNiAxNjowNjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE2IDE1OjI4OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFkZCB0ZXN0IGZvciBpbmhlcml0aW5nIG1ldGFkYXRhL3BhZCB0ZW1wbGF0ZXMKCjIwMTEtMDQtMTYgMTU6MjQ6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogVXBkYXRlIGRvY3MgdG8gc2F5IGNsYXNzX2luaXQgaW5zdGVhZCBvZiBiYXNlX2luaXQKCSAgQW5kIHJlbW92ZSBhIHVzZWxlc3MgYmFzZV9pbml0IGluIGJhc2VzcmMKCjIwMTEtMDQtMTYgMTU6MjM6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IFVzZSBHX0RFRklORV9UWVBFCgoyMDExLTA0LTE2IDE1OjIzOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdDogRG9uJ3QgdXNlIGJhc2VfaW5pdCBhbmQgdXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTYgMTU6MDM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIGVsZW1lbnQ6IEluaGVyaXQgZWxlbWVudCBtZXRhZGF0YSBhbmQgcGFkIHRlbXBsYXRlcyBmcm9tIHBhcmVudCBjbGFzc2VzCgkgIFRoaXMgYWxsb3dzIHRvIGFkZCBwYWQgdGVtcGxhdGVzIGFuZCBzZXQgbWV0YWRhdGEgaW4gY2xhc3NfaW5pdCBpbnN0ZWFkIG9mCgkgIGJhc2VfaW5pdC4gYmFzZV9pbml0IGlzIGEgY29uY2VwdCB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgYWxtb3N0IGFsbAoJICBsYW5ndWFnZXMgYW5kIGNvcHlpbmcgdGhlIHRlbXBsYXRlcy9tZXRhZGF0YSBmb3Igc3ViY2xhc3NlcyBpcyB0aGUgbW9yZQoJICBpbnR1aXRpdmUgd2F5IG9mIGRvaW5nIHRoaW5ncy4KCSAgU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgcGFkIHRlbXBsYXRlcyBvZiBwYXJlbnQgY2xhc3NlcyBieSBhZGRpbmcgYSBuZXcKCSAgdGVtcGxhdGUgd2l0aCB0aGUgc2FtZSBub3cuCgkgIEFsc28gZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSgpIG5vdyB0YWtlcyBvd25lcnNoaXAgb2YgdGhlCgkgIHBhZCB0ZW1wbGF0ZSwgd2hpY2ggd2FzIGFzc3VtZWQgYnkgYWxsIGNvZGUgYmVmb3JlIGFueXdheS4KCSAgRml4ZXMgYnVnICM0OTE1MDEuCgoyMDExLTA0LTE2IDE0OjU2OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMi4yIHByZS1yZWxlYXNlCgoyMDExLTA0LTE2IDE0OjU0OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0wNC0xNiAxNDo1Mjo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlbW92ZSBuZXdsaW5lIGZyb20gdHJhbnNsYXRhYmxlIHN0cmluZwoKMjAxMS0wNC0xNiAxMzo0OTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgZG9lc24ndCBuZWVkIHRvIHNjYW4gb3IgdXBkYXRlIHBsdWdpbiBpbmZvCgoyMDExLTA0LTE2IDE0OjM0OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBtYWtlIHN1cmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgY2FsbHMgZ3N0X2luaXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3OTIyCgoyMDExLTA0LTE2IDEwOjQ1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgZG9lc24ndCBuZWVkIHRvIHNjYW4gb3IgdXBkYXRlIHBsdWdpbiBpbmZvCgkgIE1ha2Ugc3VyZSB0aGUgc2Nhbm5lciBkb2Vzbid0IGxvYWQgb3IgaW50cm9zcGVjdCBvciBjaGVjayBhbnkgcGx1Z2lucywKCSAgKGVzcGVjaWFsbHkgbm90IG91dHNpZGUgdGhlIGJ1aWxkIGRpcmVjdG9yeSkuCgoyMDExLTA0LTE2IDEwOjMzOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogbWFrZSBzdXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGNhbGxzIGdzdF9pbml0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzkyMgoKMjAxMS0wNC0xNiAxMDoxNzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGJhc2VwYXJzZSBBUEkgdG8gbGliZ3N0YmFzZS5kZWYKCjIwMTEtMDQtMTYgMDk6MzM6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNiAwOTozMjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBleHBvcnRzIGZvciB0aGUgR3N0UGFyc2VDb250ZXh0IGFuZCBHc3RCdWZmZXJMaXN0SXRlcmF0b3IgdHlwZXMKCjIwMTEtMDQtMTYgMDg6NTk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNSAyMDo1ODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogb25seSBydW4gZ3N0LXBsdWdpbi1zY2FubmVyIHdpdGggL3Vzci9iaW4vYXJjaCB3cmFwcGVyIG9uIE9TIFggPj0gMTAuNQoJICBCYXNlZCBvbiBwYXRjaCBieTogRGFuaWVsIE1hY2tzIDxkbWFja3NAbmV0c3BhY2Uub3JnPgoJICBFYXJsaWVyIHZlcnNpb25zIG9mIE9TWCBkb24ndCBzdXBwb3J0IHByb3BlciBtdWx0aWFyY2ggYW5kCgkgIHRyeWluZyB0byB1c2UgL3Vzci9iaW4vYXJjaCAtZm9vIHdpdGggdGhvc2UgdmVyc2lvbnMgd291bGQKCSAganVzdCBicmVhayB0aGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzNTcKCjIwMTEtMDQtMTUgMTk6MDc6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBleHBvc2UgZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfZnJlZSgpIGZvciBjb21wbGV0ZW5lc3MKCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9mcmFtZV9mcmVlKCkKCjIwMTEtMDQtMTUgMTg6NTI6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbml0IGZyYW1lcyBvbiB0aGUgc3RhY2sgd2l0aCBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCkKCSAgRnJhbWVzIG11c3Qgbm93IGJlIGluaXRlZCB0aGlzIHdheSwgY2FuJ3QganVzdCB6ZXJvIHRoZW0KCSAgb3V0IGFuZCB1c2UgdGhlbS4KCjIwMTEtMDQtMTUgMTg6Mzg6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtb3JlIGRlYnVnIGxvZ2dpbmcsIG1pbm9yIGNsZWFuLXVwCgkgIFRyYWNlIGZyYW1lcywgc3BsaXQgb3V0IGNvZGUgdG8gcXVldWUgYSBmcmFtZSBmb3IgbGF0ZXIuCgoyMDExLTA0LTE1IDE4OjAwOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2hhbmdlIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2luaXQoKSB0byBub3QgdGFrZSBhIEdzdEJhc2VQYXJzZSBhcmd1bWVudAoKMjAxMS0wNC0xNSAxNzo0MTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1ha2UgR3N0QmFzZVBhcnNlRnJhbWUgaGFuZGxpbmcgbW9yZSBiaW5kaW5ncy1mcmllbmRseQoJICBDaGFuZ2Ugc2VtYW50aWNzIG9mIGdzdF9iYXNlX3BhcnNlX3B1c2hfZnJhbWUoKSBhbmQgbWFrZSBpdCB0YWtlCgkgIG93bmVyc2hpcCBvZiB0aGUgd2hvbGUgZnJhbWUsIG5vdCBqdXN0IHRoZSBmcmFtZSBjb250ZW50cy4gVGhpcwoJICBpcyBtb3JlIGluIGxpbmUgd2l0aCBob3cgZ3N0X3BhZF9wdXNoKCkgZXRjLiB3b3JrLiBKdXN0IHRyYW5zZmVyaW5nCgkgIHRoZSBjb250ZW50LCBidXQgbm90IHRoZSBjb250YWluZXIgb2Ygc29tZXRoaW5nIHRoYXQncyBub3QgcmVhbGx5CgkgIGtub3duIHRvIGJlIGEgY29udGFpbmVyIGlzIGhhcmQgdG8gYW5ub3RhdGUgcHJvcGVybHkgYW5kIHByb2JhYmx5CgkgIHdvbid0IHdvcmsuIFdlIG1hcmsgZnJhbWVzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgbm93IHdpdGggYSBwcml2YXRlCgkgIGZsYWcgaW4gZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfaW5pdCgpLCBzbyBnc3RfYmFzZV9wYXJzZV9mcmFtZV9mcmVlKCkKCSAgb25seSBmcmVlcyB0aGUgY29udGVudHMgaW4gdGhhdCBjYXNlIGJ1dCBub3QgdGhlIGZyYW1lIHN0cnVjdCBpdHNlbGYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9mcmFtZV9uZXcoKQoKMjAxMS0wNC0xNSAxNTowMjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZ2lzdGVyIGJveGVkIHR5cGUgZm9yIEdzdEJhc2VGcmFtZVBhcnNlCgkgIFRvIG1ha2UgdGhpcyB1c2FibGUgZm9yIGJpbmRpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTE1IDEzOjU3OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQWRkIG1pc3NpbmcgKSB0byB0aGUgcmluZy1idWZmZXItbWF4LXNpemUgcHJvcGVydHkgZGVzY3JpcHRpb24KCjIwMTEtMDQtMTUgMTA6NTM6NTYgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtb3ZlIHVudXNlZCBidXQgc2V0IHZhcmlhYmxlCgkgIEdDQyA0LjYuMCBzcGl0cyB3YXJuaW5ncyBhYm91dCB0aGVzZS4KCjIwMTEtMDQtMTQgMTY6MDY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBBZGQgYm94ZWQgdHlwZSBmb3IgR3N0QnVmZmVyTGlzdEl0ZXJhdG9yIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMTEtMDQtMTQgMTU6NTk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkgIHBhcnNlOiBBZGQgYm94ZWQgdHlwZSBmb3IgR3N0UGFyc2VDb250ZXh0IGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMTEtMDQtMTQgMTU6NTE6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBBZGQgc29tZSBtb3JlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoKMjAxMS0wNC0xNCAwOTowNzo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgbGVhayB0aGUgc2lua3BhZCBuYW1lCgoyMDExLTA0LTE0IDA5OjA3OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgbGVhayBwYWRzIGluIHRoZSBuYW1lZCBwYWRzIHVuaXQgdGVzdAoKMjAxMS0wNC0xNCAwODo1OToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBjYXBzIGxlYWtzIGluIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX2FjY2VwdF97YW55LGFsbH1fY2Fwc19pbl9kaXJlY3Rpb24oKQoKMjAxMS0wNC0xMyAwOToyMDoxMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZXI6IEFsbG93IGVsZW1lbnQgbmFtZXMgdG8gYmVnaW4gd2l0aCBkaWdpdHMKCjIwMTEtMDQtMTMgMTA6MjQ6MzMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBBZGQgdGVzdCBmb3IgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IKCjIwMTEtMDEtMDYgMTg6MTE6MzEgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBGaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDExLTAxLTA2IDE4OjExOjMxICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9yYXZuYXNAY2lzY28uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogRml4IHBhZCBjYWxsYmFja3Mgc28gdGhleSBoYW5kbGUgd2hlbiBwYXJlbnQgZ29lcyBhd2F5CgkgIDEpIFdlIG5lZWQgdG8gbG9jayBhbmQgZ2V0IGEgc3Ryb25nIHJlZiB0byB0aGUgcGFyZW50LCBpZiBzdGlsbCB0aGVyZS4KCSAgMikgSWYgaXQgaGFzIGdvbmUgYXdheSwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdCBncmFjZWZ1bGx5LgoJICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzYWZlbHkgbW9kaWZ5IGEgcnVubmluZyBwaXBlbGluZS4gSGFzIGJlZW4KCSAgb2JzZXJ2ZWQgd2hlbiBhIHN0cmVhbWluZyB0aHJlYWQgaXMgZG9pbmcgYSBidWZmZXJfYWxsb2MoKSB3aGlsZSBhbgoJICBhcHBsaWNhdGlvbiB0aHJlYWQgc2VuZHMgYW4gZXZlbnQgb24gYSBwYWQgZnVydGhlciBkb3duc3RyZWFtLCBhbmQgZnJvbQoJICB3aXRoaW4gYSBwYWQgcHJvYmUgKGhvbGRpbmcgU1RSRUFNX0xPQ0spIGNhcnJpZXMgb3V0IHRoZSBwaXBlbGluZSBwbHVtYmluZwoJICB3aGlsZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgaXRzIGJ1ZmZlcl9hbGxvYygpIGluIHByb2dyZXNzLgoKMjAxMS0wMS0wNiAxODoxMTozMSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvcmF2bmFzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRml4IHBhZCBjYWxsYmFja3Mgc28gdGhleSBoYW5kbGUgd2hlbiBwYXJlbnQgZ29lcyBhd2F5CgkgIDEpIFdlIG5lZWQgdG8gbG9jayBhbmQgZ2V0IGEgc3Ryb25nIHJlZiB0byB0aGUgcGFyZW50LCBpZiBzdGlsbCB0aGVyZS4KCSAgMikgSWYgaXQgaGFzIGdvbmUgYXdheSwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdCBncmFjZWZ1bGx5LgoJICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzYWZlbHkgbW9kaWZ5IGEgcnVubmluZyBwaXBlbGluZS4gSGFzIGJlZW4KCSAgb2JzZXJ2ZWQgd2hlbiBhIHN0cmVhbWluZyB0aHJlYWQgaXMgZG9pbmcgYSBidWZmZXJfYWxsb2MoKSB3aGlsZSBhbgoJICBhcHBsaWNhdGlvbiB0aHJlYWQgc2VuZHMgYW4gZXZlbnQgb24gYSBwYWQgZnVydGhlciBkb3duc3RyZWFtLCBhbmQgZnJvbQoJICB3aXRoaW4gYSBwYWQgcHJvYmUgKGhvbGRpbmcgU1RSRUFNX0xPQ0spIGNhcnJpZXMgb3V0IHRoZSBwaXBlbGluZSBwbHVtYmluZwoJICB3aGlsZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgaXRzIGJ1ZmZlcl9hbGxvYygpIGluIHByb2dyZXNzLgoKMjAxMS0wNC0xMyAxNzoyNjo1NCArMDIwMCAgSmFubmUgR3J1bmF1IDxqYW5uZS5ncnVuYXVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwcmV2ZW50IGNhbGN1bGF0aW9uIHdpdGggR1NUX0NMT0NLX1RJTUVfTk9ORSBpbiB1cGRhdGVfdGltZV9sZXZlbCgpCgoyMDExLTA0LTExIDE1OjA4OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHRlc3RzOiBmaXggdW51c3VlZC1idXQtYXNzaWduZWQtdmFyaWFibGUgd2FybmluZ3Mgd2l0aCBnY2MgNC42CgoyMDExLTA0LTExIDEzOjA0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGRpc2FibGUgdGVzdF9tYW55X2JpbnMgdW5pdCB0ZXN0IGZvciBub3cKCSAgSXQgZmFpbHMgb24gdGhlIE9TWCBib3QgKGJvdGggd2l0aCBnaXQgYW5kIHRoZSBsYXN0IHJlbGVhc2UpLCBhbmQKCSAgaXQgZG9lc24ndCByZWFsbHkgdGVzdCBhbnl0aGluZyB1c2VmdWwsIHNvIG1heSBqdXN0IGFzIHdlbGwgZGlzYWJsZQoJICBpdCBmb3Igbm93LgoKMjAxMS0wNC0xMSAxMjo1MTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIENhc3Qgc3RyaW5nIGNvbnN0YW50cyB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoKMjAxMS0wNC0xMSAxMjowNDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBhbGxvdyBtb3JlIHRpbWUgZm9yIHRoZSB0ZXN0X21hbnlfYmlucyBwaXBlbGluZSB0byBwcmVyb2xsCgkgIEhvcGVmdWxseSBtYWtlcyB0aGlzIHRlc3Qgd29yayBvbiB0aGUgT1NYIGJ1aWxkIGJvdCBhbmQgb3RoZXIKCSAgbm90LXNvLXBvd2VyZnVsIG1hY2hpbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NjI0CgoyMDExLTA0LTExIDExOjI5OjAwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBtYWtlIHN1cmUgZ3N0LXBsdWdpbi1zY2FubmVyIGlzIGNhbGxlZCB3aXRoIHRoZSByaWdodCBhcmNoIG9uIE9TWAoJICBPbiBPU1gsIEdTdHJlYW1lciBtaWdodCBiZSBidWlsdCBhcyBhICdmYXQvdW5pdmVyc2FsJyBiaW5hcnkgY29udGFpbmluZwoJICBib3RoIDMyLWJpdCBhbmQgNjQtYml0IGNvZGUuIFdlIG11c3QgdGFrZSBjYXJlIHRoYXQgZ3N0LXBsdWdpbi1zY2FubmVyCgkgIGlzIGV4ZWN1dGVkIHdpdGggdGhlIHNhbWUgYXJjaGl0ZWN0dXJlIGFzIHRoZSBHU3RyZWFtZXIgY29yZSwgb3RoZXJ3aXNlCgkgIGJhZCB0aGluZ3MgbWF5IGhhcHBlbiBhbmQgY29yZS9zY2FubmVyIHdpbGwgbm90IGJlIGFibGUgdG8gY29tbXVuaWNhdGUKCSAgcHJvcGVybHkuCgkgIFNob3VsZCBmaXggaXNzdWVzIHdpdGggKDMyLWJpdCkgZmlyZWZveCB1c2luZyBhIDMyLWJpdCBHU3RyZWFtZXIgY29yZQoJICB3aGljaCB0aGVuIHNwYXducyBhICd1bml2ZXJzYWwnIGdzdC1wbHVnaW4tc2Nhbm5lciBiaW5hcnkgd2hpY2ggZ2V0cwoJICBydW4gaW4gNjQtYml0IG1vZGUsIGNhdXNpbmcgMTAwJSBjcHUgdXNhZ2UgLyBidXN5IGxvb3BzIG9yIGp1c3QgaGFuZ2luZwoJICBmaXJlZm94IHVudGlsIGtpbGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTM1NwoKMjAxMS0wNC0xMSAxMTowNToyNCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFsbG93IHRyYWNraW5nIG9mIGJ1ZmZlcnMgaW4gR1NUX1NDSEVEVUxJTkcgZGVidWcgb3V0cHV0CgkgIEFzIEdTVF9TQ0hFRFVMSU5HIHJlcG9ydHMgd2hlbiBidWZmZXJzIHBhc3MgdGhyb3VnaCBwYWRzIGR1ZSB0bwoJICBnc3RfcGFkX3B1c2ggY2FsbHMsIHRoZXkgYXJlIGEgZ29vZCB3YXkgb2YgdHJhY2tpbmcgdGhlIHByb2dyZXNzIG9mCgkgIGJ1ZmZlcnMgdGhyb3VnaCBwaXBlbGluZXMuIEFzIHN1Y2gsIGFkZGluZyBvdXRwdXQgb2YgdGhlIGJ1ZmZlciBwb2ludGVycwoJICB0byB0aGVzZSBtZXNzYWdlcyBhbGxvd3MgdHJhY2tpbmcgb2Ygc3BlY2lmaWMgYnVmZmVycywgZWFzaW5nIGRlYnVnZ2luZy4KCjIwMTEtMDQtMTEgMTA6NTM6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNC0xMSAxMDoyNjo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBhbmRyb2lkL2Jhc2UubWsKCSAgYW5kcm9pZC9jb250cm9sbGVyLm1rCgkgIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rCgkgIGFuZHJvaWQvZWxlbWVudHMubWsKCSAgYW5kcm9pZC9nc3QtaW5zcGVjdC5tawoJICBhbmRyb2lkL2dzdC1sYXVuY2gubWsKCSAgYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWsKCSAgYW5kcm9pZC9nc3QubWsKCSAgYW5kcm9pZC9pbmRleGVycy5tawoJICBhbmRyb2lkL25ldC5tawoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWYKCjIwMTEtMDQtMTEgMTA6MjA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIEZJWE1FCgoyMDExLTAxLTI3IDE0OjMzOjA4ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIEFuZHJvaWQubWs6CgkqIGFuZHJvaWQvTk9USUNFOgoJKiBhbmRyb2lkL2Jhc2UubWs6CgkqIGFuZHJvaWQvY29udHJvbGxlci5tazoKCSogYW5kcm9pZC9kYXRhcHJvdG9jb2wubWs6CgkqIGFuZHJvaWQvZWxlbWVudHMubWs6CgkqIGFuZHJvaWQvZ3N0LWluc3BlY3QubWs6CgkqIGFuZHJvaWQvZ3N0LWxhdW5jaC5tazoKCSogYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWs6CgkqIGFuZHJvaWQvZ3N0Lm1rOgoJKiBhbmRyb2lkL2dzdC9nc3Rjb25maWcuaDoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuaDoKCSogYW5kcm9pZC9nc3QvZ3N0dmVyc2lvbi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLm91dHB1dDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuYzoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkuYzoKCSogYW5kcm9pZC9pbmRleGVycy5tazoKCSogYW5kcm9pZC9uZXQubWs6CgkqIGFuZHJvaWQvdG9vbHMubWs6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBhbmRyb2lkOiBtYWtlIGl0IHJlYWR5IGZvciBhbmRyb2dlbml6ZXIKCSAgUmVtb3ZlIHRoZSBhbmRyb2lkLyB0b3AgZGlyCgkgIEZpeGUgdGhlIE1ha2VmaWxlLmFtIHRvIGJlIGFuZHJvZ2VuaXplZAoJICBUbyBidWlsZCBnc3RyZWFtZXIgZm9yIGFuZHJvaWQgd2UgYXJlIG5vdyB1c2luZyBhbmRyb2dlbml6ZXIgd2hpY2ggZ2VuZXJhdGVzIHRoZSBuZWVkZWQgQW5kcm9pZC5tayBmaWxlcy4KCSAgQW5kcm9nZW5pemVyIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwOi8vZ2l0LmNvbGxhYm9yYS5jby51ay8/cD11c2VyL2RlcmVrL2FuZHJvZ2VuaXplci5naXQKCjIwMTEtMDQtMDkgMjM6NTQ6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBkb24ndCBwdXQgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyBpbnRvIGdfcmV0dXJuX2lmX2ZhaWwoKQoKMjAxMS0wNC0wOSAyMjo1Nzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBmaXhlcyBmb3IgYmFzZXBhcnNlIGRvY3MKCSAgQ2xhc3MgdmZ1bmMgcmVmZXJlbmNlcyBzdGlsbCBhcmVuJ3QgcmlnaHQsIG5vIGlkZWEgd2hhdAoJICB0aGUgY29ycmVjdCBtYXJrdXAgZm9yIHRob3NlIGlzLgoKMjAxMS0wNC0wOSAxODowNDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1bnJlZiBldmVudCBpbiBkZWZhdWx0X3NlbmRfZXZlbnQgaW4gY2FzZSBlbGVtZW50IGhhcyBubyBwYWRzCgkgIFNwb3R0ZWQgYnkgIEhhYWtvbiBTcG9yc2hlaW0uCgoyMDExLTA0LTA5IDA0OjA3OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBjaGVjazogSWdub3JlIG5ldyBnc3RtZXRhIGJpbmFyeQoKMjAxMS0wNC0wOSAwNDowNTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZGVzaWduOiBkcmFmdC1idWZmZXIyLnR4dCBubyBsb25nZXIgZXhpc3RzCgoyMDExLTA0LTA5IDA0OjA1OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBEb24ndCBmb3JnZXQgdG8gZGlzdCBnc3RlbGVtZW50bWV0YWRhdGEuaAoKMjAxMS0wNC0wOCAxOTowNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHZhcmlhYmxlIG5hbWUgY2xlYW4tdXAKCjIwMTEtMDQtMDggMTU6MzE6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXBhcnNlOiByZW5hbWUgX3NldF9mcmFtZV9wcm9wcygpIHRvIF9zZXRfZnJhbWVfcmF0ZSgpCgkgIFNlZW1zIGxpa2UgdGhlIGJlc3QgZml0IHRvIHdoYXQgaXQgZG9lcywgYW5kIGlzIHNob3J0ZXIgdGhhbgoJICBzZXRfZnJhbWVfcHJvcGVydGllcygpIHdoaWNoIG1pZ2h0IGFsc28gaGF2ZSBiZWVuIGNvbmZ1c2luZwoJICBiZWNhdXNlIG9mIEdzdEJhc2VQYXJzZUZyYW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTA2IDE3OjQzOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVwbGFjZSBmb3JtYXQgZmxhZ3Mgd2l0aCBnc3RfYmFzZV9wYXJzZV9zZXRfe3Bhc3N0aHJvdWdoLHN5bmNhYmxlLGhhc190aW1pbmdfaW5mb30KCSAgVGhpcyBpcyBtb3JlIGluIGxpbmUgd2l0aCBlLmcuIEdzdEJhc2VUcmFuc2Zvcm0ncyBBUEksIGFuZCBtYWtlcyBmb3IgbmljZXIKCSAgdG8gcmVhZCBjb2RlLiBObyBnZXR0ZXJzIGZvciBub3cgc2luY2UgSSBkb24ndCBzZWUgYW55IHVzZSBjYXNlIGZvciB0aGVtLAoJICB0aGUgQVBJIGlzIGZvciBzdWJjbGFzc2VzLCB3aGljaCB1c3VhbGx5IGtub3cgd2hhdCBmb3JtYXQgdGhleSdyZQoJICBkZWFsaW5nIHdpdGggYWxyZWFkeSBhbmQgaGVuY2Uga25vdyB3aGF0IHRoZXkndmUgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTA0IDE3OjU4OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbWFrZSBEUkFJTiBhbmQgU1lOQyBmbGFncyBvbiBiYXNlcGFyc2UsIG5vdCB0aGUgZnJhbWUsIGFuZCBjaGFuZ2UgdG8gRFJBSU5JTkcgYW5kIExPU1RfU1lOQwoJICBUaGUgZmlyc3QgYmVjYXVzZSBpdCBzZWVtcyBhIGJldHRlciBmaXQgY29uY2VwdHVhbGx5LCB0aGUgc2Vjb25kCgkgIHRvIGV4cHJlc3MgYm9vbGVhbm5lc3MuIEFsc28gY2hhbmdlIHRoZSBhY2Nlc3NvciBtYWNyb3MgZm9yIHN1YmNsYXNzZXMKCSAgdG8gR1NUX0JBU0VfUEFSU0VfRFJBSU5JTkcgYW5kIEdTVF9CQVNFX1BBUlNFX0xPU1RfU1lOQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wMiAxNDoxODo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIHBhZGRpbmcgdG8gR3N0QmFzZVBhcnNlRnJhbWUKCSAgRXNwLiBzaW5jZSBpdCdzIHVzdWFsbHkgYWxsb2NhdGVkIG9uIHRoZSBzdGFjay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wMiAxNDowODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGZpeCB0eXBvIGluIGRvY3MgZm9yIEdTVF9CQVNFX1BBUlNFX0ZPUk1BVF9GTEFHX1BBU1NUSFJPVUdICgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDIgMTQ6MDQ6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgR1F1ZXVlIGluc3RlYWQgb2YgR0xpc3QgZm9yIHF1ZXVlZCBmcmFtZXMKCSAgYW5kIG1ha2UgYnVmZmVyIG1ldGFkYXRhIHdyaXRhYmxlIGJlZm9yZSBzZXR0aW5nIGNhcHMgb24gcXVldWVkCgkgIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjM0MQoKMjAxMS0wNC0wMiAxMzowMjowMSArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVybWVyYWxpQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIEdTVF9CQVNFX1BBUlNFX0ZMT1dfUVVFVUVEIHRvIHF1ZXVlIGJ1ZmZlcnMgdW50aWwgY2FwcyBhcmUga25vd24KCSAgVGhpcyBpcyB1c2VmdWwgZm9yIHBhcnNlciBsaWtlIGZsYWNwYXJzZSBvciBoMjY0cGFyc2Ugd2hpY2ggbWF5IG5lZWQgdG8gcHJvY2VzcwoJICBzb21lIGJ1ZmZlcnMgYmVmb3JlIHRoZXkgY2FuIGNvbnN0cnVjdCB0aGUgZmluYWwgY2FwcywgaW4gd2hpY2ggY2FzZSB0aGV5IG1heQoJICB3YW50IHRvIGRlbGF5IHB1c2hpbmcgdGhlIGluaXRpYWwgYnVmZmVycyB1bnRpbCB0aGUgZnVsbCBhbmQgcHJvcGVyIGNhcHMgYXJlCgkgIGtub3duLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MzQxCgoyMDExLTAzLTMxIDE1OjUwOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHRvIGRvY3MgYW5kIGZpeCB1cCBndGstZG9jIG1hcmt1cCBhIGxpdHRsZQoJICBBbmQgYWRkIFNpbmNlIG1hcmtlcnMuCgoyMDExLTAzLTMxIDE0OjQ4OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVwbGFjZSBzZXRfc2VlaygpIHdpdGggX3NldF9hdmVyYWdlX2JpdHJhdGUoKSBhbmQgRkxBR19TWU5DQUJMRQoJICBUaGlzIG1ha2VzIG1vcmUgc2Vuc2UgY29uY2VwdHVhbGx5LCBzaW5jZSB0aGUgYml0cmF0ZSBtYXkgYmUgdXNlZAoJICB0byBlc3RpbWF0ZSBhIHNlZWsgcG9zaXRpb24gaWYgdGhlcmUncyBubyBzZWVrIHRhYmxlIG9yIGp1c3QgZm9yCgkgIGR1cmF0aW9uIHJlcG9ydGluZy9lc3RpbWF0aW9uIGlmIHdlIGNhbid0IHNlZWsuIEFsc28sIGV2ZW4gaWYgdGhlCgkgIGZvcm1hdCBpcyBub3Qgc3luY2FibGUsIHdlIGNvdWxkIHN0aWxsIHNlZWsgYnkgcHVzaGluZyBkYXRhIGZyb20gdGhlCgkgIHN0YXJ0IGFuZCB1c2luZyB0aGUgc2VnbWVudCB0byBtYWtlIGRvd25zdHJlYW0gY2xpcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0yNCAxNzozMDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlbmFtZSBHc3RCYXNlRm9ybWF0IHRvIEdzdEJhc2VGb3JtYXRGbGFncyBhbmQgZml4IHVwIGFzc29jaWF0ZWQgQVBJCgkgIEFsc28gY2hhbmdlIGdzdF9iYXNlX3BhcnNlX3NldF9mb3JtYXQocGFyc2UsZmxhZ3Msc3dpdGNoX29uKSB0bwoJICBnc3RfYmFzZV9wYXJzZV9zZXRfZm9ybWF0X2ZsYWdzKHBhcnNlLGZsYWdzKSB3aGljaCBpcyBtb3JlIGluIGxpbmUKCSAgd2l0aCB0aGUgcmVzdCBvZiBvdXIgQVBJIGFuZCBob3cgdGhlIGZ1bmN0aW9uIGlzIHVzZWQuCgoyMDExLTAzLTEzIDIzOjQzOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZG9uJ3QgZXhwb3NlIEdzdEFkYXB0ZXIgaW4gcHVibGljIGhlYWRlcgoJICBOb25lIG9mIHRoZSBleGlzdGluZyBzdWJjbGFzc2VzIG5lZWRzIGFjY2VzcyB0byB0aGF0LCBzbyB0aGVyZSdzCgkgIG5vIHJlYXNvbiB0byBleHBvc2UgaXQgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0xMyAyMzozODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vdmUgdmFyaW91cyBzZWdtZW50LXJlbGF0ZWQgbWVtYmVycyBpbnRvIHRoZSBwcml2YXRlIGluc3RhbmNlIHN0cnVjdAoJICBJZiBub25lIG9mIHRoZSBleGlzdGluZyBzdWJjbGFzc2VzIHVzZXMgdGhlc2UsIHRoZXJlJ3MgcHJvYmFibHkgbm8KCSAgbmVlZCB0byBleHBvc2UgdGhlbSBhdCB0aGUgbW9tZW50LiBLZWVwIHRoZSBzZWdtZW50IGl0c2VsZiBleHBvc2VkCgkgIHRob3VnaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0xMyAyMzozMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlbW92ZSB1bnVzZWQgR1NUX0JBU0VfUEFSU0Vfe1NJTkssU1JDfV9OQU1FCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMTIgMTY6MTY6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZS1pbmRlbnQgaGVhZGVyCgoyMDExLTAzLTEyIDE1OjM0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHVwIEdUeXBlIG5hbWUgYW5kIG1ha2UgX2dldF90eXBlKCkgZnVuY3Rpb24gdGhyZWFkLXNhZmUKCSAgUmVuYW1lIEdUeXBlIGZyb20gR3N0QmFzZVBhcnNlQmFkIHRvIEdzdEJhc2VQYXJzZS4KCjIwMTEtMDMtMTIgMTU6Mjk6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgbGliczogYWRkIEdzdEJhc2VQYXJzZSB3aGljaCB3YXMgbW92ZWQgZnJvbSAtYmFkCgoyMDExLTAyLTIzIDE3OjI0OjE0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGZpeAoKMjAxMS0wMi0yMSAxMzoyNDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbmFtZSBHVHlwZSBmcm9tIEdzdEF1ZGlvQmFzZVBhcnNlQmFkIHRvIEdzdEJhc2VQYXJzZUJhZAoJICBXZSB1c2UgaXQgZm9yIHZpZGVvIGFzIHdlbGwgbm93LgoKMjAxMS0wMi0xOCAxNTowNTozMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTEtMDItMTggMTU6MDU6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGRlbHRhLXVuaXQgZmxhZ3MgaW5zdGVhZCBvZiBub25lCgoyMDExLTAyLTE3IDEzOjIyOjI4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIEFQSSBjaGFuZ2VzCgoyMDEwLTEwLTEzIDE1OjM5OjU1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogQ3JlYXRlIGJhc2VwYXJzZSBsaWJyYXJ5CgoyMDExLTAyLTA3IDE0OjQ2OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVuZSBRVUVSWV9TRUVLSU5HIHJlc3BvbnNlCgkgIEV2ZW4gaWYgd2UgY3VycmVudGx5IGRvIG5vdCBoYXZlIGEgZHVyYXRpb24geWV0LCBhc3N1bWUgc2Vla2FibGUgaWYKCSAgaXQgbG9va3MgbGlrZSB3ZSdsbCBsaWtlbHkgYmUgYWJsZSB0byBkZXRlcm1pbmUgaXQgbGF0ZXIgb24KCSAgKHdoaWNoIGNvaW5jaWRlcyB3aXRoIG5lZWRlZCBpbmZvcm1hdGlvbiB0byBwZXJmb3JtIHNlZWtpbmcpLgoJICBGaXhlcyAjNjQxMDQ3LgoKMjAxMS0wMi0wOCAyMzozOToyNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFVwZGF0ZSBtaW4vbWF4IGJpdHJhdGUgYmVmb3JlIGZpcnN0IHBvc3RpbmcgdGhlbQoJICBUaGlzIGF2b2lkcyBwb3N0aW5nIGFuIGluaXRpYWwgbWluLWJpdHJhdGUgb2YgR19VSU5UTUFYIGFuZCBtYXgtYml0cmF0ZQoJICBvZiAwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxODU3CgoyMDExLTAxLTIxIDE0OjUzOjM5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVuZSBkZWZhdWx0IGR1cmF0aW9uIGVzdGltYXRlIHVwZGF0ZSBpbnRlcnZhbAoJICBSYXRoZXIgdGhhbiBhIGZpeGVkIGRlZmF1bHQgZnJhbWUgY291bnQsIGVzdGltYXRlIGZyYW1lIGNvdW50IHRvIGFpbSBmb3IKCSAgYW4gaW50ZXJ2YWwgZHVyYXRpb24gZGVwZW5kaW5nIG9uIGZwcyBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2Ugb2xkCgkgIGZpeGVkIGRlZmF1bHQuCgoyMDExLTAxLTE0IDE1OjE2OjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJzZSBwbGF5YmFjazsgbWluZCBrZXlmcmFtZXMgZm9yIGZyYWdtZW50IGJvdW5kYXJ5CgoyMDExLTAxLTEyIDE0OjQwOjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIG5vbi1lbXB0eSBjYW5kaWRhdGUgZnJhbWVzCgoyMDExLTAxLTExIDE1OjI0OjIzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xhcmlmeSBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTEtMDEtMTEgMTU6MjQ6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXJseSB0cmFjayB1cHN0cmVhbSB0aW1lc3RhbXBzCgkgIC4uLiByYXRoZXIgdGhhbiB3aXRoIGEgZGVsYXkuCgoyMDExLTAxLTExIDE1OjIzOjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbmVlZCBwcm9wZXIgZnJhbWUgZHVyYXRpb24gdG8gb2J0YWluIHNlbnNpYmxlIGZyYW1lIGJpdHJhdGUKCjIwMTEtMDEtMTEgMTU6MjI6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXIgaW5pdGlhbCB2YWx1ZXMgZm9yIGluZGV4IHRyYWNraW5nIHZhcmlhYmxlcwoKMjAxMS0wMS0xMSAxMjowNToxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFycmFuZ2UgZm9yIGNvbnNpc3RlbnQgZXZlbnQgaGFuZGxpbmcKCjIwMTEtMDEtMTAgMTY6NTk6NTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBoZWFkZXIgc3R5bGUgY2xlYW5pbmcKCjIwMTEtMDEtMTAgMTc6MDc6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIHNvbWUgbW9yZSBpbml0aWFsIGZyYW1lIG1ldGFkYXRhIGluIHBhcnNlX2ZyYW1lCgkgIC4uLiBhbmQgZG9jdW1lbnQgYWNjb3JkaW5nbHkuCgoyMDExLTAxLTEwIDE2OjU2OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgcGFzc3Rocm91Z2ggaW50byBmb3JtYXQgZmxhZ3MKCSAgQWxzbyBhZGQgYSBmb3JtYXQgZmxhZyB0byBzaWduYWwgYmFzZXBhcnNlIHRoYXQgc3ViY2xhc3MvZm9ybWF0IGNhbiBwcm92aWRlCgkgIChwYXJzZWQpIHRpbWVzdGFtcCByYXRoZXIgdGhhbiBhbiBlc3RpbWF0ZWQgb25lLiAgSW4gcGFydGljdWxhciwgc3VjaCAic3Ryb25nIgoJICB0aW1lc3RhbXAgdGhlbiBhbGxvd3MgdG8gZS5nLiBkZXRlcm1pbmUgZHVyYXRpb24uCgoyMDExLTAxLTEwIDE1OjM0OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogaW50cm9kdWNlIGEgYmFzZXBhcnNlIGZyYW1lIHRvIHNlcnZlIGFzIGNvbnRleHQKCSAgLi4uIGFuZCBhZGp1c3Qgc3ViY2xhc3MgcGFyc2VycyBhY2NvcmRpbmdseQoKMjAxMS0wMS0wNyAxNjozOTo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlc3RyaWN0IGR1cmF0aW9uIHNjYW5uaW5nIHRvIHB1bGwgbW9kZSBhbmQgYXZvaWQgZXh0cmEgc2V0X2NhcHMgY2FsbAoKMjAxMS0wMS0wNyAxNTo1ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBzb21lIGRvY3VtZW50YXRpb24KCSAgQWxzbyBhZGQgc29tZSBtb3JlIGRlYnVnLgoKMjAxMS0wMS0wNiAxMTo0MTo0NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsbG93IGluY3JlYXNpbmcgbWluX3NpemUgZm9yIGN1cnJlbnQgZnJhbWUgcGFyc2luZyBvbmx5CgkgIEFsc28gY2hlY2sgdGhhdCBzdWJjbGFzcyBhY3R1YWxseSBlaXRoZXIgZGlyZWN0cyB0byBza2lwIGJ5dGVzIG9yCgkgIGluY3JlYXNlcyBleHBlY3RlZCBmcmFtZSBzaXplIHRvIGF2b2lkIGdvaW5nIG5vd2hlcmUgaW4gYm9ndXMKCSAgaW5kZWZpbml0ZSBsb29waW5nLgoKMjAxMS0wMS0xNCAxNToyNjozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYWVzcGFyc2U6IGZpeCByZWZhY3RvciByZWdyZXNzaW9uIGluIGxvb3AgYmFzZWQgcGFyc2luZwoKMjAxMS0wMS0wNiAxMToxNjo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBhc3MgYWxsIGF2YWlsYWJsZSBkYXRhIHRvIHN1YmNsYXNzIHJhdGhlciB0aGFuIG1pbmltdW0KCSAgQWxzbyByZWR1Y2Ugc29tZSBhZGFwdGVyIGNhbGxzIGFuZCBhZGQgYSBmZXcgZGVidWcgc3RhdGVtZW50cy4KCjIwMTAtMTItMTAgMTU6NTk6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjayBoYW5kbGluZwoKMjAxMC0xMi0xMCAxNDo1NjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHR5cG8gYW5kIGRlYnVnIHN0YXRlbWVudCBjbGVhbnVwCgoyMDEwLTEyLTEwIDE0OjQwOjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVkdWNlIGxvY2tpbmcKCSAgLi4uIHdoaWNoIGlzIGVpdGhlciBhbHJlYWR5IG11dGUgYW5kL29yIGltcGxpY2l0bHkgaGFuZGxlZCBieSBTVFJFQU1fTE9DSy4KCjIwMTEtMDEtMTQgMTQ6MDg6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCBsb29wIGluIGZyYW1lIGxvY2F0aW5nIGludGVycG9sYXRpb24KCjIwMTEtMDEtMTQgMTY6MzA6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBiYXNlcGFyc2U6IEJlIGNhcmVmdWwgdG8gbm90IGxvc2UgdGhlIGV2ZW50IHJlZgoJICBEb24ndCB1bnJlZiB0aGUgZXZlbnQgaWYgaXQgaGFzbid0IGJlZW4gaGFuZGxlZCwgYmVjYXVzZSB0aGUgY2FsbGVyCgkgIGFzc3VtZXMgaXQgaXMgc3RpbGwgdmFsaWQgYW5kIG1pZ2h0IHJldXNlIGl0LgoJICBJIHJhbiBpbnRvIHRoaXMgcHJvYmxlbSB3aGVuIHRyYW5zY29kaW5nIGFuIEFWSSAod2l0aCBtcDMgaW5zaWRlKQoJICB0byBncHAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk1NTUKCjIwMTEtMDEtMTMgMTY6Mjc6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgYmFzZXBhcnNlIGRvY3MvY29tbWVudCBmaXhlcwoJICBSZW1vdmUgY29weSduJ3Bhc3RlIGxlZnRvdmVycy4KCjIwMTAtMTEtMDggMTk6NTg6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbmNyZWFzZSBrZXlmcmFtZSBhd2FyZW5lc3MKCSAgLi4uIHdoaWNoIGlzIG5vdCBwYXJ0aWN1bGFyIHJlbGV2YW50IGZvciBhdWRpbyBwYXJzaW5nLCBidXQgbW9yZSBzbwoJICBpbiB2aWRlbyBjYXNlcy4gIEluIHBhcnRpY3VsYXIsIGF1dG8tZGV0ZXJtaW5lIGlmIGRlYWxpbmcgd2l0aCB2aWRlbyAoY2FwcykuCgoyMDEwLTExLTMwIDE1OjQxOjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgdW5leHBlY3RlZCBzdHJheSBtZXRhZGF0YQoKMjAxMC0xMS0zMCAxNTo0MDoyOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBwcm9wZXIgX05PTkUgb3V0cHV0IHZhbHVlIHdoZW4gYXBwbGljYWJsZQoKMjAxMC0xMS0yNSAxODo1Njo0MiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMTAtMTEtMjUgMTc6MTQ6MjMgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2U6IGZpeCBwb3NzaWJsZSBkaXZpc2lvbi1ieS16ZXJvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU3ODYKCjIwMTAtMTEtMTcgMTY6MjM6NDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgY29ycmVjdCBvZmZzZXQgd2hlbiBhZGRpbmcgaW5kZXggZW50cnkKCSAgLi4uIGJlYXJpbmcgaW4gbWluZCB0aGF0IEJVRkZFUl9PRkZTRVQgaXMgbWVkaWEgc3BlY2lmaWMgYW5kIG1heSBub3QKCSAgcmVmbGVjdCB0aGUgYmFzaWMgb2Zmc2V0IGFmdGVyIGhhdmluZyBiZWVuIHBhcnNlZC4KCjIwMTAtMTEtMTcgMTQ6MzA6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbmhhbmNlbWVudHMgZm9yIHRpbWVzdGFtcCBtYXJrZWQgZnJhbWVkIGZvcm1hdHMKCSAgVGhhdCBpcywgYXMgc3VjaCBmb3JtYXRzIGFsbG93IHN1YmNsYXNzIHRvIGV4dHJhY3QgcG9zaXRpb24gZnJvbSBmcmFtZSwKCSAgaXQgaXMgcG9zc2libGUgdG8gZXh0cmFjdCBkdXJhdGlvbiAoaWYgbm90IG90aGVyd2lzZSBwcm92aWRlZCkKCSAgZnJvbSAobmVhcikgbGFzdCBmcmFtZSwgYW5kIGEgc2VlayBjYW4gZmFpcmx5IGFjY3VyYXRlbHkgdGFyZ2V0IHRoZSByZXF1aXJlZAoJICBwb3NpdGlvbi4KCSAgRml4ZXMgIzYzMTM4OS4KCjIwMTAtMTEtMTYgMTc6MDY6MTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBmcmFtZSBzY2FubmluZyBwZWZvcm1lZCBieSBfbG9vcAoKMjAxMC0xMS0xNiAxODowNDowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNsaWdodGx5IG9wdGltaXplIHNlbmRpbmcgb2YgcGVuZGluZyBuZXdzZWdtZW50IGV2ZW50cwoKMjAxMC0xMS0xNiAxNzowNDozNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIGZpeGVzIGFuZCBlbmhhbmNlbWVudHMKCSAgQXJyYW5nZSBmb3IgdXBzdHJlYW0gYXMgd2VsbCBhcyBkb3duc3RyZWFtIGZsdXNoaW5nIHdoZW4gc2Vla2luZy4KCSAgQWxzbyBkZXRlcm1pbmUgdXBzdHJlYW0gc2l6ZSBhcyB3ZWxsIGFzIHNlZWthYmlsaXR5LiAgQWRqdXN0IHNvbWUgY29tbWVudHMKCSAgdG8gcmVhbGl0eSBhbmQgZW1wbG95IGRlYnVnIHN0YXRlbWVudCBpbiBwcm9wZXIgb3JkZXIuCgoyMDEwLTEwLTI5IDE0OjA4OjU4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIG9ubHkgdXBzdHJlYW0gZHVyYXRpb24gaWYgaXQgcHJvdmlkZXMgb25lCgoyMDEwLTEwLTI1IDE0OjE1OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmbG93IHVwZGF0ZV9iaXRyYXRlIGNvZGUKCSAgLi4uIHdoaWNoIG1ha2VzIGxvY2FsIHZhcmlhYmxlcyByZXByZXNlbnQgcmVhbCBzdGF0ZSBiZXR0ZXIsIGFuZCBhdm9pZHMKCSAgdHJpZ2dlcmluZyB1bm5lZWRlZCB1cGRhdGVzL2FjdGlvbnMuCgoyMDEwLTEwLTI1IDE0OjEzOjUxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMC0xMC0xMSAxNzo0OTo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBlcmZvcm0gYml0cmF0ZSBoYW5kbGluZyBhbmQgcG9zdGluZyBhZnRlciBuZXdzZWdtZW50IHNlbmRpbmcKCjIwMTAtMTAtMTEgMTc6MzY6MTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbW1lZGlhdGVseSBwb3N0IHN1YmNsYXNzIHByb3ZpZGVkIGJpdHJhdGUKCjIwMTAtMTAtMDUgMTE6MTc6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGFkZCBza2lwIHByb3BlcnR5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI1YTNkNjAzNjNkODM3YTEwZjA1MzNjMTQxZWM5M2QxMGI3NDIzMTIuCgkgIFJldmVydGluZyB0aGlzIGZvciBub3csIHNpbmNlIG5vIG9uZSByZWFsbHkgc2VlbXMgdG8gcmVtZW1iZXIgd2h5IHRoaXMKCSAgcHJvcGVydHkgZXhpc3RzIG9yIHdoYXQgaXQgY291bGQgcG9zc2libHkgYmUgZ29vZCBmb3IuIEl0IHNlZW1zIHRvIGhhdmUKCSAgYmVlbiBpbiB0aGUgb3JpZ2luYWwgbXAzcGFyc2Ugc2luY2UgdGhlIGJlZ2lubmluZyBvZiB0aW1lIGFuZCB3YXMgYmFjay0KCSAgcG9ydGVkIGZyb20gdGhlcmUuCgoyMDEwLTEwLTAzIDIzOjUwOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyOiBMZXQgdGhlIGZvcm1hdCBzdHJpbmcgYWdyZWUgd2l0aCB0aGUgcGFyYW1ldGVycyB0byBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMC0wOS0yMiAxNTo0NDo0MyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBkZWJ1ZyBvdXRwdXQKCSAgV2UgbG9zZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBidWZmZXIgYWZ0ZXIgZ3N0X3BhZF9wdXNoKCksIHNvIHRoZSBkZWJ1ZwoJICBwcmludCBzaG91bGQgaGFwcGVuIGJlZm9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjI3NgoKMjAxMC0wOS0yOSAxNjoxMjo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHN1cHBvcnQgcmV2ZXJzZSBwbGF5YmFjawoJICAuLi4gaW4gcHVsbCBtb2RlIG9yIHVwc3RyZWFtIGRyaXZlbi4KCjIwMTAtMDktMjcgMTI6MTY6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZG9uZSBUT0RPcyBhbmQgdXBkYXRlIGRvY3VtZW50YXRpb24KCjIwMTAtMDktMjUgMTQ6NDA6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgZGV0ZXJtaW5lZCBzZWVrYWJpbGl0eSBpbiBhbnN3ZXJpbmcgU0VFS0lORyBxdWVyeQoKMjAxMC0wOS0yNSAxNDozMjowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBza2lwIHByb3BlcnR5CgoyMDEwLTA5LTIyIDE1OjA3OjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXNlIF9zZXRfZnJhbWVfcHJvcHMgdG8gY29uZmlndXJlIGZyYW1lIGxlYWRfaW4gYW5kIGxlYWRfb3V0CgkgIC4uLiBwcm92aWRlZCBhIGNvcnJlc3BvbmRpbmcgZGVjb2RlciB3aXRoIHN1ZmZpY2llbnQgbGVhZGluZyBhbmQgZm9sbG93aW5nCgkgIGZyYW1lcyB0byBjYXJyeSBvdXQgZnVsbCBkZWNvZGluZyBmb3IgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuCgoyMDEwLTA5LTIyIDE0OjEzOjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXNlIF9zZXRfZHVyYXRpb24gdG8gY29uZmlndXJlIGR1cmF0aW9uIHVwZGF0ZSBpbnRlcnZhbAoJICAuLi4gYXMgaXQgbG9naWNhbGx5IGJlbG9uZ3MgdGhlcmUgYXMgb25lIG9yIHRoZSBvdGhlcjsgZWl0aGVyIHN1YmNsYXNzCgkgIGNhbiBwcm92aWRlIGEgZHVyYXRpb24sIG9yIGFuIGVzdGltYXRlIG11c3QgYmUgbWFkZSAocmVndWFybHkgdXBkYXRlZCkuCgoyMDEwLTA5LTIyIDEzOjU1OjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbG9jYWxpemUgdXNlIG9mIHByb3ZpZGVkIGZwcyBpbmZvcm1hdGlvbgoKMjAxMC0wOS0yMiAxMjoxMzoxMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlZWsgdGFibGUgYW5kIGFjY3VyYXRlIHNlZWsgc3VwcG9ydAoKMjAxMC0wOS0yMSAxMzo1NzoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BlciBhbmQgbW9yZSBleHRlbmRlZCBzZWdtZW50IGFuZCBzZWVrIGhhbmRsaW5nCgkgIFRoYXQgaXMsIGxvb3AgcGF1c2UgaGFuZGxpbmcsIHNlZ21lbnQgc2VlayBzdXBwb3J0LCBuZXdzZWdtZW50IGZvciBnYXBzLCBldGMKCjIwMTAtMDktMjEgMTA6NTc6MDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgaW5kZXggc3VwcG9ydAoKMjAxMC0wOS0yMSAwOTo1OTo1NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHN0YXRlIHJlc2V0CgoyMDEwLTA5LTIwIDE2OjM5OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBpbmRlZmluaXRlIHJlc3luY2luZwoKMjAxMC0wOS0yMCAxMzo1Nzo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNwZWNpZmljIEVPUyBoYW5kbGluZyBpZiBubyBvdXRwdXQgc28gZmFyCgoyMDEwLTA5LTIwIDEzOjMxOjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRqdXN0IF9zZXRfZnJhbWVfcHJvcCBkb2N1bWVudGF0aW9uIGFuZCBzZXQgZGVmYXVsdCBhcyBjbGFpbWVkCgoyMDEwLTA5LTIwIDEzOjMwOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGJpdHJhdGUgY29weS1hbmQtcGFzdGUgYW5kIHVwZGF0ZSBoZXVyaXN0aWMKCjIwMTAtMDktMTcgMTg6MzM6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3N0IGR1cmF0aW9uIG1lc3NhZ2UgaWYgYXZlcmFnZSBiaXRyYXRlcyBpcyB1cGRhdGVkCgoyMDEwLTA5LTE3IDE4OjI0OjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGlzX3NlZWthYmxlIHZtZXRob2QgYW5kIHVzZSBhIHNldF9zZWVrIGluc3RlYWQKCSAgU2Vla2FiaWxpdHksIGxpa2UgZHVyYXRpb24sIGV0YyBpcyB1bmxpa2VseSB0byBjaGFuZ2UgKGZyZXF1ZW50bHkpLCBhbmQKCSAgdGhlIGRlZmF1bHQgYXNzdW1wdGlvbiBjb3ZlcnMgbW9zdCBjYXNlcywgc28gbGV0IHN1YmNsYXNzIHNldCB3aGVuIG5lZWRlZC4KCSAgQXQgdGhlIHNhbWUgdGltZSwgYWxsb3cgc3ViY2xhc3MgdG8gaW5kaWNhdGUgaWYgaXQgaGFzIHNlZWstbWV0YWRhdGEgKHRhYmxlKQoJICBhdmFpbGFibGUsIGFuZCBwb3NzaWJseSBoYXZlIGl0IHByb3ZpZGUgYW4gYXZlcmFnZSBiaXRyYXRlLgoKMjAxMC0wOS0xNyAxNzoyMTo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBhbm90aGVyIGhvb2sgZm9yIHN1YmNsYXNzIHByaW9yIHRvIHB1c2hpbmcgYnVmZmVyCgkgIC4uLiBhbmQgYWxsb3cgc3ViY2xhc3MgdG8gcGVyZm9ybSBjdXN0b20gc2VnbWVudCBjbGlwcGluZywgb3IgdG8KCSAgZW1pdCB0YWdzIG9yIG1lc3NhZ2VzIGF0IHRoaXMgdGltZS4KCjIwMTAtMDktMTcgMTc6MTk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiAwIGNvbnZlcnRzIHRvIDAgYnkgZGVmYXVsdAoKMjAxMC0wOS0xNiAxODo1Njo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIGNvbnZlcnNpb24gdXNpbmcgaGVscGVyIGZ1bmN0aW9uIGFuZCBleHBvcnQgZGVmYXVsdCBjb252ZXJ0CgoyMDEwLTA5LTE2IDE4OjM1OjQ3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc3RyZWFtbGluZSBxdWVyeSBoYW5kbGluZwoKMjAxMC0wOS0xNiAxMTo1MToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNsZWFudXAgc3RydWN0IGFuZCByZW1vdmUgdW51c2VkIG1lbWJlcgoKMjAxMC0wOS0yMiAxNjowNzoyNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFsbG93IGNoYWluaW5nIG9mIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXJzCgkgIFRoaXMgYWxsb3dzIHRoZSBjaGlsZCBjbGFzcyB0byBjaGFpbiBpdHMgZXZlbnQgaGFuZGxlciB3aXRoCgkgIEdzdEJhc2VQYXJzZSwgc28gdGhhdCBzdWJjbGFzc2VzIGRvbid0IGhhdmUgdG8gZHVwbGljYXRlIGFsbCB0aGUgZGVmYXVsdAoJICBldmVudCBoYW5kbGluZyBsb2dpYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjI3NgoKMjAxMC0wOC0yNyAxODozNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgkgIEFsc28gZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIGZvciBVTkVYUEVDVEVEIGFuZCBkbyBpdAoJICBmb3IgTk9UX0xJTktFRC4KCjIwMTAtMDktMDYgMTQ6MTI6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBub24tVElNRSBzZWVrIGV2ZW50IGlzIHNpbXBseSBub3QgaGFuZGxlZAoKMjAxMC0wNi0xNSAxNTozNDowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrIGV2ZW50IHJlZiBoYW5kbGluZwoKMjAxMC0wNi0xNSAxNTozMzozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgYXJpdGhtZXRpYyBvdmVyZmxvd3MgaW4gcHVsbCBtb2RlIGJ1ZmZlciBjYWNoZSBoYW5kbGluZwoKMjAxMC0wNi0xNSAxNTozMjozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrIGhhbmRsaW5nCgkgIEFsbG93IGEgZmV3IG1vcmUgc2VlayBldmVudCB0eXBlIGNvbWJpbmF0aW9ucywgYW5kIHJlYWxseSB1c2UgdGhlIHJlc3VsdAoJICBvZiBnc3Rfc2VnbWVudF9zZXRfc2VlayB0byBwZXJmb3JtIHRoZSBzZWVrLiAgQWxzbyBhZGQgc29tZSBkZWJ1Zy4KCjIwMTAtMDMtMjYgMTg6NTY6NDkgKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBlbWl0IGJpdHJhdGUgdGFncyB0b28gZWFybHkKCSAgV2Ugd2FpdCB0byBwYXJzZSBhIG1pbmltdW0gbnVtYmVyIG9mIGZyYW1lcyAoMTAsIGFyYml0cmFyaWx5KSBiZWZvcmUKCSAgZW1pdGluZyBiaXRyYXRlIHRhZ3Mgc28gdGhhdCBvdXIgZWFybHkgZXN0aW1hdGVzIGFyZSBub3Qgd2lsZGx5CgkgIGluYWNjdXJhdGUgZm9yIHN0cmVhbXMgdGhhdCBzdGFydCB3aXRoIGEgc2lsZW5jZS4gSWYgdGhlIHN0cmVhbSBlbmRzCgkgIGJlZm9yZSB0aGF0LCB3ZSBqdXN0IGVtaXQgdGhlIHRhZ3MgYW55d2F5LgoJICBXaGlsZSBpdCBfd291bGRfIGJlIG5pY2VyIHRvIGJlIHNwZWNpZnkgdGhlIHRocmVzaG9sZCB0byBzdGFydCBwdXNoaW5nCgkgIHRoZSB0YWdzIGluIHRlcm1zIG9mIGR1cmF0aW9uLCB0aGlzIHdvdWxkIGludHJvZHVjZSBtb3JlIGNvbXBsZXhpdHkgdGhhbgoJICB0aGlzIG1lcml0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDk5MQoKMjAxMC0wMy0yNiAxODoyMDoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFNldCB0aGUgbGFzdCBzdG9wIHRvIHRoZSBidWZmZXIgc3RhcnR0aW1lIGlmIHRoZSBkdXJhdGlvbiBpcyBpbnZhbGlkCgkgIC4uLmluc3RlYWQgb2Ygbm90IHNldHRpbmcgaXQgYXQgYWxsLgoKMjAxMC0wMy0yNiAxODoxOTowMCArMDEwMCAgSm9zaHVhIE0uIERvZSA8am9zaEBqb3NoZG9lLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU2VuZCBORVdTRUdNRU5UIGV2ZW50IHdpdGggY29ycmVjdCBzdGFydCBhbmQgcG9zaXRpb24KCSAgSW5zdGVhZCBvZiB0YWtpbmcgdGhlIGxhc3Qgc3RvcCAod2hpY2ggY291bGQgYmUgYnVmZmVyIGVuZHRpbWUgaW5zdGVhZAoJICBvZiBzdGFydHRpbWUpIGFsd2F5cyB0YWtlIHRoZSBidWZmZXIgc3RhcnR0aW1lLgoJICBGaXhlcyBidWcgIzYxNDAxNi4KCjIwMTAtMDMtMjUgMTc6MDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiByZW1vdmUgdW51c2VkIEdzdEJhc2VQYXJzZUNsYXNzUHJpdmF0ZSBzdHJ1Y3R1cmUKCjIwMTAtMDMtMjUgMTE6MjI6NTggKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiBBZGQgYml0cmF0ZSBjYWxjdWxhdGlvbiB0byBiYXNlcGFyc2UKCSAgVGhpcyBtYWtlcyBiYXNlcGFyc2Uga2VlcCBhIHJ1bm5pbmcgYXZlcmFnZSBvZiB0aGUgc3RyZWFtIGJpdHJhdGUsIGFzCgkgIHdlbGwgYXMgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gYml0cmF0ZXMuIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIGEKCSAgdmZ1bmMgdG8gbWFrZSBzdXJlIHRoYXQgcGVyLWZyYW1lIG92ZXJoZWFkIGZyb20gdGhlIGNvbnRhaW5lciBpcyBub3QKCSAgYWNjb3VudGVkIGZvciBpbiB0aGUgYml0cmF0ZSBjYWxjdWxhdGlvbi4KCSAgV2UgdGFrZSBjYXJlIG5vdCB0byBvdmVycmlkZSB0aGUgYml0cmF0ZSwgbWluaW11bS1iaXRyYXRlLCBhbmQKCSAgbWF4aW11bS1iaXRyYXRlIHRhZ3MgaWYgdGhleSBoYXZlIGJlZW4gcG9zdGVkIHVwc3RyZWFtLiBXZSBhbHNvCgkgIHJhdGUtbGltaXQgdGhlIGVtaXNzaW9uIG9mIGJpdHJhdGUgc28gdGhhdCBpdCBpcyBvbmx5IHRyaWdnZXJlZCBieSBhCgkgIGNoYW5nZSBvZiA+MTAga2Jwcy4KCjIwMTAtMDEtMTQgMTE6NTA6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiByZW5hbWUgYmFzZXBhcnNlIEdUeXBlIG5hbWUgdG8gYXZvaWQgcG9zc2libGUgY29uZmxpY3RzCgoyMDEwLTAxLTA1IDE1OjA1OjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogZG9jdW1lbnRhdGlvbiBmaXhlcwoKMjAwOS0xMi0yMSAxODoxODozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkanVzdCBzZWVrIGhhbmRsaW5nIGFuZCBuZXdzZWdtZW50IHNlbmRpbmcKCSAgUGVyZm9ybSBzYW5pdHkgY2hlY2sgb24gdHlwZSBvZiBzZWVrLCBhbmQgb25seSBwZXJmb3JtIG9uZSB0aGF0IGlzCgkgIGFwcHJvcHJpYXRlbHkgc3VwcG9ydGVkLiAgQWRqdXN0IGRvd25zdHJlYW0gbmV3c2VnbWVudCBldmVudAoJICB0byBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRoYXQgaXMgc2VudCBkb3duc3RyZWFtLgoKMjAwOS0xMi0yMSAxMTo1OTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHJlZmFjdG9yIGNsZWFudXAKCSAgQWxzbyBhZGQgc29tZSBkZWJ1ZyBsb2dnaW5nLgoKMjAwOS0xMi0xOCAyMTowMjo0MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltcGxlbWVudCBsZWZ0b3ZlciBkcmFpbmluZyBpbiBwdWxsIG1vZGUKCjIwMDktMTItMTYgMTg6Mzg6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIGRlZmF1bHQgY29udmVyc2lvbiB1c2luZyBicHMgaWYgbm8gZnBzIGF2YWlsYWJsZQoJICBBbHNvIHN0b3JlIGVzdGltYXRlZCBkdXJhdGlvbiBhcyBzdWNoLCByYXRoZXIgdGhhbiBwcmV0ZW5kaW5nIG90aGVyd2lzZQoJICAoZS5nLiBzZXQgYnkgc3ViY2xhc3MpLgoKMjAwOS0xMi0xOCAxMzozMDoyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNoZWNrIGZvciByZW1haW5pbmcgZGF0YSB3aGVuIGRyYWluaW5nIGluIHB1c2ggbW9kZQoKMjAwOS0xMi0xOCAxMzozMDowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBwdWxsIG1vZGUgY2FjaGUgc2l6ZSBjb21wYXJpc29uCgoyMDA5LTEyLTExIDEwOjI1OjE2IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2U6IGZpeCBhIGZvcm1hdCBzdHJpbmcgYXMgcmVwb3J0ZWQgb24gaXJjLgoKMjAwOS0xMC0yOSAxNToxODozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGN1c3RvbSBidWZmZXJmbGFnIGluZGljYXRlcyBub3QgdG8gY291bnQgZnJhbWUgaW4gc3RhdHMKCjIwMDktMTEtMjcgMTc6Mjc6MzIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiByZWZlcmVuY2UgR3N0QmFzZVBhcnNlIG5vdyBsaXZlcyBoZXJlCgoyMDA5LTExLTI4IDE4OjEzOjMxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IHJlbmFtZSAnYWFjcGFyc2UnIHBsdWdpbiB0byBnZW5lcmljICdhdWRpb3BhcnNlcnMnIHBsdWdpbgoKMjAwOS0xMC0yOSAxNjowNTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgcGFzc3Rocm91Z2ggbW9kZSB0byBkZWZhdWx0IChkaXNhYmxlZCkgb24gYWN0aXZhdGlvbgoKMjAwOS0xMC0yOSAxNToxNjo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0YWJsZQoKMjAwOS0xMC0yOCAxNDowNjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBmaXgvZW5oYW5jZSBESVNDT05UIG1hcmtpbmcKCSAgSW4gcGFydGljdWxhciwgY29uc2lkZXIgRElTQ09OVCA9PSAhc3luYywgYW5kIGFsbG93IHN1YmNsYXNzIHRvIHF1ZXJ5CgkgIHN5bmMgc3RhdGUsIGFzIGl0IG1heSB3YW50IHRvIHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3MgZGVwZW5kaW5nCgkgIG9uIHdoZXRoZXIgc3luYyB3YXMgYWNoaWV2ZWQgZWFybGllciBvbi4KCSAgQWxzbyBhcnJhbmdlIGZvciBzdWJjbGFzcyB0byBxdWVyeSB3aGV0aGVyIGxlZnRvdmVyIGRhdGEgaXMgYmVpbmcgZHJhaW5lZC4KCjIwMDktMTEtMjMgMTU6NDg6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHRpbWVzdGFtcCBoYW5kbGluZywgYW5kIGRlZmF1bHQgY29udmVyc2lvbgoJICBJbiBwYXJ0aWN1bGFyLCAob3B0aW9uYWxseSkgcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBhIG5vdGlvbiBvZiBmcmFtZXMgcGVyIHNlY29uZAoJICAoYW5kIHRoZXJlZm9yZSBhbHNvIGZyYW1lIGR1cmF0aW9uKSBhbmQgaGF2ZSBpdCB0cmFjayBmcmFtZSBhbmQgYnl0ZSBjb3VudHMuCgkgIFRoaXMgd2F5LCBzdWJjbGFzcyBjYW4gcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBmcHMgYW5kIGhhdmUgaXQgcHJvdmlkZSBkZWZhdWx0CgkgIGJ1ZmZlciB0aW1lIG1ldGFkYXRhIGFuZCBjb252ZXJzaW9ucywgdGhvdWdoIHN1YmNsYXNzIGNhbiBzdGlsbCBpbnN0YWxsCgkgIGNhbGxiYWNrcyB0byBoYW5kbGUgc3VjaCBpdHNlbGYuCgoyMDA5LTEwLTI4IDEyOjAyOjAzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb2N1bWVudGF0aW9uIGZpeGVzCgoyMDA5LTEwLTI4IDEyOjAwOjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2VfZml4ZWRfY2FwcyBmb3Igc3JjIHBhZAoJICBBZnRlciBhbGwsIHN0cmVhbSBpcyBhcy1pcywgYW5kIHRoZXJlIGlzIGxpdHRsZSBtb2xkaW5nIHRvIGRvd25zdHJlYW0ncwoJICB0YXN0ZSB0aGF0IGNhbiBiZSBkb25lLiAgSWYgc3ViY2xhc3MgY2FuIGFuZCB3YW50cyB0byBkbyBzbywgaXQgY2FuCgkgIHN0aWxsIG92ZXJyaWRlIGFzIHN1Y2guCgoyMDA5LTExLTIwIDE3OjMyOjEzICswMTAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AZmx1ZW5kby5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBGaXggY29tcGlsYXRpb24gd2FybmluZ3MKCjIwMDktMTAtMTEgMTE6MjI6MTEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYWFjcGFyc2U6IGZpeCB3YXJuaW5ncyBpbiBtYWNvc3ggc25vdyBsZW9wYXJkCgoyMDA5LTA5LTI1IDE3OjAyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBhYWNwYXJzZTogZm9yZWdvIChib2d1cykgcGFyc2luZyBvZiBhbHJlYWR5IHBhcnNlZCAocmF3KSBpbnB1dAoKMjAwOS0wOC0wNyAxMzowNzoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBpbmZpbml0ZSBsb29wIHdoZW4gZHJhaW5pbmcKCjIwMDktMDgtMDcgMTM6MDY6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAwOS0wNy0xNCAxNDowODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYWFjcGFyc2U6IEFkZCBmdW5jdGlvbiBmb3IgdGhlIGJhc2VwYXJzZSBzdWJjbGFzcyB0byBwdXNoIGJ1ZmZlcnMgZG93bnN0cmVhbQoJICBBbHNvIGhhbmRsZSB0aGUgY2FzZSBncmFjZWZ1bGx5IHdoZXJlIHRoZSBzdWJjbGFzcyBkZWNpZGVzIHRvIGRyb3AKCSAgdGhlIGZpcnN0IGJ1ZmZlcnMgYW5kIGhhcyBubyBjYXBzIHNldCB5ZXQuIEl0J3Mgc3RpbGwgcmVxdWlyZWQgdG8KCSAgaGF2ZSB2YWxpZCBjYXBzIHNldCB3aGVuIHRoZSBmaXJzdCBidWZmZXIgc2hvdWxkIGJlIHBhc3NlZCBkb3duc3RyZWFtLgoKMjAwOS0wNy0xNCAxNDowNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNlZWsgZXZlbnQgbGVha2luZwoKMjAwOS0wNi0wMSAxMzo1NjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGFnYXRlIHJldHVybiB2YWx1ZSBvZiBHc3RCYXNlUGFyc2U6OnNldF9zaW5rX2NhcHMoKQoJICBnc3RfYmFzZV9wYXJzZV9zaW5rX3NldGNhcHMoKSBwcmVzdW1hYmx5IHNob3VsZCBmYWlsIGlmIHRoZSBzdWJjbGFzcwoJICByZXR1cm5zIEZBTFNFIGZyb20gaXRzIDo6c2V0X3NpbmtfY2FwcygpIGZ1bmN0aW9uLgoKMjAwOS0wNi0wMSAxMzo0NzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdHJ5IHRvIEdTVF9MT0cgYW4gYWxyZWFkeS1mcmVlZCBjYXBzIHN0cmluZwoJICBUaGUgcHJvcGVyIHdheSB0byBsb2cgY2FwcyBpcyB2aWEgR1NUX1BUUl9GT1JNQVQgYW55d2F5LgoKMjAwOS0wNS0yNiAxOTo0Mzo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGRlYnVnIGNhdGVnb3J5CgoyMDA5LTA0LTI3IDIyOjM5OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggKHJlZ3Jlc3Npb24gaW4pIG5ld3NlZ21lbnQgaGFuZGxpbmcKCSAgKGFhY3BhcnNlLCBhbXJwYXJzZSwgZmxhY3BhcnNlKS4gIEZpeGVzICM1ODAxMzMuCgoyMDA5LTA0LTA3IDA0OjUzOjAyICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzbGlnaHRseSBicm9rZW4gYnVmZmVyLWluLXNlZ21lbnQgY2hlY2sgKGFhY3BhcnNlLCBhbXJwYXJzZSwgZmxhY3BhcnNlKQoKMjAwOS0wNC0wNSAwMzo1MDoxOSArMDMwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggcHVzaCBtb2RlIHNlZWtpbmcgKGFhY3BhcnNlLCBhbXJwYXJzZSkKCSAgU2VuZGluZyB0aGUgZmx1c2gtc3RhcnQgZXZlbnQgZm9yd2FyZCBiZWZvcmUgdGFraW5nIHRoZSBzdHJlYW0gbG9jayBhY3R1YWxseQoJICB3b3JrcywgaW4gY29udHJhc3QgdG8gZGVhZGxvY2tpbmcgaW4gZG93bnN0cmVhbSBwcmVyb2xsX3dhaXQgKGh1bmsgMSkuCgkgIEFmdGVyIHRoYXQgd2UgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBiZWluZyBzdHVjayBpbiBhIGJ1c3kgbG9vcC4gVGhpcyBpcyBmaXhlZAoJICBieSB1cGRhdGluZyB0aGUgbWluaW11bSBmcmFtZSBzaXplIGluc2lkZSB0aGUgc3luY2hyb25pemF0aW9uIGxvb3AgYmVjYXVzZSB0aGUKCSAgc3ViY2xhc3MgYXNrcyBmb3IgbW9yZSBkYXRhIGluIHRoaXMgd2F5IChodW5rIDIpLgoJICBGaW5hbGx5LCB0aGlzIGxlYWRzIHRvIGEgdmVyeSBwcm9iYWJsZSBjcmFzaCBiZWNhdXNlIHRoZSBzdWJjbGFzcyBjYW4gZmluZCBhCgkgIHZhbGlkIGZyYW1lIHdpdGggYSBzaXplIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBkYXRhIGluIHRoZQoJICBhZGFwdGVyLiBUaGlzIG1ha2VzIHRoZSBzdWJzZXF1ZW50IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyIGNhbGwgcmV0dXJuIE5VTEwsCgkgIHdoaWNoIGlzIG5vdCBleHBlY3RlZCAoaHVuayAzKS4KCjIwMDktMDMtMzEgMTY6MDc6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERlbGF5IG5ld3NlZ21lbnQgYXMgbG9uZyBhcyBwb3NzaWJsZS4KCSAgSWYgbmV3c2VnbWVudCBpcyBzZW50ICh0b28pIGVhcmx5LCBjYXBzIG1heSBub3QgeWV0IGJlIGZpeGVkL3NldCwKCSAgYW5kIGRvd25zdHJlYW0gbWF5IG5vdCBoYXZlIGJlZW4gbGlua2VkLgoKMjAwOS0wMi0yNyAxMToyNDozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVydCBsYXN0IGNoYW5nZSBhbmQgcHJvcGVybHkgZml4CgkgIEJhc2VwYXJzZSBpbnRlcm5hbHkgYnJlYWtzIHRoZSBzZW1hbnRpY3Mgb2YgYSBfY2hhaW4gZnVuY3Rpb24gYnkgY2FsbGluZyBpdCB3aXRoCgkgIGJ1ZmZlcj09TlVMTC4gVGhlIHJlc29uIEkgYmVsaXZlZCBpdCB3YXMgb2theSB0byByZW1vdmUgaXQgd2FzIHRoYXQgdGhlcmUgaXMKCSAgYWxzbyBhbiB1bmNoZWNrZWQgYWNjZXNzIHRvIGJ1ZmZlciBsYXRlciBpbiBfY2hhaW4uIEFjdHVhbGx5IHRoYXQgY29kZSBpcyB3cm9uZywKCSAgYXMgaXQgbW9zdCBwcm9iYWJseSB3YW50cyB0byBzZXQgZGlzY29udCBvbiB0aGUgb3V0Z29pbmcgYnVmZmVyLgoKMjAwOS0wMi0yNiAxMTowMjowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBjaGVja3MgZm9yIGJ1ZmZlcj09TlVMTAoJICBBY2NvcmRpZm4gdG8gZG9jcyBmb3IgR3N0UGFkQ2hhaW5GdW5jdGlvbiBidWZmZXIgY2Fubm90IGJlIE5VTEwuIElmIHdlIHdvdWxkCgkgIGxlYXZlIHRoZSBjaGVjaywgd2Ugd291bGQgYWxzbyBuZWVkIG1vcmUgc3VjaCBjaGVjayBiZWxvdy4KCjIwMDktMDEtMzAgMTg6MTg6MTAgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBGaXggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwYXJzZV9mcmFtZSBmdW5jdGlvbi4KCSAgRml4IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGRlZmF1bHQgcGFyc2VfZnJhbWUgZnVuY3Rpb24gaW4gYm90aAoJICBjb3BpZXMgb2YgR3N0QmFzZVBhcnNlCgoyMDA4LTExLTEzIDE0OjIxOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggYmFzZXBhcnNlIHR5cGUgbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgRml4IGJhc2VwYXJzZSB0eXBlIG5hbWUuCgoyMDA4LTExLTEzIDEyOjU5OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgdHdvIG5ldyBiYXNlcGFyc2UgYmFzZWQgcGFyc2VycyAoYWFjIGFuZCBhbXIpIGZyb20gQnVnICM1MTg4NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvYWFjcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmg6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgKiBnc3QvYW1ycGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FtcnBhcnNlL2dzdGFtcnBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGFtcnBhcnNlLmg6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgQWRkIHR3byBuZXcgYmFzZXBhcnNlIGJhc2VkIHBhcnNlcnMgKGFhYyBhbmQgYW1yKSBmcm9tIEJ1ZyAjNTE4ODU3LgoKMjAxMS0wMy0yMCAwMDo1NjowOCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogTWFrZSBzcmMgcXVlcnkgTVQtc2FmZQoJICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBlbGVtZW50IG1pZ2h0IGJlIGdvaW5nIGRvd24gd2hpbGUgdGhlIGV2ZW50IGFycml2ZXMKCjIwMTEtMDMtMjAgMDA6NTY6MDggKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHNyYyBxdWVyeSBNVC1zYWZlCgkgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGVsZW1lbnQgbWlnaHQgYmUgZ29pbmcgZG93biB3aGlsZSB0aGUgZXZlbnQgYXJyaXZlcwoKMjAxMS0wNC0wOCAxNDo1NjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBVbnJlZiBldmVudHMgaWYgdGhlIHBhcmVudCBlbGVtZW50IGRpc2FwcGVhcmVkCgoyMDExLTAzLTIxIDE2OjAxOjA1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBNYWtlIHVwc3RyZWFtIGV2ZW50cyBNVC1zYWZlCgoyMDExLTA0LTA4IDE0OjU1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogVW5yZWYgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBkaXNhcHBlYXJlZAoJICBBbmQgYWxzbyB1bnJlZiBldmVudHMgaWYgdGhlIGJhc2V0cmFuc2Zvcm0gc3ViY2xhc3MgaGFzIG5vCgkgIGV2ZW50IGhhbmRsZXIgYW5kIHRoZSBldmVudCBpcyBub3QgZm9yd2FyZGVkIGF0IGFsbC4KCjIwMTEtMDMtMjEgMTY6MDE6MDUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wMy0yOSAxMTo1NzowNiArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhc2VsbkBjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGdzdHF1ZXVlLCBnc3RxdWV1ZTI6IGNoZWNrIGlmIHBhcmVudCBvZiBwYWQgaXMgTlVMTCBpbiBfZ2V0Y2FwcwoJICBQYXJlbnQgb2YgdGhlIHBhZCAodGhlIHF1ZXVlKSBtYXkgYmUgc2V0IHRvIE5VTEwgd2hpbGUgdGhlcmUgaXMKCSAgYSBidWZmZXIgYWxsb2MgZ29pbmcgb24uCgoyMDExLTA0LTA4IDE0OjUwOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggZ2V0Y2FwcyBhbmQgZXZlbnQgZnVuY3Rpb24gZnJvbSBsYXN0IGNvbW1pdAoJICBSZXR1cm4gQU5ZIGNhcHMgaWYgdGhlIHBhcmVudCBkaXNhcHBlYXJlZCwgaS5lLiB0aGUgdGVtcGxhdGUgY2FwcwoJICBhbmQgZG9uJ3QgbGVhayBldmVudHMgaWYgdGhlIHBhcmVudCBkaXNhcHBlYXJlZC4KCjIwMTEtMDQtMDEgMDg6NDY6MTQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGFnYWluc3QgcGFkLXBhcmVudCBkaXNhcHBlYXJpbmcKCjIwMTAtMTItMTQgMTY6MDY6NDYgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW4uc2VsbmVzQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogcmVzeW5jIHRvIGF2b2lkIGluZmluaXRlIGxvb3AKCjIwMTEtMDQtMDggMDk6MjA6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wNC0wOCAwOToxNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogUmVtb3ZlZCB1bnVzZWQgR0NvbmQKCjIwMTEtMDQtMDggMDk6MDc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBhbm90aGVyIGNoZWNrIGZvciB0aGUgZmx1c2hpbmcgZmxhZyBhZnRlciB0YWtpbmcgdGhlIGxvY2sKCSAgVGhpcyBwcmV2ZW50cyBhbm90aGVyIHBvdGVudGlhbCBkZWFkbG9jayB3aGVuIGZsdXNoaW5nIHRoZSBwYWQKCSAgYXQgZXhhY3RseSB0aGUgcmlnaHQgdGltZS4KCjIwMTEtMDQtMDcgMTE6MjQ6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEltbWVkaWF0ZWx5IGRyb3AgbWVzc2FnZXMgYWZ0ZXIgY2FsbGluZyB0aGUgc3luYyBoYW5kbGVyIGlmIHRoaXMgaXMgYSBzeW5jaHJvbm91cyBidXMKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IHdhaXQgZm9yZXZlciBmb3IgdGhlIG1lc3NhZ2UgdG8gYmUgcG9wcGVkIGZyb20KCSAgdGhlIHF1ZXVlIGlmIGEgc3luYyBoYW5kbGVyIHJldHVybmVkIEdTVF9CVVNfQVNZTkMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDcwMDUKCjIwMTEtMDQtMDcgMTE6MTk6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVzZSBhIGNvbnN0cnVjdC1vbmx5IHByb3BlcnR5IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gY2hpbGQgYnVzZXMgYW5kIG5vcm1hbCBidXNlcwoJICBUaGlzIGFsbG93cyB0byBvbmx5IGNyZWF0ZSB0aGUgc29ja2V0cGFpciB3aGVuIGl0IGlzIHJlYWxseSByZXF1aXJlZCBpbnN0ZWFkCgkgIG9mIGFsd2F5cyBjcmVhdGluZyBpdCBhbmQgaW1tZWRpYXRlbHkgZGVzdHJveWluZyBpdCBhZ2FpbiBmb3IgY2hpbGQgYnVzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDcwMDUKCjIwMTEtMDQtMDcgMjA6NDc6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3IgcXVldWUyCgoyMDExLTA0LTA3IDIwOjQ1OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlciBsZWFrIG9uIGVvcyB3aGVuIHVzaW5nIHRoZSByaW5nIGJ1ZmZlcgoKMjAxMS0wMS0xMSAxNDoyNzozNSArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4ZXMgbWVtb3J5IGxlYWsgb24gb3V0X2ZsdXNoaW5nIGVycm9yIGluIGdzdF9xdWV1ZTJfY3JlYXRlX3JlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY5NzIKCjIwMTEtMDQtMDcgMTk6NDQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMTEtMDQtMDcgMTc6MzQ6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBtaW5vciBlbGVtZW50IGRlc2NyaXB0aW9uIGZpeAoKMjAxMS0wNC0wNyAxNjoxMzo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDcgMTY6MDI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgTk9fU0hBUkUgZmxhZyB0byBtZW1vcnkKCSAgQWRkIGEgTk9fU0hBUkUgZmxhZyB0byBtZW1vcnkgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQgbm90IGJlIHNoYXJlZAoJICBiZXR3ZWVuIGJ1ZmZlcnMuCgoyMDExLTA0LTA3IDE2OjA4OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBkb2NzOiByZW1vdmUgZmlsZSBhcyB3ZSBoYXZlIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dAoKMjAxMS0wNC0wNyAxMDo0ODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSGFuZGxlIHRhZyBhbmQgY3VzdG9tIGRvd25zdHJlYW0gZXZlbnRzIHRoZSBzYW1lCgkgIEVzcGVjaWFsbHkgZHJvcCB0YWcgZXZlbnRzIHdoZW4gZmx1c2hpbmcgdG8gbm90IHNlbmQgdGhlbSBvdmVyCgkgIGFuZCBvdmVyIGFnYWluLgoJICBTaG91bGQndmUgYmVlbiBpbiB0aGUgbGFzdCBjb21taXQgYWxyZWFkeSBidXQgSSBmb3Jnb3QgdG8gY2FsbAoJICBnaXQgcmViYXNlIC0tY29udGludWUuLi4KCjIwMTEtMDQtMDcgMTA6NDA6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJsYQoKMjAxMS0wNC0wNyAxMDoyOTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCBzeW5jcm9uaXplZCBjdXN0b20gZG93bnN0cmVhbS9ib3RoIGV2ZW50cyBkb3duc3RyZWFtIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQKCSAgSW5zdGVhZCBvZiBqdXN0IHNpbGVudGx5IGRyb3BwaW5nIHRoZW0uIFRoZSBzYW1lIHdhcyBkb25lIGZvciB0YWcgZXZlbnRzCgkgIGJlZm9yZSBhbHJlYWR5LgoJICBGaXhlcyBidWcgIzYzNTcxOC4KCjIwMTEtMDQtMDYgMTk6MTk6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZG9uJ3QgZm9sbG93IHRoZSBwYXJlbnQgaW4gdGhlIGZhbGxiYWNrIHNoYXJlCgoyMDExLTA0LTA2IDE4OjU3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBidWZmZXI6IG1ha2UgbWVtb3J5IHdyaXRhYmxlIGluIF9wZWVrCgkgIE1ha2UgdGhlIG1lbW9yeSB3cml0YWJsZSB3aGVuIHdlIGFyZSBhc2tlZCB0byBfcGVlayB3aXRoIE1BUF9XUklURS4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgbWluaW9iamVjdC4KCjIwMTEtMDQtMDYgMTY6Mzc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZGVidWcKCjIwMTEtMDQtMDYgMTQ6MjA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNiAxNDowNjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIHByaXZhdGUgQVBJIHRvIHNldCBhIEdzdEJ1cyBpbiBjaGlsZCBtb2RlCgkgIFRoaXMgaXMgdXNlZCBieSBHc3RCaW4gdG8gY3JlYXRlIGEgY2hpbGQgYnVzIHdpdGhvdXQKCSAgYSBzb2NrZXRwYWlyIGJlY2F1c2UgY2hpbGQgYnVzZXMgd2lsbCBhbHdheXMgd29yawoJICBzeW5jaHJvbm91cy4gT3RoZXJ3aXNlIHRvbyBtYW55IHNvY2tldHMgY291bGQgYmUKCSAgY3JlYXRlZCBhbmQgdGhlIGxpbWl0IG9mIGZpbGUgZGVzY3JpcHRvcnMgZm9yIHRoZQoJICBwcm9jZXNzIGNvdWxkIGJlIHJlYWNoZWQuCgkgIEZpeGVzIGJ1ZyAjNjQ2NjI0LgoKMjAxMS0wNC0wNiAxMzo1Njo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBPbmx5IGNyZWF0ZSB0aGUgc2lnbmFsbGluZyBzb2NrZXQgcGFpciB3aGVuIHJlcXVpcmVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDRiZjhmMTUyNGY2ZTMzNzRiM2YzYmM1NzMyMjMzNzcyM2QwNmI5MjguCgoyMDExLTA0LTA2IDEzOjU2OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IENoZWNrIGlmIHBlbmRpbmcgbWVzc2FnZXMgYXJlIGluIHRoZSBxdWV1ZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZDFjNDAwMTE0MzRjMWVmYWE2OTZkYzk4ZWY4NTVlZjljY2U5YjI4LgoKMjAxMS0wNC0wNiAxMTozODo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogbWFrZSB0ZXN0c19tYW55X2JpbnMgaW4gYmluIHVuaXQgdGVzdCBhIGJpdCBmYXN0ZXIKCSAgTm90IGRvaW5nIGV4cGVuc2l2ZSBjaGVja3Mgd2hlbiBsaW5raW5nIGVsZW1lbnRzIG1ha2VzIHRoaW5ncwoJICBtdWNoIGZhc3Rlci4KCjIwMTEtMDQtMDYgMTE6MzA6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IGFkZCBzb21lIHF1ZXVlcyB0byB0ZXN0X21hbnlfYmlucyB1bml0IHRlc3QKCSAgVG8gbGltaXQgdGhlIG51bWJlciBvZiBjYWxscyBpbiBhIHJvdyBwZXIgdGhyZWFkLgoKMjAxMS0wNC0wNiAxMjowMzoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQ2hlY2sgaWYgcGVuZGluZyBtZXNzYWdlcyBhcmUgaW4gdGhlIHF1ZXVlCgkgIFdlIGNhbid0IHJlbHkgY29tcGxldGVseSBvbiB0aGUgcG9sbCBmZCBiZWNhdXNlIHRoZSBmZCBtaWdodCBiZQoJICBjcmVhdGVkIGFmdGVyIG1lc3NhZ2VzIHdlcmUgcG9zdGVkIHRvIHRoZSBidXMuCgoyMDExLTA0LTA2IDExOjQ1OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogR3N0RGF0ZS9HRGF0ZSBoYXMgYSBhYmJyZXZpYXRpb24gbm93CgoyMDExLTA0LTAzIDE2OjExOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBhZGQgR3N0QmluIHVuaXQgdGVzdCB0aGF0IGNyZWF0ZXMgYSBsb3Qgb2YgYmlucwoJICBDdXJyZW50bHkgZmFpbHMgKGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzKSBiZWNhdXNlIHdlIGNyZWF0ZSBhCgkgIHNvY2tldCBwYWlyIGZvciBlYWNoIGJpbidzIGJ1cyBhbmQgZXhoYXVzdCB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZQoJICBmaWxlIGRlc2NyaXB0b3JzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NjI0CgoyMDExLTA0LTA1IDE2OjIyOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBPbmx5IGNyZWF0ZSB0aGUgc2lnbmFsbGluZyBzb2NrZXQgcGFpciB3aGVuIHJlcXVpcmVkCgkgIE90aGVyd2lzZSBhIG5ldyBvbmUgd291bGQgYmUgY3JlYXRlZCBmb3IgZXZlcnkgc2luZ2xlIGJ1cyBhbmQKCSAgdGhlIHByb2Nlc3MgY291bGQgZWFzaWx5IHJ1biBvdXQgb2YgZmlsZSBkZXNjcmlwdG9ycy4KCSAgRml4ZXMgYnVnICM2NDY2MjQuCgoyMDExLTA0LTA1IDE0OjM2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgZGF0ZSBhcyBhIHR5cGUgYWJicmV2aWF0aW9uIG9mIEdEYXRlCgkgIFNlZSBidWcgIzY0NjY5Ni4KCjIwMTEtMDQtMDQgMTU6NTY6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWNjYmUwOSB0byBjM2NhZmUxCgoyMDExLTA0LTA0IDExOjE3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNCAwMzozMzo0NiArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IHJldHJ5IHJlYWRpbmcgdGhlIGNvbnRyb2wgc29ja2V0IHRvIHJlbGVhc2UgcHJvcGVybHkgYWxsIHdha2V1cHMKCSAgaWYgc2V0LT5jb250cm9sX3BlbmRpbmcgaXMgc2V0IHRvIDAgYnV0IHdlIGRpZG4ndCBub3Qgc3VjY2VkIHJlYWRpbmcKCSAgdGhlIGNvbnRyb2wgc29ja2V0LCBmdXR1cmUgY2FsbHMgdG8gZ3N0X3BvbGxfd2FpdCgpIHdpbGwgYmUgYXdhaWtlbgoJICBieSB0aGUgY29udHJvbCBzb2NrZXQgd2hpY2ggd2lsbCBub3QgYmUgcmVsZWFzZWQgcHJvcGVybHkgYmVjYXVzZQoJICBzZXQtPmNvbnRyb2xfcGVuZGluZyBpcyBhbHJlYWR5IDAsIGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcC4KCjIwMTEtMDQtMDQgMTA6MTg6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERvbid0IGFsbG93IGludmFsaWQgR0RhdGVzIGluIGFsbCBzdHJ1Y3R1cmVzIGFuZCBkb24ndCBhbGxvdyBOVUxMIEdEYXRlcyBpbiB0YWdsaXN0cwoJICBTb21lIGNvZGUgKGUuZy4gZ3N0dm9yYmlzdGFnLmMpIGFzc3VtZXMgbm9uLU5VTEwgR0RhdGVzIGluIHRhZ2xpc3RzIGFuZAoJICBleHBsb2RlcyBvdGhlcndpc2UgYW5kIE5VTEwgb3IgaW52YWxpZCBHRGF0ZXMgZG9uJ3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheS4KCjIwMTEtMDMtMjUgMTU6NTY6MDcgKzAxMDAgIFRob21hcyBLcmlzdGVuc2VuIDx0aG9tYXMua3Jpc3RlbnNlbkBjaXNjby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBkb24ndCBjYWxsIFdTQVdhaXRGb3JNdWx0aXBsZUV2ZW50cyB3aXRoIG5vIGV2ZW50cwoJICBGaXhlcyBlcnJvciBjYXVnaHQgYnkgTWljcm9zb2Z0IEFwcGxpY2F0aW9uIFZlcmlmaWVyLgoKMjAxMS0wNC0wMyAxNjoxODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogYWRkIHBvaW50ZXIgdG8gcGFydC1zZWVraW5nLnR4dCBkZXNpZ24gZG9jcyB0byBldmVudCBzZWVrIGZsYWdzIGRvY3MKCjIwMTEtMDQtMDMgMTY6MTg6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgY2hlY2tzOiBpZ25vcmUgbmV3IGZ1bm5lbCB1bml0IHRlc3QgYmluYXJ5CgoyMDExLTA0LTAyIDE0OjUxOjE4ICswMTAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEF2b2lkIHVzaW5nICJ0eXBlIiBhcyBuYW1lIGZvciBhIHZhcmlhYmxlIGFuZCBhIG1hY3JvIGFyZ3VtZW50IGluIEdTVF9CT0lMRVJQTEFURQoJICBUaGlzIGNhdXNlZCAicmUtZGVjbGFyYXRpb24iIHByb2JsZW1zLgoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuYzogSW4gZnVuY3Rpb24g4oCYY2x1dHRlcl9nc3RfdmlkZW9fc2lua19pbml0X2ludGVyZmFjZXPigJk6CgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5jOjIzMToxOiB3YXJuaW5nOiBkZWNsYXJhdGlvbiBvZiDigJhDbHV0dGVyR3N0VmlkZW9TaW5r4oCZIHNoYWRvd3MgYSBnbG9iYWwgZGVjbGFyYXRpb24gWy1Xc2hhZG93XQoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuaDo2NDo0NDogd2FybmluZzogc2hhZG93ZWQgZGVjbGFyYXRpb24gaXMgaGVyZSBbLVdzaGFkb3ddCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY1MzEKCjIwMTEtMDQtMDEgMTM6NTY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogV2hlbiByZXF1ZXN0aW5nIGFuIGV4aXN0aW5nIHBhZCBwcmludCBhIGdfY3JpdGljYWwoKSBpbnN0ZWFkIG9mIHVzaW5nIGFuIGFzc2VydGlvbgoJICBTb21lIGFwcGxpY2F0aW9ucyBhcmUgcmVxdWVzdGluZyB0aGUgc2FtZSBwYWQgbmFtZSBtdWx0aXBsZSB0aW1lcwoJICBhbmQgdGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgYW5kIGRpZmZlcmVudCBmcm9tIGVsZW1lbnQgdG8gZWxlbWVudAoJICBidXQgd2UgZG9uJ3Qgd2FudCB0byBicmVhayBhcHBsaWNhdGlvbnMgdGhhdCB3b3JrIGp1c3QgZmluZS4KCSAgSW4gMC4xMSB0aGlzIGNoZWNrIHNob3VsZCBiZSBhbiBhc3NlcnRpb24gYWdhaW4sIGFsdGhvdWdoIGVsZW1lbnRzCgkgIGhhdmUgdG8gZG8gbWFudWFsIGNoZWNraW5nIGlmIHRoZSBwYWQgYWxyZWFkeSBleGlzdHMgYWdhaW4gYmVjYXVzZQoJICBpdCBjYW4ndCBiZSBkb25lIGluIGEgdGhyZWFkc2FmZSB3YXkgaGVyZS4KCjIwMTEtMDQtMDEgMTM6NTM6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogVXNlIGdpbnQ2NC9ndWludDY0IHN0cmluZyBwYXJzaW5nIGZ1bmN0aW9ucwoJICBBbmQgY2hlY2sgdGhhdCB0aGUgcmVxdWVzdGVkIHBhZCBuYW1lcyBhcmUgaW5zaWRlIHRoZSB2YWxpZAoJICBnaW50L2d1aW50IHJhbmdlLgoKMjAxMS0wNC0wMSAxMzo1MTozMSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc3RydG9bdV1sKCkgcmV0dXJucyBhIGdbdV1sb25nCgoyMDExLTA0LTAxIDEwOjQ3OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wMSAxMDo0NjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlIHdpdGggYnVmZmVybGlzdCBjaGFuZ2VzCgoyMDExLTAzLTMxIDE5OjI1OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIGRlc2lnbiBkb2NzOiBkb2N1bWVudCBleHBlY3RlZCBiZWhhdmlvdXIgZm9yIEFDQ1VSQVRFIGFuZCBLRVlfVU5JVCBzZWVrIGZsYWdzCgoyMDExLTAzLTMxIDE4OjM5OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IGRvbid0IGFkZCBOVUxMIGRhdGEKCjIwMTEtMDMtMzEgMTc6NTU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaAoKMjAxMS0wMy0zMSAxNzo1MTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IHNpbXBsaWZ5IGJ1ZmZlcmxpc3RzCgkgIFdlIG5vdyBoYXZlIG11bHRpcGxlIG1lbW9yeSBibG9ja3MgYXMgcGFydCBvZiB0aGUgYnVmZmVycyBhbmQgd2UgY2FuIHRoZXJlZm9yZQoJICByZWR1Y2UgdGhlIGJ1ZmZlcmxpc3QgdG8gYSBzaW1wbGUgYXJyYXkgb2YgYnVmZmVycy4KCjIwMTEtMDMtMzEgMTA6NTM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgZ3N0YWJpOiBBZGQgc29tZSBuZXcgc3RydWN0dXJlcyBmb3IgeDg2LTY0CgoyMDExLTAzLTMxIDEwOjQ2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgbGlic2FiaTogQWRkIGxvdHMgb2YgbmV3IHN0cnVjdHVyZXMgZm9yIHg4Ni02NAoKMjAxMS0wMy0zMSAxMDozMToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wMy0zMCAyMDowNToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogZml4IGZvciBBUEkgY2hhbmdlCgoyMDExLTAzLTMwIDE5OjU4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMS1mZG8KCSAgQ29uZmxpY3RzOgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgkgIGdzdC9nc3RlbGVtZW50LmMKCjIwMTEtMDMtMzAgMTk6MDE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTEtMDMtMzAgMTg6NDU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDExLTAzLTMwIDE2OjQ3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgQVBJIHR3ZWFrcwoJICBfdHJpbSAtPiBfcmVzaXplCgkgIF9jcmVhdGVfc3ViIC0+IGNvcHlfcmVnaW9uCgoyMDExLTAzLTMwIDE1OjI5OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxMS0wMy0zMCAxMzowNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZGVzaWduOiB1cGRhdGUgZG9jcwoKMjAxMS0wMy0zMCAxMDo0ODo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBNYWtlIGFzc2lnbm1lbnQgb2YgcXVldWUgSURzIGFuZCBwYWQgbmFtZXMgdGhyZWFkc2FmZQoJICBBbHNvIGFkZCBhIHRlc3QgZm9yIG5hbWluZyBwYWRzIGJ5IHRoZSBjYWxsZXIgYW5kIHJldHVybiBOVUxMCgkgIHdoZW4gcmVxdWVzdGluZyBhbiBhbHJlYWR5IGV4aXN0aW5nIHBhZC4KCjIwMTEtMDMtMjkgMjM6NTg6NDMgKzAyMDAgIEFuZHJlYXMgRnJpc2NoIDxmcmF4aW5hc0BvcGVuZHJlYW1ib3gub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFNldCB0aGUgc2luZ2xlIHF1ZXVlIElEIHRvIHRoZSBJRCBvZiB0aGUgcmVxdWVzdGVkIHBhZCBpZiBvbmUgd2FzIGdpdmVuIGJ5IHRoZSBjYWxsZXIKCjIwMTEtMDMtMjkgMTk6MTc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGZ1cnRoZXIgbWVtb3J5IHR3ZWFraW5nCgkgIEFsbG93IGZvciBhdXRvbWF0aWMgbWVyZ2luZyBvZiBtZW1vcnkgYmxvY2sgaW4gdGhlIF9tYXAgZnVuY3Rpb24gYW5kIGF1dG9tYXRpYwoJICBmcmVlaW5nIG9mIHRoZSB0ZW1wb3JhcnkgbWVtb3J5LgoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMuCgkgIEFkZCBwb3NzaWJpbGl0eSB0byBmb3JjZSB3cml0YWJsZSBzcGFubmVkIG1lbW9yeS4KCjIwMTEtMDMtMjkgMTc6MTc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wbGVtZW50IENPUFlfTUVSR0UKCjIwMTEtMDMtMjkgMTY6NTI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBjbGVhbiB1cCBfc3BhbiBhbmQgYWRkIG1vcmUgZ19yZXR1cm5faWYuLgoKMjAxMS0wMy0yOSAxNjoyMjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggc2FuaXR5IGNoZWNrcyBmb3IgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIHdpdGhvdXQgJQoKMjAxMS0wMy0yOSAxMzo1MToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG9wdGltaXplIG1lbW9yeSBoYW5kbGluZwoKMjAxMS0wMy0yOSAxMTo1Nzo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBZGQgc29tZSBtb3JlIHNhbml0eSBjaGVja3MgdG8gdGhlIHBhZCBuYW1lIGNoZWNraW5nIG9mIHJlcXVlc3QgcGFkcyBpbiBhbGwgY2FzZXMKCSAgRXNwZWNpYWxseSBjaGVjayBpZiBhIHBhZCB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4KCjIwMTEtMDMtMjkgMTE6NTI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2hlY2sgJXUgdG9vIHdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBwYWQgdGVtcGxhdGUgZm9yIGEgcmVxdWVzdCBwYWQKCjIwMTEtMDMtMjkgMTE6MzE6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBtb3ZlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgaW4gcHJpdmF0ZSBzdHJ1Y3QKCjIwMTEtMDMtMjggMjE6MDE6MTMgKzAyMDAgIEZyYXhpbmFzIDxhbmRyZWFzLmZyaXNjaEBtdWx0aW1lZGlhLWxhYnMuZGU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGFyYml0cmFyeSBzaW5rICsgc291cmNlIHBhZCBuYW1pbmcKCSAgVXNlIHRoZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciBmb3IgdGhlIHNpbmtwYWQgbmFtZQoJICBpZiBwb3NzaWJsZS4gTm90ZSB0aGF0IGFsbCBzYW5pdHkgY2hlY2tpbmcgZm9yIHRoaXMgbmFtZQoJICBpcyBhbHJlYWR5IGRvbmUgaW4gR3N0RWxlbWVudC4KCSAgRml4ZXMgQnVnICM2NDU5MzEKCjIwMTEtMDMtMjkgMTE6MTg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBBZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIGJlaGF2aW91ciBvZiBmdW5uZWwKCjIwMTEtMDMtMjkgMTE6MDg6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTZW5kIGEgbmV3c2VnbWVudCBldmVudCBhZnRlciBmbHVzaC1zdG9wCgoyMDExLTAzLTI5IDExOjA3OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU29tZSByYW5kb20gY2xlYW51cAoKMjAxMS0wMy0yOSAxMDo1NjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFVzZSBhIEdzdFBhZCBzdWJjbGFzcyBmb3IgdGhlIHNpbmtwYWRzIGluc3RlYWQgb2YgdXNpbmcgdGhlIHBhZCdzIGVsZW1lbnQgcHJpdmF0ZSBkYXRhCgoyMDExLTAzLTI5IDEwOjQyOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3RhdGljZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBJbnRlZ3JhdGUgaW50byB0aGUgYnVpbGQgc3lzdGVtIGFuZCByZW5hbWUgdGhlIHR5cGVzCgoyMDExLTAzLTI5IDEwOjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEltcG9ydCBmdW5uZWwgZWxlbWVudCBmcm9tIGZhcnNpZ2h0MgoKMjAxMS0wMy0yOSAxMTowNzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBidWZmZXIgdXBkYXRlcwoKMjAxMS0wMy0yOCAyMDoyMDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMy0yOCAyMDoxMToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEtZmRvCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYwoKMjAxMS0wMy0yOCAxOToxOTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVyOiBmaXggc3ViYnVmZmVycwoKMjAxMS0wMy0yOCAxNjo0MDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXBsZW1ldCB0cmltIGFuZCBzZXRfc2l6ZQoKMjAxMS0wMy0yOCAxNTo1MjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBmaXhlcwoKMjAxMS0wMy0yOCAxMDoyODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgbWV0aG9kcwoKMjAxMS0wMy0yNCAyMToyMTowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgY2xhc3MgaW5pdAoKMjAxMS0wMy0yNCAyMToxODo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGZpeCByZW1haW5pbmcgdW5pdCB0ZXN0cwoKMjAxMS0wMy0yNCAyMDowOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB1bml0IHRlc3QKCjIwMTEtMDMtMjQgMTM6MDE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIG1lbW9yeTogcmVtb3ZlIG1lbW9yeSBtZXRhZGF0YSBhZ2FpbgoKMjAxMS0wMy0yNCAxMTo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgbWVtb3J5OiBtb3JlIGZpeGVzCgkgIEF1dG9tYXRpY2FsbHkgbWFrZSB0aGUgbWVtb3J5IG9mIGEgYnVmZmVyIHdyaXRhYmxlIHdoZW4gdGhlIGJ1ZmZlciBpcyB3cml0YWJsZQoJICBhbmQgdGhlIG1lbW9yeSBpcyBhc2tlZCB0byBtYXBwZWQgV1JJVEUuCgkgIEFkZCBkb2NzCgoyMDExLTAzLTIzIDIwOjUyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiBpbXBsZW1lbnRpbmcgYnVmZmVyIG1lbW9yeQoKMjAxMS0wMy0yMiAyMDo1MTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gcG9ydGluZyB0aGUgdW5pdCB0ZXN0cwoKMjAxMS0wMy0yMSAxOToxNToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHRlc3RzOiBtYWtlIHNvbWUgdGVzdHMgY29tcGlsZQoKMjAxMS0wMy0yMSAxODoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBtZW1vcnk6IHBvcnQgY29kZSB0byBuZXcgYnVmZmVyIGRhdGEgQVBJCgoyMDExLTAzLTIxIDEzOjA3OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1lbW9yeTogbW9yZSBmaXhlcwoJICBGaXggc3BhbiBhbmQgaXNfc3BhbgoJICBJbXBsZW1lbnQgYnVmZmVyIG1lbW9yeQoKMjAxMS0wMy0yMSAwOTo1MTo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIFdJUCB1c2UgbWVtb3J5IGluIGJ1ZmZlcgoKMjAxMS0wMy0yMCAxMTo0MjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1vcmUgaW1wcm92ZW1lbnRzCgoyMDExLTAzLTE5IDEwOjQ1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbW9yZSBtZW1vcnkgaW1wcm92ZW1lbnRzCgoyMDExLTAzLTE4IDIxOjQ1OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1vcmUgbWVtb3J5IG9wZXJhdGlvbnMKCjIwMTEtMDMtMTggMTk6Mjg6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1lbW9yeSBpbXBsZW1lbnRhdGlvbgoKMjAxMS0wMy0xOCAxODozNTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgQVBJIGZvciBoYW5kbGluZyBtZW1vcnkgYmxvY2tzCgkgIEFkZHMgc29tZSBBUEkgdG8gaGFuZGxlIG1lbW9yeSBibG9ja3MuCgoyMDExLTAzLTA4IDE4OjE4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogZml4IGRvY3MKCjIwMTEtMDMtMjggMjE6MjE6MDAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmV0dXJuIEZBTFNFIGlmIHdlIGRvbid0IGhhbmRsZSBhbiBldmVudAoJICBiYXNlc3JjJ3MgZGVmYXVsdCBldmVudCBoYW5kbGVyIHJldHVybnMgVFJVRSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlCgkgIGV2ZW50IGlzIGhhbmRsZWQgb3Igbm90LiBUaGlzIGZpeGVzIHRoZSBoYW5kbGVyIHRvIGNvbmZvcm0gd2l0aCB0aGUKCSAgZXhwZWN0ZWQgYmVoYXZpb3VyICh3aGljaCBpcyB0byBvbmx5IHJldHVybiBUUlVFIHdoZW4gdGhlIGV2ZW50IGhhcwoJICBhY3R1YWxseSBiZW5uIGhhbmRsZWQpLiBnc3RfYmluX2RvX2xhdGVuY3lfZnVuYygpIGRlcGVuZGVkIG9uIHRoaXMKCSAgKGluY29ycmVjdCkgYmVoYXZpb3VyLCBhbmQgaXMgbm93IG1vZGlmaWVkIGFzIHdlbGwuCgkgIChSZW1haW5pbmcgMS1saW5lciBjaGFuZ2UgaW4gZ3N0YmFzZXNyYy5jIGlzIHRvIGtlZXAgZ3N0LWluZGVudCBoYXBweSkKCjIwMTEtMDMtMjUgMjI6MDg6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxOTNiNzE3IHRvIDFjY2JlMDkKCjIwMTEtMDMtMjUgMTQ6NTU6MzkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjc3ZTJiZiB0byAxOTNiNzE3CgoyMDExLTAzLTI1IDA5OjI3OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDg4MTRiNiB0byBiNzdlMmJmCgoyMDExLTAzLTI1IDA4OjU5OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmFhYTI4NiB0byBkODgxNGI2CgoyMDExLTAzLTI0IDE4OjQ4OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZhZWM2YjkgdG8gNmFhYTI4NgoKMjAxMS0wMy0yNCAxODoyNzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBkb2NzOiBmaXggc29tZSBndGstZG9jIHdhcm5pbmdzCgkgIERvY3VtZW50IHRoZSBxdWV1ZSBsZWFreSBlbnVtcy4KCjIwMTEtMDMtMjQgMTg6MjU6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IG1heCB2YWx1ZSBmb3IgdG8gdGhlIG1hdGNoaW5nIG9uZSBmb3IgdGhlIGRhdGF0eXBlCgkgIFRoZSBwcm9wZXJ0eSBpcyBndWludDY0LCBzbyB1c2UgR19NQVhVSU5UNjQgaW5zdGVhZCBvZiBHX01BWFVJTlQuCgoyMDExLTAzLTI0IDEzOjIyOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGNsZWFudXAgYW5kIHhyZWYgZml4ZXMKCSAgRGVhbCB3aXRoIHRoZSBoaW50cyBmcm9tIGd0ay1kb2MgYW5kIGZpeCB0aGUgeHJlZnMuIEFwcGx5IGEgd29yay1hcm91bmQgZm9yICgpCgkgIHByZWNlZGVuY2Ugb3ZlciBALiBNb3ZlICJNVCBTYWZlIiB0ZXh0IHRvIGRvYyBib2R5IGluIG1hbnkgcGxhY2VzLiBUcmltIGVvbAoJICB3aGl0ZXNwYWNlcy4KCjIwMTEtMDMtMjMgMTY6NDI6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHByaW50IGZsb3cgcmV0dXJuIGFzIGEgbmFtZSBpbiBkZWJ1ZyBsb2cKCjIwMTEtMDMtMjMgMTc6MTM6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkbyB4cmVmcyBmb3Igbm9uIGluc3RhbGxlZCBib29rcyB0b28KCSAgR2V0IHRoZSB4cmVmcyBmcm9tIHRoZSBidWlsZGRpciBmb3IgdGhlIGJvb2tzIGluIHRoZSBzYW1lIHBhY2thZ2VzLiBUaGlzIGZpeGVzCgkgIHRoZSBjcm9zcyByZWZlcmVuY2VzIGlmIG9uZSBkb2VzIG5vdCBoYXZlIHRoZSBkb2NzIGFscmVhZHkgaW5zdGFsbGVkLgoKMjAxMC0wNC0xOSAyMDozOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBLZWVwIGRvd25zdHJlYW0gY2FwcyBvcmRlciB3aGVuIGZpeGF0aW5nCgkgIFRoaXMgYWxsb3dzIHVzZSB0byB1c2UgdGhlIGZpcnN0IGludGVyc2VjdGluZyBmb3JtYXQgcHJlZmVyZWQgYnkgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMC0wNC0xOSAyMDo0MDo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXRhaW4gY2FwcyBvcmRlciB3aGVuIGdldHRpbmcgY2FwcwoJICBJZiB0aGUgZWxlbWVudCBnYXZlIHVzIGNhcHMgaW4gYSBzcGVjaWZpYyBvcmRlciwgbGV0J3MgcmV0YWluIHRoYXQKCSAgYnkgaW50ZXJzZWN0aW5nIGFnYWluc3QgdGhlIHRlbXBsYXRlIGJ1dCByZXRhaW5pbmcgdGhlIG9yZGVyIGdpdmVuCgkgIGJ5IHRoZSBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDExLTAyLTI1IDEwOjI1OjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBUZXN0cyBmb3IgdGhlIG5ldyBjYXBzIGludGVyc2VjdGlvbiBtb2RlCgkgIEFkZHMgdGVzdCBjYXNlcyBmb3IgdGhlIGNhcHMgJ2ZpcnN0JyBpbnRlcnNlY3QgbW9kZQoJICBBZGRzIGFub3RoZXIgdGVzdCBmb3IgdGhlICd6aWd6YWcnIG1vZGUKCSAgRml4ZXMgIzYxNzA0NQoKMjAxMS0wMi0yNSAwODo1MDoxMiAtMDMwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNhcHM6IG5ldyBBUEkgOiBnc3RfY2Fwc19pbnRlcnNlY3RfZnVsbAoJICBKdXN0IGxpa2UgZ3N0X2NhcHNfaW50ZXJzZWN0LCBidXQgYWRkcyBhIG5ldyBwYXJhbWV0ZXIgJ21vZGUnCgkgIHRoYXQgYWxsb3dzIHNlbGVjdGluZyB0aGUgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSB0byB1c2UuCgkgIEN1cnJlbnRseSB3ZSBoYXZlIEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX1pJR19aQUcgKGRlZmF1bHQpIGFuZAoJICBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9GSVJTVC4KCSAgQVBJOiBnc3RfY2Fwc19pbnRlcnNlY3RfZnVsbAoJICBBUEk6IEdzdENhcHNJbnRlcnNlY3RNb2RlCgkgIEFQSTogR1NUX0NBUFNfSU5URVJTRUNUX01PREVfWklHX1pBRwoJICBBUEk6IEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX0ZJUlNUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTEtMDMtMTIgMTc6MDE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICB0ZXN0czogYWRkIGxpYnNjcHAgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSBnKysgbGlrZXMgb3VyIGxpYnJhcnkgaGVhZGVycwoKMjAxMS0wMy0xMiAxNjo1ODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGVyZWFkZXIsIGJ5dGV3cml0ZXI6IGZpeCB1cCBpbmxpbmUgZnVuY3Rpb25zIHRvIG1ha2UgZysrIGhhcHB5CgkgIGdzdGJ5dGVyZWFkZXIuaDogSW4gZnVuY3Rpb24g4oCYZ3VpbnQ4KiBnc3RfYnl0ZV9yZWFkZXJfZHVwX2RhdGFfdW5jaGVja2VkKEdzdEJ5dGVSZWFkZXIqLCBndWludCnigJk6CgkgIGdzdGJ5dGVyZWFkZXIuaDoyNDk6NzU6IGVycm9yOiBpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSDigJh2b2lkKuKAmSB0byDigJhndWludDgq4oCZCgkgIGdzdGJ5dGV3cml0ZXIuaDogSW4gZnVuY3Rpb24g4oCYZ2Jvb2xlYW4gX2dzdF9ieXRlX3dyaXRlcl9lbnN1cmVfZnJlZV9zcGFjZV9pbmxpbmUoR3N0Qnl0ZVdyaXRlciosIGd1aW50KeKAmToKCSAgZ3N0Ynl0ZXdyaXRlci5oOjE5Njo3NTogZXJyb3I6IGludmFsaWQgY29udmVyc2lvbiBmcm9tIOKAmHZvaWQq4oCZIHRvIOKAmGd1aW50OCrigJkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTU5NQoKMjAxMS0wMy0yMiAxNjoyNjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnc3RlbGVtZW50OiBGaXggdHlwbyBpbiB0aGUgZG9jcwoJICBHU1RfRUxFTUVOVF9JTkZPIHdpbGwgcG9zdCBhIElORk8gbWVzc2FnZSwgbm90IGEgV0FSTklORwoKMjAxMS0wMy0xOCAwODoyMjoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogUmVtb3ZpbmcgdW51c2VkIGRlYnVnIGNhdGVnb3J5CgkgIHRhZ3NldHRlcidzIGRlYnVnIGNhdGVnb3J5IGhhZCBhIHR5cG8gYW5kIHdhcyB1bnVzZWQuIFJlbW92aW5nIGl0LgoKMjAxMS0wMy0xOCAxOTozNDo1NyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW46IHdpbmdvIHNpZ25lZCBjb21tZW50CgoyMDExLTAzLTIyIDExOjA0OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIG9iamVjdHMgd2hlbiBmbHVzaGluZyBhZnRlciBkZXF1ZXVlaW5nIGFuZCBiZWZvcmUgcHVzaGluZyB0aGUgb2JqZWN0CgoyMDExLTAzLTIxIDE3OjU0OjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBSZWFsbHkgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wMy0yMSAxNzo1MjoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEluY3JlbWVudCB1bmlxdWUgaXRlbSBjb3VudGVyIHdpdGggYXRvbWljIG9wZXJhdGlvbnMKCSAgQmVmb3JlIGl0IHdhcyBvbmx5IHByb3RlY3RlZCBieSB0aGUgc3RyZWFtIGxvY2sgYnV0IGV2ZXJ5IHBhZAoJICBoYXMgaXRzIG93biBzdHJlYW0gbG9jaywgbWFraW5nIHRoZSBwcm90ZWN0aW9uIHJhdGhlciB1c2VsZXNzLgoKMjAxMS0wMy0yMSAxNzoxNzoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVW5ibG9jayBhbGwgd2FpdGluZyBwYWRzIHdoZW4gc2h1dHRpbmcgZG93bgoKMjAxMS0wMy0yMSAxMjozOTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wMy0yMSAxNjoyODozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRXhpdCBsb29wIGZ1bmN0aW9uIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgRml4ZXMgcG9zc2libGUgZGVhZGxvY2tzIHdoZW4gZmx1c2hpbmcgYW4gdW5saW5rZWQgcGFkIHRoYXQgd2FpdHMKCSAgZm9yIG90aGVyIHBhZHMgdG8gYWR2YW5jZS4KCjIwMTEtMDMtMTkgMTc6MDY6MTIgLTA1MDAgIEphc29uIEQuIENsaW50b24gPG1lQGphc29uY2xpbnRvbi5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJ1aWxkOiBmaXggYnVpbGQgd2l0aCAtV2Vycm9yIHdpdGggR0NDIDQuNi4wCgkgIFRoaXMgdG91Y2hlcyB0aHJlZSBhcmVhcyBvZiBjb2RlLCByZW1vdmVzIHVudXNlZCB2YXJpYWJsZXMgYW5kIGRpc2NhcmRzCgkgIHJldHVybiB2YWx1ZXMgZnJvbSB0d28gZnVuY3Rpb25zIHdpdGggKHZvaWQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MjY3CgoyMDExLTAzLTE5IDEwOjM5OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogQWRkIHNpbmNlIG1hcmtlciB0byBHU1RfRVZFTlRfU0lOS19NRVNTQUdFCgoyMDExLTAzLTE5IDA4OjU1OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTdG9wIHdhaXRpbmcgZm9yIGEgcGFkIHN3aXRjaCB3aGVuIHRoZSBwYWQgaXMgZmx1c2hpbmcKCjIwMTEtMDMtMTkgMDg6NTA6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1vdmUgbG9ja2luZyBhbmQgc2lnbmFsbGluZyBtYWNyb3MgZnJvbSB0aGUgaGVhZGVyIHRvIHRoZSBzb3VyY2UgZmlsZQoKMjAxMS0wMy0xNyAyMzo0Mjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiBmaXggR1NUX1RBU0tfQlJPQURDQVNUCgkgIFN1cnByaXNpbmdseSBlbm91Z2gsIHlvdSBjYW4ndCAiYnJlYWRjYXN0IiBvbiBhIEdDb25kLgoJICBTcG90dGVkIGJ5IFJ1bmUgU8OmdHJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MDIyCgoyMDExLTAzLTE3IDE0OjIxOjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBIb2xkIHRoZSBzZWxlY3RvciBsb2NrIHdoaWxlIHJlYWRpbmcgcHJvcGVydGllcyBvZiB0aGUgYWN0aXZlIHBhZAoKMjAxMS0wMy0xNyAxNDoxMDo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTWFrZSBzdXJlIHRoYXQgRU9TIGlzIGFsd2F5cyBzZW50IGRvd25zdHJlYW0gZm9yIHRoZSBhY3RpdmUgcGFkCgkgIEl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWQgZ290IHRoZSBFT1MgZXZlbnQKCSAgYmVmb3JlIGl0IHdhcyBhY3RpdmF0ZWQgYW5kIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBwYWQgZ290IHRoZQoJICBFT1MgZXZlbnQgYWZ0ZXIgaXQgd2FzIGRlYWN0aXZhdGVkLiBJbiB0aGF0IGNhc2Ugd2UgaGF2ZSB0bwoJICBzZW5kIHRoZSBFT1MgZXZlbnQgZnJvbSBhbiBpbmFjdGl2ZSBwYWQgZG93bnN0cmVhbS4KCjIwMTEtMDMtMTYgMTg6MTk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFJldHVybiBHU1RfRkxPV19PSyB1bnRpbCB0aGUgc2VsZWN0ZWQgcGFkIHB1c2hlZCBzb21ldGhpbmcgZG93bnN0cmVhbQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBkdXJpbmcgc3dpdGNoZXMgYXQgbm8gcG9pbnQgaW4gdGltZSBhbGwgcGFkcwoJICBoYXZlIHJldHVybmVkIG5vdC1saW5rZWQsIHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBwbGF5aW5nIGFuIGF1ZGlvLW9ubHkKCSAgZmlsZSB3aXRoIHBsYXliaW4yIGFuZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgc3RyZWFtcyBmb3IgZXhhbXBsZS4KCSAgRml4ZXMgYnVnICM2NDQ5MzUuCgoyMDExLTAzLTE3IDEwOjUzOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBSZW1vdmUgZGVwcmVjYXRlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c2luayxzcmN9X2NhcHMoKQoKMjAxMS0wMy0xNyAxMDo1MDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlcmxpc3QuYwoKMjAxMS0wMy0xNiAxMjowMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9jdW1lbnQgdGhhdCBwYWQgYmxvY2tzIG9ubHkgbWFrZSBzZW5zZSBmb3Igc2luayBwYWRzIGluIHB1bGwgbW9kZSBhbmQgc3JjIHBhZHMgaW4gcHVzaCBtb2RlCgkgIFNlZSBidWcgIzY0NDkwNy4KCjIwMTEtMDMtMTYgMTE6NTM6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBUaGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkIG9mIHRoZSBwcm94eXBhZCBpcyB0aGUgZ2hvc3RwYWQKCSAgUHJldmlvdXNseSB3ZSB3ZXJlIHJldHVybmluZyB0aGUgcGVlcnBhZCwgd2hpY2ggaXMgdGhlIHRhcmdldAoJICBvZiB0aGUgZ2hvc3RwYWQuCgoyMDExLTAyLTI1IDE2OjIwOjQ5ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBVc2UgYSBHUXVldWUgaW5zdGVhZCBvZiBhIEdMaXN0CgkgIEFkZGluZyBhIGJ1ZmZlciB0byB0aGUgZW5kIG9mIGEgR3N0QnVmZmVyTGlzdCBpcyBzdXBwb3NlZCB0byBiZSBhIGZhc3QKCSAgb3BlcmF0aW9uLCBidXQgaXQgd2FzIG5vdCBzaW5jZSB0aGUgaXRlcmF0b3IgZG9lcyBub3QgYWR2YW5jZSBpdHMKCSAgbmV4dHBvaW50ZXIgd2hlbiBhZGRpbmcgYnVmZmVycyBhbmQgR0xpc3QgZG9lcyBub3QgaGF2ZSBhIHRhaWwgcG9pbnRlci4KCSAgVXNpbmcgYSBHUXVldWUgdG8gc3RvcmUgdGhlIGJ1ZmZlcnMgbWFrZXMgaXQgZWFzaWVyIHRvIGFkZCBidWZmZXJzIHRvCgkgIHRoZSBlbmQgb2YgdGhlIGxpc3QgYW5kIHRoaXMgb3BlcmF0aW9uIHdpbGwgbm93IGJlIG11Y2ggbW9yZSBlZmZpY2llbnQuCgkgIEFkZGluZyBhbiBlbnRpcmUgR0xpc3Qgb2YgYnVmZmVycyB1c2luZwoJICBnc3RfYnVmZmVyX2xpc3RfaXRlcmF0b3JfYWRkX2xpc3QoKSB3aWxsIGhvd2V2ZXIgaGF2ZSB0byBpdGVyYXRlIG92ZXIKCSAgdGhlIGxpc3QgYmVpbmcgYWRkZWQgdG8gYmUgYWJsZSB0byB1cGRhdGUgdGhlIHRhaWwgcG9pbnRlciBpbiB0aGUKCSAgR1F1ZXVlLgoKMjAxMS0wMy0xMCAxNzo0ODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBmaXggQUJJIGJyZWFrIHdoZW4gY29tcGlsaW5nIGdzdHJlYW1lciB3aXRoIC1ER1NUX0RJU0FCTEVfREVQUkVDQVRFRAoJICBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIHNob3VsZCBvbmx5IGFmZmVjdCB2aXNpYmlsaXR5IG9mIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzLAoJICBub3QgYWN0dWFsbHkgcmVtb3ZlIHN5bWJvbHMuIFNlZSBHaXREZXZlbG9wZXJHdWlkZWxpbmVzIGFuZCBEZXByZWNhdGluZ0FQSQoJICBwYWdlcyBpbiB3aWtpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMTQxCgoyMDExLTAzLTEwIDE2OjQ2OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZmlsZSBmb3IgQVBJIGFkZGl0aW9uCgoyMDExLTAzLTEwIDEwOjI1OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMy0wOSAxNjoxNTozMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBwd2c6IGZpeCBlbGVtZW50IG5hbWUgInZpZGVvZHJvcCIgdG8gInZpZGVvcmF0ZSIKCjIwMTEtMDMtMDggMTI6MTE6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0OiBhZGQgdGVzdHMgZm9yIG5ldyBlbGVtZW50X2ZhY3RvcnkgYXBpLgoKMjAxMC0wNi0yMyAyMjowMDowNCArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiByZXBsYWNlIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzaW5rLHNyY31fY2FwcwoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBjbGFyaWZ5IGhvdyB0aGUgY2FwcyBhcmUgY29tcGFyZWQgdG8gdGhlIHRlbXBsYXRlIGNhcHMgb2YKCSAgdGhlIGVsZW1lbnQgZmFjdG9yeS4gSW1wcm92ZSB0aGUgZG9jcyB0byBwb2ludCBvdXQgdGhlIGRpZmZlcmVuY2UuCgkgIERlcHJlY2F0ZTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3NyY3xzaW5rfV9jYXBzCgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzcmN8c2lua31fe2FueXxhbGx9X2NhcHBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIxNDEKCjIwMTEtMDMtMDcgMjM6MTM6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgYSB1bml0IHRlc3QgZm9yIGdzdF9jYXBzX25ld19zaW1wbGUKCSAgQWRkIGEgdGVzdCBmb3IgdGhlIGNyYXNoIGluIGJ1ZyAjNjQyMjcxLgoKMjAxMS0wMy0wOCAxODowNTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiByZW5hbWUgZHJhZnQgdG8gb2ZmaWNpYWwgZG9jCgoyMDExLTAzLTA4IDE2OjU4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBpbXBsZW1lbnQgdHJhbnNmb3JtIGZ1bmN0aW9uCgkgIFJlcGxhY2Ugc3ViYnVmZmVyIGFuZCBjb3B5IHZtZXRob2RzIGJ5IGEgbW9yZSBnZW5lcmljIHRyYW5zZm9ybSBmdW5jdGlvbiB0aGF0CgkgIGNhbiB0aGVuIGJlIHBhcmFtZXRyaXNlZCBieSB0cmFuc2Zvcm0gc3BlY2lmaWMgZGF0YS4gVGhpcyBzaG91bGQgYWxsb3cgdXMgdG8KCSAgaW1wbGVtZW50IG1ha2Utd3JpdGFibGUgYW5kIG1vcmUgZnV0dXJlIHRyYW5zZm9ybSBmdW5jdGlvbnMuCgoyMDExLTAzLTA4IDE3OjA2OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMy0wOCAxMTo1NToyOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3RzOiBhZGQgdGVzdCB0byBjcmVhdGUgYSBmYWN0b3J5CgoyMDExLTAzLTA4IDEwOjM2OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0czogc3RhcnQgYSBuZXcgdGVzdCBzdWl0ZSBmb3IgZWxlbWVudCBmYWN0b3JpZXMKCSAgTW92ZSBvbmUgdGVzdCBmcm9tIGdzdGVsZW1lbnQgc3VpdGUuCgoyMDExLTAzLTA4IDExOjM0OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGFkZCBtaXNzaW5nIDsgaW4gZXhhbXBsZSAoYW5kIHRyaW0gd2hpdGVzcGFjZSkKCjIwMTEtMDMtMDggMDk6NTg6NTUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpIGRvZXMgYmV0dGVyIGVycm9yIGNoZWNraW5nCgkgIE5vIG5lZWQgdG8gY2hlY2sgZm9yIG1lZGlhX3R5cGUhPU5VTEwgYXMgdGhlIGZ1bmN0aW9uIHdlIGNhbGwgdGhhdCBhY3R1YWwgY3JlYXRlCgkgIHRoZSBzdHJ1Y3R1cmUgZG9lcyBhIGZ1bGwgY2hlY2sgYW55d2F5LgoKMjAxMS0wMy0wOCAxMDowNjoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBjYXBzLHN0cnVjdHVyZTogdHJpbSB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDExLTAzLTA0IDA4OjI4OjI1ICsxMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGRvbid0IGNyZWF0ZSBicm9rZW4gY2FwcyBmb3IgaW52YWxpZCBtZWRpYSB0eXBlcwoJICBDaGVjayBpZiBzdHJ1Y3R1cmUgaGFzIGJlZW4gY3JlYXRlZCBiZWZvcmUgYXBwZW5kaW5nIGl0IHRvIHRoZSBjYXBzLiBGcmVlIHRoZQoJICBjYXBzIGluIHRoZSBjYXNlIG9mIGFuIGVycm9yIHRvIG5vdCBjb25jZWFsIGl0IGJlIHJldHVybmluZyBlbXB0eSBjYXBzLgoJICBGaXhlcyAjNjQyMjcxCgoyMDExLTAzLTA3IDE2OjIxOjQ3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IHVwZGF0ZSBoZWxsbyB3b3JsZCBleGFtcGxlCgkgIE91ciBoZWxsb3dvcmxkIGV4YW1wbGUgdGhhdHcgZSByZWZlcmVuY2UgZnJvbSB0aGUgbWFudWFsIGhhcyBiZWVuIGEgYml0CgkgIGNvbXBsaWNhdGVkIHRvIHNlcnZlIGEgZmlyc3QgY29udGFjdCB3aXRoIGdzdHJlYW1lci4gU2luY2Ugd2UgaGF2ZSBhbmQKCSAgcHJvbW90ZSBwbGF5YmluMiBhcyBhIHBsYXliYWNrIGFwaSB1c2UgaXQgaGVyZS4KCSAgQmFzZWQgb24gd29yayBmcm9tIE1hdGhpYXMgSGFzc2VsbWFubiA8bWF0aGlhcy5oYXNzZWxtYW5uQGdteC5kZT4KCSAgRml4ZXMgIzQyNDE0MwoKMjAxMS0wMy0wNCAxOTowMjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiB1cGRhdGUgbWV0YWRhdGEgZHJhZnQKCjIwMTEtMDMtMDQgMTg6MTE6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiByZW1vdmUgRklYTUUKCSAgTm93IHRoYXQgd2UgZG9uJ3Qgc3ViY2xhc3MgYnVmZmVycyBhbnltb3JlLCB0aGUgRklYTUUgYWJvdXQgbGltaXRlZAoJICBmdW5jdGlvbmFsaXR5IG9mIHRoZSBjb3B5IGZ1bmN0aW9uIGlzIGlycmVsZXZhbnQuCgoyMDExLTAzLTA0IDE3OjQzOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBmbGFnIHJlZ2lzdHJhdGlvbgoKMjAxMS0wMy0wNCAxNzoyNTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgcGFkOiBtb3JlIHByZXJvbGwgbG9jayB0byBiYXNlc2luawoJICBNb3ZlIHRoZSBwcmVyb2xsIGxvY2sgdG8gYmFzZXNpbmsgd2hlcmUgaXQgYmVsb25ncy4KCjIwMTEtMDMtMDQgMTY6MDU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZHJhZnQKCjIwMTEtMDMtMDQgMTI6MDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtb3JlIGRlYnVnIGluZm8KCjIwMTEtMDMtMDMgMTg6Mzg6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgZGVidWcKCjIwMTEtMDMtMDMgMTg6MjE6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTEtMDMtMDMgMTY6MzE6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBjYXBzIHRvIHRoZSBjb25maWcKCSAgQWRkIHRoZSBjYXBzIHRvIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgb2YgdGhlIHBvb2wuCgkgIEluaXRpYWxpemUgdGhlIHByaXZhdGUgZGF0YQoKMjAxMS0wMy0wMiAxMTo1Nzo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wMy0wMiAxMTo1NzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZWxlYXNlIGJ1ZmZlciB0byBwb29sIGluIGRpc3Bvc2UKCSAgVXNlIHRoZSBkaXNwb3NlIG1ldGhvZCB0byByZWxlYXNlIHRoZSBidWZmZXIgdG8gdGhlIHBvb2wgd2hlbiBpdCBpcyBjb25maWd1cmVkLgoKMjAxMS0wMi0yMiAxMjozNTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXI6IGFkZCBwb29sIHRvIGJ1ZmZlciBzdHJ1Y3R1cmUKCSAgS2VlcCBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlcnBvb2wuIFJlbGVhc2UgdGhlIGJ1ZmZlciB0byB0aGUgcG9vbCB3aGVuCgkgIGZpbmFsaXppbmcuIE1ha2Ugc3VyZSB0aGUgcG9vbCBzZXRzIGl0c2VsZiBhcyB0aGUgcG9vbCBtZW1iZXIgb2YgYnVmZmVycyB0aGF0IGl0CgkgIHNlbmRzIG91dC4KCjIwMTEtMDItMjIgMTI6MzU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIHBvb2wgZmxhZ3MgdHlwZQoKMjAxMS0wMi0yMiAxMTowNTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkb2NzCgoyMDExLTAyLTIxIDE4OjQzOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogUmVmYWN0b3Igc3RvcHBpbmcgb2YgdGhlIHBvb2wKCSAgTW92ZSBzb21lIG1ldGhvZHMgYXJvdW5kLgoJICBNYWtlIHN1cmUgd2UgY2hlY2sgZm9yIGNvbmZpZyBwYXJzaW5nIGVycm9ycy4KCSAgSW5jcmVtZW50IHRoZSBvdXRzdGFuZGluZyBidWZmZXJzIGJlZm9yZSBjYWxsaW5nIGFjcXVpcmUgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZQoJICB0aGF0IHNldF9hY3RpdmUoKSBkb2Vzbid0IGZyZWUgdGhlIHBvb2wgZnJvbSB1bmRlciB1cy4KCjIwMTEtMDItMjEgMTc6MzM6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBSZXdvcmsgYnVmZmVyIG1hbmFnZW1lbnQgYSBsaXR0bGUKCSAgQWRkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byBhbGxvdyBmb3IgYnVsayBhbGxvY2F0aW9uIG9mIGJ1ZmZlcnMuCgkgIEZyZWUgYnVmZmVycyBvbmx5IHdoZW4gYWxsIG91dHN0YW5kaW5nIGJ1ZmZlcnMgcmV0dXJuZWQuCgkgIE1ha2UgdGhpbmdzIG1vcmUgdGhyZWFkc2FmZSB3cnQgZmx1c2hpbmcgYW5kIHN0YXJ0aW5nL3N0b3BwaW5nIGJ5CgkgIGtlZXBpbmcgdHJhY2sgb2Ygc3RhcnQgYW5kIHN0b3AgbWV0aG9kIGNhbGxzLgoKMjAxMS0wMi0yMSAxMjoxODo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1lbW9yeSBtYW5hZ2VtZW50IGNsZWFudXBzCgkgIFVzZSBhIGxvY2sgdG8gcHJvdGVjdCBjb25jdXJyZWN0IGV4ZWN1dGlvbiBvZiBzZXRfY29uZmlnIGFuZCBzZXRfYWN0aXZlLgoJICBTdGFydCBmcmVlaW5nIHRoZSBidWZmZXJzIHdoZW4gZmx1c2hpbmcgYW5kIGFsbCBidWZmZXJzIGFyZSByZXR1cm5lZCB0byB0aGUKCSAgcG9vbC4KCSAgTWFrZSBhIGNvcHkgb2YgdGhlIGNvbmZpZyB0byBhdm9pZCBjcmFzaGluZyB3aXRoIGNvbmN1cnJlbnQgYWNjZXNzLgoKMjAxMS0wMi0xOCAxNjozNTo0NiArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWxzbyBhbGxvdyBOVUxMIHBhcmFtcyBpbiBfYWNxdWlyZQoKMjAxMS0wMi0xOCAxNjoxNTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1vcmUgdXBkYXRlcwoJICBLZWVwIHRyYWNrIGlmIHRoZSBidWZmZXIgaXMgY29uZmlndXJlZCBhbmQgYmxvY2sgYWN0aXZhdGlvbiB3aGVuIG5vdCBjb25maWd1cmVkCgkgIHlldC4KCSAgS2VlcCB0cmFjayBvZiBvdXRzdGFuZGluZyBidWZmZXJzIGFuZCBkaXNhbGxvdyBjb25maWd1cmF0aW9uIHdoZW4gbm90IGFsbAoJICBidWZmZXJzIGFyZSByZXR1cm5lZCB0byB0aGUgcG9vbC4gV2UgbmVlZCB0byBkbyB0aGlzIG9yIGVsc2Ugd2UgbWlnaHQgZW5kIHVwCgkgIHdpdGggd3JvbmcgYnVmZmVycyBpbiB0aGUgcG9vbC4KCSAgQWRkIHJldHVybiB2YWx1ZSB0byBzZXRfYWN0aXZlLgoJICBTbWFsbCBjbGVhbnVwcy4gRml4IGZpbmFsaXplLgoKMjAxMS0wMi0xOCAxMjo1MDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHJlbmFtZSAnZmx1c2hpbmcnIHRvICdhY3RpdmUnCgkgIFJlbmFtZSB0aGUgZmx1c2hpbmcgdmFyaWFibGUgYW5kIG1ldGhvZHMgdG8gYWN0aXZlIHRvIGJldHRlciBtYXRjaAoJICB0aGUgb3RoZXIgZ3N0cmVhbWVyIG5hbWUgY29udmVudGlvbnMKCjIwMTEtMDItMTcgMTg6Mzc6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBwcmVhbGxvYyB3aGVuIHVuc2V0IGZsdXNoaW5nCgkgIEFjY29yZGluZyB0byB0aGUgZGVzaWduIGRvYyB3ZSBuZWVkIHRvIHByZWFsbG9jIGJ1ZmZlcnMgd2hlbiB3ZSB1bnNldCB0aGUKCSAgZmx1c2hpbmcgc3RhdGUsIG5vdCBpbiBzZXRfY29uZmlnLgoJICBTZXQgdGhlIGZsdXNoaW5nIHN0YXRlIGJldHRlci4KCjIwMTEtMDItMTcgMTc6Mjk6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBxdWFya3MgZm9yIHN0cnVjdHVyZSBmaWVsZHMKCjIwMTEtMDItMTcgMTY6NDY6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogdXNlIEdzdFN0cnVjdHVyZSB0byBjb25maWd1cmUgdGhlIHBvb2wKCSAgVXNlIGEgR3N0U3RydWN0dXJlIHRvIHByb3ZpZGUgdGhlIHBvb2wgd2l0aCB0aGUgcmlnaHQgY29uZmlndXJhdGlvbi4gQWxzbwoJICBwcm92aWRlIHNvbWUgaGVscGVyIG1ldGhvZHMgdG8gY29uZmlndXJlIHN1Y2ggYSBzdHJ1Y3R1cmUuCgkgIGRvbid0IHBhc3MgdGhlIGNvbmZpZyBpbiBhbGxvY19idWZmZXIsIHBvb2wgaW1wbGVtZW50YXRpb24gd2lsbCBhbHJlYWR5IGhhdmUKCSAgcGFyc2VkIGl0IGR1cmluZyBzZXRfY29uZmlnLgoJICBVcGRhdGUgZGVmcwoKMjAxMS0wMi0xNyAxMjo1NTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBmaXggZGVmcwoKMjAxMC0xMS0wMiAxODo1NjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBhZGQgc2ltcGxlIGJ1ZmZlcnBvb2wgaGVscGVyIG9iamVjdAoKMjAxMS0wMy0wMiAxMTowODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cmVnaXN0cnkuaAoKMjAxMS0wMy0wMiAxMzo1NTozNiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IE1pbm9yIHVwZGF0ZSB0byBzc2gga2V5IGdlbmVyYXRpb24gY29tbWFuZHMKCSAgZmQubyByZXF1aXJlcyBSU0Ega2V5cywgYW5kIGluIGdlbmVyYWwsIHVzZXJzIHdvdWxkIHByb2JhYmx5IHdhbnQgdG8KCSAgbWFrZSBhIHBlci1zZXJ2ZXIga2V5IGZpbGUgcmF0aGVyIHRoYW4gb3ZlcndyaXRlIGlkX3JzYSwgaWRfcnNhLnB1Yi4KCjIwMTEtMDItMjggMTg6NDM6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGV4cG9ydCBwbHVnaW4gZGVzY3JpcHRpb24gbW9yZSBwbGF0Zm9ybSBpbmRlcGVuZGVudAoJICBGaXhlcyAjNjQyNTA0LgoKMjAxMS0wMi0yOCAxODozMjowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFkZTdmNmEgdG8gNmFlYzZiOQoKMjAxMS0wMi0yOCAxNTowMTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGRvY3M6IHR5cG8gZml4ZXMKCSAgY29udmluaWVuY2UgLT4gY29udmVuaWVuY2UKCjIwMTEtMDItMjggMTQ6NTY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHByaW50ICJwYWQtYWRkZWQiLCAicGFkLXJlbW92ZWQiIGFuZCAibm8tbW9yZS1wYWRzIiBzaWduYWxzIGZvciBlbGVtZW50cyB3aXRoIHNvbWV0aW1lcyBwYWRzCgkgIEl0J3Mgb2Z0ZW4gbm90IG9idmlvdXMgdG8gcGVvcGxlIHRoYXQgZWxlbWVudHMgbGlrZSBlLmcuIHVyaWRlY29kZWJpbgoJICAob3IgZGVtdXhlcnMpIGF1dG9tYXRpY2FsbHkgc3VwcG9ydCB0aGUgc3RhbmRhcmQgc2lnbmFscyBvZiB0aGUKCSAgR3N0RWxlbWVudCBjbGFzcywgc28gbGV0J3MgcHJpbnQgdGhlIHVzZWZ1bCBwYWQtcmVsYXRlZCBvbmVzIGZvcgoJICBlbGVtZW50cyB3aXRoIHNvbWV0aW1lcyBwYWRzLgoKMjAxMS0wMi0yOCAxNjoyNzowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZXMgYXMgc3VnZ2VzdGVkIG9uIGEgYmxvZwoJICBMaW5rIGZyb20gY29udmluaWVuY2UgYXBpIHRvIHRoZSB1bmRlcmx5aW5nIGFwaS4KCjIwMTEtMDItMjggMTA6MDU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgdGltaW5nIG1ldGFkYXRhCgoyMDExLTAyLTI4IDEwOjA1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogZml4IHdoaXRlc3BhY2UKCjIwMTEtMDItMjggMDk6Mzk6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogYWRkIG1lbW9yeSB1bml0IHRlc3QKCjIwMTEtMDItMjcgMjA6NTQ6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBzaW1wbGlmeSBhIGJpdAoKMjAxMS0wMi0yNyAyMDo0MjoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBhZGQgZGVmYXVsdCBtZW1vcnkgbWV0YWRhdGEKCSAgQWRkIGEgbWV0YWRhdGEgaW1wbGVtZW50YXRpb24gZm9yIG5vcm1hbGwgbWFsbG9jZWQgbWVtb3J5LgoKMjAxMS0wMi0yNyAxOTo0MDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogc2VwYXJhdGUgYWRkIGFuZCBnZXQgbWV0aG9kcwoJICBNYWtlIHNlcGFyYXRlIGFwaSBmb3IgZ2V0dGluZyBhbmQgYWRkaW5nIG1ldGFkYXRhLiBUaGlzIGFsbG93cyB1cyB0byBwYXNzIGV4dHJhCgkgIHBhcmFtZXRlcnMgdG8gdGhlIGluaXQgZnVuY3Rpb25zIHdoZW4gY3JlYXRpbmcgbWV0YWRhdGEsIHdoaWNoIGlzIG5lZWRlZCBmb3IKCSAgc3BlY2lmaWMgQVBJIGltcGxlbWVudGF0aW9ucy4KCSAgQWRkIGJlZ2lubmluZ3Mgb2YgbWVtb3J5IG1ldGFkYXRhLgoKMjAxMS0wMi0yNyAxMjoyMTozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogdXBkYXRlIGRvY3MgYW5kIGRlZnMKCjIwMTEtMDItMjYgMTg6MTQ6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgdXNlbGVzcyBtZXRob2QKCSAgUmVtb3ZlIHRoZSBtZXRob2QgdG8gcmV0cmlldmUgbWV0YWRhdGEgYnkgYXBpLiBPbmUgd2lsbCBhbHdheXMgdXNlIHRoZQoJICBHc3RNZXRhSW5mbyB0byBnZXQgbWV0YWRhdGEuCgoyMDExLTAyLTI1IDE2OjMxOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVtb3ZlIG93bmVyX3ByaXYgbm93IHRoYXQgd2UgaGF2ZSBtZXRhZGF0YQoJICBOb3cgdGhhdCB3ZSBoYXZlIG1ldGFkYXRhIHdlIGNhbiByZW1vdmUgdGhlIG93bmVyX3ByaXYgZmllbGQuCgoyMDExLTAyLTI1IDEzOjIzOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDExLTAyLTI1IDEzOjE1OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YWRhdGE6IFJlbmFtZSB0byBHc3RNZXRhCgkgIFJlbmFtZSB0byB0aGUgc2hvcnRlciBHc3RNZXRhCgkgIEFkZCBkb2NzCgkgIEFkZCBhcGkgdG8gZ2V0IG1ldGFkYXRhIGJ5IEFQSQoKMjAxMS0wMi0yNSAxMDozNzowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMC0xMS0xNSAxMTo0OToyNCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbCBhdCBiYXNlLWFydC5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IG1lbW9yeSBjb3JydXB0aW9uCgoyMDEwLTA0LTA3IDExOjM0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSAgYnVmZmVybWV0YTogZml4IGNvbXBpbGF0aW9uCgoyMDEwLTAyLTI2IDEzOjExOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmg6CgkgIHVwZGF0ZXMKCjIwMDktMTItMjcgMjI6MDM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJICBtZXRhOiBpbXByb3ZlIHRlc3QgYSBsaXR0bGUKCjIwMDktMTItMTcgMTI6MzQ6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybWV0YTogYWRkIGJlZ2lubmluZ3Mgb2YgYnVmZmVyIG1ldGFkYXRhCgkgIEFkZCBmaXJzdCBpbXBsZW1lbnRhdGlvbiBvZiBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhLiBXZSB1c2UgYSBzaW1wbGUgbGlua2VkCgkgIGxpbmtlZCBvZiBzbGljZSBhbGxvY2F0ZWQgbWV0YWRhdGEgY2h1bmtzLiBGdXR1cmUgaW1wbGVtZW50YXRpb25zIGNvdWxkIHVzZQoJICBzb21ldGhpbmcgbW9yZSBwZXJmb3JtYW50LgoJICBBZGQgZ2V0LCByZW1vdmUsIGl0ZXJhdGUgbWV0aG9kcyB0byBoYW5kbGUgdGhlIG1ldGFkYXRhLgoKMjAxMS0wMi0yNSAxMDoxOToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkZXNpZ246IGFkZCBhcGkgdGFnCgkgIFdlIHdhbnQgdG8gZmluZCBtZXRhZGF0YSBiYXNlZCBvbiB0aGUgQVBJIGl0IGltcGxlbWVudHMgYW5kIGJhc2VkIG9uIHRoZQoJICBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDItMjQgMTc6MTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IG1ha2Ugd2luMzIgYnVpbGRib3QgaGFwcHkKCSAgZ3N0dXJpLmM6ODU0OjE2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlICdhYnNfY2xlYW4nCgkgIGdzdHVyaS5jOjc4ODoxOiBlcnJvcjogJ2dzdF9maWxlX3V0aWxzX2Nhbm9uaWNhbGlzZV9wYXRoJyBkZWZpbmVkIGJ1dCBub3QgdXNlZAoKMjAxMS0wMi0yNCAxNTozMjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGVzcmMsIGZpbGVzaW5rOiBmaXggVVJJIGNyZWF0aW9uIHJlZ3Jlc3Npb24gZm9yIG5vbi1hYnNvbHV0ZSBsb2NhdGlvbnMKCSAgUGFzc2luZyBlLmcuIGxvY2F0aW9uPWZvbyB3b3VsZCBsZWFkIHRvIHdhcm5pbmdzIGJlY2F1c2UgZ19maWxlbmFtZV90b191cmkoKQoJICB3YW50cyBhbiBhYnNvbHV0ZSBmaWxlIHBhdGggYW5kIHJldHVybnMgTlVMTCBvdGhlcndpc2UuIFVzZSBicmFuZC1uZXcKCSAgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIGluc3RlYWQsIHdoaWNoIHdpbGwgdHJ5IGhhcmRlciB0byBjcmVhdGUgYSBwcm9wZXIKCSAgVVJJIGZvciB1cy4KCSAgQWxzbyBhZGQgdW5pdCB0ZXN0LgoKMjAxMS0wMi0yNCAxNToxODo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVyaTogYWRkIGdzdF9maWxlbmFtZV90b191cmkoKSB0aGF0IHRha2VzIHJlbGF0aXZlIGZpbGVuYW1lcwoJICBBZGQgZnVuY3Rpb24gdGhhdCAodW5saWtlIHRoZSBHTGliIGVxdWl2YWxlbnQpIGFsc28gYWNjZXB0cyBwYXRocyB0aGF0CgkgIGFyZW4ndCBhYnNvbHV0ZSBhbmQgd2lsbCBjbGVhbiB1cCByZWxhdGl2ZSBtYXJrZXJzIHN1Y2ggYXMgLi8gYW5kIC4uLwoJICBiZWZvcmUgZm9ybWluZyBhIFVSSS4KCSAgRml4ZXMgd2FybmluZ3Mgd2l0aCBlLmcuIGZpbGVzcmMgbG9jYXRpb249Zm9vICEgdHlwZWZpbmQgY2F1c2VkIGJ5IHRoZQoJICByZWNlbnQgc3dpdGNoIHRvIGdfZmlsZW5hbWVfdG9fdXJpKCksIGJ1dCBhbHNvIGFjdHVhbGx5IGNyZWF0ZXMgdmFsaWQKCSAgVVJJcyBmb3IgdGhlIGZpcnN0IHRpbWUuCgkgIFdpbmRvd3MgY29kZSBwYXRocyBjb3VsZCBuZWVkIHNvbWUgbW9yZSB3b3JrLCBlLmcuIHdlIGRvbid0IGNsZWFuIHVwCgkgIHRoZSByZWxhdGl2ZSBtYXJrZXJzIHRoZXJlIGZvciBub3cgKGJlY2F1c2UgcGF0aCBjb3VsZCBoYXZlIFwgYW5kIC8KCSAgYXMgc2VwYXJhdG9ycykuCgkgIEFQSTogZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpCgoyMDExLTAyLTI0IDE2OjIwOjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICB0ZXN0czogcmVmaXggdGhlIHRlc3RzIChtaXNzaW5nICNlbmRpZikKCjIwMTEtMDItMjQgMTY6MTE6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBNYWtlZmlsZS5hbTogYWRkIG5ldyBhYmkgaGVhZGVycyB0byBub2Rpc3RfSEVBREVSUwoKMjAxMS0wMi0yMSAxMToyNDo0NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCBpbmRleCBzdXBwb3J0CgkgIFdoZW4gb3B0aW9uICItaSIgaXMgZ2l2ZW4sIHNldCBhbiBpbmRleCBvYmplY3Qgb24gdGhlIHBpcGVsaW5lIGFuZCBjb21wdXRlCgkgIHN0YXRpc3RpY3MgZm9yIGFsbCBpbmRleCB3cml0ZXJzLiBQcmludCBhIHN1bWFyeSB3aGVuIHNodXR0aW5nIGRvd24gdGhlCgkgIHBpcGVsaW5lLgoKMjAxMS0wMi0yNCAxNToxMjoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJICB0ZXN0czogYWRkIGFiaSBjaGVjayBkYXRhIGZvciBBUk0gKGxpYnMpCgoyMDExLTAyLTI0IDE1OjAyOjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrIGRhdGEgZm9yIEFSTQoKMjAxMS0wMi0yNCAxMzo1NTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgb3duZXIgcHJpdmF0ZSBhcyBpbnRlcm1lZGlhdGUgc29sdXRpb24KCSAgQWRkIGFuIG93bmVyIHByaXZhdGUgZmllbGQgd2hlcmUgdGhlIG93bmVyIG9mIGEgYnVmZmVyIGNhbiBzdG9yZSBzb21lIGV4dHJhCgkgIGluZm9ybWF0aW9uLiBXZSBjYW4gdXNlIHRoaXMgdG8gaW1wbGVtZW50IG1vc3Qgb2YgdGhlIHN1YmNsYXNzaW5nIHRoYXQgaGFwcGVucwoJICBub3cuIExhdGVyIHRoaXMgd2lsbCBiZSByZW1vdmVkIGFuZCByZXBsYWNlZCBieSBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhLgoKMjAxMS0wMi0yNCAxMDoyODoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHJlbW92ZSBwb2lzb25pbmcKCjIwMTEtMDItMjMgMTY6NDg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgbWluaW9iamVjdDogY2xlYW51cHMKCSAgVXNlIHRoZSBzdG9yZWQgc2l6ZSBpbiB0aGUgbWluaW9iamVjdCB0byBmcmVlIHRoZSBtaW5pb2JqZWN0LgoJICBSZWZhY3RvciBzb21lIGluaXQgbWV0aG9kcy4KCjIwMTEtMDItMjMgMTU6NDM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZQoKMjAxMS0wMi0yMyAxMjo1NDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlCgoyMDExLTAyLTIzIDEyOjQ0OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2Fwczogd2FybiB3aGVuIG1ha2Vfd3JpdGFibGUgcmVzdWx0IGlzIGlnbm9yZWQKCjIwMTEtMDItMjMgMTI6MDg6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDItMjMgMTI6MDE6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZml4IHR5cGUgcmVnaXN0cmF0aW9uCgkgIFdlIG5lZWQgdG8gaGF2ZSB0aGUgdHlwZXMgb2YgdGhlIG1pbmlvYmplY3RzIGJlZm9yZSByZWdpc3RlcmluZyB0aGUKCSAgdHJhbmZvcm1zLgoKMjAxMS0wMi0yMyAxMjowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogaW1wcm92ZSBjYXBzIHN0cmluZyBtYW5hZ2VtZW50CgoyMDExLTAyLTIzIDEyOjAwOjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogY2xlYXIgZmxhZ3MgaW4gaW5pdAoKMjAxMS0wMi0yMyAxMjozMzo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IHRlbGwgdGhhdCBPUkNfQ09ERSBjYW4gY29udGFpbiBhIGxpc3Qgb2YgZmxhZ3MKCjIwMTEtMDItMjMgMTA6MzE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGZpeCBmbGFncwoKMjAxMS0wMi0yMiAxOTozMDo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBmaXggY29tcGlsYXRpb24gYWZ0ZXIgcmViYXNlCgoyMDEwLTExLTAyIDEzOjMxOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGltcHJvdmUgdHlwZSByZWdpc3RyYXRpb24KCjIwMTAtMTEtMDIgMTI6NTg6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgZml4IGNvbXBpbGF0aW9uCgoyMDA5LTEyLTA3IDIwOjMyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGZpeCBtYWNyb3MKCjIwMDktMTItMDUgMTU6MTg6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2V0IGJveGVkIHR5cGUgY29ycmVjdGx5CgoyMDA5LTEyLTA1IDE0OjE2OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIG1pbmlvYmplY3Q6IHNtYWxsIGZpeGVzCgkgIE1ha2UgZGF0YWZsb3cgaGFwcGVuLgoKMjAwOS0xMi0wNCAyMzo1MjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBtaW5pb2JqZWN0OiBtb3JlIGJveGVkIHR5cGUgZml4aW5nCgkgIE1vcmUgbWluaW9iamVjdCBmaXhpbmcsIGxlYWtzIGhvcnJpYmx5IHNvbWV3aGVyZS4uCgoyMDA5LTEyLTA0IDIyOjMyOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgbWluaW9iamVjdDogbWFrZSBxdWVyaWVzIGEgYm94ZWQgdHlwZQoJICBNb3JlIG1pbmlvbmplY3Qgc3R1ZmYuCgoyMDA5LTEyLTAzIDIwOjQ5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZXM6IG1ha2UgbWVzc2FnZSBhIHNpbXBsZSBib3hlZCB0eXBlCgoyMDA5LTEyLTAyIDIxOjIxOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IHdvcmsgb24gbWFraW5nIGNhcHMgYSBib3hlZCB0eXBlCgkgIE1vcmUgd29yayBvbiBtYWtpbmcgbWluaW9iamVjdCBhIHNpbXBsZSBhbGxvY2F0ZWQgc3RydWN0LgoKMjAwOS0xMS0yOSAwMDoyMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1pbmlvYmplY3Q6IG1ha2UgbWluaW9iamVjdCBhIGJveGVkIHR5cGUKCSAgRmlyc3QgYXR0ZW1wdCBhdCBtYWtpbmcgbWluaW9iamVjdCBhIHNpbXBsZSBib3hlZCB0eXBlLgoKMjAxMS0wMi0yMiAxOTowOTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgbGliczogY2xlYW51cHMgZm9yIDAuMTEKCSAgUmVtb3ZlIGRlcHJlY2F0ZWQgc3R1ZmYsIGZpeCBwYWRkaW5nLCByZWFycmFuZ2UgbWV0aG9kcy4KCjIwMTEtMDItMjIgMTY6MDQ6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIGNsZWFudXBzCgkgIEZpeCBwYWRkaW5nLCByZW1vdmUgZGVwcmVjYXRlZCBzeW1ib2xzLgoKMjAxMS0wMi0yMiAxNTowODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDItMjIgMTQ6MTE6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGdzdC9nc3RlbGVtZW50LmMKCSAgZ3N0L2dzdGVsZW1lbnQuaAoJICBnc3QvZ3N0cGFkLmMKCSAgZ3N0L2dzdHV0aWxzLmMKCSAgbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW0KCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWYKCjIwMTEtMDItMTQgMTg6MDU6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBiYXNldHJhbnNmb3JtOiBCZSBzbWFydGVyIHdpdGggcGFkIGFsbG9jcwoJICBBdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSBwYWQtYWxsb2NzIHdoZW4gb24gcGFzc3Rocm91Z2ggbW9kZS4KCSAgSWYgbXVsdGlwbGUgYmFzZXRyYW5zZm9ybSBlbGVtZW50cyBhcmUgb24gYSBwaXBlbGluZSwgdGhleQoJICB3b3VsZCBkbyBhIHBhZC1hbGxvYyBmb3IgZWFjaCByZWNlaXZlZCBidWZmZXIsIGVhY2ggZWxlbWVudAoJICB3b3VsZCBkbyB0aGlzLCBzbyB3ZSB3b3VsZCBoYXZlIGxvdHMgb2YgcGFkIGFsbG9jcyBvbiB0aGUKCSAgcGlwZWxpbmUgZm9yIGEgc2luZ2xlIGJ1ZmZlciBiZWluZyBwdXNoZWQgdGhyb3VnaCBpdC4KCSAgVGhpcyBwYXRjaCBhdHRlbXB0cyB0byByZWR1Y2UgdGhpcyBhbW91bnQgYnkgYXZvaWRpbmcKCSAgZG9pbmcgcGFkLWFsbG9jcyBpZiB0aGUgZWxlbWVudCBoYXMgYWxyZWFkeSBkb25lIGl0CgkgIGFmdGVyIHRoZSBsYXN0IHB1c2hlZCBidWZmZXIuIFNvIGl0IHdpbGwgb25seSBiZSBhbGxvd2VkCgkgIHRvIGRvIGEgbmV3IHBhZC1hbGxvYyBhZnRlciBpdCBoYXMgcHVzaGVkIGEgYnVmZmVyLCBzbyB3ZSBnZXQKCSAgMXgxIHBhZC1hbGxvYyBhbmQgYnVmZmVyIHJhdGlvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDIzNzMKCjIwMTEtMDItMjEgMTM6Mzk6MzggKzAxMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogZml4IHR5cG8gaW4gZ3N0X2luZGV4X25ldygpIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0Mjg2OQoKMjAxMS0wMi0yMSAxMjo0NDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBwcmludCBuZXcgTUVESUE0IGZsYWcgYXMgd2VsbAoKMjAxMS0wMS0wMyAxMTozNzowNSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0LCBidWZmZXI6IHN0ZWFsIG1pbmlvYmplY3QgZmxhZyBmb3IgdXNlIGFzIE1FRElBNCBidWZmZXIgZmxhZwoJICBUaGlzIHdhcyByZXF1aXJlZCB0byBhZGQgYSBuZXcgTUVESUE0IGJ1ZmZlciBmbGFnIGZvciBpbmRpY2F0aW5nCgkgIHByb2dyZXNzaXZlL21peGVkIHRlbGVjaW5lIHZpZGVvIGJ1ZmZlcnMuIFRoZXJlIGlzIG5vIHNwYWNlIGZvcgoJICBhZGRpdGlvbmFsIGZsYWdzIGluIEdzdEJ1ZmZlciwgc28gc3RlYWwgb25lIGZyb20gR3N0TWluaU9iamVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjY3MQoKMjAxMS0wMi0yMCAxNjoxMToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgU2luY2U6IG1hcmtlcnMgdG8gYXRvbWljIHF1ZXVlIGRvY3MKCjIwMTEtMDItMjEgMTE6NTU6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBDYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQiCgkgIFRoaXMgY29tbWl0IGNoYW5nZXMgdGhlIHJlcXVlc3QgcGFkIGJlaGF2aW91ciBmb3IgcGx1Z2lucyBhbmQgYXBwbGljYXRpb25zLgoJICBSZW9wZW5zIEJ1ZyAjNDAyNTYyCgkgIFRoZSBwcm9wZXIgZml4IGZvciB0aGF0IGJ1ZyBpcyB0byBrZWVwIHRyYWNrIG9mIGNyZWF0ZWQgcmVxdWVzdCBwYWRzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IGE1ZTQ0ZmZmZmFhNmQ3YThkN2FmOGRjYjc3ZTM3OTkwOTk2MjUzYTUuCgoyMDExLTAyLTIxIDEwOjAzOjE2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgaW5kZXg6IGFkZCBGSVhNRS0wLjExOiBjb21tZW50cwoKMjAxMS0wMi0xNSAxMDo1NzowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGRvY3M6IGltcHJvdmUgaW5kZXggZG9jcwoKMjAxMS0wMi0xOCAxNzowOToxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IHNwZWxsLWNoZWNrCgoyMDExLTAyLTE1IDE5OjE1OjE2IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHByaW50IGJ1ZmZlciBmbGFncwoKMjAxMC0xMi0wNCAxODo1Mzo1NSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQKCSAgRml4ZXMgIzYzNjAxMSBhbmQgIzQwMjU2Mi4KCjIwMTEtMDItMTcgMTQ6NTA6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogZml4IGNyZWF0aW9uIG9mIHdyaXRlciBpZCBmb3IgdW5wYXJlbnRlZCBwYWRzCgkgIEFsc28gZG8gc29tZSBjbGVhbnVwIGluIHRoZSBpbXBsLgoKMjAxMS0wMi0xNyAxMDozNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgKGRlKXNlcmlhbGlzYXRpb24gZnVuY3Rpb24gZm9yIHVjaGFyCgkgIC4uIHNpbmNlIHdlIHNhZGx5IGhhdmUgYSBwbHVnaW4gaW4gLWdvb2QgdGhhdCBoYXMgYSB1Y2hhciBwcm9wZXJ0eQoJICAoY21tbGVuYykKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjUyMgoKMjAxMS0wMi0xNiAxOTo1NDo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IGluY2x1ZGUgb3JkZXIgYXRvbWljcXVldWU6IGZpeCBpbmNsdWRlIG9yZGVyIyBQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nCgoyMDEwLTEwLTI4IDEzOjI3OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogbWFrZSB0aGUgYnVzIGFsbW9zdCBsb2NrZnJlZQoJICBVc2UgbmV3IEdzdFBvbGwgZnVuY3Rpb25hbGl0eSB0byB3YWtldXAgdGhlIG1haW5sb29wLgoJICBVc2UgYW4gYXRvbWljIHF1ZXVlIG9uIHRoZSB3cml0ZXIgc2lkZSB0byBwb3N0IHRoZSBtZXNzYWdlcy4KCSAgVGhlIHJlYWRlciBzaWRlIGl0IHByb3RlY3RlZCB3aXRoIHRoZSBsb2NrIHN0aWxsIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBtdWx0aXBsZQoJICBjb25jdXJyZW50IHJlYWRlcnMuCgoyMDExLTAyLTE2IDE3OjIxOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzIGZpbGUgZm9yIG5ldyBzeW1ib2xzCgoyMDExLTAyLTE2IDE3OjE0OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiB1c2UgY29ycmVjdCBhcnJheSBzaXplcwoKMjAxMS0wMi0xNiAxNjoyMTo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IGRvY3Mgc29tZSBtb3JlCgoyMDExLTAyLTE2IDE2OjE5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWNxdWV1ZTogYWRkIHJlZmNvdW50aW5nIGFuZCBkb2NzCgoyMDExLTAyLTE2IDEyOjQ4OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBtYWtlIHN1cmUgYSBtaW4gaW5pdGlhbF9zaXplIGlzIHVzZWQKCjIwMTAtMTAtMjggMTY6MDI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgYXRvbWljcXVldWU6IGFkZCBhbiBhdG9taWMgcXVldWUKCSAgQWRkIGFuIGF0b21pYyBxdWV1ZS4gVGhlIHF1ZXVlIGNhbiBiZSB1c2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBzaW11bHRhbmVvdXNseQoJICBhbmQgd2l0aG91dCB0YWtpbmcgYW55IGxvY2tzIG9yIGRvaW5nIGFueSBibG9ja2luZyBvcGVyYXRpb25zLiBUaGlzIG1ha2VzIGl0CgkgIGhpZ2hseSBzY2FsYWJsZSBmb3IgdGhpbmdzIGxpa2UgdGhlIGJ1cywgYnVmZmVycG9vbHMgYW5kIG9iamVjdCByZWN5Y2xpbmcuCgoyMDExLTAyLTE2IDE3OjE0OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBjaGVjazogZml4IGEgbGVhayBpbiB0aGUgYnVzIHVuaXQgdGVzdAoKMjAxMS0wMi0xNiAxNzoyODoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZGVpbml0OiBhZGQgcHJvZ3Jlc3MgdHlwZSBjbGFzcyB1bnJlZgoKMjAxMS0wMi0xNiAxNToxMzowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB0ZWxsIGFsc28gd2hhdCBwYWQgYSBwYWQgaXMgYWxyZWFkeSBsaW5rZWQgYWdhaW5zdAoKMjAxMS0wMi0xNSAyMjo1NjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGV7c2luayxzcmN9OiBDaGVjayBpZiBub24tVVJJIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQsIGJ1dCBvbmx5IGZvciB0aGUgVVJJIG5vdCB0aGUgbG9jYXRpb24gcHJvcGVydHkKCjIwMTEtMDItMTUgMjI6NDk6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxle3NyYyxzaW5rfTogRml4IHVuaXQgdGVzdHMKCSAgZmlsZXNpbmsgYW5kIGZpbGVzcmMgc2hvdWxkIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIFVSSSBhcyBwYXNzZWQKCSAgYW5kIG11c3Qgbm90IGVzY2FwZSBwYXRoIHNlcGFyYXRvcnMuCgoyMDExLTAyLTE1IDIyOjQ4OjQ0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBlc2NhcGluZyBvZiBVUklzCgkgIEVzcGVjaWFsbHkgZG9uJ3QgZXNjYXBlIC8gYXMgcGF0aCBzZXBhcmF0b3JzCgoyMDExLTAyLTE1IDIyOjA1OjMxICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IEZpeCBlc2NhcGluZyBvZiBmaWxlIHVyaXMKCSAgRml4ZXMgYnVnICM2NDIzOTMuCgoyMDExLTAyLTE1IDE4OjI2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiBhZGQgdGltZW91dCB0byBwcm9ncmVzcyBtZXNzYWdlCgkgIEFkZCBhIHRpbWVvdXQgbWVtYmVyIHRvIHRoZSBwcm9ncmVzcyBtZXNzYWdlcyB0byBsZXQgdGhlIGFwcGxpY2F0aW9uIGtub3cgYWJvdXQKCSAgdGhlIHRpbWVvdXQgc28gdGhhdCBpdCBjYW4gZG8gc29tZSBndWkgdGhpbmdzIHdpdGggaXQuCgoyMDExLTAyLTE1IDE4OjE0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkgIGRlc2lnbjogbWVudGlvbiB0aW1lb3V0IGluIHRoZSBwcm9ncmVzcyBtZXNzYWdlCgoyMDExLTAyLTE1IDE3OjIwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtYWtlIHByb2dyZXNzIGRyYWZ0IG9mZmljaWFsCgoyMDExLTAxLTA2IDE4OjU1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IHJlbmFtZSBjYXRlZ29yeSB0byBjb2RlCgoyMDExLTAxLTA2IDE1OjU4OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIG5ldyBtZXNzYWdlIHF1YXJrCgoyMDExLTAxLTA2IDE1OjU4OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBzdGFuZGFyZCBjYXRlZ29yaWVzCgoyMDExLTAxLTA1IDEzOjUzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZ2lzdGVyIG5ldyB0eXBlCgoyMDExLTAxLTA1IDEzOjQ4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgY2hlY2s6IGFkZCBwcm9ncmVzcyBtZXNzYWdlIHVuaXQgdGVzdAoKMjAxMS0wMS0wNSAxMzo0MTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBwcm9ncmVzcyBtZXNzYWdlIGZ1bmN0aW9ucwoKMjAxMS0wMS0wNSAxMzozOToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogdXBkYXRlIHByb2dyZXNzIGZpZWxkCgkgIEF2b2lkIG5hbWluZyB0aGUgcHJvZ3Jlc3MgZnJlZSB0ZXh0IGZpZWxkICdtZXNzYWdlJyBhcyBpdCBjb25mbGljdHMgd2l0aCB0aGUKCSAgbWVzc2FnZSBpdHNlbGYuCgoyMDExLTAyLTE1IDE0OjQyOjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiBmaWxlIHVwc3RyZWFtIGluIHB1bGwgbW9kZQoJICAuLi4gd2hpY2ggY291bGQgbGVhZCB0byBhIHByZW1hdHVyZSBlb3MgYmVpbmcgcmVwb3J0ZWQgZG93bnN0cmVhbSwKCSAgcmF0aGVyIHRoYW4gYSBzdWNjZXNzZnVsIHBhcnRpYWwgcmVhZCB3aGljaCB3b3VsZCByZXN1bHQgd2hlbgoJICBwZXJmb3JtZWQgZGlyZWN0bHkgb24gZS5nLiBiYXNlc3JjLgoKMjAxMS0wMS0yNiAxNjo0NjoyNSArMDgwMCAgQ2hlbiBSdWkgPHJ1aS5jaGVuQHRpZXRvLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmV0dXJuIHJlYWwgZXJyb3IgaW4gY29tcGF0aWJsZSBsaW5rIGNoZWNrCgkgIFdlIG5lZWQgdG8gZW5zdXJlIHdlIGNhbGwgZ3N0X3BhZF9jaGVja19saW5rKCkgd2l0aCB0aGUgdHdvIHBhZHMgaW4gdGhlIGNvcnJlY3QKCSAgb3JkZXIuIFRoZSBvcmRlciBkZXBlbmRzIG9uIHdoZXRlciB3ZSBpdGVyYXRlIHNyYyBvciBzaW5rIHBhZHMuCgkgIFNpZ25lZC1vZmYtYnk6IENoZW4gUnVpIDxydWkuY2hlbkB0aWV0by5jb20+CgoyMDExLTAyLTE0IDE3OjMxOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIHNpbmtwYWQgZm9yIGZsdXNoaW5nCgkgIENoZWNrIHRoZSBzaW5rcGFkIGZvciB0aGUgZmx1c2hpbmcgc3RhdGUgYmVmb3JlIGNhbGxpbmcgdGhlIGNoYWluZnVuY3Rpb24gb24gdGhlCgkgIHBhZC4gV2UgZG8gdGhpcyBieSBjaGVja2luZyB0aGUgY2FjaGUgKHdoaWNoIGlzIGFsc28gY2xlYXJlZCBvbiB0aGUgc3JjcGFkIHdoZW4KCSAgdGhlIHNpbmsgaXMgc2V0IHRvIGZsdXNoaW5nKS4KCSAgRml4ZXMgIzY0MTkyOAoKMjAxMS0wMi0xMSAxNzo0NzoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ2hlY2sgZm9yIHBhZCBhbGxvYyBjYXBzIHdoZW4gc3VnZ2VzdGlvbiBpcyBub3QgZml4ZWQKCSAgSWYgYWZ0ZXIgY29tcHV0aW5nIHRoZSBzdWdnZXN0aW9uIHdpdGggZG93bnN0cmVhbSBjYXBzIHdlIHN0aWxsIGhhdmUKCSAgYSBub24tZml4ZWQgc3VnZ2VzdGlvbiBjYXBzIHRyeSB0byBpbnRlcnNlY3Qgd2l0aCB0aGUgaW5wdXQgY2FwcwoJICBvZiB0aGUgcGFkIGFsbG9jIHRvIGF2b2lkIHVzZWxlc3MgcmVuZWdvdGlhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDIxMzAKCjIwMTEtMDItMTQgMTQ6MDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGR1cmF0aW9uIGNhbGN1bGF0aW9uCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGF2ZXJhZ2UgZGlzdGFuY2UgYmV0d2VlbiBpbmNvbW1pbmcgdGltZXN0YW1wcyBhbmQKCSAgdXNlIHRoYXQgdG8gZXN0aW1hdGUgdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gYnVmZmVycyBoYXZlIG5vIGR1cmF0aW9uIHNldCBvbgoJICB0aGVtLgoKMjAxMS0wMi0xNCAxMzo0OToxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgcmF0ZSBjYWxjdWxhdGlvbgoJICBXaGVuIHRoZXJlIGlzIG5vIGR1cmF0aW9uIG9uIGlucHV0IGJ1ZmZlcnMsIGFzc3VtZSB0aGUgcmF0ZSBpcyAxLjAKCSAgaW5zdGVhZCBvZiAodGhlIHVuZGVmaW5lZCkgMC4wLgoKMjAxMS0wMi0xNCAxMzo0NzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgYXZlcmFnZSBkdXJhdGlvbiBjYWxjdWxhdGlvbgoJICBJbXByb3ZlIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgZHVyYXRpb24uIFdoZW4gd2UgaGF2ZSBubyBpbnB1dCBkdXJhdGlvbiBzZXQgb24KCSAgdGhlIGlucHV0IGJ1ZmZlcnMgc3RvcCBpcyBzZXQgdG8gc3RhcnQgYW5kIHRoZW4gd2UgZW5kIHVwIHVzaW5nIGEgMCBkdXJhdGlvbiBpbgoJICB0aGUgYXZlcmFnZSBjYWxjdWxhdGlvbi4KCjIwMTEtMDItMTQgMTI6MjE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW5hbWUgdmFyaWFibGUKCSAgUmVuYW1lIGFuIGludGVybmFsIHZhcmlhYmxlIHRvIGJldHRlciByZWZsYWN0IHdoYXQgaXRzIHZhbHVlIG1lYW5zLgoKMjAxMS0wMi0xNCAxNTozOToyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiB0cmltIHdoaXRlc3BhY2VzCgoyMDExLTAyLTE0IDE1OjM3OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IGZpeCB0eXBvIGluIHBhZC1saXN0IGxlbmd0aCBjb21wYXJpc2lvbgoJICBJdCB3YXMgY29tcGFyaW5nIHRoZSBsZW5ndGggd2l0aCBpdHNlbGYuCgkgIEZpeGVzICM2NDIwNzEuCgoyMDExLTAyLTE0IDEyOjUyOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY5NGQ3MzkgdG8gMWRlN2Y2YQoKMjAxMS0wMi0xMyAyMjo1NjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByZXR0eS1wcmludCBkYXRldGltZSB0YWdzCgoyMDExLTAyLTEwIDIzOjMwOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBnc3RyZWFtZXIuZG9hcDogdXBkYXRlIG1haWxpbmcgbGlzdCBob3N0CgoyMDExLTAyLTEwIDE0OjUzOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHNvbWUgY29tbWVudHMKCjIwMTEtMDItMTAgMTQ6NTA6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBrZWVwIHRyYWNrIG9mIGVhcmxpZXN0IFFvUyB0aW1lc3RhbXAKCSAgS2VlcCB0cmFjayBvZiB0aGUgZWFybGllc3QgYWxsb3dlZCB0aW1lc3RhbXAgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QKCSAgUW9TIHJlcG9ydCBhbmQgZHJvcCBidWZmZXJzIGJlZm9yZSB0aGF0IHRpbWUuIEFjdGl2YXRlIHRoaXMgZmlsdGVyCgkgIHdoZW4gdGhyb3R0bGluZyBpcyBlbmFibGVkLiBXZSBjb3VsZCBsYXRlciBhbHNvIGFjdGl2YXRlIHRoaXMgaW4gdGhlCgkgIG90aGVyIFFvUyBjYXNlcy4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTQ6MTc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbmV3IFFvUyB0eXBlCgkgIFVzZSB0aGUgbmV3IFFvUyB0eXBlIGFuZCBzZW5kIHRocm90dGxpbmcgUW9TIG1lc3NhZ2VzLgoKMjAxMS0wMi0xMCAxMzo0MjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBhZGQgcHJvcGVydHkgdG8gY29uZmlndXJlIGEgdGhyb3R0bGUtdGltZQoJICBBZGQgYSBwcm9wZXJ0eSB0byBjb25maWd1cmUgdGhlIHRocm90dGxlIHRpbWUgb24gYSBzaW5rLiBUaGUKCSAgcHJvcGVydHkgaXMgbm90IHlldCB1c2VkLgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxMjowMjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgUW9TIGV2ZW50IHR5cGUKCSAgQWRkIGEgcGFyYW1ldGVyIHRvIHRoZSBRb1MgZXZlbnQgdG8gc3BlY2lmeSB0aGUgUW9TIGV2ZW50IHR5cGUuCgkgIFVwZGF0ZSBkb2NzIGFuZCBhZGQgdW5pdCB0ZXN0LgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxMjowMDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZml4IHBhcmFtZXRlciBkb2NzCgoyMDExLTAyLTEwIDEwOjQ5OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkZXNpZ246IHR3ZWFrIGRvY3MgYSBsaXR0bGUKCjIwMTEtMDItMTAgMTA6MzQ6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIFFvUyBkb2N1bWVudAoJICBBZGQgbmV3IFFvUyB0eXBlcyBhbmQgdGFsayBhYm91dCB0aGUgbmV3IHRocm90dGxlIFFvUyBtZXNzYWdlLgoKMjAxMS0wMi0xMCAxMzo0NjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MgaW4gdGhlIGJ1ZmZlcnBvb2wgZHJhZnQKCjIwMTEtMDItMTAgMTA6MTk6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50czogZml4IGctaSBhbm5vdGF0aW9uIGZvciBnc3RfZXZlbnRfbmV3X3RhZygpIHdoaWNoIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgdGFnIGxpc3QKCjIwMTEtMDItMTAgMDA6MDI6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbWVudGlvbiB0aGF0IGl0J3MgbmVjZXNzYXJ5IHRvIHNldCB0aGUgc3RhdGUgb2YgZWxlbWVudHMgYWRkZWQgdG8gYW4gYWxyZWFkeS1ydW5uaW5nIHBpcGVsaW5lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE2MzEKCjIwMTEtMDItMDkgMTY6MjI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZGVzaWduOiBhZGQgZHJhZnQgZm9yIGZpcnN0IGlkZWFzIGZvciBhIGJ1ZmZlcnBvb2wgZmVhdHVyZQoJICBBZGQgYSBmaXJzdCBkcmFmdCB3aXRoIHNvbWUgaWRlYXMgYW5kIHVzZSBjYXNlcyBmb3IgdGhlIGltcGxlbWVudGF0aW9uCgkgIGZvciBidWZmZXJwb29scy4gVGhlIHB1cnBvc2UgaXMgdG8gYmUgYWJsZSB0byBtYWtlIGVsZW1lbnRzIG5lZ290aWF0ZQoJICB0aGVpciBidWZmZXIgcmVxdWlyZW1lbnRzIGFzIHdlbGwgYXMgcHJvdmlkZSBhbiBpbmZyYXN0cnVjdHVyZSB0bwoJICBwcmVhbGxvY2F0ZSBhbmQgcmV1c2UgYnVmZmVycyBpbiBhbiBlYXN5IHdheS4KCjIwMTEtMDItMDkgMTU6MjM6MTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IGNsYXJpZnkgdGhlIE5PTUlOQUxfQklUUkFURSBkb2NzCgkgIFRlbGwgdGhhdCBpdHMgYSB0YXJnZXQgYml0cmF0ZSBhbmQgYWN0dWFsIHZhbHVlcyBtaWdodCBiZSBkaWZmZXJlbnQuCgoyMDExLTAyLTAzIDE1OjE3OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHRyaWdnZXIgcmVidWlsZCBzZXR1cCBpbiBfbmV3CgkgIEZhaWxpbmcgdG8gZG8gc28gaW4gdGhlIFdpbmRvd3MgY2FzZSAoaW1wbGljaXRseSB0cmlnZ2VyZWQgb3RoZXJ3aXNlKQoJICB3b3VsZCBoYXZlIGEgc3Vic2VxdWVudCBfd2FpdCByZXR1cm4gaW1tZWRpYXRlbHkgbGVhZGluZyB0byBoaWdoIENQVQoJICB1c2FnZSB0aW1lb3V0IGxvb3BzLgoJICBGaXhlcyAjNjQwNjc1LgoKMjAxMS0wMi0wMyAxMDo1MzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtYWtlIGFkZGluZy9yZW1vdmluZyBvZiBnc3RfZGVidWdfbG9nX2RlZmF1bHQoKSB3b3JrIHByb3Blcmx5CgkgIE1ha2UgYWRkaW5nL3JlbW92aW5nIGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCgpIHdvcmsgcmVsaWFibHkgaW4gYWxsCgkgIGNpcmN1bXN0YW5jZXMuIFRoZSBwcm9ibGVtIHdhcyB0aGF0IGRlcGVuZGluZyBvbiBwbGF0Zm9ybSBhbmQgbGlua2VyCgkgIGZsYWdzIHRoZSBmdW5jdGlvbiBhcmd1bWVudCBtaWdodCByZXNvbHZlIHRvIGRpZmZlcmVudCBhZGRyZXNzZXMsCgkgIHdoaWNoIG1hZGUgaXQgaW1wb3NzaWJsZSB0byByZW1vdmUgdGhlIGRlZmF1bHQgbG9nIGZ1bmN0aW9uIGFkZGVkCgkgIGluIGdzdF9pbml0KCkgZnJvbSBhcHBsaWNhdGlvbiBjb2RlIChiZWNhdXNlIHRoZSBwb2ludGVyIHZhbHVlcwoJICBkaWRuJ3QgbWF0Y2gpLiBUaGUgbmV3IGFwcHJvYWNoIHNob3VsZCBrZWVwIHRoaW5ncyBzaW1wbGUgYnkgcGFzc2luZwoJICBOVUxMIGZvciB0aGUgZGVmYXVsdCBmdW5jdGlvbiwgd2hpY2ggdGhlIGNvZGUgaW4gbGliZ3N0cmVhbWVyIGNhbgoJICB0aGVuIGhhbmRsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTM5NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzcxCgoyMDExLTAyLTAzIDEwOjI4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIFJldmVydCAiaW5mbzogdXNlIHRoZSBwdWJsaWNseSB2aXNpYmxlIGFkZHJlc3MgdG8gZml4IHRoZSB0ZXN0cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlYjU2Njg3YTZkZmQyMDc1MDdhNGNhMDAwZWFlNTNmOTNiNWUzM2VhLgoJICBXaGlsZSB0aGlzIGNvbW1pdCBtYXkgaGF2ZSBmaXhlZCBhIHByb2JsZW0gb24gb25lIG9mIHRoZSBidWlsZCBib3RzLAoJICBpdCBkaWRuJ3QgYWN0dWFsbHkgZml4IHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0ZWQgZm9yIHdpbjMyLgoJICBBbHNvLCBpdCBjYXVzZXMgb3RoZXIgcHJvYmxlbXMsIHN1Y2ggYXMgdGhlIGxvb2t1cCBmYWlsaW5nIHdoZW4KCSAgY2FsbGVkIGZyb20gQysrIGNvZGUgKGdzdC1waG9ub24sIGFtYXJvaykuCgkgIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQgZGlmZmVyZW50bHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA3NzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTM5NgoKMjAxMS0wMi0wMiAxNTozNTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHByb3Blcmx5IGlkZW50aXR5IGRlcXVldWVkIGV2ZW50IGFzIHN1Y2gKCSAgLi4uIHdoaWNoIGF2b2lkcyB0ZXJtaW5hdGluZyB3aXRoIEVSUk9SIHJhdGhlciB0aGFuIFVORVhQRUNURUQuCgoyMDExLTAyLTAyIDAyOjA3OjU4ICswMDAwICBQZXRlciBDb2xsaW5nYm91cm5lIDxwZXRlckBwY2MubWUudWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiB1c2UgJEdTVF9QUkVGSVggdmFyaWFibGUKCSAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gY2hhbmdlIHRoZSBwcmVmaXggYnkgZWRpdGluZyB0aGUgc2NyaXB0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjEyCgoyMDEwLTA4LTE5IDIyOjQzOjA3ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBub2tpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgYSBuZXcgImVuY29kZWQtYnkiIHRhZwoJICBVc2VjYXNlOiBJRDN2MiBURU5DICgiRW5jb2RlZCBieSIpIGZyYW1lLgoJICBBUEk6IEdTVF9UQUdfRU5DT0RFRF9CWQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3MjY4CgoyMDExLTAxLTI5IDE4OjAyOjExICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBuZXQ6IHVzZSBzb2NrbGVuX3Qgd2hlcmUgYXBwcm9wcmlhdGUgcmF0aGVyIHRoYW4gc3BlY2lmaWMgdHlwZQoJICBJbiBwYXJ0aWN1bGFyLCBmaXhlcyBDeWd3aW4gYnVpbGQgd2hlcmUgc29ja2xlbl90IGlzIGRlZmluZWQgYXMgaW50CgkgIGluIGxpbmUgd2l0aCBuYXRpdmUgd2luMzIgYXBpIGRlZmluaXRpb24uCgoyMDExLTAxLTMxIDE1OjU4OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGhvbm91ciBhbnkgcGVyLXRocmVhZCBkZWZhdWx0IG1haW4gY29udGV4dCBzZXQgdmlhIGdfbWFpbl90aHJlYWRfcHVzaF90aHJlYWRfZGVmYXVsdCgpCgkgIE1ha2VzIGdzdF9idXNfYWRkX3dhdGNoKCksIGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwoKSwgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKCksCgkgIGFuZCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCgpIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhdXRvbWF0aWNhbGx5IHBpY2sgdXAKCSAgYW55IG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgc2V0IGZvciB0aGUgY3VycmVudCB0aHJlYWQgdmlhCgkgIGdfbWFpbl90aHJlYWRfcHVzaF90aHJlYWRfZGVmYXVsdCgpLgoKMjAxMS0wMS0yOCAxNTozNjozMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogT25seSBzZXQgZGlzY29udCBvbiB0aGUgZmlyc3QgYnVmZmVyIGFmdGVyIGRyb3BzCgkgIFJlc2V0IHRoZSBkaXNjb250IG1lbWJlciBhZnRlciBzZXR0aW5nIGRpc2NvbnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBhZnRlcgoJICBkcm9wcGluZy4KCjIwMTEtMDEtMjggMTk6MDg6MDggKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIEdzdEVsZW1lbnQ6IEZpeCB3YXJuaW5nIHdpdGggR0NDIDQuNgoJICBnc3RlbGVtZW50LmM6IEluIGZ1bmN0aW9uIOKAmGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZOKAmToKCSAgZ3N0ZWxlbWVudC5jOjEwNTI6MTg6IGVycm9yOiB2YXJpYWJsZSDigJh0bXDigJkgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDg1MAoKMjAxMS0wMS0yNyAwOToyODowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBwcmludCB1bnNldCBidWZmZXIgdGltZXN0YW1wcyBvciBkdXJhdGlvbnMgYXMgJ25vbmUnCgkgIExpa2UgZmFrZXNpbmsgYW5kIGZha2VzcmMgZG8uCgoyMDExLTAxLTEyIDE2OjAzOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgdGFrZSBvYmplY3QgbG9jayBmb3IgcmVhZGluZyB0aGUgZm91bmQgY2FwcwoJICBPbmNlIHdlIHN3aXRjaCB0byBub3JtYWwgbW9kZSwgd2UncmUgbm90IHR5cGVmaW5kaW5nIGFueW1vcmUgYW5kIHRodXMgdGhlIGNhcHMKCSAgd2lsbCBub3QgY2hhbmdlLiBUaGVyZWZvcmUgY2FuIGF2b2lkIHRoZSBvYmplY3QgbG9jayBpbiB0aGUgZGF0YS1mbG93IHBhdGguCgkgIFRoZSBsb2NraW5nIHdhcyBhZGRlZCBpbiBvcmRlciB0byBmaXggYnVnICM2MDg4NzcuCgoyMDExLTAxLTI1IDA5OjM5OjQ1ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvcmFuZG9tL2NhcHM6CgkqIGRvY3MvcmFuZG9tL29tZWdhL1RPRE8tMC4xLjA6CgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL2NhcHR1cmluZzoKCSogZG9jcy9yYW5kb20vd3RheS9ldmVudHM6CgkqIGRvY3MvcmFuZG9tL3d0YXkvZXZlbnRzMzoKCSogZG9jcy9zbGlkZXMvb3V0bGluZToKCSAgZG9jczogZml4IGEgZmV3IG1vcmUgdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDUwMgoKMjAxMS0wMS0yNSAxODo0ODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBkb2NzOiBmbGVzaCBvdXQgdHlwZWZpbmRlbGVtZW50IGRvY3Mgc29tZSBtb3JlCgkgIE1lbnRpb24gdGhhdCBoYXZlLXR5cGUgc2lnbmFsIG1heSBiZSBlbWl0dGVkIGZyb20gc3RyZWFtaW5nCgkgIHRocmVhZCBvciBhcHBsaWNhdGlvbiB0aHJlYWQsIGFuZCBmaXggYSB0eXBvLgoKMjAxMS0wMS0xMiAxNjowMzo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNvZGUgYW5kIGNvbW1lbnQgY2xlYW51cHMKCSAgTWFrZSBjb2RlIHR3byBwbGFjZXMgb2YgdGhlIGNvZGUgdGhlIHB1c2hlcyB0aGUgYnVmZmVyIHN0b3JlIG1vcmUgc2ltaWxhci4gTW9yZQoJICBjb21tZW50cyBhbmQgZGVidWcgbG9nZ2luZy4KCjIwMTEtMDEtMTIgMTM6MDU6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZW5zdXJlIG1lc3NhZ2VzIGFyZSBcMCB0ZXJtaW5hdGVkCgoyMDExLTAxLTEyIDEyOjU4OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogaGFuZGxlIGludmFsaWQgbmV0d29yayBhZGRyZXNzZXMgZWFybGllcgoJICBIYW5kbGUgaW5ldF9hdG9uKCkgcmV0dXJuIGNvZGUuCgoyMDExLTAxLTEyIDEyOjQ0OjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY2hlY2tzOiBhZGQgYSBjb21tZW50IHRvIGluZGljYXRlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBsZWF2ZSBvdXQgdGhlICdicmVhaycKCjIwMTEtMDEtMTIgMTI6NDM6MDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIGRlYWQgY29kZQoJICBUaGUgR0Vycm9yIGlzIG9ubHkgdXNlZCBmb3IgdGhlIG1tYXAgb3BlcmF0aW9ucy4gSWYgd2UgaGF2ZSBhbiBlcnJvciB3ZSBoYW5kbGUKCSAgYW5kIGNsZWFuIGl0IHRoZXJlIGFscmVhZHkuCgoyMDExLTAxLTEyIDA5OjMzOjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZG9jczogc21hbGwgY29udHJvbGxlciBhcGkgZG9jcyBpbXByb3ZlbWVudAoKMjAxMS0wMS0xMSAxNTowOTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNhbm9uaWNhbGl6ZSBzaWduYWwgbmFtZQoKMjAxMS0wMS0xMSAxNTowOTozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZG9jczogbWVudGlvbiBoYXZlLXR5cGUgc2lnbmFsIGluIHRoZSBkb2NzLgoKMjAxMS0wMS0yNSAwOToxNTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IG1pbm9yIGdzdC1sYXVuY2ggbWFuIHBhZ2UgZml4CgkgIFRyYW5zbWl0dGVyL3JlY2VpdmVyIHBpcGVsaW5lcyB3ZXJlIG1pc2xhYmVsbGVkLiBTcG90dGVkIGJ5IE1hamluLgoKMjAxMS0wMS0yNSAxNjowOToxOCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlIHRlc3Q6IFJlbW92ZSB3b3JrYXJvdW5kIGZvciBwYWRfdGFzayBoYW5ncwoJICBSZW1vdmUgY29kZSB0aGF0IGlzbid0IG5lZWRlZCBhbnkgbG9uZ2VyLCB3aGljaCBzZXRzIHRoZSBtdWx0aXF1ZXVlCgkgIHRvIFBMQVlJTkcgYW5kIGJhY2sgYmVmb3JlIHVucmVmZmluZywgaW4gb3JkZXIgdG8gYXZvaWQgYSBkZWFkbG9jawoJICB3YWl0aW5nIGZvciBnc3RwYWQgdGFza3MgdGhhdCB3ZXJlIG5ldmVyIHN0YXJ0ZWQuIFRoZSBwcm9ibGVtIHNlZW1zCgkgIHRvIGhhdmUgYmVlbiBmaXhlZCBsb25nIGFnby4KCjIwMTEtMDEtMjUgMDA6MjA6MzQgKzA4MDAgIENhaSBZdWFucWluZyA8Y2tqYWNrZXRAZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgIGRlc2lnbiBkb2NzOiBmaXggMiB0eXBvcyBpbiBwYXJ0LU1ULXJlZmNvdW50aW5nCgoyMDExLTAxLTI0IDE3OjQ2OjE1ICswODAwICBZYW5nIFhpY2h1YW4gPHhpY2h1YW4ueWFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgIGRlc2lnbiBkb2NzOiBwYXJ0LWdzdGJpbi50eHQgZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWWFuZyBYaWNodWFuIDx4aWNodWFuLnlhbmdAdGlldG8uY29tPgoKMjAxMS0wMS0xOSAxNTo0ODoyNiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZGVzaWduIGRvY3M6IGZpeCBhIGZldyB0eXBvcyBhbmQgYSB0aGlua28KCjIwMTEtMDEtMTEgMTc6NDM6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFQSTogQWRkIGZ1bmN0aW9uIHRvIHJlLWluaXQgcGVyaW9kaWMgR3N0Q2xvY2tJRHMKCjIwMTEtMDEtMjAgMTQ6Mzc6MjUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBnc3RwbHVnaW5sb2FkZXI6IGRvIG5vdCBsZWFrIHRoZSBkZXNjcmlwdGlvbiBzdHJpbmcKCSAgVGhlIGRlc2NyaXB0aW9uIHN0cmluZyB3YXMgY2hhbmdlZCB0byBhbiBpbmxpbmVkIHN0cmluZyBhIHdoaWxlIGJhY2suCgkgIChCdXQ6IG5vIG5lZWQgdG8gaW50ZXJuIHRoZSBjb25zdCBzdHJpbmdzIGhlcmUsIHdlIGp1c3QgdXNlIHRoZSBpbnRlcm5pbmcKCSAgdG8gYXZvaWQgYWxsb2NhdGluZyBkdXBsaWNhdGVzIGFuZCBtYWtlIG1lbW9yeSBtYW5hZ2VtZW50IGVhc2llciwKCSAgc2luY2UgdGhlIHN0cmluZ3Mgd2lsbCBiZSBhcm91bmQgZm9yIHRoZSBsaWZlLXRpbWUgb2YgdGhlIGFwcCBhbnl3YXkpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMDcxCgoyMDExLTAxLTIyIDE1OjMzOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGNsYXJpZnkgZG9jcwoKMjAxMS0wMS0xMSAxMDozMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgYnVmZmVyaW5nIGRvYwoJICBBZGQgc3RyYXRlZ2llcyB0byBidWZmZXJpbmcgZG9jCgoyMDExLTAxLTI0IDExOjUzOjEyICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjMyIiBtYXJrZXJzIGZvciBHc3RDbG9jawoJICBTaW5jZSB0YWdzIHdlcmUgbWlzc2luZyBmb3IgZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdCgpCgkgIGFuZCBHU1RfQ0xPQ0tfRE9ORS4KCjIwMTEtMDEtMjQgMTA6NTY6MjEgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogRml4IEdzdFF1ZXVlMjpyaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0eSBTaW5jZSB0YWcgKDAuMTAuMzEsIG5vdCAwLjEwLjMwKQoKMjAxMS0wMS0yNCAxMDoyNjo0NSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4zMSIgbWFya2VyIGZvciBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUoKQoKMjAxMS0wMS0yNCAxNDoyMjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWFkLWJleW9uZC1lbmQtb2Ytc3RyaW5nIGJ1ZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5Njc0CgoyMDExLTAxLTI0IDE0OjE2OjM3ICswMDAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZS1sYXVuY2g6IGRvbid0IHJlYWQgcGFzdCBlbmQgb2Ygc3RyaW5nIGlmIGxhc3QgY2hhcmFjdGVyIGlzIGFuIGVzY2FwZSBjaGFyCgkgIFdoZW4gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgcHJvcGVydHkgdmFsdWUgaXMgYSBiYWNrc2xhc2gKCSAgdGhlIHVuZXNjYXBpbmcgY29kZSByZWFkcyBvbmUgYnl0ZSBwYXNzIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTY3NAoKMjAxMS0wMS0xNCAwOToyMToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBoYWNrIGEgY2hhcnNldD11dGYtOCBpbnRvIHB3Zy9hZG0gaHRtbCB2ZXJzaW9ucwoJICBTbyB0aGUgZW5jb2Rpbmcgb2YgdGhlIG9yaWdpbmFsIGRvY3VtZW50IGlzIHJlc3BlY3RlZCBhbmQKCSAgZGlzcGxheXMgcHJvcGVybHkgaW4gYnJvd3NlcnMgd2hlcmUgdGhlIGVuY29kaW5nIGF1dG9kZXRlY3Rpb24KCSAgZmFpbHMgdG8gcmVjb2duaXNlIHRoYXQgaXQncyB1dGYtOC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTQ0OAoKMjAxMS0wMS0xMyAxNTo0MTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZG9uJ3QgbGVhayB4bWwgZmlsZSBuYW1lIGlmIEdTVF9DSEVDS19YTUwgaXMgc2V0CgkgIFNwb3R0ZWQgYnkgbnZpbmVldGhAZ21haWwuY29tCgoyMDExLTAxLTIzIDIzOjQ1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzIgPT09CgoyMDExLTAxLTIxIDEwOjI1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMgoKMjAxMS0wMS0yMCAxOTowNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiY29uZmlndXJlOiByZXF1aXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiA+PSAwLjkuMTIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgM2E1OWQ0MTZhZjZkMGY4YjYxZTI0NjA4MzBlYjZmMTEzODkyOWVjMi4KCSAgUmV2ZXJ0aW5nIHRoaXMsIGFzIHRoZSBmZWF0dXJlIHdlIGJ1bXBlZCB0aGUgcmVxdWlyZW1lbnQgZm9yCgkgIGRpZG4ndCBhY3R1YWxseSB3b3JrIHByb3Blcmx5IG9yIGhlbHAgd2l0aCB0aGUgaXNzdWUgd2Ugd2VyZQoJICB0cnlpbmcgdG8gZml4IChhbmQgaXQgd2FzIGZpeGVkIGRpZmZlcmVudGx5IGluIHRoZSBlbmQpLgoKMjAxMS0wMS0xOCAyMjo1MTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgZG9jczogZml4IHNwZWxsaW5nIG9mICd0aHJlc2hvbGQnIGluIGFwcCBkZXYgbWFudWFsCgoyMDExLTAxLTE4IDEwOjEwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuNCBwcmUtcmVsZWFzZQoKMjAxMS0wMS0xOCAwOTowNDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogdHJ5IGhhcmRlciB0byBtYWtlIGctaXItc2Nhbm5lciB1c2UgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBBcHBseSBmaXggZnJvbSBsaWJnc3RiYXNlIHRvIGFsbCBjb3JlIGxpYnMgbm93IHRoYXQgd2Uga25vdyB0aGF0IGl0CgkgIHdvcmtzLiBTaG91bGQgZml4IHByb2JsZW1zIHdpdGggZy1pci1zY2FubmVyIHVzaW5nIHRoZSB3cm9uZwoJICAoaWUuIHN5c3RlbSkgbGliZ3N0cmVhbWVyLCBsZWFkaW5nIHRvIGxpbmtpbmcgZXJyb3JzIHN1Y2ggYXMKCSAgdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdCcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTQgMDA6MjA6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogZml4IGdhcmJsZWQgVVRGLTggY2hhcmFjdGVycyB3aGVuIGdlbmVyYXRpbmcgYXBwIGRldiBtYW51YWwgcHMvcGRmCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk0NDgKCjIwMTEtMDEtMTMgMjA6MTI6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiBhbm90aGVyIGF0dGVtcHQgdG8gbWFrZSBnLWkgZmluZCB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIFR1cm5zIG91dCBnLWkgcHV0cyB0aGUgYWRkaXRpb25hbCAtTCB3ZSBzcGVjaWZ5IGF0IHRoZSBlbmQsIGhlbHBmdWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xMiAxNTo0NjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVxdWlyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gPj0gMC45LjEyCgkgIEVhcmxpZXIgdmVyc2lvbnMgZG9uJ3QgaG9ub3VyIHRoZSAtTC8tLWxpYnJhcnktcGF0aCBvcHRpb24sCgkgIHdoaWNoIHdlIG5lZWQuIFNlZSBjb21taXQgNGQwY2NkYWQgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uIGdpdC4KCjIwMTEtMDEtMTIgMTA6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogdXBkYXRlIGctaSBpbmNsdWRlIHBhdGhzIGFzIHdlbGwgZm9yIGhlYWRlciBjaGFuZ2VzCgkgIEhvcGVmdWxseSBtYWtlcyBMdWNpZCBhbmQgTWF2ZXJpY2sgYnVpbGQgYm90cyBoYXBweSBhZ2FpbgoKMjAxMS0wMS0xMSAxODozOTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjMgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMTEgMTg6Mzg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZ2wucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zdi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDEtMTEgMTk6MjY6NDAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IEZpeCBoZWFkZXJzIHRvIHVzZSA8ID4gaW4gI2luY2x1ZGUgc3RhdGVtZW50cwoJICBUaGUgYmVoYXZpb3Igb2YgIiAiIGluIGluY2x1ZGUgc3RhdGVtZW50cyBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIC0KCSAgc2VlIHRoZSBDIHN0YW5kYXJkLCBzZWN0aW9uIDYuMTAuMiBvcgoJICBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIxNTkzCgoyMDExLTAxLTExIDE5OjE0OjI4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdzdG5ldDogRml4IC0tYy1pbmNsdWRlIGZvciBnaXIgZ2VuZXJhdGlvbgoJICBQcmV2aW91c2x5IGl0IHdhcyAtIHByb2JhYmx5IGR1ZSB0byBjb3B5L3Bhc3RlIGVycm9yIC0gbG9va2luZyBmb3IKCSAgZ3N0YmFzZSBoZWFkZXJzLgoJICBJdCdzIGNoYW5nZWQgbm93IHRvIG9ubHkgaW5jbHVkZSB0aGUgb25lIHB1YmxpYyBoZWFkZXIgZm9yIGdzdG5ldC5oCgoyMDExLTAxLTExIDEzOjQ3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiBtYWtlIGctaXItc2Nhbm5lciB0cnkgaGFyZGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBJdCdzIG5vdCBxdWl0ZSBjbGVhciB0byBtZSB3aHkgZy1pci1zY2FubmVyIGRvZXNuJ3QgZ2V0IHRoaXMgaW5mbyBmcm9tCgkgIHRoZSBwa2ctY29uZmlnIGZpbGUsIG5vciB3aHkgbGlidG9vbCBkb2Vzbid0IGdldCBpdCBmcm9tIHRoZSAubGEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTEgMTM6MDU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgcGtnY29uZmlnOiBhbHNvIGFkZCBsaWJkaXIgdG8gLXVuaW5zdGFsbGVkIC5wYyBmaWxlcwoJICBUaGlzIHdheSB3ZSBjYW4gZmluZCB0aGUgcGF0aHMgdG8gcGFzcyBlLmcuIGctaXItc2Nhbm5lciBmb3IKCSAgdW5pbnN0YWxsZWQgc2V0dXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MDM5CgoyMDExLTAxLTExIDE1OjQ5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGU1NzJjODcgdG8gZjk0ZDczOQoKMjAxMS0wMS0xMSAxNToxMDozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4ZSB0aGUgcHJvcGVydHkgbGluayBhbmQgdGhlIHNpY2UgZG9jcwoKMjAxMS0wMS0xMSAxMjo0NjozMSArMDAwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBmaXggY29tcGlsZXIgd2FybmluZyB3aXRoIE1pbmdXCgkgIGdzdHBvbGwuYzogSW4gZnVuY3Rpb24gJ2dzdF9wb2xsX2dldF9yZWFkX2dwb2xsZmQnOgoJICBnc3Rwb2xsLmM6NjkyOjEwOiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5MDAKCjIwMTEtMDEtMTAgMTQ6Mzc6NDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdDogb3V0cHV0c2VsZWN0b3I6IEFkZCBhbm90aGVyIG5lZ290aWF0aW9uIHRlc3QKCSAgQWRkcyBhbiB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB0aGUgb3V0cHV0LXNlbGVjdG9yIHdvcmtzCgkgIHdoZW4gbmVnb3RpYXRpbmcgYmVmb3JlIHNyY3BhZHMgYXJlIHJlcXVlc3RlZAoKMjAxMS0wMS0xMCAxNDoxOToxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBJbXByb3ZlIGdldCBhbmQgc2V0IGNhcHMgZnVuY3Rpb25zCgkgIEltcHJvdmUgc2luayBwYWQgZ2V0Y2FwcyBhbmQgc2V0Y2FwcyBieSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZQoJICBubyBzcmMgcGFkcyBleGlzdCB5ZXQKCjIwMTEtMDEtMTAgMTY6MzU6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjY2JhYTg1IHRvIGU1NzJjODcKCjIwMTEtMDEtMTAgMTQ6NTI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjQ0NWFkIHRvIGNjYmFhODUKCjIwMTEtMDEtMTAgMDk6NTk6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IHNlbGVjdG9yOiB1bnJlZiBwZWVyIHBhZAoJICBEbyBub3QgZm9yZ2V0IHRvIHVucmVmIHBlZXIncyBwYWQgb24gb3V0cHV0LXNlbGVjdG9yIG5lZ290aWF0aW9uCgkgIHRlc3RzCgoyMDExLTAxLTEwIDEzOjE4OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1ha2Ugc3VyZSB3ZSB3YWl0IGFuZCByZWxlYXNlIHRoZSBsaXZlIGxvY2sKCSAgTWFrZSBzdXJlIHdlIHJlbGVhc2UgdGhlIGxpdmUgbG9jayBhbmQgd2FpdCBpbiBhbGwgY2FzZXMgd2hlbiB3ZSBuZWVkIHRvIHdhaXQKCSAgZm9yIHRoZSBwbGF5aW5nIG9yIGZsdXNoaW5nIHN0YXRlIGNoYW5nZS4KCSAgRml4ZXMgIzYzNTc4NQoKMjAxMS0wMS0wOCAxNDo1MjoyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogRG9uJ3QgcmVwbGFjZSB2YWxpZCBleGlzdGluZyBwbHVnaW5zIGJ5IGJsYWNrbGlzdGVkIG9uZXMKCSAgT25seSByZXBsYWNlIGV4aXN0aW5nIHBsdWdpbnMgYnkgYmxhY2tsaXN0ZWQgb25lcyBpZiB0aGV5IGNvcnJlc3BvbmQKCSAgdG8gdGhlIGV4YWN0IHNhbWUgcGx1Z2luLiBJZiB0aGV5J3JlIG5vdCB0aGUgc2FtZSwga2VlcCB0aGUgZXhpc3RpbmcKCSAgdmFsaWQgb25lLgoJICBGaXhlcyAjNjM4OTQxCgoyMDExLTAxLTA4IDAyOjE5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBjb25maWd1cmUsIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGEgZmV3IGJhc2hpc20KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk2MQoKMjAxMS0wMS0wNyAxMjoxMzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjIgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMDcgMDI6MTg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBpbmRleGVyczogZml4IHR3byBzbWFsbCBsZWFrcwoJICBlbGVtZW50IGZhY3RvcnkgcGx1Z2luX25hbWVzIGFyZSBpbnRlcm5lZCBzdHJpbmdzIHRoZXNlIGRheXMuCgoyMDExLTAxLTA3IDAwOjUzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogbmV2ZXIgZGlzYWJsZSBnX2Fzc2VydCgpIGFuZCBjYXN0IGNoZWNrcyBmb3IgdGhlIHVuaXQgdGVzdHMKCSAgVGhlIHVuaXQgdGVzdHMgYXJlIHJpZGRsZWQgd2l0aCBnX2Fzc2VydCgpIGFuZCBmcmllbmRzLCBtYWtlIHN1cmUgd2UKCSAgZG9uJ3QgZGlzYWJsZSBhc3NlcnQgYW5kIGNhc3QgY2hlY2tzIGZvciB0aGUgdW5pdCB0ZXN0cyBldmVuIGlmCgkgIHRoaXMgaGFzIGJlZW4gc3BlY2lmaWVkIGZvciB0aGUgcmVzdCBvZiB0aGUgY29kZSBiYXNlLCBlLmcuIHZpYQoJICAtLWRpc2FibGUtZ2xpYi1hc3NlcnRzLgoKMjAxMS0wMS0wNiAxOTo0MDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGlnbm9yZSBvbGQgbGliZ3N0dmFsdmUuc28gYW5kIGxpYmdzdHNlbGVjdG9yLnNvIHBsdWdpbnMgdG8gbWluaW1pemUgdXBncmFkZSBwYWluCgkgIElnbm9yZSBwbHVnaW5zIHdoaWNoIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIGNvcmVlbGVtZW50cywgc28gaXQncwoJICBzdGlsbCBwb3NzaWJsZSB0byBqdXN0IHVwZ3JhZGUgR1N0cmVhbWVyIGNvcmUgd2l0aG91dCBoYXZpbmcgdG8KCSAgdXBncmFkZSB0aGUgd2hvbGUgc3RhY2suCgoyMDExLTAxLTA2IDE5OjIxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBSZXZlcnQgInBhZHRlbXBsYXRlOiBhbGxvdyBkaXNhYmxpbmJnIHRoZSB0ZW1wbGF0ZSBuYW1lIGNvbmZvcm1hbmNlIGNoZWNrcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmOTAzOWMyMjA0MGUxYTM4YTM2OTFiYzRkMjk5YWY0MjdjOTYzMjU1LgoJICBXZSB1c2UgLURHX0RJU0FCTEVfQVNTRVJUUyBmb3IgcmVsZWFzZXMgYW5kIHByZS1yZWxlYXNlcywgYnV0CgkgIGRvbid0IHdhbnQgdG8gZGlzYWJsZSBwYWQgbmFtZSBjaGVja2luZyBmb3IgcmVsZWFzZXMgaW4gZ2VuZXJhbCwKCSAgSSB0aGluay4gTmVlZCBhIGJldHRlciBzb2x1dGlvbiBoZXJlLiBGaXhlcyBwYWQgdW5pdCB0ZXN0IGluCgkgIHByZS1yZWxlYXNlL3JlbGVhc2UgbW9kZS4KCjIwMTEtMDEtMDQgMTI6NDI6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSAgb3V0cHV0LXNlbGVjdG9yOiBBZGQgcGFkLW5lZ290aWF0aW9uLW1vZGUgcHJvcGVydHkKCSAgQWRkcyBnZXRjYXBzL3NldGNhcHMgdG8gb3V0cHV0LXNlbGVjdG9yIGFuZCBhZGRzIGEgcHJvcGVydHkKCSAgdG8gc2VsZWN0IHdoaWNoIHR5cGUgb2YgbmVnb3RpYXRpb24gc2hvdWxkIGJlIGRvbmUuCgkgIFRoZSBhdmFpbGFibGUgbW9kZXMgYXJlOgoJICAqIG5vbmU6ICAgbm8gbmVnb3RpYXRpb24gKGN1cnJlbnQgYmVoYXZpb3IpLCBnZXRjYXBzIHJldHVybiBBTlkgYW5kCgkgIHNldGNhcHMgYXJlbid0IHNldCBvbiBhbnkgb2YgdGhlIHBlZXJzCgkgICogYWxsOiAgICB1c2UgYWxsIHBhZHMgKGRlZmF1bHQpLCBnZXRjYXBzIHJldHVybnMgdGhlIGludGVyc2VjdGlvbiBvZgoJICBwZWVyIHBhZHMgYW5kIHNldGNhcHMgaXMgc2V0IG9uIGFsbCBwZWVycwoJICAqIGFjdGl2ZTogZ2V0Y2FwcyBhbmQgc2V0Y2FwcyBhcmUgcHJveGllZCB0byB0aGUgYWN0aXZlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA2IDE4OjE4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBkb2NzOiBtZW50aW9uIGV4dHJhIGlucHV0LXNlbGVjdG9yIHBhZCBwcm9wZXJ0aWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDYgMTc6NDc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZWwucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA5LTIzIDEyOjQ5OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlIGZvciBlYWNoIGxvZyBmdW5jdGlvbiBjYWxsIG9uIE1TVkMKCSAgQXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWUgdG8gZ2V0IHRoZSBmaWxlIGJhc2VuYW1lIG9uIE1TVkMgdG8gYXZvaWQKCSAgdW5uZWNlc3Nhcnkgb3ZlcmhlYWQgd2hlbiBkb2luZyBHU1RfREVCVUc9Zm9vOjUgb3Igc28gKHNpbmNlIGl0IHdvdWxkIGJlCgkgIGRvbmUgYmVmb3JlIHRoZSBjYXRlZ29yeSBsb2cgbGV2ZWwgZmlsdGVyaW5nKS4KCjIwMTEtMDEtMDYgMTc6Mjk6NDYgKzAwMDAgIGNocmlzdGlhbiBzY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBVcGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMgYW5kIGVuYWJsZSBHSVIKCjIwMTEtMDEtMDUgMTI6NTk6NDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEZpeCBjcmVhdGlvbiBvZiBkZWZhdWx0IG5hbWUKCSAgQ2hhbmdlIHRoZSBmaXhlZCBhbGxvY2F0aW9uICghKSB0byBnX3N0cmR1cF9wcmludGYoKS4KCjIwMTAtMTItMjAgMTM6MzA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RFbGVtZW50OiBBZGQgYSBtb3JlIGZsZXhpYmxlIHdheSB0byBnZXQgcmVxdWVzdCBwYWRzLgoJICBUaGUgbmV3IHJlcXVlc3RfbmV3X3BhZF9mdWxsIHZtZXRob2QgcHJvdmlkZXMgYW4gYWRkaXRpb25hbCBjYXBzIGZpZWxkLAoJICB3aGljaCBhbGxvd3MgZWxlbWVudHMgdG8gdGFrZSBiZXR0ZXIgZGVjaXNpb24gcHJvY2Vzcy4KCSAgQWxzbywgYWRkIGEgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQoKSBmdW5jdGlvbiB0byBhbGxvdyBkZXZlbG9wZXJzIHRvIGJlCgkgIGFibGUgdG8gc3BlY2lmeSB3aGljaCBwYWQgdGVtcGxhdGUgdGhleSB3YW50IGEgcGFkIG9mLgoJICBDb252ZXJ0IGdzdHV0aWxzIHRvIHVzZSB0aGF0IG5ldyBtZXRob2QgaW5zdGVhZCBvZiB0aGUgb2xkIG9uZSB3aGVuIG1vcmUKCSAgZWZmaWNpZW50LgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgYmVpbmcgYWJsZSB0byByZXF1ZXN0IHBhZHMgaW4gYSBtb3JlIGZsZXhpYmxlIHdheSwKCSAgZXNwZWNpYWxseSB3aGVuIHRoZSBlbGVtZW50IGNhbiBwcm92aWRlIHBhZHMgd2hvc2UgY2FwcyBkZXBlbmQgb24KCSAgcnVudGltZSBjb25maWd1cmF0aW9uIGFuZCB0aGVyZWZvcmUgY2FuJ3QgcHJvdmlkZSBwcmUtcmVnaXN0ZXJlZAoJICBwYWQgdGVtcGxhdGVzLgoJICBBUEk6IEdzdEVsZW1lbnQ6OnJlcXVlc3RfbmV3X3BhZF9mdWxsCgkgIEFQSTogZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzMwMAoKMjAxMS0wMS0wNSAxNTo1MzoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSAic2VsZWN0LWFsbCIgcHJvcGVydHkKCSAgc2VsZWN0LWFsbCBtb2RlIGlzIGEgYml0IGJyb2tlbiAoZS5nLiBuZXdzZWdtZW50IGV2ZW50CgkgIGhhbmRsaW5nKSwgc28gcmVtb3ZlIHRoYXQgZm9yIG5vdy4gVGhlIGZ1bm5lbCBlbGVtZW50CgkgIGluIGZhcnNpZ2h0IHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUzOTA0MgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA1IDE1OjM2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZW1vdmUgc2FmZXR5IGNoZWNrIGZvciBHTGliIDwgMi44CgkgIERvbid0IHdvcnJ5IGFib3V0IGFjY2lkZW50YWxseSB1c2luZyBHTGliIDwgMi44IGF0IHJ1bnRpbWUgYW55bW9yZS4KCjIwMTEtMDEtMDUgMTE6MjY6MTMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBEaXNhYmxlIHVzYWdlIG9mIEdEYXRlVGltZSBvbiBNYWNPU1gKCSAgR0xpYidzIEdEYXRlVGltZSBkb2Vzbid0IGhhbmRsZSBwcm9wZXJseSB0aGUgZ210IG9mZnNldC4gVGhlcmVmb3JlCgkgIHVzZSBvdXIgb3duIGludGVybmFsIHZlcnNpb24gaW5zdGVhZCBvbiBNYWNPU1guCgkgIFNlZSBidWcgIzYzODY2NgoKMjAxMS0wMS0wNSAxMDo1NjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtb3JlIHVwZGF0ZXMgZm9yIHRoZSBwcm9ncmVzcyBtZXNzYWdlcwoKMjAxMS0wMS0wNCAxODozNjo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zaWduYWxzLnhtbDoKCSAgcHdnOiBGaXggbGluayB0byBHT2JqZWN0IGRvY3VtZW50YXRpb24KCSAgQmV0dGVyIGhhdmUgZ25vbWUub3JnIHRoYW4gdmlhZ3JhIDopCgoyMDExLTAxLTAzIDIwOjMyOjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBBbHdheXMgbWFyayByZWNlcHRpb24gYXMgY29tcGxldGUgYWZ0ZXIgRVhJVAoJICBBdm9pZHMgd2FpdGluZyBmb3JldmVyIG9uIGdzdF9wb2xsX3dhaXQgd2hlbiB1c2luZyB0aGUgc2VsZWN0CgkgIGJhY2tlbmQuCgkgIEZpeGVzICM2MzcwNTcKCjIwMTEtMDEtMDQgMDA6NDg6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3RpbmZvOiBkb24ndCB1c2UgcHJpbnRmIGV4dGVuc2lvbnMgaWYgR0xpYiBpc24ndCB1c2luZyB0aGUgc3lzdGVtIHByaW50ZgoJICBNaWdodCBoZWxwIHdpdGggaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODU5OQoKMjAxMS0wMS0wMyAyMDoxOTowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBGaXggZm9yIChwKXNlbGVjdCBiYWNrZW5kCgkgIFdlIG5lZWQgdG8gcmVzZXQgdGhlIHJldmVudHMgZmllbGQgb2YgZWFjaCBwb2xsZmQgd2hlbiByZWFkaW5nIHRoZSByZXN1bHRzCgkgIGZyb20gc2VsZWN0IGVsc2Ugd2UnbGwgZW5kIHVwIHdpdGggc3RyYXkgaW5mbyBmcm9tIHByZXZpb3VzIGNhbGxzIHRvCgkgIHNlbGVjdC4KCjIwMTEtMDEtMDMgMDE6MDY6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBtYWtlIG5ldyBnc3RfdmFsdWVfbGlzdF9tZXJnZSgpIHdvcmsgcHJvcGVybHkKCSAgRml4IGZyZWVpbmcgb2YgcGFydGlhbGx5LWluaXRlZCBsaXN0IHZhbHVlIHdoZW4gYm90aCB2YWx1ZXMKCSAgcGFzc2VkIGFyZSBlcXVhbCBhbmQgd2Ugd2FudCB0byByZXR1cm4gYSBzaW5nbGUgbm9uLWxpc3QKCSAgdmFsdWUgYXMgcmVzdWx0LiBGaXhlcyB1bml0IHRlc3QuIEFsc28gZml4IHVwIGRvY3MgYSBiaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc3NzYKCjIwMTAtMTItMjEgMjM6MDM6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ3M6IGRvbid0IHByb2R1Y2UgZHVwbGljYXRlZCBlbnRyaWVzIHdoZW4gbWVyZ2luZyBzYW1lIHZhbHVlIHR3aWNlCgkgIEFkZCBhIHZhcmlhbnQgb2YgZ3N0X3ZhbHVlX2xpc3RfY29uY2F0KCkgdGhhdCBza2lwcyBkdXBsaWNhdGVzIGFuZCB1c2UgdGhhdCB3aGVuCgkgIG1lcmdpbmcgdGFnbGlzdHMuCgkgIEFQSTogZ3N0X3ZhbHVlX2xpc3RfbWVyZ2UoKQoKMjAxMS0wMS0wMiAxNjo1ODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjLCBiYXNlc2luazogYWRkIHNvbWUgRklYTUVzIGZvciB0aGUgdHlwZSBvZiB0aGUgYmxvY2tzaXplIHByb3BlcnR5CgoyMDEwLTEyLTMxIDEyOjA4OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBtYWtlIHBhZCdzIGdldF90eXBlIGZ1bmN0aW9uIHRocmVhZC1zYWZlCgoyMDEwLTEyLTMxIDExOjM3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLmM6CgkgIGNvcmVlbGVtZW50czogcmVtb3ZlIHVudXNlZCBmaWxlcwoKMjAxMC0xMi0zMSAxMjoyNzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdGVkIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzIGZvciB0aGUgYWN0aXZlLXBhZCB3aXRoIGEgcmVjdXJzaXZlIG11dGV4CgkgIFRoaXMgd29ya3MgYXJvdW5kIGEgdGhyZWFkIHNhZmV0eSBwcm9ibGVtIGluIEdMaWIgPCAyLjI2LjAgYW5kIHNob3VsZAoJICBiZSByZW1vdmVkIHdoZW4gd2UgZGVwZW5kIG9uIDIuMjYuMC4KCSAgRml4ZXMgYnVnICM2MDc1MTMuCgoyMDEwLTEyLTMxIDE2OjUyOjU0ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDE2OjUwOjU3ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGdzdGZkc2luazogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDE2OjUwOjE3ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJICBkb2NzOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzEgMDE6MDk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBvdXRwdXQtc2VsZWN0b3IgdGVzdCB3aGljaCBuZWVkcyBlbGVtZW50cyBmcm9tIC1iYXNlCgkgIE1vdmUgaXQgdG8gLWJhc2UgaW5zdGVhZC4KCjIwMTAtMTItMzEgMDA6NTk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGNoZWNrczogZW5hYmxlIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdW5pdCB0ZXN0cyBhZnRlciBtb3ZlCgoyMDEwLTEyLTMxIDAwOjQ4OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogYWRkIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdG8gZG9jcwoKMjAxMC0xMi0zMSAwMDo0NTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBjb3JlZWxlbWVudHM6IEdTVF9CT0lMRVJQTEFURSBhbHJlYWR5IHNldHMgcGFyZW50X2NsYXNzCgoyMDEwLTEyLTMxIDAwOjQzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yLCBvdXRwdXQtc2VsZWN0b3I6IG1pbm9yIGNsZWFuLXVwcwoKMjAxMC0xMi0zMCAxODo1NzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBjb3JlZWxlbWVudHM6IG1vdmUgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB0byBjb3JlCgkgIE1vdmVkIHRvIGNvcmUgZnJvbSBnc3QtcGx1Z2lucy1iYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTQzMDYKCjIwMTAtMTEtMjQgMTI6MjI6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIG91dHB1dC1zZWxlY3Rvci10ZXN0OiBkb24ndCBoYXJkY29kZSB2aWRlb3NpbmtzIGFuZCB1c2UgbW9yZSBjb2xvcnNwYWNlIGNvbnYuCgkgIFVzZSBhdXRvdmlkZW9zaW5rIGluc3RlYWQgb2YgaGFyZGNvZGVkIHNpbmtzLiBVc2UgYW4gYWRkaXRpb25hbCBjb2xvcnNwYWNlCgkgIGNvbnZlcnRlciBiZXR3ZWVuIHZpZGVvdGVzdHNyYyBhbmQgdGltZW92ZXJsYXkuCgoyMDEwLTA5LTE3IDA5OjUyOjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEF2b2lkIGxvc2luZyB0aGUgbGFzdF9idWZmZXIgd2hlbiBzd2l0Y2hpbmcKCSAgVGhpcyBwYXRjaCBtYWtlcyBvdXRwdXRzZWxlY3RvciB0YWtlIGFuIGV4dHJhIHJlZiB3aGVuIHB1c2hpbmcKCSAgdGhlIGxhc3RfYnVmZmVyIHRvIGF2b2lkIGl0IGxvc2luZyBpdCBkdXJpbmcgdGhlIHN3aXRjaCBmdW5jdGlvbi4KCSAgVGhpcyBtYWtlcyByZXNlbmQtbGF0ZXN0IHByb3Blcmx5IHdvcmsgaWYgdGhlIGFjdGl2ZS1wYWQgaXMgY2hhbmdlZAoJICBkdXJpbmcgdGhlIHN3aXRjaCBmdW5jdGlvbiBidWZmZXIgcHVzaGluZyAob24gYSBwYWQgcHJvYmUsIGZvciBleGFtcGxlKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxNwoKMjAxMC0wOS0xNyAwOTo0NDowMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBSZWNoZWNrIHBlbmRpbmcgc3dpdGNoIGFmdGVyIHB1c2hpbmcgYnVmZmVyCgkgIFRoaXMgcGF0Y2ggbWFrZXMgb3V0cHV0LXNlbGVjdG9yIGFsd2F5cyByZWNoZWNrIGlmIHRoZXJlJ3MgYQoJICBwZW5kaW5nIHBhZCBzd2l0Y2ggYWZ0ZXIgcHVzaGluZyBhIGJ1ZmZlciwgcHJldmVudGluZyB0aGF0CgkgIGl0IHB1c2hlcyBhIGJ1ZmZlciBvbiB0aGUgJ3dyb25nJyBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5MTcKCjIwMTAtMTEtMDEgMjM6MDQ6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBsb2cgdGltZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybQoKMjAxMC0xMS0wMSAyMjo0MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IG1vdmUgcmVvY2N1cmluZyBsb2dzIHRvIExPRyBhbmQgcmVtb3ZlIGEgZG91YmxlIGluZm8KCSAgTGVzcyBkZWJ1ZyBzcGV3IGluIERFQlVHIGNhdGVnb3J5LiBObyBuZWVkIHRvIGxvZyBwYWQgYWdhaW4gaWYgd2UgdXNlCgkgIEdTVF9MT0dfT0JKRUNUKHBhZCwuLi4pLgoKMjAxMC0xMC0xOSAxMzo0MzoxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgdmFyaW91cyAoZ3N0KTogYWRkIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmbGFncwoJICBDYW5vbmljYWxpemUgcHJvcGVydHkgbmFtZXMgYXMgbmVlZGVkLgoKMjAxMC0wOS0wNiAxMTowMzowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHN5bmMgd2l0aCBjb3B5IGluIC1iYXNlCgkgIFVzZSBfZ2V0X2NhcHNfcmVmZmVkIHRvIGF2b2lkIGNvcGllcy4KCjIwMTAtMDgtMjQgMTE6NTA6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IG1vdmUgdGhlIGRlYnVnIGluaXQgdG8gdGhlIGJvaWxlcnBsYXRlIG1hY3JvCgoyMDEwLTA4LTI0IDExOjUwOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogdXNlIEdTVF9CT0lMRVJQTEFURSBtYWNybwoKMjAxMC0wMy0yMiAxMzoxNjozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIC1Xd3JpdGUtc3RyaW5ncwoJICBhbmQgZml4IGl0cyB3YXJuaW5ncwoKMjAxMC0wMy0yMSAyMTozOToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgdG8gY29uZmlndXJlIGZsYWdzCgkgIEFuZCBmaXggYWxsIHdhcm5pbmdzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMTAtMDEtMjUgMTI6MjE6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFJldmVydCAiaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBnX29iamVjdF9ub3RpZnkoKSB3aXRoIHRoZSBvYmplY3QncyBtdXRleCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3ZTA2NzYxNWZmYjU2MTRmMDY4Zjc3NTNjMTBkZGU5OWFmZTQ5YzNjLCBpdCdzIGNhdXNpbmcKCSAgZGVhZGxvY2tzIHdpdGggcGxheWJpbjIuCgoyMDEwLTAxLTI0IDIwOjUzOjAwICswMTAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3QgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aCB0aGUgb2JqZWN0J3MgbXV0ZXgKCSAgVGhpcyB3b3JrcyBhcm91bmQgdGhlIHRocmVhZCB1bnNhZmV0eSBvZiBnX29iamVjdF9ub3RpZnkoKQoJICBGaXhlcyBidWcgIzYwNzUxMy4KCjIwMDktMTEtMDkgMTE6NDk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFJlbW92ZSB1c2VsZXNzIHZhcmlhYmxlcyBhbmQgZml4IGEgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBkZmQ1MWFhODJhOWUxYzk5MjQzNzUxODM3OTZlYWI3MGU1NzRhMjMxLgoKMjAwOS0xMS0wOSAxMTo0ODozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTWFrZSBzdXJlIHRoYXQgcnVubmluZ190aW1lLT50aW1lc3RhbXAgY2FsY3VsYXRpb24gbmV2ZXIgYmVjb21lcyBuZWdhdGl2ZQoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBmMzY1Mzg1NDU4NTg2NGEwOWQzNWUwMzc4NTM0MDczMzJlYTY5MDFmLgoKMjAwOS0xMS0wOSAxMTo0ODowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzdGFydCB0aW1lIChpLmUuIHRpbWVzdGFtcCkgYXMgdGhlIGxhc3Qgc3RvcAoJICBVc2luZyB0aGUgZW5kIHRpbWUgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byByZXBsYWNlIGJ1ZmZlcnMsIHdoaWNoIGlzCgkgIGEgYmlnIHByb2JsZW0gZm9yIHN1YnRpdGxlcyB0aGF0IGNvdWxkIGhhdmUgdmVyeSBsb25nIGR1cmF0aW9ucy4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgMjcwMzRiZTQ2MTEyMzFjYzU1ZmEzZDNlMjUzYmFhNDBjNmJmZjQxZC4KCjIwMDktMTEtMDkgMTE6NDc6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEltcHJvdmUgZGVidWdnaW5nCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UuCgoyMDA5LTExLTA1IDEzOjUzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFJldmVydCAiaW5wdXRzZWxlY3RvcjogdXNlIGdldF9jYXBzX3JlZmZlZCgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQ5ZWM0Zjc5NmEwZTNmODhhODUxNzA4NzgyYzg1M2JhZjRiMDU3MjQuCgkgIFdlIGNhbid0IHVzZSB0aGlzIG5ldyBmdW5jdGlvbiB5ZXQuCgoyMDA5LTExLTA1IDEzOjI5OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHVzZSBnZXRfY2Fwc19yZWZmZWQoKQoKMjAwOS0xMS0wNCAwMDoyMToxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGFsc28gYWRkIGlubGluZSB0byB0aGUgcHJvdG8gdG8gZml4IHRoZSBidWlsZAoKMjAwOS0xMS0wMyAxODoxNDoxMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBnc3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIGFuZCByZXN1bHRpbmcgdW51c2VkIHZhcmlhYmxlcwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA4Y2QxYjUyMDliNjg5NDRlMWJlNTZjYThiYjY5ZTQ2ZDRhYmI3YTM0LgoKMjAwOS0xMS0wMyAxODoxMjoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzYW1lIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gYXMgaW4gZ3N0LXBsdWdpbnMtYmFzZQoKMjAwOS0xMS0wMyAxODoxMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgc2l4dGVlbnRoIG9mIGEgcG9sYXIgYmVhci4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgNmY0YzFhYzU4MzQxZWUxODkyMjVkMzEzZGRmZTlhZTI0YTY1Yzg4Yy4KCjIwMDktMTEtMDMgMTg6MDk6NTUgKzAxMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgUm9uYWxkIEJ1bHRqZSBmcm9tIEF1dGhvcnMgZmllbGQKCSAgUmVwbGFjZWQgd2l0aCAiR1N0cmVhbWVyIG1haW50YWluZXJzCgkgIDxnc3RyZWFtZXItZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0PiIgb3IganVzdCByZW1vdmVkLAoJICBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBvdGhlciBhdXRob3JzLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCAwZTliYzUxMjVhY2E1NDZkNzczZWQxMDAyZGY1NzNkZDhlMmRjMTM2LgoKMjAwOS0xMS0wMyAxODowODowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBzZXQgb3V0cHV0IGNhcHMgYmVmb3JlIHB1c2hpbmcKCSAgU2V0IHRoZSBvdXRwdXQgY2FwcyBvbiB0aGUgc3JjcGFkIGJlZm9yZSBwdXNoaW5nIHRoZSBidWZmZXIgYmVjYXVzZSBlbHNlIGNvcmUKCSAgd2lsbCBkbyBhIHJhdGhlciBleHBlbnNpdmUgY2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBhY3R1YWxseSBhY2NlcHQgdGhvc2UgY2FwcyBvbgoJICB0aGUgc3JjcGFkLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBiZGZiNGI0NmQ3NDZlZjI5OGZjZjQ0MjYwODc5YzM0MmFmNGNhZmEzLgoKMjAwOS0xMS0wMyAxODowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBpbnN0YWxsIGFuIGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgSW5zdGFsbCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgdXNpbmcgdGhlIGRlZmF1bHQgZXhwZW5zaXZlCgkgIGNoZWNrLiBXZSBhY2NlcHQgd2hhdGV2ZXIgZG93bnN0cmVhbSBhY2NlcHRzIHNvIHdlIHBhc3MgYWxvbmcgdGhlIGFjY2VwdGNhcHMKCSAgY2FsbCB0byB0aGUgZG93bnN0cmVhbSBwZWVyLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA1YjcyZjJhZGY5OTY3MzkwMzZlOGQ5YjVmOTEwMDU0NTVkMWZmYWNlLgoKMjAwOS0xMC0yNyAxMTo1MTowNSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBSZW1vdmUgZXhlY3V0YWJsZSBiaXRzIGZyb20gbm9uLWV4ZWN1dGFibGUgZmlsZXMuCgoyMDA5LTA5LTI1IDExOjA3OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgbmV3IHNpbmdsZSBpdGVyYXRvciBmb3IgdGhlIGludGVybmFsbHkgbGlua2VkIHBhZHMKCSAgVGhpcyBmaXhlcyBhIGRlYWRsb2NrIGFuZCByZW1vdmVzIHNvbWUgdXNlbGVzcyBjb2RlLgoKMjAwOS0wOC0zMSAxOTozMTo1NyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogbWFrZSBHU1RfRk9STUFUX1RJTUUgdGhlIGRlZmF1bHQgc2VnbWVudCBmb3JtYXQKCjIwMDktMDgtMTkgMTc6MDU6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXQgaW50ZXJuYWwgbGlua3MKCjIwMDktMDctMzEgMTE6Mjc6MDMgKzAzMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS4xLm15b2hhbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGNoZWNrIGZvciBwZW5kaW5nIHNyY3BhZCBpbiBfZ2V0X3Byb3BlcnR5KCkKCSAgSWYgdGhlcmUgaXMgYSBwZW5kaW5nIHNyY3BhZCwgcmV0dXJuIGl0IGluc3RlYWQgb2YgYWN0aXZlIHNyY3BhZAoJICBpbiBnc3Rfb3V0cHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSgpIGZ1bmN0aW9uLgoKMjAwOS0wNi0xMiAxMDoxNDoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogZG8gdGhlIHBhZF9hbGxvYyBmb3IgdGhlIHBhZCB0aGF0IGlzIHBlbmRpbmcgYW5kIGhhdmUgYSBmYWxsYmFjawoJICBXZSBzaG91bGQgZG8gdGhlIHBhZF9hbGxvYyBmb3IgdGhlIHBlbmRpbmcgcGFkIGlmIGFueSwgYXMgd2Ugd2lsbCBzd2l0Y2ggdG8gdGhhdAoJICBwYWQgb24gbmV4dCBfY2hhaW4oKSBjYWxsLiBBbHNvIGRvIGEgZmFsbGJhY2sgYWxsb2MsIGlmIHRoZXJlIGlzIG5vIG91dHB1dCB5ZXQgdG8KCSAgbm90IGZhaWwgc3RhdGUgdHJhbnNpdGlvbnMgaW4gZHluYW1pYyBwaXBlbGluZXMuCgoyMDA5LTA2LTAxIDE2OjMxOjQyICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3Rvcjogc2VyaWFsaXplIHNldHRpbmcgYW5kIGFjdHVhbCBjaGFuZ2luZyBvZiBuZXcgYWN0aXZlIHBhZAoKMjAwOS0wNS0wNCAxMjoyOTo1NCArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IHVucmVmIGxhdGVzdCBidWZmZXIgYWxzbyB3aGVuIHJlc2VuZGluZyBoYXMgYmVlbiBkaXNhYmxlZAoKMjAwOS0wNC0xNiAxNzozMjowMyArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IGtlZXAgcmVmIHRvIGJ1ZmZlciBmb3IgcmVzZW5kaW5nIG9ubHkgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQKCjIwMDktMDYtMDQgMTk6MDg6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZG9uJ3QgbGVhayBwYWRzIGluIGl0ZXJhdG9yCgoyMDA5LTA2LTA0IDA4OjU2OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBOb3RpZnkgd2hlbiB0aGUgdGFncyBwcm9wZXJ0eSBvZiB0aGUgc2VsZWN0b3Igc2lua3BhZHMgY2hhbmdlcwoJICBGaXJzdCBwYXJ0IG9mIGJ1ZyAjNTg0Njg2LgoKMjAwOS0wNS0yOCAxMDozODo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBzZWxlY3RvcjogcmVtb3ZlIG5vdCBuZWVkZWQgaW5zdGFuY2UgdmFyIChwcmV2aW91cyBjb21taXQpLgoKMjAwOS0wNS0yOCAxMDoxMjo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIG91dHB1dHNlbGVjdG9yOiBpbXBsZW1lbnQgcGFkX2FsbG9jIG9uIGFjdGl2ZSBwYWQuCgoyMDA5LTA0LTIzIDExOjA0OjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZvcndhcmQgc2VnbWVudCBldmVudHMgZm9yIHRoZSBhY3RpdmUgcGFkIGltbWVkaWF0ZWx5LgoJICBXaGVuIGEgc2VnbWVudCBldmVudCBpcyByZWNlaXZlZCBvbiB0aGUgYWN0aXZlIHBhZCwgZm9yd2FyZCBpdCBkb3duc3RyZWFtCgkgIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgZGVmZXJyaW5nIGl0IHVudGlsIHRoZSBuZXh0IGRhdGEgYnVmZmVyIGFycml2ZXMuIFRoaXMKCSAgZml4ZXMgcHJvYmxlbXMgd2l0aCBzZWdtZW50IHVwZGF0ZXMgbmV2ZXIgYmVpbmcgc2VudCBkb3duc3RyZWFtLCBsaWtlIHRob3NlCgkgIG5lZWRlZCBmb3Igc3BhcnNlIHN0cmVhbXMsIG9yIGZvciBjbG9zaW5nIHByZXZpb3VzbHkgb3BlbmVkIHNlZ21lbnRzLgoJICBUaGlzIGZpeGVzIHBsYXliYWNrIG9mIERWRCBtZW51cyB3aXRoIGEgc3RpbGwgdmlkZW8gZnJhbWUgYW5kIGFuIGF1ZGlvIHRyYWNrLAoJICBmb3IgZXhhbXBsZS4KCSAgRml4ZXM6ICM1Nzc4NDMKCjIwMDktMDMtMjcgMTE6MjA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiByZXNldCBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZCgkgIFJlc2V0IHRoZSBsYXN0LWJ1ZmZlciwgdGhlIHBlbmRpbmcgcGFkIGFuZCB0aGUgc2VnbWVudCB3aGVuIGdvaW5nIHRvIHRoZSBSRUFEWQoJICBzdGF0ZS4KCSAgRml4ZXMgIzU3NjcxMi4KCjIwMDktMDMtMjQgMTU6MjM6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IG1lcmdlIHRoZSB0YWdzCgkgIE1lcmdlIHRoZSB0YWdzIHJlY2VpdmVkIG9uIHRoZSBpbnB1dC1zZWxlY3RvciBzaW5rcGFkcyBpbnN0ZWFkIG9mIG9ubHkga2VlcGluZwoJICB0aGUgbGFzdCBvbmUgd2Ugc2F3LgoKMjAwOS0wMi0yNSAxMTo0NTowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGRvY3M6IHZhcmlvdXMgZG9jIGZpeGVzCgkgIE5vIHNob3J0LWRlc2MgYXMgd2UgaGF2ZSB0aGVtIGluIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIEFsc28ga2VlcCB0aGluZ3MgKE1ha2VmaWxlLmFtIGFuZCBzZWN0aW9ucy50eHQpIHNvcnRlZC4KCSAgUmV3b3JkIGFtYmlnb3VzIHJldHVybnMuIE5vIHRleHQgYWZ0ZXIgc2luY2UgcGxlYXNlLgoKMjAwOS0wMi0xMSAxNzoyMToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGNvbXBpbGF0aW9uLCBhY3RpdmF0ZV9zaW5rcGFkKCkgaGFzIG5vIG5vdGlmeSBwYXJhbWV0ZXIKCjIwMDktMDItMTAgMTY6MjI6NTQgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBBY3RpdmF0ZSBhbmQgbm90aWZ5IHBhZCBiZWZvcmUgcHJvY2Vzc2luZyBldmVudHMuCgkgIEV2ZW50cyBzaG91bGQgdHJpZ2dlciBwYWQgc2VsZWN0aW9uIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBhbgoJICBleHBsaWNpdGx5IHNlbGVjdGVkIHBhZCwgc28gdGhhdCBldmVudHMgcHJpb3IgdG8gZmlyc3QgYnVmZmVyIGRvbid0IGdldAoJICBsb3N0LgoKMjAwOS0wMS0zMCAxODoyNzowMyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgVW5yZWYgZXZlbnQgaWYgd2UgZG9uJ3QgZm9yd2FyZCBpdCwgdW5yZWYgcGFkcyB3aGVuIGRvbmUgd2l0aCB0aGVtLgoKMjAwOC0xMi0wNCAxNzo1MTozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEVuc3VyZSB3ZSBlbWl0IG5vdGlmeTo6YWN0aXZlLXBhZCB3aGVuIGF1dG8tc2VsZWN0aW5nIGEgcGFkIGR1ZSB0byBpdCBoYXZpbmcgYWN0aXZpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgRW5zdXJlIHdlIGVtaXQgbm90aWZ5OjphY3RpdmUtcGFkIHdoZW4gYXV0by1zZWxlY3RpbmcgYSBwYWQKCSAgZHVlIHRvIGl0IGhhdmluZyBhY3Rpdml0eSBhbmQgdXMgbm90IGhhdmluZyBhbiBleGlzdGluZyBhY3RpdmUKCSAgcGFkLiBGaXhlcyAjNTYzMTQ3CgoyMDA4LTEwLTE1IDE3OjQ1OjM3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEdyYWNlZnVsbHkgaGFuZGxlIHRoZSBjYXNlcyB3aGVuIHdlIGRvbnQnIGhhdmUgb3RoZXJwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2V2ZW50KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIEdyYWNlZnVsbHkgaGFuZGxlIHRoZSBjYXNlcyB3aGVuIHdlIGRvbnQnIGhhdmUgb3RoZXJwYWQuCgkgIEZpeGVzICM1NTY0MzAKCjIwMDgtMTAtMDcgMTM6MTQ6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzogQ2hvb3NlIHJpZ2h0IHBhZCBmb3Igc2VuZGluZyBldmVudHMuIEZpeGVzICM1NTUyNDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBDaG9vc2UgcmlnaHQgcGFkIGZvciBzZW5kaW5nIGV2ZW50cy4gRml4ZXMgIzU1NTI0NAoKMjAwOC0wOS0wOCAyMDoyNzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZXNldCB0aGUgc2VsZWN0b3Igc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX3Jlc2V0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXNldCksIChnc3RfaW5wdXRfc2VsZWN0b3JfY2hhbmdlX3N0YXRlKToKCSAgUmVzZXQgdGhlIHNlbGVjdG9yIHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA4LTA5LTAxIDEzOjIzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJldXNlIHRoZSBnZXRfbGlua2VkX3BhZHMgZm9yIGJvdGggc291cmNlIGFuZCBzaW5rcGFkcyBiZWNhdXNlIHRoZXkgYXJlIHRoZSBzYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9ldmVudCksIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBSZXVzZSB0aGUgZ2V0X2xpbmtlZF9wYWRzIGZvciBib3RoIHNvdXJjZSBhbmQgc2lua3BhZHMgYmVjYXVzZSB0aGV5IGFyZQoJICB0aGUgc2FtZS4KCSAgSW1wbGVtZW50IGEgY3VzdHVtIGV2ZW50IGhhbmRsZXIgYW5kIGdldCB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdCAoc2xvd2VyKSBpbXBsZW1lbnRhdGlvbi4KCjIwMDgtMDgtMjcgMTU6NDU6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogSW1wbGVtZW50IHRoZSBMQVRFTkNZIHF1ZXJ5IGluIGEgYmV0dGVyIHdheSBieSB0YWtpbmcgdGhlIGxhdGVuY3kgb2YgYWxsIHNpbmtwYWRzIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgSW1wbGVtZW50IHRoZSBMQVRFTkNZIHF1ZXJ5IGluIGEgYmV0dGVyIHdheSBieSB0YWtpbmcgdGhlIGxhdGVuY3kgb2YgYWxsCgkgIHNpbmtwYWRzIGFuZCB0YWtpbmcgdGhlIG1pbi9tYXggaW5zdGVhZCBvZiBqdXN0IHRha2luZyBhIHJhbmRvbSBwYWQuCgoyMDA4LTA4LTA1IDA5OjA1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IE1vdmUgdGhlIHNlbGVjdC1hbGwgbG9naWMgaW50byB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBhZC4gV2Ugd2FudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0Y2FwcyksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfYWN0aXZhdGVfc2lua3BhZCk6CgkgIE1vdmUgdGhlIHNlbGVjdC1hbGwgbG9naWMgaW50byB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkCgkgIHBhZC4gV2Ugd2FudCB0byByZW1lbWJlciB0aGUgbGFzdCBwYWQgd2l0aCBhY3Rpdml0eSBpbiBzZWxlY3QtYWxsIG1vZGUuCgkgIEZpeCB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiwgd2UgY2FuIHByb2R1Y2UgdGhlIHVuaW9uIG9mIHRoZSB1cHN0cmVhbSBjYXBzCgkgIGluIHNlbGVjdC1hbGwgbW9kZSwgbm90IHRoZSBpbnRlcnNlY3Rpb24gbGlrZSBwcm94eV9nZXRjYXBzKCkgZG9lcy4KCjIwMDgtMDYtMTkgMTM6MTg6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG91dHB1dC1zZWxlY3RvcjogVXNlIEJPSUxFUlBMQVRFIG1hY3JvIGFuZCB1cGRhdGUgdGVzdCB0byB0aGUgbGF0ZXN0IGFwaSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgVXNlIEJPSUxFUlBMQVRFIG1hY3JvIGFuZCB1cGRhdGUgdGVzdCB0byB0aGUgbGF0ZXN0IGFwaSBjaGFuZ2VzLgoKMjAwOC0wNi0xMiAxNDo0OToxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0IHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kYzEzOTQvZ3N0ZGMxMzk0LmM6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZGVjLmM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICAqIGV4dC9tZXRhZGF0YS9nc3RtZXRhZGF0YWRlbXV4LmM6CgkgICogZXh0L215dGh0di9nc3RteXRodHZzcmMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGdzdC1saWJzL2dzdC9hcHAvZ3N0YXBwc2luay5jOgoJICAqIGdzdC9iYXllci9nc3RiYXllcjJyZ2IuYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgKiBnc3QvcmF3cGFyc2UvZ3N0YXVkaW9wYXJzZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3R2aWRlb3BhcnNlLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0CgkgIHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FybmluZ3MgaWYgdGhleSBkaWZmZXIuCgkgIEFsc28gZml4aW5nIHVwIHRoZSBDaGFuZ2VMb2cgb3JkZXIuCgoyMDA4LTAzLTIwIDE4OjEwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IERvIGdfb2JqZWN0X25vdGlmeSgpIG9ubHkgd2hlbiBub3QgaG9sZGluZyB0aGUgbG9jayB0byBnZXQgdGhlIHByb3BlcnR5IGJlY2F1c2Ugb3RoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgRG8gZ19vYmplY3Rfbm90aWZ5KCkgb25seSB3aGVuIG5vdCBob2xkaW5nIHRoZSBsb2NrIHRvIGdldCB0aGUgcHJvcGVydHkKCSAgYmVjYXVzZSBvdGhlcndpc2Ugd2UgcnVuIGludG8gYSBkZWFkbG9jayB3aXRoIHRoZSBkZWVwLW5vdGlmeSBoYW5kbGVycwoJICB0aGF0IGFyZSBwb3NzaWJseSBpbnN0YWxsZWQuCgoyMDA4LTAzLTIwIDE3OjQ4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJlbGVhc2UgdGhlIHNlbGVjdG9yIGxvY2sgd2hlbiBwYWQgYWxsb2MgaGFwcGVucyBvbiBhIG5vbiBzZWxlY3RlZCBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCk6CgkgIFJlbGVhc2UgdGhlIHNlbGVjdG9yIGxvY2sgd2hlbiBwYWQgYWxsb2MgaGFwcGVucyBvbiBhIG5vbiBzZWxlY3RlZCBwYWQuCgoyMDA4LTAzLTIwIDE3OjA3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEFkZCBwYWQgcHJvcGVydHkgdG8gY29uZmlndXJlIGJlaGF2aW91ciBvZiB0aGUgdW5zZWxlY3RlZCBwYWQsIGl0IGNhbiByZXR1cm4gT0sgb3IgTi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2luaXQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKToKCSAgQWRkIHBhZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYmVoYXZpb3VyIG9mIHRoZSB1bnNlbGVjdGVkIHBhZCwgaXQgY2FuCgkgIHJldHVybiBPSyBvciBOT1RfTElOS0VELCBiYXNlZCBvbiB0aGUgdXNlIGNhc2UuCgoyMDA4LTAzLTIwIDE2OjQ4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IEZpZ3VyZSBvdXQgdGhlIGxvY2tpbmcgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlbGVjdG9yX3BhZF9yZXNldCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksIChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZGlzcG9zZSksIChnc3Rfc2VnbWVudF9zZXRfc3RhcnQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X2xpbmtlZF9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2lzX2FjdGl2ZV9zaW5rcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9hY3RpdmF0ZV9zaW5rcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2Jsb2NrKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBGaWd1cmUgb3V0IHRoZSBsb2NraW5nIGEgYml0IG1vcmUuCgkgIE1hcmsgYnVmZmVycyB3aXRoIGRpc2NvbnQgYWZ0ZXIgc3dpdGNoaW5nLgoJICBGaXggaW5pdGlhbCBzZWdtZW50IGZvcndhcmRpbmcsIG1ha2Ugc3VyZSB0byBvbmx5IGZvcndhcmQgb25lIHNlZ21lbnQKCSAgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzZXF1ZW5jZSBvZiBidWZmZXJzL3NlZ21lbnRzIGlzLiBTZWUgIzUyMjIwMy4KCSAgSW1wcm92ZSBmbHVzaGluZyB3aGVuIGJsb2NrZWQuCgkgIFJldHVybiBOT1RfTElOS0VEIHdoZW4gYSBzdHJlYW0gaXMgbm90IHNlbGVjdGVkLgoJICBOb3QgQVBJIGNoYW5nZSBmb3IgdGhlIHN3aXRjaCBzaWduYWwgaW4gdGhlIGRvY3MuCgkgIEZpeCBzdGFydC90aW1lL2FjY3VtIHZhbHVlcyBvZiB0aGUgbmV3IHNlZ21lbnQuCgkgIENvcnJlY3RseSB1bmxvY2sgYW5kIGZsdXNoIGEgYmxvY2tpbmcgc2VsZWN0b3Igd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDgtMDMtMTQgMTc6MjI6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogQWRkIGxvdHMgb2YgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9wdXNoX3BlbmRpbmdfc3RvcCk6CgkgIEFkZCBsb3RzIG9mIGRlYnVnZ2luZy4KCSAgRml4IHRpbWUgbWVtYmVyIGluIHRoZSBuZXdzZWdtZW50IGV2ZW50LgoKMjAwOC0wMy0xMyAxNjo0NjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBWYXJpb3VzIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2ZpbmFsaXplKSwgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcHVzaF9wZW5kaW5nX3N0b3ApLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIEFkZGVkIHRhZ3MgdG8gdGhlIHBhZHMuCgkgIFNlbGVjdCBhY3RpdmUgcGFkIGJhc2VkIG9uIHRoZSBwYWQgb2JqZWN0IGluc3RlYWQgb2YgaXRzIG5hbWUuCgkgIEZpeCByZWZjb3VudCBpbiBzZXRfYWN0aXZlX3BhZC4KCSAgQWRkIHByb3BlcnR5IHRvIGdldCB0aGUgbnVtYmVyIG9mIHBhZHMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KToKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgU2VsZWN0IHRoZSBhY3RpdmUgcGFkIGJhc2VkIG9uIHRoZSBwYWQgb2JqZWN0IGluc3RlYWQgb2YgaXRzIG5hbWUuCgkgIEZpeCBsb2NraW5nIHdoZW4gc2V0dGluZyB0aGUgYWN0aXZlIHBhZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOiAoY2xlYW51cF9wYWQpLAoJICAoc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLCAocnVuX2lucHV0X3NlbGVjdG9yX2J1ZmZlcl9jb3VudCk6CgkgIEZpeGVzIGZvciBwYWQgaW5zdGVhZCBvZiBwYWRuYW1lIGZvciBwYWQgc2VsZWN0aW9uLgoKMjAwOC0wMi0yNiAxMjowMTozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOiBGaXggY2hhbmdpbmcgdG8gc2FtZSBwYWQgdHdpY2UgYmVmb3JlIGEgY2hhaW4gY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggY2hhbmdpbmcgdG8gc2FtZSBwYWQgdHdpY2UgYmVmb3JlIGEgY2hhaW4gY2FsbC4KCjIwMDgtMDItMjUgMDg6NTM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBBZGRlZCAic2VsZWN0LWFsbCIgcHJvcGVydHkgdG8gbWFrZSBpdCB3b3JrIGxpa2UgYWdncmVnYXRvciBpbiAwLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBBZGRlZCAic2VsZWN0LWFsbCIgcHJvcGVydHkgdG8gbWFrZSBpdCB3b3JrIGxpa2UgYWdncmVnYXRvciBpbiAwLjguCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggcmVzZW5kLWxhdGVzdCBiZWhhdm9pdXIuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3Igc2VsZWN0b3IuCgoyMDA4LTAyLTA3IDEzOjQ4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzogQWRkIGEgZml4bWUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIEFkZCBhIGZpeG1lIGNvbW1lbnQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggc2FtZSBsZWFrIGFzIGluIGlucHV0LXNlbGVjdG9yLgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIEltcHJvdmUgdGhlIHRlc3QuCgoyMDA4LTAyLTAxIDE3OjA4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IERvbid0IGxlYWsgZXZlbnQgb24gcGFkcyB0aGF0IGFyZSBub3QgbGlua2VkLiBGaXhlcyAjNTEyODI2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpOgoJICBEb24ndCBsZWFrIGV2ZW50IG9uIHBhZHMgdGhhdCBhcmUgbm90IGxpbmtlZC4gRml4ZXMgIzUxMjgyNi4KCjIwMDgtMDEtMjkgMDc6Mzg6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlcGxhY2UgdGhlIHN3aXRjaCBwbHVnaW4gd2l0aCB0aGUgc2VsZWN0b3IgcGx1Z2luLiBBZGQgb3V0cHV0LSBzZWxlY3RvciBhcyB0aGUgb3Bwb3NpdGUgb2YgaW5wdXQtc2VsZWN0b28gKHdhcyBzd2l0Yy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNlbGVjdG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN3aXRjaC54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9zZWxlY3Rvci52Y3Byb2o6CgkgICogZ3N0L3N3aXRjaC8uY3ZzaWdub3JlOgoJICAqIGdzdC9zd2l0Y2gvTWFrZWZpbGUuYW06CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2gtbWFyc2hhbC5saXN0OgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guaDoKCSAgKiBnc3Qvc3dpdGNoL3N3aXRjaC52Y3Byb2o6CgkgICogdGVzdHMvaWNsZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBSZXBsYWNlIHRoZSBzd2l0Y2ggcGx1Z2luIHdpdGggdGhlIHNlbGVjdG9yIHBsdWdpbi4gQWRkIG91dHB1dC0KCSAgc2VsZWN0b3IgYXMgdGhlIG9wcG9zaXRlIG9mIGlucHV0LXNlbGVjdG9vICh3YXMgc3dpdGNoKS4gQWRkIGEgdGVzdAoJICBmb3Igb3V0cHV0LXNlbGVjdG9yLiBBZGQgZG9jcyBmb3IgdGhlIGVsZW1lbnRzLiBUaGUgdmNwcm9qIG5lZWRzCgkgIHVwZGF0ZS4gRml4ZXMgIzUwMDE0Mi4KCjIwMTAtMTItMzAgMDA6NDY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IGFkZCB2YWx2ZSBlbGVtZW50IHRvIGRvY3VtZW50YXRpb24KCjIwMTAtMTItMzAgMDA6NDE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBzb21lIG1pbm9yIGNsZWFuLXVwcwoKMjAxMC0xMi0zMCAwMDozMDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXggdHlwbyBpbiBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoJICBBbmQgcmVwaHJhc2Ugd2hpbGUgYXQgaXQsIHRvIG1ha2UgaXQgbW9yZSBjb25jaXNlLgoKMjAxMC0xMi0zMCAwMDoyNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IGVuYWJsZSB2YWx2ZSB1bml0IHRlc3QKCjIwMTAtMTItMzAgMDA6MjI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBhZGQgbmV3IHZhbHZlIGVsZW1lbnQgdG8gYnVpbGQKCSAgTW92ZWQgZnJvbSBnc3QtcGx1Z2lucy1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDgwOAoKMjAxMC0xMC0xOSAyMzo0MDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogZml4IHZhbHZlIHVuaXQgdGVzdAoJICBnc3RfYnVmZmVyX3BhZF9hbGxvYygpIG5lZWRzIHNpbXBsZSBjYXBzIG9yIE5VTEwgY2FwcywKCSAgQU5ZIGNhcHMgYXJlIG5vdCBhbGxvd2VkLgoKMjAxMC0wOS0yOCAxMzo1MjoyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbm8gbmVlZCB0byByZWYgdGhlIG9iamVjdCBpbiBfY2hhaW4KCSAgRG9uJ3QgcmVmIHRoZSBwYWQgaW4gY2hhaW4sIGxpa2UgZWxzZXdoZXJlCgoyMDEwLTA5LTMwIDE3OjQ4OjM1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogRml4IGNhcHMgbGVhayBpbiB0aGUgdmFsdmUgdGVzdAoKMjAxMC0wOS0zMCAxNzoyNDoyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IEFkZCB1bml0IHRlc3RzCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIHZhbHZlIGVsZW1lbnQuCgoyMDEwLTA5LTMwIDE2OjI2OjE5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IE1ha2UgdGhlIGRyb3AgdmFyaWFibGUgaW50byBhbiBhdG9taWMuCgkgIFVzaW5nIGFuIGF0b21pYyBhbGxvd3MgdXMgdG8gYXZvaWQgbG9ja2luZyB0aGUgd2hvbGUgb2JqZWN0IGFsbCB0aW1lIHRpbWUuCgkgIEFzIHN1Z2dlc3RlZCBieSBTdGVmYW4gS29zdC4KCjIwMTAtMDktMzAgMTY6MjI6MDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IENvcnJlY3RseSBzZXQgdGhlIERJU0NPTlQgZmxhZyBhZnRlciBkcm9wcGluZyBidWZmZXJzCgoyMDEwLTA5LTMwIDE2OjE2OjQ3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBSZW1vdmUgc3VwZXJmbG91cyBjaGVja2luZyBjYXN0cwoKMjAxMC0wOS0zMCAxNjoxMzoyMyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRml4IHN0eWxlLCBpbXByb3ZlIGNvbW1lbnRzCgkgIE1pbm9yIGltcHJvdmVtZW50cyB0byB0aGUgY29tbWVudHMgYW5kIGJyZWFrIGEgZmV3IG92ZXJseSBsb25nIGxpbmVzCgoyMDEwLTA5LTI4IDE0OjI2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBtb3ZlIGRlZmF1bHQ6IHBhcnN0IGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50IHRvIHRoZSBlbmQKCSAgTm93IHN1cmUgaWYgaXQgbWF0dGVycywgYnV0IHRoZSBwcmV2aW91cyBmb3JtIGxvb2tzIHdlaXJlZC4KCjIwMTAtMDktMjggMTQ6MjM6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG1vdmUgZGVidWctY2F0ZWdvcnkgcmVnaXN0cmF0aW9uIHRvIHR5cGUgaW5pdAoKMjAxMC0wOS0yOCAxNDoxNToxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogdXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1Mgb24gcHJvcGVydGllcwoKMjAxMC0wOS0yOCAxNDowNzozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogR1NUX0JPSUxFUlBMQVRFIGFscmVhZHkgc2V0cyBwYXJlbnRfY2xhc3MKCjIwMTAtMDMtMTggMTc6MzA6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoKMjAwOS0wMi0xMCAxODo1Mjo1NCArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGRvY3M6IGRvY3VtZW50IHZhbHZlIGVsZW1lbnQKCjIwMDktMDItMTAgMTc6NTc6MTYgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogcmVuYW1lIHRvIHZhbHZlCgoyMDA5LTAyLTEwIDE3OjU1OjQ3ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogcmUtaW5kZW50IGdzdCBzdHlsZQoKMjAwOC0xMi0xMyAwMDozMTo0NSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBJZ25vcmUgZXJyb3JzIGlmIGRyb3BwaW5nIGlzIHNldCB0byB0cnVlCgoyMDA4LTEyLTEwIDE3OjAwOjMzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IEFkZCBnZXRjYXBzIHByb3h5aW5nIHRvIHRoZSB2YWx2ZQoKMjAwOC0wOC0yMCAxNDoxMTowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFJlYmFzZSB2YWx2ZSBvbnRvIGdzdGVsZW1lbnQgaW5zdGVhZCBvZiBiYXNldHJhbnNmb3JtCgoyMDA4LTA4LTE5IDE4OjQ5OjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJldmVydCAiRml4IHJlZmNvdW50aW5nIGlzc3VlcyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNjVkZDQ2MGYwYTNhOWM0ODgyZTYzOGM4NjIwOGY3NGVmNjJjMzQ2MC4KCjIwMDgtMDgtMDUgMTE6MzA6NTcgKzAwMDAgIHNqb2VyZEBsdW9uLm5ldCA8c2pvZXJkQGx1b24ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBGaXggcmVmY291bnRpbmcgaXNzdWVzIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICAyMDA4MDgwNTExMzA1Ny1iZTBmMi05ZGMyNzA3ODFmMGEwZjIxYzYxNmVkMTFkYmQxZjE5OGZkMWIzMjZlLmd6CgoyMDA4LTA0LTA5IDE2OjMyOjIxICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmVtb3ZlIHVudXNlZCBkaXNwb3NlIG1ldGhvZCBpbiB2YWx2ZQoJICAyMDA4MDQwOTE2MzIyMS0zZTJkYy05MmNjYjJkYjg3NGU0NmUwZDkyYzE1NTIwNTc3YzFiZTBlMmJjNjE3Lmd6CgoyMDA3LTEyLTE5IDIwOjMyOjMwICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogRG9udCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGlsZSBjYWxsaW5nIGJhc2UgYWxsb2MgZnVuY3Rpb24KCSAgMjAwNzEyMTkyMDMyMzAtM2UyZGMtNjUxOTE3NWQ4ZDgxNDk2NTE1YjJkOTA2MGFjMzE2NjUwNTYwZjY5MS5negoKMjAwNy0xMi0xOSAyMDozMjoxOCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogU2V0IHRoZSBESVNDT05UIGZsYWcgYWZ0ZXIgZHJvcHBpbmcgYnVmZmVycwoJICAyMDA3MTIxOTIwMzIxOC0zZTJkYy1iYzVmMDNkODhmZjU4MzcwNDBiOTIxNGRlMDE2Y2MxNDI3NzZkZmMyLmd6CgoyMDA3LTEyLTE5IDAwOjU3OjM5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBVc2UgZG8gdGhlIGFsbG9jX2J1ZmZlciBmdW5jdGlvbiBpbiB0aGUgdmFsdmUKCSAgMjAwNzEyMTkwMDU3MzktM2UyZGMtMmEwZmRmYTJmMzhmMDNhYjQ3OTFmZTVjNGFiODVlODc5MDExMzY4My5negoKMjAwNy0xMS0yMSAyMDowODo1OCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IE9ubHkgc2V0IHBhc3N0aHJvdWdoIHRvIFRSVUUgb24gbmV3ZXIgdmVyc2lvbnMgb2YgZ3N0CgkgIDIwMDcxMTIxMjAwODU4LTNlMmRjLWIxNmNkZWFiYmMzYzA1NjJjNmZjN2IxMWI5Yjk3OTJjOTEwZjU2OWUuZ3oKCjIwMDctMTEtMjEgMTg6MTc6MjkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBDb21wYXJlIG1pbm9yLCBub3QgbWFqb3IKCSAgMjAwNzExMjExODE3MjktM2UyZGMtYTU5OTdjM2I3ZjVjODY5NjYzNzA5Njk3MTRmYWNmOGVlMjQyNjU5ZC5negoKMjAwNy0xMC0yNiAyMjozNzo0OSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IE1ha2UgdGhlIHZhbHZlIGVsZW1lbnQgd29yayB3aXRoIGdzdCA8IDAuMTAuMTMKCSAgMjAwNzEwMjYyMjM3NDktM2UyZGMtMThmNjg1YTRlNDVmYmRjZTY3N2FjNzc3NTg2ODc2ZmM3MTlkNzIyMi5negoKMjAwNy0xMC0yNCAyMjo0Mjo0NiArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJlbmFtZSB2YWx2ZSB0byBmc3ZhbHZlCgkgIDIwMDcxMDI0MjI0MjQ2LTNlMmRjLWM1NDIxNmFmMmVmMGVmM2YxYTIyMDZkNzIzZTg3YmUyYTIzYWI4ZWQuZ3oKCjIwMDctMTAtMjQgMjI6NDE6NDcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IEFkZCB2YWx2ZSBlbGVtZW50CgkgIDIwMDcxMDI0MjI0MTQ3LTNlMmRjLWYyOGFiMGMwNzNlMjgzODk0YjY1YzIyYzRmNDQzOTdjODk3ZGVjMDEuZ3oKCjIwMTAtMTItMzAgMTg6MzE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogbWFrZSB2YXJpYWJsZSBzdGF0aWMKCjIwMTAtMTItMjkgMTE6NDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRlYWRsb2NrCgkgIE9ubHkgZ28gaW50byBMSVZFX1dBSVQgd2hlbiB0aGUgYXJlIG5vdCBsaXZlX3J1bm5pbmcgYW5kIG9ubHkgc3RvcCB3YWl0aW5nIHdoZW4KCSAgbGl2ZV9ydW5uaW5nIGlzIFRSVUUuIElmIHdlIGRvbid0IGxvb3AsIHdlIGNvdWxkIGRlYWRsb2NrIHdoZW4gY2FsbGVkIGZyb20KCSAgb3V0c2lkZSBvZiBiYXNlc3JjLCBzdWNoIGFzIGJhc2VhdWRpb3NyYy4KCSAgRml4ZXMgIzYzNTc4NQoKMjAxMC0xMi0yOCAxNjo0MDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGFkZCBtb3JlIHNpbmsgdW5pdCB0ZXN0cwoKMjAxMC0xMi0yOCAxNjoyMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFsc28gcHJlcm9sbCBhc3luYz1mYWxzZSBzaW5rcwoJICBBbHNvIHByZXJvbGwgYXN5bmM9ZmFsc2Ugc2lua3MgYWZ0ZXIgYSBmbHVzaC4KCjIwMTAtMTItMjIgMTY6NTU6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDEwLTEyLTI2IDIxOjIwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBSZXZlcnQgIm1pY3JvLW9wdGltOiBpZiAoeCkgaXMgY2hlYXBlciB0aGFuIGlmICh4ID4gMCkgZm9yIHVuc2lnbmVkIGludGVnZXJzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDZhYThjYTM3ZWViOWRlYmZhNjkxOTc0MWEwMjMyNTBiZjI3ODI0OGYuCgkgIFNlZSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC52aWRlby5nc3RyZWFtZXIuZGV2ZWwvMzIyODIKCjIwMTAtMTItMjQgMTQ6MDI6MDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgZWxlbWVudHM6IHJlZW5hYmxlIGZkc3JjL2Zkc2luayBvbiBNU1ZDCgoyMDEwLTEyLTIyIDE2OjM2OjA5IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIEZpeCBHU3RhdEJ1ZiBkZWZpbml0aW9uIGZvciB3aW4zMiB3aGVuIGJ1aWxkaW5nIGFnYWluc3Qgb2xkZXIgZ2xpYi4gTm93IG1hdGNoZXMgdXBzdHJlYW0gZ2xpYiBkZWZpbml0aW9uLgoKMjAxMC0xMi0yMiAyMjozNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb24KCjIwMTAtMTItMjIgMTY6NDI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGFkZCBkcmFmdCBpZGVhIGZvciBwcm9ncmVzcyByZXBvcnRpbmcKCjIwMTAtMTItMjEgMTA6MzM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggdHlwbwoKMjAxMC0xMi0yMCAxNzo0NjozNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE2OTQ2MmEgdG8gNDY0NDVhZAoKMjAxMC0xMi0xOSAxMjo0OTo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IERvbid0IGxlYWsgY29waWVzIG9mIGVtcHR5IHN0cmluZ3MKCjIwMTAtMTItMTcgMTk6MTk6NDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGJhc2U6IGRvY3VtZW50YXRpb24gZml4dXBzIGFuZCBhbm5vdGF0aW9uCgoyMDEwLTEyLTE3IDE5OjE0OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBkb2N1bWVudGF0aW9uIGZpeHVwcyBhbmQgYW5ub3RhdGlvbgoJICBSZXBvcnRlZCBieSBlbmFibGluZyB0aGUgLS13YXJuLWFsbCBvcHRpb24gb2YgZy1pci1zY2FubmVyCgoyMDEwLTEyLTE3IDE1OjQ4OjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGRvY3VtZW50YXRpb24KCSAgc2Vjb25kID0+IHNlY29uZHMKCSAgbWljcm9zZWNvbmQgYXJndW1lbnQgd2FzIGRyb3BwZWQKCjIwMTAtMTItMDQgMTU6MzI6MDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogVXNlIGFuIGF0b21pYyBpbnRlZ2VyIGluc3RlYWQgb2YgYSBsb2NrIGZvciBjaGVja2luZyB0YWdzIHByZXNlbmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY0NTUKCjIwMTAtMTItMTYgMTA6NTU6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSBkb3duc3RyZWFtIGdpdmluZyBhIGJ1ZmZlciB3aXRoIG5ldyBjYXBzIGJ1dCBpbnZhbGlkIHNpemUKCSAgVGhpcyBjYW4gaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gZG93bnN0cmVhbSBwcm9wb3NlZCBuZXcgY2FwcywgbGF0ZXIgcHJvcG9zZWQKCSAgdGhlIHByZXZpb3VzIGNhcHMgYWdhaW4gd2hpY2ggaW4gdHVybiBlbmFibGVzIHBhc3N0aHJvdWdoIG1vZGUgaW4gdXBzdHJlYW0KCSAgZWxlbWVudHMgYW5kIHRoZSB3cm9uZy1zaXplZCBidWZmZXIgYXBwZWFycyBpbiBhbiBlbGVtZW50IHdoZXJlIHRoZSBjYXBzCgkgIGNoYW5nZSBuZXZlciBoYXBwZW5lZC4gU2ltcGx5IGFsbG9jYXRlIGEgbmV3IGJ1ZmZlciBpbiB0aGlzIGNhc2UuCgkgIFNlZSBidWcgIzYzNTQ2MS4KCjIwMTAtMTItMTUgMjM6MTk6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSB0aGUgcHVibGljbHkgdmlzaWJsZSBhZGRyZXNzIHRvIGZpeCB0aGUgdGVzdHMKCSAgVGhlIC1Cc3ltYm9saWMgY2hhbmdlIGNhdXNlcyB1cyB0byBnZXQgYSBkaWZmZXJlbnQgYWRkcmVzcyB3aGVuIGludGVybmFseQoJICBsb29raW5nIHVwIHRoZSBmdW5jdGlvbiB0aGFuIHdoYXQgYXBwbGljYXRpb24gd291bGQgZ2V0IHdoZW4gdGhlIHVzZSB0aGUgc3ltYm9sCgkgIHRoYXQgdGhleSBzZWUuIFRoaXMgbWFkZSByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2doYW5kbGVyIHRvIGZhaWwsIGFzIGl0IGlzIHNldAoJICBpbnRlcm5hbGx5IGFuZCByZW1vdmVkIGV4dGVybmFseS4KCjIwMTAtMTItMTUgMTQ6NTU6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjA3NDJhZSB0byAxNjk0NjJhCgoyMDEwLTEyLTE1IDEyOjEwOjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIHRoZSAtQnN5bWJvbGljLWZ1bmN0aW9ucyBsaW5rZXIgZmxhZyBpZiBzdXBwb3J0ZWQKCSAgVGhpcyBmZWF0dXJlIHR1cm5zIGludHJhIGxpYnJhcnkgY2FsbHMgaW50byBkaXJlY3QgZnVuY3Rpb24gY2FsbHMgYW5kIHRodXMgbWFrZXMKCSAgdGhlbSBhIGxpdHRsZSBmYXN0ZXIuIFRoZSBkb3duc2lkZSBpcyB0aGF0IHRoaXMgY2F1c2VzIHByb2JsZW1zIGZvciBlLmcuCgkgIExEX1BSRUxPQUQgYmFzZWQgdG9vbHMuIFRodXMgYWRkIGEgY29uZmlndXJlIG9wdGlvbiB0byB0dXJuIGl0IG9mZi4KCjIwMTAtMTItMTQgMTk6MDA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGxhc3Rfc3RvcCBjYWxjdWxhdGlvbgoJICBPbmx5IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHZhbHVlIHdoZW4gd2UgaGFkIGEgdmFsaWQgc3RvcCBwb3NpdGlvbiBmb3IgdGhlCgkgIGNsaXBwaW5nIG9yIGVsc2UgdGhlIGNsaXBwaW5nIGNvZGUgYXNzdW1lcyB0aGUgc3RvcCBwb3NpdGlvbiBleHRlbmRzIHRvIHRoZSBlbmQKCSAgb2YgdGhlIHNlZ21lbnQsIHdoaWNoIG1ha2VzIHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgcmV0dXJuIHdlaXJkIHZhbHVlcy4KCjIwMTAtMTItMTQgMTU6NTI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggb2JqZWN0IHR5cGUgaGFuZGxpbmcgaW4gcXVldWVkIHByZXJvbGwKCSAgRmFjdG9yIG91dCB0aGUgbWV0aG9kIHRvIGdldCB0aGUgb2JqZWN0IHR5cGUuCgkgIFdoZW4gcHJlcm9sbC1xdWV1ZS1sZW4gPiAwLCB1c2UgdGhlIHJpZ2h0IG9iamVjdCB0eXBlIGluc3RlYWQgb2YgaWdub3JpbmcKCSAgYnVmZmVyLWxpc3RzLgoKMjAxMC0xMi0xMyAxNjoyMjo0NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwMTFiY2M4IHRvIDIwNzQyYWUKCjIwMTAtMTItMTEgMTA6MTA6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IEZpeCBHSVIgYnVpbGQgZm9yIHNyY2RpciAhPSBidWlsZGRpcgoKMjAxMC0xMi0wOCAxNzo1MToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBjb21taXQgJzBlYWEyNWNiZjVjMGU0YmY4NjU0NWZiNjdjMTgxYTBlY2QyZjE5YzcnIGludG8gMC4xMQoKMjAxMC0xMi0wOCAxMjoxNzozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkb2NzOiBmaXggd3JvbmcgdXNlIG9mIFNpbmNlOiBrZXl3b3JkCgoyMDEwLTEyLTA4IDExOjUyOjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IG1haW50YWluIHRoZSB0eXBlZmluZCBleHRlbnNpb24gbGlzdCBvcmRlcgoKMjAxMC0xMi0wOCAxMTo1MTo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBkb2NzOiBhZGQgKCkgdG8geHJlZiB0aGUgZnVuY3Rpb24uCgoyMDEwLTEyLTA3IDE5OjM1OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlLCBHU1RfREVCVUdfQ09MT1IgaXMgbmV2ZXIgZGVmaW5lZAoKMjAxMC0xMi0wNyAxOTozNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBjb25zdC1pZnkgYXJndW1lbnRzIHRvIGdzdF9vYmplY3RfZGVmYXVsdF9lcnJvcigpCgoyMDEwLTEyLTA3IDE4OjQ2OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBkb2NzOiBnc3RfZXJyb3JfZ2V0X21lc3NhZ2UoKSByZXR1cm5zIHN0cmluZyBpbiBVVEYtOCwgbm90IGN1cnJlbnQgbG9jYWxlCgkgIFdlIHRlbGwgZ2V0dGV4dCB0byByZXR1cm4gZXZlcnl0aGluZyBpbiBVVEYtOCBlbmNvZGluZy4KCjIwMTAtMTItMDUgMjA6MTc6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZ2lzdGVyIGdzdF9wYWRfZ2V0X2ZpeGVkX2NhcHNfZnVuYygpIHdpdGggdGhlIGRlYnVnIGxvZyBzeXN0ZW0KCjIwMTAtMTItMDcgMTg6MzU6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZG9jczogbGliZ3N0YmFzZTogbW9yZSBnb2JqZWN0IGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgTWFueSBvZiB0aGVzZSBhcmUgc3VwZXJmbHVvdXMgYW5kIHdlcmUgYWRkZWQgZm9yIGNsYXJpdHkuCgoyMDEwLTEyLTA3IDE4OjM1OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBnc3Q6IG1vcmUgZ29iamVjdCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIE1hbnkgb2YgdGhlc2UgYXJlIHN1cGVyZmx1b3VzLCBhZGRlZCBmb3IgY2xhcml0eS4KCjIwMTAtMTItMDcgMTg6NDA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMC0xMi0wNyAxODozMzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMC0xMi0wNyAxODozMjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZGlzYWJsZSBBQkkgY2hlY2tzCgoyMDEwLTEyLTA3IDE4OjMyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jdW1lbnQKCjIwMTAtMTItMDcgMTg6MTQ6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBnZXRfY2Fwc19yZWZmZWQgdmFyaWFudHMKCSAgTWFrZSB0aGUgX2dldF9jYXBzIGZ1bmN0aW9ucyBiZWhhdmUgbGlrZSB0aGUgX2dldF9jYXBzX3JlZmZlZCB2YXJpYW50cyBhbmQKCSAgcmVtb3ZlIHRoZSBfcmVmZmVkIHZhcmlhbnRzLiBUaGlzIG1lYW5zIHRoYXQgX2dldF9jYXBzIGRvZXNuJ3QgcmV0dXJuIGEgd3JpdGFibGUKCSAgY2FwcyBhbnltb3JlIGFuZCBhbiBleHBsaWNpdCBfbWFrZV93cml0YWJsZSgpIGlzIG5lZWRlZCBiZWZvcmUgbW9kaWZ5aW5nIHRoZQoJICBjYXBzLgoKMjAxMC0xMi0wNyAxODoxMjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNyAxNjo1Mjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IENsZWFuIHVwIC5oIGZpbGUKCjIwMTAtMTItMDcgMTU6NTM6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEwLTEyLTA3IDE1OjMzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZWxlbWVudDogcmV3b3JrIEdzdEVsZW1lbnREZXRhaWxzCgkgIENsZWFuIHVwIHRoZSBHc3RFbGVtZW50IHN0cnVjdHVyZQoJICBSZXBsYWNlIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggbWV0YWRhdGEKCjIwMTAtMTItMDcgMTU6MzE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiByZW1vdmUgZGVwcmVjYXRlZCBtZXRob2RzCgkgIFJlbW92ZSBtb3JlIGRlcHJlY2F0ZWQgbWV0aG9kcyBhbmQgZml4IHVuaXQgdGVzdC4KCjIwMTAtMTItMDcgMTU6MjE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogcmVtb3ZlIGRlcHJlY2F0ZWQgdGVzdHMKCjIwMTAtMTItMDcgMTU6MjA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBmaXggb2JqZWN0IHVuaXQgdGVzdAoKMjAxMC0xMi0wNyAxNToxOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBvYmplY3Q6IGZpeCBkb2NzCgoyMDEwLTEyLTA3IDEzOjE5OjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IEFkZCAtSSQodG9wX3NyY2RpcikvbGlicyB0byBnLWlyLXNjYW5uZXIgY29tbWFuZHMKCSAgV2l0aG91dCB0aGlzLCBpdCB3aWxsIGZhaWwgZmluZGluZyBhbGwgaGVhZGVycy4KCjIwMTAtMTItMDcgMTI6NTc6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiByZWNvbW1lbmQgIi0tZ3N0LWRpc2FibGUtcmVnaXN0cnktZm9yayIgYXMgd2VsbAoJICBEaXNhYmxpbmcgZm9ya2luZyBoZWxwcyB3aXRoIGRlYnVnZ2luZyB0aGUgY2F1c2Ugb2YgdGhlIGNyYXNoIGluIGdkYi4KCjIwMTAtMTItMDcgMTI6NTY6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcGx1Z2luZG9jcy50eHQ6CgkgIGRvY3M6IHNvbWUgbm90ZXMgYWJvdXQgb3VyIHBsdWdpbiBkb2NzIHdvcmtmbG93CgoyMDEwLTEyLTA3IDExOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBvYmplY3Q6IFJlbW92ZWQgZGVwcmVjYXRlZCBmaWVsZHMgYW5kIG1ldGhvZHMKCSAgTWFrZSBHc3RPYmplY3QgZXh0ZW5kIGZyb20gR0luaXRpYWxseVVub3duZWQsIHJlbW92ZSB0aGUgRkxPQVRJTkcgZmxhZyBhbmQgdXNlCgkgIEdPYmplY3QgbWV0aG9kcyBmb3IgbWFuYWdpbmcgdGhlIGZsb2F0aW5nIHJlZi4KCSAgUmVtb3ZlIGNsYXNzIGxvY2ssIGl0IHdhcyBhIHdvcmthcm91bmQgZm9yIGEgZ2xpYiA8IDIuOCBidWcuCgkgIFJlbW92ZSB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0IHNpZ25hbHMsIGF0dGVtcHQgdG8gaW1wbGVtZW50IHdpdGggbm90aWZ5CgkgIGJ1dCBkaXNhYmxlZCBiZWNhdXNlIGRlYWRsb2NrcyBpbiBkZWVwLW5vdGlmeS4KCjIwMTAtMTItMDYgMjA6MDM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiBtZW50aW9uIHJlbW92YWwgb2YgcHJvdG9jb2wgcHJvcGVydHkKCjIwMTAtMTItMDYgMTk6NDA6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBsaWJzOiByZW1vdmUgZGVwcmVjYXRlZCBjb2RlCgoyMDEwLTEyLTA2IDE5OjI0OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA2IDE5OjE4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvZ3N0eG1sLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgcmVtb3ZlIGRlcHJlY2F0ZWQgc3ltYm9scyBhbmQgbWV0aG9kcwoKMjAxMC0xMi0wNiAxMzo1MTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IEFkZCBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNiAxMzo0ODozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHBsYW46IGZpeCB0eXBvCgoyMDEwLTExLTExIDEwOjM4OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgcGxhbjogYWRkIHNvbWV0aGluZyBhYm91dCBHVmFyaWFudCByZWdpc3RyeQoKMjAxMC0xMS0wOCAxODozOTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3VzZS1jYXNlcy0wLjExLnR4dDoKCSAgYWRkIHNvbWUgdXNlLWNhc2VzCgoyMDEwLTExLTA4IDE0OjA4OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA4IDEyOjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA4IDExOjE4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA0IDE5OjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgd29yayBvbiB0b2RvIGxpc3QgZm9yIDAuMTEgd29yawoKMjAxMC0xMi0wNiAxMzoyMTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgbW9yZSAwLjEwIC0+IDAuMTEKCjIwMTAtMTItMDYgMTI6MDM6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogb3BlbiAwLjExIGJyYW5jaAoKMjAxMC0xMi0wNiAxMToxODowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHJldHVybiB3YWtldXAgZXZlbnQgaW4gR1BvbGxGRAoKMjAxMC0xMi0wNiAxMTowNzozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHNvbWUgZGVidWcgdG8gZmFzdCBwdXNoIHBhdGgKCSAgLi4uIHNvIHdlIGRvbid0IGxvb3NlIHRyYWNrIGF0IHRpbWVzIGl0IGlzIG5lZWRlZCB0aGUgbW9zdC4KCjIwMTAtMTItMDUgMTU6NTg6NDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIGNhY2hlZCBDbG9ja0lkCgoyMDEwLTEyLTA1IDE0OjQ2OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IERvbid0IGNoZWNrIHBhZCByZWZjb3VudCB0b28gZWFybHkKCSAgQmVjYXVzZSBvZiB0aGUgbmV3IHBhZCBjYWNoaW5nIHN5c3RlbSwgdGhlIHBlZXIgcGFkIG1pZ2h0IHN0aWxsCgkgIGhhdmUgYSByZWZlcmVuY2Ugb24gYSBwYWQuIFdlIHRoZXJlZm9yZSBkZWxheSB0aGUgcmVmY291bnQgY2hlY2tpbmcKCSAgdGlsICdhZnRlcicgd2UgdW5saW5rIHRoZSBwYWQgZnJvbSBhbnkgcG90ZW50aWFsIHBlZXIuCgoyMDEwLTEyLTA1IDE0OjExOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IE1ha2UgZWxlbWVudCBuYW1lcyBjbGVhcmVyIGluIGRlYnVnIHN0YXRlbWVudHMKCSAgUmVwbGFjZXMgY29uZnVzaW5nIG1lc3NhZ2VzIGxpa2U6CgkgICJOYW1lIG5hbWUgaXMgbm90IHVuaXF1ZSBpbiBiaW4gYmluLCBub3QgYWRkaW5nIgoJICBieQoJICAiTmFtZSAnbmFtZScgaXMgbm90IHVuaXF1ZSBpbiBiaW4gJ2JpbicsIG5vdCBhZGRpbmciCgoyMDEwLTEyLTA0IDIxOjA2OjM0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogRml4IHBlcm1pc3Npb25zIGlmIHVtYXNrIGlzIGJyb2tlbgoJICBGaXhlczogIzU2NDA1Ni4KCjIwMTAtMTItMDQgMTQ6MjM6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZXMgYWZ0ZXIgYmFja3NsYXNoIGluIE1ha2VmaWxlLmFtCgoyMDEwLTEyLTA0IDEzOjE0OjM5ICswMDAwICBLb29wIE1hc3QgPGt3bUBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBmaXggdGVzdCBzbyBpdCB3b3JrcyB3aXRoIEZyZWVCU0QncyAvYmluL3NoCgkgIFVzZSAnPScgaW5zdGVhZCBvZiAnPT0nLiBGaXhlczoKCSAgY29uZmlndXJlOiB3b3JraW5nIGMrKyBjb21waWxlciBmb3VuZDogeWVzCgkgIHRlc3Q6IHh5ZXM6IHVuZXhwZWN0ZWQgb3BlcmF0b3IKCSAgaHR0cDovL2J1Z3ppbGxhLWF0dGFjaG1lbnRzLmdub21lLm9yZy9hdHRhY2htZW50LmNnaT9pZD0xNzU2OTIKCjIwMTAtMTItMDMgMTE6Mjk6MzAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBVc2UgZ19zbnByaW50ZigpIGluc3RlYWQgb2Ygc25wcmludGYoKQoKMjAxMC0xMi0wMyAxNjo0NDoyMyArMDEwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQHN0ZXJpY3Nzb24uY29tPgoKCSogQW5kcm9pZC5tazoKCSogYW5kcm9pZC9OT1RJQ0U6CgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvZ3N0L2dzdGNvbmZpZy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuYzoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5oOgoJKiBhbmRyb2lkL2dzdC9nc3R2ZXJzaW9uLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIub3V0cHV0OgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5jOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5jOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogYW5kcm9pZC90b29scy5tazoKCSAgQWRkIGJ1aWxkIHN5c3RlbSBmb3IgQW5kcm9pZAoKMjAxMC0xMi0wMyAxNjowMjowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogaW5pdCB2YXJpYWJsZXMgaW4gX3JlaW5pdCgpCgkgIFByb3Blcmx5IGluaXRpYWxpemUgdmFyaWFibGVzIGluIF9yZWluaXQoKSB0b28KCjIwMTAtMTAtMjEgMTg6MDg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogbWFrZSBzeW5jIGNsb2NrIHdhaXQgbG9ja2ZyZWUKCSAgTWFrZSB0aGUgY29tbW9uIGNhc2UgbG9ja2ZyZWUuCgoyMDEwLTEyLTAzIDEyOjA0OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogdXNlIGZ1bmN0aW9uIGludHJvZHVjZWQgaW4gR0xpYiAyLjIyIHVuY29uZGl0aW9uYWxseQoKMjAxMC0xMi0wMyAxMjo0MjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHNtYWxsIGNsZWFudXBzCgoyMDEwLTExLTAzIDE4OjM4OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbWFrZSBzdXJlIHdlIHJlbW92ZSB0aGUgcmVhZGZkIG1lc3NhZ2VzCgoyMDEwLTExLTAzIDE4OjE2OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBvbGw6IGFkZCBtZXRob2QgdG8gZ2V0IGEgR1BvbGxGRAoKMjAxMC0xMS0wMyAxNzo1NjoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IFJlZmFjdG9yIGFuZCBtYWtlIG1vcmUgbG9ja2ZyZWUKCSAgUmVmYWN0b3IgdGhlIHdha2V1cCBvZiB0aGUgcG9sbCB0aHJlYWQuCgkgIEFsd2F5cyBtYWtlIGEgY29udHJvbCBzb2NrZXQgdG8gbWFrZSB0aGluZ3MgZWFzaWVyLgoJICBNYWtlIG1vcmUgbWV0aG9kcyBsb2NrZnJlZS4KCjIwMTAtMTAtMjEgMDI6MDI6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtb3ZlIGxvY2sgdG8gd2hlcmUgaXQgbWFrZXMgbW9yZSBzZW5zZQoKMjAxMC0xMC0yMSAwMToxNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1ha2UgdGltZXIgcG9sbHMgbG9ja2ZyZWUKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHRha2UgYSBtdXRleCBpbiB0aGUgbm9ybWFsIGNvZGUgcGF0aCBvZiB0aGUgdGltZXIKCSAgcG9sbC4KCjIwMTAtMTItMDIgMTc6NTE6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJldHVybiB1cG9uIGlucHV0IHdoZW4gYWxyZWFkeSBlb3MKCSAgLi4uIHJhdGhlciB0aGFuIGhhbmdpbmcgaW5jb21pbmcgdGhyZWFkIChhcyBjb25zaWRlcmVkIGZ1bGwgaW4gZW9zKS4KCjIwMTAtMTItMDIgMTc6NDk6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvYyB0eXBvCgoyMDEwLTEwLTE2IDE2OjE2OjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZW1vdmUgc29tZSBjb21tZW50ZWQgY29kZQoKMjAxMC0xMi0wMyAxMzo1MjowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBzdGRpby5oIGZvciBzbnByaW50CgoyMDEwLTEyLTAzIDExOjI3OjE3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBVc2UgYW4gb2JqZWN0IGFzIGZpcnN0IGFyZ3VtZW50IHRvIEdTVF9XQVJOSU5HX09CSkVDVAoKMjAwOS0wNC0xMSAxNTowNDo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBtaWNyby1vcHRpbTogaWYgKHgpIGlzIGNoZWFwZXIgdGhhbiBpZiAoeCA+IDApIGZvciB1bnNpZ25lZCBpbnRlZ2VycwoKMjAwOS0wNC0xMCAwOTowMToyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogVXNlIHN0cnVjdHVyZSBwcm9wZXJ0eSBkaXJlY3RseSwgYXZvaWQgZnVuY3Rpb24gdmFyaWFibGUuCgkgIEFsbCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGNhbiBhY2Nlc3MgdGhlIHN0cnVjdHVyZSBmaWVsZCBvZiBhIHF1ZXJ5IGRpcmVjdGx5LgoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gY2FsbCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSgpIHRvIGdldCBpdCwgYWxvbmcgd2l0aCBiZWluZwoJICBhYmxlIHRvIHJlbW92ZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoYXQKCSAgZnVuY3Rpb24uCgoyMDA5LTA0LTEwIDA4OjUxOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogcmVtb3ZlIHVzZWxlc3MgdGVybmFyeSBvcGVyYXRvciB1c2FnZS4KCjIwMTAtMDktMTQgMTM6MDg6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IFVzZSBzdHJ1Y3R1cmUgcHJvcGVydHkgZGlyZWN0bHksIGF2b2lkIGZ1bmN0aW9uIHZhcmlhYmxlLgoJICBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBjYW4gYWNjZXNzIHRoZSBzdHJ1Y3R1cmUgZmllbGQgb2YgYW4gZXZlbnQgZGlyZWN0bHkuCgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBjYWxsIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKCkgdG8gZ2V0IGl0LCBhbG9uZyB3aXRoIGJlaW5nCgkgIGFibGUgdG8gcmVtb3ZlIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhhdAoJICBmdW5jdGlvbi4KCjIwMTAtMTItMDMgMTE6MTk6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHB1c2ggY2FjaGUgdG8gYnVmZmVybGlzdHMKCSAgQWRkIHRoZSBwdXNoIGNhaGNlIGZvciB0aGUgYnVmZmVybGlzdCBwdXNoIGNvZGUgcGF0aCBhcyB3ZWxsLgoKMjAxMC0xMi0wMyAxMToxMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBjYWNoZSB0aGUgcGVlciBjaGFpbmZ1bmMKCSAgVGhlcmUgaXMgbm8gbmVlZCB0byBjYWNoZSB0aGUgcGVlciBjaGFpbmZ1bmN0aW9uIGFzIHdlIGNhbiBqdXN0IGFzIGVmZmljaWVudGx5CgkgIGdldCB0byBpdCBmcm9tIHRoZSBwZWVyIG9iamVjdC4gQWxzbyBub3QgY2FjaGluZyB0aGUgY2hhaW4gZnVuY3Rpb24gd29ya3MgYmV0dGVyCgkgIGJlY2F1c2UgdGhlbiB3ZSBhdXRvbWF0aWNhbGx5IGdldCB0aGUgbmV3IGNoYWluZnVuY3Rpb25zIHdoZW4gdGhleSBjaGFuZ2UuCgoyMDEwLTEyLTAzIDEwOjUyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogY2xlYXIgcGFkIGNhY2hlIHdoZW4gaW5zdGFsbGluZyBwcm9iZXMKCSAgTW92ZSB0aGUgbWV0aG9kIHRvIGNsZWFyIHRoZSBwYWQgY2FjaGUgaW50byBfcHJpdmF0ZS5oCgkgIENsZWFyIHRoZSBwYWQgY2FjaGUgd2hlbiBpbnN0YWxsaW5nIHBhZCBwcm9iZXMuCgoyMDEwLTEwLTIwIDE3OjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGV4cGxpY2l0bHkgaW5saW5lIHNvbWUgZnVuY3Rpb25zCgoyMDEwLTEwLTEzIDAyOjQ4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMTAtMTMgMDI6NDI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW52YWxpZGF0ZSBjYWNoZXMgb24gZmx1c2ggYW5kIHBhZCBibG9jawoKMjAxMC0xMC0xMyAwMjoyMDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB1bnJlZiBOVUxMIGNhcHMKCjIwMTAtMTAtMTMgMDI6MTc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGludmFsaWRhdGUgZnVuY3Rpb24KCSAgTW9yZSBzbWFsbCBvcHRpbWlzYXRpb25zLCByZW1vdmUgdGhlIHVubmVlZGVkIHZhbGlkIGJvb2xlYW4uCgkgIEFkZCBmdW5jdGlvbiB0byBpbnZhbGlkZSB0aGUgY2FjaGUuCgkgIEludmFsaWRhdGUgdGhlIGNhY2hlIG9uIHVubGluay4KCjIwMTAtMTAtMTMgMDE6Mzc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMC0xMC0xMyAwMToyNToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIHBhZCBwdXNoIGNhY2hpbmcKCSAgQnVpbGQgdGhlIGNhY2hlIHdoaWxlIHdlIHB1c2ggZGF0YS4gV2hlbiB3ZSBkb24ndCBoYXZlIGEgY2FjaGUsIHdlIHJ1biB0aGUKCSAgc2xvd3BhdGggYW5kIGNvbGxlY3QgY2FjaGVhYmxlIHByb3BlcnRpZXMuIFdoZW4gYWxsIGNvbmRpdGlvbnMgYXJlIG1ldCwga2VlcCB0aGUKCSAgY2FjaGVkIGRhdGEgYXJvdW5kIHNvIHRoYXQgd2UgY2FuIG1vcmUgZWZmaWNpZW50bHkgcHVzaCBkYXRhIGFyb3VuZC4KCjIwMTAtMTAtMTIgMTI6Mjk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcHJvdG90eXBlIG9mIHBhZCBwdXNoIGNhY2hlCgkgIFByb3RvdHlwZSBvZiBob3cgd2UgY2FuIGNhY2hlIHRoZSBwZWVyIGFuZCBjYXBzIGZvciBhIHBhZCBsaW5rLgoKMjAxMC0xMi0wMyAxMjoyMzoyNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIGRvY3M6IGZpeCBwcmV2aW91cyBleHRyYWN0LnBsIGNvbW1pdAoJICBNYWtlIGl0IGFsc28gd29yayBpbiB0aGUgc3JjZGlyPWJ1aWxkZGlyIGNhc2UgYWdhaW4uCgoyMDEwLTEwLTIwIDExOjU4OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYXZvaWQgdGFzayBsb2NrIGZvciBlYWNoIGl0ZXJhdGlvbgoJICBNYWtlIHRoZSB0YXNrIHN0YXRlIGFuIGF0b21pYyB2YXJpYWJsZSBzbyB0aGF0IHdlIGNhbiBhdm9pZCB0YWtpbmcgYW5kIHJlbGVhc2luZwoJICB0aGUgdGFzayBsb2NrIGZvciBlYWNoIGl0ZXJhdGlvbi4KCjIwMTAtMTItMDMgMTA6MTg6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBkb2NzOiBmaXggZXhhbXBsZSBtYXRjaGluZyBpbiBleHRyYWN0LnBsCgkgIFdoZW4gYnVpbGRpbmcgd2l0aCAkc3JjZGlyICE9ICRidWlsZGRpciBvdXRwdXQgd291bGQgY29udGFpbiB0aGUgYnVpbGRkaXIgcGF0aC4KCSAgU3RyaXAgdGhlIHBhdGggd2hlbiBzY2FubmluZyB0aGUgeG1sIGZvciB0aGUgZXhhbXBsZSBtYXJrZXJzLgoKMjAxMC0xMS0xOSAxNTowNjowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogcXVlcnkgZG9jIGltcHJvdmVtZW50cwoJICBNb3JlIHhyZWZzLiBNZW50aW9uZWQgdGhhdCBzb21lIHF1ZXJpZXMgbmVlZCBhIHJ1bm5pbmcgcGlwZWxpbmUuCgoyMDEwLTExLTE5IDExOjQzOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGNsYXJpZnkgbGlzdCBpdGVtIHR5cGVzIGluIGNvbW1lbnRzCgoyMDEwLTExLTE5IDEwOjI5OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiBhZGQgdHdvIEZJWE1FMC4xMTogY29tbWVudHMKCjIwMTAtMTEtMTkgMTA6MjM6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogYWxsb3cgZGlzYWJsaW5iZyB0aGUgdGVtcGxhdGUgbmFtZSBjb25mb3JtYW5jZSBjaGVja3MKCjIwMTAtMTEtMTggMTY6MzE6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogdGhlIHN1cHBsaWVkIGNhcHMgbWF5IG5vdCBiZSBOVUxMCgkgIFRoZXJlIGlzIGEgZWFybGllciBnX3JldHVybl92YWxfaWZfZmFpbCBjaGVjay4gQWxzbwoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQgZG9lcyBub3QgaGF2ZSBzdWNoIGEgY2hlY2suCgoyMDEwLTExLTAzIDE2OjM3OjEwICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBQcmludCBzaW5rLW1lc3NhZ2UgZXZlbnRzIGxpa2UgYSBtZXNzYWdlIGFuZCB0aGUgR3N0TWVzc2FnZSBzdHJ1Y3R1cmUKCjIwMTAtMTEtMDEgMTU6MzI6NDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZGVzaWduLWRvY3M6IGFkZCBodG1sIG91dHB1dCB1c2luZyBhc2NpaWRvYwoJICBVbmlmeSB0aGUgYWQtaG9jIG1hcmt1cCB0byBiZSBhc2NpaWRvYyBzdHlsZSBpbiBtYW55IHBsYWNlcy4gQWRkIGEgImh0bWwiIHRhcmdldAoJICB0byBNYWtlZmlsZSB0byBnZW5lcmF0ZSB0aGUgb3V0cHV0LgoKMjAxMC0xMC0xOSAxNDoyNzoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IG1vcmUgZGVmYXVsdCBuYW1lIGdlbmVyYXRpb24gbW9yZSBlZmZpY2llbnQKCSAgU2F2ZSB+MjAwMCBtYWxsb2MvbWVtY3B5L2ZyZWUgcGFpcnMgYXQgc3RhcnR1cCBieSBydW5uaW5nIHRvX2xvd2VyIGluLXBsYWNlLgoJICBBbHNvIHNraXAgdGhlIG51bWJlcnMgYXMgd2UgY2FuLgoKMjAxMC0xMC0xOCAxNDo0NToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogdXNlIHRoZSBwYXJlbnRfY2xhc3MgZnJvbSBHX0RFRklORV9UWVBFIG1hY3JvIGFuZCBkcm9wIGV4dHJhIGNvcHkKCjIwMTAtMTAtMjAgMTQ6Mjc6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIGdfaW50ZXJuX3N0cmluZyBmb3IgaW50ZXJmYWNlIG5hbWVzCgoyMDEwLTEwLTE4IDEzOjI5OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhbHNvIGludGVybiB0aGUgc3RhdGljIGNhcHMKCjIwMTAtMTItMDMgMDA6MDA6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWV0YS1kYXRhIGNhbiBiZSBOVUxMCgoyMDEwLTEyLTAyIDE2OjI4OjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBoYW5kbGluZyBvZiB0aW1lem9uZXMKCSAgRml4IHJldHVybmluZyBvZiB0aW1lem9uZXMgb24gc3lzdGVtcyB3aXRoIGdkYXRldGltZQoJICB0byB1c2UgZmxvYXRzIG9uIHRoZSBtYXRoIGV4cHJlc3Npb24gdG8gYXZvaWQKCSAgdHJ1bmNhdGluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0LgoJICBBbHNvIGFkZHMgYSB0ZXN0IGZvciBjb3ZlcmluZyB0aGlzIGNhc2UuCgoyMDEwLTEyLTAyIDE5OjQ0OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBEb24ndCBicmVhayBBQkkKCSAgVGhlIG9yZGVyIG9mIHRoZSBmaWVsZCB3YXMgd3JvbmcsIGFuZCB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGRpZG4ndAoJICBlbmQgdXAgYmVpbmcgdGhlIHNhbWUuCgoyMDEwLTExLTI1IDE4OjQ4OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGJhc2VzaW5rOiByZXdvcmsgcG9zaXRpb24gcmVwb3J0aW5nIGNvZGUKCSAgVW5pZnkgdGhlIGRpZmZlcmVudCBwb3NpdGlvbiByZXBvcnRpbmcgY29kZSBwYXRocyB0byBtYWtlIGl0IG1vcmUKCSAgdW5kZXJzdGFuZGFibGUuCgkgIFVzZSBzdGFydF90aW1lIHRvIGdldCBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiBwYXVzZWQuCgkgIEZpeCB1bml0IHRlc3RzIGZvciBtb3JlIGFjY3VyYXRlIHJlcG9ydGluZy4KCjIwMTAtMTEtMjUgMTY6MDY6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwZXJmb3JtIHdhaXRfcHJlcm9sbCBpbiBhIHdoaWxlIGxvb3AKCSAgV2UgbmVlZCB0byBjb250aW51ZSBjYWxsaW5nIHdhaXRfcHJlcm9sbCgpIGFzIGxvbmcgYXMgdGhlIG5lZWRfcHJlcm9sbCB2YXJpYWJsZQoJICBpcyB0cnVlLgoKMjAxMC0xMS0xNyAxNjo0NjozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmV0dXJuIGltbWVkaWF0ZWx5IGZvciAtMSBjb252ZXJzaW9uCgkgIFdoZW4gd2UgYXJlIGFza2VkIHRvIGNvbnZlcnQgLTEsIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aCBhIC0xIHJldHVybgoJICB2YWx1ZS4KCjIwMTAtMTEtMTcgMTY6NDI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGEgY29udmVydCBxdWVyeSBjYW4gaGF2ZSBhIC0xIGlucHV0IHZhbHVlCgkgIEl0IGlzIGFsbG93ZWQgdG8gcGFzcyAtMSB0byB0aGUgc3JjX3ZhbCBmb3IgYSBjb252ZXJ0LgoKMjAxMC0xMS0xNiAxMjoyMDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBiYXNlc2luazogYWxzbyBwcmVyb2xsIGFmdGVyIGEgZmx1c2ggd2l0aCBhc3luYz1mYWxzZQoJICBNYWtlIHN1cmUgdG8gcHJlcm9sbCBhZnRlciBhIGZsdXNoIGV2ZW4gd2hlbiB3ZSBhcmUgYXN5bmM9ZmFsc2UuCgkgIEFkZCB1bml0IHRlc3QuCgkgIEZpeGVzICM2MzQ5NjUKCjIwMTAtMTEtMTUgMTg6MjA6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaW1wcm92ZSBkb2NzIGEgbGl0dGxlLgoKMjAxMC0xMS0xNSAxODoxNzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGxvY2sgc3JjIHN0YXRlIHRvIGF2b2lkIGVycm9yIGNhc2VzCgkgIExvY2sgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCBvciBlbHNlIHRoZSBwaXBlbGluZSBtaWdodCBnbyBpbnRvIHRoZSBlcnJvcgoJICBzdGF0ZSB3aGVuIHdlIHNldCBpdCB0byBQQVVTRUQgbGF0ZXIuCgoyMDEwLTExLTE1IDEyOjQ5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhdm9pZCB1c2luZyBpbnZhbGlkIGNsb2NrIHRpbWVzCgkgIEJlIGV4dHJhIGNhcmVmdWwgdG8gbm90IHVzZSBpbnZhbGlkIGNsb2NrIHRpbWVzIGJ1dCBnaXZlIGEgd2FybmluZyBpbnN0ZWFkLiBUaGlzCgkgIHNob3VsZCBtYWtlIHRoaW5ncyB3b3JrIGJldHRlciB3aXRoIGZhdWx0eSBjbG9jayBpbXBsZW1lbnRhdGlvbnMuCgoyMDEwLTExLTExIDEwOjQxOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogaW1wcm92ZSBzb21lIGNvbW1lbnRzIGFib3V0IHRoZSB6aWd6YWcgaW50ZXJzZWN0aW9uCgoyMDEwLTEyLTAyIDEzOjA0OjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIHVudXNlZCBzeW1ib2xzIHRvIHByb3BlciBzZWN0aW9ucwoKMjAxMC0xMi0wMiAxMzowMzo1NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3REYXRlVGltZSBzZWN0aW9uIGFuZCB1cGRhdGUgaXQgZm9yIGxhdGVzdCBzeW1ib2xzCgoyMDEwLTEwLTE5IDE4OjA5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBPbmx5IGNhbGwgdXBkYXRlX2J1ZmZlcmluZyBpZiBuZWVkZWQuCgkgIHVwZGF0ZV9idWZmZXJpbmcgaXMgc28gYmlnIGl0IHdpbGwgbmV2ZXIgYmUgaW5saW5lZCAoYW5kIHNob3VsZG4ndCksCgkgIHdlIHRoZXJlZm9yZSBtb3ZlIHRoZSBjaGVjayBvdXRzaWRlIG9mIGl0LgoKMjAxMC0xMC0xOSAxNzo0NToxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQXZvaWQgcmUtY2hlY2tpbmcgbWFueSB0aW1lcyB3aGV0aGVyIGFuIGl0ZW0gaXMgYSBidWZmZXIKCSAgQXZvaWRzIGNhbGxpbmcgNiB0aW1lcyBnc3RfYnVmZmVyX2dldF90eXBlKCkgZm9yIGV2ZXJ5IGl0ZW0gY29taW5nCgkgIHRocm91Z2ggcXVldWUyCgoyMDEwLTEwLTE5IDE3OjQzOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZWR1Y2UgYW1vdW50IG9mIHRpbWUgbG9ja3MgYXJlIHRha2VuCgoyMDEwLTEwLTE5IDE3OjQyOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXh1cCBkb2N1bWVudGF0aW9uIG9mIHNvbWUgcHJvcGVydGllcwoKMjAxMC0xMC0xOSAxNzo0MDoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQXZvaWQgdXNlbGVzcyBzZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIGNhbGN1bGF0aW9ucy4KCSAgKiBDYWNoZSBzcmMgYW5kIHNpbmsgdGltZQoJICAqIFVzZSBhIGJvb2xlYW4gdG8ga25vd24gd2hldGhlciBzcmMvc2luayB0aW1lIG5lZWRzIHRvIGJlIHJlY2FsY3VsYXRlZAoJICBBdm9pZHMgNTAlIG9mIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpCgoyMDEwLTEwLTIwIDE3OjQxOjI4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmUtdXNpbmcgR3N0Q2xvY2tJRCBpbnN0ZWFkIG9mIGNvbnN0YW50bHkgcmVjcmVhdGluZyBvbmUKCSAgTWFrZXMgX3Npbmtfd2FpdF9jbG9jayBhdCBsZWFzdCAyIHRpbWVzIGZhc3Rlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxNzo0MDo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNsb2NrOiBOZXcgQVBJIHRvIHJlLXVzZSBhIHNpbmdsZSBzaG90IEdzdENsb2NrSUQKCSAgQVBJOiBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTM6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQYXNzIGFsb25nIG1pbmlvYmplY3QgdHlwZSB0aHJvdWdoIHZhcmlvdXMgZnVuY3Rpb25zCgkgIEF2b2lkcyBkb2luZyB1c2VsZXNzIEdTVF9JU18qCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTM6MDg6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBTd2l0Y2ggZW5hYmxlX2xhc3RfYnVmZmVyIHRvIGFuIGF0b21pYyBpbnQKCSAgQXZvaWRzIGhhdmluZyB0byB0YWtlIGEgbG9jayB0byByZWFkL3dyaXRlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTE5IDE1OjUzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVzZWxlc3MgY2hlY2tzIGZyb20gZTQwNmY3CgkgIHNyY3Jlc3VsdCB3YXMgYmVpbmcgcmVjaGVja2VkIGluIHBsYWNlcyBpdCBjb3VsZG4ndCBoYXZlIGNoYW5nZWQuCgkgIHF1ZXVlIGxldmVsIHdhcyBiZWluZyByZWNoZWNrZWQgaW4gcGxhY2VzIGl0IGNvdWxkbid0IGhhdmUgY2hhbmdlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc4MAoKMjAxMC0xMC0xMyAxMzo1MDoyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogT25seSBlbWl0IGdfY29uZF9zaWduYWwgd2hlbiBuZWVkZWQKCSAgS2VlcCB0cmFjayBvZiB3aGljaCBjb25kIHdlJ3JlIHdhaXRpbmcgZm9yIGFuZCBvbmx5IGVtaXQgd2hlbiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzkKCjIwMTAtMTAtMjAgMTc6MTI6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBtb3ZlIGdfcmV0dXJuX2lmX2ZhaWwgdG8gd2hlcmUgaXQgaXMgbmVlZGVkCgoyMDEwLTExLTAzIDExOjE0OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIHZlcnNpb246IFRha2UgbmFubyB2ZXJzaW9uIGludG8gYWNjb3VudCBpbiBHU1RfQ0hFQ0tfVkVSU0lPTigpCgkgIElmIHRoZSBuYW5vIGlzID4gMCB0aGUgY3VycmVudCB2ZXJzaW9uIHNob3VsZCBiZSBoYW5kbGVkIHRoZSBzYW1lIGFzCgkgIG1pY3JvICsgMS4KCjIwMTAtMTEtMDEgMTY6MzQ6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFNldCB0aGUgZXZlbnQgc291cmNlIG9iamVjdCBpZiBub25lIGlzIHNldCB5ZXQgaW4gZ3N0X3BhZF9wdXNoX2V2ZW50KCkKCSAgT3RoZXJ3aXNlIHRoZSBzb3VyY2Ugd2lsbCBzdGF5IGF0IE5VTEwsIHRoZSBldmVudCBpcyBwYXNzZWQgdG8gdGhlCgkgIHBlZXJwYWQgdmlhIGdzdF9wYWRfc2VuZF9ldmVudCgpIGFuZCB0aGVuIHRoZSBwZWVycGFkIGlzIHNldCBhcwoJICBzb3VyY2Ugb2YgdGhlIGV2ZW50IGluc3RlYWQgb2YgdGhlIG9yaWdpbmF0aW5nIHBhZC4KCjIwMTAtMTAtMzEgMTg6NDg6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50IGFuZCB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMTAtMzEgMTg6NDY6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50IGFuZCBtb3ZlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGludG8gaW5uZXIgYmxvY2sKCjIwMTAtMTAtMzEgMTg6MjM6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlCgkgIE90aGVyIHRoYW4gc2F2aW5nIGFuIGltbWVuc2UgYW1vdW50IG9mIDQgYnl0ZXMgb2YgbWVtb3J5IHRoaXMKCSAgcHJldmVudHMgY2xhbmcgZnJvbSBjb21wbGFpbmluZyBhbmQga2VlcHMgdGhlIHJpbmcgYnVmZmVyIHN0YXRlCgkgIGluIGEgc2luZ2xlIHZhcmlhYmxlIGluc3RlYWQgb2YgdHdvLgoKMjAxMC0xMC0yMCAxMDoxODoxOCArMDIwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3R0YXNrOiBTZXQgdGhyZWFkIG5hbWVzIG9uIFdpbmRvd3Mgd2l0aCBNU1ZDIGlmIGEgZGVidWdnZXIgaXMgYXR0YWNoZWQKCSAgRml4ZXMgYnVnICM2MzIxNjguCgoyMDEwLTEwLTE5IDE1OjUyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtYWNyb3MuaDoKCSAgbWFjcm9zOiBEZWZpbmUgcmVzdHJpY3Qga2V5d29yZCBpZiBub3QgYXZhaWxhYmxlCgkgIFRoaXMgY2hhbmdlIGFsd2F5cyBkZWZpbmVzIHRoZSByZXN0cmljdCBrZXl3b3JkIGlmIGEKCSAgbm9uLUM5OSBDIGNvbXBpbGVyIGlzIHVzZWQuIEluIHRoZSBjYXNlIG9mIEdDQyA+PSA0CgkgIGl0IHdpbGwgYmUgZGVmaW5lZCB0byBfX3Jlc3RyaWN0X18sIGluIGFsbCBvdGhlcgoJICBjYXNlcyB0byBub3RoaW5nLiBUaGlzIGFsbG93cyB0byB1c2UgdGhlIHJlc3RyaWN0CgkgIGtleXdvcmQgdW5jb25kaXRpb25hbGx5LgoKMjAxMC0xMi0wMSAyMzo1NzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byA+PSAyLjIyCgkgIFNlZSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTAtMTItMDEgMjM6NTY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zMSA9PT0KCjIwMTAtMTEtMzAgMTc6NDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMxCgoyMDEwLTExLTI3IDE5OjEzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogYXZvaWQgJ3VudXNlZCBhcmd1bWVudCcgd2FybmluZ3MgY2F1c2VkIGJ5IEdTVF9CT0lMRVJQTEFURV9GVUxMCgkgIFRoZSB1bnVzZWQgZGF0YSBwYXJhbWV0ZXIgaW4gdGhlIGNsYXNzX2luaXQgdHJhbXBvbGluZSBmdW5jdGlvbgoJICBzZWVtcyB0byBjYXVzZSB3YXJuaW5ncyB3aXRoIHNvbWUgYysrIGNvbXBpbGVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTg2OQoKMjAxMC0xMS0wOSAyMzoyNzoxNyAtMDMwMCAgcmV5bmFsZG8gPHJleW5hbGRvQG9wZW5kb3QuY2w+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiBzb21lIHNtYWxsIGZpeGVzIHRvIHRoZSBwbHVnaW4gd3JpdGVyJ3MgZ3VpZGUKCSAgRml4IHdyb25nbHkgcGxhY2VkIGV4YW1wbGUgYW5kIHdlaXJkbHkgcGhyYXNlZCAnbm90ZScgbGFja2luZyBwcm9wZXIKCSAgZm9ybWF0dGluZy4gRml4IG1pc3NpbmcgaGludCBmb3IgYXV0b2dlbi5zaCBsb2NhdGlvbiBhbmQgcmVwaHJhc2UKCSAgJ2J1aWx0IGFuZCBpbnN0YWxsZWQnIHNlbnRlbmNlLiBGaXggd3JvbmdseSBwaHJhc2VkIGFuZCByZWR1bmRhbnQKCSAgcGFyYWdyYXBoIGluIFBXRwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0OTIxCgoyMDEwLTExLTI3IDExOjAyOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIG1hbnVhbDogSW1wcm92ZSBzdGF0ZXMgZG9jdW1lbnRhdGlvbgoJICBCZSBtb3JlIGV4cGxpY2l0IGFib3V0IGJlaW5nIG9uIE5VTEwgYmVmb3JlIHVucmVmcwoKMjAxMC0xMS0yMCAxNDo1NDoyMyAtMDgwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogSW5jbHVkZSBleHBvcnRlZCBwYWNrYWdlcyBpbmZvcm1hdGlvbiBpbiBHSVJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUzODkKCjIwMTAtMTEtMTggMDA6Mjk6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuNSBwcmUtcmVsZWFzZQoKMjAxMC0xMS0xOCAwMDoyOToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBjYXBzIGxlYWsgaW4gZWxlbWVudCBmYWN0b3J5IGxpc3QgdXRpbGl0eSBmdW5jdGlvbnMKCjIwMTAtMTEtMTcgMjM6NTU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9odS5wbzoKCSogcG8vc2sucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTExLTE3IDA5OjM5OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBBZGQgX2Zyb21fdW5peF9lcG9jaCB2YXJpYW50cwoJICBBZGRzIDIgdmFyaWFudHMgZm9yIHRoZSBnc3RfZGF0ZV90aW1lX2Zyb21fdW5peF9lcG9jaCBmdW5jdGlvbiwKCSAgb25lIGZvciBVVEMgYW5kIGFub3RoZXIgZm9yIGxvY2FsIHRpbWUuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoX3V0YwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaF9sb2NhbF90aW1lCgkgIEZpeGVzICM2NTMwMzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTAzMQoKMjAxMC0xMS0wMyAxNDoyMTowMiArMDAwMCAgVmxhZGltaXIgRXJlbWVldiA8d2wyNzc2QGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdDogZG9uJ3QgcmUtZGVmaW5lIF9VU0VfTUFUSF9ERUZJTkVTIGlmIGFscmVhZHkgZGVmaW5lZAoJICBUaGlzIGF2b2lkcyBjb21waWxlciB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMzg4NgoKMjAxMC0xMS0wMSAxNjowNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC40IHByZS1yZWxlYXNlCgoyMDEwLTExLTAxIDE1OjM2OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTAtMzEgMjA6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBsZWFrIHBhZCByZWYgaW4gcHVsbCBtb2RlIHdoZW4gZmx1c2hpbmcKCSAgRml4IHBhZCBsZWFrIHdoZW4gcXVldWUyIGlzIGZsdXNoaW5nIG9yIGJlaW5nIHNodXQgZG93bi4KCjIwMTAtMTAtMzEgMTk6NDc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBkb24ndCBzZW5kIHNlZWtzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIHVwc3RyZWFtIGluIHB1bGwgbW9kZQoJICBJZiBkb3duc3RyZWFtIGlzIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUsIHNob3J0LWNpcmN1aXQgYW55IHB1bGxzIGJleW9uZAoJICB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCByZXR1cm4gRkxPV19VTkVYUEVDVEVEIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YKCSAgc2VuZGluZyBhIHNlZWsgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGZpbGUgdXBzdHJlYW0sIHNpbmNlIHRoaXMgbWlnaHQKCSAgY29uZnVzZSB1cHN0cmVhbSBlbGVtZW50cyAoYW5kL29yIGh0dHAgc2VydmVycywgZm9yIGV4YW1wbGUpLiBGaXhlcwoJICBwbGF5YmFjayBvZiBhcHBsZSB0cmFpbGVycyBpbiB0b3RlbSBhbmQgeW91dHViZS9odG1sNSBjbGlwcyBpbgoJICBXZWJraXRHVEsrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyOTc3CgoyMDEwLTEwLTI4IDIzOjI4OjE1ICsxMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgaW5wdXQgcG9zaXRpb24gZm9yIHF1ZXJpZXMgaWYgd2UgaGF2ZSBubyBvdXRwdXQgcG9zaXRpb24KCjIwMTAtMTAtMjggMTM6Mjk6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJldmVyc2UgbmVnb3RpYXRpb24KCSAgV2hlbiB0aGUgZG93bnN0cmVhbSBlbGVtZW50IHN1Z2dlc3RzIGEgbmV3IGZvcm1hdCwgcGFzcyB0aGUgc3VnZ2VzdGlvbgoJICB1cHN0cmVhbSBpZiB3ZSBjYW4ndCBjb252ZXJ0IHRvIGl0LgoJICBGaXhlcyAjNjMzMTQ3CgoyMDEwLTEwLTI3IDE4OjEyOjM2ICswMjAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IHRyYWNraW5nIG9mIHVubGlua2VkIHN0cmVhbXMuCgkgIDMzMDgyZWI5ZTQyYzUyZTRkZjg0ODE5NTk0NmYxYjdiYmNlNzY4YzUgaW50cm9kdWNlZCBhIGJ1ZwoJICBwcmV2ZW50aW5nIHNwYXJzZSB1bmxpbmtlZCBzdHJlYW1zIGZyb20gYWR2YW5jaW5nIHByb3Blcmx5LAoJICBsZWFkaW5nIHRvIHRoZSBxdWV1ZSBibG9ja2luZy4KCSAgRml4ZXM6ICM2MzMxNzYKCjIwMTAtMTAtMjcgMTg6MTE6MzUgKzAyMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IEFkZCBhIG11bHRpcXVldWUgc3BhcnNlIHN0cmVhbXMgdGVzdAoKMjAxMC0xMC0yNyAxMzoxNjoxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YmJkNzA4IHRvIDAxMWJjYzgKCjIwMTAtMTAtMjIgMTc6MzU6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuMyBwcmUtcmVsZWFzZQoKMjAxMC0xMC0xOCAxNzo0MjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGNvbnN0LWlmeSBieXRlIHJlYWRlciBhcmd1bWVudCBpbiBwZWVrL3NjYW4gQVBJCgkgIEJlY2F1c2Ugd2UgY2FuLgoKMjAxMC0xMC0yMiAxMTo1Mjo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogRml4IDY0Yml0IGNvbnN0YW50CgkgIEJhc2ljYWxseSB3ZSdyZSBub3QgbWVhbnQgdG8gcHV0IGFueXRoaW5nIG1vcmUgY29tcGxleCB0aGFuIHNpbXBsZSBudW1iZXJzLAoJICBkdWUgdG8gdGhlIGRlZmluaXRpb24gb2YgR19HVUlOVDY0X0NPTlNUQU5UOgoJICBHX0dVSU5UNjRfQ09OU1RBTlQodmFsKQkodmFsIyNVTCkKCSAgV2hpY2ggcHJldmlvdXNseSByZXN1bHRlZCBpbiAuLi4uIDEgPDwgNDlVTAoKMjAxMC0xMC0xOCAxMDo0Njo1OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZWNvbXB1dGUgY29ycmVjdCBydW5uaW5nIHRpbWUgZm9yIGJ1ZmZlciBlbmRpbmcgZmx1c2hpbmcgc3RlcAoJICBQcmV2ZW50cyBkZWxheWluZy9oYW5naW5nIHdoZW4gcmVzdW1pbmcgUExBWUlORy4KCSAgRml4ZXMgIzYzMjQzMy4KCjIwMTAtMTAtMTYgMTk6MTk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBkb2NzOiBmaXggbWlzYy4gZ3RrLWRvYyB3YXJuaW5ncyBpbiBsaWJzCgkgIChmb3IgZ3RrLWRvYyAxLjE1KQoKMjAxMC0xMC0xNiAxODoyNjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBSZXZlcnQgImxpYnMvZ3N0L2RhdGFxdWV1ZTogRG9jdW1lbnQgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODA3MjdjMTE3NzAzNTA3Zjc5MGE4NmIwOTYyYWIzZDkxNWU1YTQ5MS4KCSAgVGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UuIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkgaXMgYWxyZWFkeQoJICBkb2N1bWVudGVkIGFib3ZlLiBBbmQgd2UgbmVlZCB0aGUgZG9jIGJsdXJiIGZvciBfbmV3KCkgaGVyZS4KCjIwMTAtMTAtMTYgMTc6MDA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogZmxlc2ggb3V0IHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIGEgYml0IG1vcmUKCjIwMTAtMTAtMTYgMTY6NTM6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IGFkZCBzb21lIGd0ay1kb2MgU2luY2U6IG1hcmtlcnMKCSAgQWRkIHNvbWUgZ3RrLWRvYyBTaW5jZTogbWFya2VycywgZml4IG9uZSBTaW5jZTogbWFya2VyLAoJICBmaXggdHlwby4KCjIwMTAtMTAtMTYgMDA6MjU6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC4yIHByZS1yZWxlYXNlCgoyMDEwLTEwLTE2IDAwOjE0OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VzLnBvOgoJKiBwby9mci5wbzoKCSogcG8vbHQucG86CgkqIHBvL25sLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMC0xNSAxOTo0NToxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogdXNlZnVsIGZhY3RvcnkgbmFtZXMgZm9yIHVyaS1oYW5kbGVycyBvdXRwdXQKCSAgRml4ZXMgIzYzMjIzNi4KCjIwMTAtMTAtMTQgMTI6MzE6MzIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1YTY2OGJmIHRvIDdiYmQ3MDgKCjIwMTAtMTAtMTIgMTU6MTM6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBkYXRldGltZTogVXNlIHNlY29uZHMgYXMgZG91YmxlCgkgIFVzZSBzZWNvbmRzIGFzIGRvdWJsZSB0byBtYWtlIEFQSSBzaW1pbGFyIHRvIGdsaWIncwoJICBnZGF0ZXRpbWUuIEFsc28gbW92ZSB0aW1lem9uZSBwYXJhbWV0ZXIgdG8gdGhlCgkgIGZpcnN0IHBvc2l0aW9uLCBqdXN0IGxpa2UgZ2xpYidzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTEwLTExIDE2OjE1OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogTW92ZSBkb2Mgb3V0c2lkZSB0aGUgaWZkZWZzCgkgIE1vdmUgdGhlIGRhdGV0aW1lIGRvY3VtZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9ucyBvdXRzaWRlIHRoZQoJICBpZmRlZnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0wOS0yNyAxOTozNTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBVc2UgR0RhdGVUaW1lIGlmIGF2YWlsYWJsZQoJICBVc2UgR0RhdGVUaW1lIGludGVybmFsbHkgb24gR3N0RGF0ZVRpbWUgaWYgZ2xpYiBhbHJlYWR5CgkgIHByb3ZpZGVzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTA5LTI4IDE3OjQ2OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIGdsaWItcHJpdmF0ZTogQWRkIGluY2x1ZGUgcHJvdGVjdGlvbiBtYWNybwoKMjAxMC0xMC0xMyAxMjo1MTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIGd1YXJkIHRvIGJ1ZmZlcl9zZXRfY2FwcygpIHRoYXQgY2hlY2tzIGlmIGNhcHMgYXJlIHNpbXBsZQoKMjAxMC0xMC0xMyAxNTo1NjoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBhZGQgYSBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MKCjIwMDktMTAtMDEgMTE6MTQ6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBsaWJzL2dzdC9kYXRhcXVldWU6IERvY3VtZW50IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsCgoyMDA5LTA5LTI4IDEzOjM1OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgYmFzZS9nc3RkYXRhcXVldWU6IGlubGluZSBzb21lIGZ1bmN0aW9ucywgZ2V0IGxldmVscyB3aXRoIG1lbWNweS4KCjIwMTAtMTAtMTMgMTE6NTQ6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSB1bnVzZWQgYXJndW1lbnQgZnJvbSBmaW5kX3JhbmdlKCkKCjIwMTAtMTAtMTMgMTE6NTI6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGNsZWFudXAgZ2V0X3Byb3BlcnR5L3NldF9wcm9wZXJ0eQoKMjAxMC0xMC0xMiAxODo0ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYXZvaWQgZ19jb25kX3NpZ25hbCB3aGVuIHdlIGNhbgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgY29uZCB3ZSBhcmUgd2FpdGluZyBvbiBhbmQgb25seSBzaWduYWwgd2hlbiBzb21lIG90aGVyIHRocmVhZAoJICBpcyB3YWl0aW5nLgoKMjAxMC0xMC0xMSAxOToyNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCBkdXBsaWNhdGUgdHlwZSBjaGVjayB3aGVuIGZyZWVpbmcgbWluaW9iamVjdAoJICBnc3RfbWluaV9vYmplY3RfdW5yZWYoKSBoYXMgZ3VhcmRzIHRoYXQgY2hlY2sgdGhlIHR5cGUgYWxyZWFkeSwgc28KCSAgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdG8gcmUtY2hlY2sgaXQgaGVyZSBhZ2FpbiB3aGlsZSBnZXR0aW5nIHRoZQoJICBjbGFzcyAodGhlcmUncyBub3QgcmVhbGx5IG11Y2ggcG9pbnQgdG8gdGhhdCBhbnl3YXksIHNpbmNlIHdlIGRvbid0CgkgIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGdldF9jbGFzcywgc28gd2UnZCBjcmFzaCBhbnl3YXkgaWYKCSAgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBhIG1pbmkgb2JqZWN0LCB0aGUgb25seSBxdWVzdGlvbiB3b3VsZAoJICBiZSBpZiB0aGVyZSdkIGJlIGEgd2FybmluZyBiZWZvcmUgdGhlIGNyYXNoIG9yIG5vdCkuCgoyMDEwLTEwLTExIDE4OjU1OjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogRGlyZWN0bHkgaW5jcmVhdGUgbWluaV9vYmplY3QgaW4gbWluaV9vYmplY3RfZnJlZSgpCgkgIFNwZWVkcyB1cCBtaW5pX29iamVjdF91bnJlZiBieSAyNSUgYnkgYXZvaWRpbmcgdGhlIHR5cGVjaGVjayB3aGljaAoJICBpcyBhdm9pZGFibGUgaGVyZSBzaW5jZSBpdCBpcyBvbmx5IGNhbGxlZCBvbiBleGlzdGluZyBtaW5pb2JqZWN0cy4KCjIwMTAtMTAtMTEgMTg6MzA6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBSZW1vdmUgY29uZnVzaW5nIERFQlVHX1JFRkNPVU5UIGRlZmluZQoJICB0aGUgZGVidWdnaW5nIHN0YXRlbWVudHMgd2lsbCBiZSBzaWxlbmNlZCBhdXRvbWF0aWNhbGx5IGlmIGRlYnVnZ2luZwoJICBpcyBkaXNhYmxlZCwgYW5kIHRoZSB0eXBlIGNoZWNrIGlzIGFjdHVhbGx5IHJlcXVpcmVkLgoKMjAxMC0xMC0xMSAxODoxMDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVsZWFzZSBxdWV1ZTIgbG9jayBiZWZvcmUgbm90aWZ5CgkgIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiB3ZSBub3RpZnkgdGhlIHRlbXAtbG9jYXRpb24KCSAgcHJvcGVydHksCgkgIEZpeGVzICM2MzE4NTMKCjIwMTAtMTAtMTEgMTY6NDU6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhZGQgZGVidWcgc3RhdGVtZW50CgoyMDEwLTEwLTExIDEwOjI3OjUyICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBhcHBseSBzaW5rIHNlZ21lbnQgb24gdGhlIHNvdXJjZSBpZiBxdWV1ZSBpcyBlbXB0eQoJICBBcHBseSB0aGUgc2luayBzZWdtZW50IG9uIHRoZSBzb3VyY2UgaW1tZWRpYXRseSB3aGVuIGl0IGlzIHJlY2VpdmVkCgkgIGFuZCB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBxdWV1ZS4KCSAgU29sdmVzICM0ODIxNDcKCjIwMTAtMTAtMTEgMTU6NTE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRvY3VtZW50YXRpb24gZm9yIGl0ZXJhdGVfc291cmNlcwoKMjAxMC0xMC0xMSAxNjo0MToyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IHVzZSB0aGUgZ3RrLWRvYyBzaG9ydGN1dHMgdG8gZ2V0IGNvbG91cmVkIGFuZCB4cmVmZWQgZXhhbXBsZQoKMjAxMC0xMC0xMSAxNDoyMDoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW5pdGlhbGl6ZSB2YXJpYWJsZQoKMjAxMC0xMC0xMSAxMDo1Njo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbXByb3ZlIHRyYWNraW5nIG9mIHNvdXJjZSBlbGVtZW50cwoJICBUcmFjayBlbGVtZW50cyB0YWdnZWQgd2l0aCB0aGUgSVNfU09VUkNFIGZsYWcgaW4gYSBzaW1pbGFyIHdheSB3ZSB0cmFjayB0aGUgc2luawoJICBlbGVtZW50cy4gVGhpcyBhbGxvd3MgdXMgdG8gZWZmaWNpZW50bHkgZGlzcGF0Y2ggZG93bnN0cmVhbSBldmVudHMgdG8gdGhlIHJpZ2h0CgkgIGVsZW1lbnRzLgoKMjAxMC0xMC0xMSAxMDo1NTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB0YWcgYXMgYSBTT1VSQ0UgZWxlbWVudAoJICBUYWcgYWxsIGVsZW1lbnRzIGRlcml2aW5nIGZyb20gdGhlIGJhc2VzcmMgd2l0aCB0aGUgSVNfU09VUkNFIGZsYWcuCgoyMDEwLTEwLTExIDEwOjUzOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIElTX1NPVVJDRSBmbGFnCgkgIEFkZCB0aGUgR1NUX0VMRU1FTlRfSVNfU09VUkNFIGZsYWcgc28gdGhhdCB3ZSBjYW4gdGFnIHNvdXJjZSBlbGVtZW50cyBsaWtlIHdlCgkgIGNhbiB3aXRoIHNpbmsgZWxlbWVudHMuCgoyMDEwLTEwLTA5IDE0OjE4OjQ0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPG9nZy5rLm9nZy5rQGdvb2dsZW1haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBnX21hcHBlZF9maWxlX3VucmVmIGV4aXN0cyBhbHJlYWR5IHNpbmNlIEdMaWIgMi4yMS4zCgoyMDEwLTEwLTEwIDE4OjE0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXBvcnQgdGhlIG91dHB1dCBwb3NpdGlvbiBvbiBQT1NJVElPTiBxdWVyaWVzIG9uIHRoZSBzcmNwYWQKCSAgVGhlcmUgY2FuIGJlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGlucHV0IGFuZCBvdXRwdXQgbGFzdF9zdG9wLgoJICBGaXhlcyBidWcgIzYyOTQxMC4KCjIwMTAtMTAtMDggMTI6NDM6MjAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNGE4YWRjIHRvIDVhNjY4YmYKCjIwMTAtMTAtMDggMTI6NTQ6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBhbmQgc2ltcGxpZnkgY29kZQoJICBvbGRpZCB3YXMgb25seSB1c2VkIHdoZW4gd2Ugd2VyZSBkb2luZyBtdWx0aXBsZSBwb3BzIHBlciBsb29wLgoKMjAxMC0xMC0wOCAxMjo1MDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVlM2M5YmYgdG8gYzRhOGFkYwoKMjAxMC0xMC0wOCAxMjo0ODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJICBieXRld3JpdGVyOiBBZGQgbWlzc2luZyBmaWxlCgoyMDEwLTEwLTA4IDEyOjE4OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgdW5jaGVja2VkIHZhcmlhbnRzIG9mIHRoZSB3cml0aW5nIGZ1bmN0aW9ucwoJICBUaGVzZSBkb24ndCBjaGVjayBpZiB0aGVyZSdzIGVub3VnaCBmcmVlIHNwYWNlIGF2YWlsYWJsZSBhbmQgYXJlCgkgIGF2YWlsYWJsZSBhcyBpbmxpbmUgZnVuY3Rpb25zIG9ubHkuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MTZfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDI0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2RhdGFfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX2ZpbGxfdW5jaGVja2VkCgoyMDEwLTEwLTA4IDA5OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGNvbnRyb2xsZXIsIGRhdGFwcm90b2NvbDogbWFrZSBwdWJsaWMgZW51bSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgdGhyZWFkLXNhZmUKCSAgTm90IHRoYXQgaXQgaXMgbGlrZWx5IHRvIG1hdHRlciBpbiBwcmFjdGljZSwgYnV0IHNpbmNlIHRoZXNlIGFyZSBwdWJsaWMKCSAgQVBJIHRoZXkgc2hvdWxkIHByb2JhYmx5IGJlIHRocmVhZC1zYWZlLgoKMjAxMC0xMC0wOCAwMDozODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBkYXRhcHJvdG9jb2wsIGxmb2NvbnRyb2xzb3VyY2U6IGZpeCBlbnVtIHZhbHVlIG5hbWUgaW4gZW51bXMgdGhhdCBhcmUgcHVibGljIEFQSQoJICBTbyBydW4tdGltZSBiaW5kaW5ncyBjYW4gaW50cm9zcGVjdCB0aGUgbmFtZXMgY29ycmVjdGx5ICh3ZSBhYnVzZSB0aGlzCgkgIGZpZWxkIGFzIGRlc2NyaXB0aW9uIGZpZWxkIG9ubHkgaW4gZWxlbWVudHMsIG5vdCBmb3IgcHVibGljIEFQSQoJICAod2hlcmUgdGhlIGRlc2NyaXB0aW9uIGJlbG9uZ3MgaW50byB0aGUgZ3RrLWRvYyBjaHVuaykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5NDYKCjIwMTAtMTAtMDggMDk6NDc6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEZpeCBwb3NzaWJsZSBpbmZpbml0ZSBsb29wIGNhdXNlZCBieSBhbiBvdmVyZmxvdwoKMjAxMC0xMC0wNyAxODo0NjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBtaW5vciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aGVuIGRvaW5nIGdfb2JqZWN0X25vdGlmeSgpIGZvciB0aGUgImxhc3QtbWVzc2FnZSIgcHJvcGVydHkKCSAgTWFrZSBzdXJlIHByb3BlcnR5IG5hbWVzIHBhc3NlZCB0byBnX29iamVjdF9ub3RpZnkoKSBhcmUgaW4gdGhlIGNhbm9uaWNhbCBmb3JtCgkgIChpZS4gImxhc3QtbWVzc2FnZSIgbm90ICJsYXN0X21lc3NhZ2UiKSwgc28gdGhhdCBnX3BhcmFtX3NwZWNfcG9vbF9sb29rdXAoKQoJICBkb2Vzbid0IGhhdmUgdG8gZG8gc3RyZHVwL2Nhbm9uaWNhbGl6ZS9mcmVlIGZvciBldmVyeSBzaW5nbGUgbm90aWZ5IGNhbGwuCgkgIFRoaXMgb25seSBhcHBsaWVzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBvbGRlciBHTGliIHZlcnNpb25zICg8IDIuMjYpLgoKMjAxMC0xMC0wNyAxODoyNzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgZmFrZXNpbms6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBhbmQgcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBvbGQgR0xpYiB2ZXJzaW9ucyBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LCBhbmQgYWxzbyByZW1vdmUgd29yay1hcm91bmQgZm9yIGdfb2JqZWN0X25vdGlmeSgpIHRocmVhZC0KCSAgc2FmZXR5IGlzc3VlcyB3aXRoIG9sZGVyIEdMaWIgdmVyc2lvbnMgaWYgaXQncyBub3QgbmVlZGVkIGFueSBtb3JlLgoKMjAxMC0xMC0wNyAxODoyMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LgoKMjAxMC0xMC0wNyAxODoxOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYuCgoyMDEwLTEwLTA3IDE3OjUzOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGFuZCByZW1vdmUgd29yay1hcm91bmQgZm9yIG9sZCBHTGliIHZlcnNpb25zIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYsIGFuZCBhbHNvIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkgdGhyZWFkLQoJICBzYWZldHkgaXNzdWVzIHdpdGggb2xkZXIgR0xpYiB2ZXJzaW9ucyBpZiBpdCdzIG5vdCBuZWVkZWQgYW55IG1vcmUuCgoyMDEwLTEwLTA3IDE3OjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IHVzZSBuZXcgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgZm9yIGNhcHMgbm90aWZpZXMgaWYgYXZhaWxhYmxlCgkgIElmIHdlJ3JlIGJ1aWxkaW5nIGFnYWluc3QgR0xpYiA+PSAyLjI2LjAsIHdlIGNhbiB1c2UgdGhlIG1vcmUgZWZmaWNpZW50CgkgIGdfb2JqZWN0X25vdGlmeV9ieV9jYXBzKCksIHdoaWNoIGF2b2lkcyB0aGUgcGFyYW0gc3BlYyBsb29rdXAuCgoyMDEwLTEwLTA3IDE2OjI3OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIHVubmVjZXNzYXJ5IGdfb2JqZWN0X25vdGlmeSgpIGNhbGwKCSAgR09iamVjdCB3aWxsIGRvIHRoYXQgZm9yIHVzIHdoZW4gZ19vYmplY3Rfc2V0KigpIGlzIGNhbGxlZC4KCjIwMTAtMTAtMDcgMTk6MTg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBxb3MgZGVzaWduIGRvYwoJICBGaXggc29tZSB0eXBvcy4KCSAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBxdWFsaXR5IGZpZWxkIGZvciB2aWRlbyBkZWNvZGVycyB0byBzb21ldGhpbmcgdGhhdAoJICBtYWtlcyBtb3JlIHNlbnNlLgoKMjAxMC0xMC0wNSAxNzowMjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0ZW1wIGRpcmVjdG9yaWVzIHRvIENSVUZUX0RJUlMKCjIwMTAtMTAtMDUgMTU6MDU6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IHVzZSBtYXRoLWNvbXBhdC5oIGZvciBNX1BJCgoyMDEwLTEwLTA1IDE0OjQ1OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IHJlbW92ZSByYW5kb20gTVNWQyBjb21wYXRpYmlsaXR5IGRlZmluZSBmb3IgTV9QSSB0aGF0IGRvZXNuJ3QgYmVsb25nIGhlcmUKCSAgQ29kZSB0aGF0IG5lZWRzIHRoaXMgc2hvdWxkIGluY2x1ZGUgZ3N0L21hdGgtY29tcGF0Lmggb3IgdXNlIEdfUEkuCgoyMDEwLTEwLTA1IDE0OjE2OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBnc3Q6IGFkZCBtYXRoLWNvbXBhdC5oIGhlYWRlcgoJICBBZGQgbWluaW1hbCBtYXRoLWNvbXBhdGguaCBoZWFkZXIgd2hlcmUgd2UgY2FuIGRlZmluZSBmYWxsYmFjawoJICB2ZXJzaW9ucyBmb3IgbWlzY2VsbGFuZW91cyBtYXRoIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBhbHdheXMKCSAgYXZhaWxhYmxlLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGR1cGxpY2F0ZSB0aGlzIGluIHBsdWdpbnMuCgkgIFRoZSBoZWFkZXIgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQsIHNvIG5lZWRzIHRvIGJlCgkgIGluY2x1ZGVkIGV4cGxpY2l0bHkgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDgwMgoKMjAxMC0xMC0wNSAxMTo0Nzo1OSArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICB0b29sczogZml4IHBhcnNpbmcgb2YgdGltZXN0YW1wIGluIGdzdC1wbG90LXRpbWVsaW5lCgoyMDEwLTA5LTI1IDE0OjI0OjQ2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCB0YWtlIHByZXJvbGwtbG9jayBpbiBnZXRfcHJvcGVydHkKCSAgVXNlIGF0b21pYyBvcHMgdG8gcmVhZCBhbmQgd3JpdGUgbW9yZSBwcm9wZXJ0aWVzLiBUYWtpbmcgdGhlIHByZXJvbGwgbG9jayBpbiBnZXRfcHJvcGVydHkKCSAgY2FuIGxvY2sgdXAgYXBwbGljYXRpb25zIHJlYWRpbmcgdGhlIHByb3BlcnR5IGR1cmluZyBwcmVyb2xsLgoKMjAxMC0xMC0wMiAxODoxMTozMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIGEgZml4bWUgZm9yIDAuMTEKCjIwMTAtMTAtMDQgMTU6NDk6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmb3JtYXQgbmVnYXRpdmUgdmFsdWVzIGJldHRlcgoJICBGb3JtYXQgbmVnYXRpdmUgdmFsdWVzIHByb3Blcmx5IGluIHRoZSBkZWJ1ZyBsb2cuCgoyMDEwLTEwLTAzIDIzOjQxOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCSAgZ2NjIGRvZXNuJ3Qgbm90aWNlIHRoYXQgdGhlIGNoZWNrIGFzc2VydGlvbiBtYWNyb3Mgd2lsbCBhYm9ydAoJICBmdXJ0aGVyIGV4ZWN1dGlvbiBvZiB0aGUgdGVzdHMuCgoyMDEwLTEwLTAzIDIzOjMyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGlubGluZSB2YXJpYW50cyBvZiBhbGwgaW1wb3J0YW50IGZ1bmN0aW9ucwoKMjAxMC0xMC0wMyAxNToyNzozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogQWRkIGlubGluZWQgYW5kIHVuY2hlY2tlZCB2ZXJzaW9ucyBvZiB0aGUgaW1wb3J0YW50IGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3NraXBfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfc2tpcF90b19ieXRlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQxNl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50MzJfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDY0X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50MTZfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQzMl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDY0X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50OF91bmNoZWNrZWQKCSAgVGhpcyBhbG9uZSBtYWtlcyBmbGFjcGFyc2UgYWJvdXQgMyB0aW1lcyBmYXN0ZXIuCgoyMDEwLTEwLTAzIDE0OjU5OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGd1YXJkcyB0byB0aGUgaW5saW5lZCBnZXRfcG9zL2dldF9yZW1haW5pbmcvZ2V0X3NpemUvZXRjIGZ1bmN0aW9ucwoKMjAxMC0xMC0wMyAxNDoyNDowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IE9wdGltaXplIHBlZWtfYml0cy9nZXRfYml0cyBhIGJpdAoJICBVc2UgbG9jYWwgdmFyaWFibGVzIGluc3RlYWQgb2YgZGVyZWZlcmVuY2luZyB0aGUgYml0cmVhZGVyCgkgIHBvaW50ZXIgYWxsIHRoZSB0aW1lIGFuZCBkb24ndCBjb3B5IHRoZSByZWFkZXIgZm9yIHBlZWtfYml0cy4KCjIwMTAtMDktMjcgMTk6Mjk6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3RkYXRldGltZTogRml4IHN0cmluZyBzZXJpYWxpemF0aW9uCgkgIENvcnJlY3RseSBzZXJpYWxpemUgdHpvZmZzZXQgYXMgYSBnc3R2YWx1ZQoKMjAxMC0wOS0yNCAxMjoyMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgYWRqdXN0X3RpbWUoKQoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgZW5kIHVwIHdpdGggbmVnYXRpdmUgdGltZXN0YW1wcy4KCjIwMTAtMDUtMjYgMjA6Mjk6MjIgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbmRlcmRlbGF5IG5lZWRzIHRvIGJlIHN1YnRyYWN0ZWQgaW4gYWRqdXN0X3RpbWUoKQoJICBsYXRlbmN5IGlzIGFscmVhZHkgc2luay1sYXRlbmN5ICsgcmVuZGVyLWRlbGF5LCBhbmQgaGVyZSB3ZSBvbmx5CgkgIHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBzaW5rLWxhdGVuY3kuCgkgIEZpeGVzICM2MzA0MzYKCjIwMTAtMDktMjQgMDA6MTM6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJICB3aW4zMjogZGVmaW5lIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUgaW4gd2luMzIgY29uZmlnLmggYXMgd2VsbAoKMjAxMC0wOS0yMyAyMDo1Nzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wOS0yMyAyMDo0ODoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgR1NUX1BBUkFNX01VVEFCTEVfKiBwcm9wZXJ0eSBmbGFncwoKMjAxMC0wNS0wNCAwOTozNjo0MyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE1ha2UgYSBXQVJOSU5HIGludG8gYSBERUJVRyBzdGF0ZW1lbnQKCSAgRml4ZXMgYnVnICM2MzA0MzcuCgoyMDEwLTAxLTEyIDE3OjEwOjU5ICswMTAwICBUcm9uZCBBbmRlcnNlbiA8dHJvbmQuYW5kZXJzZW5AdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcmFjeSBzaHV0ZG93biBjbG9jayBpZCBsZWFrCgkgIENsb2NrIElEcyB3ZXJlIGxlYWtlZCBpZiB0aGUgY2xvY2sgZ290IGRpc3Bvc2VkIGJlZm9yZSB0aGUgd29ya2VyIHRocmVhZAoJICBnb3QgYSBjaGFuY2UgdG8gcmVhcCB1bnNjaGVkdWxlZCBlbnRyaWVzLgoJICBGaXhlcyBidWcgIzYzMDQzOS4KCjIwMTAtMDktMjMgMTg6MTg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgdXNlbGVzcyBtZW1jcHkKCSAgQmVjYXVzZSBvZiB0aGUgYXdrd2FyZCByZWZjb3VudGluZyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIsIHdlIG1pZ2h0IGVuZCB1cAoJICB3aXRoIHdyaXRhYmxlIGJ1ZmZlcnMgdGhhdCBwb2ludCB0byB0aGUgc2FtZSBkYXRhLiBDaGVjayBmb3IgdGhvc2UgY2FzZXMgc28gdGhhdAoJICB3ZSBhdm9pZCBhIHVzZWxlc3MgbWVtY3B5IGFuZCBrZWVwIHZhbGdyaW5kIHF1aWV0LgoJICBGaXhlcyAjNjI4MTc2CgoyMDEwLTA5LTIzIDE0OjM3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBmaXggJ21ha2UgY2hlY2snIGJ1aWxkIGZvciBzZXR1cHMgd2hlcmUgbm8gYysrIGNvbXBpbGVyIGlzIGF2YWlsYWJsZQoJICBPbmx5IHRyeSB0byBidWlsZCAocHNldWRvLSlDKysgdW5pdCB0ZXN0IGlmIGEgd29ya2luZyBDKysgY29tcGlsZXIgaGFzIGJlZW4KCSAgZm91bmQsIG90aGVyd2lzZSB0aGUgYnVpbGQgd2lsbCBmYWlsLiAoV2UgZG8gdGhpcyB0byBtYWtlIHN1cmUgb3VyIGhlYWRlcnMKCSAgYXJlICdDKysgY2xlYW4nKS4KCjIwMTAtMDktMjMgMTA6MDg6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0hPUklaT05UQUxfRVJST1IKCSAgQWRkcyBhIG5ldyB0YWcgdG8gaW5kaWNhdGUgdGhlIGVycm9yIGluIGhvcml6b250YWwgcG9zaXRpb25pbmcKCSAgaW4gbWV0ZXJzLiBUaGlzIGlzIG9uZSBvZiB0aGUgYXZhaWxhYmxlICdncHMgZXJyb3InIGZpZWxkcyBpbgoJICBleGlmLCBmb3IgZXhhbXBsZS4KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9IT1JJWk9OVEFMX0VSUk9SCgoyMDEwLTA5LTIzIDE1OjM0OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiB1c2UgYSBuZXN0ZWQgbG9jayB0byBhdm9pZCByZWZmaW5nIHRoZSBwZWVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDliNDI0YjE1NzAzNjZiMTA3NDZhNzYyZThjOWM0YzFiMzViMjFlOTEuCgoyMDEwLTA5LTIzIDE1OjEyOjMyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSB2YXIgb25seSB1c2VkIGZvciBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTAtMDktMDcgMTY6NTY6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgYSBuZXN0ZWQgbG9jayB0byBhdm9pZCByZWZmaW5nIHRoZSBwZWVyCgkgIEZpeGVzICM1MDM1OTIKCjIwMTAtMDctMTUgMTU6NDc6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y3BwLmNjOgoJICB0ZXN0czogcmVidWlsZCBvbmUgdGVzdCB1c2luZyBjcHAKCSAgVGhpcyBhaW1zIHRvIGNhdGNoIGNwcCBpc3N1ZXMgaW4gY29yZS4gQWRkIGMrKyBib2lsZXJwbGF0ZSB0byBjb25maWd1cmUuCgoyMDEwLTA5LTIxIDE4OjMzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhYTBkMWQwIHRvIDVlM2M5YmYKCjIwMTAtMDktMTkgMTY6MTA6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IEhhbmRsZSBuZXcgYXNzZXJ0aW9uIGluIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMgoKMjAxMC0wOS0xOCAxOToyOTowOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQWRkIGNoZWNrIGZvciBwYXR0ZXJuIGJpdHMgbm90IGluIG1hc2sKCjIwMTAtMDktMTcgMTk6NTM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVc2UgZ19maWxlX3Rlc3QoKSBpbnN0ZWFkIG9mIGFjY2VzcygpIHdoaWNoIGRvZXMgbm90IGV4aXN0IG9uIE1TVkM2CgkgIEZpeGVzIGJ1ZyAjNjI5NDk0LgoKMjAxMC0wOS0xNyAxNzozNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZnVuY3Rpb24gdG8gYWRkIGEgbGlzdCBvZiBidWZmZXJzCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGFkZCBhIGxpc3Qgb2YgYnVmZmVycyB0byB0aGUgYnVmZmVybGlzdC4KCjIwMTAtMDktMTcgMTU6NTE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBmdW5jdGlvbiB0byBnZXQgYSBsaXN0IG9mIGJ1ZmZlcnMKCSAgQWRkIGEgZnVuY3Rpb24gdG8gcmV0cmlldmUgYSBsaXN0IG9mIGJ1ZmZlcnMgY29udGFpbmluZyB0aGUgZmlyc3QgTiBieXRlcyBmcm9tCgkgIHRoZSBhZGFwdGVyLiBUaGlzIGNhbiBiZSBkb25lIHdpdGhvdXQgYSBtZW1jcHkgYW5kIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvCgkgIHRyYW5zZmVyIHRoZSBsaXN0IHRvIGEgR3N0QnVmZmVyTGlzdCBsYXRlci4KCjIwMTAtMDktMTcgMTU6MDc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmV1c2UgbW9yZSBkYXRhIGluIF9wZWVrKCkKCSAgT3B0aW1pemUgX3BlZWsoKSBzb21lIG1vcmUgYnkgcmV1c2luZyBhbHJlYWR5IGFzc2VtYmxlZCBkYXRhIHdoZW4gd2UgY2FuLgoKMjAxMC0wOS0xNyAxMzo1NzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSBfdGFrZSgpIGEgbGl0dGxlIG1vcmUKCSAgV2hlbiB3ZSBoYXZlIGFscmVhZHkgYXNzZW1ibGVkIHNvbWUgZGF0YSBiZWZvcmUsIHJldXNlIHRoaXMgZGF0YSBhbmQgb25seSBjb3B5CgkgIHRoZSBwYXJ0IHRoYXQgaXMgbmV3LgoKMjAxMC0wOS0xNyAxMjo0ODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZWZhY3RvciBhZGFwdGVyIHRha2UKCSAgTW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gb25lIHBsYWNlCgoyMDEwLTA5LTE3IDEyOjQwOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgc3VwcG9ydCBmb3IgMCBzaXplZCBidWZmZXJzCgkgIEFkZCBzdXBwb3J0IGZvciAwIHNpemVkIGJ1ZmZlcnMuIFRoaXMgaXMgaW50ZXJlc3RpbmcgaW4gY29tYmluYXRpb24gd2l0aCB0aGUKCSAgdGltZXN0YW1wIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzYyOTU1MwoKMjAxMC0wOS0xNyAxMDowMTowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBwd2c6IE1ha2UgYSBzZW50ZW5jZSBjbGVhcmVyLgoKMjAxMC0wOS0xNiAxOToyNzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ha2Ugc3VyZSBnc3RyZWFtZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgd2hlbiBjcmVhdGluZyBlbGVtZW50cwoJICBBZGQgZ3N0X2lzX2luaXRpYWxpemVkKCkgZ3VhcmQgdG8gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCksIHNvCgkgIHBlb3BsZSB3aG8gZm9yZ290IHRvIGNhbGwgZ3N0X2luaXQoKSBnZXQgYSB1c2VmdWwgd2FybmluZyBmb3Igd2hhdAoJICBzZWVtcyB0byBiZSBhIGNvbW1vbiBlbm91Z2ggbWlzdGFrZS4KCjIwMTAtMDktMTYgMDA6Mzc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBtaW5vciBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZSgpIGNvZGUgcmVmbG93CgkgIFNwcmlua2xlIHNvbWUgR19VTkxJS0VMWSgpLCByZXR1cm4gVFJVRS9GQUxTRSBjb25zdGFudHMsIGF2b2lkIGFuCgkgIHVubmVjZXNzYXJ5IGdfdmFsdWVfdW5zZXQoKSwgbW92ZSBnX3ZhbHVlX2luaXQoKStzZXRfaW50NjRfcmFuZ2UoKQoJICBjbG9zZXIgdG8gd2hlcmUgdGhleSdyZSBuZWVkZWQuCgoyMDEwLTA5LTE2IDAwOjMwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UoKSBvcHRpbWlzYXRpb25zCgkgIERvbid0IGNyZWF0ZSBhIG5ldyBHVmFsdWVBcnJheSBjb3B5IGZvciBldmVyeSBzaW5nbGUgX2FkZF9idWZmZXJpbmdfcmFuZ2UoKQoJICBjYWxsLCBidXQgYXBwZW5kIHRvIHRoZSBleGlzdGluZyB2YWx1ZSBhcnJheSBvd25lZCBieSB0aGUgc3RydWN0dXJlIGluc3RlYWQuCgoyMDEwLTA5LTE2IDAwOjAzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBtaWNyby1vcHRpbWlzYXRpb24gZm9yIHNvbWUgc2V0dGVyIGZ1bmN0aW9ucwoJICBTcGxpdCBvdXQgZnVuY3Rpb25zIHRoYXQgZG8gdGhlIGFjdHVhbCB3b3JrLCBzbyB3ZSBhdm9pZCBkb2luZwoJICB0aGUgc2FtZSBnX3JldHVybl9pZl9mYWlsKCkgY2hlY2tzIG11bHRpcGxlIHRpbWVzIGZvciBlYWNoIGNhbGwuCgoyMDEwLTA5LTE1IDIzOjQyOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV97aWRffXRha2VfdmFsdWUoKQoJICBBZGQgX3NldF92YWx1ZSgpIHZhcmlhbnRzIHRoYXQgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHZhbHVlIHBhc3NlZAoJICBpbnN0ZWFkIG9mIG1ha2luZyBhIGNvcHkgb2YgdGhlIHZhbHVlLiBUaGlzIGlzIHVzZWZ1bCBmb3Igc2V0dGluZwoJICB2YWx1ZXMgdG8gdGhpbmdzIHRoYXQgYXJlbid0IHJlZmNvdW50ZWQgKGUuZy4gR1ZhbHVlQXJyYXlzIG9yCgkgIHN0cmluZ3Mgb3Igc3RyaW5nIGFycmF5cywgZXRjLikuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV90YWtlX3ZhbHVlKCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3Rha2VfdmFsdWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5ODMxCgoyMDEwLTA5LTE2IDE5OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkb2Mgc3RyaW5nLCB3ZSBwb3N0IGVsZW1lbnQgbWVzc2FnZXMKCjIwMTAtMDktMTYgMTk6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWRkIG1lc3NhZ2UtZm9yd2FyZCBvcHRpb24KCSAgQWRkIGFuIG9wdGlvbiB0byBmb3J3YXJkIGFsbCB0aGUgaW50ZXJuYWwgbWVzc2FnZXMgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUKCSAgZmlsdGVyZWQgc3VjaCBhcyBFT1MsIFNFR01FTlQgYW5kIEFTWU5DIG1lc3NhZ2VzLgoJICBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8sIGZvciBleGFtcGxlLCBkZXRlY3QgdGhhdCBhIHBhcnRpYWwgcGlwZWxpbmUgaXMKCSAgcHJlcm9sbGVkIG9yIHJlYWNoZWQgZW9zLgoJICBUaGUgb3JpZ2luYWwgbWVzc2FnZXMgYXJlIHdyYXBwZWQgaW5zaWRlIGFuIGVsZW1lbnQgbWVzc2FnZSBiZWNhdXNlIHRoZSBwYXJlbnQKCSAgYmlucyBhcmUgbm90IHN1cHBvc2VkIHRvIHNlZSB0aG9zZSBpbnRlcm5hbCBtZXNzYWdlcyBlc2NhcGUuCgoyMDEwLTA5LTEyIDE2OjUwOjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiB1c2Ugc3Ryc3RyKCkgaW5zdGVhZCBvZiBnX3N0cnN0cl9sZW4oKQoJICBTYXZlcyB1cyBhIHN0cmxlbigpIGNhbGwuCgoyMDEwLTA5LTE1IDEzOjI5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBvbmx5IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2Ugd2hlbiBwZXJjZW50IGNoYW5nZWQKCjIwMTAtMDktMTUgMTM6MTU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFsd2F5cyB1cGRhdGUgYnVmZmVyaW5nIHN0YXR1cwoJICBVcGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0dXMgZXZlbiB3aGVuIHdlIGFyZSBub3QgdXNpbmcgYSBxdWV1ZSBzbyB0aGF0IEVPUyBjYW4KCSAgcHJvcGVybHkgZmluaXNoIHRoZSBidWZmZXJpbmcuCgoyMDEwLTA5LTEzIDIwOjM5OjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggZmx1c2gtc3RvcCBldmVudCBoYW5kbGluZwoJICBBIGZsdXNoLXN0b3AgZXZlbnQgd291bGQgbWFrZSBhIHBhZCB1bmZsdXNoaW5nLCBjYXVzaW5nIGl0CgkgIHRvIHN0YXJ0IGFjdGluZyBhcyBhbiBhY3RpdmF0ZWQgcGFkLiBUaGlzLCBmb3IgZXhhbXBsZSwKCSAgY291bGQgbGVhZCB0byB0aGUgY2hhaW4gZnVuY3Rpb24gYmVpbmcgY2FsbGVkIHdoZW4gc3R1ZmYKCSAgaXNuJ3QgaW5pdGlhbGl6ZWQuCgkgIFRoaXMgY291bGQgaGFwcGVuZCB3aGVuIHNldHRpbmcgcXRkZW11eCB0byBOVUxMIHdoaWxlIGEgc2VlawoJICB3YXMgYmVpbmcgaGFuZGxlZCBpbiB0aGUgdXBzdHJlYW0gZmlsZXNyYyAoaW4gcHVzaCBtb2RlKS4KCSAgVGhpcyBwYXRjaCBtYWtlcyBpdCBjaGVjayBpZiBpdCBpcyBhY3RpdmF0ZWQgYmVmb3JlIHNldHRpbmcKCSAgaXQgdG8gdW5mbHVzaGluZy4KCjIwMTAtMDktMTMgMTE6MTc6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBkb2NzOiBmaXggd2FybmluZ3MgcG9pbnRlZCBvdXQgYnkgZ3RrLWRvYwoKMjAxMC0wOS0xMyAwOTo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2twb29sOiBtYWtlIGRlYnVnIG9ubHkgY29kZSBjb25kaXRpb25hbAoKMjAxMC0wOS0xMCAxNTowNzowMyAtMDQwMCAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGludHJvc3BlY3Rpb246IEJ1aWxkIHdpdGggbGF0ZXN0IGctaQoJICBIaWRlIGEgY29tcGF0aWJpbGl0eSB0eXBlZGVmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MjQxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTA2MTYKCjIwMTAtMDktMDkgMjI6MjQ6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBkb24ndCBsZWFrIGVudHJpZXMgZm9yIGJsYWNrbGlzdGVkIGZpbGVzCgoyMDEwLTA5LTA5IDIxOjU5OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBjaGVja3M6IGFuZCBjaGVjayB0aGUgcmlnaHQgZW52LXZhciAoZml4dXAgbGFzdCBjb21taXQpCgoyMDEwLTA5LTA5IDIxOjU2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgdGVzdHM6IGFsbG93IHJ1bm5pbmcgc3RhdGUgdGVzdHMgZm9yIGFsbCBlbGVtZW50cwoJICBOb3cgb25lIGNhbiB1c2UgR1NUX05PX1NUQVRFX0lHTk9SRV9FTEVNRU5UUz0xIG1ha2UgZ2VuZXJpYy9zdGF0ZXMuY2hlY2sKCSAgdG8gdHJ5IGVsZW1lbnRzIHRoYXQgd291bGQgbm9ybWFseSBiZSBza2lwcGVkLgoKMjAxMC0wOS0wNiAxNToxNjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhdm9pZCBzdHJpbmcgY3JlYXRpb24gd2hlbiBub3QgbmVlZGVkCgoyMDEwLTA5LTA5IDE2OjExOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGlkZW50aXR5IGlzIEdBUCBmbGFnIGF3YXJlLCBubyBuZWVkIHRvIGxldCBpdCBiZSB1bnNldCBieSBiYXNldHJhbnNmb3JtCgoyMDEwLTA5LTA5IDE1OjU3OjE1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCBhIHN5bmMgYnVzIGhhbmRsZXIgYW5kIG1vdmUgc3RhdGUtY2hhbmdlIGxvZ2dpbmcgdGhlcmUKCSAgVGhlIHN5bmMgaGFuZGxlciBpcyBjYWxsZWQgZm9yIGFsbCBtZXNhZ2VzLCB0aGUgZXZlbnQgbG9vcCB3ZSBwcmV2aW91c2x5IHVzZWQKCSAgd2FzIG5vdC4gSW4gdGhlIHN5bmMgaGFuZGxlciB0cmlnZ2VyIHBpcGVsaW5lIGRvdCBkdW1wcyBhbmQgY2FsbCBhY2Nlc3MgZm9yIGEKCSAgZmlsZSBpbiB0bXAtZGlyIHRvIGFkZCBtYXJrZXJzIGludGVyY2VwdGFibGUgYnkgc3RyYWNlIGFuZCBjby4KCjIwMTAtMDktMDggMTg6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc2ltcGxpZnkgY29kZSBhIGJpdAoJICBObyBuZWVkIHRvIGNhbGwgZ19zbGlzdF9sZW5ndGgoKSBoZXJlLgoKMjAxMC0wOS0wOCAwOTozNzo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBhIHVuY2hlY2tlZCB2YXJpYW50IGZvciBwdWxsCgkgIEFkZCBpbnRlcm5hbCBfZ2V0X3JhbmdlX3VuY2hlY2tlZCB0aGF0cyBpcyBjYWxsZWQgZnJvbSBfZ2V0X3JhbmdlIGFuZAoJICBfcHVsbF9yYW5nZS4KCjIwMTAtMDktMDcgMjM6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVnbHkvYmFkL2ZmbXBlZyBwa2ctY29uZmlnIGRpcnMgdG8gUEtHX0NPTkZJR19QQVRICgkgIFNvIHdlIGNhbiBmaWd1cmUgb3V0IHBsdWdpbiBkaXJlY3RvcmllcyBvZiBvdGhlciBtb2R1bGVzIHByb3Blcmx5IGluCgkgIHRoZSB1bmluc3RhbGxlZCBzZXR1cCBjYXNlLCBmb3IgdW5pdCB0ZXN0cyB0aGF0IG5lZWQgZWxlbWVudHMgZnJvbQoJICBvdGhlciBtb2R1bGVzLgoKMjAxMC0wOS0wNyAxMjowMToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzIGZvciByZWNlbnQgY2hhbmdlcwoJICBBbmQgc29ydGVkIGhpZXJhcmNoeQoKMjAxMC0wOS0wNyAxMTo0MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGMyZTEwYmYgdG8gYWEwZDFkMAoKMjAxMC0wOS0wNyAxMTowOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZG9uJ3QgdXNlIGdzdF9zdHJ1Y3R1cmVfZm9yZWFjaCgpIG9uIE5VTEwgcG9pbnRlcnMKCjIwMTAtMDktMDYgMjA6MTk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA5LTA2IDIwOjE2OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3RlcnJvcjogYWRkIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfRU5DT0RFCgkgIE5vIGlkZWEgdGhvdWdoIHdoeSB3ZSBldmVuIGhhdmUgR1NUX0xJQlJBUllfRVJST1JfRU5DT0RFIG9yIHdoZW4gb25lCgkgIHdvdWxkIHdhbnQgdG8gdXNlIHRoYXQgaW5zdGVhZCBvZiBHU1RfU1RSRUFNX0VSUk9SX0VOQ09ERS4KCjIwMTAtMDktMDYgMjA6MDY6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBhdm9pZCBwb2ludGxlc3Mgc3RyaW5nIGNvcHlpbmcKCSAgVGhlcmUncyBubyBuZWVkIHRvIGNyZWF0ZSB0aGVzZSB0YWJsZXMgd2l0aCBkdXBsaWNhdGVzIG9mIHRoZQoJICB1bnRyYW5zbGF0ZWQgZXJyb3IgbWVzc2FnZSBzdHJpbmcgY29uc3RhbnRzLCB3ZSBjYW4ganVzdCB1c2UKCSAgb2xkLWZhc2hpb25lZCBzd2l0Y2gvY2FzZSBhbmQgY2FsbCBnZXR0ZXh0IGRpcmVjdGx5LiBUaGlzIGFsc28KCSAgbWFrZXMgdGhpbmdzIHNsaWdodGx5IG1vcmUgdGhyZWFkIHNhZmUgYW5kIG1vcmUgcm9idXN0IHRvIGJhZAoJICBpbnB1dCAoaW52YWxpZCBlcnJvciBjb2RlcykuCgoyMDEwLTA5LTA2IDE4OjMzOjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGNoZWNrOiBBdm9pZCBlcnJvcjogYXJyYXkgc3Vic2NyaXB0IGlzIGFib3ZlIGFycmF5IGJvdW5kcwoJICBDb3VsZCBoYXZlIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyIGZvciBteSAyMDAwdGggY29tbWl0CgkgIHRvIEdTdHJlYW1lci4uLgoKMjAxMC0wOS0wNiAxNzowMToxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBnaXZlIGEgcHJhY3RpY2FsIGV4YW1wbGUgZm9yIHRoZSBnc3Rfb2JqZWN0X2hhc19hbmNoZXN0b3IKCjIwMTAtMDktMDYgMTQ6MzM6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIHRoZSBwYXJlbnRfY2xhc3MgZGVmaW5lZCBieSBHX0RFRklORV9UWVBFCgoyMDEwLTA5LTA2IDE0OjMyOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiB0dW5lIHNraXBwaW5nIGNoZWNrcyBpZiB3ZSBoYXZlIGRpc2FibGVkIHN1YnN5c3RlbXMKCSAgU2tpcCBBQkkgdGVzdHMgaWYgc29tZSBzdWJzeXN0ZW1zIGFyZSBvZmYuIFJlbW92ZSBESVNBQkxFX0dTVF9ERUJVRyBmcm9tCgkgIHNraXBwaW5nIGV4cG9ydCBjaGVja3MgYXMgdGhpcyBpcyBzYWZlIG5vdy4KCjIwMTAtMDktMDYgMTQ6MDk6NTIgKzAzMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogVXNlIHRoZSBjb3JyZWN0IHZhcmlhYmxlIGZvciBkZWJ1ZyBtZXNzYWdlCgkgIERlYnVnIHByaW50IHdhcyB1c2luZyBhIHZhcmlhYmxlIHRoYXQgd2FzIG5vdCBpbml0aWFsaXplZC4KCjIwMTAtMDgtMTAgMTQ6MDU6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50LWRldGFpbHM6IGFsbG93IGZvciBhcmJpdHJhcnkgZWxlbWVudCBkZXRhaWxzCgkgIEFkZCBhIEdzdFN0cnVjdHVyZSB0byBHc3RFbGVtZW50Q2xhc3MgYW5kIEdzdEVsZW1lbnRGYWN0b3J5LiBBZGQgc2V0dGVycy9nZXR0ZXIuCgkgIEhhbmRsZSBpdCBpbiB0aGUgcmVnaXN0cnkgY29kZS4gUHJpbnQgaXRlbXMgaW4gZ3N0LWluc3BlY3QuCgkgIEZpeGVzICMzOTY3NzQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFfZGF0YSgpLCBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhX2RhdGFfZGV0YWlsKCkKCjIwMTAtMDktMDUgMTg6NTc6NTYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkM2Q5YWNmIHRvIGMyZTEwYmYKCjIwMTAtMDktMDUgMTI6MTM6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjYTFjODY3IHRvIGQzZDlhY2YKCjIwMTAtMDktMDUgMTA6MjI6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgc3ltYm9scyBmcm9tIEdzdEVsZW1lbnRGYWN0b3J5TGlzdAoJICBBbmQgaGVyZSdzIGEgcmVtaW5kZXIgc2luY2UgSSBmb3Jnb3QgdG8gcHV0IHRoZW0gaW4gbXkgcHJldmlvdXMKCSAgY29tbWl0LgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9maWx0ZXIKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1lbnRzCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2lzX3R5cGUKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9kZWJ1ZwoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9yYW5rX2NvbXBhcmVfZnVuYwoJICBBUEk6IEdzdEVsZW1lbnRGYWN0b3J5TGlzdFR5cGUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQU5ZCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FVRElPVklERU9fU0lOS1MKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQVVESU9fRU5DT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREFCTEUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERU1VWEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFUEFZTE9BREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0VOQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfRk9STUFUVEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01BWF9FTEVNRU5UUwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJTwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9JTUFHRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9NRVRBREFUQQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9TVUJUSVRMRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9WSURFTwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BTlkKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTVVYRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfUEFSU0VSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1BBWUxPQURFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9TSU5LCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1NSQwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9WSURFT19FTkNPREVSCgoyMDEwLTA4LTMxIDExOjM3OjQyICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBidWZmZXJpbmdfcmFuZ2VzIHF1ZXJ5IHN1cHBvcnQKCSAgRml4ZXMgYnVnIDYyMzEyMQoKMjAxMC0wOS0wMyAxOTo1ODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IE9ubHkgZmlsbCB0aGUgc3RhcnQvc3RvcCB2YWx1ZXMgb2YgdGhlIGJ1ZmZlcmluZyByYW5nZXMgaWYgYSBub24tTlVMTCBwb2ludGVyIHdhcyBwcm92aWRlZAoKMjAxMC0wOC0zMSAxMTozNToxMiArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHF1ZXJ5OiBuZXcgYnVmZmVyaW5nX3JhbmdlcyBBUEkKCSAgQWRkZWQgYSBuZXcgcXVlcnkgdHlwZSB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGFyZWFzIG9mIHRoZQoJICBtZWRpYSBjdXJyZW50bHkgYnVmZmVyZWQuIFNlZSBidWcgNjIzMTIxLgoJICBBUEk6IGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X2dldF9uX2J1ZmZlcmluZ19yYW5nZXMKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfbnRoX2J1ZmZlcmluZ19yYW5nZQoKMjAxMC0wOC0xNiAxOTowMToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIEdzdEVsZW1lbnRGYWN0b3J5OiBBZGQgbGlzdGluZyBmZWF0dXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2MTgxCgoyMDEwLTA5LTAyIDEyOjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBtZW50aW9uIEdTVF9ERUJVR19PUFRJT05TLCBPUkNfQ09ERSwgR19ERUJVRyBhbmQgR19TTElDRSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgTWVudGlvbiBhIGZldyBtb3JlIHVzZWZ1bCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlICdSdW5uaW5nIEdTdHJlYW1lcgoJICBhcHBsaWNhdGlvbnMnIHNlY3Rpb24gb2YgdGhlIEFQSSByZWZlcmVuY2UuCgoyMDEwLTA5LTAyIDE0OjE1OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogZml4IHVzZSBvZiBlbXB0eSBzdWJidWZmZXJzCgkgIFJlbW92ZSBhIHNob3J0IGN1dCB0aGF0IHdhcyBpZ25vcmluZyBzcmMtPmRhdGEgYWxsb2NhdGlvbiBtb2RlLiBBbGwKCSAgdGhlIGNhbGxlZCBjb2RlLXBhdGggYmVsb3cgaGFuZGxlIHNpemU9PTAuCgoyMDEwLTA5LTAyIDAwOjAxOjI1ICswMTAwICBKZWZmcmV5IFMuIFNtaXRoIDx3aHlkb3VidEB5YWhvby5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBGaXggY2FzdHMgaW4gYSBidW5jaCBvZiBpbmxpbmUgZnVuY3Rpb25zIHRvIG1haW50YWluIGNvcnJlY3QgY29uc3QtbmVzcwoJICBNYWtlIGNvZGUgaW5jbHVkaW5nIEdTdHJlYW1lciBoZWFkZXJzIGNvbXBpbGUgd2l0aCAtV2Nhc3QtcXVhbCBieQoJICBtYWludGFpbmluZyBjb25zdC1uZXNzIHdoZW4gY2FzdGluZy4gQWxzbyBmaXggZnVuY3Rpb24gc2lnbmF0dXJlIG9mCgkgIGdzdF9ieXRlX3dyaXRlcl9zZXRfcG9zKCk6IHRoZSBieXRlIHdyaXRlciBzaG91bGQgbm90IGJlIG1hcmtlZCBhcwoJICBjb25zdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzkxMAoKMjAxMC0wOC0zMSAxODo0MDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBidWlsZDogdXNlIG5ldyBBR19HU1RfUEtHX0NPTkZJR19QQVRIIG00IG1hY3JvIGZyb20gY29tbW9uCgkgIFNldHMgdXAgYSBHU1RfUEtHX0NPTkZJR19QQVRIIHZhcmlhYmxlIGZvciB1c2UgaW4gTWFrZWZpbGUuYW0KCSAgKGF2b2lkcyB0cmFpbGluZyAnOicgaW4gUEtHX0NPTkZJR19QQVRIIHVzZWQpLiBBIHVzZWZ1bCBzaWRlCgkgIGVmZmVjdCBvZiB0aGlzIGlzIGFsc28gdGhhdCB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50CgkgIGlzIG5vdyBsb2dnZWQgaW4gdGhlIGNvbmZpZ3VyZSBvdXRwdXQuCgoyMDEwLTA5LTAxIDExOjM0OjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgbWFudWFsOiBpbXByb3ZlIGNsb2NrIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDktMDEgMTE6MDY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggbWVtb3J5IGxlYWtzIGluIHRoZSBpbnQ2NHJhbmdlIHRlc3RzCgoyMDEwLTA4LTI0IDEyOjI3OjMwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBuZXcgR3N0SW50NjRSYW5nZSB0eXBlCgkgIG5ldyBHc3RJbnQ2NFJhbmdlIHRvIHN0b3JlIGdpbnQ2NCByYW5nZXMuCgkgIEFQSTogR1NUX1RZUEVfSU5UNjRfUkFOR0UKCSAgQVBJOiBnc3RfdmFsdWVfc2V0X2ludDY0X3JhbmdlCgkgIEFQSTogZ3N0X3ZhbHVlX2dldF9pbnQ2NF9yYW5nZV9taW4KCSAgQVBJOiBnc3RfdmFsdWVfZ2V0X2ludDY0X3JhbmdlX21heAoJICBGaXhlcyBidWcgIzYyNzgyNi4KCjIwMTAtMDgtMzAgMjE6MjY6MTggLTAzMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogVHJpdmlhbCBjbGVhbnVwIGZvciBHU1RfREVCVUdfQ0FURUdPUllfR0VUCgoyMDEwLTA4LTMwIDE2OjAyOjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUmUtaW5zdGF0ZSB0aGUgZGVmYXVsdCBmb3IgY29sb3IgdXNhZ2UKCSAgVGhpcyB3YXMgYWNjaWRlbnRseSByZW1vdmVkIGluIDdhNzIyMDkxYjZkMWI1ZDdmOTQwNGZkZWY0YzY5NWEyOWE2NWE5ODkKCjIwMTAtMDgtMzAgMTI6NDc6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogVXNlIGdfc3RyY21wMCBpbnN0ZWFkIG9mIHN0cmNtcAoJICBBdm9pZHMgc2VnZmF1bHRzIHdoZW4gdXNpbmcgTlVMTCBhcmd1bWVudHMuCgoyMDEwLTA4LTI3IDE1OjM1OjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCBzaWxlbnQgcHJvcGVydHkgdG8gc3VwcHJlc3Mgc2lnbmFsIGVtaXNzaW9uCgkgIEFsbG93IHRvIHR1cm4gb2ZmIHNpZ25hbCBlbWlzc2lvbiBhbmQgdGhlcmVmb3JlIGV4dHJhIGxvY2tpbmcgaWYgdGhpcyBpcyBub3QgbmVlZGVkLgoJICBGaXhlcyAjNjIxMjk5CgoyMDEwLTA4LTI4IDEwOjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQWRkIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKSB0byB0aGUgZG9jcyBhbmQgZXhwb3J0ZWQgc3ltYm9scwoKMjAxMC0wOC0yOCAxNzo1MToxNCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlIGNoZWNrcyBmb3IgZGVwcmVjYXRlZCBmbG93IGNoZWNrIG1hY3JvcwoJICBHU1RfRkxPV19JU19GQVRBTCgpIGFuZCBHU1RfRkxPV19JU19TVUNDRVNTKCkgYXJlIGRlcHJlY2F0ZWQsCgkgIHNvIGFyZW4ndCBhdmFpbGFibGUgZm9yIHRoZSB0ZXN0c3VpdGUgYW55IG1vcmUuCgoyMDEwLTA4LTI4IDA5OjM1OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IGludmVydGVkIGFzc2VydGlvbiBsb2dpYyBpbiBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkKCjIwMTAtMDgtMjggMDk6MzA6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdXRpbHM6IEFkZCBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkgdG8gY29tcGFyZSBmcmFjdGlvbnMKCSAgQW5kIHVzZSBpdCBmb3IgdGhlIGZyYWN0aW9uIGNvbXBhcmlzb25zIGluIGdzdHZhbHVlLmMgaW5zdGVhZAoJICBvZiB1c2luZyBjb21wYXJpc29ucyBieSBmaXJzdCBjb252ZXJ0aW5nIHRoZSBmcmFjdGlvbnMgdG8gZG91YmxlLgoJICBTaG91bGQgZml4IGJ1ZyAjNjI4MTc0LgoJICBBUEk6IGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKQoKMjAxMC0wOC0yOCAxNzowNDo0MyArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIHRlc3RzOiBBZGQgYSBjb3VwbGUgb2YgZXh0cmEgY2FwcyBzdHJpbmdzIHRvIHRlc3QKCjIwMTAtMDgtMjcgMTY6NTI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGRvIGFuIGluZmluaXRlIGxvb3AgaW4gdGhlIGxvb3AgZnVuY3Rpb24KCSAgSW5zdGVhZCByZXR1cm4gYWZ0ZXIgZXZlcnkgaXRlcmF0aW9uLCB3aGljaCBtYWtlcyBzdXJlIHRoYXQgdGhlCgkgIHN0cmVhbSBsb2NrIGlzIHJlbGVhc2VkIGZvciBhIHNob3J0IHRpbWUgYWZ0ZXIgZXZlcnkgaXRlcmF0aW9uLAoJICB0YXNrIHN0YXRlIGNoYW5nZXMgYXJlIGNoZWNrZWQsIGV0YyBhbmQgdGhpcyBhbGxvd3MgdGhlIHRhc2sKCSAgdG8gYmUgc3RvcHBlZCBwcm9wZXJseS4KCjIwMTAtMDgtMjcgMTY6NDk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZsdXNoIHRoZSBkYXRhIHF1ZXVlIGlmIGRvd25zdHJlYW0gcmV0dXJuIFdST05HX1NUQVRFIHRvbwoKMjAxMC0wOC0yNiAyMzozOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBlbGVtZW50czogU3RvcCB1c2luZyBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI2IDIzOjM3OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFN0b3AgdXNpbmcgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbmQgZG9jdW1lbnQgdGhlIHNwZWNpYWwgaGFuZGxpbmcgb2YgV1JPTkdfU1RBVEUuCgoyMDEwLTA4LTI2IDIzOjA3OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBEZXByZWNhdGUgR1NUX0ZMT1dfSVNfRkFUQUwoKSBhbmQgR1NUX0ZMT1dfSVNfU1VDQ0VTUygpCgkgIFRoZSBwcm9ibGVtIHdpdGggYm90aCBtYWNyb3MgaXMsIHRoYXQgdGhleSBzdWdnZXN0IHNvbWV0aGluZyB0aGF0IGlzbid0IHRydWUuCgkgIElmIEdTVF9GTE9XX0lTX0ZBVEFMIGlzIHRydWUsIHRoZXJlIGNvdWxkIHN0aWxsIGJlIGEgcHJvYmxlbSBmb3IgbWFueSBlbGVtZW50cwoJICBhbmQgdGhleSBzaG91bGQgc3RvcCB3aGF0IHRoZXkncmUgY3VycmVudGx5IGRvaW5nIGFuZCByZXR1cm4gdGhhdCB2YWx1ZQoJICB1cHN0cmVhbSAoZS5nLiBub3QtbGlua2VkIGluIGEgcGFyc2VyKS4gSWYgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBpcyBmYWxzZSwgaXQKCSAgY291bGQgc3RpbGwgYmUgdGhhdCB0aGlzIGlzICJvayIgZm9yIHRoZSBlbGVtZW50IChlLmcuIG5vdC1saW5rZWQgZm9yIGEgZGVtdXhlcgoJICBvbiBhIGZldyBvZiBpdHMgcGFkcyBidXQgbm90IGFsbCkuCgkgIEl0J3MgYmV0dGVyIHRvIG5vdCBoYXZlIHRoZXNlICJjb252ZW5pZW5jZSIgbWFjcm9zIGJ1dCBpbnN0ZWFkIGxldCBwZW9wbGUKCSAgKnRoaW5rKiBhYm91dCB0aGUgaGFuZGxpbmcgb2YgZGlmZmVyZW50IGZsb3cgcmV0dXJucywgdGhhdCBtYWtlcyBzZW5zZSBmb3IKCSAgdGhlaXIgZWxlbWVudC4gQW5kIHdlIHNob3VsZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQgaGFuZGxpbmcgb2YgZmxvdyByZXR1cm5zIGZvcgoJICBkaWZmZXJlbnQgY2xhc3NlcyBvZiBlbGVtZW50cyBpbiB0aGUgcGx1Z2luIHdyaXRlcidzIGd1aWRlLgoJICBGaXhlcyBidWcgIzYyODAxNC4KCjIwMTAtMDgtMjcgMTE6MTE6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGtlZXAgcHJvcGVydGllcyBpbiBvcmRlcgoKMjAxMC0wOC0yNyAxMDoyMjoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQVJHXyAtPiBQUk9QXyBmb3IgcHJvcGVydHkgY29uc3RhbnRzCgoyMDEwLTA4LTI2IDE3OjA0OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggb24tZGlzayBidWZmZXJpbmcgYWdhaW4KCjIwMTAtMDgtMjYgMTU6MTI6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVjb3ZlciBmcm9tIGludmFsaWQgZG93bnN0cmVhbSBzdWdnZXN0aW9ucwoJICBXaGVuIHdlIGFyZSBoYW5kbGluZyBhIGJ1ZmZlciBhbmQgbmVlZCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQgYnVmZmVyLCBoYW5kbGUgdGhlCgkgIGNhc2Ugd2hlbiBkb3duc3RyZWFtIHN1Z2dlc3RzIHVzIGEgZm9ybWF0IHRoYXQgd2UgY2FuJ3QgY29udmVydCB0aGUgaW5wdXQgYnVmZmVyCgkgIHRvLiBJbiB0aGF0IGNhc2UsIGNoZWNrIGlmIHRoZXJlIGlzIGFub3RoZXIgZm9ybWF0IGF2YWlsYWJsZSBkb3duc3RyZWFtIGluc3RlYWQKCSAgb2YgZmFpbGluZy4KCSAgRml4ZXMgIzYyMTMzMiBhbmQgc2VlIGFsc28gIzYxNDI5NgoKMjAxMC0wOC0yNiAxMzo0NjozNCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0cGx1Z2luOiBsb2FkIHRoZSBnc3QtcHl0aG9uIHBsdWdpbiBsb2FkZXIgd2l0aCBHX01PRFVMRV9CSU5EX0xBWlkuCgoyMDEwLTA4LTE2IDE0OjEyOjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEKCSAgQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEgZm9yIHJlcHJlc2VudGluZyBhcmJpdHJhcnkgcHJpdmF0ZQoJICBkYXRhIHRoYXQgYXBwbGljYXRpb25zIG1pZ2h0IHdhbnQgdG8gc3RvcmUgaW50byB0YWdzLiBFeGlmL2lkMywKCSAgZm9yIGV4YW1wbGUsIGhhdmUgdGFncyBmb3IgdGhpcy4KCSAgQVBJOiBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEKCSAgRml4ZXMgIzYyNjY1MQoKMjAxMC0wOC0yNCAxMjo0NjozOCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGdzdC1sYXVuY2g6IEZpeCBPSUxfQ1BVX0ZMQUdTIGRvY3MgZm9yIE9yYwoKMjAxMC0wOC0yNCAxNjoyNDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IHJlbW92ZSBPSUxfQ1BVX0ZMQUdTIGZyb20gbWFuIHBhZ2UKCSAgV2UncmUgdXNpbmcgT1JDIGluc3RlYWQgb2YgbGliT2lsIG5vdy4KCjIwMTAtMDgtMjMgMTg6MjA6MjMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgVmFsZ3JpbmQgZGVmaW5lIGlzIEhBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSAoKMjAxMC0wNy0yNyAxODoyNDo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBBbGxvdyBnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKCkgYmVmb3JlIGdzdF9pbml0KCkKCSAgQ2FsbGluZyBnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKCkgYmVmb3JlIGluaXRpYWxpemF0aW9uCgkgIHNlZW1zIGxpa2UgdGhlICJvYnZpb3VzIiBvcmRlci4KCjIwMTAtMDgtMjMgMTM6MDY6MTkgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggc2VnZmF1bHQgaW4gdGVzdAoKMjAxMC0wOC0yMyAxMDo1ODoxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGludGVybiBhbGwgR3N0UGx1Z2luRGVzYyBtZW1iZXJzIHdoZW4gdW5wYWNraW5nCgoyMDEwLTA4LTIzIDEwOjU2OjMwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBmaXggbGVhayB3aGVuIG5hbWluZyBwYXJlbnRlZCBvYmplY3QKCjIwMTAtMDgtMjAgMDM6MDc6NTggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBhIGdzdF9pc19pbml0aWFsaXplZCgpIEFQSQoJICBGb3Igb25lLCB0aGlzIHdpbGwgYWxsb3cgbGlicmFyaWVzIHRoYXQgZXhwZWN0IGFwcGxpY2F0aW9ucyB0bwoJICBpbml0aWFsaXplIEdTdHJlYW1lciBiZWZvcmUgdXNpbmcgdGhlaXIgQVBJIHRvIGhhdmUgYSBjaGVjayBmb3IgdGhpcwoJICBjb25kaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc0MzgKCjIwMTAtMDgtMjAgMTg6MDQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVsYXggdGhlIHNvdXJjZSBlbGVtZW50IGNoZWNrCgkgIFdoZW4gdGhlcmUgaXMgYSBzaW5rIGluc2lkZSBhIGJpbiwgdGhlIFNJTksgZmxhZyBpcyBzZXQgb24gdGhlIGJpbi4gV2hlbiB3ZSBhcmUKCSAgdHJ5aW5nIHRvIGl0ZXJhdGUgdGhlIHNvdXJjZSBlbGVtZW50cywgYWxzbyBpbmNsdWRlIHRoZSBiaW5zIHdpdGggdGhlIFNJTksgZmxhZwoJICBiZWNhdXNlIHRoZXkgY291bGQgYWxzbyBjb250YWluIHNvdXJjZSBlbGVtZW50cywgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZSBhbHNvIGEKCSAgc291cmNlLgoJICBUaGlzIHNvbHZlcyB0aGUgY2FzZSB3aGVyZSBzZW5kaW5nIGFuIEVPUyB0byBhIHBpcGVsaW5lIGRpZG4ndCBnZXQgZGlzcGF0Y2hlZCB0bwoJICBhbGwgc291cmNlIGVsZW1lbnRzLgoJICBTZWUgIzYyNTU5NwoKMjAxMC0wOC0xOSAxNzowNzowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGFkZGVkIHVuaXQgdGVzdCBmb3IgbmV3c2VnbWVudCBldmVudHMKCjIwMTAtMDMtMDUgMTc6MTg6MjMgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogUHVzaCBuZXdzZWdtZW50IHdoZW4gbGlua2luZyBpbiBQTEFZSU5HCgkgIEZpeGVzICM2MTE5MTgKCjIwMTAtMDgtMTIgMjA6MjM6NDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IGxpbmtfbWFueSBzaG91bGQgYWN0aXZhdGUgcGFkcyBpZiBuZWVkZWQKCSAgZ3N0X2VsZW1lbnRfbGlua19tYW55IGRvZXMgc29tZSBtYWdpYyBhbmQgY3JlYXRlcyBnaG9zdHBhZHMKCSAgaWYgbmVlZGVkLCBidXQgaXQgZGlkbid0IHNldCB0aGUgbmV3bHkgY3JlYXRlZCBnaG9zdHBhZCB0bwoJICBhY3RpdmUgaWYgbmVlZGVkLiBUaGlzIHBhdGNoIGZpeGVzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2Nzg0CgoyMDEwLTA4LTE5IDExOjExOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogRml4IG1lbW9yeSBsZWFrIGluIHRoZSB1bml0IHRlc3QgYnkgdW5yZWZmaW5nIEdzdERhdGVUaW1lIGluc3RhbmNlIGFmdGVyIHVzYWdlCgoyMDEwLTA4LTE5IDEwOjAzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGZpeCBjb21tZW50cyBpbiB0ZXN0CgoyMDEwLTA4LTE5IDA5OjU4OjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgR19HVUlOVDY0X0ZPUk1BVCB3aGVyZSBuZWVkZWQKCSAgRml4ZXMgYnVpbGQgb24gbWFjb3N4CgoyMDEwLTA4LTE4IDE1OjMxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbgoKMjAxMC0wOC0xOCAxNToxMjo0NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeGVkIHJhY3kgdW5pdCB0ZXN0cwoJICBGaXhlcyAjNjAwMDA0CgoyMDEwLTA4LTE2IDE4OjAxOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwbHVnaW5zOiBhZGQgZXhhbXBsZSBsYXVuY2ggbGluZXMgYW5kIG1vcmUgZXhwbGFuYXRpb24gdG8gdGhlIGRvY3MuCgkgIFRoZSBwbHVnaW5zIHdoZXJlIGFsbW9zdCB1bmRvY3VtZW50ZWQgOi8gLi4uCgoyMDEwLTA4LTEzIDE2OjE5OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY29tcGlsYXRpb24KCjIwMTAtMDctMDcgMDg6MjA6MjEgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGEgc3BlY2lhbCBjYXNlIGR1cmluZyByYW5nZSBtYW5hZ2VtZW50CgkgIFdoZW4gYSByYW5nZSBjb250YWluZWQgbm8gZGF0YSwgaWYgaXQgd2FzIG5ldyBvciBuZXdseSBlbXB0eSwgaXQgd291bGQKCSAgYmUgbWlzaGFuZGxlZCBpZiBpdCB3ZXJlIHRoZSBjdXJyZW50IHJhbmdlLgoKMjAxMC0wNy0wNSAxMzo0MzowNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbG9ja2luZyBhcm91bmQgaW5pdF9yYW5nZXMKCSAgVGhpcyBmaXhlcyBhIHNlZ2ZhdWx0IHdoZXJlIHRoZSByZWFkeSB0byBwYXVzZWQgc3RhdGUgY2hhbmdlIGNhdXNlcwoJICBmcmVlaW5nIGFuZCBhbGxvY2F0aW9uIG9mIG5ldyByYW5nZXMgd2hpbGUgYW5vdGhlciB0aHJlYWQgaXMgdHJ5aW5nIHRvCgkgIHVzZSB0aGVtLgoKMjAxMC0wNy0wMiAxNzo0MDowOCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBNb3JlIHJpbmcgYnVmZmVyIGZpeGVzCgkgIC0gU2V0IHJlYWRpbmdfcG9zIGNvcnJlY3RseSBpbiBfY3JlYXRlX3JlYWQgKCkKCSAgLSBTZWVrIHRvIGRhdGEgaWYgaXQgaXMgZnVydGhlciB0aGFuIFFVRVVFX01BWF9CWVRFUyAocXVldWUpIC0KCSAgY3VyX2xldmVsLmJ5dGVzIGF3YXkuIFRoaXMgc2hvdWxkIGF2b2lkIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSByaW5nCgkgIGJ1ZmZlciBpcyBmdWxsIGJ1dCB0aGUgZGF0YSBvZmZzZXQgZnJvbSB3aGljaCB3ZSBzaGFsbCByZWFkIGlzIG5vdCBpbgoJICB0aGUgcmluZyBidWZmZXIuCgkgIC0gT25seSB1cGRhdGUgdGhlIG1heF9yZWFkaW5nX3BvcyB0byBhIGxvd2VyIHZhbHVlIHRvIHByb3RlY3QgZGF0YSB3aGVuCgkgIG5lY2Vzc2FyeQoJICAtIEFsd2F5cyBzaWduYWwgYW4gQUREIGluIF9sb2NrZWRfZW5xdWV1ZSAoKSBzbyB0aGF0IGFuIEVPUyB1bmxvY2tzIHRoZQoJICByZWFkZXIKCSAgLSBNb3JlIHVzZWZ1bCBkZWJ1ZyBvdXRwdXQKCjIwMTAtMDYtMjggMTc6NTA6MDYgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmluZyBidWZmZXIgZml4ZXMKCSAgT25lIG11c3Qgbm90IGFmZmVjdCB0aGUgdmFsdWVzIG9mIHRoZSBjdXJyZW50IHJhbmdlIGJhc2VkIG9uIGEgcmVhZAoJICByZXF1ZXN0IGJlZm9yZSB0aGUgY29ycmVjdCByYW5nZSBpcyBhY3RpdmF0ZWQuCgoyMDEwLTA2LTI1IDEyOjU4OjI3ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBidWdzCgkgIHVwZGF0ZV9idWZmZXJpbmcgKCkgbmVlZHMgdG8gYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgd2Ugd3JpdGUgdG8gdGhlIHJpbmcKCSAgYnVmZmVyIHNvIHRoYXQgYXBwbGljYXRpb25zIGRvbid0IGdldCBzdHVjayB3YWl0aW5nIGZvciBhIDEwMCUgYnVmZmVyZWQKCSAgbWVzc2FnZSB3aGlsZSBxdWV1ZTIgaXMgd2FpdGluZyBmb3Igc3BhY2UKCSAgX2NyZWF0ZV93cml0ZSAoKSBtdXN0IG9ubHkgYmUgY2FsbGVkIGZvciB0ZW1wIGZpbGUvcmluZyBidWZmZXIgY2FzZXMKCjIwMTAtMDYtMTggMTc6NDM6NDAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZXh0ZW5kIHJpbmcgYnVmZmVyIHRvIHN1cHBvcnQgcmFtIG1vZGUKCjIwMTAtMDYtMTggMTQ6MzY6MzMgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbWVyZ2Ugd3JpdGUgYnVmZmVyIGZ1bmN0aW9ucyBhbmQgZml4IGJ1Z3MKCSAgQ2FjaGVkIGRhdGEgY291bGQgaGF2ZSBiZWVuIG92ZXJ3cml0dGVuIHNvIGl0IGlzIG5vdyBwcm90ZWN0ZWQgdW50aWwKCSAgaXQgaXMgcmVhZC4gU2ltaWxhcmx5IGRhdGEgd2FzIG92ZXJyZWFkIGFzIF9oYXZlX2RhdGEgKCkgd2FzIGFsd2F5cwoJICBsb29raW5nIGZvciB0aGUgb3JpZ2luYWxseSByZXF1ZXN0ZWQgZGF0YSBldmVuIGlmIHBhcnQgb2YgaXQgaGFkIGJlZW4KCSAgcmVhZCBhbHJlYWR5LgoKMjAxMC0wNi0xNyAxMDoxODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc21hbGwgY2xlYW51cAoKMjAxMC0wNi0xNiAxODoyNTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cCB3cml0ZV90b19yaW5nX2J1ZmZlcgoJICBVc2UgY3VyX2xldmVsLmJ5dGVzIHRvIHNlZSBob3cgbXVjaCBzcGFjZSBpcyBmcmVlIGluIHRoZSByaW5nYnVmZmVyLgoJICBTaW1wbHlmeSB0aGUgd3JpdGUgZnVuY3Rpb24sIGF2b2lkIHRha2luZyBzdWJidWZmZXJzLCBtb3ZlIHdhaXRpbmcgZm9yIGZyZWUKCSAgc3BhY2UgaW4gb25lIHNwb3QsIHVzZSBzaW1wbHkgY291bnRlciB0byB3cml0ZSBkYXRhIG9mIGEgYnVmZmVyLgoKMjAxMC0wNi0xNiAxNzowMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cHMKCSAgQWRkIGEgbWFjcm8gdG8gZ2V0IHRoZSBtYXggc2l6ZSBvZiB0aGUgcXVldWUgaW4gYnl0ZXMsIHdoaWNoIGRlcGVuZHMgb24gdGhlCgkgIG1heF9sZXZlbC5ieXRlcyBhbmQgdGhlIHJpbmdfYnVmZmVyX21heF9zaXplLgoJICBTb21lIGNsZWFudXBzLgoKMjAxMC0wNi0xNiAxNjoyMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNi0xNiAxNjoxMzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cHMKCSAgTWFrZSBzdXJlIHRoZSBjdXJfbGV2ZWwuYnl0ZXMgaXMgdXBkYXRlZCBhZnRlciB3ZSBjaGFuZ2UgdGhlIHdyaXRpbmdfcG9zIG9yIHRoZQoJICBtYXhfcmVhZGluZ19wb3MuCgkgIFJlZmFjdG9yIGdldF9mcmVlX3NwYWNlKCkKCSAgQWRkIHNvbWUgY29tbWVudHMKCjIwMTAtMDYtMTYgMTI6MDA6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSB1bm5lZWRlZCBzaWduYWwKCjIwMTAtMDYtMTYgMTI6MDA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXJpbmcgbW9kZSBjb3JyZWN0bHkKCjIwMTAtMDYtMTYgMTE6MjA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBjYWxjdWxhdGlvbiBvZiBhdmFpbGFibGUgcmluZ2J1ZmZlciBkYXRhCgoyMDEwLTA2LTE2IDExOjExOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWFkaW5nX3BvcyBpcyB1cGRhdGVkIGluIGNyZWF0ZV9yZWFkIG9ubHkKCjIwMTAtMDYtMTYgMTE6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yIGFuZCBhZGQgZGVidWcKCjIwMTAtMDYtMTYgMTE6MTA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmbHVzaGluZwoKMjAxMC0wNi0xNiAxMTowOToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGRlYnVnCgoyMDEwLTA2LTE1IDE3OjI2OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB0cnkgdG8gd3JpdGUgMCBieXRlcwoKMjAxMC0wNi0xNSAxNjoxMjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjsgY2xlYW51cHMgYW5kIGZpeGVzCgkgIE1ha2UgYSBtYWNybyBmb3Igc29tZSBmcmVxdWVudCBjaGVja3MKCSAgRW1pdCB0aGUgcmVtb3ZlZCBzaWduYWwgaW4gYWxsIGNhc2VzIHdoZW4gd2UgcmVtb3ZlIHNvbWV0aGluZwoKMjAxMC0wNi0xNSAxMjozNzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3JpbmdzCgkgIENoZWNrIGFuZCBoYW5kbGUgc2VlayBlcnJvcnMKCSAgUmVmYWN0b3IgdGhlIHdhaXRfZnJlZV9zcGFjZSBmdW5jdGlvbi4KCjIwMTAtMDYtMTYgMTI6MjQ6MjUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3AgdG8gY29udHJvbCByaW5nIGJ1ZmZlcgoKMjAxMC0wNi0wNiAwOTozMDo0OCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDbGVhbiB1cCBhbmQgaW1wcm92ZSBjb2RlCgoyMDEwLTA1LTI2IDA0OjExOjQ4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBjb25kaXRpb25zIHdoZXJlIGJlaGF2aW91ciBzaG91bGQgZGlmZmVyIGJldHdlZW4gcmluZyBidWZmZXIgYW5kIHRlbXAgZmlsZQoKMjAxMC0wNS0xOSAxNjowNDoxNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdXNlZnVsIGRlYnVnIG1lc3NhZ2VzIGFuZCBmaXggYW4gYXNzdW1wdGlvbiBpbiBfaGF2ZV9kYXRhICgpCgoyMDEwLTA1LTE4IDE3OjQyOjA3ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXJpbmcgcGVyY2VudGFnZSBpbiByaW5nIGJ1ZmZlciBtb2RlCgoyMDEwLTA1LTE4IDE3OjIxOjQwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHZhcmlvdXMgcmluZyBidWZmZXIgZml4ZXMKCSAgLSBtYWtlIF9nZXRfcmFuZ2UgKCkgZW1pdCB0aGUgZGVsIHNpZ25hbCBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHJlYWQKCSAgLSB1c2UgZG8ge30gd2hpbGUgKCk7IGZvciB3YWl0IGNvZGUgYXMgcXVldWUgaXMgbG9ja2VkIGFuZCBubyBkYXRhIGNvdWxkCgkgIGhhdmUgYmVlbiByZWFkIGluIHRoZSBtZWFuIHRpbWUgc28gaXQgbWFrZXMgbm8gc2Vuc2UgdG8gY2hlY2sgYmVmb3JlCgkgIHdhaXRpbmcKCSAgLSBtYWtlIF9pc19maWxsZWQgKCkgbW9yZSByb2J1c3QKCjIwMTAtMDUtMDcgMDk6MzA6NDQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmluZyBidWZmZXIgd29yayBpbiBwcm9ncmVzcwoKMjAxMC0wNS0wNSAxMDoyMTo1NSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdXNlLXJpbmctYnVmZmVyIGFuZCByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0aWVzCgoyMDEwLTA2LTE1IDA4OjU5OjExICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBTVC1Fcmljc3NvbiBjb3B5cmlnaHQKCjIwMTAtMDgtMTMgMTc6MjM6MzEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2U4ZGIxZCB0byBlYzYwMjE3CgoyMDEwLTA4LTEyIDIyOjA4OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB4cmVmcyBnbGliIHN5bWJvbCBpbiBkb2NzCgoyMDEwLTA4LTEyIDE2OjA1OjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgZ3N0Y29sbGVjdHBhZHM6IEZpeCBkb2NzIGFib3V0IEdzdENvbGxlY3REYXRhIGxpc3QKCSAgQWRkIHRvIHRoZSBkb2NzIHRoZSBmYWN0IHRoYXQgaXMgb25seSBzYWZlIHRvIGl0ZXJhdGUKCSAgR3N0Q29sbGVjdFBhZCdzIGRhdGEgbGlzdCBpbnNpZGUgdGhlIGNvbGxlY3RlZCBjYWxsYmFjay4KCSAgRml4ZXMgIzYxMDM2NgoKMjAxMC0wOC0xMCAxMDo1NjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJkMjA1NGIgdG8gM2U4ZGIxZAoKMjAxMC0wOC0wNCAxMToyNDoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9OQU1FIHRhZwoJICBBZGRzIGEgbmV3IHRhZyBmb3IgcmVwcmVzZW50aW5nIGFwcGxpY2F0aW9uIHVzZWQgdG8gY3JlYXRlCgkgIGEgbWVkaWEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjAyNwoKMjAxMC0wOC0wOCAxNzo1Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBJbml0aWFsaXplIHRoZSBHVHlwZSBjYWNoZSBmb3IgdGhlIGJ1ZmZlcmxpc3QgYWdhaW4KCSAgVGhpcyB3YXMgYWNjaWRlbnRpYWxseSByZW1vdmVkIHdpdGggbGFzdCBjb21taXQuCgoyMDEwLTA4LTA2IDE5OjM4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IERvbid0IGNoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MKCSAgR3N0TWluaU9iamVjdDo6ZmluYWxpemUgZG9lcyBub3RoaW5nIGFuZCB0aGlzIHByZXZlbnRzIGEKCSAgcnVudGltZS10eXBlLWNoZWNrIGNhc3QgYW5kIGZ1bmN0aW9uIGNhbGwgcGVyIGJ1ZmZlciBsaXN0LgoKMjAxMC0wNy0yMCAwOToyMzoxMSAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IG1ha2UgX2dldF90eXBlKCkgaW4gZ3N0LyogdGhyZWFkIHNhZmUKCSAgVGhpcyBpcyBub3QgcmVhbGx5IG5lY2Vzc2FyeSBoZXJlIGJlY2F1c2UgZXZlcnl0aGluZyBpcwoJICBpbml0aWFsaXplZCBmcm9tIGdzdF9pbml0KCkgYWxyZWFkeSBidXQgdXNpbmcgR19ERUZJTkVfVFlQRSgpCgkgIHJlbW92ZXMgc29tZSBjb3B5JnBhc3RlIGJvaWxlcnBsYXRlIGNvZGUuCgoyMDEwLTA4LTA2IDE5OjM0OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHBsdWdpbnM6IEFkZCBkZWNsYXJhdGlvbnMgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDctMjAgMDk6MjM6NTQgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBwbHVnaW5zOiBNYWtlICpfZ2V0X3R5cGUoKSBpbiBwbHVnaW5zLyogdGhyZWFkIHNhZmUKCSAgSXQncyBub3QgcmVhbGx5IG5lZWRlZCBoZXJlIGJ1dCB1c2luZyBHX0RFRklORV9UWVBFKCkgcmVkdWNlcwoJICBzb21lIGNvcHkmcGFzdGUgYm9pbGVycGxhdGUgY29kZS4KCjIwMTAtMDgtMDYgMTg6NDM6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBjaGFuZ2luZyBpdAoKMjAxMC0wOC0wNSAxMzo1NjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMDA0ZDAzIHRvIGJkMjA1NGIKCjIwMTAtMDgtMDUgMTA6MDQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBzcGVlZCB1cCBwYWQgbGlua2luZyB1dGlsaXR5IGZ1bmN0aW9ucyBieSBub3QgdHJ5aW5nIHBhZHMgdGhhdCB3aWxsIG5ldmVyIHdvcmsKCSAgSW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCksIHdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBjb21wYXRpYmxlIHBhZCBvbiBhbgoJICBlbGVtZW50IGZvciBhIGdpdmVuIHBhZCwgdGhlcmUncyBubyBwb2ludCBpbiBjaGVja2luZyB0aGUgZWxlbWVudCdzIHNpbmsgcGFkcwoJICBpZiB0aGUgcGFkIHRvIGxpbmsgaXMgYSBzaW5rIHBhZCBhcyB3ZWxsLCBvciB0aGUgZWxlbWVudCdzIHNvdXJjZSBwYWRzIGlmIHRoZQoJICBnaXZlbiBwYWQgaXMgYSBzb3VyY2UgcGFkIGFscmVhZHksIHNpbmNlIHRob3NlIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gbGluawoJICBhbnl3YXkuIFNob3VsZCBzcGVlZCB1cCBsaW5raW5nIHVzaW5nIHRoZSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYSBsaXR0bGUgYml0LAoJICBvciBhdCBsZWFzdCByZWR1Y2UgZGVidWcgbG9nIG91dHB1dC4KCjIwMTAtMDgtMDUgMTA6MzI6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHRha2UgdGhlIHRpbWVzdGFtcCBhIHRpY2sgbGF0ZXIKCSAgVGhlIGxvZ2dpbmcgaXMgbm90IGFuIGF0b21pYyBvcGVyYXRpb24gYW5kIGJlY2F1c2Ugb2YgdGhlIG11bHRpLXRocmVhZGluZyB3ZSBlbmQKCSAgdXAgd2l0aCBvdXQtb2Ytb3JkZXIgbG9nIGxpbmVzLiBUb29scyB0aGF0IHByZXNlbnQgdGhlIGxvZy1maWxlIHNob3VsZCBwcm9iYWJseQoJICByZXNvcnQgdGhlIGxpbmVzLiBUaGlzIGNoYW5nZSBqdXN0IHRha2VzIHRoZSB0aW1lc3RhbXAgYSBiaXQgY2xvc2VyIHRvIHRoZQoJICBhY3R1YWwgbG9nZ2luZy4KCjIwMTAtMDgtMDUgMDk6MzY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBkZWJ1ZzogbG9nZ2luZyBpbXByb3ZlbWVudHMKCSAgVXNlIHRoZSBldmVudCBzZXJpYWxpc2F0aW9uLiBMb2cgZm9ybWF0cyBuYW1lIGluc3RlYWQgb2YgbnVtYmVyLgoKMjAxMC0wNy0xNSAxNTo0NjoyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGRvbid0IHVzZSBjKysga2V5d29yZHMgYXMgdmFyaWFibGUgbmFtZXMKCjIwMTAtMDctMTUgMTE6Mzc6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBsb2cgc2VlayBldmVudCBkZXRhaWxzCgoyMDEwLTA3LTEyIDEwOjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZ3N0LWNvbnRyb2xsZXIgY2hhcHRlcgoJICBUaGUgZG9jcyB3ZXJlIHN0aWxsIGRlc2NyaWJpbmcgZGVwcmVjYXRlZCBhcGkuIFVwZGF0ZSBpdCB0byB0ZWxsIGFib3V0CgkgIGNvbnRyb2wtY291cmNlcy4KCjIwMTAtMDctMDkgMTU6NTg6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIHRlc3RzOiBjbGVhbiB1cCBldmVudGxvb3AgaW4gZXhhbXBsZXMKCSAgRG9uJ3QgbGVhayB0aGUgYnVzLiBEb24ndCBwYXJzZSBtZXNzYWdlcyB3aXRoIHRoZSBtZXRob2QgZm9yIGVycm9ycyAodHJpZ2dlcnMKCSAgZ29iamVjdCB3YXJuaW5nKS4KCjIwMTAtMDctMDggMTQ6MDg6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBoYW5kbGUgZXJyb3JzIGZyb20gdGhlIHBpcGVsaW5lCgkgIENhdGNoIGVycm9ycyBhbmQgd2FybmluZ3Mgb24gdGhlIGJ1cy4gVGhpcyBmaXhlcyBoYW5naW5nIHBpcGVsaW5lcyBpbiB0aGUgY2FzZQoJICBvZiBidWdzIGVsc2V3aGVyZS4gQWxzbyBwcmludCBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgdG8gZ2l2ZSBtb3JlIGRldGFpbCBvbiB0aGUgcHJvZ3Jlc3MuCgoyMDEwLTA3LTA2IDE4OjIwOjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogY2xlYW51cCBsYXN0IGNoYW5nZSBpbiBjYXBzbmVnbyBiZW5jaG1hcmsKCSAgQSBwYWQgbmFtZSBpcyBub3QgYSBmYWN0b3J5IG5hbWUuCgoyMDEwLTA3LTA2IDE0OjI5OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgZG9jczogbW9yZSBkb2NzIGZvciBnc3RfcGFyc2VfbGF1bmNoIGFuZCBjbwoJICBUZWxsIGFib3V0IGxpbWl0ZWQgcmV1c2FiaWxpdHkgb2Ygc29tZSBwYXJzZWQgcGlwZWxpbmVzLgoKMjAxMC0wNy0wNSAxNjozMjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogcGFkIGluZm8gb3V0cHV0IGltcHJvdmVtZW50cwoJICBEb24ndCBwcmludCBlbXB0eSBxdWVyeSB0eXBlcy4gQWxzbyBwcmludCBjYXBzLXZtZXRob2RzLgoKMjAxMC0wNy0wNiAxNjo0NzoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGxvZyBlbGVtZW50OnBhZCBuYW1lcyB3aXRoIGNhcHMKCjIwMTAtMDYtMzAgMTE6NDY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYmV0dGVyIGVycm9yIGxvZ2dpbmcgaW4gbGlua19wYWRzX2ZpbHRlcmVkCgoyMDEwLTA2LTI0IDEwOjAwOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgdGVzdHM6IGFkZCBjb21tZW50cyB0ZWxsaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSBhYmJyZXZpYXRpb25zCgoyMDEwLTA3LTA1IDEyOjE5OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgc29tZSBjYXBzIG1hbmlwdWxhdGlvbgoJICBBZnRlciB0aGUgaW50ZXJzZWN0IHdlIGhhdmUgd3JpdGFibGUgY2Fwcy4gQ29weSB0aGUgdGVtcGxhdGUgY2FwcyBzbyB0aGF0IGFsc28KCSAgdGhlcmUgd2UgaGF2ZSB3cml0YWJsZSBjYXBzLgoKMjAxMC0wOC0wNSAwMTowOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGFkZCBiYXNpYyB1bml0IHRlc3QgZm9yIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQyMDMKCjIwMTAtMDgtMDUgMDE6MDY6NTcgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogTWFrZSBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKSByZXR1cm4gZW1wdHkgY2FwcyBpZiBpdCdzIHdoYXQgdGhlIG90aGVyIHNpZGUgaGFzCgkgIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpIHdvdWxkIHJldHVybiB0aGUgcGFkIHRlbXBsYXRlIGNhcHMgaWYgdGhlIG90aGVyIHNpZGUKCSAgcmV0dXJuZWQgZW1wdHkgY2FwcyBvciBpZiB0aGUgaW50ZXJzZWN0aW9uIG9mIGFsbCB0aGUgY2FwcyBvbiB0aGUgb3RoZXIgc2lkZQoJICB3YXMgZW1wdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQyMDMKCjIwMTAtMDgtMDQgMTk6MTk6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IENoZWNrIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBJU08gQzg5IG9yIEM5OSBhbmQgd2hpY2ggcGFyYW1ldGVycyBhcmUgcmVxdWlyZWQKCSAgVGhpcyBmaXJzdCBjaGVja3Mgd2hhdCBpcyByZXF1aXJlZCBmb3IgSVNPIEM5OSBzdXBwb3J0IGFuZCBzZXRzIHRoZSByZWxldmFudAoJICBjb21waWxlciBwYXJhbWV0ZXJzIGFuZCBpZiBubyBDOTkgY29tcGlsZXIgaXMgZm91bmQsIGl0IGNoZWNrcyBmb3IgYQoJICBDODkgY29tcGlsZXIuIFRoaXMgZW5hYmxlcyB1cyB0byBjaGVjayBmb3IgYW5kIHVzZSBDODkvQzk5IGZ1bmN0aW9ucwoJICB0aGF0IGdjYyBoaWRlcyBmcm9tIHVzIHdpdGhvdXQgdGhlIGNvcnJlY3QgY29tcGlsZXIgcGFyYW1ldGVycy4KCjIwMTAtMDgtMDQgMTM6NDc6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IEZpeCBkb2NzCgkgIEZpeCB0eXBvIGluIGRvY3MgZm9yIHRoZSB1bnNpZ25lZCBwZWVrIGZ1bmN0aW9ucwoKMjAxMC0wNy0wNSAxMDowMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZW1vdmUgXG4gZnJvbSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEwLTA4LTAzIDExOjM3OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBidWlsZCB3aXRoIGd0ay1kb2MgZnJvbSBnaXQKCSAgRm9yIHNvbWUgcmVhc29uIHRoZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9uIEdTVF9DQVRfTEVWRUxfTE9HX3ZhbGlzdCBpcwoJICBub3cgcGlja2VkIHVwLCB3aGljaCB0aGVuIGJyZWFrcyB0aGUgYnVpbGQgYmVjYXVzZSBpdCdzIG5vdCBkb2N1bWVudGVkLAoJICBzbyBhZGQgaXQgdG8gdGhlIHNlY3Rpb25zIGZpbGUuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPi4KCSAgRml4ZXMgIzYyNTg2Mi4KCjIwMTAtMDctMTUgMjM6MDU6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBhZGQgY29tbWVudCBhbmQgbW9yZSBsb2dnaW5nCgoyMDEwLTA3LTI5IDE3OjI3OjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG93bmxvYWQgbW9kZTsgcHJldmVudCByYW5nZSBjb3JydXB0aW9uIGR1ZSB0byByYWNlCgkgIEN1cnJlbnQgcmFuZ2Ugd2FzIGJlaW5nIHVwZGF0ZWQgaW4gdGhlIHRocmVhZCBwZXJmb3JtaW5nIHNlZWssIGJ1dCBhcwoJICBubyBsb2NrcyB3ZXJlIGtlcHQgZm9yIGEgc2hvcnQgc2VjdGlvbiwgZGF0YSBmbG93IGNvdWxkIHJlc3VtZSBiZWZvcmUKCSAgY3VycmVudCByYW5nZSB1cGRhdGVkLCBzbyBkYXRhIGZvciB0aGUgbmV3IHJhbmdlIHdvdWxkIGJlIGFjY2VwdGVkIGFzCgkgIGZyb20gdGhlIHByZXZpb3VzIHJhbmdlLgoJICBSYXRoZXIsIHJhbmdlIHNob3VsZCBiZSB1cGRhdGVkIGluIHNlcmlhbGl6ZWQgbWFubmVyIGJhc2VkIG9uCgkgIG5ld3NlZ21lbnQgZXZlbnQuCgoyMDEwLTA1LTIyIDE2OjMzOjExIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybSBmaXggZm9yIHVwc3RyZWFtIGNhcHMtcmVuZWdvdGlhdGlvbgoJICBJZiBpbml0aWFsbHkgcGFzcy10aHJvdWdoIGNhcHMgYXJlIG5lZ290aWF0ZWQgYmV0d2VlbiBhIHRyYW5zZm9ybSBlbGVtZW50J3MKCSAgc2luayBhbmQgc3JjIHBhZHMsIGJ1dCB0aGVuIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBkaWZmZXJlbnQgY2FwcwoJICBvbiBhIGJ1ZmZlciBmcm9tIHBhZF9hbGxvYygpLCBiYXNldHJhbnNmb3JtIGdldHMgc3R1Y2sgd2l0aCBwcm94eV9hbGxvYz1UUlVFCgkgIGV2ZW4gdGhvdWdoIHRoZSB1cHN0cmVhbSBwZWVyIGRvZXNuJ3QgYWNjZXB0IHRoZSBjYXBzLCBjYXVzaW5nCgkgIGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcygpIHRvIGJlIGNhbGxlZCBvbiBlYWNoIGJ1ZmZlciBpbiBfYnVmZmVyX2FsbG9jKCk6CgkgIGlmICghZ3N0X2NhcHNfaXNfZXF1YWwgKG5ld2NhcHMsIGNhcHMpKSB7CgkgIEdTVF9ERUJVR19PQkpFQ1QgKHRyYW5zLCAiY2FwcyBhcmUgbmV3Iik7CgkgIC8qIHdlIGhhdmUgbmV3IGNhcHMsIHNlZSBpZiB3ZSBjYW4gcHJveHkgZG93bnN0cmVhbSAqLwoJICA+PiAgICBpZiAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzIChwYWQsIG5ld2NhcHMpKSB7CgkgIC8qIHBlZXIgYWNjZXB0cyB0aGUgY2FwcywgcmV0dXJuIGEgYnVmZmVyIGluIHRoaXMgZm9ybWF0ICovCgkgIEdTVF9ERUJVR19PQkpFQ1QgKHRyYW5zLCAicGVlciBhY2NlcHRlZCBuZXcgY2FwcyIpOwoJICB3aGljaCBpcyB0YWtpbmcgfjQwbXMvZnJhbWUuCgkgIFRoaXMgcGF0Y2ggZG9lcyB0d28gdGhpbmdzLiAgKDEpIGlmIHRoZSBidWZmZXIgcmV0dXJuZWQgZnJvbSBwYWRfYWxsb2MoKSBoYXMKCSAgbmV3IGNhcHMsIHRyaWdnZXIgdGhlIGRlY2lzaW9uIHdoZXRoZXIgdG8gcHJveHkgdGhlIGJ1ZmZlci1hbGxvYyB0byBiZQoJICByZXZpc2l0ZWQsIGFuZCAoMikgZGlzYWJsZSBwcm94eSBpZiBwZWVyIGRvZXMgbm90IGFjY2VwdCBuZXcgY2Fwcy4gIChUaGUgZmlyc3QKCSAgcGFydCBtYXkgbm90IGJlIHN0cmljdGx5IG5lZWRlZCwgYnV0IHNlZW1lZCBsaWtlIGEgZ29vZCBpZGVhLikKCSAgTm90ZSB0aGF0IHRoaXMgaXNzdWUgd291bGQgbm90IGFyaXNlIGV4Y2VwdCBpbiBjYXNlIG9mIGRvd25zdHJlYW0gZWxlbWVudHMKCSAgd2hvIGhhdmUgb24gdGhlaXIgdGVtcGxhdGUtY2Fwcywgc29tZSB0aGF0IHdvdWxkIGJlIHN1aXRhYmxlIGZvciBwYXNzLXRocm91Z2gsCgkgIGJ1dCBhdCBydW50aW1lIHBpY2sgbW9yZSByZXN0cmljdGl2ZSBjYXBzIChmb3IgZXgsIGFmdGVyIHF1ZXJ5aW5nIGEgZHJpdmVyIGZvcgoJICB3aGF0IGZvcm1hdHMgaXQgYWN0dWFsbHkgc3VwcG9ydHMpLgoKMjAxMC0wNy0yNyAxNDozMDo1MSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsYXRpb24gb24gd2luZG93cwoJICBGaXggbWlzbWF0Y2hlZCBicmFja2V0cyAoIzYyNTI5NSkuCgoyMDEwLTA3LTI3IDA3OjIxOjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGxvY2FsdGltZSB1c2FnZQoJICBsb2NhbHRpbWUgb25seSB0YWtlcyBvbmUgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGEgc3RhdGljYWxseQoJICBhbGxvY2F0ZWQgdG0gc3RydWN0LiBVc2UgaXQgY29ycmVjdGx5LgoJICBGaXhlcyAjNjI1MzY4CgoyMDEwLTAzLTI5IDE4OjA1OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogVHJ5IHN1Z2dlc3RpbmcgY2FwcyBvbiBiYWQgY2FwcyBwYWRfYWxsb2MKCSAgV2hlbiBiYXNldHJhbnNmb3JtIHJlY2VpdmVkIGFuIHVuc3VwcG9ydGVkIGNhcHMgb24gcGFkX2FsbG9jCgkgIGl0IGp1c3QgcmV0dXJuZWQgbm90LW5lZ290aWF0ZWQuIFRoaXMgcGF0Y2ggbWFrZXMgaXQgcXVlcnkKCSAgdGhlIGFsbG93ZWQgY2FwcyBiZXR3ZWVuIGhpcyBzaW5rcGFkIGFuZCB1cHN0cmVhbSdzIHNyY3BhZAoJICB0byBmaW5kIGEgY2FwcyB0byBzdWdnZXN0LgoJICBUaGlzIGhhcHBlbnMgd2hlbiBkaW5hbWljYWxseSBzd2l0Y2hpbmcgcGlwZWxpbmUgZWxlbWVudHMKCSAgYW5kIHVwc3RyZWFtIHBhZF9hbGxvY3Mgd2l0aCB0aGUgcHJldmlvdXMgY2FwcyB0aGF0IHdhcwoJICBiZWluZyB1c2VkLgoJICBGaXhlcyAjNjE0Mjk2CgoyMDEwLTA3LTI2IDE4OjUzOjU3ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZsdXNoIGFnYWluIGFmdGVyIGV2ZXJ5IGxpbmUgb2YgZGVidWcgb3V0cHV0CgkgIGdfcHJpbnRlcnIoKSB1c2VkIHRvIGRvIHRoaXMgZm9yIHVzLiBBbHNvIHVzZSBsaWJjJ3MgZnByaW50ZigpIGZ1bmN0aW9ucywKCSAgdG8gbWFrZSBzdXJlIHRoZSBzdGRlcnIgcG9pbnRlciB3ZSB1c2UgaXMgYWN0dWFsbHkgY29tcGF0aWJsZSB3aXRoIHRoZQoJICBsaWJjIGxpbmtlZCBhZ2FpbnN0IGJ5IEdTdHJlYW1lciAod2hpY2ggYXBwYXJlbnRseSBtYXkgbm90IGFsd2F5cyBiZSB0aGUKCSAgc2FtZSBhcyB3aGF0IEdMaWIgaXMgbGlua2VkIGFnYWluc3Qgb24gd2luZG93cyksIGFuZCB3ZSBkb24ndCBuZWVkIHRoZQoJICBmdW5jdGlvbmFsaXR5IGVuc3VyZWQgYnkgZ19mcHJpbnRmKCkuCgkgIEZpeGVzICM2MjUyOTUuCgoyMDEwLTA3LTI2IDE4OjUzOjM1ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA2LTIzIDExOjMxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkcyB0ZXN0cyBmb3IgZGF0ZXRpbWUKCSAgQWRkcyB0ZXN0cyBmb3IgZGF0ZXRpbWUgZmllbGRzIGluIGdzdHZhbHVlIHRlc3RzCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDYtMjMgMTE6MzA6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RzdHJ1Y3R1cmU6IEFkZHMgZGF0ZXRpbWUgZ2V0dGVyIGZ1bmN0aW9uCgkgIEFkZHMgZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDYtMjEgMjM6NDI6NDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfREFURV9USU1FIHRhZwoJICBBZGRzIGEgbmV3IHRhZyB0aGF0IHJlcHJlc2VudHMgYSBkYXRlIGFuZCB0aW1lIGEgbWVkaWEgd2FzCgkgIGNyZWF0ZWQKCSAgQVBJOiBHU1RfVEFHX0RBVEVfVElNRQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTIxIDIyOjA4OjIxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBBZGQgZGF0ZXRpbWUgZ2V0IGZ1bmN0aW9ucwoJICBBZGRzIF9kYXRlX3RpbWVfZ2V0IGFuZCBfZGF0ZV90aW1lX2dldF9pbmRleCBmdW5jdGlvbnMgdG8KCSAgdGFnbGlzdC4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfdGltZQoJICBBUEk6IGdzdF90YWdfbGlzdF9nZXRfZGF0ZV90aW1lX2luZGV4CgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjEgMjI6MDQ6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGRzIGRhdGV0aW1lIGZ1bmN0aW9ucwoJICBBZGRzIGEgZGF0ZXRpbWUgZnVuY3Rpb25zIHRvIGdzdHZhbHVlCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMTYgMTQ6MDk6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0ZGF0ZXRpbWU6IEFkZHMgR3N0RGF0ZVRpbWUKCSAgQWRkcyBHc3REYXRlVGltZSB0byByZXByZXNlbnQgZGF0ZXMgKyB0aW1lICsgdGltZXpvbmUKCSAgaW5mb3JtYXRpb24uCgkgIFRlc3RzIGluY2x1ZGVkLgoJICBBUEk6IEdzdERhdGVUaW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfZGF5CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbW9udGgKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF95ZWFyCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfaG91cgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21pY3Jvc2Vjb25kCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbWludXRlCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfc2Vjb25kCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfdGltZV96b25lX29mZnNldAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbG9jYWxfdGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X25vd19sb2NhbF90aW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbm93X3V0YwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfcmVmCgkgIEFQSTogZ3N0X2RhdGVfdGltZV91bnJlZgoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTI2IDE0OjU5OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggdXNhZ2Ugb2YgZ2xpYl9jaGVja192ZXJzaW9uKCkKCSAgSXQgcmV0dXJucyBOVUxMIGlmIHRoZSBpbnN0YWxsZWQgR0xpYiB2ZXJzaW9uIGlzIGFzIGxlYXN0IGFzCgkgIG5ldyBhcyB0aGUgcmVxdWlyZWQgdmVyc2lvbiBhbmQgc29tZSBleHBsYW5hdG9yeSBzdHJpbmcgb3RoZXJ3aXNlLgoKMjAxMC0wNy0yMyAyMDo0NjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogbWFrZSBnc3QtaW5zcGVjdCBwcmludCB0aGUgcmVsZWFzZSBkYXRlIHRpbWUgc3RhbXAKCjIwMTAtMDYtMjEgMTc6MzQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIG5ldyBBR19HU1RfU0VUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRV9XSVRIX05BTk8gbWFjcm8KCjIwMTAtMDYtMjAgMDE6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBiaW5hcnlyZWdpc3RyeTogc2F2ZSBhbmQgbG9hZCByZWxlYXNlIGRhdGUgdGltZSBpbiBHc3RQbHVnaW5EZXNjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNDAKCjIwMTAtMDYtMjAgMDA6MzM6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhZGQgcmVsZWFzZSBkYXRldGltZSBmaWVsZCB0byBHc3RQbHVnaW5EZXNjIGFuZCBzZXQgaXQgaWYgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRSBpcyBkZWZpbmVkCgkgIFRoaXMgaXMgYSBzdHJpbmcgZGVzY3JpYmluZyBhIGRhdGUgYW5kL29yIGRhdGUvdGltZSBpbiBhIHNpbXBsZSBzdWJzZXQgb2YKCSAgdGhlIElTTy04NjAxIGZvcm1hdCwgbmFtZWx5IGVpdGhlciAiWVlZWS1NTS1ERCIgb3IgIllZWVktTU0tRERUSEg6TU1aIiAod2l0aAoJICAnVCcgdGhlIGRhdGUvdGltZSBzZXBhcmF0b3IgYW5kIHRoZSAnWicgaW5kaWNhdGluZyBVVEMpLgoJICBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgZmllbGQgaXMgdG8ga2VlcCB0cmFjayBvZiBwbHVnaW4gYW5kIGVsZW1lbnQgdmVyc2lvbnMKCSAgb24gYW4gYWJzb2x1dGUgdGltZWxpbmUsIHNvIGl0J3MgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHdoaWNoIG9uZSBpcyBuZXdlciB3aGVuCgkgIGNvbXBhcmluZyB0d28gZGF0ZSB0aW1lIG51bWJlcnMuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBleHByZXNzICdyZXBsYWNlcyctdHlwZQoJICByZWxhdGlvbnNoaXBzIGJldHdlZWVuIHBsdWdpbnMgYW5kIGVsZW1lbnQgZmFjdG9yaWVzIGluIGZ1dHVyZSwgZXZlbiBhY3Jvc3MKCSAgZGlmZmVyZW50IG1vZHVsZXMgYW5kIHBsdWdpbiBtZXJnZXMgb3Igc3BsaXRzIChzb3VyY2UgbW9kdWxlIHZlcnNpb24gbnVtYmVycwoJICBhcmVuJ3QgcGFydGljdWxhcmx5IHVzZWZ1bCBoZXJlLCBzaW5jZSB0aGV5IGNhbiBvbmx5IG1lYW5pbmdmdWxseSBiZSBjb21wYXJlZAoJICB3aXRoaW4gdGhlIHNhbWUgbW9kdWxlKS4gSXQgYWxzbyBhbGxvd3MgYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMgdG8gcmVsaWFibHkKCSAgY2hlY2sgdGhhdCBhIHBsdWdpbiBpcyByZWNlbnQgZW5vdWdoIHdpdGhvdXQgbWFraW5nIGFzc3VtcHRpb25zIGFib3V0IG1vZHVsZXMKCSAgb3IgbW9kdWxlIHZlcnNpb25zLgoJICBXZSB1c2UgYSBzdHJpbmcgaGVyZSB0byBrZWVwIHRoaW5ncyBzaW1wbGUgYW5kIGNsZWFyLCBlc3AuIG9uIHRoZSBidWlsZCBzeXN0ZW0KCSAgc2lkZSBvZiB0aGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNDAKCjIwMTAtMDctMjAgMDk6MjU6MjAgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBtYWtlICpfZ2V0X3R5cGUoKSBpbiB0ZXN0cyB0aHJlYWQgc2FmZQoJICBFdmVuIGlmIGl0IHNob3VsZG4ndCBiZSBuZWVkZWQgaGVyZS4gU2VlICM2MjM0OTEuCgoyMDEwLTA2LTA0IDExOjI0OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHdyaXRlIGRlYnVnZ2luZyBvdXRwdXQgdG8gZmlsZSBpZiBHU1RfREVCVUdfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQKCSAgVGhpcyBjaGFuZ2VzIGJlaGF2aW91ciBzbGlnaHRseSBpbiB0aGF0IHdlIG5vIGxvbmdlciBvdXRwdXQgdGhpbmdzCgkgIHZpYSBnX3ByaW50ZXJyKCksIHNvIGFueSBub24tc3RhbmRhcmQgZ2xpYiBwcmludGVyciBoYW5kbGVycyBhcmUgbm8KCSAgbG9uZ2VyIGNhbGxlZCB3aGVuIEdTVF9ERUJVRyBpcyBlbmFibGVkLiBIb3dldmVyLCB0aGlzIHNlZW1zIG5vdAoJICByZWFsbHkgZGVzaXJhYmxlIGluIG1vc3QgY2FzZXMgYW55d2F5LCBhbmQgdGhlIEdMaWIgZG9jcyBhbHNvIHNheQoJICB0aGF0IGxpYnJhcmllcyBzaG91bGQgbm90IHVzZSBnX3ByaW50ZXJyKCkgZm9yIGxvZ2dpbmcuCgkgIE90aGVyIHN0ZGVyciBvdXRwdXQgKGUuZy4gd2FybmluZ3MsIG9yIGFwcGxpY2F0aW9uIG1lc3NhZ2VzKSB3aWxsCgkgIG9mIGNvdXJzZSBub3QgYmUgY2FwdHVyZWQgaW4gdGhlIGxvZyBmaWxlIHRoaXMgd2F5LgoJICBHU1RfREVCVUdfRklMRT0tIHdpbGwgcmVkaXJlY3QgZGVidWcgb3V0cHV0IHRvIHN0ZG91dC4KCjIwMTAtMDctMjAgMjA6NDk6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQXNzdW1lIHBhZHMgYXJlIGNvbXBhdGlibGUgaWYgd2UgZG9uJ3QgaGF2ZSB0ZW1wbGF0ZXMKCSAgVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgaWYgd2UgaGFkIGEgcGFkIHRlbXBsYXRlIGNhcHMgb2YKCSAgR1NUX0NBUFNfQU5ZIG9uIGFueSBvZiB0aGUgcGFkcyAoaS5lLiB0aGUgYWN0dWFsIGNoZWNrIHdpbGwgYmUgZG9uZQoJICBkdXJpbmcgY2FwcyBuZWdvdGlhdGlvbikuCgoyMDEwLTA3LTE3IDIxOjI4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbGxvdyB0aGUgc3ViY2xhc3MgdG8gYWRkIG5ldyBmaWVsZHMgdG8gY2FwcyB3aGVuIGdldHRpbmcgbmV3IGNhcHMgZnJvbSBkb3duc3RyZWFtCgkgIFRoaXMgd2FzIGFscmVhZHkgZG9uZSBpbiBhbGwgb3RoZXIgY2FzZXMgd2hlcmUgbmV3IGNhcHMgYXJlIGhhbmRsZWQKCSAgZXhjZXB0IHVwc3RyZWFtIG5lZ290aWF0aW9uLgoKMjAxMC0wNy0xMiAxNDozOTowMCArMDIwMCAgTWljaGFlbCBCdW5rIDxidW5rQGlhdC51bmktbGVpcHppZy5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MgYW5kIGFkZCBzb21lIG1pc3NpbmcgbGlua3MgaW4gdGhlIGFwcCBkZXYgbWFudWFsCgkgIEZpeGVzICM2MjQxNjQuCgoyMDEwLTA3LTEyIDE0OjIyOjUwICswMjAwICBNaWNoYWVsIEJ1bmsgPGJ1bmtAaWF0LnVuaS1sZWlwemlnLmRlPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgZG9jczogZml4IHR5cG8gb24gZ3N0LWluc3BlY3QgbWFuIHBhZ2UKCSAgU2VlICM2MjQxNjQuCgoyMDEwLTA3LTAzIDE1OjA4OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBmaXggc29tZSBzaWxseSBsaXN0IGl0ZXJhdGlvbiBjb2RlCgkgIGdfbGlzdF9sZW5ndGgoKSBpcyBub3QgdGhlIGJlc3Qgd2F5IHRvIGNoZWNrIGlmIGEgbGlzdCBpcyBlbXB0eSBvciBub3QuCgoyMDEwLTA3LTE2IDE3OjUzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogdXNlIEdTdGF0QnVmIHVuY29uZGl0aW9uYWxseSBhbmQgYWRkIHR5cGVkZWYgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CgkgIE5vIG5lZWQgdG8gY2x1dHRlciB0aGUgY29kZSB3aXRoICNpZiAjZWxzZSAjZW5kaWYuCgkgIFNlZSAjNjIzODc1LgoKMjAxMC0wNy0xNiAxNzozMzozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBVc2UgYSBjb25zdCBHc3RTdHJ1Y3R1cmUgKiBhcyBwYXJhbWV0ZXIgZm9yIHNvbWUgbW9yZSBnc3Rfc3RydWN0dXJlX2dldCB2YXJpYW50cwoKMjAxMC0wNy0xNCAxOTo0Nzo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAiLWxhdW5jaDogZGlzYWJsZSBDTE9DS19MT1NUIG1lc3NhZ2UgaGFuZGxpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWY4ZWJhNjExYTYzZjQ1NzY2YzM4YzY0MDI4OGU0MmIyN2IxMGJkNC4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgbm93IChhbmQgaWYgbm90IHNob3VsZCBiZSBmaXhlZCkgYW5kIHRoZQoJICBjbG9jay1sb3N0IGhhbmRsaW5nIGlzIG5vdyBuZWVkZWQgZm9yIHBsYXliaW4yIGdhcGxlc3MgcGxheWJhY2suCgkgIFNlZSBidWcgIzU3OTEyNy4KCjIwMTAtMDctMDggMjE6MDQ6NTQgKzAyMDAgIERhdmlkIEhveXQgPGRob3l0QGxsbmwuZ292PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBGaXggY29tcGF0aWJpbGl0eSB3aXRoIEdMaWIgMi4yNSB3aGVuIHVzaW5nIE1TVkMKCSAgTmV3ZXIgR0xpYiB1c2VzIGEgbmV3IHR5cGUgZm9yIGdfc3RhdCgpIGFuZCBmcmllbmRzIHRvIGltcHJvdmUKCSAgV2luZG93cyBjb21wYXRpYmlsaXR5LiBPbiBQT1NJWCB0aGlzIGlzIGEgdHlwZWRlZiB0byBzdHJ1Y3Qgc3RhdC4KCSAgRml4ZXMgYnVnICM2MjM4NzUuCgoyMDEwLTA3LTA4IDA3OjQ4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogSWYgdGhlIGN1cnJlbnRseSB1c2VkIGNsb2NrIGdldHMgbG9zdCB1cGRhdGUgaXQgdGhlIG5leHQgdGltZSB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvIHBsYXlpbmcKCSAgRml4ZXMgYnVnICM2MjM4MDYuCgoyMDEwLTA3LTA1IDE5OjMzOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZXR1cm4gdmFsdWVzIGluIHN0cmVhbSB0aW1lIGZvciB0aGUgUE9TSVRJT04gcXVlcnkKCSAgRml4ZXMgYnVnICM2MjM2MjIuCgoyMDEwLTA3LTA1IDE4OjU0OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEltcGxlbWVudCBHc3RFbGVtZW50OjpnZXRfcXVlcnlfdHlwZXMoKQoKMjAxMC0wNy0wNiAxMDoxMzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IGFuc3dlciB0aGUgU0VHTUVOVCBxdWVyeSBpbiBwdWxsIG1vZGUKCSAgT3RoZXJ3aXNlIHRoZSBlbGVtZW50IGhhbmRsaW5nIHRoZSBzZWVrcyBzaG91bGQgYW5zd2VyIHRoaXMgcXVlcnkuCgkgIEZpeGVzIGJ1ZyAjNjIzNjIyLgoKMjAxMC0wNy0wNSAxMDozNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IFBPU0lUSU9OIHF1ZXJ5CgkgIEZpeGVzIGJ1ZyAjNjIzNTQxLgoKMjAxMC0wNi0yNSAxNjozMTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiBEbyBub3QgY2FsbCBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgd2hlbiBjYXBzIGNoYW5nZQoJICBJbnN0ZWFkIGp1c3QgY2hlY2sgdGhhdCB0aGUgY2FwcyBpbnRlcnNlY3Qgd2l0aCB0aGUgcGFkIHRlbXBsYXRlLgoJICBUaGUgZWxlbWVudHMgc2hvdWxkIHByb3Blcmx5IGFjY2VwdC9yZWZ1c2UgdGhlIGNhcHMgaW4gc2V0Y2FwcygpLgoJICBTaGF2ZXMgb2ZmIGNhbGxpbmcgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYWNjZXB0Y2FwcyB3aGljaCBkb2VzCgkgIGFuIGV4cGVuc2l2ZSBnc3RfcGFkX2dldF9jYXBzKCkgKHNvIGlmIHlvdSBoYXZlIDUwIG9mIHRob3NlIGVsZW1lbnRzIGluCgkgIGEgcm93LCB5b3UnZCBiZSBkb2luZyBmYWN0b3JpYWwoNTApIGdzdF9wYWRfZ2V0X2NhcHMuLi4pLgoJICBEb2VzIG5vdCBicmVhayBhbnkgbW9kdWxlIHVuaXQgdGVzdCBhbmQgbW9zdCBhcHBzIHdvcmsgZmluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjc0MAoKMjAxMC0wNy0wOCAxNjoyNDoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogQWRkIG1vcmUgZGV0YWlscyBhYm91dCBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQKCjIwMTAtMDctMTYgMTE6MTY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudC4KCj09PSByZWxlYXNlIDAuMTAuMzAgPT09CgoyMDEwLTA3LTE0IDIzOjU5OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMAoKMjAxMC0wNy0xNCAxNzo1ODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9kZS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNy0xNSAxMjowMToyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBjb21tYSBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0IGVudW0gdmFsdWUKCSAgRml4ZXMgdGhlIGJ1aWxkIGZvciBjKysuCgoyMDEwLTA3LTExIDE5OjAwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgY2hlY2tzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWNlbnQgdGFnbGlzdCBtZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEgZml4CgkgIFNlZSAjNjI0MTEzLgoKMjAxMC0wNy0xMSAxODo1OTo1MyArMDEwMCAgRWR1YXJkbyBEb2JheSA8ZWR1ZG9iYXlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IG1lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIGZvciBtb3JlIHRoYW4gdHdvIHN0cmluZ3MKCSAgRml4ZXMgIzYyNDExMy4KCjIwMTAtMDctMDggMTM6NDY6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgbmV3IGJhc2VzaW5rIHVuaXQgdGVzdCBiaW5hcnkKCjIwMTAtMDctMDggMTM6NDM6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgLXAgc2hvcnRoYW5kIGZvciAtLW5vLXNpZ3Vzci1oYW5kbGVyCgkgIEl0J3Mgbm90IHJlYWxseSBuZWVkZWQsIGFuZCBkb2Vzbid0IG1hcCBhbnkgbG9uZ2VyIGFmdGVyIHRoZSBsb25nIG9wdGlvbgoJICBoYXMgYmVlbiByZW5hbWVkLgoKMjAxMC0wNy0wNiAxNTo0Nzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS40IHByZS1yZWxlYXNlCgkgIEFsc28gYnVtcCBsaWJ0b29sIHZlcnNpb25zIG5vdyAod2hpY2ggSSBtZWFudCB0byBkbyBmb3IgdGhlIGZpcnN0CgkgIHByZS1yZWxlYXNlIGJ1dCBmb3Jnb3QpLgoKMjAxMC0wNy0wNiAyMzo0NDoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA3LTA2IDE2OjIxOjA1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGFkZCBhY2Nlc3NvcnMgZm9yIHRoZSBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXJfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfbGFzdF9idWZmZXJfZW5hYmxlZAoKMjAxMC0wNy0wNiAxMjoxODo0NSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgbmV3IGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4KCSAgQWRkIGEgbmV3IGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4gV2hlbiBmYWxzZSwgaXQgZGlzYWJsZXMgc3RvcmluZyB0aGUgbGFzdAoJICByZWNlaXZlZCBidWZmZXIgaW4gYmFzZXNpbms6Omxhc3QtYnVmZmVyLiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gY2FzZXMgd2hlcmUKCSAgYnVmZmVycyBuZWVkIHRvIGJlIHJlbGVhc2VkIGFzYXAuCgkgIEFQSTogR3N0QmFzZVNpbms6OmVuYWJsZS1sYXN0LWJ1ZmZlcgoKMjAxMC0wNy0wNiAxMDo0ODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGNoZWNrczogcmV3cml0ZSBnc3R0YWdzZXR0ZXIgdGVzdCB0byB1c2UgZmV3ZXIgZ191c2xlZXAoKQoJICBTb21ldGhpbmcgYWJvdXQgdGhhdCBzZWVtcyB0byBpbnRlcmFjdCBiYWRseSB3aXRoIHNvbWUgc2NoZWR1bGVycywKCSAgc28gZG8gdGhpbmdzIGRpZmZlcmVudGx5LgoJICBGaXhlcyAjNjIzNDY5LgoKMjAxMC0wNy0wNiAxMDoxOTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgdG8gZG9jcwoJICBBUEk6IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsCgkgIFNlZSAjNjIzNTg5LgoKMjAxMC0wNy0wNiAxMDoyODoxNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogSW1wcm92ZSBnc3RfdmFsdWVfe3NldHxnZXR9X2NhcHMgZG9jcwoKMjAxMC0wNy0wNiAxMDozNTowOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZXhwb3J0IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwKCjIwMTAtMDctMDYgMTA6MzE6MjUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiByZW1vdmUgQUJJIGNoZWNrcyBmb3IgR3N0Q2xvY2tFbnRyeS4KCjIwMTAtMDctMDUgMTg6NDU6NTUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGRvY3VtZW50IHRoYXQgR3N0Q2xvY2tFbnRyeSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbmEgb3BhcXVlIHN0cnVjdHVyZS4KCjIwMTAtMDctMDUgMTM6MTA6MDkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHVzZSB0aGUgbmV3IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuCgkgIFVzZSB0aGUgbmV3IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwgaW4gZ3N0X2Nsb2NrX3NldF9tYXN0ZXIuCgkgIEFsc28gYWRkIHNvbWUgdGVzdHMuCgoyMDEwLTA3LTA1IDEzOjAxOjUzICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcmVmY291bnRpbmcgYnVnIGluIGdzdF9jbG9ja19zZXRfbWFzdGVyLgoJICBNYWtlIHN1cmUgY2xvY2stPmNsb2NraWQgaXMgdW5yZWZmZWQgYmVmb3JlIGNsb2NrLT5tYXN0ZXIuCgkgIGdzdF9jbG9ja19pZF91bnNjaGVkdWxlIChjbG9jay0+Y2xvY2tpZCkgdHJpZXMgdG8gYWNjZXNzIGNsb2NrLT5tYXN0ZXIuIElmCgkgIGNsb2NrLT5tYXN0ZXIgaXMgdW5yZWZmZWQgYmVmb3JlIGFuZCBpdCdzIGRlYWxsb2NhdGVkLCBfdW5zY2hlZHVsZSBjb3VsZCBhY2Nlc3MKCSAgZnJlZSdkIG1lbW9yeS4KCjIwMTAtMDctMDUgMTI6NTY6NDAgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4KCSAgQWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuIEl0J3MgdGhlIHNhbWUgYXMgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMgYnV0CgkgIGFsbG93cyBwYXNzaW5nIGEgR0Rlc3Ryb3lOb3RpZnkgdG8gZGVzdHJveSB1c2VyX2RhdGEuCgoyMDEwLTA3LTA1IDE3OjUwOjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBhcGkgZG9jcyBmb3IgbmV3IEdzdFBhZExpbmtDaGVja3MgYW5kIGl0cyB1c2UKCjIwMTAtMDctMDUgMTI6MjE6NTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL1JFQURNRToKCSAgUkVBRE1FOiB1cGRhdGUgYWZ0ZXIgcmVtb3ZhbCBvZiAib2xkIiBkaXIuCgkgIFJlbW92ZSAib2xkIiBhbmQgYWRkIGEgbGluZSBhYm91dCAiZXhhbXBsZXMiLgoKMjAxMC0wNy0wNCAxNzozNDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9UT0RPOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2V2ZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2V2ZW50cy9zZWVrLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi9oZWxsb3dvcmxkMi5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvcGluZ3BvbmcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvcXVldWUzLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC9xdWV1ZTQuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvUnVsZXM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9hcHBfZml4YXRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzLmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzX3N0cmluZ3M6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jb21wYXRpYmlsaXR5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2VyYXRvc3RoZW5lcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZml4ZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLWNvbnZlcnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLW11bHRpcGx5LWFuZC16ZXJvLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3NldHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdHJpbmctY29udmVyc2lvbnMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N0cnVjdHVyZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9jYXRlZ29yeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2NvbW1hbmRsaW5lLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvb3V0cHV0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vZGxvcGVuX2dzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9nc3QtaW5zcGVjdC1jaGVjay5pbjoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9zaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vUkVBRE1FOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9keW5hbWljLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xpbmtlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3JlZ2lzdHJ5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjJfcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luX3MuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21haW5sb29wLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvb2JqZWN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvMTU5NTY2LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8xNTk4NTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvcXVldWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3N0YXRpY3JlYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRiLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRjLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRmLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRnLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRoLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRpLmM6CgkgIFJlbW92ZSBvbGQgMC44IHRlc3RzIGFuZCBleGFtcGxlcyBmcm9tIGdpdCB0cmVlCgkgIERvZXNuJ3QgcmVhbGx5IGxvb2sgbGlrZSBhbnl0aGluZydzIHdvcnRoIGtlZXBpbmcuCgoyMDEwLTA3LTAzIDE2OjM5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IHNraXAgc2lsbHkgdGVzdCB0aGF0IHNlZ2ZhdWx0cyB3aGVuIGluIGEgQ0tfRk9SSz1ubyBlbnZpcm9ubWVudAoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTU6MTM6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICBjaGVja3M6IG1ha2UgZmFrZXNyYyBjaGVjayB3b3JrIGluIGEgQ0tfRk9SSz1ubyBlbnZpcm9ubWVudAoJICBSZXNldCBoYXZlX2VvcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggdGVzdC4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE0OjA5OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgY2hlY2tzOiBydW4gdGVzdHMgY2FsbGluZyBnc3RfZGVpbml0KCkgbGFzdCBzbyB0aGluZ3Mgd29yayB3aXRoIENLX0ZPUks9bm8KCSAgQmVjYXVzZSBnc3RfaW5pdCgpIHdpbGwgZmFpbCBvbmNlIGdzdF9kZWluaXQoKSBoYXMgYmVlbiBjYWxsZWQuCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNDowNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBjaGVja3M6IGRvbid0IGFzc3VtZSBlbGVtZW50IGZhY3RvcnkgaXMgbm90IGxvYWRlZCB5ZXQKCSAgSXQgbWF5IGFscmVhZHkgYmUgbG9hZGVkIGlmIGNoZWNrIGlzIGJlaW5nIHJ1biB3aXRoIENLX0ZPUks9bm8uCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMSAxOTo1ODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBkb2NzOiBmaXggYSBjb3VwbGUgb2YgdHlwb3MgaW4gdGhlIG1hbnVhbAoJICBTcG90dGVkIGJ5IEFsZXhhbmRlciBTYXByeWtpbi4KCSAgRml4ZXMgIzYyMjM3OS4KCjIwMTAtMDctMDEgMTc6NTY6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBNYWtlIHN1cmUgX25vcm1hbGl6ZSgpIGlzIGFwcGxpZWQgb24gYWxsIHN0cnVjdHVyZXMuCgkgIFdlIG5lZWQgdG8gdXNlIGdzdF9jYXBzX2dldF9zaXplKCkgaW4gdGhlIGxvb3AgY291bnRlciBzaW5jZSBzb21lCgkgIHN0cnVjdHVyZXMgY291bGQgYmUgYWRkZWQgd2hpbGUgaXRlcmF0aW5nLgoJICBGaXhlcyAjNjIzMzAxCgoyMDEwLTA2LTMwIDEzOjE2OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICBkb2NzOiB1cGRhdGUgJ1hNTCBpbiBHU3RyZWFtZXInIHNlY3Rpb24gaW4gYXBwbGljYXRpb24gZGV2ZWxvcGVyJ3MgbWFudWFsCgoyMDEwLTA2LTI5IDE4OjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuMyBwcmUtcmVsZWFzZQoKMjAxMC0wNi0yNSAxOTowMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpbXBsZW1lbnQgYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBPdXIgYWNjZXB0Y2FwcyBmdW5jdGlvbiBjYW4gc2ltcGx5IGZvcndhcmQgdGhlIHF1ZXJ5LgoKMjAxMC0wNi0yOCAxNToyODo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgYXV0b21ha2UgcmVxdWlyZW1lbnQgdG8gMS4xMAoJICBGb3IgbWFpbnRhaW5hYmlsaXR5IHJlYXNvbnMgYW5kICQoYnVpbGRkaXIpLgoJICBGaXhlcyAjNjIyOTQ0LgoKMjAxMC0wNi0yOCAxMzo1NjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtZW50aW9uIC0tZW9zLW9uLXNodXRkb3duIG9uIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCjIwMTAtMDYtMjggMTA6MjA6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBEb24ndCB1c2UgR19HTlVDX0NPTlNUIGZvciB0aGUgdWludDY0IHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoZXkgYXJlIGFjdHVhbGx5ICpub3QqIGNvbnN0IGZ1bmN0aW9ucyBiZWNhdXNlIG9uIGFyY2hpdGVjdHVyZXMKCSAgd2l0aG91dCBpbnQxMjggaW5zdHJ1Y3Rpb25zIHRoZSBwYXJhbWV0ZXJzIHdlcmUgY2hhbmdlZC4KCSAgZ2NjIHJlLXVzZWQgdGhlIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrIGZvciBtdWx0aXBsZSBjYWxscyB0aG91Z2gKCSAgYW5kIHRoZSBjaGFuZ2VkIHBhcmFtZXRlcnMgd2VyZSB1c2VkIGZvciB0aGUgc2Vjb25kIGNhbGwgdGhlbi4KCSAgRml4ZXMgYnVnICM2MjMwMDMuCgoyMDEwLTA2LTI2IDE3OjQ4OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS4yIHByZS1yZWxlYXNlCgoyMDEwLTA2LTI2IDE3OjQ3OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDYtMjYgMTA6MTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIGV4YW1wbGVzOiByZW1vdmUgeG1sIGV4YW1wbGUgYnVpbGQgc3lzdGVtIGJpdHMgYW5kIHB1cmdlIGZyb20gdHJlZQoJICBGaXhlcyBtYWtlIGRpc3RjaGVjay4KCjIwMTAtMDYtMjYgMDk6NTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHhtbC5jOgoJICB4bWw6IGtlZXAgZHVtbXkgZ3N0X3htbF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBnLWkgZXZlbiBpZiByZXN0IG9mIEdzdFhNTCBpcyByZW1vdmVkCgkgIEFkZCBhIG1pbmltYWwgZ3N0X3htbF9nZXRfdHlwZSgpIGZ1bmN0aW9uLCBzbyB0aGF0IGdvYmplY3QtaW50cm9zcGVjdGlvbiBkb2Vzbid0CgkgIGJyZWFrIHRoZSBjb21waWxhdGlvbiBpZiB3ZSdyZSBjb21waWxpbmcgd2l0aCBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgZGVmaW5lZCBvcgoJICAtLWRpc2FibGUtbG9hZHNhdmUgaGF2aW5nIGJlZW4gcGFzc2VkIHRvIGNvbmZpZ3VyZS4gVW50aWwgc29tZW9uZSBmaWd1cmVzIG91dAoJICBhIGJldHRlciB3YXkgYXQgbGVhc3QuCgoyMDEwLTA2LTI2IDAxOjAxOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgRG9uJ3QgaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPiBmcm9tIHB1YmxpYyBoZWFkZXJzIGlmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgZGVmaW5lZAoJICBTaW5jZSBldmVyeXRoaW5nIEdzdFhNTCByZWxhdGVkIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHdlIGNhbiBub3cgc2tpcCB0aGUKCSAgbGlieG1sIGluY2x1ZGVzIGZyb20gdGhlIHB1YmxpYyBoZWFkZXJzIHdoZW4gR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcwoJICBkZWZpbmVkLgoJICBTZWUgIzQ2MzQzNS4KCjIwMTAtMDYtMjYgMDA6MTg6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgZXhhbXBsZXM6IGFkZCBtaXNzaW5nIHN0ZGxpYi5oIGluY2x1ZGUgaW4gdHlwZWZpbmQgZXhhbXBsZQoKMjAxMC0wNi0yNSAyMToyMzoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZG90LWR1bXA6IHRlcm1pbmF0ZSB0cnVuY2F0ZWQgc3RyaW5ncyBhbmQgZXNjYXBlIHNwZWNpYWwgY2hhcnMKCSAgRml4ZXMgc3ludGF4IGVycm9ycyBpbiBnZW5lcmF0ZWQgZG90IGZpbGVzIGZvciBjYXBzIHdpdGggc3RyaW5ncy4KCjIwMTAtMDYtMjUgMTg6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3JlIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBuZXcgZmxhZ3MKCjIwMTAtMDYtMjUgMTg6MTg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbWFrZSB0aGUgTk9USElORyBsaW5rIGNoZWNrIGZsYWcgYmUgMAoJICBNYWtlIHRoZSBwYWQgbGluayBjaGVjayBvZiBOT1RISU5HIGJlIDAuIFRoaXMgd2F5IHdlIGhhdmUgYSBmbGFnIGZvciBlYWNoCgkgIGZlYXR1cmUgYW5kIDAgd2hlbiBubyBmbGFncyBhcmUgc2V0LgoKMjAxMC0wNi0yNSAxODoyNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIEdzdFhNTCB0ZXN0cwoKMjAxMC0wNi0yNSAxODoxMzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L2dzdHhtbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3R4bWw6IERlcHJlY2F0ZSBHc3RYbWwgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zCgkgIFBpcGVsaW5lIHNlcmlhbGlzYXRpb24gdG8gYW5kIGZyb20gWE1MIGlzIGhvcnJpYmx5IGJyb2tlbiBmb3IgYWxsCgkgIGJ1dCB0aGUgbW9zdCBzaW1wbGUgdXNlIGNhc2VzLCBhbmQgd2lsbCBsaWtlbHkgbmV2ZXIgYmUgZml4ZWQuCgkgIE1ha2Ugc3VyZSBldmVyeW9uZSBwbGF5aW5nIGFyb3VuZCB3aXRoIHRoZXNlIHRvb2xzIGlzIGF3YXJlIG9mCgkgIHRoaXMsIHRvIGF2b2lkIGZydXN0cmF0aW9uLiBTZWUgY291bnRsZXNzIGJ1ZyByZXBvcnRzIGluIGJ1Z3ppbGxhLgoJICBGaXhlcyBidWcgIzYyMjY4NS4KCjIwMTAtMDYtMjUgMTg6MTE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBidWlsZCB3aXRoIEdTVF9SRU1PVkVfREVQUkVDQVRFRAoKMjAxMC0wNi0yNCAxMjoxOToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogVXNlIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsCgkgIFdlJ3JlIHRlc3RpbmcgY2FwcyBuZWdvdGlhdGlvbiwgbm90IHBhZCBsaW5raW5nLiBCcmluZ3MgdGhlIHN0YXJ0dXAKCSAgdGltZSBkb3duIDEwMCBmb2xkLgoKMjAxMC0wNi0yNCAxNzo1MzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgdG9vbHM6IGRlcHJlY2F0ZSBnc3QteG1sbGF1bmNoIGFuZCBwcmludCBmYXQgd2FybmluZyBpZiBzb21lb25lIHRyaWVzIHRvIHVzZSBpdAoJICBQaXBlbGluZSBzZXJpYWxpc2F0aW9uIHRvIGFuZCBmcm9tIFhNTCBpcyBob3JyaWJseSBicm9rZW4gZm9yIGFsbAoJICBidXQgdGhlIG1vc3Qgc2ltcGxlIHVzZSBjYXNlcywgYW5kIHdpbGwgbGlrZWx5IG5ldmVyIGJlIGZpeGVkLgoJICBNYWtlIHN1cmUgZXZlcnlvbmUgcGxheWluZyBhcm91bmQgd2l0aCB0aGVzZSB0b29scyBpcyBhd2FyZSBvZgoJICB0aGlzLCB0byBhdm9pZCBmcnVzdHJhdGlvbi4gU2VlIGNvdW50bGVzcyBidWcgcmVwb3J0cyBpbiBidWd6aWxsYS4KCjIwMTAtMDYtMjQgMTc6MjI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlbmFtZSBuZXcgLS1uby1wbGF5IGNvbW1hbmQgbGluZSBvcHRpb24gdG8gLS1uby1zaWd1c3ItaGFuZGxlcgoJICAtLW5vLXBsYXkgc2VlbXMgYSBiaXQgY29uZnVzaW5nLgoJICBGaXhlcyAjNjIxODY3LgoKMjAxMC0wNi0yNCAxNTowNzoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3M2ZmOTNhIHRvIGE1MTk1NzEKCjIwMTAtMDYtMjMgMTE6MDI6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBpZ25vcmUgdGhlIHBsdWdpbiBjYWNoZSBpZiB0aGUgZmlsdGVyIGVudmlyb25tZW50IGhhcyBjaGFuZ2VkCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIHByb3Blcmx5IHVwZGF0ZSB0aGUgcmVnaXN0cnkgYW5kIHRoZSBjYWNoZSBmaWxlIHdoZW5ldmVyCgkgIHRoZSBmaWx0ZXIgZW52aXJvbm1lbnQgY2hhbmdlcyBvciB0aGVyZSdzIG5vIG1vcmUgZmlsdGVyIHNldC4KCjIwMTAtMDUtMjcgMTI6MzY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2lubG9hZGluZzogYWRkIHN1cHBvcnQgZm9yIHdoaXRlbGlzdGluZyBiYXNlZCBvbiBwbHVnaW4gb3Igc291cmNlIG1vZHVsZSBuYW1lIGFuZCBwYXRoCgkgIFRoaXMgZmVhdHVyZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIHVzZSBpbiBwbHVnaW4gbW9kdWxlcycgdW5pdCB0ZXN0cy4KCSAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBzaXR1YXRpb246IGdzdC1wbHVnaW5zLWdvb2QgaXMgYnVpbHQgYWdhaW5zdCBhbgoJICBpbnN0YWxsZWQgR1N0cmVhbWVyIGNvcmUuIEFuIG9sZGVyIHZlcnNpb24gb2YgZ3N0LXBsdWdpbnMtZ29vZCBpcyBhbHNvCgkgIGluc3RhbGxlZCBpbiB0aGF0IHByZWZpeCwgYWxvbmcgd2l0aCByYW5kb20gb3RoZXIgcGx1Z2luIG1vZHVsZXMuIE5vdywKCSAgd2hlbiBkb2luZyAnbWFrZSBjaGVjaycgaW4gdGhlIGp1c3QtYnVpbHQgZ3N0LXBsdWdpbnMtZ29vZCB0cmVlLCB3ZQoJICB3YW50IHRvIG9ubHkgbG9hZCBwbHVnaW5zIGZyb20gR1N0cmVhbWVyIGNvcmUsIGdzdC1wbHVnaW5zLWJhc2UsIGFuZAoJICBnc3QtcGx1Z2lucy1nb29kLCBidXQgbm90IHJhbmRvbSBvdGhlciBtb2R1bGVzICh3ZSBkb24ndCB3YW50IGFueSB1bml0CgkgIHRlc3RzIHRvIGZhaWwganVzdCBiZWNhdXNlIHNvbWUgbW9kdWxlIGluIGdzdC1wbHVnaW5zLWJhZCBoYXMgYSBicm9rZW4KCSAgcGx1Z2luX2luaXQsIGZvciBleGFtcGxlKS4gQWxzbywgd2Ugd2FudCB0byBvbmx5IGxvYWQgZ3N0LXBsdWdpbnMtZ29vZAoJICBtb2R1bGVzIGZyb20gdGhlIGxvY2FsbHktYnVpbHQgc291cmNlIHRyZWUsIGJ1dCBub3QgYW55IG9mIHRoZSBvbGRlcgoJICBnc3QtcGx1Z2lucy1nb29kIG1vZHVsZXMgaW5zdGFsbGVkLiBUaGlzIGlzIHVzdWFsbHkgYXNzdXJlZCBieSBsb2FkaW5nCgkgIHRoZSBvbmVzIGluIHRoZSBzb3VyY2UgdHJlZSBmaXJzdCAoYnkgYWRkaW5nIHRoYXQgcGF0aCBmaXJzdCB0byB0aGUKCSAgcmlnaHQgZW52aXJvbm1lbnQgdmFyaWFibGVzKSwgYnV0IGl0IGdldHMgdHJpY2t5IHdoZW4gcGx1Z2lucyBhcmUKCSAgbW92ZWQsIHJlbW92ZWQsIG1lcmdlZCwgb3IgcmVuYW1lZCwgb3IgdGhlIHBsdWdpbiBmaWxlbmFtZSBjaGFuZ2VzLgoJICBOb3RlIHRoYXQgJ21ha2UgY2hlY2snIHNob3VsZCByZWFsbHkgd29yayByaWdodCB3aXRob3V0IGRvaW5nCgkgICdtYWtlIGluc3RhbGwnIG9yIHVuaW5zdGFsbGluZyB0aGUgb2xkIGdzdC1wbHVnaW5zLWdvb2QgcGFja2FnZSAob3IKCSAgYW55IG90aGVyIGdzdC1wbHVnaW5zLWZvbyBwYWNrYWdlKSBmaXJzdC4KCSAgRW50ZXIgR1NUX1BMVUdJTl9MT0FESU5HX1dISVRFTElTVC4gVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYXkKCSAgY29udGFpbiBzb3VyY2UtcGFja2FnZUBwYXRoLXByZWZpeCBwYWlycyBzZXBhcmF0ZWQgYnkgdGhlIHBsYXRmb3JtCgkgIHNlYXJjaCBwYXRoIHNlcGFyYXRvciAoR19TRUFSQ0hQQVRIX1NFUEFSQVRPUl9TKS4gVGhlIHNvdXJjZSBwYWNrYWdlCgkgIGFuZCBwYXRoIHByZWZpeCBhcmUgc2VwYXJhdGVkIGJ5IHRoZSAnQCcgY2hhcmFjdGVyLiBUaGUgcGF0aCBwcmVmaXggaXMKCSAgZW50aXJlbHkgb3B0aW9uYWwsIGFzIGlzIHRoZSAnQCcgc2VwYXJhdG9yIGlmIG5vIHBhdGggaXMgZ2l2ZW4uCgkgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZmlsdGVyIGJhc2VkIG9uIHBsdWdpbiBuYW1lcyBpbnN0ZWFkIG9mIHRoZSBuYW1lCgkgIG9mIHRoZSBzb3VyY2UtcGFja2FnZSBieSBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIHBsdWdpbiBuYW1lcyBzZXBhcmF0ZWQKCSAgYnkgY29tbWFzIGJlZm9yZSB0aGUgb3B0aW9uYWwgcGF0aCBwcmVmaXguCgkgIEluIHNob3J0LCB0aGUgZm9sbG93aW5nIG1hdGNoIHBhdHRlcm5zIGFyZSBwb3NzaWJsZToKCSAgcGx1Z2luMSxwbHVnaW4yQHBhdGhwcmVmaXggb3IKCSAgcGx1Z2luMSxwbHVnaW4yQCogb3IganVzdAoJICBwbHVnaW4xLHBsdWdpbjIgb3IKCSAgc291cmNlLXBhY2thZ2VAcGF0aHByZWZpeCBvcgoJICBzb3VyY2UtcGFja2FnZUAqIG9yIGp1c3QKCSAgc291cmNlLXBhY2thZ2UKCSAgU28gZm9yIG91ciBnc3QtcGx1Z2lucy1nb29kIHVuaXQgdGVzdCBleGFtcGxlIGFib3ZlLCB3ZSAgd291bGQgc2V0IHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSBvbiAqbml4IHRvIHNvbWV0aGluZyBsaWtlIHRoaXMgKHdpbGwgbGlrZWx5IGJlIGEKCSAgcmVsYXRpdmUgcGF0aCBpbiBwcmFjdGljZSk6CgkgIGdzdHJlYW1lcjpnc3QtcGx1Z2lucy1iYXNlOmdzdC1wbHVnaW5zLWdvb2RAL3BhdGgvdG8vc3JjL2dzdC1wbHVnaW5zLWdvb2QKCSAgRml4ZXMgIzYxOTgxNSBhbmQgIzYxOTcxNy4KCjIwMTAtMDYtMjMgMTc6MjQ6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IFdlIGRvbid0IG5lZWQgYW55IGNoZWNrcyB3aGVuIGxpbmtpbmcgdGFyZ2V0IHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTIzIDE3OjAwOjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IE5ldyBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCBtZXRob2QKCSAgTGlua3MgdGhlIGVsZW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCBwYWQgbGlua2luZyBjaGVja3MuCgkgIEFQSTpnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTIzIDE2OjQ1OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIG5ldyBwYWQgbGlua2luZyBtZXRob2Qgd2l0aCBjb25maWd1cmFibGUgY2hlY2tzLgoJICBUbyBiZSB1c2VkIGZvciBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIGFsbCBjaGVja3MgdG8gYmUgdmFsaWRhdGVkLgoJICBBUEk6IGdzdF9wYWRfbGlua19mdWxsCgkgIEFQSTogR3N0UGFkTGlua0NoZWNrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMTUgMTg6MjY6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfSU1BR0VfT1JJRU5UQVRJT04gdGFnCgkgIEFkZHMgYSBuZXcgdGFnIHRvIGluZm9ybSBhYm91dCB0aGUgaW1hZ2Ugb3JpZW50YXRpb24gYW5kIGhvdwoJICB0byByb3RhdGUgYW5kIGZsaXAgaXQgYmVmb3JlIGRpc3BsYXkuCgkgIE5vdGUgdGhhdCB0aGlzIHRhZyBpcyBhIHN0cmluZyB3aXRoIGEgcHJlZGVmaW5lZCBzZXQgb2YKCSAgcG9zc2libGUgdmFsdWVzLgoJICBBUEk6IEdTVF9UQUdfSU1BR0VfT1JJRU5UQVRJT04KCSAgRml4ZXMgIzYxOTUwOAoKMjAxMC0wNi0yMiAxODo1MzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0b2JqZWN0OiBkZXByZWNhdGUgZ3N0X29iamVjdF97c2V0fGdldH1fbmFtZV9wcmVmaXgoKQoJICBUaGUgbmFtZSBwcmVmaXggc3R1ZmYgaGFzIG5ldmVyIGJlZW4gdXNlZCBmb3IgYW55dGhpbmcgYW5kIGl0IGRvZXNuJ3QKCSAgbG9vayBsaWtlIHdlJ2xsIGV2ZXIgd2FudCB0byB1c2UgaXQgZm9yIGFueXRoaW5nLgoJICBGaXhlcyAjNjIxMDA2LgoKMjAxMC0wNi0yMiAxMDoyMDo1MyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMgZm9yIEdzdFBhZEludExpbmtGdW5jdGlvbgoJICBGaXhlcyBidWlsZCB3aXRoIGxhdGVzdCBnb2JqZWN0LWludHJvc3BlY3Rpb24gZnJvbSBnaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIwMjUKCjIwMTAtMDYtMjEgMTE6NDE6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZXJnaW5nIG9mIHJhbmdlcwoJICBXaGVuIHdlIG1lcmdlIHR3byByYW5nZXMsIGRvbid0IHVwZGF0YSB0aGUgY3VycmVudCByYW5nZSB3cml0aW5nX3BvcyB3aXRoCgkgIHdoZXJlZXZlciB3ZSB3ZXJlIHdyaXRpbmcgZWFybGllciBpbiB0aGUgbWVyZ2VkIHJhbmdlLiAgU3BvdHRlZCBieSBiaWxib2VkLgoKMjAxMC0wNi0xOSAxMToxOTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFsc28gc2tpcCAuZGVwcyBkaXJzIHdoZW4gc2Nhbm5pbmcgZm9yIHBsdWdpbnMKCSAgTm8gbmVlZCB0byBkZXNjZW5kIGludG8gLmRlcHMgZGlycyBpbiB1bmluc3RhbGxlZCBzZXR1cHMsIHdlIGtub3cKCSAgdGhlc2UgZG9uJ3QgY29udGFpbiBhbnkgcGx1Z2lucy4KCjIwMTAtMDYtMTcgMTE6Mzk6MDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBnc3RfdGFnX2xpc3RfcGVla19zdHJpbmdfaW5kZXggdG8gYXZvaWQgYSBjb3B5CgkgIEFkZHMgYSB2YXJpYXRpb24gb2YgdGhlIF9nZXRfc3RyaW5nX2luZGV4IGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBjb3B5CgkgIHRoZSBzdHJpbmcuCgkgIEFQSTogZ3N0X3RhZ19saXN0X3BlZWtfc3RyaW5nX2luZGV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE4OTYKCjIwMTAtMDYtMTggMTI6MDA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IG1ha2Ugc3VyZSBidWZmZXJzJyBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyBjYXBzIG9uIHRoZW0KCSAgRml4ZXMgd2FybmluZ3Mgd2hlbiB1c2luZyBwbGF5YmluMiB3aXRoIGR2YjovLyBzdHJlYW1zLCB3aGVyZSB0eXBlZmluZAoJICBjb21lcyBhZnRlciBtcGVndHNwYXJzZS4KCjIwMTAtMDYtMTcgMTU6NTI6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBpbnRyb3NwZWN0ZWQgcGx1Z2luIGRvY3MgZm9yIGdzdGRvYy1zY2Fub2JqIGNoYW5nZXMKCSAgVXBkYXRlIGNvbW1vbiBmb3IgbGF0ZXN0IGdzdGRvYy1zY2Fub2JqIGFuZCBpbnNwZWN0IHhtbCBmaWxlcyBmb3IKCSAgZXNjYXBpbmcgYW5kIHBhZCB0ZW1wbGF0ZSBvcmRlciBjaGFuZ2VzLgoKMjAxMC0wNi0xNyAxMzoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbml0aWFsaXplIGppdHRlciB0byBwcmV2ZW50IHByaW50aW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaWYgd2FpdGluZyBmb3IgdGhlIGNsb2NrIGZhaWxlZAoKMjAxMC0wNi0xNyAxMDozNDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA2LTE3IDA5OjMzOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogZml4IGFub3RoZXIgdHlwbyBhbmQgc29tZSBpbmFjY3VyYWNpZXMKCSAgRml4IGEgd3Jvbmcgc3RhdGVtZW50IGFuZCBmbGVzaCBvdXQgc2VjdGlvbiBvbiBtZXNzYWdlcyBhbmQgcXVlcmllcwoJICBhIGJpdC4KCjIwMTAtMDYtMTcgMDk6MDU6NTggKzAyMDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IEZpeCBhbm90aGVyIHR5cG8KCjIwMTAtMDYtMTcgMDk6MDU6MjggKzAyMDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IEZpeCB0eXBvCgoyMDEwLTA2LTE2IDEzOjExOjA2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIGFuIGFsbG93LW5vbmUgYW5ub3RhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjI2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IEFkZCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIFRoZXNlIGFyZSByZXF1aXJlZCB0byBrbm93IGhvdyB0byB1bnJlZi9yZWYgYW5kCgkgIGNvbnZlcnQgdG8vZnJvbSBhIEdWYWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDoxMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDowNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzowOTo1NyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MDA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IG1ha2Ugc3luYyBwcm9wZXJ0eSB3b3JrIGNvcnJlY3RseQoJICBEb24ndCBvdmVycmlkZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgdm1ldGhvZCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHN5bmMKCSAgcHJvcGVydHkuCgkgIFNldCB0aGUgZGVmYXVsdCBzeW5jIHByb3BlcnR5IHRvIEZBTFNFLiBJdCB1c2VkIHRvIGJlIHNldCB0byBUUlVFIGJ1dCBiZWNhdXNlCgkgIHRoZSBnZXRfdGltZXMgd2FzIE5VTEwsIGl0IGFsd2F5cyBiZWhhdmVkIGxpa2UgRkFMU0UuCgkgIEZpeGVzICM2MjE1MzAKCjIwMTAtMDYtMTUgMTg6NDg6NTMgKzAyMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBJbXByb3ZlIGdzdF9lbGVtZW50X2dldF9uYW1lKCkgZG9jcwoJICBGaXhlcyBidWcgIzYyMTY2MC4KCjIwMTAtMDYtMTUgMTY6NDk6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDkzMzljY2MgdG8gMzU2MTdjMgoKMjAxMC0wNi0xNSAxNjo1MzozNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1YWRiMWNhIHRvIDkzMzljY2MKCjIwMTAtMDYtMTUgMTY6MzQ6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTdjODliNyB0byA1YWRiMWNhCgoyMDEwLTA2LTE1IDE1OjMxOjEyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM4MDQ5ODggdG8gNTdjODliNwoKMjAxMC0wNi0xNSAxMTo0ODoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmV2ZXJ0ICJHc3RQYWQ6IEFkZCBHU1RfUEFEX05FR09USUFCTEUgR3N0UGFkRmxhZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkYzM4ZTc1ZDg4YmQ4OTIxODk1ODIxZjdhZmVkMDFjYWIzMGU0NmM5LgoJICBib29tCgoyMDEwLTA2LTE1IDExOjQ4OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgUmV2ZXJ0ICJnc3RwYWQ6IFJldHVybiBwYWQgdGVtcGxhdGUgaW4gZ2V0X2NhcHMgaWYgcGFkIGlzIG5vdCBuZWdvdGlhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc0NjAzMjFhNjAwNDM4OTY2ZDcxNTJhYjJiNDMxOGJlNDhlYWRjZTAuCgkgIGNyYWNrCgoyMDEwLTA2LTE1IDExOjQ4OjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZml4IGNvbW1lbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGU5MmNiNGE3ZDU2Y2RmYTQ2NzQzMTVjNjRiNThjMWIxYjlkODIwOC4KCSAgd2hhdGV2ZXIuLi4KCjIwMTAtMDYtMTUgMTE6NDc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IG9ubHkgY2xlYXIgbmVnb3RpYWJsZSB3aGVuIGdvaW5nIHRvIE5VTEwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGY1ZWMxZjczN2MzYjM3NTM4YjIzMDdhZWYxNjBkOWQyMWYxYzQyMi4KCSAgYmxlZWVlaAoKMjAxMC0wNi0xNSAxMDo0NjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBhZGQgZHVtbXkgVFJBQ0UgbG9nIGxldmVsIG1hY3JvcyBmb3Igd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgRm9yZ290IHRob3NlIHdoZW4gYWRkaW5nIHRoZSBvcmlnaW5hbCBBUEksIGp1c3QgbGlrZSB0aGUgQVBJIG1hcmtlcnMKCSAgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoJICBBUEk6IEdTVF9UUkFDRQoJICBBUEk6IEdTVF9UUkFDRV9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX1RSQUNFCgkgIEFQSTogR1NUX0NBVF9UUkFDRV9PQkpFQ1QKCSAgQVBJOiBHU1RfTEVWRUxfVFJBQ0UKCSAgRml4ZXMgY29tcGlsYXRpb24gd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnCgoyMDEwLTA2LTE1IDAxOjE1OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgbW9yZSBlcnJvcnMgdG8gc3RkZXJyIGFuZCBzdXBwcmVzcyBtb3JlIG91dHB1dCBpbiBxdWlldCBtb2RlCgkgIElmIC0tcXVpZXQgaXMgZ2l2ZW4sIGRvbid0IHByaW50IGFueXRoaW5nIGJ1dCBlcnJvcnMuIEFsc28sIG1ha2UKCSAgc3VyZSBlcnJvcnMgYXJlIGFsd2F5cyBwcmludGVkIHRvIHN0ZGVyciBhbmQgbm90IHRvIHN0ZG91dC4KCSAgRml4ZXMgIzYyMTU5NS4KCjIwMTAtMDYtMTQgMTg6MDc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBvbmx5IGNsZWFyIG5lZ290aWFibGUgd2hlbiBnb2luZyB0byBOVUxMCgkgIERvbid0IGNsZWFyIHRoZSBuZWdvdGlhYmxlIGZsYWcgd2hlbiBnb2luZyB0byBSRUFEWSBiZWNhdXNlIHRoZW4gaXQgd2lsbCBuZXZlcgoJICBiZSBzZXQgdG8gVFJVRSBhZ2Fpbi4KCjIwMTAtMDYtMTQgMTc6MzM6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGNvbW1lbnQKCjIwMTAtMDUtMTcgMTU6MDY6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IFJldHVybiBwYWQgdGVtcGxhdGUgaW4gZ2V0X2NhcHMgaWYgcGFkIGlzIG5vdCBuZWdvdGlhYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg2NDQKCjIwMTAtMDUtMTcgMTU6MDQ6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIEdTVF9QQURfTkVHT1RJQUJMRSBHc3RQYWRGbGFnCgkgIEEgcGFkIGlzICduZWdvdGlhYmxlJyB3aGVuIGl0cyBjb250YWluZXIgZWxlbWVudCBpcyBpbiBhIHN0YXRlIGdyZWF0ZXIKCSAgdGhhbiBHU1RfU1RBVEVfUkVBRFkKCSAgQVBJOmdzdF9wYWRfaXNfbmVnb3RpYWJsZQoJICBBUEk6Z3N0X3BhZF9zZXRfbmVnb3RpYWJsZQoJICBBUEk6R1NUX1BBRF9ORUdPVElBQkxFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg2NDQKCjIwMTAtMDYtMTQgMTY6NTE6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiB1c2UgbWV0aG9kIHRvIHNldCBzeW5jIHByb3BlcnR5CgkgIFVzZSB0aGUgYmFzZXNpbmsgbWV0aG9kIHRvIGNvbmZpZ3VyZSB0aGUgc3luYyBwcm9wZXJ0eSBpbnN0ZWFkIG9mIHBva2luZyB0aGUKCSAgcGFyZW50IHN0cnVjdHVyZS4KCjIwMTAtMDYtMTQgMTY6NTA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2UgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIGZ1bmN0aW9uCgkgIFVzZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgZnVuY3Rpb24gb2YgYmFzZXNpbmsgc28gdGhhdCB3ZSBob25vdXIgdGhlIHN5bmMKCSAgcHJvcGVydHkgaW5zdGVhZCBvZiBuZXZlciBzeW5jaHJvbml6aW5nIHRvIHRoZSBjbG9jay4KCSAgRml4ZXMgIzYyMTUzMAoKMjAxMC0wNi0xNCAxNjoyMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWV2YWx1YXRlIHByb3h5X2FsbG9jIHdoZW4gcmVjb25maWd1cmVkCgkgIFdoZW4gd2UgcmVjb25maWd1cmUgdGhlIHRyYW5zZm9ybSBlbGVtZW50LCBtYWtlIHN1cmUgd2UgcmVldmFsdWF0ZSB0aGUgcHJveHlpbmcKCSAgb2YgYnVmZmVyX2FsbG9jIHRoZSBuZXh0IHRpbWUgYXJvdW5kLgoJICBGaXhlcyAjNjIxMzMyCgoyMDEwLTA2LTE0IDE1OjM5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBjYXBzOiBEb24ndCB1c2UgaW52YWxpZCBmcmFjdGlvbiByYW5nZSBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEwLTA2LTE0IDE1OjMwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIHNvbWUgbW9yZSBhc3NlcnRpb25zIGFuZCBjaGVja3MgZm9yIHZhbGlkIGlucHV0IHBhcmFtZXRlcnMKCjIwMTAtMDUtMjcgMTU6MTM6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIHByb2dyZXNzaXZlIG1hc2tlZF9zY2FuCgkgIFJldGFpbiB0aGUgbGFzdCBzY2FubmVkIGJ1ZmZlciBlbnRyeSBhbmQgb2Zmc2V0LCBzbyB3ZSBjYW4gcmVzdW1lIGJ1ZmZlcgoJICBzY2FubmluZyB0aGVyZSBpbiBjYXNlIG9mIGEgdHlwaWNhbCBwcm9ncmVzc2l2ZSBzY2FuLgoJICBBbHNvIHBvdGVudGlhbGx5IG9wdGltaXplIF9jb3B5IHN1YnNlcXVlbnRseSBvY2N1cnJpbmcgaW4gdGhhdCBhcmVhLgoKMjAxMC0wNS0yNyAxMjoxNToyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGV4dGVuZGVkIG1hc2tlZF9zY2FuX3VpbnQzMl9wZWVrIHRoYXQgYWxzbyBwcm92aWRlcyBtYXRjaGluZyB2YWx1ZQoJICBBbHNvIGFkZCB0byAuZGVmIGFuZCBkb2NzLgoJICBGaXhlcyAjNjE5ODI4LgoJICBBUEk6IGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgoyMDEwLTA2LTE0IDEzOjM4OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggLmRlZiBmaWxlCgoyMDEwLTA2LTE0IDEyOjI1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGFkZCBTaW5jZTogdGFnIGZvciBuZXcgZ3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlCgoyMDEwLTA2LTExIDE1OjM2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGZpeCBleGFtcGxlIHRvIHVzZSBhIGNhdGVnb3J5IG5hbWUgdGhhdCBhY3R1YWxseSBleGlzdHMKCjIwMTAtMDYtMTQgMTE6Mzk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2FwczogTmV3IGdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZSgpIG1ldGhvZAoJICBUaGlzIGFsbG93cyByZW1vdmluZyBzdHJ1Y3R1cmVzIGZyb20gY2FwcyB3aXRob3V0IHRoZW0gYmVpbmcgZnJlZWQuIEhlbHBmdWwgd2hlbgoJICBwbHVnaW5zIG5lZWQgdG8gbW92ZSBhcm91bmQgc3RydWN0dXJlcyB3aXRob3V0IGhhdmluZyB0byBkbyBhbiBleHBlbnNpdmUgc3RydWN0dXJlCgkgIGNvcHkuCgkgIEFQSTpnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTUyNwoKMjAxMC0wNi0xNCAxMzoxMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogRG9uJ3QgYWRkIEdfVEhSRUFEU19NQU5EQVRPUlkgdG8gR1NUX0FMTF9DRkxBR1MKCSAgSXQncyBhbHJlYWR5IGluY2x1ZGVkIGluIEdMSUJfRVhUUkFfQ0ZMQUdTCgoyMDEwLTA2LTE0IDEzOjA3OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgR0xJQl9FWFRSQV9DRkxBR1MKCjIwMTAtMDYtMTQgMTM6MDI6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YTBmZGY1IHRvIGM4MDQ5ODgKCjIwMTAtMDYtMTQgMTM6MDE6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IHByaW50ZiBmb3JtYXQKCjIwMTAtMDYtMTQgMTI6Mzk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogaW1wbGVtZW50IGN1c3RvbSBhY2NlcHRfY2FwcyBtZXRob2QKCSAgSW1wbGVtZW50IGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24uIFdlIGNhbiBzaW1wbHkgY2hlY2sgaWYgdGhlcmUgaXMgYW4KCSAgaW50ZXJzZWN0aW9uIHdpdGggdGhlIG5ldyBjYXBzLiBUaGlzIG1ha2VzIHRoZSBhY2NlcHQgY2FwcyBmdW5jdGlvbiBtdWNoIGZhc3Rlci4KCSAgU2VlICM2MjExOTAKCjIwMTAtMDYtMTQgMTI6MzY6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCBhY2NlcHRfY2FwcyB2bWV0aG9kCgkgIEFsbG93IHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gYmVjYXVzZSBpbiBzb21lIGNhc2VzIGEKCSAgY3VzdG9tIGltcGxlbWVudGF0aW9uIGNhbiBiZSBtdWNoIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGRlZmF1bHQgb25lLgoJICBTZWUgIzYyMTE5MAoKMjAxMC0wNi0xNCAxMTozMDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZkYTNiYWIgdG8gN2EwZmRmNQoKMjAxMC0wNi0xMSAxODo0OTowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFJlbW92ZSB0cmFuc2Zvcm1fc2l6ZQoJICBHc3RCYXNlVHJhbnNmb3JtIG5vdyBhc3N1bWVzIHRoYXQgdGhlIHNpemUgaXMgdGhlIHNhbWUgaWYgdGhlcmUgaXMgbm90CgkgIHRyYW5zZm9ybV9zaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzM0CgoyMDEwLTA2LTExIDE4OjQ2OjMwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQXNzdW1lIHNpemUgaXMgdGhlIHNhbWUgaWYgbm8gdHJhbnNmb3JtX3NpemUvZ2V0X3VuaXRfc2l6ZQoJICBTdWJjbGFzc2VzIHRoYXQgZG9uJ3QgaW1wbGVtZW4gdHJhbnNmb3JtX3NpemUgc2hvdWxkIGJlIGFzc3VtZWQgdG8gcHJvZHVjZSBvdXRwdXQKCSAgYnVmZmVycyBvZiB0aGUgc2FtZSBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzM0CgoyMDEwLTA2LTE0IDA4OjE4OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRG9uJ3QgaW5pdGlhbGl6ZSBhcnJheXMgZnJvbSB2YXJpYWJsZXMKCjIwMTAtMDYtMTQgMDg6MTE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogU3RvcmUgcmVzdWx0IG9mIHN0cnRvbCBpbiBhbiB1bnVzZWQgdmFyaWFibGUgdG8gcmVhbGx5IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcuLi4KCjIwMTAtMDYtMTMgMjA6NTI6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2FzdCByZXR1cm4gdmFsdWUgdG8gdm9pZCB0byBwcmV2ZW50IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDYtMTMgMTg6MTI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICBydHBvb2wtdGVzdDogUHJldmVudCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKCjIwMTAtMDYtMTMgMTg6MDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBzdXJlIHdlIGhhdmUgYSB2YWxpZCBvYmplY3QgdG8gcmVuZGVyIGluIF9yZW5kZXJfb2JqZWN0KCkKCjIwMTAtMDYtMTMgMTg6MDA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgc29tZSBhc3NlcnRpb24gZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBwYXJhbWV0ZXJzIHRvIHB1YmxpYyBBUEkKCjIwMTAtMDYtMTMgMTc6MDg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJlbW92ZSBzb21lIGRlYWQgYXNzaWdubWVudHMKCjIwMTAtMDYtMTMgMTc6MDY6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYnVmZmVyc3RyZXNzOiBDaGVjayBpZiB0aGUgbnVtYmVyIG9mIHRocmVhZHMgYW5kIGJ1ZmZlcnMgbWFrZXMgc2Vuc2UKCjIwMTAtMDYtMTMgMTc6MDM6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICByZWFkLW1ldGFkYXRhOiBTdG9wIGlmIHNldHRpbmcgdGhlIHBpcGVsaW5lIHN0YXRlIGJhY2sgdG8gTlVMTCBmYWlscwoKMjAxMC0wNi0xMyAxNjo1OTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgY29tcGxleGl0eTogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMgYW5kIHVudXNlZCB2YXJpYWJsZXMKCjIwMTAtMDYtMTMgMTY6MzE6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEb24ndCBpZ25vcmUgZmFpbHVyZSB0byBvcGVuIHRoZSB0ZW1wb3JhcnkgZmlsZSBsb2NhdGlvbgoJICBBbmQgaW1tZWRpYXRlbHkgbGVhdmUgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBvbiBmYWlsdXJlcy4KCjIwMTAtMDYtMTMgMTY6Mjc6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBpdGVyYXRvciBhZ2dyZWdhdGlvbiBvZiBhbGwgcGFkcyBpbiB0aGUgaW50ZXJuYWwgbGlua3MgZmFsbGJhY2sKCSAgZ19saXN0X3ByZXBlbmQoKSByZXR1cm5zIHRoZSBuZXcgaGVhZCBvZiB0aGUgbGlzdCBhbmQgbm90CgkgIHVzaW5nIHRoaXMgd2lsbCBjcmVhdGUgYSBtZW1vcnkgbGVhayBhbmQgYSBzaW5nbGUtZWxlbWVudCBsaXN0LgoKMjAxMC0wNi0xMyAxNToyNToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCBuZXcgRklYTUUgZm9yIDAuMTEgYW5kIHVwZGF0ZSBnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20gZG9jcwoJICBUaGUgY29tcGFyZSBmdW5jdGlvbiBzaG91bGQgb25seSB1bnJlZiB0aGUgZWxlbWVudCBpZiBpdCdzCgkgIG5vdCB0aGUgbWF0Y2hpbmcgZWxlbWVudC4KCSAgQWxzbyB0aGUgRklYTUUgaW4gX2ZvbGQoKSBpcyBub3QgcmVsZXZhbnQgYmVjYXVzZSB0aGUgcmVmL3VucmVmCgkgIGhhcHBlbnMgaW4gdGhlIGZvbGQgZnVuY3Rpb24uCgoyMDEwLTA2LTEzIDExOjI0OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogSWYgdGhlIGl0ZXJhdG9yIHJlc3luYyBpbiBmaW5kX2N1c3RvbSgpIGp1c3QgcmV0cnkKCjIwMTAtMDYtMTIgMDg6MjU6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3MzNmY2E5IHRvIDZkYTNiYWIKCjIwMTAtMDYtMTIgMDg6MDQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyBmb3VyY2NzCgoyMDEwLTA2LTExIDIyOjU2OjEzICswMDAwICBNYXJ0aW4gQmlzc29uIDxtYXJ0aW4uYmlzc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEZpeGVkIHNlcmlhbGl6YXRpb24gZm9yIHNob3J0IGZvdXJjY3MuCgkgICJZMTYgIiBhbmQgIlk4ICAiIHdlcmUgbm90IGRpc3BsYXllZCBwcm9wZXJseSBiZWNhdXNlIHRoZSBzcGFjZQoJICBjaGFyYWN0ZXIgaXMgbm90IGFsbnVtLiAgQSB1bml0IHRlc3QgaXMgYWxzbyBpbmNsdWRlZC4KCSAgRml4ZXMgYnVnICM2MjEyODIuCgoyMDEwLTA2LTExIDE2OjEyOjMzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCByYW5rcyB3aXRoIG9mZnNldHMgZnJvbSBuYW1lcwoKMjAxMC0wNi0wOSAxMjozOTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZhZDE0NWIgdG8gNzMzZmNhOQoKMjAxMC0wNi0wOSAxMjozMDo0OSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3NjgzYzEgdG8gZmFkMTQ1YgoKMjAxMC0wNi0wOSAxMjoxNzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNvbW1lbnQgdHlwbyBldmVuIG1vcmUKCjIwMTAtMDYtMDkgMTI6MDY6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBkb2NzOiB1cGRhdGUgZG9jcyAoZm9ybWF0IGFuZCBzZWFyY2ggcGF0aCkuCgkgIFJlbW92ZSBvYnNvbGV0ZSB4bWwgcmVnaXN0cnkgY2FjaGUgZXh0ZW5zaW9uLiBUZWxsIHRoYXQgY29udGVudCBhbmQgbG9jYXRpb24gaXMKCSAgaW50ZXJuYWwgZGV0YWlsLiBEb2N1ZW1udCB0aGUgcGx1Z2luIHNlYXJjaCBvcmRlci4KCjIwMTAtMDYtMDkgMTI6MDY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgY29tbWVudHM6IGFkZCBhIGZldyBjb21tZW50cyB0byB0aGUgc3BhcnNlbHkgZG9jdW1lbnRlZCBwbHVnaW4gbG9hZGVyCgoyMDEwLTA2LTA4IDExOjQxOjExICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNvbW1lbnQgdHlwbwoKMjAxMC0wNi0wOCAxMjoxMjo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGdzdF9jYXBzX2FwcGVuZF9zdHJ1Y3R1cmVfdW5jaGVja2VkKCkgbWFjcm8gb25jZSBtb3JlCgoyMDEwLTA2LTA4IDEyOjEwOjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgYSBzYWZlciBuYW1lIGZvciB0ZW1wb3JhcnkgdmFyLiB0byBub3Qgc2hhZG93IG9uZSBmcm9tIG91dGVyIHNjb3BlCgoyMDEwLTA2LTA3IDEyOjIwOjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHVzZSBnbGliIHR5cGVzIGluIG1vcmUgcGxhY2VzCgkgIERvIGEgYnVuY2ggb2YgY2hhciAtPiBnY2hhciwgaW50IC0+IGdpbnQsIGRvdWJsZSAtPiBnZG91YmxlIGNoYW5nZXMuCgoyMDEwLTA2LTA3IDEyOjA3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGp1c3QgY29tcHV0ZSBzdHJsZW4oKSBvbmNlCgoyMDEwLTA2LTA3IDEwOjE2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB3YWl0IGZvciBkYXRhIHdoZW4gRU9TCgkgIFdoZW4gaW4gZG93bmxvYWQgbW9kZSBhbmQgd2UgbmVlZCB0byBwcm92aWRlIGRhdGEgZm9yIGFuIG9mZnNldCB0aGF0IHdlIGRvbid0CgkgIGhhdmUsIGFsc28gcGVyZm9ybSBhIHNlZWsgdG8gdGhlIHJlcXVlc3RlZCBsb2NhdGlvbiB3aGVuIHdlIGFyZSBFT1MuIFRoZSByZWFzb24KCSAgd2h5IHdlIHNob3VsZG4ndCB3YWl0IGZvciBtb3JlIGRhdGEgaXMgYmVjYXVzZSBhZnRlciBFT1MsIHRoZXJlIHNpbXBseSB3aWxsIGJlCgkgIG5vIG1vcmUgZGF0YSBhbmQgd2UgZW5kIHVwIHdhaXRpbmcgZm9yZXZlci4KCSAgRml4ZXMgIzYyMDUwMAoKMjAxMC0wNi0wNyAwODoxODo0MCArMDIwMCAgTWFydGluIEJpc3NvbiA8bWFydGluLmJpc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIHNob3J0IGZvdXJjY3MgZnJvbSBzdHJpbmdzCgkgIEZvciBleGFtcGxlICJZMTYgIiBhbmQgIlk4ICAiLgoKMjAxMC0wNi0wNiAyMzoxOTo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IHVzZSBnbG9iYmluZyBmb3Igc2VsZWN0aXZlIHRlc3QgaW52b2NhdGlvbiB2aWEgR1NUX0NIRUNLUwoJICBVc2UgZ2xpYiBnbG9iYmluZyBpbnN0ZWFkIG9mIHNpbXBsZSBzdHJpbmcgbWF0Y2hpbmcgdG8gYWxsb3cgZS5nLgoJICBHU1RfQ0hFQ0tTPSJ0ZXN0X2ludGVyKiIgbWFrZSBnc3QvZ3N0Y2Fwcy5jaGVjawoKMjAxMC0wNi0wNiAyMToyMDoyMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBjYXBzbmVnbzogYWxzbyBtZWFzc3VyZSBwaXBlbGluZSBidWlsZGluZyB0aW1lCgoyMDEwLTA2LTA1IDIzOjE4OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgYSBjYXBzLWNvcHkKCSAgV2UgY2FuIHNpbXBseSB0cnVuY2F0ZSB0aGUgY2FwcywgYXMgJ290aGVyY2FwcycgaXMgdGhlIHJlc3VsdCBvZiBpbnRlcnNlY3QKCSAgb3BlcmF0aW9ucyBhbmQgdGh1cyBvdXJzIGFuZCB3cml0YWJsZS4KCjIwMTAtMDYtMDMgMDE6NDk6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBpbmZvOiBhZGQgbmV3IFRSQUNFIGxvZyBsZXZlbCBhbmQgbW92ZSByZWZjb3VudGluZyB0aGVyZSBmcm9tIExPRyBsZXZlbAoJICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGVhc2lseSBnZXQgYSAqOjUgZGVidWcgbG9nIHdpdGhvdXQgYWxsCgkgIHRoZSByZWZjb3VudGluZyBub2lzZSwgYW5kIGRyYXN0aWNhbGx5IHJlZHVjZXMgdGhlIG51bWJlciBvZiBsaW5lcwoJICBvdXRwdXQgZm9yIGEgbm9ybWFsIGxvZyAoNDZtIHRvIDI4bSBmb3IgYSAyMG1pbiB2aWRlbykuIFRoZSBmdWxsIGxvZwoJICBpbmNsdWRpbmcgcmVmY291bnRpbmcgaW5mb3JtYXRpb24gY2FuIHN0aWxsIGJlIGdvdHRlbiB1c2luZyAqOjcuCgkgIEZpeGVzICM2MjA0NjAuCgoyMDEwLTA2LTA0IDE3OjEwOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZm9yIHN0YW5kYXJkIHByb3BlcnRpZXMKCjIwMTAtMDYtMDMgMTc6MjE6MDAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxAYmFzZS1hcnQubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBnc3RfYmFzZV9zaW5rX3F1ZXJ5IHJldHVybiBUUlVFIGlmIHRoZSBzZWdtZW50IHF1ZXJ5IHN1Y2NlZWRlZC4KCSAgRml4ZXMgYnVnICM2MjA0OTAuCgoyMDEwLTA2LTAxIDIzOjQ4OjU5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTdmODllNSB0byA0NzY4M2MxCgoyMDEwLTA2LTAxIDIyOjU0OjIwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmQ3Y2EwNCB0byAxN2Y4OWU1CgoyMDEwLTA1LTI0IDE3OjI1OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IEltcHJvdmUgcmVhZGFiaWxpdHkgZm9yIGdzdF9wYWRfZml4YXRlX2NhcHMoKQoJICBKdXN0IHRydW5jYXRlIGFuZCB0aGVuIGZpeGF0ZS4gV2UgY2hlY2sgZm9yIGVtcHR5IGNhcHMgaW4gdGhlIGJlZ2luIGFuZCBhCgkgIGZpeGF0ZS1mdW5jIHRoYXQgZW1wdGllcyBhIGNhcHMgd291bGQgYmUgYnJva2VuLiBJdCBhbHNvIGhlbHBzIGxhenkgY2FwcyBpbXBsLgoJICBpbiBidWcgNjE4ODUzIGJ5IGF2b2lkaW5nIHRoZSBnc3RfY2Fwc19nZXRfc2l6ZSgpLgoKMjAxMC0wNi0wMSAxMTo0NjoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogbG9nIHBsdWdpbnMgYXZhaWxhYmxlIHRvIHVuaXQgdGVzdHMgYW5kIHRoZWlyIHBhdGhzCgoyMDEwLTA2LTAxIDExOjQ1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICB3aW4zMjogY29tbWl0IE1ha2VmaWxlIGNoYW5nZXMgZm9yIHdpbjMyLXVwZGF0ZSBhcyB3ZWxsCgoyMDEwLTA1LTMxIDE1OjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIHdpbjMyOiBhZGQgcHJlLWdlbmVyYXRlZCB2ZXJzaW9ucyBvZiBnc3RtYXJzaGFsLltjaF0gYXMgd2VsbAoJICBhbmQgcHV0IHRoZW0gbmV4dCB0byB0aGUgcHJlLWdlbmVyYXRlZCBlbnVtdHlwZXMgZmlsZXMgZm9yIHRob3NlCgkgIG5vdCB1c2luZyBhdXRvdG9vbHMgZm9yIGJ1aWxkbGluZyBHU3RyZWFtZXIuCgoyMDEwLTA1LTI3IDE1OjEwOjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWxzbyBjaGVjayBmb3IgYWRhcHRlciBidWZmZXIgbWVyZ2luZyBpbiB1bml0IHRlc3QKCjIwMTAtMDUtMjcgMTI6NTA6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBfdHJ5X3RvX21lcmdlX3VwCgkgIFRoYXQgaXMsIHByb3ZpZGUgY29ycmVjdCByZXR1cm4gdmFsdWUgKGFzIGRvY3VtZW50ZWQpLCBhbmQgYWN0dWFsbHkKCSAgbG9vcCB0byBjb25zaWRlciBtb3JlIHRoYW4gdGhlIGZpcnN0IDIgYnVmZmVycy4KCjIwMTAtMDUtMjcgMTI6NDg6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGRvY3VtZW50YXRpb24gZ2xpdGNoCgoyMDEwLTA1LTI2IDExOjU0OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzU3YjBkYiB0byBmZDdjYTA0CgoyMDEwLTA1LTI1IDE5OjE3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogdW5sb2NrIF9nZXRfc3RhdGUoKSBvbiBlcnJvcgoJICBXaGVuIGFuIGVycm9yIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgb24gdGhlIGJ1cywgbWFyayB0aGUgYmluIGFzIGJlaW5nIGluIHRoZSBlcnJvcgoJICBzdGF0ZSBhbmQgdW5sb2NrIGFsbCBjdXJyZW50IF9nZXRfc3RhdGUoKSBjYWxscyB3aXRoIGFuIGVycm9yLgoJICBGaXhlcyAjNTA1NzcwCgoyMDEwLTA1LTI0IDE5OjA3OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgY2hlY2tzOiBhZGQgbXVsdGktdGhyZWFkIHRlc3QgZm9yIHRhZ3NldHRlcgoJICBTZWUgIzYxOTUzMy4KCjIwMTAtMDUtMjQgMTk6MDY6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IG1ha2Ugc3VyZSBvbmx5IG9uZSB0aHJlYWQgY3JlYXRlcyB0aGUgVGFnRGF0YQoKMjAxMC0wNS0yNCAxODoxNjoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogcHJvdGVjdCB0YWdzZXR0ZXIgb3BlcmF0aW9ucyB3aXRoIGEgbG9jawoJICBTbyB3ZSBkb24ndCBjcmFzaCB3aGVuIGEgbXV4ZXIgdHJpZXMgdG8gYWRkIHRhZ3MgZnJvbSB0d28KCSAgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLCBlZy4gYmVjYXVzZSBpdCByZWNlaXZlZCB0YWcgZXZlbnRzCgkgIG9uIHR3byBpbnB1dCBwYWRzIHNpbXVsdGFuZW91c2x5LgoJICBTZWUgIzYxOTUzMy4KCjIwMTAtMDUtMjIgMjM6MjY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBvdXIgbWFjcm9zIG1vcmUgb2Z0ZW4gaW4gdGhlIGNvZGUKCjIwMTAtMDUtMjIgMjM6MDc6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBhcHBlbmRfc3RydWN0dXJlX3VuY2hlY2tlZAoJICBUaGlzIGlzIHVzZWZ1bCB3aGVuIHdlIGtub3cgdGhhdCBjYXBzIGlzICFOVUxMLCB3cml0YWJsZSBhbmQgc3RydWN0dXJlIGlzCgkgICFOVUxMIHRvby4KCjIwMTAtMDUtMjIgMjI6NDY6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiByZW5hbWUgdGVzdHN1aXRlCgkgIFByZXZpb3VzIG5hbWUgd2FzIG9ubHkgYXBwbGljYWJsZSB0byBhIGZldyBvZiB0aGUgdGVzdHMuCgoyMDEwLTA1LTIyIDIyOjQ1OjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IHhyZWYgZnVuY3Rpb24gbmFtZQoKMjAxMC0wNS0yMiAyMjo0NDowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIG91ciBtYWNvcyBtb3JlCgoyMDEwLTA1LTIyIDIyOjMzOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xhenljYXBzLnR4dDoKCSAgZGVzaWduOiBtb3JlIHBsYW5uaW5nIG9uIGxhenkgY2Fwcy4KCjIwMTAtMDUtMjIgMTA6MDE6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFQSTogQWRkIGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX3N0cmluZygpCgoyMDEwLTA1LTE5IDE2OjIxOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xhenljYXBzLnR4dDoKCSAgZGVzaWduOiBjb2xsZWN0IGlkZWFzIGZvciBoYXZpbmcgbGF6eSBjYXBzCgkgIERlc2lnbiBkb2MgZm9yIGhhdmluZyBvbiB0aGUgZmx5IGV2YWx1YXRlZCBjYXBzIChzZWUgYnVnICM2MTg4NTMpLgoKMjAxMC0wNS0xOSAxNTo1NzowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBhZGQgbGlua3MgZm9yIEdTb3VyY2UgcHJpb3JpdGllcwoJICBOb3cgaXQgaXMgeHJlZmZlZCB3aXRoIHRoZSBnbGliIGRvY3MsIHdoZXJlIHRoZSBwcmlvcml0eSBzY2FsZSBpcyBleHBsYWluZWQuCgoyMDEwLTA1LTE5IDE0OjA4OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogYWRkIGNvbW1hbmRsaW5lIHBhcmFtZXRlcnMgZm9yIGNhcHNuZWdvCgkgIEFsbG93IHRvIHNwZWNpZnkgdGhlIGdyYXBoIHNpemUgYW5kIG9mZmVyIHR3byBmbGF2b3VycyAoYXVkaW8vdmlkZW8pLgoKMjAxMC0wNS0xOSAwOTo1Njo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IGFkZCBhIGJlbmNobWFyayBmb3IgY2Fwc25lZ290aWF0aW9uCgkgIFRoZSB0ZXN0IGJ1aWxkcyBhIHRyZWUgbGlrZSBncmFwaCBoYXZpbmcgY29udmVyc2lvbiBhbmQgYmFzZXRyYW5zZm9ybSBlbGVtZW50cy4KCjIwMTAtMDUtMTggMTc6NTE6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIGJlbmNobWFya3M6IHVzZSBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkgaW5zdGVhZCBvZiBvd24gaW1wbGVtZW50YXRpb24KCjIwMTAtMDUtMTggMTg6Mzg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgaml0dGVyIHRvIGRlYnVnIG91dHB1dAoKMjAxMC0wNS0xOCAxODozNTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFudXAgdHlwZSByZWdpc3RyYXRpb24gYSBsaXR0bGUKCSAgV2UgY2FuIG1ha2Ugc29tZSBzdHJ1Y3RzIGNvbnN0IHN0YXRpYyB3aXRoIGxpdHRsZSBlZmZvcnQuCgoyMDEwLTA1LTE3IDEzOjA5OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwcmludCBXQVJOSU5HIGRlYnVnIHN0YXRlbWVudHMgZm9yIG5vcm1hbCB0aGluZ3MgbGlrZSBFT1MsIHBhcnQgSUkKCjIwMTAtMDUtMTQgMTg6MjI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0ZDY3YmQ2IHRvIDM1N2IwZGIKCjIwMTAtMDUtMTQgMTE6NTI6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNvbW1lbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cAoJICBNYWtlIGNvbW1lbnQgbW9yZSBzcGVjaWZpYywgcmVwb3NpdGlvbiBpdCBhbmQgYWRkIG1vcmUgb2YgdGhlIGtpbmQuCgkgIE1vdmUgb25lIGlmZGVmJ2VkIGZ1bmN0aW9uIGFyb3VuZC4KCjIwMTAtMDUtMTMgMDg6MjE6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBTaW1wbGlmeSBmcmFjdGlvbnMgYmVmb3JlIGRvaW5nIGNhbGN1bGF0aW9ucyB0aGF0IGNvdWxkIGNhdXNlIG92ZXJmbG93cwoJICAuLi4gdG8gcHJldmVudCBzb21lIHVubmVjZXNzYXJ5IG92ZXJmbG93cyBmcm9tIGhhcHBlbmVuaW5nLgoKMjAxMC0wNS0xMyAwODowMDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEdDRCBpcyAwIGlmIGJvdGggcGFyYW1ldGVycyBhcmUgMCwgZG9uJ3QgZGl2aWRlIGJ5IHplcm8KCSAgQW5kIHR1cm4gb3ZlcmZsb3cgY2hlY2tzIGZyb20gYXNzZXJ0aW9ucyBpbnRvIHNpbXBsZSBjaGVja3MgdG8KCSAgcmV0dXJuIEZBTFNFLgoKMjAxMC0wNS0xMyAwNzo1MToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNpbXBsaWZ5IHJlc3VsdCBvZiBnc3RfZnJhY3Rpb25fbXVsdGlwbHkoKQoKMjAxMC0wNS0xMCAxMzoyNTowNCAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIGZhcTogdXBkYXRlZCBsaW5lIGFib3V0IGphY2sgb3V0cHV0CgoyMDEwLTA1LTAzIDExOjMyOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBSZWFkIHJldHVybiB2YWx1ZSB0byBtYWtlIGNsYW5nL2ljYyBoYXBweQoKMjAxMC0wNS0wNiAxNjo0MTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGRvbid0IGNoZWNrIHR3aWNlIGZvciBjaGFuZ2VkIGNhcHMgcGVyIHB1c2giCgkgIFdlIG5lZWQgdG8gY2hlY2sgdGhlIHBhZCBjYXBzIG9uIHRoZSBzcmNwYWQgYXMgd2VsbCBhcyBvbiB0aGUgc2lua3BhZC4gUmV2ZXJ0CgkgIHRoaXMgY29tbWl0IGFzIGl0IHJlbW92ZXMgdGhlIGNoZWNrIG9uIHRoZSBzcmNwYWQgYW5kIGNhbiBsZWF2ZSB0aGUgc3JjcGFkCgkgIHVubmVnb3RpYXRlZCAob3IgbmVnb3RpYXRlZCB3aXRoIHdyb25nIGNhcHMpCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDdkYzFlNWI0OTU4MGE4OWJmZWYyN2ZmMjc0NzZkNTFmYjNjZTJjMi4KCjIwMTAtMDUtMDYgMTc6MDI6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBjaGVjayB0d2ljZSBmb3IgY2hhbmdlZCBjYXBzIHBlciBwdXNoCgkgIGdzdF9wYWRfY2hhaW5fZGF0YV91bmNoZWNrZWQoKSBkb2VzIHRoZSBzYW1lIGNoZWNrIGFscmVhZHkuCgoyMDEwLTA1LTA2IDE2OjUxOjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVmbG93IHRvIHRydW5jYXRlIGNhcHMganVzdCBvbmNlCgkgIFdlIGdldCB3cml0YWJsZSBjYXBzIGZyb20gdGhlIGludGVyc2VjdGlvbiAodW5sZXNzIGl0IGZhaWxlZCkuIEFzIHdlIHRydW5jYXRlCgkgIHRob3NlIGFueXdheSwgd2UgZG9uJ3QgbmVlZCB0byBtYW51YWx5IGNvcHkgdGhlIGZpcnN0IHN0cnVjdHVyZS4KCjIwMTAtMDUtMDQgMTM6Mjk6MDIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogZml4IGdzdC1ydW4gd3JhcHBlciB0byB3b3JrIG9uIFdpbmRvd3MKCSAgRml4ZXMgIzYxNzYyNQoKMjAxMC0wNS0wMyAwMDoyNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGRvY3M6IGRvY3VtZW50IHRoYXQgZ3N0X2J5dGVfd3JpdGVyX3B1dF9zdHJpbmcqKCkgd3JpdGVzIHRoZSB0ZXJtaW5hdG9yIHRvbwoKMjAxMC0wNS0wNSAxMjowMTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogY2xhcmlmeSB0aGUgcHVsbF9yYW5nZSBmdW5jdGlvbnMKCSAgQ2xhcmlmeSB0aGUgZ3N0X3BhZF9wdWxsX3JhbmdlKCksIEdzdEJhc2VTcmM6OmNyZWF0ZSgpLCBnc3RfcGFkX2dldF9yYW5nZSgpCgkgIGFuZCBHc3RQYWRHZXRSYW5nZSBmdW5jdGlvbnMgYSBsaXR0bGUuCgkgIEZpeGVzICM2MTc3MzMKCjIwMTAtMDUtMDQgMTE6NDU6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTAtMDQtMzAgMTE6Mjc6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSByZWZmZWQgX2dldF9jYXBzKCkgdmVyc2lvbgoJICBXZSBkb24ndCBuZWVkIHRvIGhhdmUgYSB3cml0YWJsZSBjb3B5IHNvIHdlIGNhbiB1c2UgdGhlIF9yZWZmZWQKCSAgdmVyc2lvbiBpbnN0ZWFkLgoKMjAxMC0wNC0yOSAyMTo1NzoxNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIGdlbyBsb2NhdGlvbiBkaXJlY3Rpb24gdGFncwoJICBBZGRzIDMgbmV3IGdlbyBsb2NhdGlvbiB0YWdzIGludm9sdmluZyBkaXJlY3Rpb24gYW5kCgkgIG1vdmVtZW50IG9mIGNhcHR1cmUuIFRob3NlIGFyZToKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DQVBUVVJFX0RJUkVDVElPTgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX01PVkVNRU5UX0RJUkVDVElPTgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX01PVkVNRU5UX1NQRUVECgkgIEZpeGVzICM2MTcyMjMKCjIwMTAtMDQtMTYgMDY6NTc6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBHU1RfVEFHX0RFVklDRV9NQU5VRkFDVFVSRVIgYW5kIEdTVF9UQUdfREVWSUNFX01PREVMCgkgIEFkZHMgdGhvc2UgbmV3IHRhZ3MgdG8gZGVzY3JpYmUgdGhlIGRldmljZSBtYW51ZmFjdHVyZXIgYW5kCgkgIG1vZGVsIHVzZWQgdG8gY3JlYXRlIG1lZGlhcy4KCSAgQVBJOiBHU1RfVEFHX0RFVklDRV9NQU5VRkFDVFVSRVIKCSAgQVBJOiBHU1RfVEFHX0RFVklDRV9NT0RFTAoJICBGaXhlcyAjNjE1OTQxCgoyMDEwLTA1LTAyIDE5OjQzOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBwd2c6IHJlbW92ZSBjb25mdXNpbmcgbWV0YWRhdGEgZXhhbXBsZSB3aXRoIDAuOCBjb2RlCgkgIEZpeGVzICM1MzQzMTQuCgoyMDEwLTA1LTAyIDE5OjMwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgbWFudWFsOiBhZGQgbWluaW1hbCB0YWcgcmVhZGluZyBleGFtcGxlCgkgIFNob3VsZCBwcm9iYWJseSBwdXQgdGhhdCBpbnRvIHRlc3RzL2V4YW1wbGVzIGFuZCBmaWd1cmUgb3V0IGhvdyB0bwoJICBnZXQgaXQgaW5jbHVkZWQgYXV0b21hdGljYWxseSwgYnV0IGNhbid0IGJlIGJvdGhlcmVkIHJpZ2h0IG5vdy4KCjIwMTAtMDQtMzAgMTM6MTA6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byAyLjIwCgkgIFNlZSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTAtMDQtMjkgMjM6Mjk6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG9ubHkgd2FybiBpZiBtZXRhZGF0YSBpcyBub3Qgd3JpdGFibGUgd2hlbiBpdCBzaG91bGQgYmUsIGRvbid0IHJldHVybiBhcyB3ZWxsCgkgIE1ha2Ugc3VyZSB3ZSBleGVjdXRlIHRoZSBzYW1lIGNvZGUgcGF0aCBpbiBnaXQgdmVyc2lvbnMgYW5kIGluIHJlbGVhc2VzLAoJICBzbyBqdXN0IHdhcm4gd2hlbiBtZXRhZGF0YSBpc24ndCB3cml0YWJsZSB3aGVuIHdlIHdhbnQgaXQgdG8gYmUgaW5zdGVhZAoJICBvZiBiYWlsaW5nIG91dC4KCjIwMTAtMDQtMjkgMjM6MjY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWFrZSAnYWRkaW5nIGZsdXNoaW5nIHBhZCcgd2FybmluZyBtb3JlIHVzZWZ1bAoJICBUaGlzIGlzIGEgcHJldHR5IGNvbW1vbiBpc3N1ZSB3aXRoIGdob3N0IHBhZHMsIGxldCdzIG1ha2UKCSAgdGhlIHdhcm5pbmcgbW9yZSBoZWxwZnVsIGFuZCB0ZWxsIHBlb3BsZSB3aGF0IHRoZXkgbmVlZAoJICB0byBkbyB0byBmaXggaXQuCgoyMDEwLTA0LTI4IDE3OjE1OjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1wIG9wdGlvbiB0byBkaXNhYmxlIHBsYXkgaGFuZGxlci4KCSAgU2FtZSBsb2dpYyBhcyBmb3IgdGhlIGZhdWx0IGhhbmRsZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBzb21lIGRlYnVnL3RyYWNpbmcgdG9vbHMKCSAgdGhhdCBuZWVkIHRvIGdyYWIgU0lHVVNSMSBhbmQgU0lHVVNSMiB0aGVtIHNlbGYuCgoyMDEwLTA0LTE1IDEwOjM2OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXBsZW1lbnQgcGVyY2VudGFnZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcmllcwoJICBJZiB1cHN0cmVhbSBkb2VzIG5vdCBoYW5kbGUgdGhlbSwgdGhlbiBpbXBsZW1lbnQgdGhvc2Ugb3Vyc2VsZi4KCjIwMTAtMDQtMTQgMTc6NDc6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBnc3RfcGFkX3BlZXJfcXVlcnkgaW5zdGVhZCBvZiByZWludmVudGluZy4KCjIwMTAtMDQtMTQgMTc6NDY6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHF1ZXJpZXM6IGFkZCBtb3JlIGxvZ2dpbmcKCSAgTG9nIGh1bWFuIHJlYWRhYmxlIGZvcm1hdHMgYW5kIGxvZyBxdWVyeSByZXN1bHQuCgoyMDEwLTA0LTE5IDIwOjM1OjM2ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNhcHM6IERvIG5vdCBhbGxvdyBmaXhhdGluZyBlbXB0eSBjYXBzCgkgIFBhc3NpbmcgZW1wdHkgY2FwcyB0byBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgaXMgaW52YWxpZCwgYXMgZW1wdHkgY2FwcwoJICBjYW5ub3QgYmUgZml4YXRlZC4KCjIwMTAtMDQtMjYgMjE6NTI6MDcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IFVzZSBHX0dOVUNfV0FSTl9VTlVTRURfUkVTVUxUIGZvciBtYWtlX3dyaXRhYmxlKCkKCSAgUGVvcGxlIG9mdGVuIGNhbGwKCSAgZ3N0X2NhcHNfbWFrZV93cml0YWJsZSAoY2Fwcyk7CgkgIGluc3RlYWQgb2YKCSAgY2FwcyA9IGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgKGNhcHMpOwoJICBhbmQgY2F1c2UgYSBidWcuIFdhcm5pbmcgYWJvdXQgYW4gdW51c2VkIHJldHVybiB2YWx1ZSBoZWxwcyBoZXJlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjU0MSNjMiBmb3IgYW4gZXhhbXBsZS4KCjIwMTAtMDQtMjMgMDY6MjQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdDogVXNlIEdFcnJvciBib3hlZCB0eXBlIGZyb20gR09iamVjdCAyLjI1LjIgaW5zdGVhZCBvZiBvdXIgb3duIGlmIHBvc3NpYmxlCgoyMDEwLTA0LTI5IDE0OjUwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQuCgoyMDEwLTA0LTE1IDE3OjExOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIGV2ZW50cwoKPT09IHJlbGVhc2UgMC4xMC4yOSA9PT0KCjIwMTAtMDQtMjcgMjM6NDI6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI5CgoyMDEwLTA0LTI3IDIzOjQwOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wNC0yNyAwOTo0MjowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBhZGQgbW9yZSB0ZXN0cyBmb3IgY29udHJvbGxlcgoJICBUaGUgdGVzdHMgdmVyaWZ5IHRoYXQgYnVnICM2MTY4NDYgaXMgaW5kZWVkIGZpeGVkLgoKMjAxMC0wNC0yNiAxNTo0MzoxNyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfaXRlcgoJICBUaGUgbG9naWMgaW4gdGhhdCBmdW5jdGlvbiBpcyBicm9rZW4uIFZhcmlvdXMgTlVMTC1jaGVja2luZyBiYW5kYWlkcyBmb3IKCSAgZ3VhcmFudGVlZCBub24tTlVMTCB2YXJpYWJsZXMgZGlkbid0IGV2ZW4gaGVscCB0aGVyZS4KCSAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBmdW5jdGlvbiB0byBjaGVjayBpZiBhIHByZXZpb3VzIGl0ZW0gZXhpc3RzCgkgIGJlZm9yZSBmZXRjaGluZyBpdCBpbnN0ZWFkIG9mIGFmdGVyLiBUaGlzIG1ha2VzIGFsbCBvdGhlciB0ZXN0cwoJICB1bm5lY2Vzc2FyeS4KCSAgSW4gcGFydGljdWxhciwgaXQgbWFrZXMgdGhlIGNoZWNrIGZvciBhbiBlbXB0eSBsaXN0IHVubmVjZXNzYXJ5LCBiZWNhdXNlCgkgIGZvciBlbXB0eSBsaXN0cyB0aGUgb25seSBpdGVyIGlzIHRoZSBiZWdpbiBpdGVyIChhbmQgdGhlIGVuZCBpdGVyKSBhbmQKCSAgc28gdGhlIG5ldyBjaGVjayBjYXRjaGVzIHRoYXQgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjg0NgoKMjAxMC0wNC0yNSAyMToxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI4LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDQtMjAgMTc6MTc6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGRvYXA6IHVwZGF0ZSByZXBvc2l0b3J5IGluZm8gZnJvbSBjdnMtPmdpdCBhbmQgbWFpbnRhaW5lcnMKCjIwMTAtMDQtMjMgMTQ6Mzk6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmYzg1ODY3IHRvIDRkNjdiZDYKCjIwMTAtMDQtMTYgMjA6MDk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogQ29uc2lzdGVudGx5IHVzZSBNeUZpbHRlciBpbnN0ZWFkIG9mIHNvbWV0aW1lcyBFeGFtcGxlRmlsdGVyIGluIHRoZSBleGFtcGxlCgkgIEZpeGVzIGJ1ZyAjNjE1NTc5LgoKMjAxMC0wNC0xNiAxNDoyMjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGVudW1zIGZvciBjdXN0b20gZmxvdyByZXR1cm4gc3VjY2VzcyBhbmQgZXJyb3IgY29kZXMKCSAgVGhpcyB3YXkgcGVvcGxlIGNhbiBqdXN0ICNkZWZpbmUgdGhlaXIgb3duIGN1c3RvbSBmbG93IHJldHVybnMgdG8KCSAgb25lIG9mIHRoZXNlIHdpdGhvdXQgaGF2aW5nIHRoZSBjb21waWxlciAoZXNwLiBnY2MtNC41KSBjb21wbGFpbgoJICBhYm91dCBjb21wYXJpbmcgaW50ZWdlcnMgdG8gYW4gZW51bSBvciB0aGUgZW51bSBub3QgYmVpbmcgbGlzdGVkCgkgIEZpeGVzICM2MTU4ODAuCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1NfMQoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTXzIKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1JfMQoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUl8yCgoyMDEwLTA0LTE1IDIyOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBVc2UgY29ycmVjdCBzZXR0ZXIgZm9yIGRvdWJsZSBHVmFsdWVzCgoyMDEwLTA0LTE1IDExOjA4OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGRvYyBmaXhlcwoJICBBZGRzIG1pc3NpbmcgJzonIHRvIHRhZ3MgZG9jcwoKMjAxMC0wNC0xNSAxMTozODoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGJvZ3VzIHZhcmlhYmxlIHR5cGUKCSAgVGhlIHJlc3VsdCBvZiBnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20oKSBpcyBub3QgYSBHc3RJdGVyYXRvciAqLgoKMjAxMC0wNC0xNCAxMjoyMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI4LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDQtMTQgMTI6MTI6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNC0xNCAxMjo0Mzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbG9nIHdoYXQgc3RydWN0dXJlIHN0cmluZyB3ZSBmYWlsZWQgdG8gcGFyc2UKCjIwMTAtMDQtMTQgMTc6NTY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggcmVmY291bnQgd2hlbiByZW1vdmluZyBlbGVtZW50cyBkdXJpbmcgc3RhdGUgY2hhbmdlCgkgIFdoZW4gYW4gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYSBiaW4gYmVjYXVzZSBpdCBjYXVzZWQgYSBzdGF0ZSBjaGFuZ2UgZXJyb3IsCgkgIGRvbid0IHVucmVmIHRoZSBjaGlsZCB0d2ljZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMgZXJyb3IuCgkgIEZpeGVzICM2MTU3NTYKCjIwMTAtMDQtMTQgMTE6NTA6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IG1vcmUgTERGTEFHUyAtPiBMREFERCBmaXhlcwoKMjAxMC0wNC0xNCAxMTo0MDoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiAkKExJQk0pIGJlbG9uZ3MgaW50byBMSUJBREQgbm90IExERkxBR1MKCjIwMTAtMDQtMDggMDk6MTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiB3aGVuIGJ1aWxkaW5nIGV4ZWN1dGFibGVzLCBwdXQgbGlicyB0byBsaW5rIHRvIGludG8gTERBREQgaW5zdGVhZCBvZiBMREZMQUdTCgkgIFVzZSBmb29fTERBREQgaW5zdGVhZCBvZiBmb29fTERGTEFHUyB0byBzcGVjaWZ5IHRoZSBsaWJyYXJpZXMgdG8gbGluayB0by4KCSAgVGhpcyBzaG91bGQgbWFrZSBzdXJlIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBsaW5rZXIgaW4gdGhlIHJpZ2h0CgkgIG9yZGVyLiBTZWUgIzYxNTY5Ny4KCjIwMTAtMDQtMTQgMTE6MTk6MTQgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgLVdjYXN0LWFsaWduCgkgIEFwcGFyZW50bHkgZ2NjIHdhcm5zIHRoYXQgR3N0TWluaU9iamVjdCBpcyBub3QgY2FzdGFibGUgdG8KCSAgR3N0RXZlbnQvTWVzc2FnZS9CdWZmZXIgZHVlIHRvIHRoZW0gY29udGFpbmluZyA2NGJpdCB2YXJpYWJsZXMsIGV2ZW4KCSAgdGhvdWdoIEFSTSBoYWNrZXJzIGNsYWltIHRoYXQgdGhvc2Ugb25seSBuZWVkIDRieXRlIGFsaWdubWVudC4gQW5kIGFzCgkgIGxvbmcgYXMgZ2NjIGJlaGF2ZXMgdGhhdCB3YXksIHRoaXMgd2FybmluZyBpcyBub3QgdmVyeSB1c2VmdWwuCgkgIFNvIHdlJ2xsIHJlbW92ZSB0aGUgd2FybmluZyB1bnRpbCB0aGlzIHByb2JsZW0gaXMgZml4ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTU2OTgKCjIwMTAtMDQtMTMgMTA6NDg6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlbW92ZSBzdXBlcmZsdW91cyByZXR1cm4gc3RhdGVtZW50cyBhdCBlbmQgb2YgQUNfVFJZX3tMSU5LLENPTVBJTEV9IGJsb2NrcwoJICBTcG90dGVkIGJ5IEpGIE1lcnRlbnMuIFNlZSAjNjE0NzY3LgoKMjAxMC0wNC0wNSAxMzo0NjoyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQ2hhbmdlIGNoZWNrIGZvciB1aW50MTI4X3QKCSAgQ2hlY2sgZm9yIGFiaWxpdHkgdG8gZGl2aWRlIHVpbnQxMjhfdCB2YWx1ZXMsIHNpbmNlIHRoYXQgd2hhdAoJICB3ZSBhY3R1YWxseSB1c2UgaXQgZm9yIChpbiBnc3R1dGlscy5jKS4gIFRoZSBleGlzdGVuY2Ugb2YgYQoJICB1aW50MTI4X3QgdHlwZSBkb2Vzbid0IG1lYW4gdGhlIGNvbXBpbGVyIGNhbiBhY3R1YWxseSBnZW5lcmF0ZQoJICBjb2RlIGZvciBpdC4gIEFsc28gbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGxpbmsgdGhlCgkgIHJlc3VsdCBzdWNjZXNzZnVsbHkuCgkgIEZpeGVzIGJ1ZyAjNjE0NzY3LgoKMjAxMC0wNC0xMiAxNToxMzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogbWlub3IgbW92aW5nLXBsdWdpbnMgYWRkaXRpb24KCjIwMTAtMDQtMDkgMTU6NDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogbWFrZSAtcSBiZSBtb3JlIHF1aWV0CgkgIENvbnZlcnQgc29tZSBnX3ByaW50IGludG8gUFJJTlQgc28gdGhhdCB0aGV5IGFyZSBub3QgcHJpbnRlZCB3aGVuIHRoZSAtcSBvcHRpb24KCSAgaXMgc2VsZWN0ZWQuCgoyMDEwLTA0LTA5IDE1OjE5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTAtMDQtMDkgMTM6MTI6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZmRzcmM6IGFsbG93IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZXMgb24gdGhlIHVyaQoJICBQYXJzZSBhIHNpemU9dmFsdWUgZnJvbSB0aGUgcXVlcnkgc3RyaW5nIHRvIHNwZWNpZnkgYSBzaXplLiBUaGlzIGlzIGludGVyZXN0aW5nCgkgIHdoZW4gcmVhZGluZyBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQgYWN0dWFsbHkgaGFzIGEgc2l6ZSAoYW5kIGlzIG5vdAoJICBzdGF0LWFibGUsIHN1Y2ggYXMgdGhlIHNvY2tldCBvZiBhbiBodHRwIGNvbm5lY3Rpb24pCgoyMDEwLTA0LTA5IDEyOjM1OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB3aGVuIEVPUyB3ZSBrbm93IHRoZSBkdXJhdGlvbgoJICBXaGVuIHdlIGFyZSBFT1MsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW4gdXBzdHJlYW0gcXVlcnkgZm9yIHRoZSBkdXJhdGlvbiBpbiBieXRlcwoJICBiZWNhdXNlIHdlIGFscmVhZHkga25vdyBpdCBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IHdyaXR0ZW4gYnl0ZS4KCjIwMTAtMDQtMDkgMTM6MDg6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBJbml0aWFsaXplIHR5cGVmaW5kL2VsZW1lbnQgZmFjdG9yeSByZWdpc3RyeSBjaHVua3Mgd2l0aCB6ZXJvZXMKCSAgVGhpcyBtYWtlcyB2YWxncmluZCBzdG9wIGNvbXBsYWluaW5nIGFib3V0IHJlYWRpbmcgdW5pdGlhbGl6YXRlZCBtZW1vcnksCgkgIHdoaWNoIGlzIG5vdCBpbml0aWFsaXplZCBiZWNhdXNlIGl0J3MganVzdCBjb21waWxlci1hZGRlZCBzdHJ1Y3QgcGFkZGluZy4uLgoKMjAxMC0wNC0wOSAxMToxOTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ2NmE4YzMgdG8gZmM4NTg2NwoKMjAxMC0wNC0wOCAxMDoxMDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBhZGQgbmV3IC5zdmcgZmlsZSBpbiBkb2NzCgoyMDEwLTA0LTA4IDEwOjQ3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiB1c2UgaW5mb3JtYWxmaWd1cmUgdGFnIHRvIG5vdCBzeW50YXggaGlnaGxpZ2h0IHRoZSBjb250ZW50CgoyMDEwLTAzLTI1IDEwOjM1OjEzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0LXVuaXZlcnNlLmRvdDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGNvbmNlcHQgbWFwCgkgIEFkZCBhIGdyYXBodml6IGRvdCBmaWxlLiBBZGQgcnVsZXMgdG8gcmVuZGVyIGl0IHRvIHN2ZyBhbmQgaW5jbHVkZSBpbiBkb2NzLgoJICBOb2RlcyBhcmUgY2xpY2thYmxlLiBJdCBpcyBhbiBhdHRlbXB0IHRvIHNob3cgaG93IHRoaW5ncyBmaXQgdG9nZXRoZXIuCgoyMDEwLTA0LTA3IDE5OjMwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IGFkZCBhIGZldyBjb2RlIHNuaXBwZXRzIHRoYXQgc2hvdyBob3cgdG8gdXNlIGdzdF9tZXNzYWdlX3BhcnNlXyooKS4KCjIwMTAtMDQtMDcgMTk6MDU6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYnVtcCBhdXRvY29uZiByZXF1aXJlbWVudCB0byAyLjYwIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24ubTQKCSAgUmVxdWlyZSBhdXRvY29uZiAyLjYwICh3aGljaCB3YXMgcmVsZWFzZWQgaW4gSnVuZSAyMDA2KS4KCSAgRml4ZXMgIzYwMDcxOC4KCjIwMTAtMDQtMDcgMTI6Mjk6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIEZpeCAnZ3JhbW1hci50YWIuYzo4MTU6Njogd2FybmluZzogIllZRU5BQkxFX05MUyIgaXMgbm90IGRlZmluZWQnCgkgIGNvbXBpbGVyIHdhcm5pbmcgYW5kIHRoZSBzYW1lIGZvciBZWUxUWVBFX0lTX1RSSVZJQUwuIFRoZSB0d28KCSAgdHJhbnNsYXRlZCBzdHJpbmdzIGFyZW4ndCBwYXJ0aWN1bGFybHkgaGVscGZ1bCwgc28ganVzdCBkZWZpbmUKCSAgWVlFTkFCTEVfTkxTIHRvIDAuCgoyMDEwLTA0LTA3IDEyOjI0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBGaXggJ2dyYW1tYXIueTo2Njg6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDigJhnX2ZyZWXigJkgZGlzY2FyZHMgcXVhbGlmaWVycwoJICBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUnIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA0LTA3IDE2OjA1OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogYWRkIFNpbmNlOiBtYXJrZXJzCgoyMDEwLTA0LTA3IDA5OjMxOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHRlc3RzOiBnc3RzeXN0ZW1jbG9jazogZG9uJ3QgbGVhayB0aGUgc3lzdGVtIGNsb2NrCgoyMDEwLTA0LTA1IDAwOjAxOjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBvdXQgb2Ygc291cmNlZGlyIGJ1aWxkIGZvciBjaGVjawoJICBNb3ZlIHRoZSBpbnRlcm5hbCBoZWFkZXIgdG8gbm9kaXN0IChhcyB3ZSBjb3B5IGl0IGFyb3VuZCBhbnl3YXkpLgoJICBVc2UgYnVpbGRkaXIgaW4gcGF0dGVybiBzdWJzdGl0dXRpb24gZm9yIGl0LgoJICBGaXhlcyAjNjE0ODMuCgoyMDEwLTA0LTA2IDE3OjQ2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zCgoyMDEwLTAyLTIzIDA5OjE2OjU1ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIEtlZXAgdHJhY2sgb2YgcGVuZGluZyBuZXdzZWdtZW50IGluIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIHRvIGF2b2lkIHB1c2hpbmcgbmV3c2VnbWVudCB1cGRhdGUgYmVmb3JlIG5ld3NlZ21lbnQuCgoyMDEwLTA0LTA0IDE1OjIxOjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0BlbnNvbmljLWRlc2t0b3AubG9jYWxkb21haW4+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogaW1wcm92ZSBldmVudCBkb2NzCgkgIFJlcGhyYXNlIGZpcnN0IHBhcmFncmFwaCBvZiBzZWN0aW9uIGRvY3MuIEFkZCBkZXRhaWwgdG8gZW9zIGV2ZW50IGRvY3MuCgoyMDEwLTAzLTI5IDA4OjQzOjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogQWRkIC0tbGVhdmUtcHJlcHJvY2Vzc29yLXNwYWNlIGZvciBpbmRlbnQgMi4yLjExCgkgIEl0IHdhcyBwcmV2aW91c2x5IGJyb2tlbiwgd2hpY2ggaXMgd2h5IHdlIG5ldmVyIG5lZWRlZCBpdC4gVGhpcyBrZWVwcyBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5IHdpdGggaW5kZW50IDw9IDIuMi4xMQoKMjAxMC0wMy0zMSAxMDo0MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogcG9pbnQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgdG8gLmxhIGZpbGVzCgkgIFBvaW50IGctaXItc2Nhbm5lciB0byB0aGUgLmxhIGZpbGUgb2Ygb3VyIGxpYnJhcnksIHdoaWNoIGhvcGVmdWxseQoJICBtYWtlcyBpdCBmaW5kIHRoZSByaWdodCBkZXBlbmRlbmNpZXMgaW4gYWxsIGNhc2VzIChpZS4gb3VyIGxvY2FsbHkKCSAgYnVpbHQgbGliZ3N0cmVhbWVyIGFuZCBub3QgdGhlIHN5c3RlbS1pbnN0YWxsZWQgb25lKS4gVGhpcyBpcyBhbHNvCgkgIGhvdyBpdCdzIGRvbmUgaW4gR3RrKyBhbmQgaG93IGl0J3MgZG9jdW1lbnRlZCBpbiB0aGUgd2lraSwgc2VlCgkgIGh0dHA6Ly9saXZlLmdub21lLm9yZy9HT2JqZWN0SW50cm9zcGVjdGlvbi9BdXRvdG9vbHNJbnRlZ3JhdGlvbgoJICBCYXNlZCBvbiBwYXRjaGVzIGJ5IFZpbmNlbnQgVW50eiBhbmQgQWxhbiBLbm93bGVzLgoJICBGaXhlcyAjNjAzNzEwLgoKMjAxMC0wNC0wMiAwMToxNjoxNiArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXBAdGVjbm9jb2RlLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBVc2UgR19HTlVDX0NPTlNUIGluc3RlYWQgb2YgR19HTlVDX1BVUkUgZm9yIGNvbnZlcnNpb24gZnVuY3Rpb25zCgkgIEZpeGVzIGJ1ZyAjNjE0NjI5LgoKMjAxMC0wNC0wMSAxMzoxOTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICB0ZXN0czogRG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBuZXdzZWdtZW50IGV2ZW50CgoyMDEwLTA0LTAxIDEyOjM0OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBjb21tb246IFVwZGF0ZSB0byBsYXRlc3QgcmV2aXNpb24gZm9yIG5ldyBzdXBwcmVzc2lvbnMKCjIwMTAtMDMtMzEgMjI6MDc6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIHVwZGF0aW5nIHBsYXliYWNrIHJhdGUKCSAgVGVzdHMgaWYgYSBzZWVrIHdpdGggYm90aCBwb3NpdGlvbnMgYmVpbmcgR1NUX1NFRUtfVFlQRV9OT05FIGlzIGhhbmRsZWQuCgoyMDEwLTAzLTMxIDE2OjU1OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBjb3B5IGFuZCBjb252IGZ1bmN0aW9uIHRvIGJ1ZmZlcjIgZHJhZnQKCjIwMTAtMDMtMzEgMTA6NTQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcjIgZHJhZnQKCjIwMTAtMDMtMzEgMTE6MjY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogaW1wcm92ZSBjb21tdW5pY2F0aW9uIHBpY3R1cmUgYW5kIHNlY3Rpb24KCSAgSW5kaWNhdGUgdGhhdCBvbmx5IG1lc3NhZ2VzIGdvIHZpYSBidXMuIEFsc28gYWRkIHF1ZXJpZXMgYmV0d2VlbiBlbGVtZW50cy4KCjIwMTAtMDMtMzEgMTA6MjQ6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGV2ZW50OiBVc2UgY29ycmVjdCB0eXBlIGZvciB0aGUgbWVzc2FnZSBwYXJhbWV0ZXIgaW4gZ3N0X2V2ZW50X3tuZXcscGFyc2V9X3NpbmtfbWVzc2FnZQoJICBUaGUgc3RydWN0IHdvcmthcm91bmQgd2FzIG9ubHkgbmVjZXNzYXJ5IGluIGdzdGV2ZW50LmgsIGdzdHV0aWxzLmgga25vd3MgYWJvdXQgR3N0TWVzc2FnZQoKMjAxMC0wMy0zMSAwOTo1Njo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBhZGQgY29tbXVuaWNhdGlvbiBvdmVydmlldyB0byBkb2NzCgkgIEFkZCBhIHNlY3Rpb24gdG8gdGhlIGJhc2ljcyB0aGF0IHNob3cgYnVmZmVycywgZXZlbnRzLCBtZXNzYWdlcyBhbmQgcXVlcmllcwoJICB0b2dldGhlciBhbmQgZGVzY3JpYmUgdGhlIGJhc2ljcy4KCjIwMTAtMDMtMzAgMTU6NTY6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcGtnY29uZmlnOiBhZGQgZ2lyZGlyIGFuZCB0eXBlbGliZGlyIHZhcmlhYmxlcyB0byAucGMgZmlsZXMKCSAgU28gdGhhdCB0aGUgLWJhc2UgbGlicyBjYW4gZmlndXJlIG91dCB0aGUgcmlnaHQgaW5jbHVkZSBwYXRocyBmb3IgdGhlCgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0b29scyBldmVuIGlmIGNvcmUgZ290IGluc3RhbGxlZCBpbnRvIGEgcHJlZml4CgkgIHRoYXQncyBub3QgdGhlIHNhbWUgcHJlZml4IGFzIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpcyBpbnN0YWxsZWQgaW4KCSAgb3IgaXQncyBiZWluZyBidWlsZCBpbiBhbiB1bmluc3RhbGxlZCBnc3RyZWFtZXIgc2V0dXAuCgoyMDEwLTAzLTMwIDE1OjIyOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZwoKMjAxMC0wMy0zMCAxNToyMDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY2hlY2stY2hlY2tzLm00OgoJKiBjb25maWd1cmUuYWM6CgkqIG00Ly5naXRpZ25vcmU6CgkqIG00L01ha2VmaWxlLmFtOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGJ1aWxkOiBtYWtlIGF1dG90b29scyBwdXQgaXRzIG00IGZpbGVzIGludG8gbTQvIGluc3RlYWQgb2YgY29tbW9uL200LwoJICBUaGlzIGlzIGhvdyB3ZSBkbyBpdCBpbiB0aGUgb3RoZXIgbW9kdWxlcywgYW5kIGdldHMgcmlkIG9mIHRoZSBhbm5veWluZwoJICBkaXJ0eSBzdGF0dXMgZm9yIGNvbW1vbiB3aGVuIGRvaW5nIGdpdCBzdGF0dXMgKGF0IGxlYXN0IG9uY2UgeW91IGNsZWFuCgkgIG91dCB0aGUgb2xkIGZpbGVzIGZyb20gdGhlcmUpLgoKMjAxMC0wMy0zMCAxMjozMzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBidWlsZDogYnVpbGQgZXhhbXBsZXMgc3ViZGlyZWN0b3JpZXMgaW4gcGFyYWxsZWwgaWYgcmVxdWVzdGVkCgoyMDEwLTAzLTI4IDIwOjU1OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZWZhY3RvciBjYXBzIHN1Z2dlc3Rpb24gb24gcGFkX2FsbG9jCgkgIFJlZmFjdG9yIHRoZSBoYW5kbGluZyBvZiBzaW5rIHN1Z2dlc3Rpb24gY2FwcyB2YXJpYWJsZQoJICBzbyB0aGF0IGl0IGFsd2F5cyBoYXMgYSByZWYgdG8gdGhlIGNhcHMgaXQgcG9pbnRzIHRvLgoJICBNYWtlcyB0aGUgY29kZSBjbGVhcmVyLgoKMjAxMC0wMy0yOSAxNjozNDowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogYWRkIGEgY29tbWVudCBleHBsYWluaW5nIHRoZSByZWFzb24gZm9yIHVzaW5nIGZ1Y250aW9uIHByb3RvcyBoZXJlLgoKMjAxMC0wMy0yOSAxNjoxMzo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogYWx3YXlzIGRlZmluZSBkdW1teSBkZWJ1ZyBjYXRlZ29yeSBhcyBhIGZ1bmN0aW9uIHByb3RvdHlwZQoJICBJdCBkb2VzIG5vdCBzZWVtIHRvIG1ha2Ugc2Vuc2UgdG8gZGVmaW5lIHRoaXMgYXMgYSBmdW5jdGlvbiBvbmx5IGlmIHdlIGhhdmUKCSAgdmFyYXJncyBtYWNyb3MuCgoyMDEwLTAzLTI4IDE1OjEwOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogZml4IHJlZGVjbGFyYXRpb24gZXJvcnMgd2hlbiBidWlsZGluZyB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgkgIEdpdmUgZHVtbXkgc3ltYm9scyBhIHVuaXFlIG5hbWUuCgoyMDEwLTAzLTI4IDE0OjQ5OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogbW92ZSBzb21lIHByb3RvdHlwZXMgb3V0IG9mICNpZm5kZWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIE1vdmUgdGhlIHByb3RvdHlwZXMgdXAgdG9nZXRoZXIuIFdlIG9ubHkgZGVmaW5lIHRoZSBtYWNyb3MgZGlmZmVyZW50bHkuCgkgIEZpeGVzIGJ1ZyAjNjE0MTY3IG1vc3RseS4KCjIwMTAtMDMtMjkgMTY6MDU6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IHJlYWRkIHRoZSB1c2Ugb2YgR3N0RGVidWdGdW5jUHRyIHR5cGVkZWYgYW5kIHRlbGwgd2h5CgkgIFRoaXMgcmV2ZXJ0cyB0aGUgcmVsYXRlZCBjaGFuZ2VzIGZyb20gM2Y0OTU0ZTQyZDA0NDBhN2E1OThhOTA4MzI1YzQ1ZWE5ZGIwNzZlNAoJICBhbmQgZmZiMGE0ZTE5MDVhODczMTkxZjhjODAyMzQ2MjYxZThjNDQzNTA2NS4KCjIwMTAtMDMtMjkgMTA6MjI6NDMgKzAxMDAgIEFsYW4gS25vd2xlcyA8YWxhbkBha2JraG9tZS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgbmV0OiBmaXggdHlwbyBpbiBuZXQgY2xpZW50IGNsb2NrIHN0cnVjdHVyZQoJICBJdCdzIHNvY2thZGRyX2luLCBub3Qgc29ja2FkZHJfaWQuCgoyMDEwLTAzLTI2IDE3OjEyOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogYWRkIGNydWZ0IGFsZXJ0IGZvciBjb21tb24vc2hhdmUqCgoyMDEwLTAzLTI4IDIxOjAyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEZpeCBidWlsZCBhdCBsZWFzdCB1bnRpbCB0aGUgY29ycmVjdCBmaXggaXMgZm91bmQKCSAgU2VlIGJ1ZyAjNjE0MTY3LgoKMjAxMC0wMy0yOCAxOToxMzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogTWFrZSBzdHJ1Y3R1cmUgYWJicmV2aWF0aW9ucyBhcnJheSBvbmUtdGltZSBpbml0aWFsaXphdGlvbiB0aHJlYWRzYWZlCgoyMDEwLTAzLTI4IDE4OjA1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIEZJWE1FIDAuMTEgZm9yIHVzaW5nIEdTbGljZSBmb3IgYWxsb2NhdGlvbgoKMjAxMC0wMy0yOCAxODowNTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIGdzdDogVXNlIEdTbGljZSBpbnN0ZWFkIG9mIG5vcm1hbCBnX21hbGxvYyBpbiBtb3JlIHBsYWNlcwoKMjAxMC0wMy0yOCAxMzoxNDowNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IG1vcmUgc29tZSBwcm90b3R5cGVzIG91dCBpZiAjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBUaGUgYnVpbGQgd2FzIGZhaWxpbmcgYmVjYXN1ZSBvZiBhIG5ldyB3YXJuaW5nLiBUaGVyZSBhcmUgc3RpbGwgZmFpbHVyZXMKCSAgKHRyYWNrZWQgdmlhIGJ1ZyAjNjE0MTY3KS4KCjIwMTAtMDMtMjUgMjA6MDQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3bHktYWRkZWQgc3RyaW5ncwoKMjAxMC0wMy0yNSAxOTo1NjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBmaXggaW50ZXJtaXR0ZW50IG1ha2UgZGlzdGNoZWNrIGZhaWx1cmVzCgkgIFVzZSAuTk9UUEFSQUxMRUwgd2hlbiBidWlsZGluZyBkb2NzLiBUaGlzIGF2b2lkcyBpbnRlcm1pdHRlbnQKCSAgbWFrZSBkaXN0Y2hlY2sgZmFpbHVyZXMgbGlrZSAnY3A6IGNhbm5vdCBjcmVhdGUgcmVndWxhciBmaWxlCgkgIGBidWlsZC9pbWFnZS5lbnRpdGllcyc6IEZpbGUgZXhpc3RzJyB3aGVuIHVzaW5nIC1qTi4KCSAgRml4ZXMgIzU5MDcxOC4KCjIwMTAtMDMtMjUgMTg6NTc6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgRklYTUUgMC4xMSB0byByZW1vdmUgR3N0RWxlbWVudERldGFpbHMgZnJvbSB0aGUgcHVibGljIEFQSQoJICBJdCdzIG5vdCBuZWNlc3NhcnkgYW55bW9yZSB0byBleHBvc2UgdGhpcyBhcyBwdWJsaWMgQVBJIGFuZCB0aGlzIGFsbG93cwoJICBlYXNpZXIgZXh0ZW5zaW9uIG9mIHRoZSBlbGVtZW50IGRldGFpbHMgYnkgbmV3IGZpZWxkcy4KCjIwMTAtMDMtMjUgMTg6NDM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGhhbmRsZSB3cml0ZSBlcnJvcnMKCSAgSGFuZGxlIHdyaXRlIGVycm9ycyB0byB0aGUgdGVtcG9yYXJ5IGRvd25sb2FkIGZpbGUgYW5kIHBvc3QgZXJyb3JzIHdoZW4KCSAgc29tZXRoaW5nIHdlbnQgd3JvbmcuCgoyMDEwLTAzLTI1IDE4OjEzOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgZWxlbWVudCBxdWVyeSBmdW5jdGlvbgoJICBBZGQgYW4gZWxlbWVudCBxdWVyeSBmdW5jdGlvbiB0aGF0IGlzIGEgbGl0dGxlIG1vcmUgZWZmaWNpZW50IHRoYW4gdGhlIGdlbmVyaWMKCSAgZGVmYXVsdCBxdWVyeSBoYW5kbGVyLgoKMjAxMC0wMy0yNSAxODoxMjowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCSAgTWVudGlvbiB0aGF0IGEgRFVSQVRJT04gbWVzc2FnZSBkb2VzIG5vdCBtZWFuIHRoYXQgb25lIGNhbiBzYWZlbHkgcXVlcnkgdGhlCgkgIGR1cmF0aW9uIG9uIGEgYmluLCB0aGF0IG9ubHkgd29ya3Mgd2hlbiB0aGUgYmluIGlzIHByZXJvbGxlZC4KCjIwMTAtMDMtMjUgMTg6MDU6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSBmaXhlZCBGSVhNRQoKMjAxMC0wMy0yNSAxNzozNjo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRkIHRoZSBidWZmZXJpbmcgcGVyY2VudCBpbiBCVUZGRVJJTkcgcXVlcnkKCjIwMTAtMDMtMjUgMTc6MjE6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGltcHJvdmUgYnVmZmVyIGxldmVsIG1lYXN1cmVtZW50IGluIGRvd25sb2FkIG1vZGUKCSAgS2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBidWZmZXIgbGV2ZWwgaW4gdGhlIGN1cnJlbnQgcmFuZ2UgaW4gZG93bmxvYWQgbW9kZSBzbwoJICB0aGF0IHdlIHBvc3QgdGhlIGNvcnJlY3QgYnVmZmVyaW5nIG1lc3NhZ2VzLgoKMjAxMC0wMy0yNSAxNTo1NDoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGRvbid0IHVzZSBmYW5jeSBzaGVsbCBmZWF0dXJlcyB3aGVuIGludm9raW5nIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIEl0J3MgUE9TSVgsIGJ1dCB0Y3NoIGRvZXNuJ3Qgc2VlbSB0byBzdXBwb3J0IGl0LgoKMjAxMC0wMy0yNSAxMzo0NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGZpeCBQS0dfQ09ORklHX1BBVEggdXNlZCB3aGVuIGNhbGxpbmcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgT3VyIG93biBwa2djb25maWcgZGlyZWN0b3J5IHNob3VsZCBjb21lIGZpcnN0LCBzbyB0aGF0IHBrZy1jb25maWcgdXNlcwoJICB0aGUgaW4tdHJlZSBsaWJnc3RyZWFtZXIgYW5kIG5vdCBzb21lIGV4dGVybmFsIG9uZSB3aGVuIC0tcGtnPWdzdHJlYW1lci0wLjEwCgkgIGlzIHBhc3NlZCB0byBnLWlyLXNjYW5uZXIuCgkgIFNlZSAjNjAzNzEwLgoKMjAxMC0wMy0yNSAxMDoyNzowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBHc3RBZGFwdGVyOiBhZGQgYSB1bmNoZWNrZWQgdmFyaWFudCBvZiBmbHVzaCBmb3IgaW50ZXJuYWwgdXNhZ2UKCSAgVHJpbXMgb2ZmIDEwLTIwJSBjcHUgdGltZSB3aGVuIHVzaW5nIGdzdF9hZGFwdGVyX3Rha2VbX2J1ZmZlcl0KCjIwMTAtMDMtMTkgMTU6MTA6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkIG5ldyBfVVNFUl9SQVRJTkcgdGFnCgkgIEFkZHMgYSBuZXcgdGFnIGZvciB1c2VyIGZhdm9yaXRlIG1lZGlhIHJhdGluZy4KCSAgVXNlciByYXRpbmcgaW5mb3JtcyBob3cgbXVjaCAoZnJvbSAwIHRvIDEwMCkgYSB1c2VyCgkgICdsaWtlcycgYSBtZWRpYS4KCSAgSGF2aW5nIGFuIHBlcmNlbnQgdWludCByYW5nZSBmb3IgdGhpcyBpcyBlYXN5IHRvIG1hcCBpbnRvIG90aGVyIHNjYWxlcywKCSAgbGlrZSBzb21lIHBsYXllcnMgdGhhdCBhbGxvdyB1c2VycyB0byBhdHRyaWJ1dGUgJ3N0YXJzJyB0byBpdHMKCSAgbWVkaWEuCgkgIEFQSTogR1NUX1RBR19VU0VSX1JBVElORwoJICBGaXhlcyAjNTIwNjk3CgoyMDEwLTAzLTI0IDE5OjAyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgbW9yZSBpbmZvIGluIHRoZSBidWZmZXJpbmcgcXVlcnkKCSAgQWRkIHRoZSBlc3RpbWF0ZWQgZG93bmxvYWQgdGltZSBhbmQgZXN0aW1hdGVkIHRpbWUgbGVmdCB0byB0aGUgYnVmZmVyaW5nIHF1ZXJ5CgkgIHJlc3VsdHMgYWxvbmcgd2l0aCB0aGUgZXN0aW1hdGVkIGRvd25sb2FkIGFuZCBwbGF5YmFjayBzcGVlZC4KCjIwMTAtMDMtMjQgMTg6MTg6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGltcGxlbWVudCBmbHVzaGluZyBpbiBkb3dubG9hZCBidWZmZXJpbmcKCSAgTWFpbnRhaW4gYSBzZXBhcmF0ZSB2YXJpYWJsZSB0byBjb250cm9sIHNyYyBhbmQgc2luayBmbG93cmV0dXJuIHZhbHVlcyBzbyB0aGF0CgkgIHdlIGNhbiB1bmxvY2sgdGhlIHNyYyBwYXJ0IHdpdGhvdXQgc2h1dHRpbmcgZG93biB0aGUgc2luayBwYXJ0LgoJICBBZGQgZmx1c2hpbmcgZm9yIHVwc3RyZWFtIHB1bGwgYmFzZWQgZWxlbWVudHMgdGhhdCB1bmJsb2NrcyBvdXIgZ2V0cmFuZ2UKCSAgZnVuY3Rpb24uIFRoaXMgaW1wbGVtZW50cyBzZWVraW5nIHdoZW4gYmxvY2tpbmcgZm9yIG1vcmUgZGF0YS4KCSAgQWRkIHNvbWUgYXJiaXRyYXJ5IHRocmVzaG9sZCBiZWZvcmUgYXR0ZW1wdGluZyBhIHNlZWsuIEFkZCBhIEZJWE1FIGZvciB0aGlzCgkgIGJlY2F1c2Ugd2UgbmVlZCB0byBmaW5kIGEgc2Vuc2libGUgdGhyZXNob2xkIGJhc2VkIG9uIHRoZSBpbnB1dCByYXRlLgoKMjAxMC0wMy0yNCAxODo1MDowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTVjZDUxNCB0byBjMWQwN2RkCgoyMDEwLTAzLTI0IDE3OjMyOjU0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSB1bnVzZWQgY29kZQoJICBPUFRfQ0ZMQUdTIHdhcyBuZXZlciBBQ19TVUJTVCgpJ2VkIHNvIGl0IHdhc24ndCB1c2VkLiBBbmQgdGhlIGxhc3QgdGltZQoJICBpdCB3YXMgdG91Y2hlZCB3YXMgaW4gMjAwNS4KCjIwMTAtMDMtMjQgMTU6NDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBidWlsZDogZml4IG1ha2UgZGlzdGNoZWNrCgkgIFRoZSBjaGFuZ2UgZnJvbSBHU1RfQUxMX0NGTEFHUyB0byBHU1RfT1BUSU9OX0NGTEFHUyBkcm9wcGVkIHRoZSBpbmNsdWRlcywKCSAgcHV0dGluZyB0aGVtIGJhY2sgZml4ZXMgbWFrZSBkaXN0Y2hlY2suCgoyMDEwLTAzLTI0IDE1OjE1OjIzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEZpeCB0ZXN0cyBhZnRlciBzZXRfZWxlbWVudF9kZXRhaWxzKCkgZGVwcmVjYXRpb24KCjIwMTAtMDMtMjQgMTM6MzM6NTggKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZTogRml4IGFuZCByZXN0cnVjdHVyZSBsb2dpYwoKMjAxMC0wMy0xOSAyMjozNjowNyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRGVwcmVjYXRlZCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscygpCgkgIFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKSBpbnN0ZWFkLiBJZiB5b3Ugd2FudCB0bwoJICBjb252ZXJ0IGF1dG9tYXRpY2FsbHksIGhlcmUncyBhIHNjcmlwdDoKCSAgZm9yIGZpbGUgaW4gYGdpdCBncmVwIC1sIEdzdEVsZW1lbnREZXRhaWxzYDsgZG8KCSAgc2VkIC1pIC1uIC1yICcKCSAgMWgKCSAgMSFICgkgICQgewoJICBnCgkgIHMvKChcL1wqW15cbl0qXCpcLyk/XG4pKlteXG5dKkdzdEVsZW1lbnREZXRhaWxzIC4qID1ccypHU1RfRUxFTUVOVF9ERVRBSUxTXHMqXCgoXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqKFwiW15cIl0qXCJccyopKilcKTtcbiooLiopZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgXCgoW14sXSopLFxzKlteKV0qXCkvXG5cblw1Z3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIChcNiwgXDMpLwoJICBzLygoXC9cKlteXG5dKlwqXC8pP1xuKSpbXlxuXSpHc3RFbGVtZW50RGV0YWlscyAuKiA9XHMqXHtccyooXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqKFwiW15cIl0qXCJccyopKilcfTtcbiooLiopZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgXCgoW14sXSopLFxzKlteKV0qXCkvXG5cblw1Z3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIChcNiwgXDMpLwoJICBwCgkgIH0nICRmaWxlCgkgIH4vZ3N0L2dzdHJlYW1lci90b29scy9nc3QtaW5kZW50ICRmaWxlCgkgIGRvbmUKCjIwMTAtMDMtMjQgMTA6NTc6MDggKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDMtMjMgMTk6MjU6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiByZW1vdmUgdW51c2VkIENIRUNLX0NGTEFHUyBhbmQgQ0hFQ0tfTElCUyBmcm9tIE1ha2VmaWxlLmFtCgoyMDEwLTAzLTIzIDE5OjIzOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBtYXBwaW5nIGZvciAodWludCkgdG8gYWxsb3cgZGVzZXJpYWxpc2F0aW9uIG9mIHVuc2lnbmVkIGludGVnZXJzCgkgIFVuc2lnbmVkIGludHMgYXJlIHVzZWQgaW4gdGFnbGlzdHMsIHdvdWxkIGJlIG5pY2UgdG8gYmUgYWJsZSB0bwoJICBkZXNlcmlhbGlzZSB0aGVtLCBlc3AuIGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgdGFnaW5qZWN0IEFQSS4KCjIwMTAtMDMtMjMgMTk6MjU6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGltcGxlbWVudCBzZWVraW5nIGluIGRvd25sb2FkIG1vZGUKCSAgV2hlbiBpbiBkb3dubG9hZCBtb2RlIGFuZCB0aGUgcmVxdWVzdGVkIG9mZnNldCBpcyB0b28gZmFyIGF3YXksIGF0dGVtcHQgdG8gZG8gYQoJICBzZWVrIHJlcXVlc3QgdG8gZmV0Y2ggdGhlIGRhdGEuCgkgIEtlZXAgdHJhY2sgb2YgYWxsIGRvd25sb2FkZWQgcGFydHMgYW5kIG1lcmdlIHJhbmdlcyB3aGVuIG5lZWRlZC4KCSAgRml4ZXMgIzYwMDg3NwoKMjAxMC0wMy0yMiAxMTowNjoyMSAtMDMwMCAgQW5kcsOpIERpZWIgTWFydGlucyA8YW5kcmUuZGllYkBnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGUuc2g6IHVzZSBhdXRvZ2VuLnNoIGluc3RlYWQgb2YgYXV0b3JlZ2VuLnNoIG9uIGZyZXNoIHJlcG9zaXRvcmllcy4KCSAgRml4ZXMgIzYxMzU5My4KCjIwMTAtMDMtMjIgMTc6MTA6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nZXR0ZXh0Lmg6CgkgIGdldHRleHQ6IGJ1aWxkIGZpeGVzOiAjaWYgLT4gI2lmZGVmCgoyMDEwLTAzLTE4IDEwOjIyOjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogbWFrZSBkZWxheWVkIHNldCByZWN1cnNpdmUKCSAgUmlnaHQgbm93IGRlbGV5ZWQgc2V0IHdvdWxkIG9ubHkgdHJ5IGZvciBmaXJzdCBzZXQgb2YgY2hpbGRyZW4uIFdlIG5lZWQgdG8ga2VlcAoJICB0cnlpbmcgdG8gc3VwcG9ydCBhcmJpdHJhcnkgZGVlcCBoaWVyYXJjaGllcyAobGlrZSBpbiBwbGF5YmluMiB3aXRoIGF1dG8qc2lua3MpLgoJICBBbHNvIEdzdEJpbiB3b3VsZCBuZWVkIHRvIGFjdHVhbHkgZW1pdCB0aGUgY2hpbGQtYWRkZWQvcmVtb3ZlZCBzaWduYWwgYXMgaXQKCSAgaW1wbGVtZW50cyB0aGUgaWZhY2UuIEZpeGVzICM2MTMyMTUuCgoyMDEwLTAzLTIyIDA4OjQwOjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIHBrZ2NvbmZpZzogVXNlIEBMSUJNQCBpbnN0ZWFkIG9mIC1sbQoKMjAxMC0wMy0xOSAwMTowMjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBwa2djb25maWc6IGFkZCBiYWNrIHN1cHBvcnQgZm9yIGJ1aWxkZGlyICE9IHNyY2RpciBjYXNlIGluIHVuaW5zdGFsbGVkIHNldHVwCgkgIEF0dGVtcHQgdG8gYWRkIGJhY2sgc3VwcG9ydCBmb3IgYnVpbGRkaXIgIT0gc3JjZGlyLiBVc2UgYWJzb2x1dGUgcGF0aHMKCSAgaW5zdGVhZCBvZiByZWxhdGl2ZSBwYXRocyBiYXNlZCBvbiBwY2ZpbGVkaXIgdGhpcyB0aW1lIHRvIG1ha2UgdGhpbmdzCgkgIGNsZWFyZXIgLSB0aGVyZSdzIG5vdCByZWFsbHkgYW55IG5lZWQgZm9yIHVuaW5zdGFsbGVkIHRyZWVzIHRvIGJlCgkgIHJlbG9jYXRhYmxlIHdpdGhvdXQgcmUtcnVubmluZyBjb25maWd1cmUuCgoyMDEwLTAzLTE4IDExOjE4OjM5ICswMDAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IFFvUyBtZXNzYWdlIHBvc3RpbmcKCSAgQW5kIHNvbWUgbW9yZSBmb3IgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTggMTM6NDE6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogY2F0Y2gsIHBhcnNlIGFuZCBzdG9yZSBRb1MgZXZlbnQgdmFsdWVzCgkgIENhdGNoLCBwYXJzZSBhbmQgc3RvcmUgdGhlIFFvUyB2YWx1ZXMgZnJvbSBRb1MgZXZlbnRzIGZvciBsYXRlciB1c2UuCgoyMDEwLTAzLTE3IDE1OjI5OjQ4ICswMDAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbXBsZW1lbnQgUW9TIG1lc3NhZ2UgcG9zdGluZyBpbiBiYXNlc2luawoJICBQb3N0IFFvUyBtZXNzYWdlcyB3aGVuIGZyYW1lcyBhcmUgZHJvcHBlZC4KCSAgVGhpcyBnb2VzIGEgbGl0dGxlIGZ1cnRoZXIgdG93YXJkcyByZXNvbHZpbmcgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTcgMTk6MjY6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDMtMTcgMTk6MTY6NDIgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBRb1MgbWVzc2FnZSB0byBpbmZvcm0gYXBwcyBvZiBsb3N0IGRhdGEKCSAgVGhpcyBoYXMgYmVlbiBpbXBsZW1lbnRlZCBhcyBwZXIgcGFydC1xb3MudHh0IGFuZCBwYXJ0aWFsbHkgYWRkcmVzc2VzCgkgIGJ1ZyAjMzIyOTQ3CgoyMDEwLTAzLTE3IDE2OjQ0OjA1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdDogUmVtb3ZlIG5lZWRsZXNzIGNhc3QKCSAgR3N0VmFsdWVBcnJheS5uYW1lIGlzIGNvbnN0IG5vdwoKMjAxMC0wMy0xNyAxNDozMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBSZXZlcnQgIkFkZCBzcmNkaXIgdG8gaW5jbHVkZXMgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzIgoJICBJIGRvbid0IGtub3cgaG93IHRoaXMgZXZlciB3b3JrZWQsIGFzIGl0IHNlZW1zIHRvIHB1dCAtSS4vLi4KCSAgYW5kIC1JLi8uLi9saWJzIHZlcmJhdGltIGludG8gdGhlIGluY2x1ZGVzLCBhdCBsZWFzdCB3aXRoCgkgIGN1cnJlbnQgYXV0b3Rvb2xzIHZlcnNpb25zLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDI3OWE4MGZmMjdiYTRjOTBmNTI5ODFlODllNzEwZWIxMTgxYmMyMDEuCgoyMDEwLTAzLTE3IDE1OjQ2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiBhdm9pZCBjb25mdXNpb24gYmV0d2VlbiBldmVudHMgYW5kIG1lc3NhZ2VzCgoyMDEwLTAzLTE3IDEyOjE4OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiBNYXJrIHByb3BlcnR5X25hbWUgaW4gR3N0VmFsdWVBcnJheSBhcyBjb25zdAoJICBUaGlzIHdvbid0IGFuZCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBhbnkgQVBJCgoyMDEwLTAzLTE3IDEyOjQ1OjQ5ICswMjAwICBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2NzOiBmaXggdHlwbwoKMjAxMC0wMy0xNiAwOTo1NjoxNiArMDIwMCAgTWFydCBSYXVkc2VwcCA8bGVpb0BnZW50b28ub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjI2IiBtYXJrZXIgZm9yIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkKCjIwMTAtMDMtMTYgMDk6NDI6MjEgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogZml4IHNpbmNlIHRhZyBmb3IgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGRfdHlwZWQoKQoJICBnc3Rfc3RydWN0dXJlX2lkX2hhc19maWVsZF90eXBlZCB3YXMgYWRkZWQgaW4gMC4xMC4yNiwgbm90IDAuMTAuMTYuCgkgIEFwcGFyZW50IHR5cG8gaW4gY29tbWl0IGY5ZTNiNzJmIHdoZW4gdGhlIEFQSSB3YXMgYWRkZWQuCgoyMDEwLTAzLTE3IDEwOjUzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBkb2NzOiBmaXggU2luY2UgbWFya2VycyBmb3IgZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdCooKQoJICBBcyB0aGUgaGVhZGVycyB3ZXJlIGJyb2tlbiBpbiAwLjEwLjI2IHRoZSBmdW5jdGlvbnMgd2VyZW4ndCByZWFsbHkKCSAgdXNhYmxlIGJhY2sgdGhlbiwgc28gd2Ugc2hvdWxkIGFkdmVydGlzZSB0aGVtIGFzIGJlaW5nIHRoZXJlIG9ubHkKCSAgc2luY2UgMC4xMC4yNy4KCSAgU3BvdHRlZCBieSBNYXJ0IFJhdWRzZXBwLgoKMjAxMC0wMy0xNiAxNzo1NjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdDogdXNlICNpZiBHTElCX0NIRUNLX1ZFUlNJT04gaW5zdGVhZCBvZiAjaWZuZGVmIEdMSUJNQUNSTwoJICBmb3IgYmV0dGVyIGdyZXBwYWJpbGl0eSBhdCB0aGUgdGltZSB3ZSBidW1wIEdMaWIgdmVyc2lvbiByZXF1aXJlbWVudHMuCgoyMDEwLTAzLTE0IDExOjQ3OjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRlYWN0aXZhdGUgcGFkIGlmIHdlIGNhbid0IGdldCBsZW5ndGggb3IgaXQncyBhIGxlbmd0aCBvZiB6ZXJvLgoJICBGaXhlcyBpc3N1ZXMgd2hlbiByZS11c2luZyB0eXBlZmluZCBhZnRlciBhIGZpbGUgb2YgbGVuZ3RoIHplcm8uCgoyMDEwLTAzLTE2IDEwOjMyOjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBY2NlcHQgbm9uLWZpeGVkIGNhcHMgc3VnZ2VzdGlvbnMKCSAgV2hlbiBkb2luZyBwYWRfYWxsb2NzLCB1c2Ugbm9uLWZpeGVkIGNhcHMgc3VnZ2VzdGlvbnMgYW5kCgkgIHRyeSB0byBmaXhhdGUgdGhlbSBiZWZvcmUgdXNpbmcuIFRoaXMgbWFrZXMgcG9zc2libGUgdG8KCSAgaGF2ZSBzdWdnZXN0ZWQgYnVmZmVyIHNpemUgd2l0aCAwIGluIGJhc2V0cmFuc2Zvcm0ganVzdAoJICB0byBzaWduYWwgdXBzdHJlYW0gYSByZW5lZ290aWF0aW9uIGlzIG5lZWRlZAoJICBGaXhlcyAjNTc2MjM0CgkgIEZpeGVzICM2MDkwNDYKCjIwMTAtMDMtMTYgMTA6NDA6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IG1lcmdlIFFvUyBtZXNzYWdlIGZpZWxkcwoJICBUaGVyZSB3YXMgYWxyZWFkeSBhIHNlY3Rpb24gYWJvdXQgUW9TIG1lc3NhZ2VzIHRoYXQgaXMgbm93IG1lcmdlZCB3aXRoIHRoZSBuZXcKCSAgaW5mb3JtYXRpb24uCgoyMDEwLTAzLTE2IDEwOjQ0OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IG1lbnRpb24gaG93IHRvIGJ1aWxkIGFmdGVyIHVzaW5nIHRoZSBwcm9qZWN0IHN0YW1wCgoyMDEwLTAzLTE2IDA5OjU2OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBzbnByaW50ZiBuZWVkcyB0byBpbmNsdWRlICJzdGRpby5oIgoKMjAxMC0wMy0xNSAxODo0ODoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIFFPUyBkb2NzIHRvIGluY2x1ZGUgUU9TIG1lc3NhZ2VzCgkgIEFkZCBzb21lIGRvY3MgYWJvdXQgdGhlIHZhbHVlcyBuZWVkZWQgZm9yIGEgUW9TIG1lc3NhZ2UgYW5kIHNvbWUgdXNlCgkgIGNhc2VzLgoJICBTZWUgIzMyMjk0NwoKMjAxMC0wMy0xNSAxNzowNzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogdXNlIGJpb25pYy9saWJjIGZyaWVuZGx5IGFyZ3VtZW50cyB0byBwcmN0bAoJICBwcmN0bCBpcyBzdXBwb3NlZCB0byB0YWtlIDUgYXJndW1lbnRzLiBJdCB1c2VkIHRvIHdvcmsgd2l0aCAyIGFyZ3VtZW50cyBvbiBzb21lCgkgIHZlcnNpb25zIG9mIGxpYmMgYmVjYXVzZSBpdCBpcyBkZWZpbmVkIGFzIGEgdmFyYWdzIGZ1bmN0aW9uIHRoZXJlLgoJICBTZWUgIzYxMTkxMQoKMjAxMC0wMy0xNSAxNTowNzozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IHVwZGF0ZSBkb2NzLgoKMjAxMC0wMy0xNSAxNDo0NDo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBXb3JrIGFyb3VuZCBndGstZG9jIHByb2JsZW0KCjIwMTAtMDMtMTUgMTQ6NDQ6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IFVzZSBjb3JyZWN0IGd0ay1kb2Mgd29ya2Fyb3VuZAoKMjAxMC0wMy0xNSAxNDowNTozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEhhbmRsZSBpdGVyYXRvciByZXN5bmNzIGluIGdzdF9wYWRfcHJveHlfc2V0Y2FwcygpCgkgIEZpeGVzIGJ1ZyAjNjEyODgxLgoKMjAxMC0wMy0xNSAxNDo0ODoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogY29uZmlndXJlIHRoZSBvYmplY3QgbmFtZSBhcyB0aHJlYWQgbmFtZQoJICBXaGVuIHdlIGhhdmUgcHJjdGwgYXZhaWxhYmxlLCB1c2UgaXQgdG8gc2V0IHRoZSBjb25maWd1cmVkIG9iamVjdCBuYW1lIGFzIHRoZQoJICB0aHJlYWQgbmFtZSBmb3IgYmV0dGVyIGRlYnVnZ2luZy4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgUm9iZXJ0IFN3YWluLgoKMjAxMC0wMy0xNSAxMzo0ODozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzZXQgYSBnb29kIG5hbWUgb24gdGhlIHRhc2sgb2YgdGhlIHBhZAoJICBVc2UgdGhlIGVsZW1lbnQ6cGFkIG5hbWVzIHRvIGNvbmZpZ3VyZSBhIGdvb2QgbmFtZSBmb3IgdGhlIHBhZCB0YXNrLgoKMjAxMC0wMy0xNSAxMjoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmg6CgkgIHRhc2s6IHJldGFiCgoyMDEwLTAzLTE1IDEwOjI2OjE4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGxvZ2dpbmc6IHJlbW92ZSBleHRyYSBuZXdsaW5lCgoyMDEwLTAzLTA0IDIzOjM2OjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdHVybiBnX3JldHVybl9pZl9mYWlsIGludG8gZ19hc3NlcnQuCgkgIFRoaXMgZWl0aGVyIG11c3QgbmV2ZXIgaGFwcGVuICh3aGljaCBtYWtlcyBzZW5zZSBpbiB0aGlzIGNhc2UpIGFuZCB0aHVzIHNob3VsZAoJICB1c2UgYXNzZXJ0KCkgb3Igd2Ugc2hvdWxkIHVzZSBhIHRyYWRpdGlvbmFsIGlmIChwb2xsX2RhdGEtPm1lc3NhZ2UpIHJldHVybjsKCSAgdG8gYXZvaWQgZGlmZmVybmV0IGJlaGF2aW91ciBvZiBpbnRlbmFsIGFwaSB3aGVuIGNvbXBpbGluZyB3aXRoCgkgIEdfRElTQUJMRV9DSEVDS1MuCgoyMDEwLTAzLTAzIDIzOjM3OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBtb3ZlIHRoZSBjaGVjayB0byB0aGUgcHVibGljIGFwaS4KCSAgVGhpcyBhdm9pZHMgY3JlYXRpbmcgZW1wdHkgY2FwcyBhbmQgZGVzdHJveWluZyB0aGVtIGluIHRoZSBjYXNlIG9mIGFuIGVycm9yLiBXZQoJICBhbHNvIGF2b2lkIGRvdWJsZSBjaGVja2luZyBpbiBvdGhlciBjb2RlIHBhdGggd2hlcmUgd2UgY2FsbCB0aGUgaW50ZXJuYWwgYXBpLgoKMjAxMC0wMy0wMyAyMzozNDo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdGhpcyBpcyBpbnRlcm5hbCBBUEkgd2hlcmUgd2UgbmVlZCB0byBlbnN1cmUgIU5VTEwgaGlnaGVyIHVwCgoyMDEwLTAzLTAzIDIxOjUwOjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogdGhpcyBpcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aGVyZSB3ZSBhbHJlYWR5IGVuc3VyZSAhTlVMTCB3aGVuIGNhbGxpbmcKCjIwMTAtMDItMjYgMDk6Mjk6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBjYXNlIG9mIHBhZCBmbGFnCgkgIER1ZSB0byBhIHR5cG8gdGhlIGNvZGUgd2FzIGFsd2F5cyBzaG93aW5nIHRoZSBmbGFnIGFzICdzJyAobG93ZXIgY2FzZSkuCgkgIEZpeGVzICM2MTEwNzUKCjIwMTAtMDItMjMgMjM6NTA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRlYnVnOiBhZGQgcHJldHR5IHByaW50ZXIgZm9yIGV2ZW50cwoJICBBZGRlciBpcyB1c2luZyBHU1RfUFRSX0ZPUk1BVCBmb3IgZXZlbnRzIGFscmVhZHksIHNvIHdlIG1pZ2h0IGFjdHVhbHkKCSAgaW1wbGVtZW50IHRoaXMgYW5kIHByaW50IG91dCBzb21lIHVzZWZ1bCBpbmZvLgoKMjAxMC0wMy0xMyAxMTowMzo1OSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBBZGQgc29tZSAwLjExIEZJWE1FcyBmb3IgR3N0UGx1Z2luSW5pdEZ1bmMKCSAgU2VlIDhmZTYzMDAwZGUzMWJiMmJjZjM0NmQ1OTIzMGRlYTA2MTE3OTk3Y2QgZm9yIHdoeSBoYXZpbmcgYSBUUlVFL0ZBTFNFCgkgIHJldHVybiB2YWx1ZSBpcyBhIGJhZCBpZGVhLgoJICBJJ3ZlIHNjYW5uZWQgYSBmZXcgcGx1Z2lucyBhbmQgdGhleSBnZW5lcmFsbHkgZ2V0IGl0IHdyb25nIGFuZCBhcmVuJ3QKCSAgdW5sb2FkYWJsZSB3aGVuIHRoZXkgcmV0dXJuIEZBTFNFLgoKMjAxMC0wMy0xMiAxOTowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTAzLTEyIDE5OjA1OjE2ICswMDAwICBMZW8gU2luZ2VyIDxsc2luZ2VyQGNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGNvbXBpbGF0aW9uIGVycm9yIGlmIEhBVkVfUkVHSVNURVJfUFJJTlRGX1NQRUNJRklFUiBpcyB1bmRlZmluZWQKCSAgVXNlICNpZiBIQVZFX0ZPTyBpbnN0ZWFkIG9mICNpZmRlZiBIQVZFX0ZPTy4KCSAgRml4ZXMgIzYxMjczMy4KCjIwMTAtMDMtMTIgMTY6NDI6NDcgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luczogRG8gbm90IGV2ZXIgdW5sb2FkIGEgcGx1Z2luIGFmdGVyIGNhbGxpbmcgaW50byBpdAoJICBUaGlzIGlzIHdoYXQgY2FuIGhhcHBlbiBpbiBhIHBsdWdpbl9pbml0IGZ1bmN0aW9uOgoJICAtIEFuIGVsZW1lbnQgYmFzZWQgb24gR3N0QmFzZVNpbmsgaXMgcmVnaXN0ZXJlZAoJICAtIE90aGVyIGVsZW1lbnRzIGZhaWwgdG8gcmVnaXN0ZXIKCSAgLSBUaGUgcGx1Z2luX2luaXQgZnVuY3Rpb24gcmV0dXJucyBGQUxTRQoJICBOb3cgaWYgdGhpcyB0aGUgcGx1Z2luIGlzIHRoZSBmaXJzdCBwbHVnaW4gdG8gbGluayBhZ2FpbnN0CgkgIGxpYmdzdGJhc2Uuc28sIGl0IHdpbGwgaGF2ZSBjYXVzZWQgbGliZ3N0YmFzZS5zbyB0byBiZSBsb2FkZWQgYW5kIHN0YXRpYwoJICBzdHJpbmdzIGZyb20gdGhhdCBsaWJyYXJ5IHdpbGwgaGF2ZSBiZWVuIGFkZGVkIHRvIGdvYmplY3Qgd2hpbGUKCSAgcmVnaXN0ZXJpbmcgR3N0QmFzZVNpbmsuCgkgIFNvIHVubG9hZGluZyB0aGUgcGx1Z2luIHdpbGwgY2F1c2UgdGhvc2Ugc3RyaW5ncyB0byBnbyBzdGFsZSBhbmQgdGhlCgkgIG5leHQgcGx1Z2luIHVzaW5nIEdzdEJhc2VTaW5rIHdpbGwgY3Jhc2guIFNvIHdlIG11c3Qgbm90IHVubG9hZCBtb2R1bGVzCgkgIGFmdGVyIGNhbGxpbmcgaW50byB0aGVtIGV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTcyODAwCgoyMDEwLTAzLTEyIDE1OjM2OjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogRG9uJ3QgcGFzcyBOVUxMIHRvIHRoZSBHU2VxdWVuY2UgQVBJCgoyMDEwLTAzLTEyIDEzOjMzOjAwICswMDAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGU6IEZpeCBlcnJvciByZXR1cm4gdmFsdWUgYW5kIG1ha2UgdGhlIHNjcmlwdCBleGl0IG9uIGVycm9ycwoJICBOZXdlciB2ZXJzaW9ucyBvZiBCQVNIICg0Lng/KSBzZWVtIHRvIGRpc2xpa2UgdXNpbmcgLTEgZm9yIGEgcmV0dXJuLiBFdmVuCgkgIHRob3VnaCBpdCdzIGRvY3VtZW50ZWQgYXMgYmVpbmcgc2lnbmVkLCBCQVNIIGNvbXBsYWlucyBhYm91dCBpdCwgc28gdXNlCgkgIDI1NSBpbnN0ZWFkLgoKMjAxMC0wMy0xMiAxMzo1NDoyOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZTI3MmY3MSB0byA1NWNkNTE0CgoyMDEwLTAyLTE3IDEzOjAyOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3Q6IFVzZSBHX1ZBTFVFX0NPTExFQ1RfSU5JVCBpZiBhdmFpbGFibGUKCSAgVGhpcyBicmluZ3MgdG90YWwgY2FsbCBzcGVlZHVwcyBiZXR3ZWVuIDUlIGFuZCAyNSUuCgkgIGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0OiArNSUKCSAgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0OiArIDEwJQoJICBnc3Rfc3RydWN0dXJlX2lkX3NldF92YWxpc3Q6ICsyNSUKCSAgZ3N0X3RhZ19saXN0X2FkZF92YWxpc3Q6ICs1JQoJICBNZWFzdXJlZCB1c2luZyB2YWxncmluZCB3aGVuIHJ1biBvdmVyIHRoZSBkaXNjb3Zlcnkgb2YgMjAwIG1lZGlhIGZpbGVzLgoJICBGaXhlcyAjNjEwMjU2CgoyMDEwLTAzLTExIDIwOjI5OjI5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICB3aW4zMjogRml4IGJ1aWxkIGZhaWx1cmVzIG9mIHRlc3RzCgoyMDEwLTAzLTA5IDIwOjM4OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZHMgbmV3IGdlbyBsb2NhdGlvbiB0YWdzCgkgIEFkZHMgbmV3IHRhZ3MgR1NUX1RBR19HRU9fTE9DQVRJT05fQ09VTlRSWSwKCSAgR1NUX1RBR19HRU9fTE9DQVRJT05fQ0lUWSBhbmQgR1NUX1RBR19HRU9fTE9DQVRJT05fU1VCTE9DQVRJT04uCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fQ09VTlRSWQoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NJVFkKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9TVUJMT0NBVElPTgoJICBGaXhlcyAjNjEyNDEwCgoyMDEwLTAzLTExIDE4OjM2OjMyICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIHdpbjMyOiBBZGQgcHJvdG90eXBlIGZvciBEbGxNYWluKCkKCjIwMTAtMDMtMTEgMTE6NDY6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMTItMjggMTc6MjU6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBnc3RyZWFtZXI6IHJlbW92ZSB1bm5lZWRlZCBjYXN0cwoJICBHX1BBUkFNX1NQRUNfVkFMVUVfVFlQRSBkb2VzIGFuIGV4cGVuc2l2ZSB0eXBlIGNoZWNrLCB3aGVyZWFzIHRoZQoJICB2YWx1ZV90eXBlIGZpZWxkIGlzIGEgcHVibGljIGZpZWxkLCBzbyB3ZSBjYW4ganVzdCB1c2UgaXQgZGlyZWN0bHkuCgoyMDEwLTAzLTExIDExOjM5OjQwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSAtV2lubGluZSBmbGFnIGFnYWluCgkgIEl0IHRyaWdnZXJzIGZvciBhIGxvdCBvZiBHU3RyZWFtZXIgQVBJIChldmVuIHRob3VnaCB0aG9zZSB0cmlnZ2VycyBhcmUKCSAgd3JvbmcgbW9zdCBvZiB0aGUgdGltZSkuCgkgIEkgbWlzc2VkIGl0IGJlY2F1c2UgaXQgb25seSB0cmlnZ2VycyB3aXRoIC1PMiwgYW5kIEkgd2FzIHVzaW5nIC1PMC4KCjIwMTAtMDMtMTEgMTE6MjA6MzUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGY4YTdjOCB0byBlMjcyZjcxCgoyMDEwLTAzLTExIDExOjEwOjQ0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEFkZCBhIGJ1bmNoIG1vcmUgd2FybmluZyBmbGFncyB0byBjb25maWd1cmUKCSAgTm9uZSBvZiB0aGVzZSBmbGFncyBjYXVzZSB3YXJuaW5ncyBhbnltb3JlLCBzbyBubyBmaXhlcyBuZWNlc3NhcnkuCgkgIFRoZSBmbGFncyBhcmU6CgkgIC1XZm9ybWF0LW5vbmxpdGVyYWwKCSAgLVdmb3JtYXQtc2VjdXJpdHkKCSAgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgoJICAtV2Nhc3QtYWxpZ24KCSAgLVdpbmxpbmUKCSAgLVdpbml0LXNlbGYKCSAgLVdtaXNzaW5nLWluY2x1ZGUtZGlycwoJICAtV2FkZHJlc3MKCSAgLVdhZ2dyZWdhdGUtcmV0dXJuCgkgIC1Xbm8tbXVsdGljaGFyCgkgIC1XbmVzdGVkLWV4dGVybnMKCjIwMTAtMDMtMDIgMjI6NTg6MDYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEZpeGVzIGZvciAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1wcm90b3R5cGVzCgkgIEFsc28gYWRkcyB0aG9zZSBmbGFncyB0byB0aGUgY29uZmlndXJlIHdhcm5pbmcgZmxhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMSAwOTozOToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHByaW50ZiBmb3JtYXQKCSAgVXNlICV1IHRvIHByaW50IHVuc2lnbmVkIGludGVnZXJzLgoKMjAxMC0wMy0xMSAxMDoyOToyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0ZXN0czogY2FzdCB0aGUgYXJnLiB0byBmaXggdGhlIGJ1aWxkIHdpdGggbmV3IGNvbXBpbGVyIG9wdHMuCgkgIFRoaXMgaXMgdWdseS4gSSBhbSBub3Qgc3VyZSBpZiB3ZSByZWFsbHkgd2FudCB0byBoYXZlIHN1Y2ggY2FzdHMgYWxsIG92ZXIgdGhlCgkgIHBsYWNlLgoKMjAxMC0wMy0xMSAxMDoxNDowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGkxOG46IGRlZmluZSBkdW1teSBuZ2V0dGV4dCBpZiBpMThuIGlzIGRpc2FibGVkLgoJICBXZSBjYW5ub3QgYmxpbmRseSB1c2UgZ2V0dGV4dCBmdW5jdGlvbiBhbmQgbm90IGRlZmluZSB0aGVtIHdoZW4gbm90IHVzaW5nIGdldHRleHQuCgoyMDEwLTAzLTExIDEwOjAwOjQ1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgaTE4bjogZml4IHRoZSBidWlsZCB3aXRoIGkxOG4gZGlzYWJsZWQuCgkgIERvbid0IGluY2x1ZGUgZ2V0dGV4dC5oIGlmICFFTkFCTEVfTkxTLgoKMjAxMC0wMy0wNCAxMDo0NDo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWxsb3cgY29uZmlndXJhYmxlIG1lbW9yeSBhbGlnbm1lbnQuIEZpeGVzICM1OTY4MzIKCSAgVGhlIGFsaWdubWVudCBndWFyYW50ZWVkIGJ5IG1hbGxvYyBpcyBub3QgYWx3YXlzIHN1ZmZpY2llbnQuIEUuZy4gdmVjdG9yCgkgIGluc3RydWN0aW9ucyBvciBoYXJkd2FyZSBzdWJzeXN0ZW1zIHdhbnQgc3BlY2lmaWNhbGx5IGFsaWduZWQgYnVmZmVycy4gVGhlCgkgIGF0dGFjaGVkIHBhdGNoIHdpbGwgdXNlIHBvc2l4X21lbWFsaWduIGlmIGF2YWlsYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzLgoJICBUaGUgZGVzaXJlZCBhbGlnbm1lbnQgY2FuIGJlIHNldCB3aGVuIHJ1bm5pbmcgY29uZmlndXJlIHVzaW5nIHRoZSBuZXcKCSAgLS13aXRoLWJ1ZmZlci1hbGlnbm1lbnQgb3B0aW9uLgoKMjAxMC0wMy0xMCAyMTo1MTo1MCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NzIwYTdkIHRvIGRmOGE3YzgKCjIwMTAtMDMtMTAgMjA6NTI6MDYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkgIE1lcmdlIGJyYW5jaCAnd29yaycKCjIwMTAtMDMtMDMgMTE6NDU6MzggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBGaXhlcyBmb3IgLVd3cml0ZS1zdHJpbmdzCgkgIFRoaXMgY2hhbmdlcyBzb21lIEFQSXMgaW4gY29tcGF0aWJsZSB3YXlzOgoJICAtIFNvbWUgZnVuY3Rpb25zIG5vdyB0YWtlICJjb25zdCBjaGFyICoiIGFyZ3VtZW50cywgbm90ICJjaGFyICoiCgkgIC0gU29tZSBzdHJ1Y3RzIG5vdyBoYXZlICJjb250cyBjaGFyICoiIG1lbWJlcnMsIG5vdCAiY2hhciAqIgoJICBUaGUgY2hhbmdlcyBtYXkgY2F1c2Ugd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgd2l0aCB0aGUgcmlnaHQgd2FybmluZwoJICBmbGFncy4gWW91J3ZlIGJlZW4gd2FybmVkLgoJICBBbHNvIGFkZHMgLVd3cml0ZS1zdHJpbmdzIGFzIGEgd2FybmluZyBmbGFnIGluIGNvbmZpZ3VyZS5hYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMyAxMDozMToyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBGaXhlcyAtV3VuZGVmIHdhcm5pbmdzCgkgIC4uLiBhbmQgYWRkcyB0aGF0IGZsYWcgdG8gY29uZmlndXJlLmFjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDMgMTA6MzE6MDUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBSZW1vdmUgdW5uZWVkZWQgZ190aHJlYWRfZXhpdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDMgMTA6MjY6MTQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgRml4ZXMgZm9yIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMiAyMzo1MToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJICBNYWtlIGNvZGUgc2FmZSBmb3IgLVdyZWR1bmRhbnQtZGVjbHMKCSAgQWRkcyB0aGF0IHdhcm5pbmcgdG8gY29uZmlndXJlLmFjCgkgIEluY2x1ZGVzIGEgdGlueSBjaGFuZ2Ugb2YgdGhlIEdTVF9CT0lMRVJQTEFURV9GVUxMKCkgbWFjcm86CgkgIFRoZSBnZXRfdHlwZSgpIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBkZWNsYXJlZCBiZWZvcmUgYmVpbmcgZGVmaW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMCAyMDo0MzozNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwYjZlMDcyIHRvIDk3MjBhN2QKCjIwMTAtMDMtMDMgMTA6MDA6NDEgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTWFrZSBzdXJlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgcnVuIHdpdGggLVdlcnJvcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTEwIDE3OjAzOjI5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIFVwZGF0ZSB0byBjb21tb24vIGNoYW5nZXMgdG8gRVJST1JfQ0ZMQUdTCgoyMDEwLTAzLTEwIDE5OjE3OjQyICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgUmV2ZXJ0ICJyZWdpc3RyeTogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiIKCSAgVHVybnMgb3V0ICB0aGUgZnVuY3Rpb24gaXMgbm90IHVudXNlZCwgYnV0IHdhcyBpbiBhbiAjaWZkZWYgV0lOMzIKCSAgc2VjdGlvbi4KCSAgV2hvb3BzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU3ZDVkYjQyNGM2OGFiNWE2MWYzM2NlMzZjZTAxNzllYjMwMjUxYWMuCgoyMDEwLTAzLTEwIDE2OjA5OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdjYzVlYjQgdG8gMGI2ZTA3MgoKMjAxMC0wMy0wMiAyMTowNzozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgkgIEFjdHVhbGx5LCB0aGVyZSB3YXMgdHdvIGZ1bmN0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUsIGJ1dCBvbmx5IG9uZSB3YXMKCSAgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMiAxNjoyMDoxNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlbW92ZSB1bnVzZWQgZ3N0X2VsZW1lbnRfZGVmYXVsdF9lcnJvcigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTAgMDc6MTU6MTUgKzAwMDAgIEplcmVteSBIdWRkbGVzdG9uIDxqZXJlbXlodUBmcmVlZGVza3RvcC5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBtdWxxIGluc3RlYWQgb2YgbXVsIGFzIHNvbWUgYXNzZW1ibGVycyBjYW4ndCBndWVzcyB0aGUgc2l6ZSBvZiB0aGUgb3BlcmFuZHMKCSAgRml4ZXMgYnVnICM2MTIzNzAuCgoyMDEwLTAzLTEwIDAxOjA5OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2FhNjViNSB0byA3Y2M1ZWI0CgoyMDEwLTAzLTA5IDIxOjIwOjI3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDRlY2NlNyB0byA3YWE2NWI1CgoyMDEwLTAyLTI2IDE2OjAzOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBidWlsZDogTWFrZSBzb21lIG1vcmUgcnVsZXMgc2lsZW50IGlmIHJlcXVlc3RlZAoKMjAxMC0wMi0yNiAxNTozMjoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogVXNlIGF1dG9tYWtlIDEuMTEgc2lsZW50IHJ1bGVzIGluc3RlYWQgb2Ygc2hhdmUgaWYgYXZhaWxhYmxlCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIHVzZSBzb21ldGhpbmcgdGhhdCBpcyBzdGlsbCBtYWludGFpbmVkIGFuZAoJICBhbHNvIGJyaW5ncyBiYWNrIGxpYnRvb2wgMS41IHN1cHBvcnQuCgoyMDEwLTAyLTIyIDE2OjI1OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBPcHRpbWl6ZSBnZXRfdmFsdWVfYXJyYXkoKQoJICBEb24ndCBjb252ZXJ0IGZyb20gR1ZhbHVlIHRvIHRoZSBhY3R1YWwgdHlwZSBmb3IgZXZlcnkgc2luZ2xlCgkgIHZhbHVlLgoKMjAxMC0wMi0yMiAxNToxODo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IE9wdGltaXplIGdldF92YWx1ZV9hcnJheSgpCgkgIFRoaXMgbWFrZXMgaXQgPjEweCBmYXN0ZXIgaWYgbW9yZSB0aGFuIGEgc2luZ2xlIHZhbHVlIGlzIHJlcXVlc3RlZAoJICBieSBub3Qgc2VhcmNoaW5nIGluIHRoZSBHU2VxdWVuY2UgZm9yIGV2ZXJ5IHZhbHVlIGFuZCBjb252ZXJ0aW5nCgkgIHRoZSB2YWx1ZSBmcm9tIEdWYWx1ZSB0byB0aGUgcmVhbCB2YWx1ZSB0eXBlLgoKMjAxMC0wMi0yMSAxNzozNjo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogQWRkIGJlbmNobWFyayBmb3IgZ2V0dGluZyBhIHZhbHVlIGFycmF5IG9mIHRoZSBjb250cm9sIHBvaW50cwoKMjAxMC0wMy0wOCAyMzoyODowNCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBGaXggdHlwb3MgaW4gZG9jdW1lbnRhdGlvbgoKMjAxMC0wMy0wOCAyMzowNDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGNhcHM6IEZhaWwgd2hlbiBmcmFjdGlvbnMgYXJlIGZvbGxvd2VkIGJ5IHJhbmRvbSB0ZXh0CgkgIFByZXZpb3VzIGNvZGUgdHJlYXRlZCAiMS8xeW91cm1vbSIgdGhlIHNhbWUgYXMgIjEvMSIgYW5kICIxd2ltc21vbSIgdGhlCgkgIHNhbWUgYXMgIjEiLiBOb3cgdGhlIGNvZGUgaXMgc3RyaWN0ZXIgYW5kIHdpbGwgZmFpbCB0byBjb252ZXJ0IGEKCSAgZnJhY3Rpb24gd2hlbiBmb2xsb3dlZCBieSBnYXJiYWdlIHRleHQuCgoyMDEwLTAzLTA5IDE3OjMyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMjggPT09CgoyMDEwLTAzLTA4IDIzOjA5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yOAoKMjAxMC0wMy0wOCAyMzowNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDMtMDggMjI6MDU6MjkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBjYXBzOiBBbGxvdyAxL21heCBhcyB0aGUgbWluaW1hbCBmcmFjdGlvbiB2YWx1ZSA+IDAKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGZvcm1hdHMgdGhhdCByZXF1aXJlIGEgdmFsaWQgZnJhbWVyYXRlIChsaWtlCgkgIHRoZW9yYWVuYykuCgoyMDEwLTAzLTA0IDE1OjIxOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHR5cG8gaW4gY29tbWVudHMKCj09PSByZWxlYXNlIDAuMTAuMjcgPT09CgoyMDEwLTAzLTA1IDIzOjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yNwoKMjAxMC0wMy0wNSAyMzo0MTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDMtMDQgMTg6Mzk6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogZG9uJ3QgcGFzcyBub24tb2JqZWN0cyBhcyBmaXJzdCBhcmd1bWVudCB0byBHU1RfREVCVUdfT0JKRUNUKCkKCSAgVGhpcyBtYXkgY2F1c2UgY3Jhc2hlcyB3aGVuIGxvZ2dpbmcgaXMgZW5hYmxlZCwgZXNwZWNpYWxseSBvbiB3aW5kb3dzLgoJICBJdCdzIG5vdCBzYWZlIHRvIHBhc3MgcmFuZG9tIHBvaW50ZXJzIHRvIGdfdHlwZV9jaGVja19pbnN0YW5jZV9pc19hKCkuCgkgIEZpeGVzICM2MTE3MTkuCgoyMDEwLTAzLTAzIDE5OjU0OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI2LjQgcHJlLXJlbGVhc2UKCjIwMTAtMDMtMDMgMTk6NDk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wMy0wMyAxMjowNjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgZG9jczogZml4IHVwIGJ5dGV3cml0ZXIgZG9jIGNodW5rcyBmb3IgZmxvYXQgZnVuY3Rpb25zIGFzIHdlbGwKCjIwMTAtMDMtMDMgMTE6Mjg6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IGZpeCBoZWFkZXJzIGZvciBmbG9hdC9kb3VibGUgd3JpdGluZyBmdW5jdGlvbnMKCSAgVGhlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGdzdF9ieXRlX3dyaXRlcl9wdXRfe2Zsb2F0MzJ8ZmxvYXQ2NH1fKigpIGFuZCBub3QKCSAgZ3N0X2J5dGVfd3JpdGVyX3B1dF97ZmxvYXR8ZG91YmxlfV8qKCkuCgkgIFNwb3R0ZWQgYnk6IEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCjIwMTAtMDMtMDEgMTI6MDI6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogdHJ5IHRvIG1ha2UgY29tbWVudCBmb3IgdHJhbnNsYXRvcnMgbW9yZSBoZWxwZnVsCgoyMDEwLTAyLTI2IDE1OjQ2OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBlbWVyZ2VuY3kgcmVuZGVyaW5nIHRpbWVzdGFtcCB0cmFja2luZwoJICBTcGVjaWZpY2FsbHksIGlmIGFsbCAoaW5jbHVkaW5nIGluaXRpYWwpIGJ1ZmZlcnMgdHVybiB1cCBsYXRlLAoJICBlbWVyZ2VuY3kgcmVuZGVyaW5nIHNob3VsZCBhbHNvIGtpY2sgaW4gYXBwcm9wcmlhdGVseS4KCSAgRml4ZXMgIzYxMTA4Ny4KCjIwMTAtMDItMjQgMDA6MzA6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjYuMyBwcmUtcmVsZWFzZQoKMjAxMC0wMi0yNCAwMDoyOToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vZXMucG86CgkqIHBvL25sLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wMi0xOSAxMzoyNjowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogRG9uJ3QgcGFzcyBOVUxMIHBvaW50ZXJzIHRvIEdTZXF1ZW5jZSBBUEkKCSAgVGhpcyBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmVzLiBGaXhlcyBidWcgIzYxMDQ0NC4KCjIwMTAtMDItMTkgMTM6MjA6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBBZGQgY29uc3QgcXVhbGlmaWVycyB0byB2YWx1ZXMgaW4gdGhlIF9zZXQgZnVuY3Rpb25zCgkgIFRoZSB2YWx1ZXMgYXJlIG5vdCBtb2RpZmllZCBhbmQgYXJlIGNvcGllZCwgYSBjb25zdCBiZWZvcmUgdGhlIHBhcmFtZXRlcgoJICBzaG91bGQgbWFrZSB0aGlzIGV2ZW4gbW9yZSBvYnZpb3VzLgoKMjAxMC0wMi0xOCAwOToxNzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBjb250cm9sbGVyOiBBZGQgc29tZSBGSVhNRSAwLjExIGNvbW1lbnRzCgoyMDEwLTAyLTE3IDEwOjA0OjU0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgY29yZWxlbWVudHM6IENvbWJpbmUgcmVkdW5kYW50IGNvZGUKCjIwMTAtMDItMTcgMDE6Mjc6MjIgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9mIGZkc2luayBhbmQgZmRzcmMgd2l0aCBNU1ZDCgoyMDEwLTAyLTE4IDE0OjU4OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vdmkucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNi4yIHByZS1yZWxlYXNlCgoyMDEwLTAyLTE4IDEzOjEyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgc29tZSBtb3JlIHRlbXBvcmFyeSBkb2NzIGNydWZ0CgoyMDEwLTAyLTE4IDEzOjA5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogZml4IGluZGVudGluZyBpbiB3aW4zMi11cGRhdGUgdGFyZ2V0CgkgIE5vIGlkZWEgd2h5IHdlIG5lZWQgdG8gcnVuIGdzdC1pbmRlbnQgdHdpY2Ugb24gdGhhdCBmaWxlLCBidXQgaXQKCSAgb25seSBzZWVtcyB0byBzZXR0bGUgb24gYSBmaW5hbCBmb3JtYXQgd2l0aCBtaW5pbWFsIGRpZmYgdG8gdGhlCgkgIG9uZSBpbiBnaXQgYWZ0ZXIgdHdvIHJ1bnMuCgoyMDEwLTAyLTE4IDEzOjA4OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMC0wMi0xOCAxMTo1MjoyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBJbXByb3ZlIGRvY3MgYWJvdXQgJ2RhdGEnIGF0dHJpYnV0ZQoJICBBZGRzIGEgcmVtaW5kZXIgdG8gJ2RhdGEnIGF0dHJpYnV0ZSBkb2MKCSAgRml4ZXMgIzYxMDM2NgoKMjAxMC0wMi0xOCAxNzoxNTozNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIG1lbWluZGV4OiBhdm9pZCBidXN5IGxvb3Agd2hlbiBkb2luZyBFWEFDVCBsb29rdXAKCSAgRml4ZXMgIzYxMDM2Ny4KCjIwMDktMTItMjIgMTE6MDk6MTAgKzA4MDAgIEpvaGFuIEJpbGllbiA8am9iaUBsaXRsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBhbm5vdGF0aW9uIGZvciBnc3RfZWxlbWVudF9nZXRfc3RhdGUKCSAgc3RhdGUgYW5kIHBlbmRpbmcgYXJlICJvdXQiIGFyZ3VtZW50cy4KCSAgRml4ZXMgIzYwNTE4OS4KCjIwMTAtMDItMTcgMTI6MTY6MzcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIGZpbGVzcmM6IERvbid0IHVzZSBleHBlbnNpdmUgY2FzdCBjaGVja3MgaW4gX2NyZWF0ZQoJICBfY3JlYXRlKCkgaXMgYSBwYWQgZnVuY3Rpb24gc2V0IGJ5IG91cnNlbHZlcywgdGhlcmVmb3JlIHdlJ3JlIHN1cmUgYmFzZXNyYwoJICBpcyBhIEdzdEZpbGVTcmMuCgkgIFNwZWVkcyB1cCBfY3JlYXRlKCkgYnkgMTclIGFuZCB0aGUgdG90YWwgY2FsbCBieSA4JSAoaW5zdHJ1Y3Rpb24gY2FsbHMgbWVhc3VyZW1lbnRzCgkgIGRvbmUgd2l0aCB2YWxncmluZCkuCgkgIEZpeGVzICM2MTAyNDYKCjIwMTAtMDItMTcgMTI6MTQ6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgdXNlIGV4cGVuc2l2ZSBjYXN0IGNoZWNrcyBpbiBnZXRfcmFuZ2UuCgkgIF9nZXRfcmFuZ2UoKSBpcyBhIHBhZCBmdW5jdGlvbiBzZXQgYnkgb3Vyc2VsdmVzLCB0aGVyZWZvcmUgd2UncmUgY2VydGFpbiB0aGF0CgkgIHRoZSBwYXJlbnQgaXMgYSBHc3RCYXNlU3JjLgoJICBTcGVlZHMgdXAgX2dldF9yYW5nZSBieSAzOCUsIGFuZCB0aGUgdG90YWwgY2FsbCBieSAzMCUuICh2YWxncmluZCBpbnN0cnVjdGlvbgoJICBjYWxscyBtZWFzdXJlbWVudHMpLgoJICBGaXhlcyAjNjEwMjQ2CgoyMDEwLTAyLTE3IDExOjMxOjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBjbGVhbnVwIHBhcmFtZXRlciBpbml0aWFsaXNhdGlvbiBhbmQgYWRkIGNvbWVtbnQrbG9nZ2luZwoJICBJbml0aWFsaXplIG5ld19mZCB3aXRoIERFRkFVTFRfRkQgYW5kIGZkIHdpdGggLTEuIFNldHRpbmcgdGhlIHByb3BlcnR5IHdpbGwgc2V0CgkgIG5ld19mZCBhbmQgaW4gX3VwZGF0ZV9mZCgpIHdlIGNlaGNrIGZkIGFnYWluc3QgLTEuIEFsc28gYWRkIGEgY29tZW50IGFib3V0IHRoZQoJICB3YXJuaW5nIHdlIGdldCBpbiB0aGUgbG9nIGZyb20gZ3N0X3BvbGxfcmVtb3ZlX2ZkKCkuIFdlIGNvdWxkIGdldCByaWQgb2YgdGhlCgkgIHdhcm5pbmcgaWYgd2Ugd2FudCBieSB0cmFja2luZyBpZiBmZCBoYXMgYmVlbiBhZGRlZCB0byBmZHNldC4KCjIwMTAtMDItMTcgMDk6NTU6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSAgZGVzaWduOiB3cml0ZSBhYm91dCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0YWctaGFuZGxpbmcKCSAgRG9jdW1lbnQgdGhlIHRhZ2hhbmRsaW5nIGluIGdzdHJlYW1lci4gTGlzdCBnYXBzIGFuZCBwcm9wb3NlIG5ldyBtZWNoYW5pc21zIHRvCgkgIGRlYWwgd2l0aCB0aGVtLgoKMjAxMC0wMi0xNiAxMDoyNzoxOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVtb3ZlIGJsYW5rIGxpbmVzIGluIHZhcmlhYmxlIGRlY2xhcmF0aW9ucwoKMjAxMC0wMi0xNiAxMTozMDozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB0b29scy90b29scy5oOgoJICB0b29sczogY2FsbCBnX3NldF9wcmduYW1lKCkgYmVmb3JlIGRvaW5nIHRoZSBvcHRpb24gcGFyc2luZwoJICBnX3NldHByZ25hbWUgaXMgaW1wbGljaXRseSBjYWxsZWQgYnkgZ19vcHRpb25fY29udGV4dF9uZXcoKSB3aXRoIGEgY2hlY2sKCSAgdG8gc2VlIGlmIGl0J3MgYmVlbiBzZXQgYWxyZWFkeSwgc28gc2V0IGl0IGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpCgkgIE1vdmUgdmVyc2lvbiBwcmludGluZyBiYWNrIHVudGlsIGFmdGVyIHRoZSBvcHRpb25zIGhhdmUgYmVlbiBwYXJzZWQsCgkgIG90aGVyd2lzZSBpdCB3b24ndCB3b3JrLCBzaW5jZSBpdCBldmFsdWF0ZXMgYSBmbGFnIHNldCBieSB0aGUKCSAgb3B0aW9uIHBhcnNlci4KCjIwMTAtMDItMTYgMTE6MjQ6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgInRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uIGNhbGwgdG8gYXZvaWQgd2FybmluZyBmcm9tIG5ldyBHTGliLiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5M2RkOTVmMDJlZjNmYTUzMGY1NGNlODFlOGZmYmE5NmYzYjY3OWNiLgoJICBUaGlzIGNvbW1pdCBtYWRlIC0tdmVyc2lvbiBub3Qgd29yayBhbnkgbG9uZ2VyLiBUaGUgZ19zZXRwcmduYW1lKCkKCSAgd2FybmluZyBpcyBmaXhlZCBpbiByZWNlbnQgR0xpYiB2ZXJzaW9ucy4KCjIwMTAtMDItMTYgMDg6MjY6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBtYWtlIHN1cmUgZ3N0LXBsdWdpbi1zY2FubmVyIGdldHMgaW5zdGFsbGVkIHdoZXJlIHdlIGV4cGVjdCBpdAoJICBBZGQgY2hlY2sgdG8gbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciByZWFsbHkgZ2V0cyBpbnN0YWxsZWQgd2hlcmUKCSAgd2Ugd2lsbCBsb29rIGZvciBpdCBsYXRlciwgaWUuIHBhdGhzIGFuZCBwcmVmaXhlcyBhcmUgc2V0IGF0IGNvbmZpZ3VyZQoJICB0aW1lIGFuZCBub3Qgc3BlY2lmaWVkIHZpYSBtYWtlLgoJICBGaXhlcyAjNjA5OTQxLgoKMjAxMC0wMi0xNSAyMzowMjo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogcHJlZmVyIHNob3J0IGRlc2MgZnJvbSBHc3RFbGVtZW50RGV0YWlscwoKMjAxMC0wMi0xNSAwMToyNDoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBjaHVuayBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEwLTAyLTE1IDAwOjMxOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBwbyBmaWxlcyBmb3IgbmV3IGNvbW1lbnRzCgoyMDEwLTAyLTE1IDAwOjI5OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IHdyYXAgbG9uZyBzdHJpbmcgY29uc3RhbnRzCgkgIEFuZCBmaXggaW5kZW50aW5nIGlzc3VlCgoyMDEwLTAyLTE1IDAwOjIxOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IGFkZCBzb21lIGNvbW1lbnRzIGZvciB0cmFuc2xhdG9ycyBzbyB0YWcgbW5lbW9uaWNzIGdldCB0cmFuc2xhdGVkIGNvcnJlY3RseQoJICBXZSB3YW50ICdwcmV2aWV3IGltYWdlJyB0cmFuc2xhdGVkIGFzIGEgbm91biwgbm90IGFzICdwcmV2aWV3IFt0aGVdIGltYWdlJy4KCjIwMTAtMDItMDQgMTc6NDM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHByaW50IFdBUk4gZGVidWcgc3RhdGVtZW50cyBmb3Igbm9ybWFsIHRoaW5ncyBsaWtlIEVPUwoKMjAxMC0wMi0xNCAyMzoxNTo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk2ZGM3OTMgdG8gNDRlY2NlNwoKMjAxMC0wMi0xMyAxNToxODowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZXNldCB0aGUgd29ya2luZyBtb2RlIHdoZW4gZ29pbmcgdG8gUkVBRFkvTlVMTAoJICBUaGlzIGFsbG93cyBwcm9wZXJseSByZS11c2luZyB0eXBlZmluZCAoZWxzZSBpdCB3b3VsZCB0aGluayBpdCdzCgkgIGFscmVhZHkgZG9uZSB0aGUgdHlwZWZpbmRpbmcgd2hlbiBiZWluZyByZS11c2VkIHdpdGggYW5vdGhlcgoJICBzdHJlYW0pLgoKMjAxMC0wMS0yMiAxMTozODo1OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWRkcyBhIHRlc3QgZm9yIF9maWxsCgoyMDEwLTAxLTIyIDA5OjE5OjMxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRld3JpdGVyOiBhZGQgX2ZpbGwgZnVuY3Rpb24KCSAgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byBHc3RCeXRlV3JpdGVyIHRoYXQgd3JpdGVzCgkgIGEgY29uc3RhbnQgdmFsdWUgdG8gYSBtZW1vcnkgYXJlYSAoYWthIG1lbXNldCkuCgkgIFVzZWZ1bCBmb3IgYWRkaW5nIHBhZGRpbmcgdG8gYnVmZmVycy4KCSAgQWxzbyB1cGRhdGVzIC5kZWYgZmlsZSBhbmQgZG9jcy4KCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfZmlsbCgpCgoyMDEwLTAxLTI4IDExOjU3OjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBdm9pZCBtZXNzaW5nIHBhZHMgYWN0aXZhdGlvbgoJICBUeXBlZmluZCBtaWdodCBtZXNzIHVwIHBhZHMgbW9kZXMgKHB1bGwvcHVzaCkgaWYgYQoJICBkb3duc3RyZWFtIGVsZW1lbnQgaXMgcGx1Z2dlZCBhbmQgaXRzIHBhZHMgYWN0aXZhdGVkCgkgIGluICdzdGVwIDInIG9mIHR5cGVmaW5kIHBhZHMgYWN0aXZhdGlvbi4KCSAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgdGhlIGZvbGxvd2luZyBzdGVwcyBkb24ndCBjaGVjawoJICBpZiB3ZSBhbHJlYWR5IGVtaXR0ZWQgdHlwZWZvdW5kIGR1ZSB0byB1cHN0cmVhbSBzZXR0aW5nCgkgIGNhcHMgb24gYnVmZmVycyBiZWluZyBwdWxsZWQgaW4gdGhlIHR5cGVmaW5kIGhlbHBlcnMuCgkgIEF2b2lkIHRoYXQgYnkgY2hlY2tpbmcgaWYgdHlwZWZvdW5kIGlzIGFscmVhZHkgZW1taXRlZC4KCSAgRml4ZXMgIzYwODAzNgoKMjAxMC0wMi0xMiAxNDo0OTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IE1ha2UgbG9ja2luZyBvZiB0aGUgc2VnbWVudCBhIGJpdCBtb3JlIHN0cmljdCBhbmQgdXBkYXRlIGRvY3VtZW50YXRpb24KCSAgVXBkYXRpbmcgdGhlIHNlZ21lbnQgdmFsdWVzIG11c3Qgb25seSBiZSBkb25lIHdoaWxlIGhvbGRpbmcgdGhlCgkgIFNUUkVBTV9MT0NLIGFuZCBPQkpFQ1RfTE9DSy4gVGhpcyBtZWFucywgcmVhZGluZyBjYW4gYmUgZG9uZSBhcwoJICBsb25nIGFzIG9uZSBvZiB0aGVtIGlzIGhlbGQsIG5vdCBib3RoLCB3aGljaCByZW1vdmVzIHNvbWUgbG9jay11bmxvY2sKCSAgYmxvY2tzIGZyb20gcGVyZm9ybWFuY2UgY3JpdGljYWwgY29kZSBwYXRocy4KCSAgQWxzbyBkb2N1bWVudCwgdGhhdCBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCgpICptdXN0KiBiZSBjYWxsZWQgaW4KCSAgc3RhdGVzIDw9IFJFQURZIGFuZCBhZGQgYW4gYXNzZXJ0aW9uIGZvciB0aGlzLiBDaGFuZ2luZyB0aGUgZm9ybWF0CgkgIGxhdGVyIHdpbGwgY29tcGxldGVseSBtZXNzIHVwIHRoZSBzZWdtZW50IGluZm9ybWF0aW9uLgoKMjAxMC0wMi0wOCAwOToxMjowMSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIHB3Zzogc2V2ZXJhbCB0eXBvIGZpeGVzCgkgIEZpeGVzICM2MDkyODYuCgoyMDEwLTAyLTA5IDE3OjUyOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBQcm90ZWN0IHNlZ21lbnQgdmFsdWVzIGZyb20gY29uY3VycmVudCBhY2Nlc3MgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcwoJICBUaGlzIGNvdWxkIGhhcHBlbiBlYXNpbHkgaW4gdGhlIHF1ZXJ5IGZ1bmN0aW9ucyBvciB3aGVuIHRoZSBzaXplIGlzIHNldAoJICBvbiBhcHBzcmMgZnJvbSBzb21lIG5vbi1zdHJlYW1pbmcgdGhyZWFkLgoKMjAxMC0wMi0wNCAyMToxMToyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IFByb3RlY3QgaW50ZXJuYWwgZmllbGRzIGZyb20gY29uY3VycmVudCBjaGFuZ2VzIGZyb20gZGlmZmVyZW50IHRocmVhZHMKCSAgRml4ZXMgYnVnICM2MDg4NzcuCgoyMDEwLTAyLTExIDIwOjE0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3QgbGVhayB0aW1lb3V0IEdTb3VyY2UKCjIwMTAtMDItMTEgMDA6MTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogZmxlc2ggb3V0IHJlbGVhc2UgZG9jIHNvbWUgbW9yZQoKMjAxMC0wMi0xMSAwMToxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNQUlOVEFJTkVSUzoKCSAgVXBkYXRlIE1BSU5UQUlORVJTLCBhZGQgbXlzZWxmCgoyMDEwLTAyLTExIDE5OjQ5OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrIHRvIGRldmVsb3BtZW50CgkgIFNsdXNoeSBmcmVlemUgcmVtYWlucyBpbiBlZmZlY3QuCgo9PT0gcmVsZWFzZSAwLjEwLjI2ID09PQoKMjAxMC0wMi0xMCAxOToxNzoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI2CgoyMDEwLTAyLTEwIDE1OjMyOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMi0wOSAxNTo1MjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZGVmaW5lIEdTVF9QTFVHSU5fU0NBTk5FUl9JTlNUQUxMRUQgaW4gd2luMzIgY29uZmlnLmgKCSAgRXZlbiBpZiBpdCdzIG5vdCB1c2VkLCBpdCBzdGlsbCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciB0aGluZ3MgdG8KCSAgY29tcGlsZS4KCjIwMTAtMDItMDkgMTA6MTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdF9wcml2YXRlOiBNU1ZDIGRvZXNuJ3Qgc2VlbSB0byBsaWtlICN3YXJuaW5nCgkgIFZpc3VhbCBTdHVkaW8gY29tcGxhaW5zIGFib3V0ICJpbnZhbGlkIHByZXByb2Nlc3NvciBjb21tYW5kICd3YXJuaW5nJyIKCSAgZXZlbiBpZiB0aGUgaWZkZWYgZG9lc24ndCB0cmlnZ2VyLCBzbyBqdXN0IHJlbW92ZSB0aGlzIGFnYWluLgoKMjAxMC0wMi0xMCAxNDo0MDoxNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IEZpeCBtdWx0aXF1ZXVlIHRlc3QgZm9yIGxhdGVzdCBjb21taXRzLgoJICBUaGUgcHJvYmxlbSBsaWVzIGluIHRoZSBmYWN0IHRoYXQgbXVsdGlxdWV1ZSB3aWxsIG5vdyBvcGVyYXRlIHNvbWV3aGF0CgkgIHNpbWlsYXJseSB0byB0aGUgZmxvdyBhZ2dyZWdhdGlvbiBsb2dpYyBvZiBkZW11eGVycyBhbmQgdGhlcmVmb3JlCgkgIHdpbGwgc3RvcHAgd2hlbmV2ZXIgYWxsIGRvd25zdHJlYW0gcGFkcyByZXR1cm4gTk9UX0xJTktFRCBhbmQvb3IKCSAgVU5FWFBFQ1RFRCBhbmQgdGhlcmUncyBubyBtb3JlIGJ1ZmZlcnMgdG8gcHVzaC4KCSAgVGhlIGxhdGVzdCBjb21taXRzIHNob3VsZCBub3QgYWZmZWN0IGFueSByZWd1bGFyIHVzZS1jYXNlLCBidXQgdGhlIGJ1ZwoJICByZXBvcnQgd2lsbCBiZSBrZXB0IG9wZW4gc28gdGhlIHByZXZpb3VzIGJlaGF2aW91ciBjYW4gYmUgcmUtZXN0YWJsaXNoZWQKCSAgaWYgbmVlZGVkLgoJICBGaXhlcyAjNjA5NDg2CgoyMDEwLTAyLTA5IDE1OjUxOjE4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHN0b3AgdGhyZWFkcyBvbiBVTkVYUEVDVEVEIGFuZCBmb3J3YXJkIGZsb3cgcmV0dXJucy4KCSAgV2hlbiBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIEdTVF9GTE9XX1VORVhQRUNURUQgd2Ugd2FudCB0bzoKCSAgKiBsZXQgdGhlIGRhdGFxdWV1ZSB0YXNrIHJ1bm5pbmcKCSAgKiBmb3J3YXJkIHRoZSBmbG93IHJldHVybiB1cHN0cmVhbS4KCSAgVGhpcyBhbGxvd3MgdXBzdHJlYW0gZWxlbWVudHMgdG8gcHVzaCBFT1MsIGFuZCBoYXZlIHRoYXQgRU9TIGV2ZW50IGNvbWUKCSAgZG93bnN0cmVhbS4KCSAgRml4ZXMgIzYwOTI3NAoKMjAxMC0wMi0wOSAxMzozNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIFJldmVydCAibXVsdGlxdWV1ZTogaGFuZGxlIFVORVhQRUNURUQgZmxvd3JldHVybiBiZXR0ZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZmJkZjRkY2VkYWQ4NjkyZjFlM2Q4ODM4NTUxMTg4OTg3ZTQ2MmU3NC4KCSAgUGFydGx5IGZpeGVzICM2MDkyNzQKCjIwMTAtMDEtMjggMDc6Mjc6NDkgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZS5zaDogRml4IGlzc3VlcwoKMjAxMC0wMi0wNyAwOTo1OToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBSZXZlcnQgImRvY3M6IGZpeCBBU0NJSSBhcnQgc28gdGhhdCBpdGVyYXRvcnMgYXJlIGFsaWduZWQgcHJvcGVydHkgdG8gdGhlIGRpYWdyYW0iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWU2MGQwNmU5ZTQwMWQxZWQ0ZGU1ZWYyNWI1YzI4M2RiMDY5NmEzMSAoZml4ZXM6ICM2MDkxNjYpCgoyMDEwLTAyLTA0IDE4OjMwOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI1LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDItMDQgMTc6NDU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2RlLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3N2LnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHRyYW5zbGF0aW9uIHVwZGF0ZXMKCjIwMTAtMDItMDEgMTI6NTA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogZml4IEFTQ0lJIGFydCBzbyB0aGF0IGl0ZXJhdG9ycyBhcmUgYWxpZ25lZCBwcm9wZXJ0eSB0byB0aGUgZGlhZ3JhbQoKMjAxMC0wMi0wMSAxNzo0MDowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgZ3N0Ynl0ZXdyaXRlcjogRml4IGRpZmZlcmVudCBmdW5jdGlvbiBuYW1lcyBpbiAuaCBhbmQgLmMKCSAgZ3N0X2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfYnVmZmVyIHdhc24ndCBkZWNsYXJlZAoJICBpbiAuaCwgaW5zdGVhZCB0aGVyZSB3YXMgX3Jlc2V0X2FuZF9nZXRfZGF0YV9hc19idWZmZXIuCgkgIFJlcGxhY2UgaXQgd2l0aCB0aGUgcmVhbCBmdW5jdGlvbiBuYW1lLCB0aGF0IGlzIHNtYWxsZXIKCSAgYW5kIG1hdGNoZXMgZ3N0X2J5dGVfd3JpdGVyX2ZyZWVfYW5kX2dldF9idWZmZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwODcyNgoKMjAxMC0wMS0zMSAxNzozMDo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIFNpbmNlOiBtYXJrZXJzIHRvIGJ1ZmZlciBsaXN0IGRvY3MKCjIwMTAtMDEtMzAgMTg6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGZpeCB0eXBvIGluIHdhcm5pbmcgbWVzc2FnZQoJICBTcG90dGVkIGJ5IGJzcmVlcmVuakBnbWFpbC5jb20uCgkgIEZpeGVzICM2MDg0NDIuCgoyMDEwLTAxLTMwIDE1OjE3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTVkNDdhNiB0byA5NmRjNzkzCgoyMDEwLTAxLTMwIDEzOjQ1OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgaW5pdDogZG9uJ3Qgc3BldyB3YXJuaW5nIGFib3V0IGxhdGUgZ190aHJlYWRfaW5pdCgpcyBpZiBHTGliID49IDIuMjMuMgoJICBMYXRlIGdfdGhyZWFkX2luaXQoKSBpcyBmaW5lIHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9ucyBhbmQgZG9uZSBhdXRvbWF0aWNhbGx5CgkgIGZyb20gZ190eXBlX2luaXQoKSB0aGVyZSwgc28gZG9uJ3Qgd2FybiBpZiB0aGUgYXBwbGljYXRpb24gaGFzbid0IGNhbGxlZAoJICBnX3RocmVhZF9pbml0KCkgeWV0IHdoZW4gZ3N0X2luaXQoKSBpcyBjYWxsZWQgd2l0aCBuZXcgR0xpYiB2ZXJzaW9ucy4KCSAgRml4ZXMgIzYwODM5OC4KCjIwMTAtMDEtMjkgMDk6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcGtnY29uZmlnOiBkb24ndCBwdXQgLURHX1RIUkVBRFNfTUFOREFUT1JZIGludG8gb3VyIHBrZy1jb25maWcgQ0ZMQUdTCgkgIElmIHdlIGZvcmNlIC1ER19USFJFQURTX01BTkRBVE9SWSBvbnRvIGFwcHMsIHRoZW4gZ190aHJlYWRfc3VwcG9ydGVkKCkKCSAgd2lsbCBhbHdheXMgZXZhbHVhdGUgdG8gVFJVRSwgc28gdGhlIHR5cGljYWwgdGhyZWFkIGluaXRpYWxpc2F0aW9uCgkgIGJvaWxlcnBsYXRlIGNvZGUgaWYgKCFnX3RocmVhZF9zdXBwb3J0ZWQoKSkgZ190aHJlYWRfaW5pdChOVUxMKTsgd2lsbAoJICBubyBsb25nZXIgd29yaywgYW5kIHRoZSB0aHJlYWRpbmcgc3lzdGVtIG5vdCBiZSBpbml0aWFsaXNlZCBhbmQgdXMKCSAgcHJpbnRpbmcgYSB3YXJuaW5nIGluIGdzdF9pbml0LiBUaGlzIG1heSBiZSBmaW5lIGluIG1vc3QgY2FzZXMsIHNpbmNlCgkgIGxhdGUgaW5pdGlhbGlzYXRpb24gaXMgYWxsb3dlZCBhbmQgYXV0b21hdGljYWxseSBkb25lIGluIGdfdHlwZV9pbml0KCkKCSAgc2luY2UgR0xpYiAyLjIzLjIsIGJ1dCBsZXQncyBiZSBjYXV0aW91cyBhbmQgb25seSB1c2UgdGhpcyBkZWZpbmUgd2hlbgoJICBjb21waWxpbmcgR1N0cmVhbWVyIGl0c2VsZi4KCSAgU2VlICM2MDgzOTguCgoyMDEwLTAxLTI4IDE1OjU1OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBUYWtlIHN0YXJ0X3RpbWUgYWZ0ZXIgY2hhaW5pbmcgdXAgdG9vCgkgIFJlZmFjdG9yIHRoZSBjb2RlIHRvIHRha2UgdGhlIGN1cnJlbnQgc3RhcnRfdGltZSB3aGVuIGdvaW5nIHRvIFBBVVNFRC4KCSAgTWFrZSBzdXJlIHdlIGFsc28gY2FsbCB0aGUgc3RhcnRfdGltZSB1cGRhdGUgY29kZSBhZnRlciB3ZSBjaGFpbmVkIHVwIHRvIHRoZQoJICBwYXJlbnQgYmluLgoJICBGaXhlcyAjNjA3ODQyCgoyMDEwLTAxLTI2IDE4OjU5OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yNS4yIHByZS1yZWxlYXNlCgoyMDEwLTAxLTI3IDAwOjIzOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVja3M6IGZpeCBzcHVyaW91cyBnaG9zdCBwYWQgY2hlY2sgZmFpbHVyZQoKMjAxMC0wMS0yNiAxOTozNTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSB3aW5kb3dzIGhlYWRlcnMgdG8gbGF0ZXN0IHZlcnNpb24KCjIwMTAtMDEtMjYgMTk6MzI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogbWlub3IgdXBkYXRlIHRvIHJlbGVhc2Ugbm90ZXMKCjIwMTAtMDEtMjYgMTg6NDU6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9uIGZpbGVzCgoyMDEwLTAxLTI2IDE4OjM5OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSAgdGVzdHM6IGZpeCB3YXJuaW5nIGluIHJ0cG9vbC10ZXN0CgkgIFRoZSBzdHJlYW0gc3RhdHVzIG1lc3NhZ2Ugb2JqZWN0IG1heSBiZSBvZiBhIG5vbi1HT2JqZWN0IHR5cGUsIGUuZy4KCSAgR19UWVBFX1BPSU5URVIgKHNlZSBHc3RBdWRpb1NyYyksIHNvIHByaW50IHRoYXQgcHJvcGVybHkgaW5zdGVhZAoJICBvZiBhc3N1bWluZyB0aGUgdmFsdWUgaG9sZHMgYW4gb2JqZWN0LgoKMjAxMC0wMS0yNiAxMjo0MzowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGhhbmRsZSBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gYmV0dGVyCgkgIFdoZW4gd2UgcmVjZWl2ZSBhbiBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gZnJvbSBkb3duc3RyZWFtLCB3ZSBtdXN0IG5vdCBzaHV0ZG93bgoJICB0aGUgcHVzaGluZyB0aHJlYWQgYmVjYXVzZSB1cHN0cmVhbSB3aWxsIGF0IHNvbWUgcG9pbnQgcHVzaCBhbiBFT1MgdGhhdCB3ZSBzdGlsbAoJICBuZWVkIHRvIHB1c2ggZnVydGhlciBkb3duc3RyZWFtLgoJICBUbyBhY2hpZXZlIHRoaXMsIGNvbnZlcnQgdGhlIFVORVhQRUNURUQgcmV0dXJuIHZhbHVlIHRvIE9LLiBBZGQgYSBmaXhtZSBzbyB0aGF0CgkgIHdlIGltcGxlbWVudCB0aGUgcmlnaHQgbG9naWMgdG8gcHJvcGFnYXRlIHRoZSBmbG93cmV0dXJuIHVwc3RyZWFtIGF0IHNvbWUgcG9pbnQuCgkgIEFsc28gY2xlYW4gdXAgdGhlIHVuaXQgdGVzdCBhIGxpdHRsZS4KCSAgRml4ZXMgIzYwODEzNgoKMjAxMC0wMS0yNiAwODo1MjoxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogRml4IGJhc2ljcy1idXMgZG9jcwoJICBGaXggd3JvbmcgaW5mb3JtYXRpb24gYWJvdXQgYnVzIHdhdGNoIGZ1bmN0aW9ucyBpbiB0aGUKCSAgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgbWFudWFsLgoJICBGaXhlcyAjNjA4MTI3CgoyMDEwLTAxLTI0IDIzOjEyOjIyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYmluOiBhbHNvIHJlbW92ZSBwcml2YXRlIGZ1bmN0aW9uIGZyb20gZGVmIGZpbGUKCjIwMTAtMDEtMjQgMjM6MDQ6MjcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBtYWtlIGEgaW50ZXJmYWNlIHZtZXRob2QgaW1wbGVtZW50YXRpb24gc3RhdGljCgkgIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhbnkgdHJvdWJsZXMgLSB0aGUgbWV0aG9kcyB3YXNuJ3QgaW4gYW55IGhlYWRlci4KCjIwMTAtMDEtMjQgMjI6MjI6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IHJlbW92ZSA7IGFmdGVyIH0KCjIwMTAtMDEtMjIgMTg6MDA6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBzb21lIGRvY3MgdG8gbWFyayBuZXcgcHJvcGVydHkKCjIwMTAtMDEtMjIgMTc6NTU6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkZCBvcHRpb24gdG8gcmVtb3ZlIHRoZSB0ZW1wLWZpbGUKCSAgQWRkIGFuIG9wdGlvbiB0byBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgdGVtcCBmaWxlIChUUlVFIGJ5IGRlZmF1bHQpLiBUaGlzCgkgIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIGZvciB0aGUgYXBwbGljYXRpb24gdG8ga2VlcCB0aGUgdGVtcCBmaWxlIGJ5IG90aGVyIG1lYW5zCgkgIHRoYW4gaGFyZGxpbmtpbmcgb3IgaG9sZGluZyBhbiBmZCBvcGVuLgoJICBGaXhlcyAjNjA3NzM5CgoyMDEwLTAxLTIyIDAyOjAyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBsZWFrIHVyaSBzdHJpbmcKCjIwMTAtMDEtMjEgMTY6MTk6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5kZXguaDoKCSAgZ3N0aW5kZXg6IHJldGFiIC5oIGZpbGUKCjIwMTAtMDEtMjAgMTQ6MTM6MTEgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBSdW4gZ190aHJlYWRfaW5pdCgpIHVuY29uZGl0aW9uYWxseQoJICBTaW5jZSB3ZSBkZWZpbmUgR19USFJFQURTX01BTkRBVE9SWSwgZ190aHJlYWRfc3VwcG9ydGVkKCkgZXZhbHVhdGVzIHRvCgkgIFRSVUUgdW5jb25kaXRpb25hbGx5LCBzbyBjYWxsaW5nIGdfdGhyZWFkX2luaXQoKSBuZXZlciBoYXBwZW5lZC4KCjIwMTAtMDEtMjAgMTA6NTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGZpeCBjb21waWxlciB3YXJuaW5nIG9uIHdpbjMyCgkgIE1vdmUgdmFyaWFibGUgdGhhdCdzIG9ubHkgdXNlZCBvbiB1bml4IGludG8gdGhlIHVuaXggYmxvY2sgc28gdGhhdAoJICB0aGUgY29tcGlsZXIgZG9lc24ndCBjb21wbGFpbiBhYm91dCB0aGUgdW51c2VkIHZhcmlhYmxlIG9uIHdpbjMyCgkgIChzZWUgIzU5NzY2MikuCgoyMDEwLTAxLTIwIDA5OjQ1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiB0cnkgc2Nhbm5lciBzZXQgdmlhIGVudiB2YXIgYmVmb3JlIHVzaW5nIHRoZSBpbnN0YWxsZWQgb25lCgkgIElmIHRoZSBHU1RfUExVR0lOX1NDQU5ORVIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LCB3ZSBzaG91bGQgdHJ5CgkgIHRoZSBzY2FubmVyIHNwZWNpZmllZCB0aGVyZSBmaXJzdCwgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBzY2FubmVyIGJpbmFyeQoJICBpcyB1c2VkIGZvciB1bmluc3RhbGxlZCBzZXR1cHMgYW5kIGJ1aWxkcyBmcm9tIHNvdXJjZSB3aGVuIHRoZXJlJ3MKCSAgYWxyZWFkeSBhbiBpbnN0YWxsZWQgdmVyc2lvbi4KCjIwMTAtMDEtMjAgMDY6NTg6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGJ1aWxkOiBEZWZpbmUgR19USFJFQURTX01BTkRBVE9SWSBldmVyeXdoZXJlCgkgIFdlIHJlcXVpcmUgdGhyZWFkcyB0byBiZSBzdXBwb3J0ZWQgaW4gYW55IGNhc2UgYW5kIGRlZmluaW5nIHRoaXMKCSAgd2lsbCBzaW1wbGlmeSB0aGUgbXV0ZXgsIGNvbmRpdGlvbiB2YXJpYWJsZSwgZXRjLiBtYWNyb3MgZnJvbSBndGhyZWFkCgkgIHRvIG5vdCBhbHdheXMgY2hlY2sgaWYgdGhyZWFkcyBhcmUgcmVhbGx5IHN1cHBvcnRlZC4KCSAgRml4ZXMgYnVnICM2MDc0ODEuCgoyMDEwLTAxLTA4IDIwOjU2OjE4ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcGx1Z2lubG9hZGVyOiBkaXNhYmxlIGV4dGVybmFsIHBsdWdpbiBsb2FkZXIgb24gV2luZG93cyB1bnRpbCBpdCBpcyBwb3J0ZWQgcHJvcGVybHkKCSAgU2VlICM1OTc2NjIuCgoyMDEwLTAxLTIwIDAxOjA5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZ3N0X3ByaXZhdGUuaDogbWFrZSBzdXJlIGdzdF9wcml2YXRlLmggaXMgaW5jbHVkZWQgYmVmb3JlIGdsaWIuaAoJICBGb3IgdGhlIHJlYXNvbiBvdXRsaW5lZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGdzdF9wcml2YXRlLmggKGlubGluZQoJICBmdW5jdGlvbnMgaW4gZ2xpYiBtYXkgbmVlZCB0aGUgZ19sb2dfZG9tYWluIHZhcmlhYmxlKS4gQWxzbyBpbmNsdWRlCgkgIGdzdF9wcml2YXRlLmggYmVmb3JlIHVzaW5nIGFueSBHX09TXyogZGVmaW5lcywgZXNwLiBpbiBwbHVnaW4gbG9hZGVyLgoKMjAxMC0wMS0yMCAwMTozMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogbWlub3IgZ3RrLWRvYyBtYXJrdXAgZml4ZXMKCjIwMTAtMDEtMjAgMDA6NTM6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNGNlYzg5IHRvIDE1ZDQ3YTYKCjIwMTAtMDEtMTkgMTY6Mzk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIGRvY3M6IHNtYWxsIGRvY3MgdXBkYXRlcwoKMjAxMC0wMS0xOSAxNDowNzoyMyArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBkaXJlY3RseSBzZXQgdGhlIGNhcHMgd2hlbiBwdXNoaW5nIGJ1ZmZlciB3aXRoIGRpZmZlcmVudCBjYXBzLgoJICBUaGlzIGNoZWNrIGlzIG5vdCBuZWNlc2FycnkgYXMgd2UgYXJlIG5vdCBuZWdvdGlhdGluZyBhbnltb3JlLiBBbmQgaXQgY2FuCgkgIGJlIHdyb25nIGlmIHVwc3RyZWFtIGNhbid0IHByb2R1Y2UgdGhpcyBjYXBzIGFueW1vcmUsIGJ1dCBkb3duc3RyZWFtIGNhbgoJICBwcm9jZXNzIHRoZW0gZmluZS4KCjIwMTAtMDEtMTggMTM6NTc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogVGhlIEdWYWx1ZSBjb2xsZWN0aW9uIGZ1bmN0aW9uIGNhbiBub3QgYXNzdW1lIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzIGluaXRpYWxpemVkCgkgIC4uLmFuZCBpdCB3aWxsIHVzdWFsbHkgYmUgZWl0aGVyIGZpbGxlZCBieSB6ZXJvZXMgb3IgcmFuZG9tIHZhbHVlcy4KCSAgRml4ZXMgYnVnICM2MDcyODMuCgoyMDEwLTAxLTE2IDIxOjUyOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBPbmx5IHVzZSBzdWdnZXN0ZWQgY2FwcyBpbiBidWZmZXIgYWxsb2NhdGlvbiBpZiBhIHNpemUgd2FzIHN1Z2dlc3RlZCB0b28KCjIwMTAtMDEtMTYgMTk6NDE6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBzdXBlcmZsdW91cyBndWFyZCBhZ2FpbnN0IE5VTEwKCSAgQWxsIGNhbGxlcnMgb2YgdGhpcyBzdGF0aWMgZnVuY3Rpb24gYWxyZWFkeSBjaGVjayBmb3IgTlVMTC1uZXNzCgkgIHRoZW1zZWx2ZXMsIHNvIG5vIG5lZWQgdG8gZG8gaXQgYWdhaW4gKGFuZCBpZiB3ZSBkbyBpdCwgd2Ugc2hvdWxkCgkgIHByb2JhYmx5IGRvIHNvIGJlZm9yZSBkZXJlZmVyZW5jaW5nIHRoZSBwb2ludGVyIGZvciB0aGUgZmlyc3QgdGltZSkuCgoyMDA5LTEyLTE3IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbWljcm8tb3B0aW1pc2Ugc29tZSBnZXR0ZXJzCgkgIEF2b2lkIGNoZWNraW5nIHRoZSBHVHlwZSBvZiB0aGUgdmFsdWUgdHdpY2UgKG9uY2Ugb24gb3VyIHNpZGUgYW5kCgkgIG9uY2UgaW4gZ192YWx1ZV9nZXRfKigpKSBieSBieS1wYXNzaW5nIGdfdmFsdWVfZ2V0KCkgYW5kIGFjY2Vzc2luZwoJICB0aGUgR1ZhbHVlIHN0cnVjdHVyZSBkaXJlY3RseS4KCjIwMTAtMDEtMTUgMTg6MzY6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiB1cGRhdGUgZG9jcyBhIGxpdHRsZQoKMjAxMC0wMS0xNSAwMDo0NjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBtaW5vciByZWxlYXNlIGRvY3MgdXBkYXRlCgoyMDEwLTAxLTE0IDIwOjE5OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgYnVmZmVycyB3aXRoIE5VTEwgY2FwcyBjb3JyZWN0bHkKCSAgVGhpcyBtZWFucyB0aGF0IHRoZSBjYXBzIGRpZG4ndCBjaGFuZ2Ugc28gZG9uJ3QgdHJ5IHRvIGhhbmRsZQoJICB0aGUgTlVMTCBjYXBzIGFzIHRoZSBuZXcgY2Fwcy4KCjIwMTAtMDEtMTQgMTA6NDQ6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIGRvY3M6IE1vdmUgZmllbGQgc3BlY2lmaWMgU2luY2UgbWFya2VycyBhdCB0aGUgc2FtZSBsaW5lCgkgIEZpeGVzIGdvYmplY3QtaW50cm9zcGVjdGlvbiB3YXJuaW5ncyBhYm91dCBTaW5jZSBiZWluZyBkZWZpbmVkIG11bHRpcGxlIHRpbWVzLgoKMjAxMC0wMS0xMyAxMDoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJICBmYXE6IHJlbW92ZSByZXZpc2lvbiBoaXN0b3J5IHRoYXQgbm8gb25lIHVwZGF0ZXMgb3IgY2FyZXMgYWJvdXQgYW55d2F5CgoyMDEwLTAxLTEzIDA5OjMyOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IGZpeCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBvbiBjZ2l0CgkgIEZpeCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBub3cgdGhhdCBpdCdzIGJlZW4gbW92ZWQsIGFuZCBmaXggYSB0eXBvCgkgIHdoaWxlIHdlJ3JlIGF0IGl0LiBBbHNvIGFkZCBhIG5ldyBzZWN0aW9uIHRvICdCdWlsZGluZyBHU3RyZWFtZXIgZnJvbQoJICBnaXQnIHRoYXQgcG9pbnRzIHRvIHRoZSAnSG93IGRvIEkgZGV2ZWxvcCBhZ2FpbnN0IGFuIHVuaW5zdGFsbGVkIGNvcHkKCSAgb2YgR1N0cmVhbWVyJyBzZWN0aW9uLgoKMjAxMC0wMS0xMyAxMDozMjo0NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogUkVBRE1FOgoJICBkb2NzOiB3ZSdyZSBpbiBnaXQgc2luY2UgYSB3aGlsZQoKMjAxMC0wMS0xMyAxMDozMToyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogTWFrZWZpbGUuYW06CgkqIFJFQURNRToKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBtb3ZlIGdzdC11bmluc3RhbGxlZCBmcm9tIGRvY3MvZmFxIHRvIHNjcmlwdHMKCSAgRG9uJ3QgaW5jbHVkZSB0aGUgbG9uZyBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGluIHZlcmJhdGltIGluIHRoZSBmYXEgYW55bW9yZQoJICAodGhlcmUgaXMgYSBsaW5rIHRvIGNnaXQpLiBEaXN0IHRoZSBzY3JpcHQgdW5kZXIgaXRzIG5ldyBsb2NhdGlvbi4KCjIwMTAtMDEtMTIgMjE6MzQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBzb21lIG1vcmUgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWVzCgoyMDEwLTAxLTEyIDIwOjIxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBzdHJkdXAvZnJlZSB3aGVuIHJlYWRpbmcgdGhlIGJpbmFyeSByZWdpc3RyeQoJICBTdHJpbmdzIGluIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXJlIE5VTC10ZXJtaW5hdGVkLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlbQoJICBkaXJlY3RseSBpZiB3ZSBvbmx5IG5lZWQgdGhlbSB0ZW1wb3JhcmlseSwgYW5kIGF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvY3MKCSAgYW5kIGZyZWVzLgoKMjAxMC0wMS0xMiAxNzozODozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogdXNlIG5ldyB0eXBlZmluZCBmdW5jdGlvbgoJICBSZWZhY3RvciBhIGxpdHRsZS4KCSAgVXNlIHRoZSBuZXcgdHlwZWZpbmQgaGVscGVyIGZ1bmN0aW9uIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9uIHRvIHNwZWVkIHVwCgkgIHR5cGVmaW5kaW5nLgoKMjAxMC0wMS0xMiAxNzozNDozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHR5cGVmaW5kOiBhZGQgYSBuZXcgbWV0aG9kIHRoYXQgYWxzbyB1c2VzIHRoZSBmaWxlIGV4dGVuc2lvbgoJICBBZGQgYSBtZXRob2QgdG8gcGVyZm9ybSBnZXRfcmFuZ2UgdHlwZWZpbmRpbmcgdGhhdCBhbHNvIHVzZXMgdGhlCgkgIHVyaS9sb2NhdGlvbiBleHRlbnNpb24gYXMgYW4gZXh0cmEgaGludC4gSXQgd2lsbCBmaXJzdCB0cnkgdG8gY2FsbCB0aGUKCSAgdHlwZWZpbmQgZnVuY3Rpb25zIG9mIHRoZSBmYWN0b3JpZXMgdGhhdCBoYW5kbGUgdGhlIGdpdmVuIGV4dGVuc2lvbi4gVGhlIHJlc3VsdAoJICBpcyB0aGF0IGluIHRoZSBjb21tb24gY2FzZSwgd2Ugb25seSBjYWxsIG9uZSB0eXBlZmluZCBmdW5jdGlvbiwgd2hpY2ggc3BlZWRzIHVwCgkgIHRoZSB0eXBlZmluZGluZyBhIGxvdC4KCjIwMTAtMDEtMTEgMTQ6NTg6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBRb1MgZG9jdW1lZW50CgkgIEFkZCBzb21lIGlkZWFzIGFib3V0IGEgbmV3IFFvUyBtZXNzYWdlLgoJICBTZWUgYWxzbyAjMzIyOTQ3CgoyMDEwLTAxLTExIDExOjM4OjMyICswMTAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBtYWtlIHJlbGVhc2VfcGFkIHRocmVhZHNhZmUKCSAgUHJvdGVjdCB0aGUgLT5yZW1vdmVkIGZpZWxkIHdpdGggdGhlIG9iamVjdCBsb2NrIGFzIHdlbGwuIFRha2UgdGhlIERZTiBsb2NrCgkgIGVhcmxpZXIgc28gdGhhdCB3ZSBjYW4gbWFyayB0aGUgcGFkIHJlbW92ZWQgYW5kIGF2b2lkIGEgcmFjZSBpbiBwYWRfYWxsb2MuCgkgIEZpeGVzICM2MDY0MzUKCjIwMDktMTItMTEgMTc6NDY6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDEwLTAxLTEwIDIxOjQ5OjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGRlZmVyIGdldHRpbmcgdGhlIGNsYXNzZXMgdW50aWwgd2UgYWN0dWFseSBuZWVkIHRoZW0KCSAgVGhpcyBmdW5jdGlvbiBoYXMgYSBsb3Qgb2YgZWFybHkgcmV0dXJucy4gR2l2ZSB0aGVtIHNvZW0gbW9yZSBiZW5lZml0LgoKMjAxMC0wMS0xMCAyMTo0MDoyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCBleHRyYSBob3AgaW4gZ3N0X2VsZW1lbnRfbGluawoJICBObyBuZWVkIHRvIGNhbGwgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkIHdpdGggZmlsdGVyPU5VTEwsIHdoaWNoIHdvdWxkCgkgIGNhbGwgZ3N0X2VsZW1lbnRfbGlua19wYWRzKCkgaW4gdGhhdCB3YXkuIENhbGwgaXQgZGlyZWN0bHkgdG8gc2F2ZSBhIGNhbGwgYW5kCgkgIGV4cGVuc2l2ZSBnb2JqZWN0IHR5cGUgY2hlY2tzLgoKMjAxMC0wMS0xMCAxNzozOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcmVtb3ZlIHNvbWUgY3J1ZnQgZnJvbSBoZWFkZXIgZmlsZQoJICBSZW1vdmUgc29tZSBjcnVmdCBmcm9tIHRoZSBnc3RjaGVjayBoZWFkZXIgZmlsZSB0aGF0J3Mgbm90IG5lZWRlZAoJICBhbnkgbG9uZ2VyIG5vdyB0aGF0IHdlIHNoaXAgd2l0aCBvdXIgb3duIGNvcHkgb2YgbGliY2hlY2suCgoyMDEwLTAxLTA3IDE3OjQxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1taWRpLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiByZW1vdmUgZW1wdHkgbWlkaSBzZWN0aW9uCgoyMDEwLTAxLTA3IDEzOjQ4OjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAxMC0wMS0wNyAxMzo0Nzo1MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUKCjIwMTAtMDEtMDYgMjA6MDg6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRlZCBzdHJpbmdzCgoyMDEwLTAxLTA2IDIwOjA2OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IG1pbm9yIGRvY3VtZW50YXRpb24gZml4ZXMgZm9yIHJlY2VudGx5LWFkZGVkIHRhZ3MKCSAgTWVudGlvbiB0aGUgdHlwZSBvZiB0aGUgdGFnIGluIHRoZSBndGstZG9jIGJsdXJiLCBzbyBwZW9wbGUga25vdwoJICB3aGljaCBhY2Nlc3NvciBBUEkgdG8gdXNlLCBhbmQgZml4IHVwIHRoZSBkb2MgYmx1cmJzIHRvIG1hdGNoIHRoZQoJICBhY3R1YWwgdGFnIGRlZmluZS4KCjIwMTAtMDEtMDYgMjA6MDQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogZml4IHVwIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3Igc29tZSBuZXcgdGFncwoJICBGaXggdXAgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciBzb21lIHJlY2VudGx5LWFkZGVkIHRhZ3MgdG8gbWF0Y2ggdGhlCgkgIGV4aXN0aW5nIHN0cmluZ3M6IHdlIHdhbnQgc2hvcnQgbW5lbW9uaWMtbGlrZSBzdHJpbmdzIGhlcmUgdGhhdCBzdGFydAoJICB3aXRoIGEgbG93ZXIgY2FzZSBsZXR0ZXIuCgoyMDEwLTAxLTA2IDE5OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRlcHJlY2F0ZSB1c2VsZXNzIGdzdF9yZWdpc3RyeV94bWxfe3JlYWR8d3JpdGV9X2NhY2hlKCkKCSAgVGhlIG9ubHkgcmVhc29uIHRoZXNlIHR3byBmdW5jdGlvbnMgYXJlIHN0aWxsIGFyb3VuZCBpcyB0aGF0IGF0IHNvbWUKCSAgcG9pbnQgaW4gdGhlIHBhc3QgdGhleSB3ZXJlIGluIGEgcHVibGljIGhlYWRlciwgc28gd2UgY2FuJ3QgcmVhbGx5CgkgIHJlbW92ZSB0aGVtIG5vdyBldmVuIHRob3VnaCB0aGV5IHNob3VsZCBoYXZlIGJlZW4gcHJpdmF0ZSBhbGwgYWxvbmcKCSAgKGFuZCBhcmVuJ3QgcmVhbGx5IHBhcnRpY3VsYXJseSB1c2VmdWwpLiBTaW5jZSB0aGVzZSBhcmUganVzdCBlbXB0eQoJICBzdHVicyBub3cgdGhhdCBkbyBub3RoaW5nIGJ1dCByZXR1cm4gRkFMU0UgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbgoJICAwLjExIGFueXdheSwgd2UgbWF5IGp1c3QgYXMgd2VsbCBkZXByZWNhdGUgdGhlbSBmb3JtYWxseS4KCjIwMTAtMDEtMDYgMTk6MTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICBkb2NzOiBhZGQgU2luY2UgbWFya2VycyB0byB0YXNrIHBvb2wgZG9jcyBhbmQgZG9jdW1lbnQgdGFzayBmdW5jdGlvbgoKMjAxMC0wMS0wNiAxODo1MDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbW92ZSBTSEFWRV9JTklUIGJlaGluZCBhbGwgY2hlY2tzCgkgIE1vdmUgU0hBVkVfSU5JVCBiZWhpbmQgYWxsIG90aGVyIGNoZWNrcywgaW4gcGFydGljdWxhciBBR19HU1RfQ0hFQ0tfQ0hFQ0tTLgoJICBUaGlzIHNob3VsZCBmaXggcHJvYmxlbXMgd2l0aCBoZWFkZXIgY2hlY2tpbmcgYW5kIGNoZWNraW5nIGZvciBsb2NhbHRpbWVfciwKCSAgd2hpY2ggY2F1c2VzIGNvbXBpbGF0aW9uIGVycm9ycyB3aXRoIGNsZWFuIGNoZWNrb3V0cyB3aGVyZSBjb21tb24vc2hhdmUgaGFzCgkgIG5vdCBiZWVuIGNyZWF0ZWQgeWV0IHdoZW4gdGhvc2UgY2hlY2tzIGFyZSBydW4uIEl0IHNlZW1zIGxpa2UgU0hBVkVfSU5JVAoJICBjaGFuZ2VzIHRoZSBlbnZpcm9ubWVudCBzbyB0aGF0IGNoZWNrcyBkZXBlbmRpbmcgb24gYSBjb21waWxlciBuZWVkIHNoYXZlCgkgIHRvIGV4aXN0IGF0IHRoYXQgcG9pbnQsIHdoaWNoIHdpbGwgZmFpbCBpZiBBQ19PVVRQVVQgaGFzbid0IGNyZWF0ZWQgaXQgeWV0LgoJICBGaXhlcyAjNjA1OTMwLgoKMjAxMC0wMS0wNSAwMTozNTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJICBjaGVjazogcGF0Y2ggaW50ZXJuYWwgY2hlY2sgY29weSBzb21lIG1vcmUgc28gdGhhdCBmYWlsdXJlcyBhY3R1YWxseSBmYWlsCgkgIEluY2x1ZGUgdW5pc3RkLmggc28gdGhhdCBfUE9TSVhfVkVSU0lPTiBpcyBhY3R1YWxseSBkZWZpbmVkIHdoZW4KCSAgaXQgc2hvdWxkIGJlIGRlZmluZWQuIFdpdGhvdXQgdGhhdCwgc3R1ZmYgbGlrZSBmYWlsX2lmKDEpIGRvZXNuJ3QKCSAgYWN0dWFsbHkgZmFpbCwgcHJlc3VtYWJseSBiZWNhdXNlIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGRvIGluY2x1ZGUKCSAgdW5pc3RkLmggYW5kIHRoZW4gaGF2ZSBfUE9TSVhfVkVSU0lPTiBkZWZpbmVkLgoJICBGaXhlcyAjNjA0NTY1IGV2ZW4gbW9yZS4KCjIwMTAtMDEtMDUgMDA6MDk6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyByZXR1cm5zOiB0YWcKCjIwMDktMTItMzAgMjI6NTY6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNldCBpdGVyYXRlX2ludGVyYWxfbGlua3MgZnVuY3Rpb24gb24gc291cmNlIHBhZAoKMjAwOS0xMi0yNyAxOTozMzoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgdW5uZWVkZWQgY2FzdHMKCjIwMDktMTItMDIgMTk6NDc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgc3ViYnVmZmVyIHN1YmNsYXNzCgkgIE1vdmUgdGhlIHBhcmVudCBidWZmZXIgcG9pbnRlciBpbnRvIHRoZSBHc3RCdWZmZXIgc3RydWN0IHNvIHRoYXQgd2UgY2FuCgkgIHJlbW92ZSB0aGUgc3ViYnVmZmVyIGNsYXNzIGFuZCB0eXBlLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgYWxsb3dzIHVzIHRvCgkgIG1vcmUgbmF0dXJhbGx5IGltcGxlbWVudCBtZXRob2RzIHRvIGdldCB0aGUgcmVhbCB0eXBlIGFuZCBwYXJlbnQKCSAgb2YgYSBzdWJidWZmZXIgKFNlZSAjNTQ1NTAxKS4KCSAgSXQgc2hvdWxkIGFsc28gYmUgc2xpZ2h0bHkgZmFzdGVyIGJlY2F1c2UgdGhlcmUgaXMgbm8gZXh0cmEgb2JqZWN0IGhpZXJhcmNoeSB0bwoJICBpbml0aWFsaXplIGFuZCBmcmVlLgoKMjAwOS0xMi0yNCAxOToyNTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvbid0IGtlZXAgYnVmZmVycyByZWZmZWQgbG9uZ2VyIHRoYW4gbmVlZGVkCgkgIE1ha2Ugc3VyZSB3ZSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIGVhcmx5IHdpdGhvdXQgaW5jcmVhc2luZyBpdHMgcmVmY291bnQKCSAgd2hlbiB3ZSBnbyBpbiB0aGUgY29sbGVjdCBmdW5jdGlvbi4gVGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2YgY29waWVzIG5lZWRlZCBpbgoJICBvcmRlciB0byBtYWtlIHRoZSBidWZmZXIgd3JpdGFibGUgaW4gbW9zdCBjYXNlcy4KCjIwMDktMTItMjQgMTc6MjI6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCB1bm5lZWRlZCBjYXN0cwoKMjAwOS0xMi0yNCAxNjo1MzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGF2b2lkIGRvaW5nIHN1YmJ1ZmZlcnMgd2hlbiB3ZSBjYW4KCSAgSW4gc29tZSBjYXNlcyB3ZSBjYW4gYXZvaWQgYWxsb2NhdGluZyBhIHN1YmJ1ZmZlciBhbmQgaW5zdGVhZCBzaW1wbHkgcmVmCgkgIHRoZSBidWZmZXIuIENhbGxlcnMgc2hvdWxkIHBlcmZvcm0gX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBpbiBhbGwKCSAgY2FzZXMgbm93LgoKMjAwOS0xMi0yNCAxNToyNToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiBhZGQgYWJpbGl0eSB0byBpbnN0YWxsIGNsaXBwaW5nIGZ1bmN0aW9ucwoJICBBZGQgYSBtZXRob2QgdG8gaW5zdGFsbCBhIGNsaXBwaW5nIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gYSBidWZmZXIgaXMKCSAgcmVjZWl2ZWQuIFVzZXJzIG9mIGNvbGxlY3RwYWRzIGNhbiB0aGVuIHBlcmZvcm0gY2xpcHBpbmcgb24gdGhlIGluY29tbWluZwoJICBidWZmZXJzLgoJICBBbHNvIHJldGFiIHRoZSBoZWFkZXIgZmlsZSBhIGxpdHRsZS4KCSAgU2VlICM1OTAyNjUKCjIwMDktMTItMjQgMTU6MTM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBidWZmZXIyIGlkZWFzCgoyMDA5LTEyLTI0IDE0OjQwOjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgYXZvaWQgc29tZSBtb3JlIHR5cGUgY2hlY2tzCgoyMDA5LTEyLTI0IDE0OjIyOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhdm9pZCBzb21lIHR5cGUgY2hlY2tzCgkgIEF2b2lkIHR5cGUgY2hlY2tzIHdoZW4gd2UgY2FuCgkgIERvbid0IG5lZWQgdG8gcGVlayB0aGUgcGFyZW50X2NsYXNzLCB0aGUgYm9pbGVycGxhdGUgZG9lcyB0aGF0IGZvciB1cy4KCjIwMDktMTItMjMgMjE6Mzk6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogYWxzbyBwcmludCBsZWFrZWQgb2JqZWN0cwoJICBNYWtlIHRoZSAtVCBvcHRpb24gYWxzbyBwcmludCB0aGUgbGVha2VkIG9iamVjdHMKCjIwMDktMTItMjMgMjE6Mzc6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGluY2x1ZGUgdHlwZSBuYW1lIGluIGxlYWtlZCBvYmplY3RzCgkgIFdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBhIEdPYmplY3QsIHByaW50IHRoZSB0eXBlIG5hbWUgYWxvbmcgd2l0aAoJICB0aGUgcG9pbnRlciBmb3IgZWFzaWVyIGRlYnVnZ2luZy4KCjIwMDktMTItMjMgMjE6MjA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcHJvYmxlbSB3aXRoIGRlc3Ryb3kgY2FsbGJhY2sgbm90IGJlaW5nIGNhbGxlZAoJICBXaGVuIHdlIHVuYmxvY2sgYSBwYWQgd2l0aCB0aGUgc2FtZSB1c2VyX2RhdGEsIHRoZSBkZXN0cm95IGNhbGxiYWNrIGlzIG5vdAoJICBjYWxsZWQuIFRoaXMgbGVhZHMgdG8gcmVmY291bnRpbmcgbGVha3MgdGhhdCBjYW5ub3QgYmUgYXZvaWRlZC4gSW5zdGVhZCBhbHdheXMKCSAgY2FsbCB0aGUgZGVzdHJveSBub3RpZnkgd2hlbmV2ZXIgd2UgaW5zdGFsbCBhIG5ldyBwYWQgYmxvY2suCgkgIEluIHBhcnRpY3VsYXIsIHRoaXMgZml4ZXMgYSBuYXN0eSBwYWQgbGVhayBpbiBkZWNvZGViaW4yLgoJICBBbHNvIHVwZGF0ZSB0aGUgdW5pdCB0ZXN0IHRvIGhhdmUgbW9yZSBhY2N1cmF0ZSBjb21tZW50cyBhbmQgdGVzdCB0aGUgcmVxdWlyZWQKCSAgYmVoYXZpb3VyLgoKMjAwOS0xMi0yMiAyMjo1MjowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogc21hbGwgY2xlYW51cHMsIHVzZSBzb21lIEdfTElLRUxZCgoyMDA5LTEyLTIyIDE1OjI5OjI2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IERvbid0IGNyYXNoIGlmIHRoZXJlIGlzIG5vIHNvdXJjZSBwYWQKCjIwMDktMTItMjEgMTk6MTE6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0N2NiMjNhIHRvIDE0Y2VjODkKCjIwMDktMTItMjEgMTE6NTg6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZ3N0dGFnbGlzdDogQWRkcyBuZXcgdGFncwoJICBBZGRzIHRoZSBmb2xsb3dpbmcgbmV3IHRhZ3M6CgkgIEdTVF9UQUdfU0hPV19OQU1FCgkgIEdTVF9UQUdfU0hPV19TT1JUTkFNRQoJICBHU1RfVEFHX1NIT1dfRVBJU09ERV9OVU1CRVIKCSAgR1NUX1RBR19TSE9XX1NFQVNPTl9OVU1CRVIKCSAgR1NUX1RBR19MWVJJQ1MKCSAgR1NUX1RBR19DT01QT1NFUl9TT1JUTkFNRQoJICBHU1RfVEFHX0dST1VQSU5HCgkgIEZpeGVzICM1OTk3NTkKCjIwMDktMTItMTkgMTQ6Mjc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFsd2F5cyBjYWxsIG91ciBjaGVjayBjaGVja3MgZm9yIHRoZSBTVUJVTklUIGNvbmRpdGlvbmFsCgkgIFRoZSBTVUJVTklUIGNvbmRpdGlvbmFsIG5lZWRzIHRvIGJlIHNldCBldmVuIGlmIGNoZWNrIGlzIGRpc2FibGVkLiBBbHNvCgkgIHJlbW92ZSBhIEZJWE1FIHRoYXQgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyIC8gYWZ0ZXIgYWxsLgoKMjAwOS0xMi0xOCAyMToyODozNSArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGNoZWNrOiBwYXRjaCBpbnRlcm5hbCBjaGVjayBjb3B5IHNvIGl0IHdvcmtzIHdpdGggb3VyIGJ1aWxkIHN5c3RlbQoJICBGaXhlcyAjNjA0NTY1LgoKMjAwOS0xMi0xOCAyMToyNjowMSArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiB1cGRhdGUgYXV0b3Rvb2xzIGFuZCBkb2NzIHN0dWZmIGZvciBuZXcgY2hlY2sgdmVyc2lvbgoKMjAwOS0xMi0xNyAyMDowOTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGNoZWNrOiB1cGRhdGUgaW50ZXJuYWwgbGliY2hlY2sgdG8gMC45LjgKCjIwMDktMTItMTUgMTg6NTU6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCjIwMDktMTItMTQgMTY6MjI6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZG9jczogbGluayBidXMgYW5kIHRhc2tzCgkgIEFkZCBhIGxpbmsgZnJvbSBidXMgc2VjdGlvbiBkb2NzIHRvIHRoZSB0YXNrIGRvY3MuIEFkZCBhIHBhcmFncmFwaCB0byB0YXNrIGRvY3MKCSAgdG8gdGVsbCBhYm91dCBtZXNzYWdlcyBhbmQgdGhlIGJ1cy4KCjIwMDktMTItMTQgMTU6MTE6NDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IGFkZCBtb3JlIGRvY3MgYXJvdW5kIEdzdFN0YXRlIGFuZCBHc3RTdGF0ZUNoYW5nZQoJICBUYWtlIHJldmlld2VkIGRvY3MgZnJvbSBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlIHRvIGhhdmUgdGhhdCBtb3JlIHByb21pbmVudAoJICBpbnNpZGUgdGhlIGFwaSBkb2NzLiBBZGQgYSBmZXcgc2VudGVuY2VzIHRvIGxpbmsgdGhpbmdzIGJldHRlciB0b2dldGhlci4KCjIwMDktMTItMTQgMTU6MTE6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jczogcmV2aWV3IGFuZCBmaXggc3BlbGxpbmcKCjIwMDktMTItMTQgMTE6MDU6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBnc3RlbGVtZW50ZmFjdG9yeTogc2V0IG9iamVjdCBuYW1lIGVhcmxpZXIgaWYgYXBwbGljYWJsZQoJICBTZXR0aW5nIGFuIG9iamVjdCBuYW1lIGlzIG5pY2UgZm9yIHByb3BlciBkZWJ1ZyBsb2dnaW5nLiBJZGVhbGx5IHRoaXMgd291bGQKCSAgc3RpbGwgaGFwcGVucyBlYXJsaWVyICguZS5nIHdoZW4gcGFkcyBhcmUgYWRkZWQgdG8gYW4gZWxlbWVudCwgaXRzIG5vdCB5ZXQgc2V0KS4KCjIwMDktMTItMTQgMTE6MDc6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgZml4bWUtMC4xMSBjb21tZW50CgoyMDA5LTEyLTA4IDExOjMwOjM5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbW1lbnQ6IHNtYWxsIGNvbW1lbnQgY29ycmVjdGlvbgoKMjAwOS0xMi0xMSAxNjoyNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBuZXZlciBza2lwIGEgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgTmV2ZXIgc2tpcCB0aGUgc3RhdGUgY2hhbmdlIHRvIHBsYXlpbmcsIGV2ZW4gaWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBpbiB0aGUKCSAgcmlnaHQgc3RhdGUuIFdlIG5lZWQgdGhpcyBiZWNhdXNlIHdlIGFsc28gZGlzdHJpYnV0ZSB0aGUgYmFzZV90aW1lIHdoaWxlIGRvaW5nCgkgIHRoZSBzdGF0ZSBjaGFuZ2UgYW5kIHNraXBwaW5nIHRoaXMgc3RlcCB3b3VsZCBsZWF2ZSBzb21lIGVsZW1lbnRzIHdpdGhvdXQgYSBuZXcKCSAgYmFzZV90aW1lLgoJICBGaXhlcyAjNjAwMzEzCgoyMDA5LTEyLTExIDE2OjE5OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcKCjIwMDktMTItMDggMTc6MjE6NDcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogcmVsZWFzZSBwYWRzIGluIGRpc3Bvc2UKCSAgTWFrZSBzdXJlIHRvIHJlbGVhc2UgYWxsIHJlcXVlc3QtcGFkcyBpbiB0aGUgZGlzcG9zZS1tZXRob2QsIGluIGNhc2Ugb2YgYQoJICBzaHV0ZG93bi1yYWNlLCB3aGVyZSBhIHBhZC1hbGxvYyBpcyBhYm91dCB0byBoYXBwZW4uCgkgIEZpeGVzICM2MDQwOTEKCjIwMDktMTItMDkgMTM6Mjc6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1c2UgTlVMTCBpbnN0ZWFkIG9mIDAgZm9yIHBvaW50ZXJzCgoyMDA5LTEyLTA5IDA3OjI1OjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbigpIGZvciB0aGUgcmVtYWluaW5nIHRvb2xzCgoyMDA5LTEyLTAzIDEyOjMxOjE5ICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbiBjYWxsIHRvIGF2b2lkIHdhcm5pbmcgZnJvbSBuZXcgR0xpYi4KCSAgZ19zZXRwcmduYW1lIGlzIGltcGxpY2l0bHkgY2FsbGVkIGJ5IGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgd2l0aCBhIGNoZWNrCgkgIHRvIHNlZSBpZiBpdCdzIGJlZW4gc2V0IGFscmVhZHkuCgkgIEZpeGVzIGJ1ZyAjNjA0MDkzLgoKMjAwOS0xMi0wOCAxNjo0MDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBwcm94eV9zZXRjYXBzIHRvIG9ubHkgaXRlcmF0ZSBwYWRzIG9mIG90aGVyIGRpcmVjdGlvbgoKMjAwOS0xMi0wOCAxNjoyMTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHByb3h5X2dldGNhcHMKCSAgTWFrZSBpdCByZXR1cm4gdGhlIHBhZHRlbXBsYXRlIGNhcHMgb24gZXJyb3JzIGFuZCBubyBwYXJlbnQuCgkgIE9ubHkgaW50ZXJzZWN0IHBhZHMgb2YgdGhlIG9wb3NpdGUgZGlyZWN0aW9uIG9mIHRoZSBzb3VyY2UgcGFkLgoKMjAwOS0xMi0wOCAxNjoxNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFJlbmFtZSBwcm94eSBpdGVyYXRvciBmb2xkIGZ1bmN0aW9ucyB0byBoYXZlIGEgbW9yZSBtZWFuaW5nZnVsIG5hbWUKCjIwMDktMTItMDggMTY6MDk6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBJZiBvbmUgaW50ZXJzZWN0aW9uIGdhdmUgZW1wdHkgY2FwcyBkb24ndCBjb250aW51ZSBpdGVyYXRpbmcgb3ZlciB0aGUgb3RoZXIgcGFkcwoKMjAwOS0xMi0wOCAxNToyNDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbGxvdyB1cGRhdGUgTkVXU0VHTUVOVCBldmVudHMgYWZ0ZXIgRU9TCgkgIFRoaXMgYWxsb3dzIGRlbXV4ZXJzIHRvIHVwZGF0ZSB0aGUgc2VnbWVudCBzdG9wIG9mIGFuIGFscmVhZHkKCSAgZmluaXNoZWQgc3RyZWFtLiBUaGlzIG1pZ2h0IGJlIG5lZWRlZCBpZiBzb21lIHN0cmVhbSBnb2VzIHRvCgkgIEVPUyBiZWZvcmUgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb25nZXN0IHN0cmVhbSBpcyBrbm93biB0byBwcm9wZXJseQoJICBzZXQgdGhlIHNlZ21lbnQgc3RvcCBvZiBhbGwgc3RyZWFtcyB0byB0aGUgc2FtZSB2YWx1ZSBpbiB0aGUgZW5kLgoKMjAwOS0xMi0wNyAyMDo1MjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgVXNlIHBsYWluIGNhc3RpbmcgaW5zdGVhZCBvZiB0eXBlY2hlY2tpbmcKCjIwMDktMTItMDcgMDk6NDU6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFVzZSBmYXN0IGdzdF92YWx1ZV9saXN0X3tzaXplfGdldF92YWx1ZX0gbWFjcm8gYWNjZXNzb3JzCgkgIGdzdF92YWx1ZV9saXN0X3NpemUgYW5kIGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSB3aWxsIGRvIGEgc2VyaWVzIG9mCgkgIGV4dHJhIGNoZWNrcyBkdWUgdG8gYmVpbmcgcHVibGljIG1ldGhvZHMuCgkgIFdoZW4gd2UgdXNlIHRoZW0gZnJvbSB3aXRoaW4gZ3N0dmFsdWUuYyB3ZSBjYW4gZGlyZWN0bHkgdXNlIHRoZW0gd2l0aG91dAoJICB0aGUgZXh0cmEgY2hlY2tzLgoKMjAwOS0xMi0wNyAwOTo0NDowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBEb24ndCB1c2UgZ19zaWduYWxfZW1pdF9ieV9uYW1lLCB1c2UgdGhlIHNpZ25hbCBJRCBkaXJlY3RseQoKMjAwOS0xMS0xOCAwOTowMTozNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogYXZvaWQgZXhwZW5zaXZlIHR5cGVjaGVja3MsIGFuZCBhdm9pZCBnZXR0aW5nIHJlZiB0byBwYXJlbnQuCgkgIFNwZWVkcyB1cCB0ZWUgcHJvY2Vzc2luZyAyIHRvIDUgdGltZXMuCgoyMDA5LTExLTEyIDA5OjA3OjAzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEF2b2lkIGRvdWJsZSBzdHJkdXAgd2hlbiBzZXR0aW5nIE5VTEwgbmFtZXMuCgkgIEluc3RlYWQgb2YgY2hhaW5pbmcgdXAgdG8gZ3N0X29iamVjdF9zZXRfbmFtZSAod2hpY2ggZG9lcyB0eXBlY2hlY2tpbmcKCSAgYW5kIHN0cmR1cCdzIHRoZSBuYW1lIGFnYWluKSwganVzdCB1c2UgdGhlIGFscmVhZHkgYWxsb2NhdGVkIG5ldwoJICBuYW1lLgoKMjAwOS0xMi0wNCAxMjoxNjozMiAtMDgwMCAgUGV0ZXIgdmFuIEhhcmRlbmJlcmcgPHB2aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICBwd2c6IG1ha2UgdGhlIGVudW0gZXhhbXBsZSAoYmFzZWQgb24gdmlkZW90ZXN0c3JjKSBhY3R1YWxseSBtYXRjaCB2aWRlb3Rlc3RzcmMKCjIwMDktMTItMDQgMTY6Mjg6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElnbm9yZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZXMgZnJvbSBjaGlsZHJlbiB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBiaW4gYWxyZWFkeQoJICBGaXhlcyBidWcgIzU4NDQ0MS4KCjIwMDktMTItMDQgMTU6MDA6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBVc2UgR01hcHBlZEZpbGUgZm9yIHJlYWRpbmcgdGhlIHJlZ2lzdHJ5CgkgIEZpeGVzIGJ1ZyAjNjAzNzg3LgoKMjAwOS0xMi0wMyAxOTo0ODoxMSArMDEwMCAgSmF2aWVyIEphcmTDs24gPGpqYXJkb25AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBTdWJzdGl0dXRlIGRlcHJlY2F0ZWQgR0xpYiBzeW1ib2w6IGdfbWFwcGVkX2ZpbGVfZnJlZQoJICBVc2UgZ19tYXBwZWRfZmlsZV91bnJlZiBpZiBHbGliID49IDIuMjIgaXMgYXZhaWxhYmxlCgkgIEZpeGVzIGJ1ZyAjNTYwNDQyLgoKMjAwOS0xMS0yNyAyMDoxNjoxNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNodXQgZG93biB0aGUgcGFkIHRhc2sgd2hlbiB0aGUgaW5pdGlhbCBzZWVrIGZhaWxzLgoJICBTZXQgdGhlIHBhZCBmbHVzaGluZyBhbmQgc3RvcCB0aGUgcGFkIHRhc2sgd2hlbiB0aGUgaW5pdGlhbCBzZWVrIGZhaWxzCgkgIGR1cmluZyBhY3RpdmF0aW9uLiBBdm9pZHMgcmFjeSBjYWxscyBpbnRvIHRoZSBfY3JlYXRlKCkgZnVuY3Rpb24gd2hlbgoJICBCYXNlU3JjOjpzdG9wKCkgaGFzIGFscmVhZHkgcnVuLgoJICBGaXhlczogIzYwMzA1OQoJICBBbHNvLCBmaXggc29tZSBtaXNzcGVsbGVkIGNvbW1lbnRzLgoKMjAwOS0xMi0wMyAyMDo1NTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGFmdGVyIHN0cmluZyBjaGFuZ2VzCgkgIChUaGUgcXVldWUyIHN0cmluZ3MgY291bGQgdXNlIHNvbWUgdGlkeWluZyB1cCkKCjIwMDktMTItMDMgMjA6NTM6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNpbmssIGZpbGVzcmM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCSAgZ3N0ZmlsZXNpbmsuYzozOTk6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg4oCYc2l6ZV904oCZCgkgIGdzdGZpbGVzaW5rLmM6Mzk5OiBlcnJvcjogZm9ybWF0IOKAmCVk4oCZIGV4cGVjdHMgdHlwZSDigJhpbnTigJksIGJ1dCBhcmd1bWVudCA5IGhhcyB0eXBlIOKAmGdzaXpl4oCZCgkgIGdzdGZpbGVzcmMuYzo1ODg6IGVycm9yOiBmb3JtYXQg4oCYJTA4bGx44oCZIGV4cGVjdHMgdHlwZSDigJhsb25nIGxvbmcgdW5zaWduZWQgaW504oCZLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSDigJhvZmZfdOKAmQoKMjAwOS0xMi0wMyAxNjo0NDoyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgc3BlY2lhbCBjYXNlIGZvciBvbmx5IG9uZSBwYWQgY29uZWN0ZWQKCSAgSXQgaXMgbm90IGVhc3kgdG8gc2V0dXAgYSB0ZWUgb24gdGhlIGZseSwgdGh1cyBhcHBzIG5lZWQgdG8gYWRkIHRoZW0gYWx3YXlzIGlmCgkgIHRoZXkgbWlnaHQgbmVlZCB0aGVtLiBUaGlzIGNoYW5nZXMgdGhlIGNvZGUgc28sIHRoYXQgaWYgb25seSBvbmUgc3JjLXBhZCBpcwoJICBhY3RpdmUsIHdlIHB1c2ggYnVmZmVycyBkaXJlY3RseS4gSW4gdGhlIG5vcm1hbCBjb2RlIHBhdGggYWxsIGJ1ZmZlcnMgYXJlIHB1c2hlZAoJICB3aXRoIGFuIGV4dHJhIHJlZiwgdGhhdCBmb3JjZXMgZm9sbG93dXAgaW5wbGFjZSBlbGVtZW50cyB0byBjb3B5IHRoZSBkYXRhLgoKMjAwOS0xMi0wMyAxNjoxMTo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBvbmx5IG1lc3NhZ2Ugb25jZSBwZXIgcmVjZWl2ZWQgYnVmZmVyCgkgIEF2b2lkcyBjaGVja2luZyBmb3IgZWFjaCBzb3VyY2UgcGFkLiBUaGUgbWVzc2FnZXMgd291bGQgYmUgYWxtb3N0IGlkZW50aWNhbAoJICBhbnl3YXkuCgoyMDA5LTEyLTAzIDE1OjI3OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LXJlZ2lzdHJ5LWNoYW5nZS1ob29rcy50eHQ6CgkgIGRyYWZ0czogcGxhbm5pbmcKCjIwMDktMTItMDMgMTY6MDU6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogcmVtb3ZlIHVudXNlZCBvZmZzZXQgbWVtYmVyCgoyMDA5LTEyLTAzIDE2OjAyOjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG9ubHkgbm90aWZ5IGFsbG9jLXBhZCBwcm9wZXJ0eSBpZiBjaGFuZ2VkLgoKMjAwOS0xMi0wMiAxMzoyOToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogZml4IGRvY3MgZm9yIF9jb3B5KCkKCjIwMDktMTItMDEgMjI6Mzc6NTEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogRml4IGNoZWNrIGZvciBXaW5kb3dzCgoyMDA5LTEyLTAxIDE4OjA5OjA0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICBNYWtlIGdjYyBpbmxpbmUgYXNzZW1ibHkgY29uZGl0aW9uYWwgb24gZ2NjCgoyMDA5LTEyLTAxIDE5OjI5OjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIE1ha2VzIGNyZWF0aW5nIHF1ZXVlIGVsZW1lbnRzIDMtNCB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcyBjb250ZW50aW9uIG9uIHRoZQoJICBnbG9iYWwgZnVuY3B0ciBsb2NrLgoKMjAwOS0xMi0wMSAxOToyNzo0NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmMvYmFzZXNpbms6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBNYWtlcyBiYXNlc3JjL2Jhc2VzaW5rIGluaXRpYWxpemF0aW9uIDMtNCB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcwoJICBjb250ZW50aW9uIG9uIHRoZSBnbG9iYWwgZnVuY3B0ciBsb2NrCgoyMDA5LTEyLTAxIDE3OjU0OjU2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgVGhpcyBtYWtlcyBnaG9zdHBhZC9wcm94eXBhZCBjcmVhdGlvbiA1IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzIGNvbnRlbnRpb24KCSAgb3ZlciB0aGUgZ2xvYmFsIGZ1bmNwdHIgbG9jay4KCSAgSSBhbHNvIG1vdmVkIHRoZSB0d28gY2xhc3MgaW5pdCBkb3duIGluIHRoZSBjb2RlIHRvIGF2b2lkIGhhdmluZyB0byBmb3J3YXJkCgkgIGRlY2xhcmUgYWxsIHRoZSB2YXJpb3VzIGZ1bmN0aW9ucy4KCjIwMDktMTItMDEgMTc6NTQ6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogT25seSByZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9uY2UuCgkgIFRoaXMgbWFrZXMgcGFkIGluaXRpYWxpemF0aW9uIDIgdGltZXMgZmFzdGVyIGFuZCB3aXRob3V0IGFueSBjb250ZW50aW9uCgkgIG92ZXIgdGhlIGRlYnVnIGZ1bmNwdHIgZ2xvYmFsIGxvY2suCgoyMDA5LTEyLTAxIDE3OjUzOjAzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogQVBJOiBBZGQgR1NUX0RFQlVHX1JFR0lTVEVSX0ZVTkNQVFIgbWV0aG9kLgoJICBUaGlzIGlzIGEgdmFyaWFudCBvZiBHU1RfREVCVUdfRlVOQ1BUUiB3aGljaCBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcuCgoyMDA5LTEyLTAxIDE1OjA1OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODdiZjQyOCB0byA0N2NiMjNhCgoyMDA5LTEyLTAxIDE0OjA4OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBVc2UgbmV3IEFHX0dTVF9QTEFURk9STSBtYWNybwoKMjAwOS0xMi0wMSAxNDoxMDo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRhNGM3NWMgdG8gODdiZjQyOAoKMjAwOS0xMS0yOCAyMjoyOToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsaXAgc3RlcHBpbmcgYm91bmRhcmllcwoJICBSb3VuZGluZyBlcnJvcnMgd2l0aCB0aGUgZmxvYXRpbmcgcG9pbnQgcmF0ZSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgd2UKCSAgZG9uJ3QgZW5kIHVwIGV4YWN0bHkgYXQgdGhlIHJlcXVpcmVkIHN0ZXBwaW5nIGR1cmF0aW9uLgoJICBVc2UgdGhlIHNlZ21lbnQgY2xpcHBpbmcgYm91bmRhcmllcywgd2hpY2ggYXJlIG5vdCBzdWJqZWN0IHRvIHJhdGUKCSAgYWRqdXN0ZW1lbnRzLCBpbnN0ZWFkIHRvIGRldGVjdCB3aGVuIHdlIHJlYWNoZWQgdGhlIHN0ZXBwaW5nIGR1cmF0aW9uLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvIHJlbGF0ZWQgdG8gZ29pbmcgdG8gdGhlIFBBVVNFRCBzdGF0ZS4KCjIwMDktMTEtMjggMTc6MDI6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogZml4IGFub3RoZXIgdHlwbwoKMjAwOS0xMS0yOCAxNTo0MDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDA5LTExLTI3IDE4OjU0OjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1M2EyNDg1IHRvIGRhNGM3NWMKCjIwMDktMTEtMjcgMTM6NDI6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBmaXggZG9jcwoJICBGaXggZmx1c2ggc3RvcHMgZG9jcywgdGhvc2UgYXJlIHNlcmlhbGl6ZWQsIG5vdCBvdXQgb2YgYm91bmRzLgoJICBQcm9iYWJseSBhIGNvcHkgYW5kIHBhc3RlIG1pc3Rha2UuCgoyMDA5LTExLTI3IDE2OjM5OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggYnJva2VuIHhyZWZzCgoyMDA5LTExLTI3IDE2OjM5OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgZG9jczogZml4IGJyb2tlbiB4cmVmcwoKMjAwOS0xMS0yNyAxNjozOTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIG1pc3Npbmcgc2VjdGlvbiB0byBsaWJzLWRvY3MKCjIwMDktMTEtMjcgMTQ6MTg6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgZG9jczogbWFrZSBsaW5rcyB3b3JrIChuZWVkcyByZWNlbnQgZ3RrLWRvYykKCjIwMDktMTEtMjcgMTQ6MTc6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3MKCjIwMDktMTEtMjcgMTQ6MTY6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZG9jczogZW5hYmxlIGRvY3MgZm9yIEdzdE9iamVjdENsYXNzIHRvIGZpeCBsaW5rcwoKMjAwOS0xMS0yNyAxNDoxNTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3RvYmplY3Q6IGFkZCBGSVhNRS0wLjExIGNvbW1lbnRzCgoyMDA5LTExLTI1IDE4OjI1OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGRvY3M6IGJldHRlciB3YXkgdG8gbGluayBjbGFzcyBtZXRob2RzCgoyMDA5LTExLTI1IDE4OjI0OjE2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXNlICcqJyBpbnN0ZWFkIG9mIHh4eCB0byBhdm9pZCBjcmVhdGluZyBhIGJyb2VrbiB4cmVmCgoyMDA5LTExLTI1IDE3OjM3OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBmaXggbW9yZSBib2d1cyB4cmVmcwoKMjAwOS0xMS0yNSAxNzoyNzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgR3N0UGx1Z2luRmxhZ3MKCSAgVGhpcyBhbHNvIG1ha2VzIGxpbmtzIHRvIHRoZW0gd29yay4KCjIwMDktMTEtMjUgMTU6Mzk6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIGRvY3M6IGltcHJvdmUgR3N0TWl4ZXIgYW5kIEdzdFR1bmVyIGRvY3MKCSAgTWVudGlvbiB0aGF0IGVsZW1lbnRzIGltcGxlbWVudGluZyBHc3RNaXhlciBhbmQgR3N0VHVuZXIgbmVlZCB0byBiZQoJICBpbiB0aGUgcmlnaHQgc3RhdGUgYmVmb3JlIHRoZXkgY2FuIGJlIHVzZWQuIEFsc28gbWVudGlvbiBHTGliCgkgIGZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmaWxlbmFtZXMgdG8gYW5kIGZyb20gVVJJcy4KCSAgRml4ZXMgIzYwMjg3Ny4KCjIwMDktMTEtMjUgMTY6NDQ6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGZpeCB4cmVmcyBpbiBkb2NzCgkgIEZpeCB0eXBvcyBpbiB4cmVmcywgbGlua3MgdG8gbm9uIGV4aXN0aW5nIGZ1bmN0aW9ucyBhbmQgcmV3b3JrIHBsdXJhbCBmb3Jtcy4KCjIwMDktMTEtMjUgMTQ6NDE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtYWNyb3MuaDoKCSAgZG9jczogcmVtb3ZlIGd0a2RvYyBoZWFkZXIgYXMgdGhlc2UgdGhpbmdzIGRvbid0IGNvbWUgdXAgb24gb3VyIGRvY3MgZXZlbgoKMjAwOS0xMS0yNSAxNDoyMzo1MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciBkb2Mgc3RyaW5nCgoyMDA5LTExLTI1IDE0OjIxOjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogZG9jdW1lbnQgbmV3IGV2ZW50IGluIGVudW0KCjIwMDktMTEtMjUgMTQ6MTg6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBzeW50YXggZm9yIGRvYy1ibG9iIHN0YXJ0CgoyMDA5LTExLTIzIDExOjM0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTExLTIzIDExOjMzOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGZpeCBncmFtbWFyCgoyMDA5LTExLTIxIDE2OjM3OjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNyYzogQWRkIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIE1lcmdlIG5ldyBmdW5jdGlvbiBmcm9tIHJlc2luZHZkIGludG8gdGhlIHByaW1hcnkgR3N0QmFzZVNyYyBmb3IKCSAgc3RhcnRpbmcgYSBuZXcgc2VhbWxlc3Mgc2VnbWVudC4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoKMjAwOS0xMS0yMCAxNjowMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgU29tZSBnY2MgdmVyc2lvbnMgd2FybiBhYm91dCBieXRld3JpdGVyIHdyaXRpbmcgdG8gbWVtb3J5IGFjY2Vzc2VkCgkgIHZpYSBhIGNvbnN0IGd1aW50OCBwb2ludGVyLCBkZXNwaXRlIG91ciBleHBsaWNpdCBjYXN0IHRvIGd1aW50OCAqLgoJICBXb3JrIGFyb3VuZCB0aGF0IGJ5IHVzaW5nIGFuIGludGVybWVkaWFyeSB2YXJpYWJsZS4KCSAgRml4ZXMgIzU5ODUyNi4KCjIwMDktMTEtMjAgMDk6MzM6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjaGVjazogT25seSBjaGVjayBmb3IgZ21wL2dzbCBpZiBidWlsZGluZyBvZiB0ZXN0cyBpcyBub3QgZGlzYWJsZWQKCjIwMDktMTEtMTkgMTk6MDA6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENsYW1wIHRoZSBiYXNlIHRpbWUgY29ycmVjdGx5IGluIHBvc2l0aW9uIHJlcG9ydGluZwoJICBXaGVuIGNsYW1waW5nIHRoZSBiYXNlIHRpbWUsIGNvcnJlY3RseSB1c2UgJ25vdycsIGluc3RlYWQgb2YKCSAgJy1ub3cnIC0gdGhlIGludGVudCBpcyB0byBwcmV2ZW50ICdub3ctYmFzZScgZXZlciBiZWluZwoJICBuZWdhdGl2ZSwgd2hpY2ggd291bGQgY2F1c2UgYSBwb3NpdGlvbiByZXBvcnQgb3V0c2lkZSB0aGUgc2VnbWVudC4KCSAgRml4ZXM6ICM2MDI0MTkKCjIwMDktMTEtMDkgMTA6NTI6NDIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBnc3RwbHVnaW46IEFkZCBDKysgZXNjYXBlIGZvciBnc3RfcGx1Z2luX2Rlc2MgZGVmaW5lCgkgIEluIG9yZGVyIHRvIHByb3Blcmx5IGV4cG9ydCB0aGUgZ3N0X3BsdWdpbl9kZXNjIHN5bWJvbAoJICBmcm9tIERMTHMgaW4gTVNWQywgaXQgbmVlZHMgdG8gYmUgZXh0ZXJuICJDIi4KCjIwMDktMTEtMTkgMTI6NTk6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UvZ3JhbW1hci55OiByZW1vdmUgdW51c2VkIEVSUk9SIGRlZmluZQoKMjAwOS0xMS0xOSAxMDoyOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE4NjEyNTIgdG8gNTNhMjQ4NQoKMjAwOS0xMS0xNiAxNTo0Nzo1NyArMDIwMCAgUHJpaXQgTGFlcyA8cGxhZXNAcGxhZXMub3JnPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBmaXggc3ltYm9sIGV4cG9ydGluZyB3aGVuIGJ1aWxkaW5nIHVuZGVyIGV0X0VFIGxvY2FsZQoJICBbQS1aXSByZWdleHAgZmFpbHMgdW5kZXIgZXRfRUUgbG9jYWxlIGJlY2F1c2UgWiBpbiBFc3RvbmlhbiBhbHBoYWJldCBpcwoJICBsb2NhdGVkIGFmdGVyIFMgYW5kIHRoZXJlZm9yZSBjaGFyYWN0ZXJzIHN0YXJ0aW5nIHdpdGggJ1RVVi4uLicgYXJlIG5vdAoJICBpbiB0aGUgcmFuZ2UgYW55bW9yZS4KCSAgRml4ZXMgYnVnICM2MDIwOTMuCgoyMDA5LTExLTE4IDA3OjU5OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEhhbmRsZSB0aGUgbmV3IHNpbmstbWVzc2FnZSBldmVudAoKMjAwOS0xMS0xOCAwNzo1MjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQVBJOiBBZGQgc2luay1tZXNzYWdlIGV2ZW50CgkgIGdzdF9ldmVudF9uZXdfc2lua19tZXNzYWdlKCkKCSAgZ3N0X2V2ZW50X3BhcnNlX3NpbmtfbWVzc2FnZSgpCgkgIFRoaXMgZXZlbnQgaXMgdXNlZCBmb3Igc2VuZGluZyBhIEdzdE1lc3NhZ2UgZG93bnN0cmVhbSBhbmQgc3luY2hyb25pemVkCgkgIHdpdGggdGhlIHN0cmVhbSwgdG8gYmUgcG9zdGVkIGJ5IHRoZSBzaW5rIG9uY2UgaXQgcmVhY2hlcyB0aGUgc2luay4KCSAgRml4ZXMgYnVnICM2MDIyNzUuCgoyMDA5LTExLTE2IDAwOjEyOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL3BsdWdpbi1zY2FubmVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHBsdWdpbi1zY2FubmVyOiByZW5hbWUgcGx1Z2luLXNjYW5uZXIgaGVscGVyIGJpbmFyeSB0byBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgYW5kIGluc3RhbGwgaW50byBhIGRpZmZlcmVudCBkaXJlY3RvcnkgJChsaWJleGVjZGlyL2dzdHJlYW1lci0wLjEwKSBzbyB0aGF0CgkgIGV2ZXJ5dGhpbmcgaXMgdmVyc2lvbmVkIHByb3Blcmx5LgoJICBOT1RFOiBydW4gJ21ha2UgY2xlYW4nIGFmdGVyIHVwZGF0aW5nOyBpZiB5b3UgYXJlIHJ1bm5pbmcgYW4gdW5pbnN0YWxsZWQgc2V0dXAsCgkgIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHlvdXIgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCAodW5sZXNzIGl0J3Mgc3ltbGlua2VkCgkgIHRvIGdzdHJlYW1lciBjb3JlIG1hc3RlcikgYW5kIGV4aXQvZW50ZXIgeW91ciB1bmluc3RhbGxlZCBlbnZpcm9ubWVudCB0byBnZXQKCSAgdGhlIHVwZGF0ZWQgZW52aXJvbm1lbnQuIElmIHlvdSBhcmUgcnVubmluZyBhbiBpbnN0YWxsZWQgc2V0dXAsIHlvdSBzaG91bGQKCSAgcnVuICdtYWtlIHVuaW5zdGFsbCcgYmVmb3JlIG1lcmdpbmcgdGhpcyBjaGFuZ2Ugb3IgcmVtb3ZlIHRoZSBvbGQKCSAgcGx1Z2luLXNjYW5uZXIgYmluYXJ5IG1hbnVhbGx5LgoJICBGaXhlcyAjNjAxNjk4LgoKMjAwOS0xMS0xOCAwOToxMDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFJldmVydCAic3RydWN0dXJlOiBkb24ndCBjaGVjayB0eXBlIHR3aWNlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGY4NjQxODdiZjVmZGZhZjcxZjJlMDM4OTQ5ZTQwM2E0MmU2ZGFmMGUuCgkgIFJldmVydGluZyB0aGlzIGFzIGl0IGNoYW5nZXMgYmVoYXZpb3VyIGFuZCB0aGUgZG9jdW1lbnRhdGlvbiBpcwoJICBhbWJpZ3VvdXMgYWJvdXQgd2hldGhlciB0aGUgY2FsbGVyIG11c3QgY2hlY2sgdGhlIHR5cGUgZmlyc3Qgb3IKCSAgbm90IChjYWxsIG11c3QgY2hlY2sgdHlwZSB2cy4gcmV0dXJucyBOVUxMIGlmIG5vdCBhIHN0cmluZykuIElmCgkgIEdMaWIgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBHX0RJU0FCTEVfQ0hFQ0tTIHRoZW4gZ192YWx1ZV9nZXRfc3RyaW5nKCkKCSAgbWF5IHJldHVybiBjb21wbGV0ZSBnYXJiYWdlIGV2ZW4gaWYgdGhlIHZhbHVlIGRvZXMgbm90IGNvbnRhaW4KCSAgYSBzdHJpbmcuIEJldHRlciBwbGF5IGl0IHNhZmUsIGVzcC4gc2luY2UgdGhlIGV4dHJhIGNoZWNrIGlzIGp1c3QKCSAgYW4gaW50ZWdlciBjb21wYXJpc29uLiBGb3IgZnVuZGFtZW50YWwgdHlwZXMgd2UgY291bGQgcmV0dXJuIHZhbHVlcwoJICBmcm9tIHRoZSBHVmFsdWUgc3RydWN0dXJlIGRpcmVjdGx5IGlmIHdlIHJlYWxseSB3YW50ZWQgdG8gYnlwYXNzCgkgIHRoZSBleHRyYSBjaGVjay4KCjIwMDktMTEtMTcgMTc6MDY6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBjaGVjayB0eXBlIHR3aWNlCgoyMDA5LTExLTE3IDE4OjM1OjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIHN0ZXAgZXZlbnQgcXVhcmsKCjIwMDktMTEtMTcgMTA6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBwYXRocyBmb3IgZ3N0LXFhLXN5c3RlbQoKMjAwOS0xMS0xNyAwOTowNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IHNldCBHU1RfUExVR0lOX1NDQU5ORVIgd2hlbiBjYWxsaW5nIGd0a2RvYy1zY2FuZ29iagoJICBPdGhlcndpc2UgdGhlIGRvY3MgYnVpbGQgd29uJ3Qgd29yayBwcm9wZXJseQoKMjAwOS0xMS0xNiAxMzo1ODoxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBzb21lIGJsYW5rIGxpbmVzIChwcmV2aW91cyBnc3QtaW5kZW50IGZhaWx1cmUpCgoyMDA5LTExLTE2IDEzOjUzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogdXNlIGxvY2FsIHZhcmlhYmxlIGVhcmxpZXIKCjIwMDktMTEtMTYgMTM6NDk6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBjaGVjayBlbnVtIHR5cGVzIHR3aWNlLgoJICBHX1ZBTFVFX0hPTERTX0VOVU0odmFsdWUpIGlzIGRlZmluZWQgYXMgR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKHZhbHVlLAoJICBHX1RZUEVfRU5VTSkuIEp1c3QgY2hlY2sgZm9yIHRoZSByaWdodCBlbnVtLXR5cGUgcmlnaHQgYXdheS4KCjIwMDktMTEtMTQgMjI6MzU6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjaGVjazogQWRkIGEgZGVidWcgc3RhdHVzIHRvIHRoZSBzeXN0ZW1jbG9jayB0ZXN0CgkgIE5leHQgdGltZSBpdCBmYWlscyBvbiBhIGJ1aWxkYm90IHdlIGNhbiBzZWUgd2hpY2ggY2xvY2sgaWQKCSAgcmV0dXJuIGl0IGlzIGdldHRpbmcuCgoyMDA5LTExLTE2IDE4OjI1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVE9ETzogcmVtb3ZlIHN0ZXBwaW5nIGZyb20gVE9ETwoJICBSZW1vdmUgdGhlIGZyYW1lIHN0ZXBwaW5nIEFQSSBmcm9tIHRoZSBUT0RPIGxpc3QuCgoyMDA5LTExLTE2IDE0OjAyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHBvc2l0aW9uIHJlcG9ydGluZwoJICBPbmx5IHVwZGF0ZSB0aGUgY3VycmVudCBzdHJlYW0gdGltZSBhZnRlciB3ZSBjaGVja2VkIGlmIHdlIGdvdCBhIG5ldyBzdGVwCgkgIGV2ZW50LiBUaGlzIGltcHJvdmVzIHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgYnkgdGhlIHNpbmsuCgkgIFNlZSAjNTk1OTU4CgoyMDA5LTExLTE2IDA5OjQ5OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQVBJOiBBZGQgbXVsdGlwbGljYXRpb24gYW5kIGFkZGl0aW9uIGZ1bmN0aW9ucyBmb3IgZnJhY3Rpb25zCgkgIGdzdF91dGlsX2ZyYWN0aW9uX2FkZCgpCgkgIGdzdF91dGlsX2ZyYWN0aW9uX211bHRpcGx5KCkKCSAgVGhlc2Ugd29yayBvbiBwbGFpbiBpbnRlZ2VycyBpbnN0ZWFkIG9mIEdWYWx1ZXMgdG8KCSAga2VlcCB0aGUgb3ZlcmhlYWQgYXMgbG93IGFzIHBvc3NpYmxlLgoKMjAwOS0xMS0xNiAwOToyOToxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFQSTogQWRkIGZyYWN0aW9uIGhlbHBlciBmdW5jdGlvbnMKCSAgZ3N0X3V0aWxfZ3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IoKQoJICBnc3RfdXRpbF9kb3VibGVfdG9fZnJhY3Rpb24oKQoJICBnc3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUoKQoJICBVc2luZyB0aGVzZSBpbnN0ZWFkIG9mIGdvaW5nIG92ZXIgR1ZhbHVlIGhhcyBtdWNoIGxvd2VyIG92ZXJoZWFkLgoJICBBbHNvIGFkZCBmbG9hdDwtPmZyYWN0aW9uIHRyYW5zZm9ybSBmdW5jdGlvbnMgZm9yIEdWYWx1ZS4KCjIwMDktMTEtMTMgMTU6NDU6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZGVidWc6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgdG8gaGVscCB0cmFja2luZyBwYXJzaW5nIGVycm9ycwoKMjAwOS0xMS0xMyAxMTo0MjowMiArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHJhY2Ugd2hlbiByZWN5Y2xpbmcgYnVmZmVycwoJICBBdm9pZCBhIHJhY2Ugd2hlcmUgYSBtaW5pb2JqZWN0IGlzIHJlY3ljbGVkIGFuZCBxdWlja2x5IGZyZWVkLCB3aGljaCBjYXVzZXMgdGhlCgkgIGdfdHlwZV9mcmVlX2luc3RhbmNlKCkgdG8gYmUgY2FsbGVkIG9uIHRoZSBzYW1lIG9iamVjdCB0d2ljZS4KCSAgUmVmIHRoZSBvYmplY3QgYmVmb3JlIGNhbGxpbmcgdGhlIGZpbmFsaXplIG1ldGhvZCBhbmQgY2hlY2sgaWYgd2Ugc3RpbGwgbmVlZCB0bwoJICBmcmVlIGl0IGFmdGVyd2FyZC4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMgY2FzZS4KCSAgRml4ZXMgIzYwMTU4NwoKMjAwOS0xMS0xMiAxNzowMjo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHdoaXRlc3BhY2U6IHJlbW92ZSBibGFua3MgaW4gZG9jLWNvbW1lbnQKCjIwMDktMTEtMDYgMTU6NDI6NTcgKzAzMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBJbXBvcnQgX3ByaXZfZ3N0X2RsbF9oYW5kbGUgaW50byBnc3RyZWdpc3RyeS5jCgkgIEZpeGVzIGJ1ZyAjNjAxNjY4LgoKMjAwOS0xMS0xMiAxNDoxMDowNiArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBEbyBub3QgbGlzdCBsaWJnc3RjaGVjayBhcyBhIHJlcXVpcmVtZW50IGZvciB0ZXN0cy9leGFtcGxlcy9tYW51YWwKCSAgRml4ZXMgYnVnICM2MDE2NjkuCgoyMDA5LTExLTExIDE3OjEyOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggdHJlYXRpbmcgYmFzZV90aW1lIGFzIHVuc2lnbmVkIGluIHBvc2l0aW9uIGNhbGN1bGF0aW9uCgkgIEVsZW1lbnQgYmFzZV90aW1lIGlzIGEgc2lnbmVkIHF1YW50aXR5LCB3aGljaCBsZWFkcyB0byBiYXNlc2luayByZXR1cm5pbmcKCSAgYSBwb3NpdGlvbiBvZiAwIHdoZW4gZGVhbGluZyB3aXRoIGEgbmVnYXRpdmUgYmFzZSB0aW1lIC0gd2hpY2ggYXJlIHF1aXRlCgkgIGxlZ2FsIHdoZW4gY2xvY2tzIChzdWNoIGFzIHRoZSBhdWRpbyBjbG9jaykgYXJlIGNsb3NlIHRvIDAuCgkgIFRoaXMgZG9lc24ndCBtYW5pZmVzdCBpbiBub3JtYWwgcGlwZWxpbmVzLCBvZiBjb3Vyc2UgLSBidXQgY2FuIGhhcHBlbgoJICAoYXQgbGVhc3QpIHdoZW4gbWFudWFsbHkgc2V0dGluZyB0aGUgYmFzZSB0aW1lIG9uIGEgcGlwZWxpbmUuCgoyMDA5LTExLTEwIDE4OjAzOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBBUEk6IEFkZCBnc3Rfe2RlZmF1bHQsfV9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0X2Nvb2tpZSgpCgkgIFRoaXMgcmV0dXJucyB0aGUgaW50ZXJuYWwgZmVhdHVyZSBsaXN0IGNvb2tpZSwgd2hpY2ggY2hhbmdlcyBldmVyeQoJICB0aW1lIGEgZmVhdHVyZSBpcyBhZGRlZCBvciByZW1vdmVkLiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGVsZW1lbnRzCgkgIHRvIGNoZWNrIGlmIHRoZXkgc2hvdWxkIHVwZGF0ZSB0aGVpciBjYWNoZWQgZmVhdHVyZSBsaXN0cy4KCjIwMDktMTEtMTAgMTE6NTU6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcHJpbnRmIGZvcm1hdAoJICBDYXN0IHRoZSB2YXJpYWJsZSB0byBnaW50IHRvIGNvbmZvcm0gdG8gdGhlIHByaW50ZiBmb3JtYXQgdXNlZC4KCSAgSXQgaXMgY2FzdGVkIHJhdGhlciB0aGFuIGNoYW5naW5nIHRoZSBmb3JtYXQgYmVjYXVzZSB0aGUKCSAgbWVzc2FnZSBpcyBjcmVhdGVkIHdpdGggYSBjYXN0IHRvIGdpbnQgdG9vLgoKMjAwOS0xMS0xMCAxMDoxMDo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIGNyYXNoaW5nIGR1ZSB0byBuZWdhdGl2ZSBwZXJjZW50CgkgIHF1ZXVlMiB3b3VsZCBjcmFzaCB3aGVuIHVzaW5nIHNtYWxsIGJ1ZmZlciBzaXplcyBiZWNhdXNlCgkgIGl0IHdvdWxkIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHBlcmNlbnRhZ2UsIHJlc3VsdGluZwoJICBpbiB0aGUgYnVmZmVyaW5nIEdzdE1lc3NhZ2Ugbm90IGJlaW5nIGNyZWF0ZWQgYW5kIHRyeWluZyB0byBiZQoJICB1c2VkLiBUaGlzIHBhdGNoIHVzZXMgYSBnaW50NjQgaW5zdGVhZCBvZiBhIGdpbnQgdG8gZG8gdGhlCgkgIHBlcmNlbnRhZ2UgbWF0aCwgbWFraW5nIGl0IGhhcmRlciB0byBvdmVyZmxvdy4KCjIwMDktMTEtMTAgMDk6NTI6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggc21hbGwgZG9jIHR5cG8KCjIwMDktMTEtMTAgMDA6NTc6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBmaXggY29tcGlsYXRpb24gd2l0aCBkZWJ1Z2dpbmcgZGlzYWJsZWQKCSAgQWRkIHVnbHkgaWZkZWYgdG8gZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIHdpdGgKCSAgZGVidWcgbG9nZ2luZyBkaXNhYmxlZC4KCjIwMDktMTEtMDkgMTY6MjA6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LXJlZ2lzdHJ5LWNoYW5nZS1ob29rcy50eHQ6CgkgIHBsYW5uaW5nOiBhZGQgdGhvdWdodHMgYWJvdXQgZm9yZWlnbiByZWdpc3RyeSBjYWNoZSB1cGRhdGVzCgoyMDA5LTExLTA5IDE0OjU1OjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBhbGxvdyB0byBnZXQgcGx1Z2luLWluc3RhbGwtaW5mbyBmb3IgYWxsIGluc3RhbGxlZCBwbHVnaW5zCgkgIElmIG5vIHBsdWdpbiBpcyBnaXZlbiwgcHJpbnQgdGhlIGluZm8gZm9yIGFsbCBwbHVnaW5zLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEKCSAgc3RhcnRpbmcgcG9pbnQgdG8gZ2VuZXJhdGUgYSBwcm9maWxlIGFib3V0IHdoYXQgdGhlIGdzdHJlYW1lciBpbnN0YWxsYXRpb24gY2FuCgkgIHBvdGVudGlhbHkgaGFuZGxlIChlLmcuIGZvciBNVFAgb3IgRExOQSkuCgoyMDA5LTExLTA5IDEyOjQyOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBkb2NzOiBkb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIHBhZAoKMjAwOS0xMS0wNyAyMDoyMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHdha2UgdXAgbGVzcyBvZnRlbiB0byBjaGVjayBpZiB3ZSd2ZSBiZWVuIGludGVycnVwdGVkCgkgIENoZWNrIGlmIHdlJ3ZlIGJlZW4gaW50ZXJydXB0ZWQgb25seSBmb3VyIHRpbWVzIHBlciBzZWNvbmQgaW5zdGVhZAoJICBvZiB0d2VudHkgdGltZXMgcGVyIHNlY29uZCwgdG8gd2FrZSB1cCB0aGUgY3B1IGxlc3Mgb2Z0ZW4gYW5kCgkgIHNhdmUgcG93ZXIgKHNlZSBidWcgIzYwMDkyMikuCgoyMDA5LTExLTA1IDIxOjE4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IGFkZCBkZWZpbmUgdG8gZm9yY2UgcHJpbnRmIGZvcm1hdCBjaGVja2luZyBmb3IgZGVidWcgbWVzc2FnZXMKCSAgRm9yY2UgcHJpbnRmIGZvcm1hdCBjaGVja2luZyBmb3IgZGVidWcgbWVzc2FnZXMgaWYgR1NUX0RJU0FCTEVfUFJJTlRGX0VYVEVOU0lPTgoJICBpcyBkZWZpbmVkLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWlja2x5IGNoZWNrIGNvZGUgZm9yIHByaW50ZiBmb3JtYXQgbWlzbWF0Y2hlcwoJICBpbiBkZWJ1Z2dpbmcgbWVzc2FnZXMgdGhhdCB3b3VsZCB1c3VhbGx5IG5vdCBiZSBjYXVnaHQgKHdpdGggZ2xpYmMrZ2NjIGFuZAoJICBwcmludGYgZXh0ZW5zaW9ucyBiZWluZyB1c2VkKS4KCSAgVG8gdXNlOiBtYWtlIGNsZWFuOyBtYWtlIENGTEFHUz0nLWcgLU8yIC1ER1NUX0RJU0FCTEVfUFJJTlRGX0VYVEVOU0lPTicKCjIwMDktMTEtMDUgMjE6MDk6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogTWFrZSBzdXJlIHdlIHVzZSB0aGUgbG9jYWwgbGliZ3N0YmFzZSBhbmQgbm90IGEgc3RyYXkgb3V0c2lkZSBvbmUuCgkgIFRoZW9yZXRpY2FsbHkgd2Ugc2hvdWxkIGFsc28gZG8gdGhpcyBmb3IgYWxsIGxvY2FsIGxpYnJhcmllcyB0byBtYWtlIHN1cmUKCSAgd2UgZG9uJ3QgdGVzdCB3aXRoIGEgJ3N0cmF5JyBvdXRzaWRlIGxpYnJhcnkuCgoyMDA5LTExLTA1IDE4OjM2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBmaXggdHlwbwoKMjAwOS0xMS0wNSAxNTo1OTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCBsb29raW5nIHVwIEdzdFRhZ0luZm8gdHdpY2UgaW4gYSByb3cKCSAgUGFzcyB0aGUgaW5mbyBzdHJ1Y3R1cmUgdG8gb3VyIGludGVybmFsIGZ1bmN0aW9uIGlmIGFscmVhZHkgYXZhaWxhYmxlLgoJICBBbHNvIGNsZWFuIHVwIHdhcm5pbmdzIGZvciB1bmtub3duIHRhZ3MuCgoyMDA5LTExLTA1IDE4OjU1OjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGdzdHJlZ2lzdHJ5Y2h1bmtzOiBXZSdyZSBjZXJ0YWluIHBsdWdpbl9uYW1lIGlzIGFuIGludGVybiBzdHJpbmcuCgkgIFRoZSBvbmx5IHBsYWNlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIGNyZWF0ZXMgdGhlIHBsdWdpbl9uYW1lIGFyZ3VtZW50CgkgIHdpdGggZ19pbnRlcm5fc3RyaW5nKCkuCgkgIFNoYXZlcyBvZmYgMSUgZnJvbSByZWdpc3RyeSBsb2FkaW5nLgoKMjAwOS0xMS0wNCAxOTozMzo1OCArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgaW1wbGVtZW50IGJ1ZmZlcmluZy1sZWZ0IGFyZ3VtZW50IHRvIGJ1ZmZlciBtZXNzYWdlcwoJICBVc2luZyB0aGUgY3VycmVudCBmaWxsIGxldmVsIG9mIHRoZSBxdWV1ZSwgYW5kIHRoZSBhdmVyYWdlIGlucHV0CgkgIHJhdGUsIHdlIGNhbiBkZXRlcm1pbmUgaG93IGxvbmcgaXQgd2lsbCB0YWtlIHRvIGZpbmlzaCBkb3dubG9hZGluZwoJICB0aGUgd2hvbGUgc3RyZWFtIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZS4KCSAgRml4ZXMgIzYwMDcyNgoKMjAwOS0xMS0wNSAxNToxMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMS0wNSAxNDowMjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IGxvY2tpbmcKCjIwMDktMTEtMDUgMTQ6Mjk6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZG9uJ3QgcmVsZWFzZSBtdXRleCB0d2ljZQoKMjAwOS0xMS0wNSAxNDoyOToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBza2lwIHR5cGUgY2hlY2sgaW4gaW50ZXJuYWwgYXBpCgoyMDA5LTExLTA1IDEyOjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGluZGVudGF0aW9uIGZpeAoKMjAwOS0xMS0wNSAxMjo1NDozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgbmV3IGFwaSBmcm9tIF9yZWZlZCB0byBfcmVmZmVkLgoJICBEdWUgdG8gcG9wdWxhciBkZW1hbmQgcmVuYW1lIHRoZSBuZXcgYXBpIGFzIHdlIHN0aWxsIGNhbi4KCSAgQVBJOiBnc3RfcGFkX2dldF9jYXBzX3JlZmZlZCgpLCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHNfcmVmZmVkKCkKCjIwMDktMTEtMDQgMjI6NDI6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGFjY2VzcyBwYWR0ZW1wbGF0ZSBsaXN0IGRpcmVjdGx5IHRvIGF2b2lkIGNhbGwgYW5kIHR5cGUgY2hlY2suCgoyMDA5LTExLTA0IDE4OjU4OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIGEgRklYTUUgMC4xMSBmb3IgaGF2aW5nIGZsdXNoIGV2ZW50cyB0aGF0IGRvbid0IHJlc2V0IHJ1bm5pbmcgdGltZQoKMjAwOS0xMS0wNCAxNzo1MjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggYSBwcmludGYgY29tcGlsZSB3YXJuaW5nIG9uIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDktMTEtMDQgMTc6MTU6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBNYWtlIHN1cmUgdGhhdCBub2JvZHkgc2V0cyB0aGUgcHJveHlwYWQgb3IgZ2hvc3RwYWQgaXRzZWxmIGFzIHRhcmdldAoJICBEb2luZyB0aGlzIHdpbGwgbGVhZCB0byB2ZXJ5IGludGVyZXN0aW5nIGNyYXNoZXMsIGxpa2Ugc3RhY2sgb3ZlcmZsb3dzLgoKMjAwOS0xMS0wNCAxMTozNTo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcGx1Z2luIGxvYWRlcjogRG9uJ3QgZmFpbCBhZnRlciBhIHNob3J0IHJlYWQvd3JpdGUKCSAgVGhlIGxvZ2ljIHRvIGhhbmRsZSBzaG9ydCByZWFkcy93cml0ZXMgd2FzIGluY29ycmVjdCwgY2F1c2luZyB0aGUKCSAgcGFja2V0IGhhbmRsZXIgdG8gYXR0ZW1wdCB0byBoYW5kbGUgaW5jb21wbGV0ZSBwYWNrZXRzLgoJICBHcm93IHRoZSBwYWNrZXQgdHJhbnNtaXQgYnVmZmVyIGluIHByb3BvcnRpb24gdG8gb2JzZXJ2ZWQgdXNhZ2UsCgkgIGNhdXNpbmcgZmV3ZXIgcmVhbGxvY3MuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW4gdGhlIHJlZ2lzdHJ5IGNodW5rcyBjb2RlLgoKMjAwOS0xMS0wNCAwMTo1MTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW4gbG9hZGVyOiBEb24ndCBjcmFzaCBvbiBib2d1cyBwbHVnaW4gZGV0YWlscwoJICBXaGVuIGludmFsaWQgcmVnaXN0cnkgY2h1bmtzIGFyZSByZWNlaXZlZCBmcm9tIHRoZSBjaGlsZCwgYW5kIHBhcnNpbmcKCSAgZmFpbHMsIGRvbid0IGFjY2VzcyBhbiBpbnZhbGlkIHBsdWdpbiBwb2ludGVyLiBJbnN0ZWFkIGF0dGVtcHQgdG8KCSAgZmlndXJlIG91dCB3aGljaCBwbHVnaW4gY2F1c2VkIHRoZSBwcm9ibGVtIGFuZCBibGFja2xpc3QgaXQuCgoyMDA5LTExLTA0IDAxOjU0OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBVc2UgdGhlIHNhbWUgbG9naWMgdG8gZmluZCBnbnVpbmRlbnQgYXMgdGhlIGdpdCBob29rCgoyMDA5LTExLTAzIDE3OjMwOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBidWlsZDogaW5jbHVkZSBzdGRpby5oIGZvciBGSUxFCgoyMDA5LTExLTAzIDAxOjE4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogYWRkIGFub3RoZXIgZXhhbXBsZSB0byB0aGUgZ3N0LWxhdW5jaCBtYW4gcGFnZQoJICBBZGQgYW4gZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byByZWZlciB0byBzcGVjaWZpYyBwYWRzIGJ5IG5hbWUKCSAgd2hlbiBjb25zdHJ1Y3RpbmcgYSBwaXBlbGluZSBzdHJpbmcuIEZpeGVzICM2MDAzODIuCgoyMDA5LTExLTAyIDA4OjQ4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBnc3R0eXBlZmluZDogYXZvaWQgb25lIG1vcmUgcnVuLXRpbWUgdHlwZSBjaGVjawoKMjAwOS0xMS0wMiAwOToyMjozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQVBJOiBBZGQgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGR7LF90eXBlZH0KCjIwMDktMTEtMDIgMDg6Mjg6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZ3N0dHlwZWZpbmQ6IFVzZSBfQ0FTVCB2YXJpYW50cyB3aGVuIHRoZSB0eXBlIGhhcyBhbHJlZHkgYmVlbiBjaGVja2VkLgoJICBUaGlzIGF2b2lkcyBjaGVja2luZyB0aGUgdHlwZSBuX3R5cGVmaW5kZXJzICogNCB0aW1lcyB3aGVuIGxvYWRpbmcgdGhlCgkgIHJlZ2lzdHJ5LgoKMjAwOS0xMS0wMSAxMToyNDo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEltcGxlbWVudCBpdGVyYXRlIGludGVybmFsIGxpbmtzCgkgIFRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQgb2YgdGhlIGdob3N0IHBhZCBpcyBpdHMKCSAgcHJveHkgcGFkLCB3aGljaCBpcyB0aGUgcGFkIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBnaG9zdAoJICBwYWRzIHRhcmdldC4KCjIwMDktMTAtMzEgMTY6NTY6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBNYWtlIHN1cmUgdGhhdCBzaWduYWwgdXNlciBkYXRhIGlzIGZyZWVkIGJ5IHNldHRpbmcgYSBHQ2xvc3VyZU5vdGlmeQoJICAuLi5pbnN0ZWFkIG9mIHVzaW5nIGEgc2Vjb25kIG1lY2hhbmlzbSBhbmQgc3RvcmluZyB0aGUgdXNlciBkYXRhCgkgIGluc2lkZSB0aGUgR09iamVjdHMgcWRhdGEuCgoyMDA5LTEwLTMxIDE2OjQ5OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgc3RydWN0cwoKMjAwOS0xMC0zMSAxNjo0MzoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IEFsd2F5cyBnZXQgRGVsYXllZExpbmsgaW5mb3JtYXRpb24gZnJvbSB0aGUgb2JqZWN0cyBxZGF0YQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBpdCBpcyBhbHdheXMgdmFsaWQuCgoyMDA5LTEwLTMxIDA5OjQ4OjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiBxdWV1ZTIgaGFzIG1vdmVkIHRvIGNvcmUKCjIwMDktMTAtMjkgMTE6NDE6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBxdWV1ZTI6IEFkZCB0byB0aGUgZG9jcwoKMjAwOS0xMC0yOSAxMTozODoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSAiUXVldWUgMiIgYXMgbG9uZyBuYW1lCgoyMDA5LTEwLTI5IDExOjM1OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIEdTVF9CT0lMRVJQTEFURV9GVUxMKCkgYW5kIGFkZCBwYWQgdGVtcGxhdGVzL3NldCBkZXRhaWxzIGluIGJhc2VfaW5pdAoKMjAwOS0xMC0yOSAxMTozMDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKQoKMjAwOS0xMC0yOSAxMTozMDoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogSW50ZWdyYXRlIGludG8gY29yZXBsdWdpbnMKCjIwMDktMTAtMjkgMTE6MjE6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBNb3ZlIHN0cnVjdCBkZWNsYXJhdGlvbnMgdG8gYSBzZXBhcmF0ZSBoZWFkZXIKCjIwMDktMTAtMjkgMTE6MTg6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE1vdmUgcXVldWUyIHRvIGdzdHJlYW1lciBjb3JlcGx1Z2lucwoJICBGaXhlcyBidWcgIzU5OTk5Ni4KCjIwMDktMTAtMjggMDA6NTk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBSZW1vdmUgR1NUX0RFQlVHX0ZVTkNQVFIgd2hlcmUgdGhleSdyZSBwb2ludGxlc3MKCSAgVGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiB1c2luZyBHU1RfREVCVUdfRlVOQ1BUUiB3aXRoIEdPYmplY3QKCSAgdmlydHVhbCBmdW5jdGlvbnMgc3VjaCBhcyBnZXRfcHJvcGVydHksIHNldF9wcm9wZXJ5LCBmaW5hbGl6ZSBhbmQKCSAgZGlzcG9zZSwgc2luY2UgdGhleSdsbCBuZXZlciBiZSB1c2VkIGJ5IGFueW9uZSBhbnl3YXkuIFNhdmVzIGEKCSAgZmV3IGJ5dGVzIGFuZCBwb3NzaWJseSBhIHNpeHRlZW50aCBvZiBhIHBvbGFyIGJlYXIuCgoyMDA5LTEwLTI3IDE1OjIzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbgoKMjAwOS0wOC0wNiAxMjoxODozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gcGF1c2luZyB0YXNrIGlmIHNvIGFwcHJvcHJpYXRlCgkgIElmIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgYW4gZXJyb3Igd2hpbGUgdXBzdHJlYW0gaGFzIGFscmVhZHkKCSAgcHV0IGFsbCBkYXRhIGludG8gcXVldWUyIChpbmNsdWRpbmcgRU9TKSwgdXBzdHJlYW0gd2lsbCBubyBsb25nZXIKCSAgY2hhaW4gaW50byBxdWV1ZTIsIHNvIGl0IGlzIHVwIHRvIHF1ZXVlMiB0byBwZXJmb3JtIHNvbWUKCSAgRU9TIGhhbmRsaW5nIC8gbWVzc2FnZSBwb3N0aW5nIGluIHN1Y2ggY2FzZXMuICBTZWUgIzU4OTk5MS4KCjIwMDktMDctMTQgMTc6MDM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGxlYWsgYW5kIGltcHJvdmUgYnVmZmVyaW5nCgkgIEtlZXAgdHJhY2sgb2YgdGhlIG1heCByZXF1ZXN0ZWQgcG9zaXRpb24gYW5kIGNvbXBhcmUgdGhpcyB0byB0aGUgd3JpdGUgcG9zaXRpb24KCSAgaW4gdGhlIHRlbXAgZmlsZSB0byBnZXQgdGhlIGN1cnJlbnQgYW1vdW50IG9mIGJ1ZmZlcmVkIGRhdGEuCgkgIEZpeCBtZW1sZWFrIG9mIGFsbCBpbmNvbW1pbmcgYnVmZmVycy4KCSAgRml4ZXMgIzU4ODU1MQoKMjAwOS0wNy0xMCAyMTowMTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmbHVzaCBkaWZmZXJlbnRseSwgYXZvaWRpbmcgZGVhZGxvY2tzCgkgIERvbid0IGZsdXNoIHRoZSBmaWxlIGJ5IGNsb3NpbmcgYW5kIG9wZW5pbmcgaXQgYnV0IGluc3RlYWQgdXNlIGdfZnJlb3Blbi4gVGhpcwoJICBhdm9pZHMgYSBkZWFkbG9jayBpbiBzaHV0ZG93biBiZWNhdXNlIHdlIGVtaXQgdGhlIHRlbXAtbG9jYXRpb24gcHJvcGVydHkgY2hhbmdlCgkgIHdpdGggdGhlIHdyb25nIGxvY2sgaGVsZC4KCjIwMDktMDctMTAgMTk6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHRlbXAtdGVtcGxhdGUgcHJvcGVydHkKCSAgQWRkIGEgbmV3IHRlbXAtdGVtcGxhdGUgcHJvcGVydHkgc28gdGhhdCBxdWV1ZTIgY2FuIHNlY3VyZWx5IGFsbG9jYXRlIGEKCSAgdGVtcG9yYXJ5IGZpbGVuYW1lLiBEZXByZWNhdGUgdGhlIHRlbXAtbG9jYXRpb24gcHJvcGVydHkgZm9yIHNldHRpbmcgdGhlCgkgIGxvY2F0aW9uIGJ1dCBzdGlsbCB1c2UgaXQgdG8gbm90aWZ5IHRoZSBhbGxvY2F0ZWQgdGVtcCBmaWxlLgoKMjAwOS0wMy0yMCAxNDoxNzoxOSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHdpbjMyOiBmaXggc2Vla2luZyBpbiBsYXJnZSBmaWxlcwoJICBGaXggU2Vla2luZyBpbiBsYXJnZSBmaWxlcyBieSB1c2luZyB0aGUgNjQtYml0IHNlZWsgZnVuY3Rpb25zLgoJICBGaXhlcyAjNTc2MDE5CgoyMDA4LTA4LTA3IDE1OjU4OjU4ICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoJICAqIGV4dC9hbHNhL2dzdGFsc2FwbHVnaW4uYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvY2RwYXJhbm9pYS9nc3RjZHBhcmFub2lhc3JjLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L29nZy9nc3RvZ2dkZW11eC5jOiAoZ3N0X29nZ19kZW11eF9wbHVnaW5faW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NyYy5jOiAoX2RvX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9wYnV0aWxzL3BidXRpbHMuYzogKGdzdF9wYl91dGlsc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvdGFnL3RhZ3MuYzogKGdzdF90YWdfcmVnaXN0ZXJfdGFnc19pbnRlcm5hbCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYWNrLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9wbHVnaW5faW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGwuYzogKHBsdWdpbl9pbml0KToKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyCgkgIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCjIwMDgtMDctMTAgMjE6MDY6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENsZWFudXAgUGx1Z2luIGRvY3MuIExpbmsgdG8gc2lnbmFscyBhbmQgcHJvcGVydGllcy4gRml4IHN1Yi1zZWN0aW9uIHRpdGxlcy4gRHJvcCBtZW50aW5pbmcgdGhhdCBhbGwgb3VyIGV4YW1wbGUgcGlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLW92ZXJyaWRlcy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hZGRlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsc2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2NvbnZlcnQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3JhdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3Jlc2FtcGxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW90ZXN0c3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2RwYXJhbm9pYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlY29kZWJpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZmbXBlZ2NvbG9yc3BhY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nbm9tZXZmcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxpYnZpc3VhbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9nZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBhbmdvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcGxheWJhY2sueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWV1ZTIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zdWJwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRjcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRoZW9yYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXR5cGVmaW5kZnVuY3Rpb25zLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdXJpZGVjb2RlYmluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3JhdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3NjYWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW90ZXN0c3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdm9sdW1lLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdm9yYmlzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXh2aW1hZ2VzaW5rLnhtbDoKCSAgKiBleHQvYWxzYS9nc3RhbHNhbWl4ZXIuYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhc2luay5jOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzcmMuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3NpbmsuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3NyYy5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc2luay5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc3JjLmM6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc2luay5jOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NyYy5jOgoJICAqIGV4dC9vZ2cvZ3N0b2dnZGVtdXguYzoKCSAgKiBleHQvb2dnL2dzdG9nZ211eC5jOgoJICAqIGV4dC9wYW5nby9nc3RjbG9ja292ZXJsYXkuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dHJlbmRlci5jOgoJICAqIGV4dC9wYW5nby9nc3R0aW1lb3ZlcmxheS5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFlbmMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYXBhcnNlLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNkZWMuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2VuYy5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzcGFyc2UuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc3RhZy5jOgoJICAqIGdzdC9hZGRlci9nc3RhZGRlci5jOgoJICAqIGdzdC9hdWRpb2NvbnZlcnQvZ3N0YXVkaW9jb252ZXJ0LmM6CgkgICogZ3N0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAqIGdzdC9hdWRpb3Rlc3RzcmMvZ3N0YXVkaW90ZXN0c3JjLmM6CgkgICogZ3N0L2ZmbXBlZ2NvbG9yc3BhY2UvZ3N0ZmZtcGVnY29sb3JzcGFjZS5jOgoJICAqIGdzdC9nZHAvZ3N0Z2RwZGVwYXkuYzoKCSAgKiBnc3QvZ2RwL2dzdGdkcHBheS5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOgoJICAqIGdzdC90Y3AvZ3N0bXVsdGlmZHNpbmsuYzoKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNpbmsuYzoKCSAgKiBnc3QvdmlkZW9yYXRlL2dzdHZpZGVvcmF0ZS5jOgoJICAqIGdzdC92aWRlb3NjYWxlL2dzdHZpZGVvc2NhbGUuYzoKCSAgKiBnc3QvdmlkZW90ZXN0c3JjL2dzdHZpZGVvdGVzdHNyYy5jOgoJICAqIGdzdC92b2x1bWUvZ3N0dm9sdW1lLmM6CgkgICogc3lzL3hpbWFnZS94aW1hZ2VzaW5rLmM6CgkgICogc3lzL3h2aW1hZ2UveHZpbWFnZXNpbmsuYzoKCSAgQ2xlYW51cCBQbHVnaW4gZG9jcy4gTGluayB0byBzaWduYWxzIGFuZCBwcm9wZXJ0aWVzLiBGaXggc3ViLXNlY3Rpb24KCSAgdGl0bGVzLiBEcm9wIG1lbnRpbmluZyB0aGF0IGFsbCBvdXIgZXhhbXBsZSBwaXBlbGluZXMgYXJlICJzaW1wbGUiCgkgIHBpcGVsaW5lcy4KCjIwMDgtMDYtMjQgMTY6MjI6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRG8gbm90IGRvdWJsZSBub3RpZnkuIFJlbW92ZSB0aGUgdW5zdWVkIHJldHVybiB2YWx1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBEbyBub3QgZG91YmxlIG5vdGlmeS4gUmVtb3ZlIHRoZSB1bnN1ZWQgcmV0dXJuIHZhbHVlLgoKMjAwOC0wNC0xMSAwMToyNTowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtleWZyYW1lLWZvcmNlLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtleWZyYW1lLWZvcmNlLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFNldCBidWZmZXJpbmcgbW9kZSBpbiB0aGUgbWVzc2FnZXMuCgkgIFNldCBidWZmZXJpbmcgcGVyY2VudCBpbiB0aGUgcXVlcnkuCgkgICogdGVzdHMvZXhhbXBsZXMvc2Vlay9zZWVrLmM6ICh1cGRhdGVfZmlsbCksIChtc2dfc3RhdGVfY2hhbmdlZCksCgkgIChkb19zdHJlYW1fYnVmZmVyaW5nKSwgKGRvX2Rvd25sb2FkX2J1ZmZlcmluZyksIChtc2dfYnVmZmVyaW5nKToKCSAgRG8gc29tZSBtb3JlIGZhbmN5IHRoaW5ncyBiYXNlZCBvbiB0aGUgYnVmZmVyaW5nIG1ldGhvZCBpbiB1c2UuCgoyMDA4LTA0LTA5IDIxOjQwOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBJbmNsdWRlIGV4dHJhIGJ1ZmZlcmluZyBzdGF0cyBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc3JjX2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pOgoJICBJbmNsdWRlIGV4dHJhIGJ1ZmZlcmluZyBzdGF0cyBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UuCgkgIEltcGxlbWVudCBCVUZGRVJJTkcgcXVlcnkuCgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZG9fYXN5bmNfc3RhcnQpLAoJICAoZG9fYXN5bmNfZG9uZSksICh0eXBlX2ZvdW5kKSwgKHNldHVwX3N0cmVhbWluZyksIChzZXR1cF9zb3VyY2UpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIE9ubHkgYWRkIGRlY29kZWJpbjIgd2hlbiB0aGUgdHlwZSBpcyBmb3VuZCBpbiBzdHJlYW1pbmcgbW9kZS4KCSAgTWFrZSB1cmlkZWNvZGViaW4gYXN5bmMgdG8gUEFVU0VEIGV2ZW4gd2hlbiB3ZSBkb24ndCBoYXZlIGRlY29kZWJpbjIKCSAgYWRkZWQgeWV0LgoKMjAwOC0wNC0wMiAxMTowODowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXBkYXRlIHRoZSBlc3RpbWF0ZWQgaW5wdXQgZGF0YSB3aGVuIHdlIHB1c2ggb3V0IGEgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfb3V0X3JhdGVzKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBVcGRhdGUgdGhlIGVzdGltYXRlZCBpbnB1dCBkYXRhIHdoZW4gd2UgcHVzaCBvdXQgYSBidWZmZXIuCgkgIEFkZCBzb21lIGRlYnVnIGluZm8gYWJvdXQgdGhlIHRlbXAgZmlsZS4KCSAgT25seSBmb3J3YXJkIHNyYyBldmVudHMgd2hlbiB3ZSBhcmUgbm90IHVzaW5nIGEgdGVtcCBmaWxlLgoJICBEb24ndCBibG9jayB0aGUgZHVyYXRpb24gcXVlcnksIHdlIG5lZWQgdG8gZmluZCBzb21ldGhpbmcgYmV0dGVyLgoJICBEb24ndCBsZWFrIHRoZSB0ZW1wIGZpbGVuYW1lLgoKMjAwOC0wMy0yNCAxNDowODoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVGhlIHF1ZXVlIGlzIG5ldmVyIGZpbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBidWZmZXJzIGluIHRoZSBxdWV1ZSBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pc19maWxsZWQpOgoJICBUaGUgcXVldWUgaXMgbmV2ZXIgZmlsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIGF0IGFsbC4KCSAgRml4ZXMgIzUyMzk5My4KCjIwMDgtMDMtMjIgMTU6MDA6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYW1peGVyZWxlbWVudC5jOgoJICAoZ3N0X2Fsc2FfbWl4ZXJfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBleHQvYWxzYS9nc3RhbHNhc2luay5jOiAoZ3N0X2Fsc2FzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzcmMuYzogKGdzdF9hbHNhc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9jZHBhcmFub2lhL2dzdGNkcGFyYW5vaWFzcmMuYzoKCSAgKGdzdF9jZF9wYXJhbm9pYV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zaW5rLmM6IChnc3RfZ2lvX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zcmMuYzogKGdzdF9naW9fc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc2luay5jOiAoZ3N0X2dpb19zdHJlYW1fc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNyYy5jOiAoZ3N0X2dpb19zdHJlYW1fc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NpbmsuYzogKGdzdF9nbm9tZV92ZnNfc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzcmMuYzogKGdzdF9nbm9tZV92ZnNfc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9vZ2cvZ3N0b2dnbXV4LmM6IChnc3Rfb2dnX211eF9jbGFzc19pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuYzogKGdzdF90ZXh0X292ZXJsYXlfY2xhc3NfaW5pdCk6CgkgICogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuYzogKGdzdF90ZXh0X3JlbmRlcl9jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOiAoZ3N0X3RoZW9yYV9kZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFlbmMuYzogKGdzdF90aGVvcmFfZW5jX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhcGFyc2UuYzogKGdzdF90aGVvcmFfcGFyc2VfY2xhc3NfaW5pdCk6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNlbmMuYzogKGdzdF92b3JiaXNfZW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RhdWRpb2ZpbHRlcnRlbXBsYXRlLmM6CgkgIChnc3RfYXVkaW9fZmlsdGVyX3RlbXBsYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zaW5rLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zcmMuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvY2RkYS9nc3RjZGRhYmFzZXNyYy5jOgoJICAoZ3N0X2NkZGFfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2ludGVyZmFjZXMvbWl4ZXJ0cmFjay5jOgoJICAoZ3N0X21peGVyX3RyYWNrX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0YmFzZXJ0cGRlcGF5bG9hZC5jOgoJICAoZ3N0X2Jhc2VfcnRwX2RlcGF5bG9hZF9jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdGJhc2VydHBwYXlsb2FkLmM6CgkgIChnc3RfYmFzZXJ0cHBheWxvYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvY29udmVydC9nc3RhdWRpb2NvbnZlcnQuYzoKCSAgKGdzdF9hdWRpb19jb252ZXJ0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3JhdGUvZ3N0YXVkaW9yYXRlLmM6IChnc3RfYXVkaW9fcmF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgIChnc3RfYXVkaW9yZXNhbXBsZV9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW90ZXN0c3JjL2dzdGF1ZGlvdGVzdHNyYy5jOgoJICAoZ3N0X2F1ZGlvX3Rlc3Rfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nZHAvZ3N0Z2RwcGF5LmM6IChnc3RfZ2RwX3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IChnc3RfcGxheV9iYXNlX2Jpbl9jbGFzc19pbml0KSwKCSAgKHByZXJvbGxfdW5saW5rZWQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmM6IChnc3RfcGxheV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtaW5mby5jOiAoZ3N0X3N0cmVhbV9pbmZvX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1zZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zdHJlYW1fc2VsZWN0b3JfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zdWJwYXJzZS9nc3RzdWJwYXJzZS5jOiAoZ3N0X3N1Yl9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdG11bHRpZmRzaW5rLmM6IChnc3RfbXVsdGlfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcGNsaWVudHNpbmsuYzogKGdzdF90Y3BfY2xpZW50X3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BjbGllbnRzcmMuYzogKGdzdF90Y3BfY2xpZW50X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNpbmsuYzogKGdzdF90Y3Bfc2VydmVyX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzcmMuYzogKGdzdF90Y3Bfc2VydmVyX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9yYXRlL2dzdHZpZGVvcmF0ZS5jOiAoZ3N0X3ZpZGVvX3JhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvc2NhbGUvZ3N0dmlkZW9zY2FsZS5jOiAoZ3N0X3ZpZGVvX3NjYWxlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3Rlc3RzcmMvZ3N0dmlkZW90ZXN0c3JjLmM6CgkgIChnc3RfdmlkZW9fdGVzdF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZvbHVtZS9nc3R2b2x1bWUuYzogKGdzdF92b2x1bWVfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxlbGVtZW50LmM6IChnc3RfdjRsZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bG1qcGVnc2luay5jOiAoZ3N0X3Y0bG1qcGVnc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bG1qcGVnc3JjLmM6IChnc3RfdjRsbWpwZWdzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxzcmMuYzogKGdzdF92NGxzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3hpbWFnZS94aW1hZ2VzaW5rLmM6IChnc3RfeGltYWdlc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMveHZpbWFnZS94dmltYWdlc2luay5jOiAoZ3N0X3h2aW1hZ2VzaW5rX2NsYXNzX2luaXQpOgoJICBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZQoJICBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLiBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHVzYWdlLAoJICBmZXdlciBhbGxvY2F0aW9ucyBhbmQgdGh1cyBsZXNzIG1lbW9yeSBkZWZyYWdtZW50YXRpb24uIERlcGVuZAoJICBvbiBjb3JlIENWUyBmb3IgdGhpcy4gRml4ZXMgYnVnICM1MjM4MDYuCgoyMDA3LTEyLTE0IDE4OjQ2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVc2Ugc2VwYXJhdGUgdGltZXJzIGZvciBpbnB1dCBhbmQgb3V0cHV0IHJhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLAoJICAocmVzZXRfcmF0ZV90aW1lciksICh1cGRhdGVfaW5fcmF0ZXMpLCAodXBkYXRlX291dF9yYXRlcyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCk6CgkgIFVzZSBzZXBhcmF0ZSB0aW1lcnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgcmF0ZXMuCgkgIFBhdXNlIG1lYXN1cmluZyB0aGUgb3V0cHV0IHJhdGUgd2hlbiB3ZSBibG9jayBmb3IgbW9yZSBkYXRhLgoJICBTZWUgIzUwMzI2Mi4KCjIwMDctMTItMTQgMDk6MjQ6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFBhdXNlIHRoZSB0aW1lciB0byBtZWFzdXJlIHRoZSBpbnB1dCByYXRlIHdoZW4gd2UgYmxvY2sgYmVjYXVzZSB0aGUgcXVldWUgaXMgZmlsbGVkLiBTZWUgIzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgUGF1c2UgdGhlIHRpbWVyIHRvIG1lYXN1cmUgdGhlIGlucHV0IHJhdGUgd2hlbiB3ZSBibG9jayBiZWNhdXNlIHRoZQoJICBxdWV1ZSBpcyBmaWxsZWQuIFNlZSAjNTAzMjYyLgoKMjAwNy0xMS0zMCAxNzo0NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IFJlZmFjdG9yIHNvbWUgY29tbW9uIGNvZGUgdG8gZmlsdGVyIGZhY3RvcmllcyBhbmQgY2hlY2sgY2FwcyBjb21wYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZmFjdG9yeWxpc3RzLmM6IChjb21wYXJlX3JhbmtzKSwgKHByaW50X2ZlYXR1cmUpLAoJICAoZ2V0X2ZlYXR1cmVfYXJyYXkpLCAoZGVjb2RlcnNfZmlsdGVyKSwgKHNpbmtzX2ZpbHRlciksCgkgIChnc3RfZmFjdG9yeV9saXN0X2dldF9kZWNvZGVycyksIChnc3RfZmFjdG9yeV9saXN0X2dldF9zaW5rcyksCgkgIChnc3RfZmFjdG9yeV9saXN0X2ZpbHRlcik6CgkgICogZ3N0L3BsYXliYWNrL2dzdGZhY3RvcnlsaXN0cy5oOgoJICBSZWZhY3RvciBzb21lIGNvbW1vbiBjb2RlIHRvIGZpbHRlciBmYWN0b3JpZXMgYW5kIGNoZWNrIGNhcHMgY29tcGF0LgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfZGVjb2RlX2Jpbl9pbml0KSwgKGdzdF9kZWNvZGVfYmluX2Rpc3Bvc2UpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfY29udGludWUpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfZmFjdG9yaWVzKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX3NlbGVjdCksIChhbmFseXplX25ld19wYWQpLAoJICAoZmluZF9jb21wYXRpYmxlcyk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9wbGF5X2Jpbl9pbml0KSwgKGdzdF9wbGF5X2Jpbl9maW5hbGl6ZSksCgkgIChhdXRvcGx1Z19mYWN0b3JpZXNfY2IpLCAoYWN0aXZhdGVfZ3JvdXApOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChwcm94eV91bmtub3duX3R5cGVfc2lnbmFsKSwKCSAgKHByb3h5X2F1dG9wbHVnX2NvbnRpbnVlX3NpZ25hbCksCgkgIChwcm94eV9hdXRvcGx1Z19mYWN0b3JpZXNfc2lnbmFsKSwgKHByb3h5X2F1dG9wbHVnX3NlbGVjdF9zaWduYWwpLAoJICAocHJveHlfZHJhaW5lZF9zaWduYWwpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8gYW5kIHVzZSBmYWN0b3IgZmlsdGVyaW5nIGNvZGUuCgoyMDA3LTExLTE2IDE1OjQ0OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogQWRkIHBsYXliaW4yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYWNrLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL3Rlc3Q3LmM6ICh1cGRhdGVfc2NhbGUpLCAod2FybmluZ19jYiksIChlcnJvcl9jYiksCgkgIChlb3NfY2IpLCAoYWJvdXRfdG9fZmluaXNoX2NiKSwgKG1haW4pOgoJICBBZGQgcGxheWJpbjIuCgkgIEFkZGVkIGdhcGxlc3MgcGxheWJhY2sgZXhhbXBsZS4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uaDoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOiAoZ3N0X3BsYXlfYmluX3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL3Rlc3QuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCksCgkgIChwYWRfcmVtb3ZlZF9jYik6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbWluZm8uaDoKCSAgQ2hhbmdlIGVtYWlsLgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2dldF90eXBlKSwKCSAgKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KSwgKGluaXRfZ3JvdXApLCAoZ3N0X3BsYXlfYmluX2luaXQpLAoJICAoZ3N0X3BsYXlfYmluX2Rpc3Bvc2UpLCAoZ3N0X3BsYXlfYmluX3NldF91cmkpLAoJICAoZ3N0X3BsYXlfYmluX3NldF9zdWJ1cmkpLCAoZ3N0X3BsYXlfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGxheV9iaW5fZ2V0X3Byb3BlcnR5KSwgKGdzdF9wbGF5X2Jpbl9oYW5kbGVfbWVzc2FnZSksCgkgIChwYWRfYWRkZWRfY2IpLCAocGFkX3JlbW92ZWRfY2IpLCAobm9fbW9yZV9wYWRzX2NiKSwgKHBlcmZvcm1fZW9zKSwKCSAgKGRyYWluZWRfY2IpLCAodW5saW5rX2dyb3VwKSwgKGFjdGl2YXRlX2dyb3VwKSwKCSAgKHNldHVwX25leHRfc291cmNlKSwgKGdzdF9wbGF5X2Jpbl9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BsYXlfYmluMl9wbHVnaW5faW5pdCk6CgkgIEFkZGVkIHJhdyBmaXJzdCB2ZXJzaW9uIG9mIHBsYXliaW4yLiBEb2VzIGNoYWluZWQgb2dncyBhbmQgZ2FwbGVzcwoJICBwbGF5YmFjayBmaW5lLiBObyBzdXBwb3J0IGZvciByYXcgc2lua3MgeWV0LiBObyB2aXN1YWxpc2F0aW9ucyBvcgoJICBzdWJ0aXRsZXMgeWV0LgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5jOiAoZ3N0X3BsYXlfc2lua19nZXRfdHlwZSksCgkgIChnc3RfcGxheV9zaW5rX2NsYXNzX2luaXQpLCAoZ3N0X3BsYXlfc2lua19pbml0KSwKCSAgKGdzdF9wbGF5X3NpbmtfZGlzcG9zZSksIChnc3RfcGxheV9zaW5rX3Zpc191bmJsb2NrZWQpLAoJICAoZ3N0X3BsYXlfc2lua192aXNfYmxvY2tlZCksIChnc3RfcGxheV9zaW5rX3NldF92aWRlb19zaW5rKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X2F1ZGlvX3NpbmspLCAoZ3N0X3BsYXlfc2lua19zZXRfdmlzX3BsdWdpbiksCgkgIChnc3RfcGxheV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfcGxheV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChwb3N0X21pc3NpbmdfZWxlbWVudF9tZXNzYWdlKSwgKGZyZWVfY2hhaW4pLCAoYWRkX2NoYWluKSwKCSAgKGFjdGl2YXRlX2NoYWluKSwgKGdlbl92aWRlb19jaGFpbiksIChnZW5fdGV4dF9lbGVtZW50KSwKCSAgKGdlbl9hdWRpb19jaGFpbiksIChnZW5fdmlzX2VsZW1lbnQpLCAoZ3N0X3BsYXlfc2lua19nZXRfbW9kZSksCgkgIChnc3RfcGxheV9zaW5rX3NldF9tb2RlKSwgKGdzdF9wbGF5X3NpbmtfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X3BsYXlfc2lua19yZWxlYXNlX3BhZCksIChnc3RfcGxheV9zaW5rX3NlbmRfZXZlbnRfdG9fc2luayksCgkgIChnc3RfcGxheV9zaW5rX3NlbmRfZXZlbnQpLCAoZ3N0X3BsYXlfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5oOgoJICBBZGRlZCBFbGVtZW50IHRoYXQgYWJzdHJhY3RzIHRoZSBzaW5rcyBhbmQgdGhlaXIgcGlwZWxpbmVzIGZvciBwbGF5YmluMi4KCjIwMDctMTAtMTUgMTE6Mzg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gU2VlICM0ODY3NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gU2VlICM0ODY3NTguCgoyMDA3LTA5LTIxIDE0OjM3OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsYXRpb24gd3J0IHByaW50ZiBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBjb21waWxhdGlvbiB3cnQgcHJpbnRmIGFyZ3VtZW50cy4KCjIwMDctMDktMTcgMTc6MjQ6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IGEgYnVuY2ggb2YgY29tcGlsZSB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuYzogKGdzdF90ZXh0X292ZXJsYXlfaW5pdCksCgkgIChnc3RfdGV4dF9vdmVybGF5X3NldF9wcm9wZXJ0eSk6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNkZWMuYzogKHZvcmJpc19oYW5kbGVfZGF0YV9wYWNrZXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zaW5rLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zaW5rX3JlbmRlcik6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RydGNwYnVmZmVyLmM6IChnc3RfcnRjcF9udHBfdG9fdW5peCksCgkgIChnc3RfcnRjcF91bml4X3RvX250cCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0c3AvZ3N0cnRzcG1lc3NhZ2UuYzogKGdzdF9ydHNwX21lc3NhZ2VfZ2V0X3R5cGUpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9zZWVrL3NlZWsuYzogKHNldF9zY2FsZSk6CgkgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGUgd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgKiBnc3QvYXVkaW9yYXRlL2dzdGF1ZGlvcmF0ZS5jOgoJICBBbHdheXMgcHVsbCBpbiBjb25maWcuaCBiZWZvcmUgaW5jbHVkaW5nIGFueSBzeXN0ZW0gaGVhZGVycy4KCjIwMDctMDktMTcgMTY6MjI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEFsc28gZml4ICM0NzY1MTQgZm9yIHF1ZXVlMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBBbHNvIGZpeCAjNDc2NTE0IGZvciBxdWV1ZTIuCgoyMDA3LTA4LTEwIDEwOjA4OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ2NTAyOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvdmlkZW9yYXRlL2dzdHZpZGVvcmF0ZS5jOgoJICBQcmludGYgZm9ybWF0IGZpeGVzICgjNDY1MDI4KS4KCjIwMDctMDYtMjggMTE6MDY6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVzZSBvdGhlciBtZXRyaWNzIGFzIHdlbGwgd2hlbiBlc3RpbWF0aW5nIHRoZSBidWZmZXIgbGV2ZWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGFwcGx5X3NlZ21lbnQpLCAodXBkYXRlX2J1ZmZlcmluZyk6CgkgIFVzZSBvdGhlciBtZXRyaWNzIGFzIHdlbGwgd2hlbiBlc3RpbWF0aW5nIHRoZSBidWZmZXIgbGV2ZWwuCgoyMDA3LTA2LTI4IDEwOjIxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IFNtYWxsIGRlYnVnIGltcHJvdmVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogKG1ha2VfZGVjb2RlciksIChzZXR1cF9zb3VyY2UpOgoJICBTbWFsbCBkZWJ1ZyBpbXByb3ZlbWVudC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChhcHBseV9zZWdtZW50KSwgKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAocGx1Z2luX2luaXQpOgoJICBUd2VhayB0aGUgcmF0ZSBlc3RpbWF0aW9uIHBlcmlvZC4KCSAgV2hlbiBjYWxjdWxhdGluZyB0aGUgYnVmZmVyIGZpbGxlZG5lc3MgaW4gcmF0ZSBlc3RpbWF0aW9uIG1vZGUsIGRvbid0CgkgIG1peCBpdCB3aXRoIG90aGVyIG1ldHJpY3MuCgoyMDA3LTA2LTE2IDAzOjQyOjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGUgZXJyb3IgZnJvbSBpZ25vcmVkIHJldHVybiB2YWx1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBGaXggY29tcGlsZSBlcnJvciBmcm9tIGlnbm9yZWQgcmV0dXJuIHZhbHVlLgoKMjAwNy0wNi0xMyAxODoyMDo1NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGJ1aWxkIG9uIE1hY09TWC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKToKCSAgRml4IGJ1aWxkIG9uIE1hY09TWC4KCjIwMDctMDYtMTIgMDg6Mzg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBhIGRpdmlzaW9uIGJ5IHplcm8gd2hlbiB0aGUgbWF4IHBlcmNlbnQgaXMgPD0gMC4gRml4ZXMgIzQ0NjU3Mi4gYWxzbyB1cGRhdGUgdGhlIGJ1ZmZlcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoZXMgYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSk6CgkgIEZpeCBhIGRpdmlzaW9uIGJ5IHplcm8gd2hlbiB0aGUgbWF4IHBlcmNlbnQgaXMgPD0gMC4gRml4ZXMgIzQ0NjU3Mi4KCSAgYWxzbyB1cGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0dXMgd2hlbiByZWNlaXZpbmcgZXZlbnRzLiBGaXhlcyAjNDQ2NTUxLgoKMjAwNy0wNi0xMSAxMTozMjoyNiArMDAwMCAgVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFdhaXQgZm9yIHByZXJvbGwgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZm9yd2FyZCBhIGR1cmF0aW9uIHF1ZXJ5IHVwc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfcGVlcl9xdWVyeSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFdhaXQgZm9yIHByZXJvbGwgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZm9yd2FyZCBhIGR1cmF0aW9uIHF1ZXJ5IHVwc3RyZWFtLgoJICBGaXhlcyAjNDQ1NTA1LgoKMjAwNy0wNi0wNyAwOToxMToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3JhbmdlKToKCSAgRml4IGNvbXBpbGF0aW9uLgoKMjAwNy0wNi0wNiAxMzozNjoyNiArMDAwMCAgVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEFkZCBwdWxsIGJhc2VkIHNjaGVkdWxpbmcgYW5kIGZpeCBzb21lIGRlYWRsb2Nrcy4gRml4ZXMgIzQ0NDUyMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfZ2V0X3JhbmdlKSwgKGdzdF9xdWV1ZV9zcmNfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBBZGQgcHVsbCBiYXNlZCBzY2hlZHVsaW5nIGFuZCBmaXggc29tZSBkZWFkbG9ja3MuIEZpeGVzICM0NDQ1MjMuCgkgIERvZXMgbm90IHlldCBjb21wbGV0ZWx5IHdvcmsgYmVjYXVzZSBkdXJhdGlvbiBxdWVyaWVzIHVwc3RyZWFtIHdvbid0CgkgIGJsb2NrIHlldC4KCjIwMDctMDYtMDYgMDk6MDg6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIG1vcmUgZnNlZWtvIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCk6CgkgIFNvbWUgbW9yZSBmc2Vla28gY2hlY2tzLgoKMjAwNy0wNi0wNSAxNzowMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogSW5jbHVkZSBzdGRpbyB0byBkZWZpbmUgZnNlZWtvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaGF2ZV9kYXRhKSwKCSAgKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCksIChnc3RfcXVldWVfcmVhZF9pdGVtX2Zyb21fZmlsZSksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKToKCSAgSW5jbHVkZSBzdGRpbyB0byBkZWZpbmUgZnNlZWtvLgoKMjAwNy0wNi0wNSAxNjoxNDoyMyArMDAwMCAgVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEFkZCBzdXBwb3J0IGZvciBmaWxlYmFzZWQgYnVmZmVyaW5nLiBGaXhlcyAjNDQxMjY0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgIChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3F1ZXVlX3dyaXRlX2J1ZmZlcl90b19maWxlKSwgKGdzdF9xdWV1ZV9oYXZlX2RhdGEpLAoJICAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKSwgKGdzdF9xdWV1ZV9yZWFkX2l0ZW1fZnJvbV9maWxlKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaXNfZW1wdHkpLCAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksCgkgIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwgKGdzdF9xdWV1ZV9zZXRfdGVtcF9sb2NhdGlvbiksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgQWRkIHN1cHBvcnQgZm9yIGZpbGViYXNlZCBidWZmZXJpbmcuIEZpeGVzICM0NDEyNjQuCgoyMDA3LTA1LTE3IDE1OjIyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBUd2VhayB0aGUgYnVmZmVyaW5nIHRocmVzaG9sZHMgYSBsaXR0bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9yYXRlcyk6CgkgIFR3ZWFrIHRoZSBidWZmZXJpbmcgdGhyZXNob2xkcyBhIGxpdHRsZS4KCSAgVXBkYXRlIHRoZSBidWZmZXIgc2l6ZSB3aXRoIHRoZSBwcmV2aW91c2x5IGNhbGN1bGF0ZSByYXRlIGluc3RlYWQgb2YKCSAgb25seSB3aGVuIHdlIGNhbGN1bGF0ZSBhIG5ldyByYXRlIHNvIHRoYXQgd2UgZ2V0IHNtb290aGVyIGJ1ZmZlcmluZwoJICB1cGRhdGVzLgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fYmFzZV9pbml0KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9pbml0KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9maW5hbGl6ZSksIChnc3RfdXJpX2RlY29kZV9iaW5fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9nZXRfcHJvcGVydHkpLCAodW5rbm93bl90eXBlKSwKCSAgKGFkZF9lbGVtZW50X3N0cmVhbSksIChub19tb3JlX3BhZHNfZnVsbCksIChub19tb3JlX3BhZHMpLAoJICAoc291cmNlX25vX21vcmVfcGFkcyksIChuZXdfZGVjb2RlZF9wYWQpLCAoYXJyYXlfaGFzX3ZhbHVlKSwKCSAgKGdlbl9zb3VyY2VfZWxlbWVudCksIChoYXNfYWxsX3Jhd19jYXBzKSwgKGFuYWx5c2Vfc291cmNlKSwKCSAgKHJlbW92ZV9kZWNvZGVycyksIChtYWtlX2RlY29kZXIpLCAocmVtb3ZlX3NvdXJjZSksCgkgIChzb3VyY2VfbmV3X3BhZCksIChzZXR1cF9zb3VyY2UpLCAoZGVjb2Rlcl9xdWVyeV9pbml0KSwKCSAgKGRlY29kZXJfcXVlcnlfZHVyYXRpb25fZm9sZCksIChkZWNvZGVyX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9wb3NpdGlvbl9mb2xkKSwgKGRlY29kZXJfcXVlcnlfcG9zaXRpb25fZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChkZWNvZGVyX3F1ZXJ5X2xhdGVuY3lfZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X3NlZWtpbmdfZm9sZCksIChkZWNvZGVyX3F1ZXJ5X3NlZWtpbmdfZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X2dlbmVyaWNfZm9sZCksIChnc3RfdXJpX2RlY29kZV9iaW5fcXVlcnkpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NoYW5nZV9zdGF0ZSksIChwbHVnaW5faW5pdCk6CgkgIE5ldyBlbGVtZW50IHRoYXQgaW50ZXJncmF0ZXMgYSBzb3VyY2UsIG9wdGlvbmFsIGJ1ZmZlcmluZyBlbGVtZW50IGFuZAoJICBkZWNvZGViaW4uCgoyMDA3LTA1LTE3IDEzOjM2OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBmaXggYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLAoJICAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLCAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChyZXNldF9yYXRlX3RpbWVyKSwgKHVwZGF0ZV9yYXRlcyksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9pc19maWxsZWQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCksCgkgIChwbHVnaW5faW5pdCk6CgkgIGZpeCBidWlsZC4KCjIwMDctMDUtMTcgMTE6NTc6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBPbiBvdXIgd2F5IHRvIHBsYXliaW4yIHRoaXMgaXMgdGhlIG5ldyBuZXR3b3JrIHF1ZXVlIHRoYXQgZG9lcyBidWZmZXJpbmcgYWxsIGJ5IGl0c2VsZiB1c2luZyBoaWdoIGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3F1ZXVlX2dldGNhcHMpLCAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKHVwZGF0ZV9idWZmZXJpbmcpLCAocmVzZXRfcmF0ZV90aW1lciksCgkgICh1cGRhdGVfcmF0ZXMpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfaXNfZW1wdHkpLAoJICAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KSwgKHBsdWdpbl9pbml0KToKCSAgT24gb3VyIHdheSB0byBwbGF5YmluMiB0aGlzIGlzIHRoZSBuZXcgbmV0d29yayBxdWV1ZSB0aGF0IGRvZXMgYnVmZmVyaW5nCgkgIGFsbCBieSBpdHNlbGYgdXNpbmcgaGlnaCBhbmQgbG93IHdhdGVybWFya3MuIEl0IGNhbiBhbHNvIG1lYXN1cmUgdXAgYW5kCgkgIGRvd25zdHJlYW0gYmFuZHdpZHRoIHRvIG9wdGltYWxseSBzaXplIHRoZSBxdWV1ZS4KCjIwMDktMTAtMjggMjI6MDM6NDQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IEZpeCBtZW1sZWFrIG9mIHVudXNlZCBkZWxheWVkIGxpbmtzCgkgIEF0dGFjaCB0aGUgRGVsYXllZExpbmsgc3RydWN0dXJlIHRvIHRoZSBlbGVtZW50LCBzbyB0aGF0IHdoZW4KCSAgdGhlIGVsZW1lbnQgaXMgZGlzcG9zZWQsIHRoZSBEZWxheWVkTGluayBpcyBmcmVlZC4KCjIwMDktMDktMDkgMTU6Mzc6MTEgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIF9maXhhdGVfY2FwcygpIGFsc28gdHJ1bmNhdGUgd2hlbiBuZWVkZWQKCSAgVGhlIGRlZmF1bHQgZ3N0X3BhZF9maXhhdGVfY2FwcygpIHByZXZpb3VzbHkgd291bGQgb25seSBmaXhhdGUgZWFjaCBpbmRpdmlkdWFsCgkgIHN0cnVjdC4gSW4gY2FzZSB0aGVyZSBhcmUgbXVsdGlwbGUgc3RydWN0cywgdGhlIHJlc3VsdGluZyBjYXBzIHdvdWxkIHN0aWxsIG5vdAoJICBiZSBmaXhlZC4gSW4gdGhlIHNwaXJpdCBvZiBob3cgaW5kaXZpZHVhbCBzdHJ1Y3RzIGFyZSBmaXhhdGVkLCB0aGlzIHBhdGNoCgkgIGNoYW5nZXMgZ3N0X3BhZF9maXhhdGVfY2FwcygpIHRvIHJlbW92ZSBhbGwgYnV0IHRoZSBmaXJzdCBzdHJ1Y3QuCgkgIEZpeGVzICM1OTU4ODYKCjIwMDktMDktMjEgMTE6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBmaXggZG9jcwoKMjAwOS0xMC0yOCAwOToyNjozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBvcHRpbWlzYXRpb24gOiBVc2UgZ19vYmplY3RfbmV3diB3aGVyZSBwb3NzaWJsZS4KCSAgVGhpcyBhdm9pZHM6CgkgICogdHJpcGxlLWNoZWNraW5nIGZvciB0aGUgR1R5cGUgd2hlbiB0eXBlLWNoZWNraW5nIGlzIGVuYWJsZWQgKHNlZSAjNTk3MjYwKQoJICAqIEF2b2lkcyBnb2luZyB0aHJvdWdoIGFuIGV4cGVuc2l2ZSBuby1hcmd1bWVudCBjaGVja2luZyB3aGljaCBsYW5kZWQgaW4KCSAgZ2xpYi0yLjIyCgkgICogQXZvaWRzIGdvaW5nIHRocm91Z2ggMiBleHRyYWMgZnVuY3Rpb25zIChnX29iamVjdF9uZXcgLT4gZ19vYmplY3RfbmV3X3ZhbGlzdCkKCjIwMDktMTAtMjggMTA6MTU6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGluY2x1ZGUgYW5ub3RhdGlvbiBnbG9zc2FyeSB0byBoYXZlIHdvcmtpbmcgbGlua3MuCgoyMDA5LTEwLTI4IDEwOjE0OjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGFubm90YXRpb25zOiBhZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X2luaXRfY2hlY2sgdG9vCgoyMDA5LTEwLTI4IDA5OjU4OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGRvY3M6IHRlbGwgbW9yZSBhYm91dCB3aGF0IGhhcHBlbnMgaW4gZ3N0X2luaXQuCgkgIEFkZCBsaW5rcyB0byBnc3RfdXBkYXRlX3JlZ2lzdHJ5IGFuZCB0aGUgZW52LXZhcnMuCgoyMDA5LTEwLTI4IDA5OjIxOjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gT0dJIGFuZCByZXBocmFzZSBzZWN0aW9ucyBkb2NzCgkgIFRoZSBPR0kgbGlua3MgYXJlIGRlYWQsIHNvIHJlbW92ZSB0aGVtLiBBbHNvIHJlbW92ZSB0aGUgcGFyYWdyYXBoIHRoYXQgcG9pbnRlZAoJICB0byBPR0kgYW5kIERTLiBPbmx5IG1lbnRpb25pbmcgRFMgdGhlcmUgbWFkZSBpdCBhIGJ1dCBwb2ludGxlc3MuIEFkZCBhIGdlbmVyaWMKCSAgcGFyYWdyYXBoIGluc3RlYWQgdGhhdCB0ZWxscyBhIGJpdCBhYm91dCB0aGUgdXNlY2FzZXMgZ3N0cmVhbWVyIGNvdmVycy4KCjIwMDktMTAtMjggMDA6Mjk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBSZW1vdmUgR1NUX0RFQlVHX0ZVTkNQVFIgd2hlcmUgdGhleSdyZSBwb2ludGxlc3MKCSAgVGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiB1c2luZyBHU1RfREVCVUdfRlVOQ1BUUiB3aXRoIEdPYmplY3QKCSAgdmlydHVhbCBmdW5jdGlvbnMgc3VjaCBhcyBnZXRfcHJvcGVydHksIHNldF9wcm9wZXJ5LCBmaW5hbGl6ZSBhbmQKCSAgZGlzcG9zZSwgc2luY2UgdGhleSdsbCBuZXZlciBiZSB1c2VkIGJ5IGFueW9uZSBhbnl3YXkuIFNhdmVzIGEKCSAgZmV3IGJ5dGVzIGFuZCBwb3NzaWJseSBhIHRlbnRoIG9mIGEgcG9sYXIgYmVhci4KCjIwMDktMTAtMjggMDA6MDc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IHNwcmlua2xlIHNvbWUgR1NUX0RFQlVHX0ZVTkNQVFIKCjIwMDktMTAtMjcgMTU6NDc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkZXNpZ246IGFkZCBzb21lIGlkZWFzIGZvciBTS0lQIG1vZGUgdHJpY2ttb2RlcwoKMjAwOS0xMC0yMyAxMDoyMDowMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBidWZmZXJpbmcgaXMgaW1wbGVtZW50ZWQgbm93CgoyMDA5LTEwLTIyIDIxOjI0OjI0IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBtYWtlIHN1cmUgcGVyY2VudCBpbmNyZWFzZXMKCSAgS2VlcCB0cmFjayBvZiB0aGUgbGFzdCBwb3N0ZWQgcGVyY2VudCBtZXNzYWdlIGFuZCBtYWtlIHN1cmUgdGhlIG5leHQgcGVyY2VudAoJICBtZXNzYWdlcyBhcmUgc3RyaWN0bHkgaW5jcmVhc2luZy4KCjIwMDktMTAtMjIgMTY6Mzg6MTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcmVmYWN0b3IgYnVmZmVyaW5nIGNvZGUKCSAgTW92ZSB0aGUgYnVmZmVyaW5nIHVwZGF0ZSBjb2RlIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gY2FsbCBpdAoJICB3aGVuIHRoZSBidWZmZXJpbmcgc3RhdGUgY2hhbmdlcyBkdWUgdG8gRU9TLgoJICBBdm9pZCBkaXZpZGluZyBieSAwLgoKMjAwOS0xMC0yMiAxNDowOTowMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogYWRkIGJ1ZmZlcmluZyBzdXBwb3J0CgkgIEFkZCBzdXBwb3J0IGZvciBidWZmZXJpbmcgbW9kZSB3aGVyZSB3ZSBwb3N0IEJVRkZFUklORyBtZXNzYWdlcyBiYXNlZCBvbiB0aGUKCSAgbGV2ZWwgb2YgdGhlIHF1ZXVlcy4gSXQgY3VycmVudGx5IG9wZXJhdGVzIG9uIHRoZSBmaXJzdCBxdWV1ZSB0aGF0IGdvZXMgb3ZlciBvcgoJICB1bmRlciB0aGUgaGlnaC9sb3cgdGhyZXNob2xkcy4KCjIwMDktMTAtMjIgMTQ6MDc6MzEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG9uJ3QgY2hlY2sgdmlzaWJsZSBpdGVtcyBpbiBidWZmZXJpbmcKCSAgSW4gYnVmZmVyaW5nIG1vZGUgd2Ugd2FudCB0byBpZ25vcmUgdGhlIG1heCB2aXNpYmxlIGl0ZW1zIHRvIGRlY2lkZSB3aGVuIHRoZQoJICBxdWV1ZSBpcyBmaWxsZWQuIEluc3RlYWQsIHdlIG9ubHkgbG9vayBhdCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFuZC9vciB0aW1lIGluIHRoZQoJICBxdWV1ZS4KCjIwMDktMTAtMjEgMTE6MzA6NDAgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGhvb2sgdXAgbG93L2hpZ2ggcGVyY2VudAoJICBIb29rIHVwIHRoZSBsb3cvaGlnaCBwZXJjZW50IHByb3BlcnRpZXMgZm9yIHRoZSBidWZmZXJpbmcgbW9kZS4KCjIwMDktMTAtMjEgMTE6MjQ6NDcgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGhvb2sgdXAgcHJvcGVydHkgZm9yIGJ1ZmZlcmluZwoKMjAwOS0xMC0yMiAxNToyMTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzbWFsbCBjbGVhbnVwcwoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2lvbgoJICBGaXggc29tZSB0eXBvCgoyMDA5LTEwLTIyIDA5OjQxOjUyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGFkZCBGSVhNRSBmb3Igd3JvbmcgY29kZQoJICBOZWVkcyBmdXJ0aGVyIGludmVzdGlnYXRpb24KCjIwMDktMTAtMjEgMTQ6MjA6MjkgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZml4IGRlYnVnIG91dHB1dAoKMjAwOS0xMC0yMSAxNDoxNTowNSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCBzaGFkb3dpbmcgZnVuY3Rpb24gYXJndW1lbnQKCSAgRG9uJ3Qgc2hhZG93IHRoZSBzcSBhcmd1bWVudCBpbiB0aGUgdW5kZXJydW5fY2IgZnVuY3Rpb24gYnV0IHVzZQoJICBhIGRpZmZlcmVudCB2YXJpYWJsZSBuYW1lIHRvIGl0ZXJhdGUgdGhlIG90aGVyIHF1ZXVlcy4KCSAgVXNlIHRoZSBzYW1lIHZhcmlhYmxlIG5hbWUgaW4gdGhlIG92ZXJydW5fY2IgZnVuY3Rpb24uCgoyMDA5LTEwLTIxIDE0OjEyOjEyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IG1ha2UgcXVldWUgYXJnIGV4cGxpY2l0CgkgIE1ha2UgdGhlIHF1ZXVlIGFyZ3VtZW50IHRvIElTX0ZJTExFRCBleHBsaWNpdAoKMjAwOS0xMC0yMSAxMToxNzowOCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmaXggcHJvcGVydGllcwoJICBGaXggcHJvcGVydGllcywgbWFrZSB0aGUgZXh0cmEtc2l6ZSBwcm9wZXJ0aWVzIGFzIG5vdCBpbXBsZW1lbnRlZC4KCjIwMDktMTAtMjUgMjE6MzU6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGFsbG93IHRvIGhpZGUvc2hvdyBwYWQgc3RhdHVzIHdpdGggZ3JhcGhkZXRhaWxzIGZsYWcKCjIwMDktMTAtMjQgMTM6MTQ6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogUmVtb3ZlIG9ic29sZXRlIEZJWE1FCgkgIEl0J3Mgbm90IG5lY2Vzc2FyeSAoYW5kIG5vdCBhIGdvb2QgaWRlYSkgdG8gY2FjaGUgdGhlIHR5cGVmaW5kIGZhY3RvcnkKCSAgbGlzdCBhbnltb3JlLgoKMjAwOS0xMC0yNCAxMTo1ODoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiBwcml2YXRlIGlzIGEgQysrIGtleXdvcmQsIGRvbid0IHVzZSBpdAoJICAuLi5vdGhlcndpc2UgQysrIGNvbXBpbGVycyB3aWxsIGNvbXBsYWluIHdoZW4gaW5jbHVkaW5nIGdzdHJlZ2lzdHJ5LmgKCjIwMDktMTAtMjQgMTA6MjE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZG9jczogYWRkIFNpbmNlIHRhZyB0byBkb2NzIGZvciBuZXcgQVBJCgkgIEFuZCB0ZWxsIGd0ay1kb2MgdGhhdCBHc3RSZWdpc3RyeVByaXZhdGUgaXMgcHJpdmF0ZS4KCjIwMDktMTAtMjEgMDk6NDg6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBLZWVwIHR5cGVmaW5kIGZhY3RvcmllcyBzb3J0ZWQgaW4gdGhlIHJlZ2lzdHJ5LiBGaXhlcyAjNTk5MTQ3CgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBkbyB0aGUgc29ydGluZyBldmVyeXRpbWUgd2UgdXNlIHR5cGVmaW5kCgkgIFRoZSBiZWhhdmlvdXIgb2YgZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9saXN0IGhhcyBzdWJ0bGVseSBjaGFuZ2VkCgkgIGluIHRoZSBzZW5zZSB0aGF0IHRoZSBvcmRlciB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQsIHdoZXJlYXMgbm93CgkgIGl0IHJldHVybnMgdGhlbSBzb3J0ZWQgYnkgcmFuayBhbmQgdGhlbiBieSBuYW1lLgoKMjAwOS0xMC0yMSAwOTo0NTo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogQ2FjaGUgZWxlbWVudCBhbmQgdHlwZWZpbmQgZmFjdG9yaWVzLiBGaXhlcyA1OTg4OTYKCSAgVGhpcyBhdm9pZHMgdW5uZWVkZWQgbGlzdC9maWx0ZXJpbmcgaWYgdGhlIHJlZ2lzdHJ5IGhhc24ndCBjaGFuZ2VkCgoyMDA5LTEwLTIxIDA5OjQwOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHBsdWdpbmZlYXR1cmU6IEFQSSA6IG5ldyBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9jb3B5KCkgbWV0aG9kCgkgIFRoaXMgYWxsb3dzIGNvcHlpbmcgQU5EIGluY3JlbWVudGluZyB0aGUgcmVmY291bnQgYXQgdGhlIHNhbWUgdGltZSwKCSAgYXZvaWRpbmcgYSBkb3VibGUgaXRlcmF0aW8gb2YgdGhlIEdMaXN0CgoyMDA5LTEwLTI0IDEwOjA1OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBnc3RyZWdpc3RyeTogQWRkIGEgY29va2llIGZvciBkZXRlY3RpbmcgZmVhdHVyZSBsaXN0IGNoYW5nZXMKCSAgV2UgYWxzbyBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZSwgc2luY2Ugd2Ugd2lsbCBuZWVkIHRvIGFkZCBtb3JlCgkgIGRhdGEgdGhlcmUgaW4gZm9sbG93aW5nIHBhdGNoZXMuCgoyMDA5LTEwLTIzIDEzOjE5OjA0IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogZG9uJ3QgdXNlIHR5cGVjaGVja2luZyBjYXN0IG1hY3JvcwoJICBTaW1wbHkgdXNlIGNhc3RpbmcgbWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIG1lc3NhZ2UgZmllbGRzIGxpa2Ugd2UgZG8gZm9yCgkgIGJ1ZmZlcnMgYW5kIGV2ZW50cy4gQXZvaWRzIHNvbWUgY29zdGx5IHR5cGVjaGVja2luZyB0aGF0IGRvZXMgbm90IHJlYWxseSBidXkgdXMKCSAgbXVjaC4KCjIwMDktMTAtMjMgMTM6MTM6NTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBSZXZlcnQgImdzdG1lc3NhZ2U6IEF2b2lkIGV4cGVuc2l2ZSBzcmMvdHlwZS90aW1lc3RhbXAgZmV0Y2guIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDYxY2Y5M2EzMzRiNzlhMmQ4NDkzZTUzMWNjNDRiYTQ1YTQyMDk4MDUuCgoyMDA5LTEwLTIzIDE3OjUxOjI3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZ3N0bWVzc2FnZTogQXZvaWQgZXhwZW5zaXZlIHNyYy90eXBlL3RpbWVzdGFtcCBmZXRjaC4KCSAgSWYgd2UndmUgYWxyZWFkeSBjaGVja2VkIHRoYXQgd2UgaGF2ZSBhIHZhbGlkIG1lc3NhZ2UsIHVzZSB0aGUgZW50cmllcwoJICBkaXJlY3RseS4KCjIwMDktMTAtMjMgMTc6NDc6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVc2UgaW5saW5lZCB2ZXJzaW9uIG9mIF9pc19hbnkoKS9faXNfZW1wdHkoKQoJICBDQVBTX0lTX0FOWSBhbmQgQ0FQU19JU19FTVBUWSBhcmUgdGhlIGVxdWl2YWxlbnQgb2YgdGhlaXIgZ3N0X2NhcHNfKgoJICBjb3VudGVycGFydCBleGNlcHQgdGhhdCB0aGV5IGF2b2lkIHRoZSB0eXBlY2hlY2tpbmcgYW5kIGFyZSBpbmxpbmVkLgoJICBDQVBTX0lTX0VNUFRZX1NJTVBMRSBvbmx5IGNoZWNrcyBmb3IgZW1wdHkgY2FwcyAod2l0aG91dCBjaGVja2luZyBpZgoJICB0aGUgY2FwcyBpcyBBTlkpLgoKMjAwOS0xMC0yMiAxNjo0MjoxMyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFRPRE86IGFkZCBpdGVtIHRvIFRPRE8gbGlzdAoJICBXZSBjdXJyZW50bHkgZG8gYSBsaXR0bGUgdG9vIG11Y2ggd29yayB3aGVuIHdlIHB1c2ggdGhlIGZpcnN0IGJ1ZmZlciBhcm91bmQKCSAgcmVzdWx0aW5nIGluIGV4Y2Vzc2l2ZSBjYXBzIGNoZWNraW5nLiBXZSBjYW4gcHJvYmFibHkgbWFrZSB0aGlzIGEgbGl0dGxlIGxlc3MKCSAgZXhwZW5zaXZlLgoKMjAwOS0xMC0yMiAxMjo1Mjo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdHBpcGVsaW5lOiBTaW1wbGlmeSBiYXNlIHRpbWUgY2hlY2tpbmcgc2xpZ2h0bHkKCSAgU2ltcGxpZnkgY2hlY2tpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgYmFzZSB0aW1lIC0gZG9uJ3QgcmUtY2hlY2sKCSAgdGhlIHZhbHVlIG9mIGEgbG9jYWwgdmFyaWFibGUgdGhhdCB3YXMgc2V0IDMgbGluZXMgZWFybGllci4KCjIwMDktMTAtMjIgMTM6MTU6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogT3B0aW1pc2F0aW9uOiBBdm9pZCB0eXBlLWNoZWNraW5nIGluIHNvcnRpbmcgbWV0aG9kLgoJICBXZSBhbHJlYWR5IGtub3cgdGhlIGxpc3Qgb25seSBjb250YWlucyBwbHVnaW4gZmVhdHVyZXMKCjIwMDktMTAtMjIgMTM6MTM6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogT3B0aW1pc2F0aW9uIDogQ2FzdCB3aGVuIHdlJ3JlIHN1cmUgb2YgdGhlIHR5cGUuCgkgIEFsc28gZGlyZWN0bHkgYWNjZXNzIEdzdEVsZW1lbnRGYWN0b3J5LT51cmlfdHlwZSBpbnN0ZWFkIG9mIGdvaW5nCgkgIHRocm91Z2ggYSBmdW5jdGlvbiB0aGF0IHdpbGwgKG9uY2UgYWdhaW4pIGNoZWNrIHdoZXRoZXIgaXQncyBhCgkgIEdzdEVsZW1lbnRGYWN0b3J5CgoyMDA5LTEwLTIyIDEyOjMzOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHMvZmFrZXNpbms6IEFkZCBzb21lIGRlYnVnZ2luZwoKMjAwOS0xMC0yMiAxMjozMzowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzL2ZhZWtzaW5rOiBMb3dlciB0aGUgbnVtYmVyIG9mIHRocmVhZHMgdG8gYXZvaWQgdGltZW91dHMKCSAgV2UganVzdCBlbmQgdXAgd2l0aCB3YXkgdG9vIG11Y2ggY29udGVudGlvbiBpbiBnbGliIG90aGVyd2lzZS4KCjIwMDktMTAtMTkgMDk6MDY6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZ3N0cmVnaXN0cnk6IFVzZSBoYXNoIHRhYmxlIHdoZW4gZmluZGluZyBhIGZlYXR1cmUuIEZpeGVzICM1OTg4OTUKCjIwMDktMTAtMjEgMTY6MjY6MDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGltcGxlbWVudCBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBJbXBsZW1lbnQgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBvbiB0aGUgc2lua3BhZC4gV2UgY2FuIGFjY2VwdCBhbnkgY2FwcyBhcwoJICBsb25nIGFzIGl0IGlzIGFjY2VwdGVkIGJ5IGFsbCBkb3duc3RyZWFtIHBlZXIgZWxlbWVudHMuCgoyMDA5LTEwLTIxIDEzOjM4OjU3IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCBsb2NrIGZvciB0YWtpbmcgdGhlIGNvdW50ZXIKCSAgVGhlIGNvdW50ZXIgZm9yIGluY29tbWluZyBkYXRhIGlzIGFscmVhZHkgcHJvdGVjdGVkIHdpdGggdGhlIFNUUkVBTV9MT0NLIHNvIHdlCgkgIGRvbid0IG5lZWQgdG8gYWRkIGFub3RoZXIgbG9jayBhcm91bmQgaXQuCgoyMDA5LTEwLTIwIDIzOjI4OjU0IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogaGFzaCB0aGUgcGx1Z2luIGJhc2VuYW1lCgkgIE1haW50YWluIGEgaGFzaHRhYmxlIG9mIHRoZSBwbHVnaW4gYmFzZW5hbWUuIFdlIGNhbiB0aGVuIHVzZSB0aGlzCgkgIGhhc2h0YWJsZSB0byBzcGVlZHVwIHRoZSBzZWFyY2ggZm9yIGFuIGV4aXN0aW5nIHBsdWdpbiBhbmQgYXZvaWQKCSAgYSB3aG9sZSBsb3Qgb2Ygc3RyY21wIGNhbGxzLgoKMjAwOS0xMC0yMCAyMzoyNzo0MSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogc3BlZWQgdXAgX3N0cmxlbgoJICBNYWtlIHRoZSBfc3RybGVuIGZ1bmN0aW9uIGEgbGl0dGxlIHRpZ2h0ZXIKCjIwMDktMTAtMjAgMjE6NDM6NTggLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IG5hbWUgaXMgbmV2ZXIgTlVMTAoJICBXaGVuIGxvb2tpbmcgdXAgYSBmZWF0dXJlIGJ5IG5hbWUsIHdlIG5ldmVyIGNhbGwgdGhpcyBpbnRlcm5hbAoJICBmdW5jdGlvbiB3aXRoIE5VTEwgc28gd2UgZG9uJ3QgaGF2ZSB0byBjaGVjayBmb3IgaXQuCgoyMDA5LTEwLTIwIDIxOjM5OjExIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiByZWZhY3RvciBwbHVnaW4gbG9va3VwCgkgIFdlIGtlZXAgbG9va3VwIHBsdWdpbnMgYnkgdGhlaXIgYmFzZW5hbWUuIEF2b2lkIGNyZWF0aW5nIGEgYmFzZW5hbWUKCSAgZnJvbSBhIGZpbGVuYW1lIGlmIHdlIGNhbi4KCjIwMDktMTAtMjAgMjE6MDE6NTUgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGRvIHF1aWNrIGNoZWNrIGZvciAuIGZpbGVzCgkgIERvIGEgcXVpY2sgY2hlY2sgZm9yIC4gZmlsZXMgYmVmb3JlIGNhbGxpbmcgdGhlIHN0cmNtcCBmdW5jdGlvbnMKCjIwMDktMTAtMjAgMTI6MjE6MDkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOgoJICBSZW1vdmUgZXhlY3V0YWJsZSBiaXRzIG9uIHhtbCB1bml0IHRlc3QuCgoyMDA5LTEwLTE5IDE2OjQ3OjEwICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IEZpeCBkb2NzIGZvciBnc3RfY2Fwc19zZXRfc2ltcGxlKCkKCjIwMDktMTAtMTkgMTM6MDI6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IE1vZGlmeSBkb2NzIHN0cmluZyBzbGlnaHRseS4KCSAgQXBwYXJlbnRseSBzdGFydGluZyB0aGUgbGFzdCBsaW5lIG9mIGEgZG9jcyBzdHJpbmcgd2l0aCAncmV0dXJucycgYm90aAoJICBjb25mdXNlcyBhbmQgZW5yYWdlcyBndGstZG9jLiBVc2UgYSBzbGlnaHRseSBkaWZmZXJlbnQgd29yZGluZyBpbnN0ZWFkLgoKMjAwOS0xMC0xOSAxMjoyOTozNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IFdoZW4gYSBwbHVnaW4gaXMgYmxhY2tsaXN0ZWQsIG91dHB1dCBhIEdTVF9FUlJPUiBsaW5lLgoKMjAwOS0xMC0xOSAxMzozMDoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0OiBDaGVjayB3ZSdyZSBub3QgaGFuZGxpbmcgTlVMTCBwb2ludGVycy4KCjIwMDktMTAtMTkgMTM6Mjk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scy9nc3QtaW5zcGVjdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudAoKMjAwOS0xMC0xNCAxMDo1NDozMiArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IERvIG5vdCBwb2lzb24gZ3N0X3RyYWNlX2FkZF9lbnRyeSgpCgkgIFNpbmNlIGdzdF90cmFjZV9hZGRfZW50cnkoKSBpcyBhIG1hY3JvLCBnY2Mgd2lsbCBiYXJmIHdoZW4gaXQgaXMKCSAgZGVmaW5lZCBpbiBjYXNlIGl0IGhhcyBiZWVuIHBvaXNvbmVkIGR1ZSB0byB0cmFjZSBzdXBwb3J0IGJlaW5nCgkgIGRpc2FibGVkLgoKMjAwOS0xMC0xOCAyMzoxODo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBqdXN0IGNhc3QgaW4gaW50ZXJuYWwgQVBJIHdoZXJlIHdlIGhhdmUgY2hlY2tlZCBwYXJhbWV0ZXJzIGFscmVhZHkKCjIwMDktMTAtMTggMjM6MTU6MDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiB1c2UgZ19zbGljZSBmb3IgY29udHJvbGxlZCBwcm9wZXJ0eSBzdHJ1Y3R1cmVzCgkgIFVzZSBnX3NsaWRlIGluc3RlYWQgb2Ygbm9tYWwgZ19uZXcsIEFsc28gZG9uJ3QgaW5pdCBzdHJ1Y3Qgd2l0aCAwIGFzIHdlIG5lZWQgdG8KCSAgaW5pdCBpdCBhbnl3YXkgd2l0aCB0aGUgcmVhbCB2YWx1ZXMuCgkgIEFsc28gam9pbiB0aGUgMyBmbGFncyBjaGVja3MgaW50byBvbmUuCgoyMDA5LTEwLTE4IDE3OjE3OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBsaWJzL2Jhc2UvdHlwZWZpbmRoZWxwZXI6IFJlbW92ZSB1c2VsZXNzIHR5cGVjaGVja2luZyBpbiB0aWdodCBsb29wCgkgIFRoZSBsaXN0IGFnYWluc3Qgd2hpY2ggd2UgcnVuIHRoZSBjb21wYXJlZnVuYyB3aWxsIG9ubHkgY29udGFpbgoJICBHc3RQbHVnaW5GZWF0dXJlLCB0aGVyZWZvcmUgcmVtb3ZlIHRoZSA2IGV4cGVuc2l2ZSB0eXBlIGNoZWNrcyB3ZSBkbwoJICBmb3IgZXZlcnkgc2luZ2xlIGNvbXBhcmlzaW9uLgoKMjAwOS0xMC0xNiAxMjozOTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCB0eXBvIGluIGRvY3MKCjIwMDktMTAtMTYgMDk6NDM6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgQVBJIHN5bWJvbAoKMjAwOS0xMC0xNiAxMDoxMzo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NWQxNTMwIHRvIDA3MDJmZTEKCjIwMDktMTAtMDcgMTU6MzI6MTggKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgSW1wcm92ZSBjYXBzIHNldHRlcnMgQVBJCgkgIFRoaXMgcGF0Y2ggYWRkcyBnc3RfY2Fwc19zZXRfdmFsdWUoKSBhbmQgYWxsb3dzIGdzdF9jYXBzX3NldF9zaW1wbGUoKSB0bwoJICB3b3JrIG9uIG5vbi1zaW1wbGUgY2Fwcy4gU2VlIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZ1bmN0aW9ucwoJICBhYm91dCB3aGF0IHRoZXkgZG8uCgkgIFRoZSBpbnRlbnRpb24gb2YgdGhlc2UgY2hhbmdlcyBpcyB0byBlYXNlIHdvcmtpbmcgd2l0aCBjYXBzIGluIGNhcHMKCSAgdHJhbnNmb3JtIGZ1bmN0aW9ucy4gQW4gZXhhbXBsZSBmb3IgdGhpcyB3b3VsZCBiZSBmZm1wZWdjb2xvcnNwYWNlLAoJICB3aGVyZSB0aGUgY2FwcyB0cmFuc2Zvcm0gZnVuY3Rpb24gY291bGQgYmUgY2hhbmdlZCB0byBsb29rIHJvdWdobHkgbGlrZQoJICB0aGlzIChwc2V1ZG9jb2RlIGFoZWFkKToKCSAgcmVzdWx0ID0gZ3N0X2NhcHNfY29weSAodGVtcGxhdGVfY2Fwcyk7CgkgIHZhbHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUgKGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUgKGNhcHMsIDApLAoJICAid2lkaCIpOwoJICBnc3RfY2Fwc19zZXRfdmFsdWUgKHJlc3VsdCwgdmFsdWUpOwoJICAvKiBzYW1lIGZvciBoZWlnaHQsIGZyYW1lcmF0ZSBhbmQgcGFyICovCgkgIHJldHVybiBjYXBzOwoJICB3aGljaCBpcyBtdWNoIGNsZWFuZXIgYW5kIGVhc2llciB0byB1bmRlcnN0YW5kIHRoYW4gdGhlIGN1cnJlbnQgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzY5MAoKMjAwOS0xMC0wMiAxMDoxNTo1NSArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkgIEFkZCBYTUxfTElCUyB3aGVuIGJ1aWxkaW5nIHRlc3RzIHRoYXQgdXNlIHhtbC1zcGVjaWZpYyBmdW5jdGlvbnMKCjIwMDktMTAtMTUgMTY6MzU6NTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL01ha2V2YXJzOgoJICBwbzogRG9uJ3QgY3JlYXRlIGJhY2t1cCAucG8gZmlsZXMKCSAgQXMgd2VsbCBhcyBwcmV2ZW50aW5nIGNyZWF0aW9uIG9mIHVzZWxlc3MgYmFja3VwIGZpbGVzLCBpdCB3b3JrcwoJICBhcm91bmQgYSBidWcgaW4gZ2V0dGV4dCAwLjE3IG9uIE9TL1gKCjIwMDktMTAtMTUgMTY6MzA6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJhY2UgaW4gUExBWUlORy0+UEFVU0VELT5QTEFZSU5HCgkgIFdoZW4gd2UgcXVpY2tseSBzd2l0Y2ggZnJvbSBQTEFZSU5HIHRvIFBBVVNFRCBhbmQgYmFjayB0byBQTEFZSU5HIGl0J3MgcG9zc2libGUKCSAgaW4gc29tZSBjYXNlcyB0aGF0IHRoZSB0YXNrIHJlZnVzZXMgdG8gc3RhcnQsIFRoaXMgaXMgYmVjYXVzZSB3aGVuIHdlIGdvIHRvCgkgIFBBVVNFRCwgd2UgdW5zY2hlZHVsZSB0aGUgY2xvY2sgdGltZW91dCwgd2hpY2ggY291bGQgcmV0dXJuIFVOU0NIRURVTEVEIHdoZW4KCSAgd2UncmUgYmFjayB0byBQTEFZSU5HLCBjYXVzaW5nIHRoZSB0YXNrIHRvIFBBVVNFIGFnYWluIHdpdGggYSB3cm9uZy1zdGF0ZS4KCSAgVGhpcyBwYXRjaCBjaGVja3MgaWYgd2UgYXJlIHJ1bm5pbmcgd2hlbiB3ZSByZXR1cm4gd2l0aCBhbiBVTlNDSEVEVUxFRCByZXR1cm4KCSAgdmFsdWUgYW5kIGlmIHdlIGFyZSwgdHJ5IHRvIGNyZWF0ZSBhIG5ldyBidWZmZXIuCgkgIEZpeGVzICM1OTc1NTAKCjIwMDktMTAtMTUgMTI6MTY6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgZG9jczogY2xhcmlmeSBwcmVzZXQgYXBpIGRvY3MKCjIwMDktMTAtMTQgMTc6NTc6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBkb2NzOiBmaXggY29udHJvbGxlciBzZWN0aW9ucyBkb2NzCgoyMDA5LTEwLTE0IDEwOjQwOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MzgwZDRiIHRvIDg1ZDE1MzAKCjIwMDktMTAtMTQgMTA6MTY6MzEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggYSBkb2N1bWVudGF0aW9uIHR5cG8KCjIwMDktMTAtMTQgMDg6NTc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiAuLi5hbmQgYWRkIG1pc3NpbmcgZW5kaWYKCjIwMDktMTAtMTQgMDg6NTc6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBBbHNvIGRvbid0IHJ1biBtYWtlIGNoZWNrLWV4cG9ydHMgaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTEwLTE0IDA4OjUwOjMxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogT25seSBydW4gbWFrZSBjaGVjay1leHBvcnRzIGlmIG5vIHB1YmxpYyBBUEkgd2FzIGRpc2FibGVkCgkgIEZpeGVzIGJ1ZyAjNTk4Mjk3LgoKMjAwOS0xMC0xNCAwODozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogUmVwbGFjZSByZWN1cnNpdmUgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKSB3aXRoIGFuIGl0ZXJhdGl2ZSB2ZXJzaW9uCgkgIFRoaXMgaXMgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQgYmVjYXVzZSB0aGUgY29tcGlsZXIgY2FuJ3QgZG8gdGFpbAoJICByZWN1cnNpb24gaGVyZSBhbmQgaGFzIHRvIGtlZXAgYWxsIHN0YWNrIGZyYW1lcy4KCSAgTm90IHRoYXQgZWZmaWNpZW5jeSBpcyB0aGF0IGltcG9ydGFudCBoZXJlIGJ1dCBJIGFscmVhZHkgaGFkCgkgIHRoZSBpdGVyYXRpdmUgdmVyc2lvbiBzb21ld2hlcmUgZWxzZSBhbmQgYm90aCBhcmUgZWFzeSB0byByZWFkLgoKMjAwOS0xMC0xNCAwODoyOTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogQWRkIHNpbXBsZSB1bml0IHRlc3QgZm9yIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkKCjIwMDktMTAtMTMgMTk6MTI6NTAgKzAzMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS4xLm15b2hhbmVuQG5va2lhLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogZml4IHRpbWVzdGFtcCBjb21wYXJpc3Npb24sIEZpeGVzICM1OTc0MDcKCjIwMDktMTAtMTIgMjE6NTE6NTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IERpc2FibGUgdGhlIHRlc3RfZmFpbF9hYnN0cmFjdF9uZXcoKSB0ZXN0IGVudGlyZWx5IG9uIE9TL1gKCSAgRml4ZXMgYSBjb21waWxlciB3YXJuaW5nIGZyb20gdGhlIGZ1bmN0aW9uIGJlaW5nIGNvbXBpbGVkIGJ1dCBub3QKCSAgdXNlZC4KCjIwMDktMTAtMTIgMTQ6NTc6MzUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBkZWJ1ZzogTWFyayB0aGUgR1NUX1BPTEwgc3ltYm9sIGFzIGV4dGVybiB0byBhdm9pZCBtdWx0aXBseS1kZWZpbmVkIGVycm9yCgoyMDA5LTEwLTEyIDE0OjQ3OjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gdG8gNjM4MGQ0YjM3MGYwNzhmMGNjYTcyNDA0MjhlYTlmNjYzOTU3MWZmNQoKMjAwOS0xMC0xMiAxNDoyNDowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdHBvbGw6IE1ha2UgdGhlIG5ldyBHU1RfUE9MTCBkZWJ1ZyBjb21wbGV0ZWx5IHByaXZhdGUKCSAgTWFrZSB0aGUgR1NUX1BPTEwgZGVidWcgY2F0ZWdvcnkgc3ltYm9sIHByaXZhdGUgdG8gbGliZ3N0cmVhbWVyLCBhcwoJICB0aGVyZSBzaG91bGQgYmUgbm8gZXh0ZXJuYWwgdXNlcnMgb2YgaXQuCgoyMDA5LTEwLTEyIDE0OjIyOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrczogRGlzYWJsZSBhIGZhaXJseSBzaWxseSBnc3RvYmplY3QgdGVzdCBvbiBPUy9YCgkgIFRoaXMgdGVzdCB1c2VkIHRvIFNJR0JVUyBvbiBPUy9YIGJ1dCBub3cgU0lHU0VHVidzIGluc3RlYWQgb24KCSAgU25vdyBMZW9wYXJkLiBJdCdzIG5vdCB3b3J0aCB0aGUgZWZmb3J0IHRvIGZpZ3VyZSBvdXQgd2hpY2ggcGxhdGZvcm0KCSAgc2hvdWxkIHByb2R1Y2Ugd2hpY2ggZXJyb3IgZm9yIHdoYXQgaXMgZnVuZGFtZW50YWxseSBhIHByZXR0eSBzaWxseQoJICB0ZXN0LCBzbyBqdXN0IGRpc2FibGUgaXQgb24gT1MvWAoKMjAwOS0xMC0xMiAxMzo1MDo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSAgbGlicy9nc3QvY2hlY2s6IE1ha2Ugd3JpdGluZyB0aHJlYWRzYWZlLiBCYWNrcG9ydGVkIGZyb20gbGliY2hlY2sgdHJ1bmsKCjIwMDktMTAtMTIgMTM6NDk6MzUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGxpYnMvZ3N0L2NoZWNrOiBSdW4gZ3N0LWluZGVudCBvbiBsaWJjaGVjay4KCjIwMDktMTAtMTIgMTI6MDI6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGdzdHBsdWdpbmxvYWRlcjogRG9uJ3Qgd2FpdCBmb3JldmVyIG9uIGdzdF9wb2xsX3dhaXQuCgkgIFRoaXMgYWxsb3dzIHRoZSBtYWNvc3ggdmVyc2lvbnMgdG8gcHJvcGVybHkgZXJyb3Igb3V0IHdoZW4gZmRzIGFyZSBjbG9zZWQuCgkgIFRoaXMgaXMgb25seSBhIHRlbXBvcmFyeSBmaXggdW50aWwgdGhlIHBsdWdpbmxvYWRlciBpcyBzd2l0Y2hlZCB0byBub3QKCSAgdXNlIEdzdFBvbGwgYnV0IEdJT0NoYW5uZWxzLgoKMjAwOS0xMC0xMiAxMjowMTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IE9ubHkgdGFrZSBpbnRvIGFjY291bnQgYWN0aXZlIGZkcwoJICBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IHNlbGVjdCBwcm9wZXJseSBlcnJvcnMgb3V0IG9uIG1hY29zeCAoc2lnaCkKCjIwMDktMTAtMTIgMTA6MDc6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBBZGQgc29tZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwOS0xMC0xMiAxMDowMTowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IFVzZSB0aGUgZXJyb3IgZmRzZXQgd2hlbiB1c2luZyBzZWxlY3QvcHNlbGVjdC4KCSAgVGhpcyBpcyBuZWVkZWQgdG8gcHJvcGVybHkgZGV0ZWN0IGZkcyB0aGF0IGFyZSBjbG9zZWQgb3IgdGhhdCBnb3QKCSAgYW4gZXJyb3IKCjIwMDktMTAtMTIgMDk6NTA6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBEb24ndCB1c2UgcG9sbCBvbiBzeXN0ZW1zIHdpdGggYnJva2VuIHBvbGwKCjIwMDktMTAtMTIgMDk6NTA6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0OiBBZGQgZGVidWdnaW5nIGNhdGVnb3J5IEdTVF9QT0xMIGZvciBnc3Rwb2xsCgoyMDA5LTEwLTEyIDA5OjQ3OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IERldGVjdCBicm9rZW4gcG9sbCgpCgoyMDA5LTEwLTA5IDE3OjQ0OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBsZXRzIGtlZXAgLTEgZm9yIHNlZ21lbnN0IGFzIHRoZXkgYXJlIGd1aW50NjQgYW5kIG5vdCBHc3RDbG9ja1RpbWUKCjIwMDktMTAtMDkgMTc6MTE6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBHU1RfQ0xPQ0tfVElNRV9OT05FIGFuZCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBtb3JlCgoyMDA5LTEwLTA4IDIzOjEwOjQwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRml4IHZhbGdyaW5kIHdhcm5pbmdzIGJ5IHplcm9pbmcgcGFkZGluZyBieXRlcy4KCjIwMDktMTAtMDggMTc6MTk6MzggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBjaGVjazogSG9wZWZ1bGx5IGZpeCBhbiAnbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZyBvbiBPUy9YCgoyMDA5LTEwLTA4IDE2OjIxOjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBhIGRlYnVnIGZvcm1hdCBzdHJpbmcgaGFyZGVyIHRvIHNhdGlzZnkgT1MvWCdzIGdjYy4KCjIwMDktMTAtMDggMTY6MDU6MDggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGZvcm1hdCBzdHJpbmcgZm9yIGRlYnVnIGVycm9yIG1lc3NhZ2UuCgoyMDA5LTEwLTA4IDE1OjIxOjQ4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogTW92ZSBzdGRpbiBhbmQgc3Rkb3V0IG91dCBvZiBoYXJtJ3Mgd2F5CgkgIEluIHRoZSBwbHVnaW4gbG9hZGVyIHN1YnByb2Nlc3MsIG1vdmUgc3RkaW4gYW5kIHN0ZG91dCB0byBuZXcgZmQncwoJICBzbyB0aGF0IHBsdWdpbnMgcHJpbnRpbmcgdGhpbmdzIGR1cmluZyBwbHVnaW4gaW5pdCBvciAoKmdhc3AqKQoJICBwb3NzaWJseSByZWFkaW5nIGZyb20gc3RkaW4gZG9uJ3QgaW50ZXJmZXJlIHdpdGggdGhlIGRhdGEgc2VudCB0bwoJICBhbmQgZnJvbSB0aGUgcGFyZW50LgoKMjAwOS0xMC0wOCAxMToxNzoxNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBwbHVnaW4gZG9jczogQWRkIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBpbnNwZWN0IGVudmlyb25tZW50CgoyMDA5LTEwLTA4IDEwOjU5OjE1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM3Zjg5OGIgdG8gYTNlM2NlNAoKMjAwOS0xMC0wOCAxMDozOToyOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmVzOiBJZ25vcmUgdGhlIGJ5dGV3cml0ZXIgY2hlY2sgYmluYXJ5CgoyMDA5LTEwLTA4IDEwOjM2OjU2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IEZpeCBlcnJvciBoYW5kbGluZyBpbiB0aGUgcmVnaXN0cnkgbG9hZGVyCgkgIFdoZW4gdGhlIHBsdWdpbi1zY2FubmVyIGxvYWQgZmFpbHMgKGJlY2F1c2UgdGhlIGhlbHBlciBjYW4ndCBiZQoJICBzcGF3bmVkKSwgbWFrZSBzdXJlIHRvIGxvYWQgdGhlIHBsdWdpbiB0aGF0IGZhaWxlZCBpbi1wcm9jZXNzLCBzbwoJICB0aGF0IGFsbCBwbHVnaW5zIGRvIGdldCBsb2FkZWQuCgoyMDA5LTEwLTA4IDEwOjI2OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBGaXggdGVzdCBydW4gaW4gdGVzdHMvZXhhbXBsZXMvbWFudWFsCgkgIEFkZCB0aGUgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGNoZWNrIGVudmlyb25tZW50IGhlcmUgdG9vCgkgIHNvIHRoYXQgaXQgZG9lc24ndCBmYWlsIHdoZW4gbm8gaW5zdGFsbGVkIHNjYW5uZXIgaXMgYXZhaWxhYmxlLgoKMjAwOS0xMC0wOCAwOTozNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBhZGQgYmFjayBmaXggdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJldmVydGVkCgoyMDA5LTEwLTA4IDEwOjQ3OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBtb3JlIHF1ZXVlIG9wdGltaXphdGlvbnMKCSAgU3BsaXQgZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKCkgaW50byB2YXJpYW50IGZvciBidWZmZXIgYW5kIGV2ZW50IHRvIGdldCByaWQgb2YKCSAgdGhlIGlmKCkgYW5kIG1ha2UgdGhlIGNvZGUgbW9yZSByZWFkYWJsZSAoY29uc3RhbnQgYm9vbGVhbiBwYXJhbWV0ZXJzIGFyZSBuZXZlcgoJICBuaWNlKS4gUmVtb3ZlcyB0aGUgaWYgKGl0ZW0pIGNoZWNrcyBhcyB3ZSBkZXJlZmVyZW5jZSB0aGUgcG9pbnRlciBiZWZvcmUgYW55d2F5LgoJICBBbHNvIGFwcGx5IHRoZSBzYW1lIGlkZWEgb2YgcmV1c2luZyB0aGUgcHJldmlvdXMga25vd2xlZGdlIGluCgkgIGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSB0byByZW1vdmUgbW9yZSB0eXBlIGNoZWNrcy4KCjIwMDktMTAtMDggMTA6NTE6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzcGxpdCBnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcKCSAgU3BsaXQgZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3IGludG8gYnVmZmVyIGFuZCBldmVudCB2YXJpYW50IHRvIG1ha2Ugc2F2ZSBhbiBpZgoJICBhbmQgbWFrZSBjb2RlIG1vcmUgcmVhZGFibGUuCgoyMDA5LTEwLTA4IDA4OjU1OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHBsdWdpbnMvZ3N0ZmlsZXNyYzogTWFrZSBhIGZhc3QtcGF0aCBmb3IgbGVuZ3RoID09IDAgYnVmZmVyIGNyZWF0aW9uLgoJICBJZiB0aGUgcmVxdWVzdGVkIGxlbmd0aCBpcyAwLCB3ZSBkb24ndCBuZWVkIHRvIHJlYWQgYW55dGhpbmcgZnJvbSB0aGUgZmlsZS4KCjIwMDktMTAtMDggMDg6NTU6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgZ3N0L2NoZWNrL2NvbnNpc3RlbmN5Y2hlY2tlcjogQ2hlY2sgdHlwZSBvZiBtaW5pb2JqZWN0IGluIHByb2JlCgoyMDA5LTEwLTA4IDA4OjUzOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBnc3QvYmFzZS9iYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIGNvZGUgd2FzIHByZXZpb3VzbHk6CgkgICogY2hlY2tpbmcgaWYgcmV0IHdhcyAhPSBPSwoJICAqIC4uIGJ1dCBpZiBpdCB3YXMgRkxPV19TVEVQLCBzd2l0aCBpdCB0byBPSwoJICAqIC4uIGFuZCB0aGVuIG5vdCB1c2luZyByZXQKCSAgSW5zdGVhZCB3ZSBqdXN0IG1ha2UgaXQgbW9yZSBjb21wYWN0IGJ5IGNoZWNraW5nIGlmIGl0J3MgT0sgb3IgU1RFUC4KCjIwMDktMTAtMDggMDg6NTM6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgb2JqZWN0IGlzIG5vIGxvbmdlciB1c2VkIGFmdGVyIHRoYXQgbGluZQoKMjAwOS0xMC0wOCAwODo1MjoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBnc3RpbmRleDogTWFrZSBzdXJlIHdyaXRlciBpcyBub24tTlVMTC4KCSAgRml4ZXMgdGhlIE5VTEwgZGVyZWZlcmVuY2UgYSBmZXcgbGluZXMgbG93ZXIgKHdoZXJlIGl0IGdldHMgdGhlIG9iamVjdCB0eXBlKS4KCjIwMDktMDktMjkgMDg6MTM6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBDbGVhbiB1cCBnc3RidWZmZXJzdHJlc3MuCgoyMDA5LTEwLTA4IDAyOjQyOjE2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIGJlbmNobWFya3M6IEZpeCB0aGUgY29tcGxleGl0eSBhbmQgbWFzcy1lbGVtZW50cyBiZW5jaG1hcmtzCgoyMDA5LTEwLTA4IDAyOjIwOjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGVja3M6IEZpeCBzdHJpbmcgbGVha3MgaW4gdGhlIG5ldyBjaGlsZHByb3h5IHRlc3QKCjIwMDktMTAtMDggMDI6MDM6MDggKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IElnbm9yZSBhbiBlbXB0eSBkZXBlbmRlbmN5IGxpc3QuCgkgIElmIGEgcGx1Z2luIHJlZ2lzdGVycyBhbiBlbXB0eSBkZXBlbmRlbmN5IHNldCwganVzdCBpZ25vcmUgaXQgcmF0aGVyCgkgIHRoYW4gc2VyaWFsaXNpbmcgYW5kIGNoZWNraW5nIGFuIGVtcHR5IHNldC4KCjIwMDktMTAtMDggMDI6MDE6NTQgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggb2ZmLWJ5LW9uZSBlcnJvci4gSW1wcm92ZSBkZWJ1Zy4KCSAgRml4IGFuIG9mZi1ieS1vbmUgZXJyb3IgaW4gdGhlIHNpemUgZ3VhcmQgZm9yIHVucGFja19lbGVtZW50LCBhbmQKCSAgaW1wcm92ZSB2YXJpb3VzIGRlYnVnIHN0YXRlbWVudHMgaW4gdGhlIGZhaWx1cmUgcGF0aHMuCgkgIEFsc28sIHN3YXAgc29tZSBnX25ldzAgdG8gZ19tYWxsb2MwIGZvciB0aGUgZnVuIG9mIGl0LgoKMjAwOS0xMC0wNyAxNjowMjo1OCAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBVc2UgX3dmb3BlbiBvbiB3aW4zMiB0byBvcGVuIGZpbGVzIHdpdGggbm9uLWFzY2lpIGZpbGVuYW1lcyBjb3JyZWN0bHkuCgoyMDA5LTEwLTA3IDIzOjMxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogdGFncyBpbiBkb2NzIGZvciBuZXdseS1hZGRlZCBBUEkKCjIwMDktMTAtMDggMDA6MDg6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJldmVydCB0d28gb2YgdGhlIGNoYW5nZXMKCSAgSXQgb25seSBuZWVkZWQgZm9yIHRoZSBub24gY29uc3RhbnQgc3RyaW5nLgoKMjAwOS0xMC0wNyAyMzozNjo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIGEgIiVzIiBmb3JtYXQgc3RyaW5nIHdoZW4gcHJpbnRpbmcgdGhlIG1lbW9yeSBkdW1wIGxpbmUKCSAgV2Uga25vdyB0aGF0IHRoZSBjb250ZW50IGlzIHNhdmUsIGJ1dCB0aGUgY29tcGlsZXIgZG9lcyBub3QuCgoyMDA5LTEwLTA3IDIzOjIzOjA4ICswMzAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZG9uJ3QgZm9ybWF0IHRoZSBzdHJpbmcgdHdpY2UKCSAgV2Ugd2VyZSBmb3JtYXR0aW5nIHRoZSBzdHJpbmcgb25jZSBhbmQgdGhlbiBwYXNzaW5nIHRoZSBzdHJpbmcgYXMgYSBmb3JtYXQKCSAgc3RyaW5nIHRvIHRoZSBsb2cgZnVuY3Rpb25zLgoKMjAwOS0xMC0wNyAxMTo0Mzo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgdmFyaWFudHMgb2YgZ3N0X3BhZF9nZXRfY2FwcygpIHRoYXQgZG9uJ3QgY29weSBjYXBzLiBGaXhlcyAjNTkwOTQxCgkgIEluIG1vc3QgcGxhY2VzIGluIGNvcmUgYW5kIGJhc2VjbGFzc2VzIHdlIGp1c3QgbmVlZCB0aGUgY2FwcyB0byBkbyBjYXBzLQoJICBpbnRlcnNlY3Rpb25zLiBJbiB0aGF0IGNhc2UgcmVmJ2VkIGNhcHMgYXJlIGVub3VnaCAobm8gbmVlZCB0byBjb3B5KS4KCSAgVGhpcyBwYXRjaCBhbHNvIHN3aXRjaGVzIHRoZSBjb2RlIHRvIHVzZSB0aGUgbmV3IGZ1bmN0aW9ucy4KCSAgQVBJOiBnc3RfcGFkX2dldF9jYXBzX3JlZmVkKCksIGdzdF9wYWRfcGVlcl9nZXRfY2Fwc19yZWZlZCgpCgoyMDA5LTA5LTI2IDIzOjQzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBnaG9zdHBhZCB0ZXN0IGZvciBzZXR0aW5nIHRhcmdldCBhZ2FpbiBhZnRlciBwYWQgaXMgbGlua2VkCgoyMDA5LTA5LTI2IDIzOjQyOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IHJlbW92ZSBlbXB0eSBsaW5lcyBmcm9tIHdyb25nIGluZGVudCBydW4KCjIwMDktMTAtMDcgMjA6Mzg6NDkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBjaGVjazogRml4IGNvbXBpbGF0aW9uIG9mIHRoZSBieXRld3JpdGVyIHRlc3QKCjIwMDktMTAtMDcgMTg6MDc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBieXRlIHdyaXRlciBhbmQgcmVhZGVyIEFQSSB0byAuZGVmIGZpbGUKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfKigpCgoyMDA5LTA4LTIwIDE0OjI0OjE5IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IHNwZWxsaW5nIGluIGNvbW1lbnQKCjIwMDktMTAtMDcgMTg6NDA6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZsdXNoIHF1ZXVlIHVwb24gZmF0YWwgZmxvd3JldHVybiBhbmQgcmVsZWFzZSB1cHN0cmVhbSB0aHJlYWQKCjIwMDktMDktMjIgMTU6NDQ6MzEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBmaXggQVBJIGRvY3VtZW50YXRpb24gdHlwbwoKMjAwOS0xMC0wNyAxODozNzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBieXRld3JpdGVyOiBBZGQgdG8gdGhlIGRvY3MKCjIwMDktMTAtMDUgMTE6MjQ6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBZGQgdW5pdCB0ZXN0CgoyMDA5LTEwLTAzIDEzOjMwOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGEgZ2VuZXJpYyBieXRlIHdyaXRlcgoJICBGaXhlcyBidWcgIzU5MDY2OS4KCjIwMDktMTAtMDMgMTU6NTc6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBiaXRyZWFkZXIvYnl0ZXJlYWRlcjogQVBJOiBBZGQgZ3N0XyhiaXR8Ynl0ZSlfcmVhZGVyX2dldF9zaXplKCkKCSAgLi4uIGFuZCBHU1RfKEJZVEV8QklUKV9SRUFERVIoKSBjYXN0cy4KCjIwMDktMTAtMDMgMTI6MzQ6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXIsYml0cmVhZGVyOiBSZW1vdmUgRklYTUUgMC4xMSB0byByZW1vdmUgbm9uLWlubGluZWQgZnVuY3Rpb25zCgkgIFRoZSBub3JtYWwgZnVuY3Rpb25zIGFyZSBhbHdheXMgdXNlZnVsIHRvIGhhdmUgZm9yIGJpbmRpbmdzLCBlc3BlY2lhbGx5CgkgIHJ1bnRpbWUtY3JlYXRlZCBiaW5kaW5ncyBsaWtlIFNlZWQgb3IgbmV3IEdPYmplY3QtSW50cm9zcGVjdGlvbiBiYXNlZAoJICBQeXRob24gYmluZGluZ3MuCgoyMDA5LTEwLTA3IDE2OjM2OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgY2hlY2s6IEF0dGVtcHQgdG8gZml4IHR5cGUtcHVubmluZyB3YXJuaW5nIGluIHRoZSBnc3RpdGVyYXRvciB0ZXN0CgoyMDA5LTEwLTA3IDE2OjAwOjEyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogTWFrZSBzdXJlIHRvIGluaXQgdGhlIGRhdGFwcm90b2NvbCBsaWIuCgkgIENhbGwgdGhlIGdzdF9kcF9pbml0KCkgZnVuY3Rpb24gdG8gZW5zdXJlIHRoYXQgdGhlIGRlYnVnCgkgIGNhdGVnb3J5IGlzIGluaXRpYWxpc2VkLCB0byBhdm9pZCBnX2NyaXRpY2FscyB3aGVuIHJ1bm5pbmcgd2l0aAoJICBHU1RfREVCVUc9NQoKMjAwOS0xMC0wNyAxNTo0Nzo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IFVzZSBHU1RfREVCVUcgaW5zdGVhZCBvZiBnX21lc3NhZ2UgaW4gdGhlIGdkcCB0ZXN0CgoyMDA5LTEwLTA3IDE1OjE0OjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEFkZCBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgY2hlY2sgZW52aXJvbm1lbnQKCjIwMDktMTAtMDcgMTQ6MzQ6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBpbXByb3ZlIHBsdWdpbiBsb2FkZXIgZmFpbHVyZSBtZXNzYWdlIGZvciB1bmluc3RhbGxlZCBzZXR1cHMKCSAgRXZlcnlvbmUgcnVubmluZyBhbiB1bmluc3RhbGxlZCBnaXQgc2V0dXAgaXMgZ29pbmcgdG8gd29uZGVyIGFib3V0CgkgIHRoaXMgZmFpbHVyZSBuZXh0IHRpbWUgdGhleSB1cGRhdGUsIHNvIGxldCdzIG1lbnRpb24gdGhlIHNvbHV0aW9uCgkgIGluIHRoZSBlcnJvciBtZXNzYWdlLgoKMjAwOS0xMC0wNyAxMzo1OTo0NyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEJlZWYgdXAgdGhlIHRlc3QgZm9yIF9fdWludDEyOF90IG9uIEdDQwoJICBHQ0MgMy40LjMgb24gdGhlIFNQQVJDIGJ1aWxkYm90IGNyYXNoZXMgd2hlbiBhY3R1YWxseQoJICB1c2luZyBfX3VpbnQxMjhfdC4gQmVlZiB1cCB0aGUgY29uZmlndXJlIHRlc3QgdG8gZGV0ZWN0IHRoYXQgdGhlCgkgIHR5cGUgaXMgYWN0dWFsbHkgdXNhYmxlLgoKMjAwOS0xMC0wNyAwOTo1Njo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCSAgQW5kIGFkZCBBUEk6IG1hcmtlciBpbiBjb21taXQgbWVzc2FnZSB0aGF0IHdhcyBvbWl0dGVkIGluIHRoZSBvcmlnaW5hbAoJICBjb21taXQ6CgkgIEFQSTogZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKQoKMjAwOS0xMC0wNyAwOTo1NToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGJlbmNobWFya3M6IGFkZCBidWZmZXJzdHJlc3MgYmluYXJ5IHRvIC5naXRpZ25vcmUKCjIwMDktMTAtMDcgMDk6NDI6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byAyLjE4CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCBhcyBwZXIgdGhlIHJlbGVhc2UgcGxhbm5pbmcgZG9jcy4KCjIwMDktMTAtMDcgMTA6Mzc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTEwLTA3IDExOjEyOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBmbGlwIHRoZSBHX1VOTElLRUxZCgkgIEl0cyBsaWtlbHkgdGhhdCB3ZSBoYXZlIGNhcHMgYW5kIHVubGlrZWx5IChlcnJvcikgb3RoZXJ3aXNlLgoKMjAwOS0xMC0wNyAxMTowNDo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBxdWV1ZSBhcGkgdG8gdGhlIGRvY3MgdG8gZml4IHRoZSBidWlsZAoKMjAwOS0wOS0yOCAxNToyNToyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IEF2b2lkIGluc3RhbmNlIGNoZWNrCgkgIFdlIGtub3cgZWFybGllciBvbiBpbiB0aGUgY29kZSB3aGV0aGVyIHdlJ3JlIGhhbmRsaW5nIGFuIGV2ZW50IG9yIGEgYnVmZmVyLAoJICBqdXN0IHBhc3MgdGhhdCBpbmZvcm1hdGlvbiB0aHJvdWdoLgoJICBUaGlzIGNvbW1pdCBhbmQgdGhlIHByZXZpb3VzIGNvbW1pdCByZWR1Y2UgaW5zdHJ1Y3Rpb24gZmV0Y2g6CgkgICogd2hlbiBwdXNoaW5nIGJ1ZmZlciAoX2NoYWluKSBieSAxMCUKCSAgKiB3aGVuIHBvcHBpbmcgYnVmZmVyIChfbG9vcCkgYnkgMyUKCjIwMDktMDktMjggMTU6MjQ6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBDYWNoZSBpbnB1dC9vdXRwdXQgdGltZSwgYXZvaWQgZXhwZW5zaXZlIGNhbGxzLgoJICAqIENhY2hlIHRoZSBpbnB1dC9vdXRwdXQgdGltZQoJICAqIE9ubHkgcmVjYWxjdWxhdGUgaXQgd2hlbiBuZWVkZWQuCgkgIEF2b2lkcyA1MCUgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lCgoyMDA5LTEwLTA3IDEwOjAwOjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGJ1aWxkOiBzcHJpbnRmLCBzc2NhbmYgbmVlZCBzdGRpby5oCgoyMDA5LTEwLTA1IDExOjQ2OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGluaXRpYWxpemUgZ3ZhbHVlIGluIF92YWxpc3QgZnVuY3Rpb24uIEZpeGVzICM1OTU2MDIKCSAgUmVmbG93IHRoZSBjb2RlIHRvIG1vdmUgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb25zLiBJbml0aWFsaXplCgkgIGd2YWx1ZSBsaWtlIHdlIGRvIGluIHRoZSBzZXR0ZXIuIEFkZCBhIHVuaXQtdGVzdCBtb2R1bGUgd2l0aCB0d28gc2ltcGxlIHRlc3RzCgkgIHRoZSBjYXRjaGUgdGhpcyBidWcuCgoyMDA5LTEwLTAxIDE3OjM5OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBkb24ndCBpbnRlcnNlY3Qgd2l0aCBhbnkgaW4gcHJveHlfcGFkX2dldF9jYXBzCgkgIFdlIGluaXRpYWxpemUgdGhlIGNhcHMgd2l0aCBhbnkgYW5kIGlmIGEgcGFkIGhhcyBOVUxMIGNhcHMsIGp1c3Qgc2tpcCBpdCBpbnN0ZWFkCgkgIG9mIGludGVyc2VjdGluZyB3aXRoIGFueS4gQWxzbyBhZGQgYnJhbmNoIHByZWRpY3Rpb24gaGVyZS4KCjIwMDktMDktMzAgMTY6NDE6MDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiByZW5hbWUgYWdncmVnYXRvciB0byBhZGRlciBpbiB0aGUgZG9jcy4KCjIwMDktMDktMzAgMDk6NDc6MjMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgbWFuOiBmaXggY29weSBhbmQgcGFzdCBtaXN0YWtlIGZvciAtcSBvcHRpb24KCjIwMDktMTAtMDcgMDk6NTQ6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEV4dGVuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWxsb3cgdXNpbmcgYW4gdW5pbnN0YWxsZWQgZ3N0cmVhbWVyLXNoYXJwCgoyMDA5LTA5LTI4IDE1OjE5OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogVXNlIG5ldyBHc3REYXRhUXVldWUgY29uc3RydWN0b3IKCjIwMDktMDktMjggMTU6MTg6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBnc3RkYXRhcXVldWU6IG5ldyBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBjYWxsYmFja3MuCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGF2b2lkIGdvaW5nIHRocm91Z2ggZ2xpYidzIHNpZ25hbGxpbmcgc3lzdGVtCgoyMDA5LTA5LTI4IDEzOjE5OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogVXNlIGNhY2hlZCB2YWx1ZSBpbnN0ZWFkIG9mIGV4cGVuc2l2ZSBvYmplY3QgZ2V0LgoJICBUaGUgdGFzayB3aWxsIGFsd2F5cyBleGlzdCBhcyBsb25nIGFzIGl0cyBvd25lciAoaS5lLiB0aGUgcGFkKSBhbmQgdGhhdAoJICBvd25lcidzIG93bmVyIChpLmUuIG11bHRpcXVldWUpIGV4aXN0LgoJICBSZWR1Y2VzIHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb24gZmV0Y2hlcyBieSAzNiUuCgoyMDA5LTA5LTI4IDE1OjQxOjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL3F1ZXVlOiBVc2UgcHJldmlvdXMga25vd2xlZGdlIG9mIGRhdGEgdHlwZSB0byBhdm9pZCB0eXBlY2hlY2suCgkgIFdlIGtub3cgd2hldGhlciB3ZSBoYXZlIGEgYnVmZmVyIG9yIGFuIGV2ZW50LCB1c2UgdGhhdCBpbnN0ZWFkIG9mIGdvaW5nCgkgIHRyb3VnaCB0aGUgZXhwZW5zaXZlIEdMaWIgdHlwZWNoZWNrLgoJICBUaGUgb3ZlcmFsbCBpbnN0cnVjdGlvbiBmZXRjaCByZWR1Y3Rpb24gaW50cm9kdWNlZCBieSB0aGlzIGNvbW1pdCBhbmQgdGhlCgkgIDIgcHJldmlvdXMgY29tbWl0czoKCSAgKiByZWNlaXZpbmcgYSBidWZmZXIgKF9jaGFpbikgYnkgMjAlCgkgICogcG9wcGluZyBhIGJ1ZmZlciAoX2xvb3ApIGJ5IDE0JQoJICBOdW1iZXJzIGFjcXVpcmVkIHRocm91Z2ggY2FsbGdyaW5kIHBhc3NpbmcgMTAwMDAwIGJ1ZmZlcnMgdGhyb3VnaCBxdWV1ZS4KCjIwMDktMDktMjggMTU6MjA6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcGx1Z2lucy9xdWV1ZTogQXZvaWQgdXNlbGVzcyBzZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIGNhbGN1bGF0aW9ucy4KCSAgKiBDYWNoZSBzcmMgYW5kIHNpbmsgdGltZQoJICAqIFVzZSBhIGJvb2xlYW4gdG8ga25vdyB3aGV0aGVyIHNyYy9zaW5rIHRpbWUgbmVlZCB0byBiZSByZWNhbGN1bGF0ZWQKCSAgQXZvaWRzIDUwJSBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKQoKMjAwOS0wOS0yOCAxMzoyMTowNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9xdWV1ZTogSnVzdCBjYXN0IHRvIHRoZSBvYmplY3QgcGFyZW50IGluc3RlYWQgb2YgdHlwZWNoZWNraW5nLgoKMjAwOS0wOS0yMyAxNjoxOTozMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJlbmNobWFyazogTmV3IGJlbmNobWFyayBmb3IgdGVzdGluZyBjb250ZW50aW9uIHdoZW4gY3JlYXRpbmcgYnVmZmVycwoKMjAwOS0wOS0yMyAxNjoxNzowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRG9uJ3QgYWN0aXZhdGUgdHJhY2luZyBpZiBub3QgcmVxdWVzdGVkLgoKMjAwOS0xMC0wNyAwODozNzowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogaW5pdCBtb3JlIHZhcmlhYmxlcyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIG9uIG9zeAoJICBJbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgYW5kIG1ha2UgdGhlIGJ1aWxkIGJvdCBoYXBweQoJICAodGhlIGNvbXBpbGVyIG1vc3QgbGlrZWx5IGNvbXBsYWlucyBhYm91dCB0aGlzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93CgkgIGhlcmUgdGhhdCBmYWlsX3VubGVzcyB3aWxsIGFib3J0L2V4aXQgaW4gdGhlIHBhdGggd2hlcmUgaXQgZmFpbHMpLgoKMjAwOS0wOS0yNiAxMTo0MzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSW1wcm92ZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uCgkgIFBhZHMgaGF2ZSB0aGVpciBHc3RTaW5nbGVRdWV1ZSBzdG9yZWQgYXMgZWxlbWVudCBwcml2YXRlIGRhdGEKCSAgc28gdGhlcmUncyBubyBuZWVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBzaW5nbGUgcXVldWVzCgkgIGV2ZXJ5IHRpbWUuIEFsc28gZXZlcnkgcGFkIG9ubHkgaGFzIGEgc2luZ2xlIGludGVybmFsIGxpbmsgc28KCSAgdXNlIGEgc2luZ2xlIGl0ZXJhdG9yIGluc3RlYWQgb2YgYSBjb21wbGV4IGN1c3RvbSBpdGVyYXRvci4KCSAgU2V0IHRoZSBlbGVtZW50IHByaXZhdGUgZGF0YSBvZiB0aGUgcGFkIHRvIE5VTEwgd2hlbiBmcmVlaW5nIHRoZQoJICBzaW5nbGUgcXVldWUuCgoyMDA5LTA5LTE3IDE2OjMwOjQzIC0wNDAwICBKb2hhbiBCaWxpZW4gPGpvYmlAbGl0bC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgaW50cm9zcGVjdGlvbjogQWRkIGFubm90YXRpb25zIGZvciBnc3RfZWxlbWVudF9xdWVyeV97ZHVyYXRpb24scG9zaXRpb259CgkgIEZpeGVzIGJ1ZyAjNTk1NTExLgoKMjAwOS0xMC0wNSAwMDoxMToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmUgdmVyc2lvbiBvZiBnc3RfYnl0ZV9yZWFkZXJfc2tpcAoKMjAwOS0xMC0wNyAwMDo0Nzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb24gZmlsZXMgZm9yIG5ldyBhbmQgY2hhbmdlZCBzdHJpbmdzCgoyMDA5LTA5LTI4IDIyOjQzOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiB0YWtlIGxvY2tzIGFyb3VuZCBzbWFsbGVyIHNlY3Rpb24KCSAgV2UgZG9uJ3QgbmVlZCB0aGUgaG9sZCB0aGUgcHJveHkgbXV0ZXggbG9ja2VkIGZvciBnZXR0aW5nIHRoZSBpbnRlcm5hbCBwYWQgYW5kCgkgIGZvciBsaW5raW5nIHRoZSBuZXcgdGFyZ2V0IHBhZCB3aGVuIHdlIHJldGFyZ2V0LiBTbyB0YWtlIHRoZSBsb2NrIGEgbGl0dGxlIGxhdGVyCgkgIGFuZCByZWxlYXNlIGl0IGVhcmxpZXIuCgkgIEZpeGVzICM1OTYzNjYKCjIwMDktMTAtMDQgMTk6NTE6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBpbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgb24gb3N4CgkgIEluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBhbmQgbWFrZSB0aGUgYnVpbGQgYm90IGhhcHB5CgkgICh0aGUgY29tcGlsZXIgbW9zdCBsaWtlbHkgY29tcGxhaW5zIGFib3V0IHRoaXMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cKCSAgaGVyZSB0aGF0IGZhaWxfdW5sZXNzIHdpbGwgYWJvcnQvZXhpdCBpbiB0aGUgcGF0aCB3aGVyZSBpdCBmYWlscykuCgoyMDA5LTEwLTAzIDIxOjA4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3N0OiByZW1vdmUgbW9yZSB1bm5lY2Vzc2FyeSBjYXN0IHdoZW4gdXNpbmcgZ19zaWduYWxfKigpCgoyMDA5LTEwLTAzIDIwOjQ5OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZGF0YXF1ZXVlLCBlbGVtZW50czogYXZvaWQgdW5uZWNlc3NhcnkgcnVudGltZSB0eXBlIGNoZWNrcwoKMjAwOS0xMC0wNSAxNjo0MTo1MCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogVXBkYXRlIHRoZSByZWxlYXNlIHNjcmlwdAoJICBSZW1vdmUgb2xkIGNydWZ0IGZyb20gdGhlIHJlbGVhc2Ugc2NyaXB0LCBhbmQgY2hhbmdlIHNvbWUgQ1ZTCgkgIHJlZmVyZW5jZXMgdG8gZXF1aXZhbGVudCBnaXQgY29tbWFuZHMKCjIwMDktMTAtMDQgMTQ6MzA6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBBZGQgYSBtYWdpYyBudW1iZXIgYW5kIG1heGltdW0gc2l6ZSBsaW1pdC4KCSAgR3VhcmQgYWdhaW5zdCBhIGhvc3RpbGUgY2hpbGQgcHJvY2VzcyB0aGF0IHNlbmRzIGJvZ3VzIGRhdGEKCSAgZHVlIHRvIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGFkZGluZyBhIG1hZ2ljIG51bWJlciB0byBlYWNoIHBhY2tldCwKCSAgYW5kIGxpbWl0IHRoZSBtYXhpbXVtIHNpemUgb2YgYW55IG1lc3NhZ2UgdG8gMzJNQgoKMjAwOS0wMi0wOSAxMzozMzowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICByZWdpc3RyeTogQWxzbyBjaGVjayB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGNodW5rIHZlcnNpb24gb2YgdGhlIGNoaWxkLgoJICBXaGVuIHRyeWluZyB0byBmaW5kIGEgZnVuY3Rpb24gcGx1Z2luLXNjYW5uZXIsIGluY2x1ZGUgYSBjaGVjayBvbiB0aGUKCSAgdmVyc2lvbiBvZiB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGNodW5rcyBpdCBzZW5kcywgdG8gbWFrZSBzdXJlIGl0J3MKCSAgd2hhdCB3ZSB1bmRlcnN0YW5kLgoKMjAwOS0wMi0wNiAwOTo0OTozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgcmVnaXN0cnk6IFN1cHBvcnQgaW5zdGFsbGVkL3VuaW5zdGFsbGVkIHBsdWdpbi1zY2FubmVyIGhlbHBlcgoJICBBZGQgYSBzaW1wbGUgdmVyc2lvbiBjaGVjayB3aGVuIHN0YXJ0aW5nIHRoZSBwbHVnaW4tc2Nhbm5lciBzbyB3ZSBjYW4KCSAgdmVyaWZ5IHdlJ3JlIHRhbGtpbmcgdG8gb25lIHRoYXQgdGFsa3MgdGhlIHNhbWUgbGFuZ3VhZ2UuCgkgIEZpcnN0IHRyeSBhIHBsdWdpbi1zY2FubmVyIGluIHRoZSBpbnN0YWxsZWQgcGF0aCwgdGhlbiB0cnkgb25lIHZpYSB0aGUKCSAgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgaWYgdGhhdCBkb2Vzbid0IHdvcmsuCgkgIFVwZGF0ZSB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0LgoJICBJbnN0YWxsIHRoZSBwbHVnaW4tc2Nhbm5lciB0byB0aGUgbGliZXhlYyBkaXIKCjIwMDktMDEtMzAgMTQ6MTg6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFJlbW92ZSBjaGVja2luZyBmb3IgYW5kIG1lbnRpb25zIG9mIGZvcmsgd2hlcmUgcG9zc2libGUuCgkgIFdlIG5vIGxvbmdlciB1c2UgZm9yaygpIGRpcmVjdGx5LCBpbnN0ZWFkIHVzaW5nIGdsaWIncyBzcGF3bgoJICBmdW5jdGlvbmFsaXR5LCBzbyBkb24ndCBjaGVjayBmb3IgaXQsIGFuZCBkb24ndCB1c2UgaXQgaW4gdGhlCgkgIGRvY3VtZW50YXRpb24gbm90ZXMuCgoyMDA5LTAxLTMwIDEzOjA2OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmUtZW5hYmxlIGFuZCBmaXggZGlzYWJsZWQgYml0IG9mIHRoZSByZWdpc3RyeSB0ZXN0CgoyMDA5LTAxLTMwIDEzOjA0OjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgT25seSBsb2FkIHRoZSByZWdpc3RyeSBjYWNoZSBvbmNlIHBlciBwcm9jZXNzLgoJICBXaGVuIHVwZGF0aW5nIHRoZSByZWdpc3RyeSwgd2UgZG9uJ3QgbmVlZCB0byByZS1yZWFkIHRoZSByZWdpc3RyeSBjYWNoZQoJICBhbmQgd2FzdGUgdGltZSByZXBsYWNpbmcgYWxsIG91ciBleGlzdGluZywgaG9wZWZ1bGx5IGlkZW50aWNhbCwgcGx1Z2lucwoJICBhbmQgZmVhdHVyZXMgdGhhdCB3ZSdyZSBhYm91dCB0byByZS1zY2FuIGFueXdheS4KCjIwMDktMDEtMjkgMTM6MjI6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgdGhlIHJlZ2lzdHJ5LgoJICBBZGQgdGhlIGZ1bGwgc2V0IG9mIGRlYnVnIGFib3V0IHdoeSBpdCdzIGRlY2lkZWQgdGhhdCBhIGdpdmVuIHBsdWdpbiBpcwoJICBzdGFsZSBvciBub3QsIGFuZCBpbmNsdWRlIHRoZSBwbHVnaW4gbmFtZSB3aGVuIGZpbmFsaXppbmcgaXQuCgoyMDA5LTAxLTIzIDIxOjE1OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEFkZCByZXN0YXJ0aW5nIG9mIHRoZSBwbHVnaW4gbG9hZGVyIGFuZCBibGFja2xpc3Rpbmcgb2YgYnJva2VuIGZpbGVzCgoyMDA5LTAxLTIzIDE1OjQ3OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFBsdWdpbiBsb2FkZXIgcGhhc2UgMgoJICBwaGFzZSAyIC0gbWFrZSB0aGUgcGx1Z2luIGxvYWRlciByZWNlaXZlIHRoZSBsaXN0IG9mIHBsdWdpbnMgdG8gbG9hZCBhbmQKCSAgc2VuZCBiYWNrIHRoZSByZXN1bHRzIGFzeW5jaHJvbm91c2x5LCBzbyB3ZSBkb24ndCBjb250ZXh0IHN3aXRjaCBiYWNrCgkgIGFuZCBmb3J0aCBzbyBtdWNoLgoKMjAwOS0wMy0xNCAyMzowNzo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9wbHVnaW4tc2Nhbm5lci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBBZGQgcmVnaXN0cnkgaGVscGVyIHBoYXNlIDEKCSAgUGhhc2UgMSBvZiBhZGRpbmcgdGhlIHJlZ2lzdHJ5IHNjYW4gaGVscGVyCgoyMDA5LTA5LTE0IDIzOjMxOjEwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogUmVhcnJhbmdlIHNvbWUgdGhpbmdzLgoJICBQcmVwYXJlIHRvIGxhbmQgdGhlIGV4dGVybmFsIHBsdWdpbiBoZWxwZXIgcHJvY2VzcwoKMjAwOS0xMC0wNiAxOTo0MTozOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjUuMQoKPT09IHJlbGVhc2UgMC4xMC4yNSA9PT0KCjIwMDktMTAtMDUgMTI6NTc6MDMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAwLjEwLjI1CgoyMDA5LTEwLTA1IDEyOjQxOjQyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMTAtMDEgMTY6MjQ6NTIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuNCBwcmUtcmVsZWFzZQoKMjAwOS0wOS0zMCAxNTo1MjozMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGxpYmdzdGNoZWNrOiBEb24ndCB1c2UgY2hhcmFjdGVyIGNsYXNzZXMgaW4gc2VkIGV4cHJlc3Npb25zCgkgIEFwcGFyZW50bHkgdGhlIHNlZCB0aGF0IHNoaXBzIG9uIFNvbGFyaXMgMTAgZG9lc24ndCBzdXBwb3J0IGNoYXJhY3RlcgoJICBjbGFzc2VzIGxpa2UgWzphbG51bTpdLCBzbyBkb24ndCB1c2UgdGhlbS4gV2UgZG9uJ3QgbmVlZCB0aGVtIGZvciB0aGUKCSAgc3ltYm9sIG5hbWVzIHRoYXQgYXJlIGJlaW5nIGV4dHJhY3RlZCBhbnl3YXkuCgkgIEFsc28sIHVzZSAkKFNFRCkgaW5zdGVhZCBvZiAnc2VkJwoJICBGaXhlczogIzU5Njg3NwoKMjAwOS0wOS0xNyAwMToyMDowMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuMyBwcmUtcmVsZWFzZQoKMjAwOS0wOS0xNSAwOTo0MToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBHTVAgc2NhbGluZyB1bml0IHRlc3QKCSAgR01QIG9ubHkgdXNlcyAidW5zaWduZWQgbG9uZyBpbnQiLCB3aGljaCBpcyAzMiBiaXQKCSAgb24gMzIgYml0IGFyY2hpdGVjdHVyZXMgYW5kIGNhbid0IGhvbGQgYSBndWludDY0LgoJICBUaGlzIHJlc3VsdGVkIGluIGZhbHNlIHVuaXQgdGVzdCBmYWlsdXJlcyBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcy4KCSAgRml4ZXMgYnVnICM1OTUxMzMuCgoyMDA5LTA5LTE0IDEyOjQ3OjI2IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIEZpeCBvdXQtb2YtdHJlZSBidWlsZAoKMjAwOS0wOS0xNCAxNDowNzo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9jczogR1NUX01FU1NBR0VfU1RSRUFNX1NUQVRVUyBpcyBpbXBsZW1lbnRlZCBub3dhZGF5cy4KCSAgRG9jcyB3ZXJlIHN0aWxsIG1lbnRpb24gaXQgYXMgIm5vdCB5ZXQgaW1wbGVtZW50ZWQiLgoKMjAwOS0wOS0xMiAxMzo1MjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBCdWlsZCBwa2djb25maWcgYmVmb3JlIGFsbCBsaWJyYXJpZXMgYW5kIHNldCBQS0dfQ09ORklHX1BBVEgKCSAgVGhpcyB3YXkgZy1pci1zY2FubmVyIGNhbiBmaW5kIHRoZSBnc3RyZWFtZXItMC4xMCBwa2ctY29uZmlnIGZpbGUuCgoyMDA5LTA5LTEyIDEzOjUxOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgaW50cm9zcGVjdGlvbjogRG9uJ3QgdHlwZWRlZiBHc3RUYWdMaXN0IHRvIEdzdFN0cnVjdHVyZSBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uCgoyMDA5LTA5LTExIDIzOjIxOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vTElOR1VBUzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjIgcHJlLXJlbGVhc2UKCjIwMDktMDktMTEgMjI6NDI6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIERvbid0IHVzZSBDKysgc3R5bGUgY29tbWVudHMKCjIwMDktMDktMTEgMjI6MjI6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IERpc2FibGUgcmVzdHJpY3Rpb24gdGhhdCBzdHJ1Y3R1cmUgY2hhbmdlcyBhcmUgc2luayBwYWRzCgkgIFRoZSBzdHJ1Y3R1cmVfY2hhbmdlIG1lc3NhZ2Ugd2FzIG9yaWdpbmFsbHkgZW1pdHRlZCBvbiBzb3VyY2UgcGFkcyBhbmQKCSAgdGhlbiByZWNlbnRseSBjaGFuZ2VkIHRvIGJlIHNpbmsgcGFkcy4gVGhpcyBjYXVzZXMgYSBmYWlsdXJlIGluIHRoZQoJICBnc3QtcHl0aG9uIHRlc3RzdWl0ZS4gRGlzYWJsZSB0aGUgcmVzdHJpY3Rpb24gc28gdGhhdCB0aGUgcHVibGlzaGVkCgkgIGJlaGF2aW91ciBpcyBzdGlsbCBhbGxvd2VkLgoKMjAwOS0wOS0xMSAxODoyNDoxOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBjaGVjazogRml4IHZlcnNpb24gY2hlY2sgdGVzdHMKCSAgQWNjb21vZGF0ZSB0aGUgc2xpZ2h0bHkgY2hhbmdlZCBzZW1hbnRpY3MgaW4gdGhlIHBsdWdpbiB2ZXJzaW9uIGNoZWNrCgkgIHdoZXJlIGEgQ1ZTIHZlcnNpb24ganVzdCBiZWZvcmUgYSByZWxlYXNlIGlzIGFjY2VwdGFibGUuCgoyMDA5LTA5LTExIDIxOjIwOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGRvbid0IGNyYXNoIGluIGNsZWFuaW5nIHVwIG9uIGVycm9yLgoJICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHBvaW50ZXJzLgoKMjAwOS0wNy0yMCAxMjo1NDowMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkZWJ1ZzogdXNlIGR1bW15IGNvZGUgdG8gYXZvaWQgc3B1cmlvdXMgc2VtaWNvbG9ucwoJICBGaXhlcyBidWcgIzU4OTE3My4KCjIwMDktMDktMTAgMTE6NTM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMTAgMTE6NDE6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBpbXByb3ZlIHZlcnNpb24gY2hlY2sKCSAgQWxzbyBwYXJzZSB0aGUgbmFubyBvZiB0aGUgdmVyc2lvbiBhbmQgYXNzdW1lIHRoYXQgWC5ZLlotMS4xID49IFguWS5aCgkgIFdpdGggdGhpcyBjaGFuZ2Ugd2UgY2FuIGFsc28gY2hlY2sgZGV2ZWxvcG1lbnQgdmVyc2lvbnMgYWdhaW5zdCB0aGUgdmVyc2lvbiBvZgoJICB0aGUgdXBjb21taW5nIHJlbGVhc2UuCgoyMDA5LTA5LTEwIDEwOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBub3QgdHlwZWRlZiBHc3RUYWdMaXN0IHRvIGJlIGEgR3N0U3RydWN0dXJlCgkgIFNlZSBidWcgIzUxODkzNC4KCjIwMDktMDktMDkgMTY6Mjk6MTAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IHR5cG8gaW4gaW5saW5lIGRvY3VtZW50YXRpb24KCjIwMDktMDktMDkgMTc6NTc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uCgoyMDA5LTA5LTA5IDE4OjM4OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogQWRkIGEgY29tbWVudCB0byB0aGUgc2NhbGluZyBmdW5jdGlvbnMgdG8gZXhwbGFpbiB3aHkgdGhlIHJvdW5kaW5nIGlzIGNvcnJlY3QKCjIwMDktMDktMDkgMTY6NDU6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGRvbid0IHVucmVmIE5VTEwgY2FwcwoJICBDYXBzIGNhbiBiZSBOVUxMIHNvIGRvbid0IGNhbGwgdW5yZWYgb24gaXQgdW5jb25kaXRpb25hbGx5LCBpbnN0ZWFkIHVzZSBhbgoJICBleGlzdGluZyBleGl0IHBhZCBmb3IgdGhlIGZ1bmN0aW9uLgoKMjAwOS0wOS0wOSAxNDo1MzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIGdjYydzIF9fdWludDEyOF90IGZvciA2NGJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNjYWxpbmcKCSAgVGhpcyBpcyBhdmFpbGFibGUgaW4gbmV3ZXIgZ2NjIHJlbGVhc2VzIGFuZCBpdCBzaG91bGQgb25seSBleGlzdAoJICBvbiBwbGF0Zm9ybXMgdGhhdCBwcm92aWRlIHNvbWUgbmF0aXZlIDEyOGJpdCBpbnRlZ2VyIGFyaXRobWV0aWMKCSAgaW5zdHJ1Y3Rpb25zLgoJICBUaGUgeDg2LTY0IGFzc2VtYmx5IGZvciB0aGlzIGlzIHN0aWxsIGtlcHQgZm9yIG5vbi1nY2MgY29tcGlsZXJzCgkgIHRoYXQgZG9uJ3QgcHJvdmlkZSBfX3VpbnQxMjhfdCBtYWdpYy4KCjIwMDktMDktMDkgMDk6Mzg6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJICBkZXNpZ246IGFkZCBpZGVhcyBmb3IgYnVmZmVyIG1hbmFnZW1lbnQKCSAgUmlnaHQgbm93IHdlJ3JlIG9wZXJhdGluZyBzdWJvcHRpbWFsIHdoZW4gdGFsa2luZyB0byBrZXJuZWwgaW50ZXJmYWNlcy4gV3JpdGUKCSAgZG9lc24gc29tZSBpZGVhcy4KCjIwMDktMDktMDcgMTg6Mjc6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZpeCB3aGl0ZXNwYWNlCgoyMDA5LTA5LTAzIDE5OjA2OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGZpeCB3aGl0ZXNwYWNlCgoyMDA5LTA5LTA3IDE2OjE0OjU3ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBGaXggdHlwbyBpbiBnc3RfdmFsdWVfdW5pb24oKQoKMjAwOS0wOS0wNiAxOTo0Mzo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYml0cmVhZGVyLCBieXRlcmVhZGVyOiBhZGQgc29tZSBGSVhNRSAwLjExIGNvbW1lbnRzIGFuZCBmaXggaW5kZW50aW5nCgoyMDA5LTA5LTA0IDE3OjE1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIHVuY2hlY2tlZCBhbmQgaW5saW5lIHZlcnNpb25zIG9mIHRoZSBmbG9hdCBnZXR0ZXJzL3BlZWtlcnMKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0Kl91bmNoZWNrZWQoKQoKMjAwOS0wOS0wNCAxNjo1MjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmUgdmVyc2lvbnMgb2YgdGhlIG1vc3QgY29tbW9uIGdldHRlcnMgYW5kIHNldHRlcnMKCjIwMDktMDktMDIgMTE6MjA6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZWQgX3VuY2hlY2tlZCgpIHZhcmlhbnRzIGZvciBzb21lIGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfKl91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfKl91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl97cGVlayxnZXQsZHVwfV9kYXRhX3VuY2hlY2tlZCgpCgoyMDA5LTA5LTA1IDEyOjMwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogU3RyaXAgR3N0IHByZWZpeCBmcm9tIGFsbCB0eXBlcy9mdW5jdGlvbnMKCjIwMDktMDktMDUgMTI6MjI6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggZm9yIG91dC1vZi10cmVlIGJ1aWxkcwoKMjAwOS0wOS0wNSAxMjowNDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBvdXQtb2YtdHJlZSBidWlsZAoKMjAwOS0wOS0wNSAxMTo1MTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBidWlsZCBpZiBnaXItcmVwb3NpdG9yeSBpcyBub3QgaW5zdGFsbGVkCgoyMDA5LTA5LTA1IDA5OjM2OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbmV0OiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6MzQ6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICBkYXRhcHJvdG9jb2w6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoJICBCZWNhdXNlIG9mIGEgYnVnIGluIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0aGlzIGlzIGRpc2FibGVkIGZvciBub3cuCgoyMDA5LTA5LTA1IDA5OjI4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGNvbnRyb2xsZXI6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOToyNzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOToyMzoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZ3N0YmFzZTogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA0IDIwOjU2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1NTA2MTYuCgoyMDA5LTA5LTA1IDEwOjE5OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTRmOTVlMyB0byAxOWZhNGYzCgoyMDA5LTA5LTA0IDE5OjM3OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggZG9jcyBmb3IgZ3N0X2J5dGVfcmVhZGVyX3tnZXR8cGVla31fZmxvYXQqKCkKCjIwMDktMDktMDQgMTE6MzU6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDQgMDk6NTE6MjYgKzAyMDAgIEF1cmVsaWVuIEdyaW1hdWQgPGdzdGVsenpAeWFob28uZnI+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogT25seSB1bnJlZiBFT1MgbWVzc2FnZSBhZnRlciBpdCBpcyBub3QgdXNlZCBhbnltb3JlCgkgIEZpeGVzIGJ1ZyAjNTk0MTA3LgoKMjAwOS0wOS0wMiAxODo1NDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBzdGF0ZXM6IHBvc3Qgc3RydWN0dXJlIGNoYW5nZSBvbiBzaW5rcGFkcwoJICBQb3N0IHRoZSBzdHJ1Y3R1cmUgY2hhbmdlIG1lc3NhZ2VzIG9uIHRoZSBzaW5rcGFkcyBvZiB0aGUgZWxlbWVudHMuIFRoaXMgYWxsb3dzCgkgIHVzIHRvIGNhdGNoIHVubGlua2VkIHBhZHMgZWFybGllciB3aXRob3V0IGVuZGluZyB1cCB3aXRoIGluY29uc2lzdGVudCBlbGVtZW50CgkgIGRlZ3JlZXMuCgoyMDA5LTA5LTAyIDE4OjEzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGF2b2lkIGZhbHNlICdsb29wIGRldGVjdGVkJyB3YXJuaW5ncwoJICBXaGVuIHdlIGRldGVjdCBhIHBhZCB1bmxpbmsgaW4gcHJvZ3Jlc3MsIHdlIHdpbGwgbm90IGJlIHVwZGF0aW5nIHRoZSBkZWdyZWUgb2YKCSAgdGhlIHBhcmVudCBlbGVtZW50LiBUaGlzIGNhbiBjYXVzZSBmYWxzZSBsb29wIGRldGVjdGVkIHdhcm5pbmdzIGJlY2F1c2UgdGhlCgkgIGRlZ3JlZSBjb3VudGVyIGlzIGludmFsaWQuIEhhbmRsZSB0aGlzIGNhc2UgYnkgbWFya2luZyB0aGUgaXRlcmF0b3IgYXMgJ2RpcnR5JwoJICB3aGVuIHdlIGRldGVjdCBhIHBhZCB1bmxpbmsgYW5kIGF2b2lkIGVtaXRpbmcgdGhlIHdhcm5pbmcgaW4gdGhpcyBjYXNlLiBXZSBoYXZlCgkgIHRvIGNvbnRpbnVlIG91ciBzdGF0ZSBjaGFuZ2UgYXMgZ29vZCBhcyB3ZSBjYW4sIHdlIHdpbGwgZXZlbnR1YWxseSByZXN5bmMgd2hlbgoJICB0aGUgcGFkIHVubGluayBjb21wbGV0ZWQuCgoyMDA5LTA5LTAxIDE2OjQ5OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAxIDE2OjQ5OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDEgMTI6MDc6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBkaXN0OiBEb24ndCBsaXN0IHRoZSBzdHJlYW1zIHN1YmRpciB0d2ljZSBpbiBleGFtcGxlcyBNYWtlZmlsZQoJICBMaXN0aW5nIHRoZSAnc3RyZWFtcycgc3ViZGlyIHR3aWNlIGluIERJU1RfU1VCRElSUyBicmVha3MgZGlzdGNoZWNrLgoKMjAwOS0wOS0wMSAxMjowNTo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IERvbid0IHByb3BhZ2F0ZSBhIE5VTEwgY2FjaGVkIGluZGV4IHRvIGFkZGVkIGVsZW1lbnRzCgkgIFdoZW4gYW4gZWxlbWVudCBpcyBhZGRlZCB0byB0aGUgYmluLCBvbmx5IHNldCB0aGUgaW5kZXggaWYgd2UgaGF2ZSBhCgkgIGNhY2hlZCBpbmRleCwgcmF0aGVyIHRoYW4gc2V0dGluZyBhIE5VTEwgaW5kZXggb24gZWxlbWVudHMgdGhhdCBtaWdodAoJICBoYXZlIGEgZGVmYXVsdCBpbmRleCBvYmplY3Qgb2YgdGhlaXIgb3duLgoKMjAwOS0wNy0xOSAyMToyMzoxOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogQWRkIGEgbm90ZSBhYm91dCByZWdlbmVyYXRpbmcgdGhlIGNoYW5nZWxvZyBpbiB0aGUgcmVsZWFzZSBzY3JpcHQKCjIwMDktMDktMDEgMTA6MDM6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgdGFrZSBvYmplY3QgbG9jayBmb3IgZ19jcml0aWNhbCgpIGFuZCBmbGVzaCBvdXQgd2FybmluZyBtZXNzYWdlIHNvbWUgbW9yZQoKMjAwOS0wOS0wMSAxMDoyMTozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDktMDEgMTA6MjA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBPbmx5IHZpc2l0IHRoZSBlbGVtZW50IGEgc2luZ2xlIHRpbWUgaW4gdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOS0wMSAwNzoyNzoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBzaW5nbGUgaXRlcmF0b3IgZm9yIE5VTEwgb2JqZWN0cyBhbmQgbm9uLUdUeXBlSW5zdGFuY2Ugb2JqZWN0cwoJICBGaXhlcyBidWcgIzU5MzcxOS4KCjIwMDktMDktMDEgMDA6MDA6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRlYnVnOiBtb3JlIGRldGFpbCBpbiB3cm9uZy1zdGF0ZS1vbi1kaXNwb3NlIGVycm9yLgoJICBBbHNvIHRlbGwgaW4gd2hpY2ggc3RhdGUgdGhlIGVsZW1lbnQgYWN0dWFseSBpcyBhbmQgaWYgaXQgaXMgZXZlbnR1YWx5CgkgIHN0YXRlLWxvY2tlZC4KCjIwMDktMDgtMzEgMjA6Mzg6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IGZpeCBkb2NzIGZvciBfbmV3X3NpbmdsZSgpLgoKMjAwOS0wOC0zMSAxNjo1NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBkb2NzOiBpdCdzIGl0cwoJICBUaGUgcGFuZGEgc2F5cyBubyEKCjIwMDktMDgtMjkgMjA6NDQ6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHJlZ2lzdHJ5OiBmaWxsIGluIGVsZW1lbnRmYWN0b3J5IHdoZW4gcmVnaXN0ZXJpbmcgZWxlbWVudAoJICBlbGVtZW50ZmFjdG9yeSBmaWVsZCBpcyBmaWxsZWQgaW4gYnkgZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0LAoJICBidXQgaXQgbmVlZHMgc29tZSBpbmZvIHNldCBvbiB0aGUgZWxlbWVudCdzIHR5cGUsIHNvIGhhdmUgaXQKCSAgYXZhaWxhYmxlIHByaW9yIHRvIGNsYXNzIHN0cnVjdHVyZSBjcmVhdGlvbiBzcGlubmluZyB1cC4KCSAgVGhpcyBhZmZlY3RzIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIHdlbGwta25vd24vcHVibGljIHR5cGUgKGUuZy4gcGlwZWxpbmUpCgkgIGFuZCBjYW4gYmUgY3JlYXRlZCBieSBvdGhlciBtZWFucyB0aGFuIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZQoJICAod2hpY2ggd2lsbCBhbHNvIGZpbGwgaW4gdGhlIGVsZW1lbnQncyBmYWN0b3J5KS4KCjIwMDktMDgtMzEgMTE6NDU6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSAxMjhiaXRzIGRpdmlzaW9uIG9uIHg4Nl82NAoKMjAwOS0wOC0yOSAwNDo0NDo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeCBjb21waWxhdGlvbiBvZiB3aW4zMiBjb2RlCgkgIEZpeGVzICM1OTM0NjAuCgoyMDA5LTA4LTI4IDE4OjM3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGNhY2hlIGluZGV4CgkgIENhY2hlIHRoZSBsYXN0IGluZGV4IHRoYXQgd2FzIHNldCB3aXRoIF9zZXRfaW5kZXgoKSBhbmQgcmV0dXJuIHRoaXMgaW4gdGhlCgkgIF9nZXRfaW5kZXgoKSBjYWxsLgoJICBTZXQgdGhlIGNhY2hlZCBpbmRleCBvbiBuZXdseSBhZGRlZCBlbGVtZW50cy4KCSAgRml4ZXMgIzU2Njg4MQoKMjAwOS0wOC0yOCAxODozNTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGJldHRlciB0eXBlIGNoZWNrcwoJICBBZGQgR1NUX0NMT0NLIHR5cGVjaGVjayBmb3IgX3NldF9jbG9jaygpLgoJICBBbGxvdyBzZXR0aW5nIE5VTEwgaW5kZXhlcyBvbiBlbGVtZW50IChjbGVhciB0aGUgY3VycmVudCBpbmRleCkKCSAgU29tZSB3aGl0ZXNwYWNlIGZpeGVzLgoKMjAwOS0wOC0yOCAxODoxNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ7IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTg6MDY6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIGdzdF9pdGVyYXRvcl9uZXdfc2luZ2xlIHRvIGRlZnMKCjIwMDktMDgtMjggMTg6MDM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxNzo1OToxNSArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MKCSAgQmVjYXVzZSB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29sdmUgYSBzdWdnZXN0aW9uIGhlcmUgd2UgZG9uJ3QgbmVlZAoJICB0byBjaGVjayBvbiBjYXBzIGZvciBwcm94eV9hbGxvYyBidXQgd2UgbmVlZCB0byBjaGVjayBvbiB0aGUKCSAgc3VnZ2VzdGVkIGNhcHMgaW5zdGVhZC4KCjIwMDktMDgtMjggMTc6NDk6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTc6MDI6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHVzZSBwcmVmb3JtYW5jZSBjb3VudGVycyBvbiB3aW5kb3dzCgkgIEJhc2VkIG9uIGNsb2NrIGltcGxlbWVudGF0aW9uIGJ5IEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgkgIFRyeSB0byBnZXQgdGhlIHRpbWUgb24gd2luZG93cyB1c2luZyB0aGUgcGVyZm9ybWFuY2UgY291bnRlcnMuIFRoZXNlIGhhdmUgYSBtdWNoCgkgIGhpZ2hlciByZXNvbHV0aW9uIGFuZCBhY2N1cmFjeSB0aGFuIHRoZSByZWd1bGFyIGdldGN1cnJlbnR0aW1lKCkuIEJlIGNhcmVmdWwgdG8KCSAgZmFsbCBiYWNrIHRvIHJlZ3VsYXIgZ2V0Y3VycmVudHRpbWUoKSBvciBwb3NpeCBjbG9ja3Mgd2hlbiBwZXJmb3JtYW5jZSBjb3VudGVycwoJICBhcmUgbm90IGF2YWlsYWJsZS4KCjIwMDktMDgtMjggMTY6MDc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IGZpeCBpbmRlbnRhdGlvbgoKMjAwOS0wOC0yOCAxNTozMjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIHNoaWZ0IGluc3RlYWQgb2YgZGl2aXNpb24KCSAgV2UgY2FuIHVzZSBhIHNoaWZ0IGZvciBzY2FsaW5nIHRoZSBkZW5vbWluYXRvciBpbnN0ZWFkIG9mIGEgZGl2aWRlIHNpbmNlIHRoZQoJICBkZW5vbSBpcyBhbHdheXMgcG9zaXRpdmUuIFRoaXMgYXZvaWRzIGhhdmluZyB0aGUgY29tcGlsZXIgZ2VuZXJhdGUgY29kZSBmb3IgdGhlCgkgIGRpZmZlcmVudCByb3VuZGluZyBydWxlcyB3aGVuIHNjYWxpbmcgbmVnYXRpdmUgdmFsdWVzLgoKMjAwOS0wOC0yOCAxMzo0NTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogbWFrZSBpbmxpbmluZyBleHBsaWNpdAoKMjAwOS0wOC0yOCAxMjo0Mzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogb3B0aW1pemUgZm9yIHg4Nl82NCB3aXRoIHNvbWUgaW5saW5lIGFzbQoJICA2NGJpdCB4ODYgaGFzIG5hdGl2ZSA2NHg2NC0+MTI4IGJpdCBtdWx0aXBseSB0aGF0IHdlIGNhbiB1c2Ugd2l0aCBzb21lIGlubGluZQoJICBhc3NlbWJsZXIgdG8gc3BlZWQgdXAgbGFyZ2UgbXVsdGlwbGljYXRpb25zLgoJICBVc2UgYnNyIHRvIGZpbmQgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm9zIG1vcmUgZWZmaWNpZW50bHkuCgoyMDA5LTA4LTI4IDEyOjMzOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmYWN0b3Igb3V0IHRoZSBsZWFkaW5nIHplcm8gY291bnQgY29kZQoKMjAwOS0wOC0yOCAxMjozMDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcGFzcyBjb3JyZWN0aW9uIGZhY3RvciBhcm91bmQKCSAgUGFzcyB0aGUgY29ycmVjdGlvbiBmYWN0b3IgYXJvdW5kIHRvIGdldCByaWQgb2YgdGhlIGVudW0sIHNvbWUgY29kZQoJICBhbmQgc29tZSBicmFuY2hlcy4KCjIwMDktMDgtMjggMTI6MjE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTI6MTk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1vdmUgY29tbW9uIGNvcnJlY3Rpb24gY29kZSBpbiBhIG1hY3JvCgoyMDA5LTA4LTI0IDE4OjAxOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yNiAxNjo1MTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFsbG93IHRvIHVzZSBOVUxMIGFzIG9iamVjdCBmb3IgdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOC0yNiAxNjozOToxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGl0ZXJhdG9yOiBBUEk6IEFkZCBnc3RfaXRlcmF0b3JfbmV3X3NpbmdsZSgpCgkgIFRoaXMgYWxsb3dzICJpdGVyYXRpb24iIG92ZXIgYSBzaW5nbGUgb2JqZWN0IG9mIHNvbWUgdHlwZSwKCSAgd2hpY2ggaGFwcGVucyBvZnRlbiBmb3IgdGhlIEdzdFBhZEl0ZXJJbnRMaW5rc0Z1bmN0aW9uIGZvciBleGFtcGxlLgoKMjAwOS0wOC0yNCAxNzo1NzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXR1cm4gcmVzdWx0IG9mIF9zZXRfY2FwcygpCgoyMDA5LTA4LTI0IDE3OjU2OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yMiAxNDoyMjozMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0eG1sLmg6CgkgIEl0J3MgX19HTlVDX18sIG5vdCBfR05VQ18KCSAgVGhpcyBhcHBlYXJzIHRvIGJlIGFuIDggeWVhciBvbGQgYnVnLgoKMjAwOS0wOC0yMSAwOTo1OTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiBhZGQgbGluayB0byBjZ2l0IHRhcmJhbGwgZG93bmxvYWQgb2YgZ3N0LXRlbXBsYXRlIGluIFBXRwoJICBTbyBwZW9wbGUgd2hvIGNhbid0IHVzZSBnaXQgZm9yIHNvbWUgcmVhc29uIHN0aWxsIGNhbiBnZXQgaG9sZAoJICBvZiB0aGUgY29kZS4gU2VlICM1OTEwNjkuCgoyMDA5LTA4LTIwIDExOjU0OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBndWFyZCB0byBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcgoJICBTbyB3ZSBkb24ndCBqdXN0IGNyYXNoIGlmIHRoZXJlJ3MgYSByZWZjb3VudGluZyBidWcgc29tZXdoZXJlIGVsc2UuCgoyMDA5LTA4LTE5IDE2OjI0OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogRG9uJ3QgdGFsayBhYm91dCB0aGUgZGVwcmVjYXRlZCBsaWJnbm9tZSBhbmQgR05PTUUtVkZTCgkgIEluc3RlYWQgdGFsayBhYm91dCBHSU8gYW5kIGNoYW5nZSB0aGUgb3B0aW9uIHBhcnNpbmcgZXhhbXBsZSB0bwoJICBub3QgaW5pdGlhbGl6ZSBsaWJnbm9tZSBidXQgb25seSBHVEsuCgkgIEZpeGVzIGJ1ZyAjNTkyMjMzLgoKMjAwOS0wOC0xOSAxNToyNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IExpbmsgcnRwb29sLXRlc3QgdG8gbGlicHRocmVhZCBmb3IgdXNpbmcgdGhlIFBPU0lYIHRocmVhZHMKCSAgQWxzbyB0aGUgb3RoZXIgc3RyZWFtcyBleGFtcGxlIGNhbiBydW4gd2l0aG91dCBwdGhyZWFkcyB0aGVyZWZvcmUKCSAgZW5hYmxlIGl0IGV2ZW4gaWYgcHRocmVhZHMgYXJlIG5vdCBhdmFpbGFibGUuCgkgIEZpeGVzIGJ1ZyAjNTkyMzE0LgoKMjAwOS0wOC0xOCAxNDo0NToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogVXNlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldF9pbnRlcm5hbF9saW5rcwoKMjAwOS0wOC0xOCAxNDo0NTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFVzZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXRfaW50ZXJuYWxfbGlua3MKCjIwMDktMDgtMTggMTQ6MDU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGdzdHBhZDogQWRkIHNvbWUgRElTQUJMRV9ERVBSRUNBVEVEIG1hcmtlcnMgaW4gdGhlIGhlYWRlciB0b28KCSAgVGhlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgc2luY2Ugc29tZSB0aW1lIGFuZAoJICB0aGVyZSBhbHJlYWR5IHdlcmUgR1NUX1JFTU9WRV9ERVBSRUNBVEVEIG1hcmtlcnMgaW4gdGhlIHNvdXJjZSBmaWxlLAoJICBub3cgYWRkIHRoZW0gdG8gdGhlIGhlYWRlciB0b28uCgkgIEZpeGVzIGJ1ZyAjNTkyMjA5LgoKMjAwOS0wOC0xOCAxMTozODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIGRvY3M6IFVwZGF0ZSB0aGUgZGVzaWduIGRvY3MgZm9yIGJpbiBzdGF0ZSBjaGFuZ2VzIGFjY29yZGluZyB0byBsYXN0IGNvbW1pdAoKMjAwOS0wOC0xOCAxMTozNjozNiArMDIwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBEb24ndCB0cnkgdG8gY2hhbmdlIGNoaWxkcmVuJ3Mgc3RhdGUgaWYgdGhleSdyZSBhbHJlYWR5IGluIHRoZSBzdGF0ZSB3ZSB3YW50CgkgIEZpeGVzIGJ1ZyAjMzY4NTM2LgoKMjAwOS0wOC0xOCAxMTozMzoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFsd2F5cyBnZXQgdGhlIHByb3h5cGFkJ3MgZ2hvc3RwYWQgdmlhIHRoZSBnaG9zdHBhZCBpbiB0aGUgc3JjIGNhcHMgY2hhbmdlIG5vdGlmeSBoYW5kbGVyCgkgIEJlZm9yZSB0aGUgc2lnbmFsIGhhbmRsZXIgd291bGQgZ2V0IHRoZSBnaG9zdHBhZCBwYXNzZWQgYXMgc2Vjb25kCgkgIGFyZ3VtZW50IGJ1dCBpdCBjb3VsZCd2ZSBhbHJlYWR5IGJlZW4gdW5yZWZmZWQgYW5kIGRlc3Ryb3llZC4KCSAgVGhpcyB3b3VsZCB0aGVuIGxlYWQgdG8gY3Jhc2hlcyBhbmQgYWxsIHRoYXQuCgkgIE5vdyB3ZSBnZXQgdGhlIGdob3N0cGFkIGZyb20gdGhlIHByb3h5IHBhZCwgd2hpY2ggd2UgZ2V0IGZyb20gdGhlCgkgIHRhcmdldCBwYWQgYXMgaXQncyBwZWVyLgoJICBGaXhlcyBidWcgIzU5MTMxOC4KCjIwMDktMDgtMTggMDg6NDU6MDggKzAyMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBmaWxlc2luazogQWRkIHByb3BlcnR5IHRvIGFsbG93IHRvIGFwcGVuZCB0byBhbiBhbHJlYWR5IGV4aXN0aW5nIGZpbGUKCSAgRml4ZXMgYnVnICM1OTE0NDEuCgoyMDA5LTA4LTE0IDExOjUzOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgZHVwbGljYXRlZCBjaGVjayBmb3IgY2xvY2tfZ2V0dGltZQoKMjAwOS0wOC0xNCAxMToxMjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEFkZCBzcGVjaWFsIHJhbmRvbSB1bml0IHRlc3QgZm9yIDY0IHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoaXMgdGVzdHMgMTAwMDAwIHJhbmRvbSBtdWx0aXBsaWNhdGlvbnMvZGl2aXNpb25zIG9mIGFsbCBzY2FsaW5nCgkgIGZ1bmN0aW9uIHZhcmlhbnRzIGFuZCBjb21wYXJlcyB0aGUgcmVzdWx0IHdpdGggdGhlIHJlc3VsdCB0aGF0IGlzCgkgIGdlbmVyYXRlZCBieSBHTVAgb24gdGhlIHNhbWUgaW5wdXQuCgkgIEZvciB0aGlzIGNoZWNrIGZvciBHU0wgYW5kIEdNUCBkdXJpbmcgY29uZmlndXJlIGJ1dCBvbmx5IHVzZQoJICBpdCBmb3IgdGhpcyBzaW5nbGUgdW5pdCB0ZXN0LgoJICBUZXN0aW5nIGZ1bmN0aW9ucyB3ZXJlIHByb3ZpZGVkIGJ5IEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoyMDA5LTA4LTEzIDE2OjMxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogQWRkIG5ldyBzY2FsaW5nIGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAwOS0wOC0xMyAxNjoyMDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEFkZCAodmVyeSkgbWluaW1hbCB1bml0IHRlc3QgZm9yIHRoZSBuZXcgcm91bmRpbmcgc2NhbGluZyBmdW5jdGlvbnMKCjIwMDktMDgtMTMgMTY6MTA6MzEgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBBUEk6IEFkZCByb3VuZGluZyB0byBuZWFyZXN0IGFuZCBuZXh0IGludGVnZXIgdmVyc2lvbnMgb2YgdGhlIDY0IGJpdCBpbnRlZ2VyIHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoZSBuZXcgZnVuY3Rpb25zIGFyZQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50X3JvdW5kKCkKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludF9jZWlsKCkKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX3JvdW5kKCkKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2NlaWwoKQoJICBGaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTIgMTE6MTA6MDUgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IFJldmVydCBwYXJ0cyBvZiBsYXN0IGNoYW5nZSB0byBvcHRpbWl6ZSB0aGUgc2NhbGluZyBmdW5jdGlvbnMgYWdhaW4KCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMSAwOToxNjozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEZpeCB2aW9sYXRpb25zIG9mIHN0cmljdC1hbGlhc2luZyBydWxlcyBpbiBnc3RfdXRpbF91aW50NjRfc2NhbGUoKQoKMjAwOS0wOC0xMSAwOToxMDo0NyArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogUmVmYWN0b3IgZ3N0X3V0aWxfdWludDY0X3NjYWxlKCkKCSAgVGhpcyB3aWxsIGxhdGVyIG1ha2UgaXQgcG9zc2libGUgdG8gcHJvdmlkZSByb3VuZGluZyB2ZXJzaW9ucwoJICBvZiBpdCB3aXRob3V0IG11Y2ggY29kZSBkdXBsaWNhdGlvbi4KCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMSAxNToyMDoxOCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogdXBkYXRlIGRvYyBzdHJpbmcKCjIwMDktMDgtMTEgMTM6MjE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogQWN0dWFsbHkgc3RhcnQ9PXN0b3A9PXNlZ21lbnRfc3RhcnQgaXMgaW5zaWRlIHRoZSBzZWdtZW50CgkgIFN0aWxsIHRoZSBvbGQgY29kZSB3YXMgd3JvbmcgYXMgaXQgY2xhaW1lZCB0aGF0IHN0YXJ0PT1zdG9wPHNlZ21lbnRfc3RhcnQKCSAgd291bGQgYmUgaW5zaWRlIHRoZSBzZWdtZW50IGFuZCByZXR1cm5lZCBpbnNhbmUgY2xpcHBpbmcgZGlmZmVyZW5jZXMuCgoyMDA5LTA4LTExIDEzOjAzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEZpeCB1bml0IHRlc3QgYW5kIGFkZCBhbiBhZGRpdGlvbmFsIHRlc3QKCSAgVGhlIHByZXZpb3VzIHRlc3QgYXNzdW1lZCB0aGF0IHN0YXJ0PXN0b3A9c2VnbWVudF9zdGFydCB3aWxsCgkgIGJlIGluc2lkZSB0aGUgc2VnbWVudCBidXQgdGhpcyBpcyB3cm9uZy4KCjIwMDktMDgtMTEgMTI6NTk6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogQ2xpcHBpbmcgc2hvdWxkIGRldGVjdCBzdGFydD1zdG9wPHNlZ21lbnRfc3RhcnQgYXMgb3V0c2lkZSB0aGUgc2VnbWVudAoJICBCZWZvcmUgaXQgcmV0dXJuZWQgdGhhdCBbc3RhcnQsc3RvcF0gaXMgaW5zaWRlIHRoZSBzZWdtZW50IGFuZCB0aGF0IHRoZQoJICBkaWZmZXJlbmNlIGJldHdlZW4gc2VnbWVudF9zdGFydCBhbmQgc3RhcnQgbmVlZHMgdG8gYmUgY2xpcHBlZC4gSWYgdGhlCgkgIGNsaXBwaW5nIGlzIGRvbmUgb24gYSBidWZmZXIgKGxpa2UgaW4gYmFzZWF1ZGlvc2luaykgdGhpcyB3aWxsIHJlc3VsdAoJICBpbiB0aGUgZGF0YSBwb2ludGVyIGJlaW5nIGF0IGEgaW52YWxpZCBtZW1vcnkgcG9zaXRpb24uCgkgIEZpeGVzIGJ1ZyAjNTg5ODQ5LgoKMjAwOS0wOC0xMSAwNTo0NzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGdzdGJ1czogVW5yZWYgcGlwZWxpbmUgYWZ0ZXIgdXNhZ2UgaW4gdGVzdF9jdXN0b21fbWFpbl9jb250ZXh0IHVuaXQgdGVzdAoJICBUaGlzIG1ha2VzIHRoZSBjb3JlIHVuaXQgdGVzdHMgdmFsZ3JpbmQgY2xlYW4gYWdhaW4uCgoyMDA5LTA4LTExIDAyOjU0OjU1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IGFkZCBFZHdhcmQncyBnaXQgcGx1Z2luIG1vdmluZyBob3d0byB0byBtb3ZpbmctcGx1Z2lucyBkb2N1bWVudAoKMjAwOS0wOC0xMCAxNDozMDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrczogZG9uJ3QgZm9yZ2V0IHRvIGluY2x1ZGUgY29uZmlnLmggaW4gdGhlIEdzdE9iamVjdCB1bml0IHRlc3QKCjIwMDktMDgtMTAgMTM6MDU6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrczogdHJ5IHRvIGZpeCBHc3RPYmplY3QgdW5pdCB0ZXN0IG9uIE9TWAoJICBTZWVtcyBsaWtlIHdlIGdldCBTSUdCVVMgaW5zdGVhZCBvZiBTSUdTRUdWIGhlcmUgd2hlbiBHTGliIGNyYXNoZXMKCSAgd2hlcmUgaXQgc2hvdWxkbid0IGNyYXNoIChhbmQgd2UgZXZlbiBoYXZlIGEgdW5pdCB0ZXN0IGZvciB0aGF0ISkuCgoyMDA5LTA4LTEwIDEyOjAxOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgY2hlY2tzOiBzZXQgcGlwZWxpbmVzIHRvIE5VTEwgc3RhdGUgaW4gcGFyc2UtbGF1bmNoIHVuaXQgdGVzdAoJICBGaXhlcyB0aW1lb3V0cyBpbiBnc3RfdGFza19jbGVhbnVwX2FsbCgpLgoKMjAwOS0wOC0xMCAxMTo0MjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGNoZWNrczogc2V0IHBpcGVsaW5lIGJhY2sgdG8gTlVMTCBzdGF0ZSBpbiBHc3RCdXMgdW5pdCB0ZXN0CgkgIEZpeGVzIHRpbWVvdXQgaW4gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKS4KCjIwMDktMDgtMTAgMTE6NDM6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBzb21lIGxvZ2dpbmcgYmVmb3JlIGNhbGxpbmcgZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKQoKMjAwOS0wOC0wOCAyMjoyNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQ2FsbCBnc3RfdGFza19jbGVhbnVwX2FsbCgpIGluIEdTVF9FTkRfVEVTVAoJICBUaGlzIGZpeGVzIG1hbnkgdW5pdCB0ZXN0cyB1bmRlciB2YWxncmluZCB0aGF0IHNob3dzCgkgIGxlYWtpbmcgR3N0VGFza3MgdGhhdCBhcmUgbm90IHJlYWxseSBsZWFrZWQgYnV0IGp1c3QKCSAgbm90IHVucmVmZmVkIGJ5IHRoZSB0YXNrIHRocmVhZCBiZWZvcmUgdGhlIHVuaXQgdGVzdAoJICBzdG9wcGVkLgoJICBGaXhlcyBidWcgIzU5MTA0NS4KCjIwMDktMDgtMDggMTQ6NDc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAwOS0wOC0wOCAxNDo0Nzo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAwOS0wOC0wNyAwMjozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBpZ25vcmUgbmV3IHF1ZXVlLWVycm9yIHRlc3QKCjIwMDktMDgtMDYgMjA6NDA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBhZGQgaW50ZXJuYWwtY2hlY2suaCB0byBCVUlMVF9TT1VSQ0VTIGluIGF0dGVtcHQgdG8gZml4IHRoZSBidWlsZAoJICBGb3Igc29tZSBwZW9wbGUgdGhlIGJ1aWxkIG9mIGxpYmdzdGNoZWNrIHdhcyBicm9rZW4gYmVjYXVzZSB0aGUgbWFrZQoJICB0YXJnZXQgdGhhdCBjcmVhdGVzIHRoZSBpbnRlcm5hbC1jaGVjay5oIGZpbGUgd2Fzbid0IGV4ZWN1dGVkIGZvcgoJICBzb21lIHJlYXNvbi4gVGhpcyBzaG91bGQgaG9wZWZ1bGx5IGZpeCB0aGlzLgoKMjAwOS0wOC0wNiAxODozODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBvbGRlciBhY2xvY2FscyBkb24ndCBsaWtlIC1JLiBzbyB1c2UgLUkgLiBpbnN0ZWFkCgoyMDA5LTA4LTA2IDE4OjQ3OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGFkZCBhZGRpdGlvbmFsIGNoZWNraW5nIGZvciB3cml0YWJpbGl0eQoJICBDaGVjayBmb3IgbWV0YWRhdGEgd3JpdGFiaWxpdHkgd2hlbiBzZXR0aW5nIGNhcHMgb24gYnVmZmVyIG9yIHdoZW4gY29weWluZwoJICBtZXRhZGF0YSBmbGFncy4gT25seSBlbmFibGUgdGhlc2UgZXh0cmEgYXNzZXJ0aW9ucyBpbiBnaXQgdmVyc2lvbnMuCgkgIFRoaXMgc2hvdWxkIGhlbHAgdXMgZmluZCBiYWQgZWxlbWVudHMuCgoyMDA5LTA4LTA0IDEwOjIyOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY2hlY2s6IGRpc2FibGUgdW5pdCB0ZXN0IHN1cHBvcnQgb24gd2luMzIgZm9yIG5vdwoJICBVbnRpbCB3ZSBtYWtlIHRoZSBpbnRlcm5hbCBsaWJjaGVjayB3b3JrIG9uIHdpbmRvd3MuCgoyMDA5LTA3LTE5IDE3OjA0OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZml4IHN5bWJvbCBleHBvcnRpbmcKCjIwMDktMDctMTcgMDA6NDY6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJICBjaGVjazogZml4IGlzc3VlcyB3aXRoICdtYWtlIGRpc3RjaGVjaycKCSAgU2VlbXMgdG8gd29yayBub3csIGF0IGxlYXN0IG9uICpuaXguIE9uZSBvZiB0aGUgY29uZmlndXJlIGNoZWNrcwoJICBjYXVzZWQgdGhlc2Ugd2VpcmQgaXNzdWVzIC0gYnV0IHdoaWNoIG9uZT8KCjIwMDktMDgtMDYgMTc6Mjc6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIGNoZWNrOiB1c2UgcHJpdmF0ZSBjb3B5IG9mIGNoZWNrIGZvciBsaWJnc3RjaGVjawoJICBTZWUgIzU3NzI3NS4gU2VlbXMgdG8gd29yayBmaW5lLCBidXQgZG9lc24ndCBkaXN0Y2hlY2sgeWV0LgoKMjAwOS0wNy0xNiAxODozOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJICBjaGVjazogYWRkIGludGVybmFsIGNvcHkgb2YgY2hlY2stMC45LjYKCSAgTm90IGhvb2tlZCB1cCB5ZXQuIFNlZSAjNTc3Mjc1LgoKMjAwOS0wOC0wNiAxNDoxMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBmaXggU2luY2U6IHRhZyBmb3IgbmV3IGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKSBmdW5jdGlvbgoKMjAwOS0wNy0yMiAxMToyNDo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAxMToyNDowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjU0OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6Mzg6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBhZGQgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpCgkgIE9mdGVuIHdlIGRvbid0IG5lZWQgdGhlIHJlc3VsdCBvZiB0aGUgaW50ZXJzZWN0aW9uLiBBZGQgYSB2YXJpYW50IHRoYXQgb25seQoJICB0cmllcyB0byBpbnRlcnNlY3QuIEl0IGNhbiBicmVhayBvdXQgZWFybGllciBhbmQgZG9lcyBsZXNzIEdWYWx1ZSBjb3B5aW5nLgoJICBBUEk6IGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOToyNDo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgY2hlY2sgY2Fwc19pc19maXhlZCgpIGlmIHRoZXkgY2hhbmdlZAoJICBUaGUgcHJldmlvdXMgY29kZSBjb3VsZCBjYWxsIGdzdF9jYXBzX2lzX2ZpeGVkKCkgZm9yIHRoZSBzYW1lIGNhcHMgbWFueSB0aW1lcy4KCjIwMDktMDctMjEgMTM6MzE6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNwbGl0IGNhbGxiYWNrIGZvciBzdHJ1Y3R1cmUgaW50ZXJzZWN0IGludG8gdHdvIGZ1bmN0aW9ucwoJICBXZSBjYWxsIHRoaXMgc2VwYXJhdGVseS4gdGhlcmUgaXMgbm8gbXVjaCBiZW5lZml0IGluIHJldXNpbmcgdGhlIGNhbGxiYWNrLgoJICBTcGxpdHRpbmcgaXMgbGV0IHVzIHJlbW92ZSBhIGJyYW5jaCBhbHNvLgoKMjAwOS0wNy0yMSAxMzoyNzowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgbG9nZ2luZzogbG9nIGlmIHdlIGNvcHkgY2FwcyB0byBiZSBhYmxlIHRvIHRyYWNrIGl0CgoyMDA5LTA3LTIxIDExOjMyOjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgY29tbWVudHMgYWJvdXQgZ19wdHJfYXJyYXkgc2l6ZSBiZWhhdmlvdXIKCSAgSnVzdCBleHBsYWluIHRoZSBiZWhhdmlvdXIgdG8gYXZvaWQgdGhhdCBzb21lb25lIGVsc2UgaXMgd2FzdGluZyB0aW1lIHRyeWluZyB0bwoJICBpbXByb3ZlIHRoaXMgdG9vLgoKMjAwOS0wNy0yMSAxMToxNDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGV4YW1wbGU6IHVucmVmIHRoZSBjbG9jayBpZAoKMjAwOS0wNy0yMSAxMDo1Njo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBjb3JyZWN0IHZhcmlhYmxlIGluIHRlc3QKCjIwMDktMDctMjggMTY6MTM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogYWRkIGZpbGVuYW1lIHRvIGRlYnVnIG1lc3NhZ2UsIGxpa2UgZWxzZXdoZXJlCgoyMDA5LTA3LTIxIDEwOjM4OjE1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdW51c2VkIHZhciB3aGVuIGRpc2FibGluZyBkZWJ1ZyBsb2dnaW5nCgoyMDA5LTA4LTA2IDEzOjI5OjI5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHBvc3QgZXJyb3IgbWVzc2FnZSB3aGVuIHBhdXNpbmcgdGFzawoJICBJZiBkb3duc3RyZWFtIHJldHVybnMgZXJyb3IgYW5kIHVwc3RyZWFtIGhhcyBhbHJlYWR5IGRlbGl2ZXJlZAoJICBldmVyeXRoaW5nIChpbmNsdWRpbmcgRU9TKSBhbmQgd2lsbCBubyBsb25nZXIgYmUgYXJvdW5kIHRvIGZpbmQKCSAgb3V0IHRoYXQgd2UgcGF1c2VkIChhbmQgd2h5KSwgcG9zdCBlcnJvciBtZXNzYWdlLiAgRml4ZXMgIzU4OTk5MS4KCjIwMDktMDctMjggMTI6MDM6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBxdWV1ZTogYWRkIHVuaXQgdGVzdAoJICBNYWtlIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybiBhbiBlcnJvciBhZnRlciB1cHN0cmVhbSBoYXMgYWxyZWFkeQoJICBwdXQgYWxsIGRhdGEgaW50byBxdWV1ZSAoaW5jbHVkaW5nIEVPUykuICBBcyBzdWNoLCB1cHN0cmVhbQoJICB3aWxsIG5vdCBiZSBhcm91bmQgdG8gcGljayB1cCB0aGUgZXJyb3IsIHNvIGl0IGlzIHVwIHRvIHF1ZXVlIHRvCgkgIGFjdCBhcHByb3ByaWF0ZWx5LiAgU2VlICM1ODk5OTEuCgkgIE5vdGUgdGhlcmUgbWF5IGJlIGRvd25zdHJlYW0gZmF0YWwgZXJyb3JzIChlLmcuIG5lZ290aWF0aW9uKSB0aGF0IGRvCgkgIG5vdCB3YXJyYW50IGFuIGVycm9yIG1lc3NhZ2UgYWxyZWFkeSBoYXZpbmcgYmVlbiBwb3N0ZWQuCgoyMDA5LTA4LTA1IDE4OjAyOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNsYXJpZnkgX2NhcHNfaXNfZXF1YWwoKQoKMjAwOS0wOC0wNSAxNzo1ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWZhY3RvciBtZXRhZGF0YSBtb2RpZmljYXRpb25zCgkgIENoZWNrIHdoZW4gd2UgbmVlZCB0byB0b3VjaCB0aGUgbWV0YWRhdGEgb2YgdGhlIG91dHB1dCBidWZmZXIgYWZ0ZXIgc2VsZWN0aW5nCgkgIHRoZSBvdXRwdXQgYnVmZmVyIHNvIHRoYXQgd2UgaGF2ZSBldmVyeXRoaW5nIGluIG9uZSBwbGFjZS4KCSAgQWxzbyB0YWtlIGZsYWdzIGFuZCB0aW1lc3RhbXAgbW9kaWZpY2F0aW9ucyBpbnRvIGFjY291bnQuCgoyMDA5LTA4LTA1IDE3OjU1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IG9ubHkgc2V0IGNhcHMgd2hlbiBkaWZmZXJlbnQKCSAgV2hlbiB3ZSBoYXZlIGFuIGlucHV0IGJ1ZmZlciB3aXRoIGNhcHMgYW5kIHdoZW4gdGhvc2UgY2FwcyBhcmUgZGlmZmVyZW50IGZyb20KCSAgdGhlIGNhcHMgd2Ugd2FudCwgb25seSB0aGVuIG1ha2UgYSB3cml0YWJsZSBjb3B5IG9mIHRoZSBpbnB1dCBidWZmZXIgYXMgdGhlCgkgIG91dHB1dCBidWZmZXIgYW5kIHNldCB0aGUgY2FwcyBvbiB0aGF0IG91dHB1dCBidWZmZXIuIFRoaXMgYXZvaWRzIHNvbWUgY2FzZXMKCSAgd2hlcmUgd2UgdG9vayBhIHN1YmJ1ZmZlciBmb3Igc2V0dGluZyBjYXBzIHRoYXQgd2VyZSB0aGUgc2FtZS4KCjIwMDktMDgtMDUgMTU6Mjg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZW5hYmxlIG9wdGltaXNhdGlvbgoJICBXaGVuIHdlIGhhdmUgdGhlIHNhbWUgaW5wdXQgYXMgb3V0cHV0IGNhcHMsIHJldXNlIHRoZSBpbnB1dCBjYXBzIG9iamVjdC4gQWZ0ZXIKCSAgdGhlIGNhcHMgcmVmY291bnRpbmcgaGFzIGJlZW4gc29ydGVkIG91dCBub3csIHdlIGNhbiBmaW5hbGx5IGVuYWJsZSB0aGlzCgkgIG9wdGltaXNhdGlvbi4KCjIwMDktMDgtMDUgMTM6NDg6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBkb24ndCBzZXQgY2FwcyBvbiB1bndyaXRhYmxlIGJ1ZmZlcnMKCSAgVGFrZSB0aGUgcmVmIGFmdGVyIHNldHRpbmcgdGhlIGNhcHMgb24gYSBidWZmZXIgYmVjYXVzZSBlbHNlIHRoZSBidWZmZXIgaXMKCSAgdGVjaGluaWNhbGx5IG5vdCB3cml0YWJsZS4KCjIwMDktMDgtMDUgMTM6NDc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBnZXQgY2FwcyBhZnRlciBtYWtpbmcgd3JpdGFibGUKCSAgR2V0IHRoZSBjYXBzIG9mIHRoZSBidWZmZXIgYWZ0ZXIgd2UgbWFkZSB0aGUgYnVmZmVyIHdyaXRhYmxlLiBUaGlzIGRpZCBub3QKCSAgY2F1c2UgYW55IHByb2JsZW1zIGJ1dCBpdCdzIG5pY2VyIHRoaXMgd2F5LgoKMjAwOS0wOC0wNSAxMzo0Njo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggcmVmY291bnRpbmcgcHJvYmxlbQoJICBNYWtlIHN1cmUgdGhlIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBzZXR0aW5nIHRoZSBjYXBzIG9uIGEgYnVmZmVyLgoKMjAwOS0wOC0wNSAxMzo0NDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVmY291bnRpbmcgcHJvYmxlbQoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSBvdXRwdXQgYnVmZmVyIGhhcyB3cml0YWJsZSBtZXRhZGF0YSBiZWZvcmUgd2UgYXR0ZW1wdCB0byBzZXQKCSAgY2FwcyBvbiBpdC4KCSAgZml4ZXMgIzU4Mzk5OQoKMjAwOS0wOC0wNSAxMzo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBzb21lIG1vcmUgZGVidWdnaW5nIGluIF9yZXBsYWNlCgoyMDA5LTA4LTA1IDEzOjQzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nCgoyMDA5LTA4LTA1IDEzOjQxOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBzbWFsbCBpbXByb3ZlbWVudHMKCSAgVW5yZWYgdGhlIHRhcmdldCBwYWQgYWZ0ZXIgd2UgdXNlZCBpdCBmb3IgZGVidWdnaW5nLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBPbmx5IHJlcGxhY2UgY2FwcyB3aGVuIHRoZXkgY2hhbmdlZC4KCjIwMDktMDctMjkgMTM6NDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbnVwcyBpbiBwb3NpdGlvbiBxdWVyaWVzCgkgIFVzZSBleGlzdGluZyBib29sZWFuIGZsYWcgdG8gcGFzcyBwb3NpdGlvbiBxdWVyaWVzIHVwc3RyZWFtLiBBbHNvIGFkZCB1cHN0cmVhbQoJICBxdWVyaWVzIGZvciB0aGUgbGFzdCBwb3NpdGlvbiBxdWVyaWVzLgoKMjAwOS0wOC0wNSAxMzoyNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZml4IGxpYnhtbDIgY2hlY2ssIHdoaWNoIGlzIG9ubHkgbmVlZGVkIGZvciB4bWwgbG9hZC9zYXZlIG5vdwoJICBTaW5jZSB0aGUgcmVnaXN0cnkgZG9lc24ndCB1c2UgbGlieG1sMiBhbnkgbG9uZ2VyLCBpdCdzIG5vIGxvbmdlciBuZWNlc3NhcnkKCSAgdG8gZGlzYWJsZSBib3RoIHhtbCBsb2FkL3NhdmUgKmFuZCogdGhlIHJlZ2lzdHJ5IHRvIGdldCByaWQgb2YgdGhlIGxpYnhtbDIKCSAgZGVwZW5kZW5jeSwgZGlzYWJsaW5nIGp1c3QgeG1sIGxvYWRpbmcvc2F2aW5nIGlzIGVub3VnaC4gRml4ZXMgIzU5MDg0MS4KCjIwMDktMDgtMDIgMTQ6MzM6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlbmFtZSB1bmluc3RhbGxlZCByZWdpc3RyeSBmaWxlIHRvIHJlZ2lzdHJ5LmRhdAoJICBXZSdyZSBub3QgdXNpbmcgdGhlIHhtbCByZWdpc3RyeSBhbnkgbG9uZ2VyIGFmdGVyIGFsbC4KCjIwMDktMDgtMDIgMTQ6Mjg6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlZmluZSBzZWFyY2ggcGF0aHMgZm9yIHVuaW5zdGFsbGVkIHBsdWdpbiBtb2R1bGVzCgkgIFVzZSBtb3JlIHJlZmluZWQgc2VhcmNoIHBhdGhzIGZvciBvdXIgcGx1Z2luIG1vZHVsZXMuIE5vdCBvbmx5IGRvZXMKCSAgdGhpcyBtYWtlIHRoaW5ncyBtdWNoIGZhc3RlciBpbiBhbiB1bmluc3RhbGxlZCBzZXR1cCwgaXQgYWxzbyBtYWtlcwoJICBzdXJlIHdlJ3JlIG5vdCBhY2NpZGVudGFsbHkgdXNpbmcgb3V0LW9mLWRhdGUgcGx1Z2lucyBidWlsdCBhZ2VzCgkgIGFnbyBhcyBwYXJ0IG9mIGEgKGZhaWxlZCkgJ21ha2UgZGlzdGNoZWNrJyB3aGVuIHdlIGZvcmdldCB0byBjbGVhbgoJICB1cCB0aGUgZGlzdGNoZWNrIGJ1aWxkIGRpcmVjdG9yeS4KCjIwMDktMDctMjkgMjM6NDI6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRpc3QgR1N0cmVhbWVyLTEuMCBidWZmZXIgZGVzaWduIGRyYWZ0CgoyMDA5LTA4LTA2IDA2OjUwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHRhZ2xpc3Q6IEFkZCBuZXcgQUxCVU1fQVJUSVNUIHRhZyB0byB0aGUgZG9jcwoKMjAwOS0wOC0wNCAxNDoxMzozNCArMDIwMCAgSm9obiBNaWxsaWtpbiA8am1pbGxpa2luQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFkZCBzdXBwb3J0IGZvciBBTEJVTV9BUlRJU1QgdGFnCgkgIFRoZSAiYWxidW0gYXJ0aXN0IiB0YWcgaXMgdXNlZCB3aGVuIHRoZSBhcnRpc3Qgb2YgYW4gZW50aXJlCgkgIGFsYnVtIGRpZmZlcnMgZnJvbSB0aGUgYXJ0aXN0IG9mIGFuIGluZGl2aWR1YWwgdHJhY2s7IGZvciBleGFtcGxlLAoJICB3aGVuIGEgImd1ZXN0IGFydGlzdCIgYXBwZWFycyBvbiBhbiBhbGJ1bSwgb3Igb24gY29tcGlsYXRpb25zLgoJICBGaXhlcyBidWcgIzU5MDQzMC4KCjIwMDktMDctMjkgMTM6MzM6MTEgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW4uc2VsbmVzQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFF1ZXJ5IHVwc3RyZWFtIGZvciB0aGUgcG9zaXRpb24gaWYgY29udmVyc2lvbiBpbiBQQVVTRUQgZmFpbGVkCgkgIEZpeGVzIGJ1ZyAjNTkwMDQ1LgoKMjAwOS0wNy0yOCAyMDo0MjoyMCArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXByb3ZlIGRlYnVnIG91dHB1dCBpbiBnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2FwcygpCgkgIEZpeGVzIGJ1ZyAjNTg5NTI0LgoKMjAwOS0wNy0yMiAwOTowMTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgdW5zZXQgR0FQIGZsYWcgaWYgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlCgkgIEZpeGVzIGJ1ZyAjNTg5MzE0LgoKMjAwOS0wOC0wNiAwMTo0Mzo1NyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjQuMQoKPT09IHJlbGVhc2UgMC4xMC4yNCA9PT0KCjIwMDktMDgtMDUgMDA6NTE6MTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDAuMTAuMjQKCjIwMDktMDgtMDQgMjM6MDU6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTA4LTAzIDE1OjMxOjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhdm9pZCB3cmFwLWFyb3VuZCBpbiBidWZmZXIgc2l6ZSBjaGVja3MuICBGaXhlcyAjNTkwNjIyLgoKMjAwOS0wNy0zMCAxNDo0MTozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjUgcHJlLXJlbGVhc2UKCjIwMDktMDctMjggMjE6MTU6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBHZXQgdGhlIGZsdXNoaW5nIHN0YXRlIHdpdGggdGhlIG9iamVjdCBsb2NrIHRha2VuLgoJICBGaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDIxOjE0OjExICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogTWFrZSBzdXJlIHRoZSBDb2xsZWN0RGF0YSBsaXN0IGlzIHVwLXRvLWRhdGUgd2hlbiByZWFkaW5nL3NldHRpbmcgaXQKCSAgV2l0aG91dCB0aGlzLCB3ZSByaXNrZWQ6CgkgICogQ2hlY2tpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9uIGFuIHVuZXhpc3RpbmcgbGlzdAoJICAqIE5vdCBzZXR0aW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvbiBwYWRzIHRoYXQgaGFkIGp1c3QgYmVlbiBhZGRlZAoJICBQYXJ0aWFsbHkgZml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAyMToxMjoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFNwbGl0IG91dCBfY2hlY2tfcGFkcyBpbnRvIGEgdmVyc2lvbiB3aXRob3V0IGxvY2sgdGFraW5nLgoJICBUaGlzIGlzIHNvIHdlIGNhbiB1c2UgX2NoZWNrX3BhZHMgaW4gcGxhY2VzIHdoZXJlIHdlJ3ZlIGFscmVhZHkgdGFrZW4KCSAgdGhlIGxvY2sgaW4gcXVlc3Rpb24uCgkgIFBhcnRpYWxseSBmaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDE1OjIzOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgY2hlY2s6IG1ha2UgbmV3IEdzdFN0cmVhbUNvbnNpc3RlbmN5IHN0cnVjdHVyZSBwcml2YXRlCgkgIFRoZXJlJ3Mgbm8gbmVlZCB0byBoYXZlIEdzdFN0cmVhbUNvbnNpc3RlbmN5IGluIGEgcHVibGljIGhlYWRlciBmb3IKCSAgdGhlIHRpbWUgYmVpbmcsIHNvIG1ha2UgaXQgcHJpdmF0ZS4gV2hpbGUgd2UncmUgYXQgaXQsIGFkZCBhIGd0ay1kb2MKCSAgYmx1cmIgZm9yIGl0IHRob3VnaC4gUmUtZml4ZXMgIzU4ODc0NC4KCjIwMDktMDctMjQgMTM6NTA6MTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yMy40IHByZS1yZWxlYXNlCgoyMDA5LTA3LTI0IDA5OjUwOjE5ICswMTAwICBSb2JpbiBTdG9ja2VyIDxyb2JpbkBuaWJvci5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgaGFuZGxlIFNFRUtJTkcgcXVlcmllcyBmb3IgZm9ybWF0cyB0aGF0IGRvbid0IG1hdGNoIHRoZSBvbmUgdGhlIHNvdXJjZSBvcGVyYXRlcyBpbgoJICBSZXR1cm4gRkFMU0UgaW4gYmFzZXNyYydzIGRlZmF1bHQgcXVlcnkgaGFuZGxlciB3aGVuIHdlIGdldCBhIFNFRUtJTkcgcXVlcnkgZm9yCgkgIGEgZm9ybWF0IHRoYXQncyBub3QgdGhlIG9uZSB0aGUgc291cmNlIG9wZXJhdGVzIGluLiBQcmV2aW91c2x5IChpZS4gYmVmb3JlLCBpbgoJICB0aGUgZ2l0IHZlcnNpb24pIHdlIHdvdWxkIHJldHVybiBUUlVFIGluIHRoYXQgY2FzZSBhbmQgc2Vla2FibGU9RkFMU0UsIHdoaWNoCgkgIGlzIG1vcmUgY29ycmVjdCwgYnV0IGNhdXNlcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwcm9ibGVtcy4gKEJlZm9yZSB0aGF0CgkgIHdlIHdvdWxkIGNoYW5nZSB0aGUgZm9ybWF0IG9mIHRoZSBxdWVyeSB3aGVuIGFuc3dlcmluZywgd2hpY2ggd2FzIGNvbXBsZXRlbHkKCSAgYnJva2VuIHNpbmNlIGNhbGxlcnMgZG9uJ3QgZXhwZWN0IHRoYXQgb3IgY2hlY2sgZm9yIGl0KS4gU2luY2UgdGhlIFNFRUtJTkcKCSAgcXVlcnkgaXMgYSBmYWlybHkgcmVjZW50IGFkZGl0aW9uLCBub3QgYWxsIGRlbXV4ZXJzLCBwYXJzZXJzIGFuZCBkZWNvZGVycwoJICBpbXBsZW1lbnQgaXQgeWV0LCBpbiB3aGljaCBjYXNlIGFueSBTRUVLSU5HIHF1ZXJ5IGJ5IGFuIGFwcGxpY2F0aW9uIHdpbGwKCSAganVzdCBiZSBwYXNzZWQgdXBzdHJlYW0gd2hlcmUgaXQgd2lsbCB0aGVuIGJlIGhhbmRsZWQgYnkgYmFzZXNyYy4gTm93LCBpZgoJICBlLmcuIHRvdGVtIGRvZXMgYSBTRUVLSU5HIHF1ZXJ5IGZvciBUSU1FIGZvcm1hdCBhbmQgd2UgaGF2ZSBhIGRlbXV4ZXIgdGhhdAoJICBkb2Vzbid0IGltcGxlbWVudCB0aGUgcXVlcnksIGJhc2VzcmMgd291bGQgYW5zd2VyIGl0IHdpdGggc2Vla2FibGU9RkFMU0UgaW4KCSAgbW9zdCBjYXNlcywgYW5kIHRvdGVtIGNhbiBvbmx5IHRha2UgdGhhdCBhcyBhdXRob3JpdGF0aXZlIGFuc3dlciwgbm90IGtub3dpbmcKCSAgdGhhdCB0aGUgZGVtdXhlciBkb2Vzbid0IGltcGxlbWVudCB0aGUgU0VFS0lORyBxdWVyeS4gVG8gYXZvaWQgdGhpcywgd2UgbWFrZQoJICBiYXNlc3JjIHJldHVybiBGQUxTRSB0byBTRUVLSU5HIHF1ZXJpZXMgaW4gdW5oYW5kbGVkIGZvcm1hdHMuIFRoYXQgd2F5CgkgIGFwcGxpY2F0aW9ucyBsaWtlIHRvdGVtIGNhbiBmYWxsIGJhY2sgb24gYXNzdW1pbmcgc2Vla2FiaWxpdHkgZGVwZW5kaW5nIG9uCgkgIHdoZXRoZXIgYSBkdXJhdGlvbiBpcyBhdmFpbGFibGUsIG9yIHNvbWVzdWNoLiBEb3duc3RyZWFtIGVsZW1lbnRzIGRvaW5nCgkgIHN1Y2ggcXVlcmllcyBhcmUgbGlrZWx5IHRvIGVxdWF0ZSBhbiB1bmhhbmRsZWQgcXVlcnkgd2l0aCBhIG5vbi1zZWVrYWJsZQoJICByZXNwb25zZSBhcyB3ZWxsLCBzbyB0aGlzIHNob3VsZCBiZSBhbiBhY2NlcHRhYmxlIGZpeCBmb3IgdGhlIHRpbWUgYmVpbmcuCgkgIFNlZSAjNTg0ODM4LCAjNTg4OTQ0LCAjNTg5NDIzIGFuZCAjNTg5NDI0LgoKMjAwOS0wNy0yNCAwMDo0MTo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZWRhYWVlIHRvIDk0Zjk1ZTMKCjIwMDktMDctMjAgMTY6MTE6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogYWRkICsxIGFmdGVyIGVycm9yIGNoZWNraW5nCgkgIFRoZSBjdXJyZW50IGNvZGUgbWFkZSB0aGUgZXJyb3IgY2hlY2tpbmcgcG9pbnRsZXNzIGJ5IGNoYW5naW5nIC0xIHRvIDAgaW4gZXJyb3IKCSAgY2FzZXMuIEFsc28gZG9uJ3QgbGVhayBhIHBhZCB0ZW1wbGF0ZSBvbiBlcnJvci4KCjIwMDktMDctMjAgMTU6NTE6MjAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjMuMyBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yMCAxODowMzoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIHRlc3RzOiBtYWtlIHN1cmUgdGhlIHRhc2tzIGFyZSBqb2luZWQKCSAgQ2FsbCBfY2xlYW5fYWxsKCkgb24gdGhlIHRhc2sgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgam9pbmVkIGFuZCBzdG9wcGVkLgoJICBTZWUgIzU4OTEyNwoKMjAwOS0wNy0yMCAxNTo0NDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGZpeCB0YXNrcG9vbCBsZWFrCgkgIEdzdFRha3MgZG9lcyBub3QgYWx3YXlzIHVucmVmIHRoZSB0YXNrcG9vbCBpdCB3YXMgY3JlYXRlZCBmcm9tIGJlY2F1c2UgaXQKCSAgZGVwZW5kcyBvbiB3aGVuIHRoZSBwb29sIHByb3ZpZGVkIGFuIElEIGZvciBqb2luaW5nIHRoZSB0YXNrLgoJICBSZXdvcmsgc29tZSBjb2RlIHNvIHRoYXQgd2UgYWx3YXlzIHVucmVmIHRoZSBwb29sIGFuZCBvcHRpb25hbGx5IGpvaW4gd2hlbiB0aGUKCSAgcG9vbCBwcm92aWRlZCBhbiBpZC4KCSAgRml4ZXMgIzU4OTEyNwoKMjAwOS0wNy0yMCAxMzoyNjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtYWtlIHRhZyBxdWV1aW5nIHRocmVhZHNhZmUKCSAgU2VlICM1ODg3NDUKCjIwMDktMDctMTMgMDk6MjI6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBnc3RjaGVjazogQWRkIGEgc3RyZWFtIGNvbnNpc3RlbmN5IGNoZWNraW5nIGhlbHBlciByb3V0aW5lLiBGaXhlcyAjNTg4NzQ0CgoyMDA5LTA3LTIwIDExOjA0OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGRvbid0IHVucmVmIE5VTEwgaWYgd2UgaGF2ZSBhbiBlYXJseSByZWFkIGVycm9yCgoyMDA5LTA3LTEyIDEwOjA0OjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlcmlhbGl6ZSB0YWdzIGludG8gdGhlIGRhdGFmbG93LiBGaXhlcyAjNTg4NzQ1CgoyMDA5LTA3LTE2IDE0OjE3OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IEFQSSBkb2NzIGZvciBnc3Rfe2FkYXB0ZXJ8Ynl0ZV9yZWFkZXJ9X21hc2tlZF9zY2FuX3VpbnQzMgoJICBDbGFyaWZ5IGJ5dGUgcmVhZGVyIGRvY3MgYSBiaXQ6IG9mZnNldCBpcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudAoJICBwb3NpdGlvbiBvZiB0aGUgcmVhZGVyLCBub3QgdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhLiBBbHNvLCB0aGUKCSAgZXhhbXBsZXMgaW4gYm90aCB0aGUgYWRhcHRlciBkb2NzIGFuZCB0aGUgYnl0ZSByZWFkZXIgZG9jcyBoYXZlCgkgIHRoZSBtYXNrIGFuZCBwYXR0ZXJuIGFyZ3VtZW50cyBzd2FwcGVkIChzZWUgIzU4NzU2MSkuIFNwb3R0ZWQKCSAgYnkgQ2FybC1BbnRvbiBJbmdtYXJzc29uLgoKMjAwOS0wNy0xNiAxMzo1OTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnczogb25seSBlbWl0IGEgZ193YXJuaW5nKCkgZm9yIGVtcHR5IHRhZyBzdHJpbmdzIGZvciBnaXQgdmVyc2lvbnMKCSAgRm9yIG5vdywgZG9uJ3Qgc2hvdyBhIGdfd2FybmluZygpIGZvciBlbXB0eSB0YWcgc3RyaW5ncyBhbmQgTlVMTAoJICB0YWdzIHdpdGggbm9uLWdpdCB2ZXJzaW9uczsgd2Ugc2hvdWxkIHdhaXQgZm9yIHRoZSBmaXhlcyBpbiBvdXIKCSAgcGx1Z2luIG1vZHVsZXMgdG8gbWFrZSBpdCBpbnRvIGEgcmVsZWFzZSBiZWZvcmUgd2UgZW5hYmxlIHRoaXMKCSAgdW5jb25kaXRpb25hbGx5LgoKMjAwOS0wNy0xNCAxODo1OToxMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjIzLjIgcHJlLXJlbGVhc2UKCjIwMDktMDctMTQgMTI6MTU6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIGV4cGxhbmF0aW9uIGZvciBzaG9ydGN1dAoKMjAwOS0wNy0xMCAyMDowNDo0OCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHRha2Ugc2l6ZSBvbmNlCgoyMDA5LTA3LTEwIDE5OjE3OjA0ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBjYW5faW50ZXJzZWN0IHRvIGJlaGF2ZSBsaWtlIGludGVyc2VjdAoJICBBZGQgYSBxdWljayByZXR1cm4gaWYgdHdvIHR5cGVzIGFyZSB0aGUgc2FtZS4gQ2hhbmdlIHRoZSBjaGVjayBmb3IgdGhlCgkgIGludGVyc2VjdGlvbiBmdW5jdGlvbiB0byBiZSB0aGUgc2FtZSBhcyB0aGUgb25lIHVzZWQgaW4gaW50ZXJzZWN0KCkuIFRoZQoJICBsYXRlciB0cmllcyBib3RoIGRpcmVjdGlvbnMuCgoyMDA5LTA3LTE0IDAwOjA0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IG1haW50YWluIEFCSSBjb21wYXRpYmlsaXR5IGV2ZW4gaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTA3LTAyIDEyOjQwOjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBzdHJ1Y3R1cmU6IENoYW5nZSBOVUxMIGFuZCBlbXB0eSBzdHJpbmcgaGFuZGxpbmcKCSAgRG9uJ3QgZm9yYmlkIHRoZSBlbXB0eSBzdHJpbmcgIiIgaW4gZ2VuZXJpYyBzdHJ1Y3R1cmVzLCBvbmx5IGluIHRhZ2xpc3RzLgoJICBQcm9wZXJseSBhbGxvdyB0aGUgTlVMTCBzdHJpbmcgYnkgYWRkaW5nIHNwZWNpYWwgY2FzZXMgZm9yIHNlcmlhbGlzaW5nCgkgIGFuZCBkZXNlcmlhbGlzaW5nIGl0LiBwcm9wMT0oc3RyaW5nKU5VTEwgaXMgdGhlIE5VTEwgc3RyaW5nLAoJICBwcm9wMT0oc3RyaW5nKSJOVUxMIiBpcyB0aGUgYWN0dWFsIHN0cmluZyB3aXRoIHRoZSB2YWx1ZSAiTlVMTCIKCjIwMDktMDctMTMgMTI6MjM6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTg0NWI2MyB0byBmZWRhYWVlCgoyMDA5LTA3LTEzIDEyOjAwOjQ3ICswMjAwICBBbmRvbmkgTW9yYWxlcyA8eWxhdHV5YSBhdCBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggc2VnZmF1bHQgd2l0aCBNU1ZDCgkgIERvbid0IHVzZSBkZXByZWNhdGVkIGZpbGVubyBvbiBNU1ZDIGJ1dCByZXBsYWNlIHdpdGggX2ZpbGVubwoJICBGaXhlcyAjNTg3MDUyCgoyMDA5LTA3LTEzIDA5OjMyOjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3MvZGVzaWduOiBVcGRhdGUgTWFrZWZpbGUuYW0gZm9yIGNoYW5nZWQgZnJhbWVzdGVwIGRvY3VtZW50IG5hbWUuCgoyMDA5LTA3LTEwIDE5OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiB0aGUgcGx1Z2luIGZlYXR1cmVzIGxpc3RlZCBieSBnc3QtaW5zcGVjdCBhcmUgdHlwZWZpbmRlcnMsIG5vdCB0eXBlcwoKMjAwOS0wNy0xMCAxODo0NjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgZHJhZnQgZm9yIGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEgaWRlYQoKMjAwOS0wNy0xMCAxODozNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSAgZG9jczogbW9yZSBmcmFtZXN0ZXAgZG9jcyBvdXQgb2YgZHJhZnQKCjIwMDktMDctMTAgMTg6MzM6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBkb2NzOiB1cGRhdGUgZnJhbWVzdGVwIGRvY3VtZW50CgkgIFJlbW92ZSBleHBlcmltZW50YWwgc3RhdHVzIGZyb20gdGhlIGZyYW1lc3RlcCBkcmFmdC4KCjIwMDktMDctMDggMTU6MTU6MDQgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBGaXggY29tcGlsYXRpb24gaWYgb3B0aW9uIHBhcnNpbmcgaXMgZGlzYWJsZWQKCSAgRml4ZXMgYnVnICM1ODc5NzYuCgoyMDA5LTA3LTA4IDE1OjEwOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogVXNlIGdfYnVpbGRfZmlsZW5hbWUoKSBpbnN0ZWFkIG9mIGdfc3Ryam9pbigpIHdpdGggLwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgZ2VuZXJhdGVkIGZpbGVuYW1lcyB1c2UgdGhlIHBsYXRmb3JtCgkgIHNwZWNpZmljIGRpcmVjdG9yeSBzZXBhcmF0b3IgaW5zdGVhZCBvZiAvLgoJICBGaXhlcyBidWcgIzU4Nzk3My4KCjIwMDktMDctMDcgMjA6MTM6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogYWRkICdTaW5jZScgdGFnIGZvciBuZXcgR1NUX0RFQlVHX0NBVEVHT1JZX0dFVCBtYWNybwoKMjAwOS0wNy0wNyAwMDoyMzo0MSArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogbWFrZSBpdCB0aGUgYmVzdCBvZiB3aW1zIGFuZCBlZHdhcmRzIHBhdGNoLgoJICBDaGVjayB0aGUgcmlnaHQgZmx1c2hpbmcgZmxhZywgYnV0IHN0aWxsIGFkZCBpdCB0byB0aGUgcGFkLWxpc3QuCgoyMDA5LTA2LTMwIDExOjI2OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogYWxsb3cgZ2V0dGluZyBvdGhlciBsb2cgY2F0ZWdvcmllcy4gRml4ZXMgIzU4NzQxNwoJICBBZGQgYSBuZXcgbWFjcm8gR1NUX0RFQlVHX0NBVEVHT1JZX0dFVCB0byBnZXQgYSBsb2cgY2F0ZWdvcnkgYnkgbmFtZS4gVGhpcwoJICBhbGxvd3MgcGx1Z2lucyB0byB1c2UgZS5nLiBjb3JlIGNhdGVnb3JpZXMgbGlrZSBQRVJGT1JNQU5DRSBvciBDTE9DSy4KCSAgQVBJOiBHU1RfREVCVUdfQ0FURUdPUllfR0VUCgoyMDA5LTA3LTA2IDE5OjUxOjU3ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBjb21tZW50IGEgRklYTUUgY29tbWVudAoKMjAwOS0wNy0wNiAxOTo1MDo1MiArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbG9nZ2luZzogbG9nIG9iamVjdCB0eXBlIGluIG1lc3NhZ2UKCjIwMDktMDctMDYgMTk6NDg6NTggKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nZ2luZzogdXNlIHBlcmYgY2F0ZWdvcnkgZm9yIGRyb3BwZWQgYnVmZmVycwoKMjAwOS0wNi0yOSAxMToyNjo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IGZvcndhcmQgRkxVU0hfU1RPUCBpZiBzb21lIGlucHV0IHN0cmVhbXMgYXJlIHN0aWxsIGZsdXNoaW5nLgoJICBUaGlzIGd1YXJhbnRlZXMgdGhhdCBvbmx5IG9uZSBGTFVTSF9TVE9QIGV2ZW50ICh0aGUgbGFzdCBvbmUpIHdpbGwgYmUgc2VudAoJICBkb3duc3RyZWFtIHdoZW4gYSBmbHVzaGluZyBzZWVrIGlzIGJlaW5nIGRvbmUgdGhyb3VnaCBjb2xsZWN0cGFkcy4KCjIwMDktMDYtMjQgMTE6MTE6MzUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVcGRhdGUgdGhlIGNvb2tpZSB3aGVuIHNldHRpbmcgb3Vyc2VsdmVzIGFzIGZsdXNoaW5nLgoJICBUaGlzIGZvcmNlcyB0aGUgcGFkIHN0YXR1cyB0byBiZSByZS1ldmFsdWF0ZWQgb24gdGhlIG5leHQgX2NoZWNrX3BhZHMoKS4KCjIwMDktMDYtMDkgMTQ6NTQ6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBkb2NzOiBmaXggZ3RrLWRvYyAvKjwgcHJpdmF0ZSA+Ki8gbWFya2VyCgoyMDA5LTA2LTA5IDE0OjQ4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogbG9nIHByb2JhYmlsaXR5IGluIGRlYnVnIG1lc3NhZ2UKCjIwMDktMDYtMzAgMTg6MjI6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggcGFyc2luZyBvZiB0aGUgc3RlcCBkb25lIG1lc3NhZ2UKCSAgUGFyc2UgdGhlIGR1cmF0aW9uIGZpZWxkIHRvby4KCjIwMDktMDYtMjkgMTE6MjQ6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IFVzZSBsb2NhbCB2YWx1ZXMgaW4gd2hpbGUvZm9yIGxvb3BzLCB1c2UgYnJhbmNoIHByZWRpY3Rpb24gbWFjcm9zCgoyMDA5LTA2LTI5IDExOjIzOjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgU3ByZWFkIGJyYW5jaCBwcmVkaWN0aW9uIG1hY3Jvcy4KCSAgVGhlc2UgYXJlIGJhc2VkIG9uIHByb2ZpbGluZyBzZXZlcmFsIHBsYXliYWNrIHNjZW5hcmlvcyB1c2luZyBwbGF5YmluMi4KCjIwMDktMDYtMjkgMTE6MjA6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVXNlIGxvY2FsIHZhcmlhYmxlcyBpbiBmb3Ivd2hpbGUgbG9vcHMuCgkgIFRoaXMgbWFrZXMgdGhlIGdlbmVyYXRlZCBjb2RlIGZhc3RlciBzaW5jZToKCSAgKiBJdCB3b24ndCBoYXZlIHRvIHJlYWQgYW4gdW5kaXJlY3QgdmFsdWUgKHdoaWNoIHdpbGwgbW9zdCBsaWtlbHkgYmUKCSAgb3V0c2lkZSBvZiB0aGUgTDEvTDIgY2FjaGUpCgkgICogV2Uga25vdyB0aGF0IHZhbHVlIG5ldmVyIGNoYW5nZXMgKHRoZSBjb21waWxlciBoYXMgbm8gY2x1ZSB0aGF0IGl0IGRvZXNuJ3QpLgoKMjAwOS0wNi0wOSAxOTowODoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgbGlicy9jb250cm9sbGVyOiBTZXQgZGVmYXVsdCBnc3QgZGVidWdnaW5nIGNhdGVnb3J5LgoKMjAwOS0wNi0yOSAxMTo1NzoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5zY206CgkgIHRlc3RzOiBmaXggZXhhbXBsZQoKMjAwOS0wNi0yOSAxMTo1NjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBidWZmZXJsaXN0OiB1c2UgZmFzdGVyIGdzdF9idWZmZXJfbGlzdF9nZXQoKQoJICBVc2UgdGhlIGZhc3RlciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkgdG8gZ2V0IHRoZSBmaXJzdCBidWZmZXIgb2YgYSBsaXN0LgoKMjAwOS0wNi0yOSAxMTo1NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGZpeCBleGFtcGxlCgkgIFRoZSBfZG8gZnVuY3Rpb24gbm93IHRha2VzIHVzZXJfZGF0YSBpbiBhbGwgY2FzZXMuCgoyMDA5LTA2LTI5IDExOjQ2OjAwICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdGFrZSB0aW1lc3RhbXAgbGF0ZXIKCSAgTWFrZSBzdXJlIHdlIGRvbid0IGFjY2lkZW50YWxseSBjYXN0IGEgYnVmZmVybGlzdCBvZiBhIGJ1ZmZlciBhbmQgdHJ5IHRvIHRha2UKCSAgdGhlIHRpbWVzdGFtcCBvZiBpdC4KCSAgUmVmaXhlcyAjNTg1OTYwCgoyMDA5LTA2LTI5IDExOjA3OjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiBmaXggc29tZSB0eXBvcwoKMjAwOS0wNi0yOSAxMToyNDowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbG9nZ2luZzogYWRkIGEgcGVyZm9ybWFjZSBsb2cgY2F0ZWdvcnkKCSAgVGhpcyBjYXRlZ29yeSBjYW4gYmUgdXNlZCB0byBsb2cgc2xvdyBjb2RlIHBhdGggYW5kIGhlbHAgYXVkaXRpbmcgdGhlCgkgIHBlcmZvcm1hbmNlLiBBZGQgRklYTUUtMC4xMSB0byBzb21lIHF1ZXN0aW9uYWJsZSBjYXRlZ29yaWVzLgoKMjAwOS0wNi0yNyAxNjozNDozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBpbnQtPmdpbnQgdG8gYmUgaW4gc3luYyB3aXRoIHRoZSAqLmggIGFuZCB1c2FnZQoKMjAwOS0wNi0yNiAxMzozMzo1MCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YgJ2VjaG8gLW4nLiBDaGVjayBmb3IgYXV0b21ha2UtMS4xWzAxXQoJICBDaGVjayBmb3IgbW9yZSBhdXRvbWFrZSBjb21tYW5kIHZhcmlhbnRzLiBVc2UgcHJpbnRmIGluc3RlYWQgb2YgJ2VjaG8gLW4nCgkgIGZvciBwb3J0YWJpbGl0eQoKMjAwOS0wNi0yNiAxMzo0MToxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmODEwMDMwIHRvIDU4NDViNjMKCjIwMDktMDYtMjYgMTI6NTA6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHJlcXVlc3QtcGFkOiB0ZWxsIGFib3V0IHJlZiBjb3VudHMgaW4gcmVsZWFzZV9yZXF1ZXN0X3BhZCBkb2NzLgoJICBJdCBpcyBub3QgdG9vIG9idmlvdXMgdGhhdCBnZXR0aW5nIGFuZCByZWxlYXNpbmcgcmVxdWVzdCBwYWRzIGlzIG5vdCBlbnRpZXJseQoJICBzeW1ldHJpY2FsIHJlZ2FyZGluZyB0byB0aGUgcGFkIHJlZmNvdW50LiBBZGQgYSBub3RlIGFib3V0IHRoYXQgdG8gdGhlIGRvY3MuCgkgIFRoaXMgbWlnaHQgZGVzZXJ2ZSBhIEZJWE1FLTAuMTEgdG9vLgoKMjAwOS0wNi0yNSAxMToyNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCBkbyB0aGluZ3Mgd2l0aCBzaWRlIGVmZmVjdHMgd2l0aGluIGEgZ19hc3NlcnQoKQoJICBNYWtlIHRoZSBidWZmZXJsaXN0IHN0dWZmIHdvcmsgcHJvcGVybHkgd2hlbiB0aGluZ3MgYXJlIGNvbXBpbGVkCgkgIHdpdGggLURHX0RJU0FCTEVfQVNTRVJULgoKMjAwOS0wNi0yNCAxODozMTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGF2b2lkIGRvaW5nIGxvZ2ljIGluIGdfYXNzZXJ0CgkgIE1ha2Ugc3VyZSB3ZSBzdGlsbCBkbyB0aGUgcmlnaHQgdGhpbmcgd2hlbiBnbGliIGlzIGNvbXBpbGVkIHdpdGhvdXQKCSAgYXNzZXJ0aW9ucy4KCjIwMDktMDYtMjIgMDU6MDA6NTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXJlIHRoZSBvdmVycnVuIHNpZ25hbCBvbiBFT1MKCSAgRml4ZXMgc3RhcnR1cCBvZiBzb21lIHNob3J0IE1QRUcgZmlsZXMgd2l0aCBkZWNvZGViaW4yL3BsYXliaW4yCgkgIHdoZXJlIGFsbCB0aGUgZGF0YSBmaXRzIGluIHRoZSBtdWx0aXF1ZXVlIGFuZCBFT1MgYXJyaXZlcyBiZWZvcmUKCSAgdGhlIGdyb3VwIGlzIGV4cG9zZWQuCgoyMDA5LTA2LTI0IDE1OjEzOjM3ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjNiYjUxYiB0byBmODEwMDMwCgoyMDA5LTAzLTI4IDEzOjU5OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBHc3RTdHJ1Y3R1cmU6IFVzZSBkaXJlY3QgdmFsdWVzIGZvciByZXBldGl0aXZlIGNvbmRpdGlvbmFscyAoZm9yL3doaWxlKS4KCjIwMDktMDYtMjQgMTA6NDU6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgbWluaW9iamVjdHM6IERvbid0IGNoYWluIHVwIHRvIGVtcHR5IGZpbmFsaXplIG1ldGhvZC4KCSAgSWYgZXZlciB3ZSBkbyBhbnl0aGluZyBpbiBtaW5pX29iamVjdF9maW5hbGl6ZSwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGUgNAoJICBjb3JlIG1pbmlvYmplY3QgZmluYWxpemUgbWV0aG9kcyBjaGFpbiBiYWNrIHVwIGFnYWluLgoKMjAwOS0wMy0yNyAyMDoxNzoxNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVzZSBkaXJlY3QgdmFsdWVzIGZvciByZXBldGl0aXZlIGNvbmRpdGlvbmFscyAoZm9yL3doaWxlKS4KCjIwMDktMDYtMjQgMDk6Mjg6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgbWFrZSBjaGVjazogYWRkIGNoZWNrIGZvciBlbnVtIHR5cGUgY2xhc3MgdW5yZWZzIGluIGdzdF9kZWluaXQoKSB0b28KCSAgSnVzdCBiZWNhdXNlIHdlIGNhbiByZWFsbHkuCgoyMDA5LTA2LTIzIDEzOjQ0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdHJhY2U6IHVzZSBwcm9wZXIgbG9ja2luZyBpbiBHc3RUcmFjZQoJICBQcm90ZWN0IHRoZSBhbGxvY2F0ZWQgbGlzdCBvZiBvYmplY3RzIHdpdGggYSBsb2NrIHNvIHRoYXQgdHJhY2UgYWN0dWFsbHkgd29ya3MKCSAgcmVsaWFibHkuCgkgIFNob3J0Y3V0IHRoZSBhbGxvYyB0cmFjZSBzb29uZXIgd2hlbiBkaXNhYmxlZC4KCjIwMDktMDYtMjMgMTM6MzQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogYWxzbyBhZGQgcG9pbnRlcnMgdG8gZGVidWcKCSAgQWRkIHRoZSBvYmplY3QgcG9pbnRlcnMgaW4gdGhlIGRlYnVnIGluZm8gZm9yIF9yZXBsYWNlLgoKMjAwOS0wNi0yMyAxMjo1Njo1OSArMDIwMCAgQ2hhZCBIYW5uYSA8Y2hhbm5hQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogQWRkIEdBUCBmbGFnIHN1cHBvcnQKCSAgY2Fwc2ZpbHRlciBkb2Vzbid0IGFjdHVhbGx5IHRvdWNoIHRoZSBkYXRhIHNvIHdlIGRvbid0IHdhbnQgdGhlIEdBUCBmbGFnIHRvCgkgIGJlIHVuc2V0IGJ5IGJhc2V0cmFuc2Zvcm0uCgkgIEZpeGVzIGJ1ZyAjNTg2NTY2LgoKMjAwOS0wNi0yMyAxMDowNTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBieXRlIHJlYWRlciBtZXRob2RzCgoyMDA5LTA1LTIyIDE0OjQ3OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGFkZCBhIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBzdHJpbmdzIGFuZCBhIGRhdGEgZHVwIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9kYXRhCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmMTYKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGYzMgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjE2CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjMyCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3RyaW5nX3V0ZjgKCSAgQW5kIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cy4gRml4ZXMgIzU4NjU2OC4KCjIwMDktMDYtMjIgMTg6MTc6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCB0eXBvIGluIHRhZyBkZXNjcmlwdGlvbgoKMjAwOS0wNi0yMSAwMDoyNjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogZml4IGNyYXNoIGFuZCBsZWFrIGluIGJ1ZmZlcmxpc3RzIHVuaXQgdGVzdAoJICBEb24ndCBhY2Nlc3MgYWxyZWFkeS1mcmVlZCBpdGVyYXRvciwgbWFrZXMgY2hlY2stdmFsZ3JpbmQgd29yayBhbmQgZml4ZXMKCSAgY3Jhc2ggb24gUFBDOyB1bnJlZiBidWZmZXIgd2UncmUgZ29pbmcgdG8gc3RlYWwgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCjIwMDktMDYtMjEgMDA6MDk6NTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgaW5pdDogRml4IGluZGVudCwgYW5kIHJlZiB0aGUgZ3N0X2J1ZmZlcl9saXN0X2l0ZW1fZ2V0X3R5cGUoKSBjbGFzcwoJICBGaXggdGhlIGNoZWNrIHRlc3RzIGJ5IHJlZmZpbmcgdGhlIEdzdEJ1ZmZlckxpc3QgY2xhc3MuIFJ1biBnc3QtaW5kZW50CgkgIHRvIG1ha2UgZ2l0IGhhcHB5IGFib3V0IHNvbWUgZXhpc3Rpbmcgc3R1ZmYKCjIwMDktMDYtMTkgMjE6MDM6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBicm9rZW4gZmxhZ3MgdG8gZmxhZyBzdHJpbmcgc2VyaWFsaXNhdGlvbgoJICBlLmcuIGNkcGFybm9pYXNyYyB3b3VsZCBzaG93IGZyYWdtZW50fGZ1bGwgZm9yIGEgZmxhZ3MgdmFsdWUgb2YgMi4KCjIwMDktMDYtMTkgMTk6MzU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBidWZmZXItbGlzdCBzdXBwb3J0CgoyMDA5LTA2LTE5IDE5OjI0OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogcmVtb3ZlIG9sZCBlbnVtIGZyb20gZG9jcwoKMjAwOS0wNi0xOSAxNDo0NTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBkZWZpbmUgX19nc3RfZGVidWdfbWluIHRvIExPR19MRVZFTF9OT05FIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoJICBKdXN0IGluIGNhc2Ugc29tZW9uZSB3aG8gY2xlYXJseSBjYW4ndCBiZSBkZXRlcnJlZCBieSBhbnkgbnVtYmVyIG9mIGxlYWRpbmcKCSAgdW5kZXJzY29yZXMgdXNlcyB0aGlzIHZlcnkgcHJpdmF0ZSBidXQgc3RpbGwgc29tZXdoYXQgZG9jdW1lbnRlZCBzeW1ib2wKCSAgZGlyZWN0bHkgaW4gdGhlaXIgY29kZSAoKmNvdWdoKiBxdGRlbXV4ICpjb3VnaCopLgoKMjAwOS0wNi0xOSAxNToyOToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBWYXJpb3VzIGNsZWFudXBzCgkgIEFkZCBuZXcgbWV0aG9kIHRvIGl0ZXJhdGUgYSBidWZmZXJsaXN0IHdpdGhvdXQgaGF2aW5nIHRvIGFsbG9jYXRlIGFuIGl0ZXJhdG9yLgoJICBBZGQgY29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIGl0ZW0gZnJvbSB0aGUgbGlzdCBiYXNlZCBvbiB0aGUgZ3JvdXAgYW5kCgkgIGluZGV4LgoJICBSZW1vdmUgcmVkdW5kYW50IF9kb19kYXRhIGNhbGxiYWNrIGFuZCBtZXRob2QuCgkgIFVwZGF0ZSB1bml0LXRlc3RzIGFuZCBhZGQgc29tZSBtb3JlIGZvciB0aGUgbmV3IG1ldGhvZHMuCgoyMDA5LTA2LTE5IDE0OjEwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogbWFrZSBndGstZG9jIGhhcHB5CgoyMDA5LTA2LTE5IDEzOjUxOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIC5wbyBmaWxlcyBhZnRlciBzdHJpbmcgY2hhbmdlcwoKMjAwOS0wNi0xOSAxMzo0ODo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGNsZWFuIHVwIHNvbWUgbW9yZSBlcnJvciBhbmQgZGVidWcgbWVzc2FnZXMKCjIwMDktMDYtMTkgMTM6NDI6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2twb29sOiBmaXggdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgaW4gY2FzZSBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMDYtMTkgMTM6NDA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGV4cG9ydCBvZiBHU1RfQ0FUX0JVRkZFUl9MSVNUIHdoZW4gLS1nc3QtZGlzYWJsZS1kZWJ1ZyBpcyB1c2VkCgkgIE1vdmUgYWxsIHRoZSBjYXRlZ29yaWVzIHRvIGV4cG9ydCB0byBvbmUgc2luZ2xlIHBsYWNlLCBzbyB3ZSBkb24ndAoJICBhY2NpZGVudGFsbHkgdXBkYXRlIG9yIGFkZCB2YXJzIGluIG9uZSBwbGFjZSBidXQgbm90IHRoZSBvdGhlci4KCjIwMDktMDYtMTggMTY6NTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiB1c2UgdGhlIHJpZ2h0IGZsdXNoaW5nIGZsYWcuCgkgIFdlIG5lZWQgdG8gdXNlIHRoZSBwYWQgcHJpdmF0ZSBmbGFnIGJlY2F1c2UgdGhlIG90aGVyIHBhZCBmbGFnIGlzIHByb3RlY3RlZCB3aXRoCgkgIHRoZSBwYWQgbG9jayBpbnN0ZWFkLgoKMjAwOS0wNi0xOCAxNjo0MTo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFByb3Blcmx5IGhhbmRsZSBmbHVzaGluZyBwYWRzLgoJICBJZiBhIHBhZCBpcyBmbHVzaGluZywgaXQgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGFzIGVpdGhlciBlb3Mgb3IKCSAgY29udGFpbmluZyBkYXRhLgoKMjAwOS0wNi0xOCAxMToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGZpeCBlcnJvciBtZXNzYWdlCgkgIFVzZXJzIHNob3VsZCBuZXZlciBzZWUgdGhlIHRlcm0gJ2ZpbGUgZGVzY3JpcHRvcicsIG11Y2ggbGVzcyBhIGZpbGUKCSAgZGVzY3JpcHRvciBudW1iZXIsIGluIGFuIGVycm9yIG1lc3NhZ2UuIFB1dCB0aGF0IGludG8gdGhlIGRlYnVnCgkgIHN0cmluZyBpbnN0ZWFkIGFuZCB1c2UgdGhlIGRlZmF1bHQgZXJyb3IgbWVzc2FnZS4KCjIwMDktMDYtMTggMTE6NDk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmZHNpbms6IGFkZCB0aGUgbmV3IGZpZWxkIGluIHRoZSBoZWFkZXIKCjIwMDktMDYtMTggMTA6NTU6MzkgKzAyMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbiBhdCBnYWlnbmFyZC5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IG1ha2UgZmRzaW5rIHNlZWthYmxlCgkgIEltcGxlbWVudCB0aGUgc2FtZSBsb2dpYyBhcyBmaWxlc2luayB0byBpbXBsZW1lbnQgc2Vla2luZy4KCSAgRml4ZXMgIzU3ODkwOAoKMjAwOS0wNi0xNyAxNjo0NToxNyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0ZWxlbWVudDogbW92ZWQgdGhlIGNsb2NrIHVucmVmIHRvIHRoZSByaWdodCBwbGFjZQoKMjAwOS0wNi0xNyAxNjoxNzoyNyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0ZWxlbWVudDogdW5yZWYgdGhlIGNsb2NrIHdoZW4gdGhlIGVsZW1lbnQgY2hhbmdlcyB0byBudWxsIHN0YXRlCgoyMDA5LTA2LTE3IDAwOjI5OjQwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgUmVwbGFjZWQgZGVwcmVjYXRlZCB3aW4zMi1jb21wYXRpYmlsaXR5IGZ1bmN0aW9uIHdpdGggdW5kZXByZWNhdGVkIG9uZS4KCSAgRml4ZXMgIzU2MDQ0Mi4KCjIwMDktMDYtMTYgMTg6MzI6MTIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBzd2FwIHRoZSBsaW5lcyBvZiBteSBwcmV2aW91cyBjb21taXQKCSAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBteSBwcmV2aW91cyBjb21taXQgdGhhdCByZWxlYXNlZCB0aGUKCSAgY2xvY2sgcHJvdmlkZXIgYW5kIGFmdGVyIHVzZWQgaXQgdG8gY3JlYXRlIHRoZSBjbG9jayBsb3N0IG1lc3NhZ2UuCgoyMDA5LTA2LTE2IDE3OjUxOjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogcmVtb3ZlIGNsb2NrIHJlZmVyZW5jZXMgd2hlbiBjbG9jayBsb3N0IGhhcHBlbnMKCSAgUmVtb3ZlIHJlZmVyZW5jZSB0byBjbG9jayBhbmQgY2xvY2sgcHJvdmlkZXIgc3RvcmVkIGluIHRoZSBiaW4KCSAgd2hlbiB0aGUgY2xvY2twcm92aWRlciBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgYmluLgoKMjAwOS0wNi0xNiAxMzozNDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBTaW5jZSB0YWcgZm9yIG5ldyBtZXRob2QKCjIwMDktMDYtMTYgMTM6MzI6MzcgKzAyMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua28uc3ViYXNpYyBhdCBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBsaXN0CgkgIEZpeGVzICM1ODU5NjAKCjIwMDktMDYtMTYgMTE6MzQ6NTQgKzAyMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua28uc3ViYXNpYyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWRkIHN1cHBvcnQgZm9yIEdzdEJ1ZmZlckxpc3RzCgkgIEZpeGVzICM1ODU4MzQKCjIwMDktMDYtMTYgMTE6MjE6NDIgKzAyMDAgIENocmlzdG9waGVyIEhhbHNlIFJvZ2VycyA8Y2hhbHNlcm9nZXJzIGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRXhwbGljaXRseSBtZW50aW9uIHJlZmNvdW50aW5nIGluIGRvY3MKCSAgRml4ZXMgIzU4NTkzOAoKMjAwOS0wNi0xNiAwODo0Mzo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0eG1sOiBmaXggKGRlKXNlcmlhbGlzYXRpb24gb2YgcHJvcGVydGllcyBvZiB0eXBlIEdzdFN0cnVjdHVyZQoJICBzb3VwaHR0cHNyYyBoYXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEdzdFN0cnVjdHVyZSwgd2hpY2ggY2F1c2VzIGFuCgkgIGFzc2VydGlvbiB3aGVuIHNlcmlhbGlzaW5nIGl0IHRvIHhtbC4gRml4ZXMgIzU4NTEzNy4KCjIwMDktMDYtMTUgMjA6MTE6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhlIGNvbXBpbGVyIHN1Z2dlc3RzIHRvIGFkZCBzb21lICgpIHRvIGluZGljYXRlIGlmIHRoZSAmJiBvciB0aGUgfHwgdGFrZXMKCSAgcHJpb3JpdHksIHNvIHJlZmxvdyBjb2RlIGEgYml0IHNvIHdlIGRvbid0IGhhdmUgdG8gYWRkIHlldCBhbm90aGVyIGxheWVyCgkgIG9mICgpLiBIb3BlZnVsbHkgdGhpcyB3YXMgdGhlIGludGVuZGVkIG1lYW5pbmcgb2YgdGhlIGNvZGUuCgoyMDA5LTA2LTExIDE1OjAwOjUyICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRvbid0IGxvY2sgd2hlbiBtaW4tdGhyZXNob2xkIGFuZCBtYXgtc2l6ZSBjb25mbGljdC4KCSAgV2hlbiBtaW4tdGhyZXNob2xkIGlzIHNldCBvbiBhIHF1ZXVlLCBpdCBpcyBwb3NzaWJsZSB0aGF0IG9uZSBvZgoJICB0aGUgbWluaW1hIHJlbWFpbnMgdW5zYXRpc2ZpZWQgd2hpbGUgb25lIG9mIHRoZSBtYXhpbWEgaXMgYWxyZWFkeQoJICByZWFjaGVkLiBUaGVyZWZvcmUsIGFsd2F5cyBjb25zaWRlciB0aGUgcXVldWUgbm9uLWVtcHR5IGlmIGl0IGlzIGZ1bGwuCgkgIEZpeGVzICM1ODU0MzMuCgoyMDA5LTA2LTE1IDE4OjQ0OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIG5leHQgc3RhdGUgY29ycmVjdGx5CgkgIFdoZW4gdGhlIGNvbnRpbnVlIGZ1bmN0aW9uIGlzIHNjaGVkdWxlZCwgbWFrZSBzdXJlIHdlIHNldCB0aGUgbmV4dCBzdGF0ZSBpbnN0ZWFkCgkgIG9mIHRoZSBwZW5kaW5nIHN0YXRlLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIGZpeGVzICM1ODU1NjkKCjIwMDktMDYtMTUgMTg6NDQ6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBmaXggLmggaW5kZW50YXRpb24KCjIwMDktMDYtMTUgMTg6NDM6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAwOS0wNi0xNSAxODo0Mjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZGVidWc6IGFkZCBzb21lIG1vcmUgZGVidWcgdG8gZWxlbWVudCBhbmQgcGFkcwoKMjAwOS0wNi0xNCAxNjo1NjozMiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBmaXggaW5jbHVkZSBvcmRlciB0byBnZXQgY29uZmlnLmggYmVmb3JlIF9taW5ndy5oCgkgIGNvbmZpZy5oIG11c3QgYWx3YXlzIGJlIGluY2x1ZGVkIGJlZm9yZSBhbnkgb3RoZXIgaW5jbHVkZXMsIGVpdGhlcgoJICBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHZpYSBnc3RfcHJpdmF0ZS5oLiBGaXhlcyAjNTg1NzMzLgoKMjAwOS0wNi0xNCAxNjoxNzo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgZnVuY3Rpb25zIHRvIGNyZWF0ZSBhIG5ldyB0YWdsaXN0IHdpdGggdGFncyBpbiBvbmUgZ28KCSAgQWRkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBuZXcgdGFnIGxpc3QgYW5kIHNldCB0YWdzIGluIG9uZSBnbywgd2hpY2gKCSAgaXMgbmljZSBmb3IgdXNlIGluIGNvbWJpbmF0aW9uIHdpdGggZnVuY3Rpb25zIHRoYXQgdGFrZSBvd25lcnNoaXAgb2YKCSAgdGhlIHRhZ2xpc3QsIHN1Y2ggYXMgZ3N0X2V2ZW50X25ld190YWcoKSBvciBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkuCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9uZXdfZnVsbCgpCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9uZXdfZnVsbF92YWxpc3QoKQoKMjAwOS0wNi0xMyAxNDo1NTo0MyArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIGdpdC12ZXJzaW9uLnNoOiBtYWtlIGV4ZWN1dGFibGUKCjIwMDktMDYtMTMgMTQ6NTM6MjQgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgVXBkYXRlIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaCB0byBnaXQtdXBkYXRlLnNoOyBhZGQgZ2l0LXZlcnNpb24uc2gKCSAgYWRkIHNjcmlwdCB0byBnZXQgZ2l0IHZlcnNpb25zCgkgIGZpcnN0IHVwZGF0ZSBhbGwsIHRoZW4gYnVpbGQKCSAgYWRkIGdub25saW4gdG9vCgkgIHNwZWNpZnkgd2hlcmUgdG8gcHVsbCBmcm9tCgkgIGFsc28gdXBkYXRlIHN1Ym1vZHVsZQoJICByZW5hbWUgYW5kIGNoYW5nZSBjdnMtdXBkYXRlIHNjcmlwdCB0byBnaXQtdXBkYXRlCgoyMDA5LTA2LTEyIDE4OjM2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoJICBBZGQgYSBwYXR0ZXJuIHNjYW4gZnVuY3Rpb24gc2ltaWxhciB0byB0aGUgb25lIHJlY2VudGx5IGFkZGVkIHRvCgkgIEdzdEFkYXB0ZXIsIGFuZCBhIHVuaXQgdGVzdCAoYmFzZWQgb24gdGhlIGFkYXB0ZXIgb25lKS4KCSAgRml4ZXMgIzU4NTU5Mi4KCSAgQVBJOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgoyMDA5LTA0LTE3IDE3OjU5OjM4ICswMzAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAbm9raWEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCByZW1haW5pbmcgLS1kaXNhYmxlLWdzdC1kZWJ1ZyBBQkkgYnJlYWthZ2UuCgkgIEZpeGVzICM1NzkxNzcuCgoyMDA5LTA2LTEyIDE3OjUxOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL3Npbms6IHR1cm4gdGhlIGJ1cyBtZXNzYWdlcyBpbnRvIGdfd2FybmluZwoJICBJdHMgYSBwcm9ncmFtbWluZyBlcnJvci4KCjIwMDktMDYtMTIgMTU6NDg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggZG9jcwoKMjAwOS0wNi0xMiAxMzoxODoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHN0ZXBwaW5nOiBtb3JlIHN0ZXBwaW5nIGltcHJvdmVtZW50cwoJICBVcGRhdGUgZGVzaWduIGRvYyB3aXRoIHN0ZXAtc3RhcnQgZG9jcy4KCSAgQWRkIGVvcyBmaWVsZCB0byBzdGVwIGRvbmUgbWVzc2FnZQoJICB3aGVuIHN0ZXBwaW5nIGluIHJldmVyc2UsIHVwZGF0ZSB0aGUgc2VnbWVudCB0aW1lIGZpZWxkLgoJICBGbHVzaCBvdXQgdGhlIGN1cnJlbnQgc3RlcCB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCjIwMDktMDYtMTAgMTU6NTE6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwb3N0IHN0ZXAtc3RhcnQKCSAgd2hlbiB3ZSBjbGlwLCBhbHNvIHN0b3AgdGhlIHN0ZXBwaW5nLgoJICBEb24ndCBkbyBRb1Mgd2hlbiBzdGVwcGluZwoJICBQb3N0IHN0ZXAtc3RhcnQgd2hlbiBxdWV1ZWluZyBhbmQgYWN0aXZhdGluZyB0aGUgc3RlcC4KCjIwMDktMDYtMTAgMTU6NDg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgc3RlcC1zdGFydCBtZXNzYWdlCgoyMDA5LTA2LTExIDE0OjE4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogbW9yZSBlZmZpY2llbnQgdmFsdWUgdGFibGUgbG9va3VwIGZvciBmdW5kYW1lbnRhbCB0eXBlcwoJICBTbWFsbCBtaWNyby1vcHRpbWlzYXRpb246IGxvb2sgdXAgdmFsdWUgdGFibGUgZm9yIGZ1bmRhbWVudGFsIHR5cGVzCgkgIHZpYSBhbiBhcnJheSBkZWRpY2F0ZWQgdG8gZnVuZGFtZW50YWwgdHlwZXMgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoCgkgIGEgaGFzaCB0YWJsZSBsb29rdXAuIFNpbmNlIHRoZXJlIGNhbiBiZSBvbmx5IDI1NSBmdW5kYW1lbnRhbCB0eXBlcywKCSAgdGhlIHRhYmxlIHNpemUvZWZmaWNpZW5jeSB0cmFkZS1vZmYgc2hvdWxkIGJlIGFjY2VwdGFibGUsIGVzcC4gc2luY2UKCSAgdGhlIG1vc3QgY29tbW9ubHktdXNlZCB0eXBlcyBhcmUgYWxsIGZ1bmRhbWVudGFsIHR5cGVzLiBUaGUgc2l6ZSBvZgoJICB0aGUgdGFibGUgY291bGQgcHJvYmFibHkgYmUgbWluaW1pc2VkIGZ1cnRoZXIgaWYgbmVlZGVkIGJ5IGFsbG9jYXRpbmcKCSAgdGhlIHRhYmxlIGR5bmFtaWNhbGx5IGFuZCBvbmx5IGV4cGFuZGluZyBpdCBvbiBkZW1hbmQuCgoyMDA5LTA2LTExIDEzOjE2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZG9uJ3QgcHV0IEdUeXBlcyBpbnRvIGludCB2YXJpYWJsZXMKCSAgR1R5cGVzIGFyZSBub3QgaW50cyBhbmQgYXMgc3VjaCBhcmUgbm90IGd1YXJhbnRlZWQgdG8gZml0IGludG8gYW4gaW50CgkgICh3aXRoIHRoZSBleGNlcHRpb24gb2YgZnVuZGFtZW50YWwgdHlwZXMpLCBzbyB3ZSByZWFsbHkgc2hvdWxkbid0IHB1dAoJICB0aGVtIGludG8gaW50IHZhcmlhYmxlcy4gRXZlbiBpZiBhIHJhdGhlciB1bmxpa2VseSBvYnNjdXJlIGNvcm5lciBjYXNlLAoJICB0aGlzIGhhcyBhY3R1YWxseSBiZWVuIGEgcHJvYmxlbSBhdCBzb21lIHBvaW50IGluIHRoZSBwYXN0LCBzZWUgY29tbWl0CgkgIDk5ZjE2NjU1ZjRjZmJjOGUwNmI1OTcyNDE3YmExMTI3OTA4M2E2NGUuCgoyMDA5LTA2LTExIDE3OjAzOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL3Npbms6IGltcHJvdmUgd2FybmluZyBtZXNzYWdlIGEgYml0ICh3cm9uZyBzdGF0ZSkKCSAgVW5pZnkgYW5kIHR1cm4gdGhvc2UgaW50byBlbGVtZW50IHdhcm5pbmdzLgoKMjAwOS0wNi0xMSAxNDowMDowOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBGaXggYSBjb21waWxlciB3YXJuaW5nCgkgIFVzZSAoZ3BvaW50ZXIpIGluc3RlYWQgb2YgKGdwb2ludGVyICopIHRvIGZpeCBhIHN0cmljdC1hbGlhc2luZyBidWlsZCB3YXJuaW5nLgoKMjAwOS0wNi0xMSAxMzoxNjoyOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkgIGRvY3M6IEJ1bXAgY29tbW9uLCBmaXggdGhlIHVwbG9hZCBsb2dpYyBpbmNsdXNpb24KCSAgVXBkYXRlIHRoZSBjb21tb24gc3VibW9kdWxlLCBhbmQgZml4IHRoZSBkb2NzIHVwbG9hZCBydWxlcyB0byBpbmNsdWRlCgkgIHRoZSByaWdodCBtYWtlZmlsZSBzbmlwcGV0IGZyb20gY29tbW9uLgoKMjAwOS0wNi0wOSAxMToxMzowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVzZSB0aGUgc2xpY2UgYWxsb2NhdG9yIGZvciBNdWx0aVF1ZXVlSXRlbXMKCjIwMDktMDYtMTAgMjA6Mjk6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBNYWtlIHN1cmUgY29uZmlnLmggaXMgb25seSBpbmNsdWRlZCBvbmNlCgkgIEZpeGVzIGJ1aWxkIHByb2JsZW0gb24gd2luMzIgKCM1ODUwNzUpLgoKMjAwOS0wNi0xMCAxODowNTo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCBzaW5jZTogdGFncyBmb3IgdGhlIGFwaSBkb2NzLgoJICBUaGUgcHJldmlvdXMgcmVsYXRlZCBjb21taXQgYWRkZWQgbmV3IEFQSS4KCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9nZXRfY2FjaGVfZGF0YSwgZ3N0X3BsdWdpbl9zZXRfY2FjaGVfZGF0YQoKMjAwOS0wNi0xMCAxMjowMjoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGZpeCBsZWFrcyBpbnRyb2R1Y2VkIGJ5IGZpeCBmb3IgIzU4NDM4OQoKMjAwOS0wNi0wOCAyMzo0MzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV8qX2dldCooKSB2YXJhcmcgZnVuY3Rpb25zCgkgIEFkZCBhIGJ1bmNoIG9mIHZhcmFyZyBnZXR0ZXIgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGNvbXBsZW1lbnQKCSAgdGhlIHZhcmFyZyBzZXR0ZXIgZnVuY3Rpb25zLCBhbmQgYSBiYXNpYyB1bml0IHRlc3QuIEZpeGVzICM1MzQyMDguCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF92YWxpc3QoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0X3ZhbGlzdCgpCgoyMDA5LTA2LTA5IDAwOjE2OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGEgZmV3IHNtYWxsIEFQSSBkb2MgZml4ZXMgYW5kIGFkZGl0aW9ucwoKMjAwOS0wNi0wOCAxOTozMzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBsb2dnaW5nOiB3aGVuIGxvZ2dpbmcgdGFnbGlzdHMsIHNob3J0ZW4gbG9uZyBidWZmZXIgZHVtcHMKCSAgRG9uJ3QgZHVtcCBodW5kcmVkcyBvZiBrQiBvZiBoZXhkYXRhIGludG8gZGVidWcgbG9ncyB3aGVuIGNvbnZlcnRpbmcKCSAgdGFnbGlzdHMgY29udGFpbmluZyBodWdlIGltYWdlcyBpbnRvIGEgc3RyaW5nLiBJbnN0ZWFkLCBzaG9ydGVuIHRoZQoJICBidWZmZXIgZGF0YSBzbyB0aGF0IHRoZSBzdHJpbmcgaXMgc3RpbGwgcmVhZGFibGUgYW5kIGRlYnVnIGxvZ3MKCSAgc3RheSBtYW5hZ2FibGUuIENhbiBiZSB0dXJuZWQgb2ZmIHdpdGggR1NUX0RFQlVHX09QVElPTlM9ZnVsbC10YWdzLgoJICBTZWUgIzU4NDk4OC4KCjIwMDktMDYtMDkgMTM6MDc6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2hlY2sgYnl0ZSByYW5nZSBldmVuIHdoZW4gd2UgaGF2ZSB0aW1lc3RhbXBzCgkgIEFzIGZvdW5kIGJ5IHRoYXl0YW4gb24gSVJDLgoJICBBbHNvIGNoZWNrIHRoZSBieXRlIGxpbWl0LCBldmVuIGlmIHdlIGhhdmUgdGltZXN0YW1wcyBiZWNhdXNlIHRoZXJlIG1pZ2h0IGp1c3QKCSAgbm90IGJlIGEgdGltZSBsaW1pdC4KCjIwMDktMDYtMDkgMTI6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1cGRhdGUgc2VnbWVudCBzdGFydC9zdG9wIGZvciBjbGlwcGluZwoJICBXaGVuIHdlIHN0YXJ0IHN0ZXBwaW5nLCBzdG9yZSB0aGUgc3RhcnQvc3RvcCB2YWx1ZXMgb2YgdGhlIHNlZ21lbnQgYmVmb3JlIHdlCgkgIGluc3RhbGwgbmV3IHN0YXJ0L3N0b3AgdmFsdWVzIGZvciBjbGlwcGluZyBpbiBub24tZmx1c2hpbmcgc3RlcHMuCgkgIGZvciBub24tZmx1c2hpbmcgc3RlcHMsIHVwZGF0ZSB0aGUgZWxlbWVudCBzdGFydCB0aW1lLiBGb3IgZmx1c2hpbmcgc3RlcHMsIGl0CgkgIGRvZXMgbm90IGNoYW5nZSBiZWNhdXNlIHJ1bm5pbmdfdGltZSBkb2VzIG5vdCBhZHZhbmNlCgkgIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcGVyZm9ybSB0aGUgc3RvcF9zdGVwcGluZyBvcGVyYXRpb25zIGV2ZW4gd2hlbiB3ZSBkcm9wCgkgIGZyYW1lcy4KCjIwMDktMDYtMDkgMTA6MjU6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkbyBwcm9wZXIgY2xpcHBpbmcgaW4gc3RlcHBpbmcKCSAgVXBkYXRlIHRoZSBzdG9wIHBvc2l0aW9uIG9mIHRoZSBzZWdtZW50IHNvIHRoYXQgd2UgY2xpcCBjb3JyZWN0bHkuCgkgIEFmdGVyIGNsaXBwaW5nIGluIG5vbi1mbHVzaGluZyBtb2RlLCByZXJlbmRlciB0aGUgcmVtYWluZGVyIG9mIHRoZSBidWZmZXIuCgoyMDA5LTA2LTA5IDEwOjIzOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogbWFrZSBjb252ZXJzaW9uIG1vcmUgcHJlY2lzZQoJICBNYWtlIHN1cmUgdGhlIGNvbnZlcnNpb24gZnJvbSBhbmQgdGhlIGNvbnZlcnNpb24gdG8gZ2l2ZSB0aGUgc2FtZSByZXN1bHRzLgoKMjAwOS0wNi0wOCAxNTozOTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGdzdF91dGlsX3VpbnQ2NF9zY2FsZSooKSBtaWNyby1vcHRpbWlzYXRpb25zCgkgIFNwcmlua2xlIEdfTElLRUxZL0dfVU5MSUtFTFk7IGFkZCBpbmxpbmVkIF9zY2FsZV9pbnRfdW5jaGVja2VkKCkKCSAgc28gd2UgZG9uJ3QgZG8gc29tZSBjaGVja3MgdHdpY2Ugd2hlbiBjYWxsaW5nIGl0IGZyb20gX3NjYWxlKCkuCgoyMDA5LTA2LTA3IDIyOjQ5OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgUmVtb3ZlIGRvdWJsZSBzZW1pY29sb25zIGF0IGVuZCBvZiBsaW5lCgoyMDA5LTA2LTA4IDE3OjM5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBzdGVwcGluZzogZG8gZmx1c2hpbmcgc3RlcHMgY29ycmVjdGx5CgkgIE5vdGUgaW4gdGhlIGRvY3MgdGhhdCBhIGZsdXNoaW5nIHN0ZXAgaW4gUExBWUlORyBicmluZ3MgdGhlIHBpcGVsaW5lIHRvIHRoZSBsb3N0CgkgIHN0YXRlIGFuZCBza2lwcyB0aGUgZGF0YSBiZWZvcmUgcHJlcm9sbGluZyBhZ2Fpbi4KCSAgSW1wbGVtZW50IHRoZSBmbHVzaGluZyBzdGVwIGNvcnJlY3RseSBieSBpbnZhbGlkYXRpbmcgdGhlIGN1cnJlbnQgc3RlcAoJICBvcGVyYXRpb24sIHdoaWNoIHdvdWxkIGFjdGl2YXRlIHRoZSBuZXcgc3RlcCBvcGVyYXRpb24uCgoyMDA5LTA2LTA4IDE2OjE2OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBDaGFuZ2UgYXdrd2FyZCB3b3JkaW5nIGluIGEgdHJhbnNsYXRlYWJsZSBtZXNzYWdlLgoKMjAwOS0wNi0wOCAxNjoyNzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBub24tZmx1c2hpbmcgc3RlcHMKCSAgQWRkIHN1cHBvcnQgZm9yIG5vbi1mbHVzaGluZyBzdGVwcyBhbmQgd2l0aCBkaWZmZXJlbnQgcmF0ZXMuCgkgIENsZWFyIHN0ZXAgaW5mbyB3aGVuIGZsdXNoaW5nCgoyMDA5LTA2LTA3IDIzOjQ2OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBhbGxvdyBwbHVnaW5zIHRvIGNhY2hlIGV4dHJhIGRhdGEgaW4gcmVnaXN0cnkuIEZpeGVzICM1NzAyMzMKCSAgQWRkIGEgR3N0U3RydWN0dXJlIHRvIEdzdFBsdWdpbi4gUGx1Z2lucyBjYW4gcmV0aWV2ZSBpdCBpbiBwbHVnaW5faW5pdCBhbmQKCSAgYWNjZXNzIHRoZSBjYWNoZWQgaW5mbyBvciBidWlsZCB0aGUgY2FjaGUgYW5kIHN0b3JlIGl0IHRoZXJlLgoKMjAwOS0wNi0wNyAyMjowOToxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBkb24ndCByZWNyZWF0ZSBmZWF0dXJlcyBvbiBmaXJzdCB1c2UuIEZpeGVzICM1ODQzODkKCSAgVGhlIGZpcnN0IHRpbWUgb25lIGNhbGxzIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpLCBnc3QgcmVjcmVhdGVzIHRoZSBwbHVnaW4KCSAgZmVhdHVyZSBhbmQgdGhlIGVsZW1lbnQgZmFjdG9yeS4gQXMgYSBzaWRlIGVmZmVjdCB3ZSByZWYgdGhlIGNsYXNzIHRvIGZpbGwKCSAgaW4gZGV0YWlsIHdlIGFscmVhZHkgaGF2ZSBmaWxsZWQgZnJvbSB0aGUgcmVnaXN0cnkgY2FjaGUuIFRoaXMgcGF0Y2ggY2hhbmdlcwoJICB0aGUgYmVoYXZpb3VyIHRvIGp1c3QgdXBkYXRlIHRoZSBleGlzdGluZyBlbnRyaWVzLiBUaGUgZmFjdG9yeSBpcyBub3cgYXR0YWNoZWQKCSAgdG8gdGhlIHR5cGUgYW5kIHNldCBpbiBnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQoKS4KCjIwMDktMDYtMDcgMjI6MjA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICB0ZXN0czogY29uZGl0aW9uYWxseSBjb21waWxlIHRoZSBzdHJlYW1zIGV4YW1wbGUKCSAgRGV0ZWN0IHB0aHJlYWRzLmggaW4gY29uZmlndXJlLmFjCgkgIE9ubHkgY29tcGlsZSB0aGUgc3RyZWFtcyBleGFtcGxlIHdoZW4gcHRocmVhZHMuaCBpcyBwcmVzZW50LgoJICBGaXhlcyAjNTg1MDM5CgoyMDA5LTA2LTA3IDE3OjMyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZW1vdmUgdHlwZSBjaGVja3MgYW5kIHJlZHVuZGFudCBjb2RlCgoyMDA5LTA2LTA3IDE1OjQzOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggZnJhY3Rpb24gcmFuZ2UgbGNvcHkgZnVuY3Rpb24KCSAgVGhpcyBmdW5jdGlvbiBzZWVtcyB0byBiZSBicm9rZW4gZm9yIDMuNSB5ZWFycy4gTHVja2lseSBub2JvZHkgZXZlciB0cmllZCB0bwoJICBtYWtlIGEgZnJhY3Rpb24gcmFuZ2Ugb2JqZWN0IHByb3BlcnR5Li4uCgoyMDA5LTA2LTA3IDE1OjM1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMKCSAgQWRkIGEgR1R5cGUtPkdzdFZhbHVlVGFibGUgaGFzaHRhYmxlIG1hcHBpbmcuCgkgIEF2b2lkIF9nZXRfdHlwZSgpIG11bHRpcGxlIHRpbWVzIHdoZW4gd2UgY2FuLgoJICBVc2UgR1NsaWNlIGZvciBmcmFjdGlvbiByYW5nZSBkeW5hbWljIG1lbW9yeQoJICBBZGQgR19MSUtFTFkgd2hlbiB3ZSBjYW4KCSAgSW1wcm92ZSBsb29rdXAgb2YgdGhlIHZhbHVlIHRhYmxlIHVzaW5nIHRoZSBoYXNodGFibGUKCjIwMDktMDYtMDcgMTQ6MzA6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbm8gbmVlZCB0byBjbGVhciBvbiBpbml0CgkgIFdlIGRvbid0IG5lZWQgdG8gY2xlYXIgdGhlIGZpZWxkIG9uIGluaXQgYmVjYXVzZSB3ZSB3aWxsIGRvIHRoYXQgYWdhaW4gYmVmb3JlIHdlCgkgIGFyZSBnb2luZyB0byB1c2UgdGhlIGZpZWxkIGxhdGVyLgoKMjAwOS0wNi0wNSAyMDo1NzowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0c3RydWN0dXJlOiBGaXggc29tZSBtZW1vcnkgbGVha3MuIFNwcmlua2xlIEdfTElLRUxZL1VOTElLRUxZCgkgIEZpeCBzb21lIG1lbW9yeSBsZWFrcyBzaG93biBieSB0aGUgbmV3IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIHVuaXQKCSAgdGVzdC4gU3BsaXQgdGhlIGdzdF9zdHJpbmdfd3JhcCBmdW5jdGlvbiBpbiBnc3R2YWx1ZS5jIGludG8gY29tcG9uZW50cyBhbmQKCSAgdXNlIHRoZW0gdG8gbWFrZSBnc3Rfc3RyaW5nX3Rha2VfYW5kX3dyYXAsIHdoaWNoIHRha2VzIG93bmVyc2hpcCBvZiB0aGUKCSAgc3RyaW5nLCBhdm9pZGluZyBhIHN0cmR1cC4KCSAgQWRkIHNvbWUgR19MSUtFTFkvVU5MSUtFTFksIGFuZCBjbGVhbiB1cCBzb21lIGxlYWtzIGluIGVycm9yIHBhdGhzLgoKMjAwOS0wNi0wNSAxMTozNzoyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVwbHkgdG8gUVVFUllfU0VFS0lORyB3aXRoIG9yaWdpbmFsIGZvcm1hdC4gIEZpeGVzICM1ODQ4MzguCgoyMDA5LTA2LTA0IDE5OjQ0OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgY29uZmlndXJlOiByZW1vdmUgQUNfQ19JTkxJTkUgYW5kIHVwZGF0ZSB3aW4zMiBmaWxlcyB0byBnaXQKCSAgUmVtb3ZlIEFDX0NfSU5MSU5FIGNoZWNrLCBzbyB3ZSBkb24ndCBlbmQgdXAgd2l0aCBhbiAjdW5kZWYgaW5saW5lIGluCgkgIGNvbmZpZy5oLCB3aGljaCBjYXVzZXMgcHJvYmxlbXMgd2l0aCBzb21lIHZlcnNpb25zIG9mIE1TQ1YgYXBwYXJlbnRseS4KCSAgR0xpYiBkZWZpbmVzIGlubGluZSBmb3IgdXMgaW4gYSBzdWl0YWJsZSB3YXkgYWxyZWFkeSBhbnl3YXkuCgkgIEZpeGVzICM1ODQ4MzUuCgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBhbHNvIHVwZGF0ZSB0aGUgb3RoZXIgd2luMzIgZmlsZXMgdG8gZ2l0IChidW1wCgkgIHZlcnNpb24sIGFkZCBuZXcgZGVmaW5lcyBhbmQgZW51bXMpLgoKMjAwOS0wNi0wNCAxODoyNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYXZvaWQgZXhjZXNzaXZlIG5vdGlmeSBmb3IgY2FwcwoJICBBdm9pZCBhbiBvYmplY3QgcHJvcGVydHkgbm90aWZ5IGlmIHRoZSBjYXBzIG9uIHRoZSBvdGhlciBwYWQgd2VyZSBhbHJlYWR5CgkgIHNldCAoYW5kIHRodXMgbm90aWZpZWQpLgoKMjAwOS0wNi0wNCAxNzoyNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBjbGlwcGVkIHN0YXJ0L3N0b3AgYWZ0ZXIgc3RlcAoJICBVc2UgdGhlIHNlZ21lbnQgaGVscGVycyB0byBnZXQgYSBtb3JlIGFjY3VyYXRlIGNsaXBwZWQgc3RhcnQvc3RvcCBwb3NpdGlvbiBhZnRlcgoJICBhIHN0ZXBwaW5nIG9wZXJhdGlvbiBlbmRlZC4KCjIwMDktMDYtMDQgMTI6MzQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbW9yZSBjb3JyZWN0IHNlZ21lbnQgbWV0aG9kcwoJICBVc2UgdGhlIG1vcmUgY29ycmVjdCBuZXcgc2VnbWVudCBtZXRob2RzIGZvciB1cGRhdGluZyB0aGUgc2VnbWVudCBiZWZvcmUgYW5kCgkgIGFmdGVyIGEgc3RlcC4KCjIwMDktMDYtMDQgMTI6NDg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGdzdF9zZWdtZW50X3NldF9ydW5uaW5nX3RpbWUKCSAgQWRkZWQgbmV3IG1ldGhvZCBmb3IgY2xvc2luZyB0aGUgc2VnbWVudCB0byBhIHNwZWNpZmljIHJ1bm5pbmcgdGltZS4KCSAgQVBJOiBHc3RTZWdtZW50Ojpnc3Rfc2VnbWVudF9zZXRfcnVubmluZ190aW1lKCkKCjIwMDktMDYtMDQgMDA6Mzc6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGZvciBzdHJpbmcgY2hhbmdlcwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBwZW9wbGUgd2hvIGdldCB0aGVtc2VsdmVzIGEgZnJlc2ggY2hlY2tvdXQKCSAgZG9uJ3QgaW1tZWRpYXRlbHkgaGF2ZSBjaGFuZ2VkICpwbyBmaWxlcyBhZnRlciBydW5uaW5nIG1ha2UsIHdoaWNoCgkgIHdvdWxkIGNhdXNlIGEgYml0IG9mIGhhc3NsZSBuZXh0IHRpbWUgdGhlIGZpbGVzIGFyZSB1cGRhdGVkLiBCZXR0ZXIKCSAgdG8ga2VlcCB0aGVtIHVwLXRvLWRhdGUgd2hlbiBzdHJpbmdzIGNoYW5nZS4KCjIwMDktMDYtMDQgMDA6NTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGVycm9yczogcmV3b3JkIHN0YXRlIGNoYW5nZSBmYWlsZWQgZXJyb3IgbWVzc2FnZSBhbmQgcmVtb3ZlIGJ1Z3ppbGxhIGxpbmsKCSAgUmV3b3JkIHRoaXMgbWVzc2FnZSBhIGJpdCB0byBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpdCBtZWFucywgbmFtZWx5IHRoYXQKCSAgdGhlIHN0YXRlIGNoYW5nZSBtYXkgaGF2ZSBmYWlsZWQgZm9yIGdvb2QgcmVhc29ucywgYnV0IHRoYXQgdGhlIGVsZW1lbnQKCSAganVzdCBmYWlsZWQgdG8gcG9zdCBhIHByb3BlciBlcnJvciBvbiB0aGUgYnVzLiBUaGlzIGlzIG5vdCBhbiBpbnRlcm5hbAoJICBHU3RyZWFtZXIgYnVnLCBhbmQgd2UgcmVhbGx5IGRvbid0IG5lZWQgcGVvcGxlIHRvIGZsb29kIGJ1Z3ppbGxhIHdpdGgKCSAgYnVnIHJlcG9ydHMgaWYgb25lIHN1Y2ggcGx1Z2luIGJ1ZyBldmVyIG1ha2VzIGl0IGludG8gdGhlIHdpbGQuCgoyMDA5LTA2LTA0IDAwOjI5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVmZXIgdG8gZWxlbWVudCwgcGFkLCBvciBvYmplY3QgaW4gc29tZSBtZXNzYWdlIHN0cmluZ3MKCSAgUmV2aXNpdCB0aGVzZSBzdHJpbmdzIG5vdyB0aGF0IHRoZSBjaGFuZ2UgcmVnYXJkaW5nIHRoZSBtZXNzYWdlIHNvdXJjZQoJICBvYmplY3QgaW4gZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKCkgZ290IHJldmVydGVkLiBUcnkgdG8gcmVmZXIKCSAgZXhwbGljaXRseSB0byB3aGF0IGtpbmQgb2YgZWxlbWVudCBpdCBpcyAoZWxlbWVudCwgcGFkLCBldGMuKSBpbiBzb21lCgkgIGNhc2VzLCB3aGljaCBpcyBuaWNlciB0aGFuIGhhdmluZyB0byBkZWR1Y2UgdGhpcyBpbmZvIChhbmQgd2UgY2FuCgkgIHJlLXVzZSB0aGUgYWxyZWFkeSBleGlzdGluZyB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHRoZSBtb3N0IGNvbW1vbgoJICBjYXNlKS4gSXQgYWxzbyBtYWtlcyBmb3IgYmV0dGVyIGV4YW1wbGUgY29kZSwgc2luY2UgaXQncyBjbGVhciBub3cKCSAgdGhhdCB0aGUgbWVzc2FnZSBzb3VyY2Ugb2JqZWN0IGRvZXNuJ3QgaGF2ZSB0byBiZSBhbiBlbGVtZW50LgoKMjAwOS0wNi0wMyAyMToxMDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBUEk6IGFkZCBHU1RfTUVTU0FHRV9TUkNfTkFNRSBtYWNybwoJICBBZGQgR1NUX01FU1NBR0VfU1JDX05BTUUgbWFjcm8gdGhhdCBhbHdheXMgcmV0dXJucyBhIG5vbi1OVUxMIHN0cmluZy4KCSAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIGxvZ2dpbmcgcHVycG9zZXMuCgoyMDA5LTA2LTAzIDE5OjA2OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBtZXRob2QgZm9yIGNvbnZlcnRpbmcgdG8gcG9zaXRpb24KCSAgQWRkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uKCkgdGhhdCBjb252ZXJ0cyBhIHJ1bm5pbmdfdGltZSB0byBhIHBvc2l0aW9uIGluIHRoZQoJICBzZWdtZW50LiBBIGZhdWx0eSB2YXJpYW50IG9mIHRoaXMgZnVuY3Rpb24gaXMgY3VycmVudGx5IHVzZWQgaW4gaW5wdXRzZWxlY3RvcgoJICBidXQgd2UnbGwgbmVlZCBpdCBmb3IgZnJhbWUgc3RlcHBpbmcgdG9vLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uKCkKCjIwMDktMDYtMDMgMTU6Mzk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOyBoYW5kbGUgRU9TIGNvcnJlY3RseS4KCSAgSGFuZGxlIEVPUyBhbmQgYnVmZmVycyB3aXRob3V0IGEgdGltZXN0YW1wIGdyYWNlZnVsbHkuCgkgIFJlbW92ZSBhIHdhcm5pbmcgdGhhdCBpcyBub3Qgc28gbXVjaCBhIHdhcm5pbmcgbm93IGFueW1vcmUuCgoyMDA5LTA2LTAzIDA5OjQ1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgImdvIGJhY2sgdG8gYWxsb3dpbmcgZ2V0dGV4dCAwLjExLjUsIGJ1dCBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMWMwOWQ3MzhjZTdmNDdiZmY5ZDI5Mjk5NmU5NDg5YzI3NWU1NWExLgoJICBSZXZlcnRpbmcgdGhpcywgc2luY2UgaXQgYnJlYWtzIGF1dG9nZW4uc2ggZm9yIG1lIG9uIGRlYmlhbiBzaWQuCgkgIEZhaWx1cmUgaXM6ICJsaWJ0b29sIDIuMiByZXF1aXJlcyBhdXRvcG9pbnQgMC4xNyBvciBoaWdoZXIiIGV2ZW4gdGhvdWdoCgkgIDAuMTcgd2FzIGZvdW5kLgoKMjAwOS0wNi0wMyAwOTo0MToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJICBSZXZlcnQgIm9ubHkgdXBkYXRlIHN1Ym1vZHVsZSB3aGVuIGl0IGlzIG5vdCBvbiBhIHNwZWNpZmljIGJyYW5jaCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5M2I4MzMzM2FhZDUxOWM1NTU1MTU2NTc2ZjBiYWEzYmU3YjI2M2YzLgoJICBSZXZlcnRpbmcgc2luY2UgdGhpcyBmYWlscyBvbiBhIGZyZXNoIGNoZWNrb3V0LiBBbHNvLCB3ZSBzaG91bGRuJ3QKCSAgZGVwZW5kIG9uIHBvc3NpYmx5IHRyYW5zbGF0ZWQgc3RyaW5ncy4KCjIwMDktMDYtMDMgMDE6NTY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBkb2NzOiBmaXggdXAgcmVmZXJlbmNlIHRvIGdzdC1sYXVuY2gtMC44CgkgIEFsc28gbWVudGlvbiBkZWNvZGViaW4yLCB1cmlkZWNvZGViaW4sIGFuZCBwbGF5YmluMgoKMjAwOS0wNi0wMyAxMDozOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZvcmdldCBwcmV2aW91cyB0aW1lcyB3aGVuIHN0ZXBwaW5nCgkgIFdoZW4gd2Ugc3RhcnQgYSBmbHVzaGluZyBzdGVwIG9wZXJhdGlvbiwgZm9yZ2V0IGFib3V0IHRoZSBwcmV2aW91cyBzdHJlYW0gdGltZQoJICBzbyB0aGF0IHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgd29ya3MgY29ycmVjdGx5LgoKMjAwOS0wNi0wMyAwMToyNToyNiArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgZ28gYmFjayB0byBhbGxvd2luZyBnZXR0ZXh0IDAuMTEuNSwgYnV0IGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yCgoyMDA5LTA2LTAzIDAxOjAxOjU3ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgb25seSB1cGRhdGUgc3VibW9kdWxlIHdoZW4gaXQgaXMgbm90IG9uIGEgc3BlY2lmaWMgYnJhbmNoCgoyMDA5LTA2LTAyIDEzOjQ1OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IFNldCBwaXBlbGluZSB0byBQQVVTRUQgYmVmb3JlIHdhaXRpbmcgZm9yIG1haW4gbG9vcCBpZGxlCgkgIFdoZW4gaXQgaXMgc2h1dHRpbmcgZG93biBhIHBpcGVsaW5lIGFmdGVyIGN0cmwtYywgc2V0IHBpcGVsaW5lIHRvCgkgIHBhdXNlZCBiZWZvcmUgd2FpdGluZyBmb3IgdGhlIG1haW4gbG9vcCB0byBjb21wbGV0ZSBhbGwgcGVuZGluZwoJICB0cmFuc2FjdGlvbnMuICBGaXhlcyAjNTg0NjU3LgoJICBJZiBzb21lIHBhcnQgb2YgdGhlIHBpcGVsaW5lIGlzIGdlbmVyYXRpbmcgc2lnbmFscyBvciBpZGxlIGZ1bmN0aW9ucwoJICBhdCBhIGZhc3QgcmF0ZSwgd2FpdGluZyBmb3IgYSBtYWluIGxvb3AgaXRlcmF0aW9uIG1heSBuZXZlciByZXR1cm4uCgoyMDA5LTA2LTAyIDE4OjM2OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBzZXJpYWxpc2F0aW9uIG9mIG5lc3RlZCBzdHJ1Y3R1cmVzLgoJICBVc2Ugc3RyaW5nX3dhcnAvdW53cmFwIHRvIGVzY2FwZSBkZWxpbWl0ZXJzLCBvdGhlcndpc2UgZGVzZXJpYWxpc2F0aW9uIGZhaWxzLgoJICBBbHNvIG1vdmUgR1NUX0FTQ0lJX0lTX1NUUklORyB0byBwcml2YXRlIGhlYWRlciB0byBhdm9pZCBrZWVwaW5nIGl0IGluIHN5bmMuCgkgIEFsc28gdXNlICdcMCcgd2hlbiB0ZXJtaW5hdGluZyBhIHN0cmluZyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAwOS0wNi0wMiAxNTozNzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCByZWdyZXNzaW9uIGluIHVuaXQgdGVzdHMKCSAgU3RvcmUgdGhlIHRpbWVzdGFtcCBvZiB0aGUgYnVmZmVyIGFmdGVyIHByZXJvbGxpbmcuIFdoaWxlIHdlIGFyZSBwcmVyb2xsZWQgd2UKCSAgd2FudCB0byByZXBvcnQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWdtZW50IHN0YXJ0IHZhbHVlLgoKMjAwOS0wNi0wMSAyMDoyNjo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB3aWRlbiBsb2cgbGV2ZWwgc3RyaW5ncyB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgbmV3IE1FTURVTVAKCjIwMDktMDYtMDEgMTk6Mzc6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwb3N0IGEgd2FybmluZyBvbiBleGNlc3NpdmUgZnJhbWVkcm9wcwoJICBXaGVuIHdlIGdvIGludG8gZW1lcmdlbmN5IHJlbmRlcmluZywgcG9zdCBhIHdhcm5pbmcgaW5mb3JtaW5nIHRoZSB1c2VyIGFib3V0CgkgIHRoaXMgZmFjdC4KCjIwMDktMDUtMzEgMTk6MTA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIHN0ZXBwaW5nIGluIHJldmVyc2UKCSAgRml4IHN0ZXBwaW5nIGFuZCBwb3NpdGlvbiByZXBvcnRpbmcgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDktMDUtMjkgMTY6MDY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2Ugc3RhcnRfdGltZSBhcyB0aGUgc3RlcCBzdGFydAoJICBVc2UgdGhlIHN0YXJ0X3RpbWUgb2YgdGhlIGVsZW1lbnQgYXMgdGhlIHBvaW50IGZyb20gd2hlcmUgdGhlIHN0ZXAgb3BlcmF0aW9uCgkgIHN0YXJ0cy4gVGhpcyBmaXhlcyBzdGVwcGluZyBpbiBhbGwgcGF1c2VkIHN0YXRlcy4KCjIwMDktMDUtMTkgMTk6NDU6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjYXRjaCBzdGVwIGNhc2VzIGluIF93YWl0X3ByZXJvbGwoKQoJICBXaGVuIGEgc3ViY2xhc3MgaXMgYmxvY2tpbmcgaW4gX3dhaXRfcHJlcm9sbCgpIGluIHRoZSBfcmVuZGVyIG1ldGhvZCwgbWFrZSBzdXJlCgkgIHdlIGNhbiB1bmxvY2sgdGhlIHN1YmNsYXNzIGFuZCBkZXRlY3QgdGhpcyByZXR1cm4gdmFsdWUgZnJvbSB0aGUgcmVuZGVyIG1ldGhvZC4KCjIwMDktMDUtMTkgMTA6NTA6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIHN0ZXBwaW5nIGluIHJldmVyc2UgZml4ZXMKCjIwMDktMDUtMTggMTg6NDE6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wNS0xOCAxNTo0ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBmcmFtZXN0ZXA6IGltcGxlbWVudCBiYWNrd2FyZHMgZnJhbWVzdGVwCgkgIFVwZGF0ZSBmcmFtZXN0ZXAgZG9jdW1lbnQsIHdlIHdhbnQgdG8gcGFzcyB0aGUgZmx1c2ggZmxhZyBpbiB0aGUgc3RlcC1kb25lCgkgIG1lc3NhZ2UuCgkgIEFkZCBmbHVzaCBmbGFnIHRvIHRoZSBnc3RtZXNzYWdlLgoJICBVcGRhdGUgZXhhbXBsZXMgdG8gdXNlIHRoZSBuZXcgc3RlcC1kb25lIG1lc3NhZ2UgYXBpLgoJICBJbXBsZW1lbnQgZnJhbWVzdGVwIHdpdGggcGxheWJhY2sgcmF0ZXMgPCAwLjAgdG9vLgoKMjAwOS0wNS0xNSAxNToyNTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBmcmFtZXN0ZXBwaW5nIGluIHRpbWUKCjIwMDktMDUtMTUgMTU6MjQ6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGV4YW1wbGVzOiBzdGVwIGluIHRpbWUgYXMgd2VsbAoKMjAwOS0wNS0xNSAxMjowMjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZTogcHJpbnQgc3RlcF9kb25lIG1lc3NhZ2UgYW5kIHN5bmMKCSAgRHVtcCB0aGUgc3RlcF9kb25lIG1lc3NhZ2UgY29udGVudHMuCgkgIFN5bmMgYWdhaW5zdCB0aGUgY2xvY2sgd2hlbiBnb2luZyB0byBQTEFZSU5HLgoKMjAwOS0wNS0xNSAxMjowNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGtlZXAgdHJhY2sgb2Ygc3RlcHBlZCB0aW1lCgkgIFBhc3MgcnVubmluZ190aW1lIGFyb3VuZCBzbyB0aGF0IHRoZSBzdGVwcGluZyBjb2RlIGNhbiBjYWxjdWxhdGUgdGhlIGVsYXBzZWQKCSAgdGltZSBjb3JyZWN0bHkuCgoyMDA5LTA1LTE0IDE5OjI5OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW92ZSBzdHVmZiBhcm91bmQsIG1vcmUgc3RlcHBpbmcKCSAgTWFrZSBzdGFydCBhbmQgc3RvcF9zdGVwcGluZyBtZXRob2RzIGFuZCBtb3ZlIHRoZWlyIGludm9jYXRpb24gaW4gdGhlIHJpZ2h0CgkgIHBsYWNlcy4KCSAgUGVyZm9ybSB0aGUgYXR1YWwgc3RlcHBpbmcgb3BlcmF0aW9uIHdoZXJlIHdlIGhhdmUgZnVsbCBjb250ZXh0IGFib3V0IHRoZQoJICB0aW1lc3RhbXBzLgoKMjAwOS0wNS0xMSAxODo1NjowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIEFkZCBmcmFtZSBzdGVwcGluZyBpbiBQQVVTRUQgZXhhbXBsZQoKMjAwOS0wNS0xMSAxODo1Njo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpcnN0IHN0YWIgYXQgZnJhbWUgc3RlcHBpbmcgaW4gUEFVU0VECgkgIFVubG9jayB0aGUgcHJlcm9sbGVkIGZyYW1lIGFuZCByZWNoZWNrIGlmIHdlIG5lZWQgdG8gc3RlcC4KCSAgS2VlcCBhIHNpbXBsZSBjb3VudGVyIGZvciB0aGUgZnJhbWVzIHdlJ3JlIGFib3V0IHRvIHNraXAgd2hpbGUgc3RlcHBpbmcgYW5kCgkgIHByZXJvbGwvcG9zdCBzdGVwX2RvbmUgd2hlbiBzdGVwcGluZyBmaW5pc2hlZC4KCjIwMDktMDYtMDEgMTI6MTk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBuZXcgQVBJIGZvciBmcmFtZXN0ZXBwaW5nCgkgIEFkZCBuZXcgU1RFUCBldmVudCBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcvcGFyc2luZyB0aGUgZXZlbnQKCSAgVXBkYXRlIGRlc2lnbiBkb2NzLgoJICBBZGQgbmV3IFNURVBfRE9ORSBtZXNzYWdlIGFuZCBtZXRob2QgdG8gY3JlYXRlL3BhcnNlLgoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfbmV3X3N0ZXAoKQoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfcGFyc2Vfc3RlcCgpCgkgIEFQSTogR3N0TWVzc2FnZTo6Z3N0X21lc3NhZ2VfbmV3X3N0ZXBfZG9uZSgpCgkgIEFQSTogR3N0TWVzc2FnZTo6Z3N0X21lc3NhZ2VfcGFyc2Vfc3RlcF9kb25lKCkKCjIwMDktMDYtMDEgMTA6MDU6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmVzOiBkb24ndCBsZWFrIGludmFsaWQgb3IgZW1wdHkgc3RyaW5ncyB3aGVuIHdlIHdhcm4KCSAgRml4ZXMgbWlub3IgbWVtb3J5IGxlYWsgaW4gdW5pdCB0ZXN0cyBjYXVzZWQgYnkgdGhlIHJlY2VudCBjaGFuZ2VzLgoJICBTaW5jZSB3ZSdyZSBleHBlY3RlZCB0byB0YWtlIG93bmVyc2hpcCBvZiB0aGUgR1ZhbHVlIGluIHRoZSBzdHJ1Y3R1cmUKCSAgZmllbGQgc3RydWN0IGhlcmUsIHdlIG5lZWQgdG8gdW5zZXQgaXQgaWYgd2UgZG9uJ3QgdXNlIGl0LgoKMjAwOS0wNi0wMSAxMTowODozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCB0ZXN0IGZvciBjdWJpYyBpbnQuIGFuZCB0b28gZmV3IGNvbnRyb2wgcG9pbnRzCgkgIEFkZGVkIGFub3RoZXIgdGVzdHMgdG8gY2hlY2sgc29tZSB3b3JyaWVzIGluIEJ1ZyAjNTgyNTY0LgoKMjAwOS0wNS0yOCAxMjozMTowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGFkZCBhIEZJWE1FIGNvbW1lbnQgZm9yIGJsb2Nrc2l6ZSB2cy4gc2l6ZS1tYXggcHJvcGVydHkgaXNzdWUKCjIwMDktMDUtMzEgMjE6Mjc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBoYWNrIGFyb3VuZCBnX29iamVjdF9ub3RpZnkoKSBidWcgYnkgcHJvdGVjdGluZyBpdCB3aXRoIGEgbG9jawoJICBPdXQtb2YtYmFuZCBldmVudHMgbWlnaHQgbGVhZCB0byB1cyBjYWxsaW5nIGdfb2JqZWN0X25vdGlmeSgpIGZyb20gYQoJICBub24tc3RyZWFtaW5nIHRocmVhZCwgd2hpY2ggY2FuIGNhdXNlIGNyYXNoZXMgaWYgZ19vYmplY3Rfbm90aWZ5KCkgaXMKCSAgYmVpbmcgY2FsbGVkIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgYXQgdGhlIHNhbWUgdGltZS4gU2VlICM1NTQ0NjAuCgoyMDA5LTA1LTMxIDIyOjM3OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogdXNlIHJlYWwgd29ybGQgbnVtYmVyIGluIGJlbmNobWFyawoKMjAwOS0wNS0zMSAyMjozNzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggY29tbWVudCBmb3JtYXR0aW5nCgoyMDA5LTA1LTMwIDIwOjM2OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGhhY2sgYXJvdW5kIGNyYXNoZXIgYnVnIGluIGdfb2JqZWN0X25vdGlmeSgpIGZvciBvdXQtb2YtYmFuZCBldmVudHMKCSAgR09iamVjdCBtYXkgY3Jhc2ggaWYgdHdvIHRocmVhZHMgZG8gY29uY3VycmVudCBnX29iamVjdF9ub3RpZnkoKSBvbiB0aGUgc2FtZQoJICBvYmplY3QuIFRoaXMgbWF5IGhhcHBlbiBpZiBmYWtlc2luayByZWNlaXZlcyBhbiBvdXQtb2YtYmFuZCBldmVudCBzdWNoIGFzCgkgIEZMVVNIX1NUQVJUIHdoaWxlIHByb2Nlc3NpbmcgYSBidWZmZXIgb3Igc2VyaWFsaXNlZCBldmVudCBpbiB0aGUgc3RyZWFtaW5nCgkgIHRocmVhZC4gU2luY2UgdGhpcyBtYXkgaGFwcGVuIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MgZHVyaW5nIGEgY29tbW9uCgkgIG9wZXJhdGlvbiBsaWtlIGEgc2VlaywgYW5kIHRoZXJlIHNlZW1zIHRvIGJlIGxpdHRsZSBjaGFuY2Ugb2YgYSB0aW1lbHkgZml4CgkgIGluIEdPYmplY3QgKHNlZSAjMTY2MDIwKSwgd2Ugc2hvdWxkIGhhY2sgYXJvdW5kIHRoaXMgaXNzdWUgYnkgcHJvdGVjdGluZyBhbGwKCSAgb2YgZmFrZXNpbmsncyBkaXJlY3QgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMgd2l0aCBhIGxvY2suCgkgIEFsc28gYWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoJICBGaXhlcyAjNTU0NDYwLgoKMjAwOS0wNS0zMSAxNjoxNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0czogbWFrZSBfZ2V0X3tzdHJpbmd8cG9pbnRlcn0gcmV0dXJuIEZBTFNFIGZvciBOVUxMIHZhbHVlcwoJICBNYWtlIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKCkgcmV0dXJuIEZBTFNFIGZvciBOVUxMIHN0cmluZ3MgYW5kCgkgIGVtcHR5IHN0cmluZ3MsIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X3BvaW50ZXIoKSByZXR1cm4gRkFMU0UgZm9yCgkgIE5VTEwgcG9pbnRlcnMsIGxpa2Ugd2UgZG8gd2l0aCBkYXRlcyBhbmQgYnVmZmVycy4KCSAgRml4ZXMgIzU2MDM0NS4KCjIwMDktMDUtMzAgMjA6NTA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnbGlzdHM6IHdhcm4gaWYgc29tZW9uZSB0cmllcyB0byBhZGQgZW1wdHkgb3IgTlVMTCBzdHJpbmcgdGFncyB0byBhIHRhZ2xpc3QKCSAgQWxzbyB3YXJuIGlmIGFuIGVsZW1lbnQgb3IgYXBwbGljYXRpb24gdHJpZXMgdG8gYWRkIGEgZmllbGQgd2l0aCBhbgoJICBlbXB0eSBzdHJpbmcgdG8gYSBzdHJ1Y3R1cmUgKE5VTEwgc3RyaW5ncyBhcmUgc3RpbGwgbmVlZGVkIGFuZAoJICBhbGxvd2VkIHRob3VnaCkgYW5kIGRvIGFsbCB0aG9zZSBjaGVja3MgaW4gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoJICBGaXhlcyAjNTU5NjQzLgoKMjAwOS0wNS0yOSAxODoyMjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSBjb252ZW5pZW5jZSBmdW5jdGlvbgoJICBBZGQgY29udmVuaWVuY2Ugd3JhcHBlciBmb3IgZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXcoKSBwbHVzCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfc2V0KCkgYW5kIHVzZSBpdCBpbiBhIGZldyBwbGFjZXMuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKQoKMjAwOS0wNS0yOSAxODowMDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWljcm8tb3B0aW1pc2F0aW9uOiB1c2UgR1NUX1FVQVJLIGluIG1vcmUgcGxhY2VzCgkgIFVzZSBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIGluIGNvbWJpbmF0aW9uIHdpdGggR1NUX1FVQVJLCgkgIHJhdGhlciB0aGFuIGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkgd2hlbiBjcmVhdGluZyBtZXNzYWdlLCBldmVudCwKCSAgcXVlcnkgYW5kIHRhZ2xpc3Qgc3RydWN0dXJlcy4gTW9zdGx5IGp1c3QgYmVjYXVzZSB3ZSBjYW4uCgoyMDA5LTA1LTI5IDE2OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVzZXQgc3RhcnRfdGltZSBpbiBsb3N0IHN0YXRlCgoyMDA5LTA1LTI5IDEzOjAzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRvY3M6IHVwZGF0ZSBlbGVtZW50IGFuIHBpcGVsaW5lIGRvY3MKCjIwMDktMDUtMjkgMTI6NDg6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBkb2NzOiByZW1vdmUgYSBUT0RPIGl0ZW0gdGhhdCBpcyBmaXhlZCBub3cKCjIwMDktMDUtMjkgMTI6MjE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogZGVwcmVjYXRlIG9sZCBtZXRob2RzLCBmaXggdGVzdAoJICBEZXByZWNhdGUgdGhlIG9sZCBfc2V0X3N0cmVhbV90aW1lIGFuZCBfZ2V0X2xhc3Rfc3RyZWFtX3RpbWUgbWV0aG9kcyBiZWNhdXNlCgkgIHRoZXkgYXJlIG5vdyBlcXVpdmFsZW50IHRvIHRoZSBiZXR0ZXIgbmFtZWQgX3NldC9fZ2V0X3N0YXJ0X3RpbWUuCgoyMDA5LTA1LTI4IDE2OjMwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBwaXBlbGluZTogdXNlIFNUQVJUX1RJTUUgdG8ga2VlcCB0cmFjayBvZiB0aW1lCgkgIFVzZSB0aGUgZWxlbWVudCBTVEFSVF9USU1FIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHJ1bm5pbmcgdGltZSB3aGVuIHRoZSBwaXBlbGluZQoJICBwYXVzZWQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBiYXNlX3RpbWUuCgkgIFRha2UgdGhlIHN0YXJ0X3RpbWUgYmVmb3JlIHNldHRpbmcgdGhlIGNoaWxkcmVuIHRvIFBBVVNFRCBzbyB0aGF0IHdlIGNhbgoJICBkaXN0cmlidXRlIHRoZSBzdGFydF90aW1lIHRvIHRoZSBjaGlsZHJlbi4KCjIwMDktMDUtMjggMTU6NDA6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogc2V0IHRoZSBiYXNlX3RpbWUgYW5kIHN0YXJ0X3RpbWUgYmV0dGVyCgkgIFNpbXBseSBzZXQgdGhlIHN0YXJ0X3RpbWUgYW5kIGJhc2VfdGltZSBvbiB0aGUgZWxlbWVudCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlCgkgIHNldHRlcnMuCgoyMDA5LTA1LTI3IDExOjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2UgdGhlIGJpbiBzZXQgdGhlIHN0YXJ0X3RpbWUgb24gZWxlbWVudHMKCSAgU2V0IHRoZSBzdGFydF90aW1lIG9mIHRoZSBiaW4gb24gdGhlIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gdGhlCgkgIHBpcGVsaW5lIGFuZCB3aGVuIGEgc3RhdGUgY2hhbmdlIGhhcHBlbnMuCgoyMDA5LTA1LTI2IDExOjUzOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBzdGFydF90aW1lIGZpZWxkIGFuIG1ldGhvZHMKCSAgQWRkIGEgc3RhcnRfdGltZSBmaWVsZCBhbmQgc29tZSBtZXRob2RzLiBUaGUgc3RhcnRfdGltZSB3aWxsIGNvbnRhaW4gdGhlCgkgIHJ1bm5pbmdfdGltZSBvZiB3aGVuIHRoZSBlbGVtZW50IGxhc3Qgd2VudCB0byBwYXVzZWQuIFRoaXMgdGltZSBjYW4gYmUgdXNlciB0bwoJICByZXBvcnQgdGhlIHBvc2l0aW9uIGluIFBBVVNFRCBidXQgYWxzbyB0byBkbyBtb3JlIGNvcnJlY3QgY2xpcHBpbmcgYW5kCgkgIHN0ZXBwaW5nIGxhdGVyLgoKMjAwOS0wNS0yOCAyMjowMjoyMSArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggX21hc2tlZF9zY2FuX3VpbnQzMigpIGF0IGJvdW5kYXJpZXMKCSAgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyIGNvdWxkIHJldHVybiB2YWx1ZXMgc21hbGxlciB0aGFuIG9mZnNldAoJICBpZiB0aGUgZmlyc3QgYnl0ZShzKSBvZiB0aGUgbWFzayBhcmUgMCBhbmQgdGhlIHBhdHRlcm4gbWF0Y2hlcyB0aGUKCSAgYmVnaW5uaW5nIG9mIHRoZSBhZGFwdGVyLgoJICBBZGRlZCBleGFtcGxlcyB0byBkb2N1bWVudGF0aW9uIG9mIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpLgoJICBBbHNvIGFkZGVkIHNvbWUgbW9yZSBtYXNrZWQgYm91bmRhcnkgdGVzdHMuCgkgIEZpeGVzICM1ODQxMTgKCjIwMDktMDUtMjggMTY6MzY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcGFkIHByaXZhdGUgc3RydWN0dXJlCgkgIEFkZCBwYWQgcHJpdmF0ZSBzdHJ1Y3R1cmUgYW5kIG1vdmUgdGhlIG5ldyBjaGFpbmxpc3RmdW5jIGludG8gdGhlIHByaXZhdGUKCSAgc3RydWN0LiBUaGlzIGF2b2lkcyBBQkkgYnJlYWthZ2UgYW5kIGFsbG93cyB1cyB0byBleHBhbmQgaW4gdGhlIGZ1dHVyZS4KCjIwMDktMDUtMjcgMTY6MzQ6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbWlzc2luZyBzeW1ib2wgdG8gdGhlIHdpbjMyIGV4cG9ydHMKCSAgVGhpcyB3YXMgYWNjaWRlbnRpYWxseSByZW1vdmVkIGJ5IG15IGxhc3QgY29tbWl0LgoKMjAwOS0wNS0yNyAxNjoxNzozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCBtZW1vcnkgbGVha3MKCSAgQXZvaWQgbGVha2luZyB0aGUgY2FwcyBvZiB0aGUgZGVzdCBidWZmZXIgYW5kIGF2b2lkIGRvaW5nIG5lZWRsZXNzIGNhcHMKCSAgcmVmcy4KCSAgV2hlbiB0aGUgc291cmNlIGFuZCB0YXJnZXQgYnVmZmVycyBhcmUgdGhlIHNhbWUsIHJldHVybiBpbW1lZGlhdGx5LgoKMjAwOS0wNS0yNyAxNDozMjo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X21lc3NhZ2Vfe25ldyxwYXJzZX1fdGFnX2Z1bGwoKSB0byBnZXQvc2V0IHRoZSBzb3VyY2UgcGFkCgkgIEZpeGVzIGJ1ZyAjNTgyNTg4LgoKMjAwOS0wNS0yNyAxNDowNjoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBTZXQgdGhlIG9yaWdpbmF0aW5nIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQgKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmViZmRlNzUwMjdlOTc1YjdlN2M3NGM2MzU4YzViZTgzZWE0YWM5Zi4KCSAgVGhpcyBjaGFuZ2Ugc2hvdWxkbid0IGJlIGRvbmUgaW4gYSBzdGFibGUgcmVsZWFzZSBzZXJpZXMgYXMKCSAgYXBwbGljYXRpb25zIGFyZSBhY3R1YWxseSBleHBlY3RpbmcgdGhlIHNlbmRlciB0byBiZSBhbgoJICBHc3RFbGVtZW50LiBPbmUgZXhhbXBsZSBpcyB0b3RlbS4KCjIwMDktMDUtMjYgMTE6MzU6NDkgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uCgoyMDA5LTA1LTI2IDEwOjQxOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBGaXggJ21ha2UgZGlzdGNoZWNrJwoJICBUaGUgY2hlY2stZW51bS1nZXR0eXBlcyBydWxlIGRpZG4ndCB3b3JrIGZvciAnbWFrZSBkaXN0Y2hlY2snIHNpbmNlCgkgIGl0IG1ha2VzIGFzc3VtcHRpb25zIGFib3V0IHRoZSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGZpbGVzIGZyb20gdGhlCgkgIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgd2hpY2ggaXNuJ3QgdHJ1ZSBkdXJpbmcgZGlzdGNoZWNraW5nLgoKMjAwOS0wNS0yNiAxMDozODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBtYW51YWxzLm1hazogYXR0ZW1wdCB0byBtYWtlICdtYWtlIGRpc3RjaGVjaycgd29yayB3aXRoIC1qTgoJICBBdHRlbXB0IHRvIGZpeCB0aGUgJ2Nhbm5vdCBjcmVhdGUgcmVndWxhciBmaWxlIGJ1aWxkL2ltYWdlLmVudGl0aXRlczoKCSAgZmlsZSBleGlzdHMnIGVycm9yIEkgZ290LgoKMjAwOS0wNS0yNSAyMzo1ODozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZpeCBjZHBhcmFub2lhIGV4YW1wbGUgcGlwZWxpbmUgaW4gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAwOS0wNS0yNSAxODo0NDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgoyMDA5LTA1LTI1IDE3OjQzOjMyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBkaXN0OiBGaXggdGhlIG5hbWUgb2YgdGhlIGhlYWRlciB0byBkaXN0OiB0ZXN0cnRwb29sLmgsIG5vdCBydHBvb2wtdGVzdC5oCgoyMDA5LTA1LTI1IDE3OjAzOjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDUtMjUgMTY6NTQ6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBhc3NlcnRpb24KCSAgUmVtb3ZlIGFuIGFzc2VydGlvbiwgdGhpcyBpcyBub3QgcmVhbGx5IGFuIGVycm9yIGluIGFsbCBjYXNlcy4KCSAgRml4ZXMgIzU4MjAxMAoKMjAwOS0wNS0yNSAxNjoyMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZW5hYmxlIG1vbm90b25pYyBjbG9jayB3aGVuIHdlIGNhbgoJICBFbmFibGUgdGhlIG1vbm90b25pYyBjbG9jayBieSBkZWZhdWx0IHdoZW4gd2UgY2FuLgoJICBGaXhlcyAjNTgzNTU0CgoyMDA5LTA1LTI1IDE0OjUyOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBkb2NzOiBhZGQgSW1hZ2UgdG8gZHJhZnQga2xhc3MgZG9jdW1lbnRhdGlvbgoKMjAwOS0wNS0yNSAxMzowMzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBrZWVwIHRhc2sgcmVmIGJlZm9yZSByZWxlYXNpbmcgdGhlIGxvY2sKCSAgS2VlcCBhIHJlZiB0byB0aGUgdGFzayBvbiB0aGUgcGFkIHNvIHRoYXQgYSBjb25jdXJyZW50IHN0b3AgY2FuIHN0b3AgYW5kIGpvaW4KCSAgdGhlIHRhc2suCgoyMDA5LTA1LTI1IDExOjU2OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0dGFzazogYXZvaWQgam9pbiB0byByZXR1cm4gZWFybHkKCSAgVW5zZXQgdGhlIHJ1bm5pbmcgZmxhZyBhZnRlciB3ZSByZWxlYXNlZCB0aGUgbG9jayBmb3IgcG9zdGluZyB0aGUgc3RyZWFtLXN0YXR1cwoJICBtZXNzYWdlLiBJZiB3ZSBzZXQgdGhlIHJ1bm5pbmcgZmxhZyB0byBGQUxTRSB0b28gZWFybHksIHRoZSBqb2luIG1ldGhvZCB3aWxsCgkgIGp1c3QgY29udGludWUgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgbWVzc2FnZSB0byBiZSBwb3N0ZWQsIGxlYWRpbmcgdG8gcG90ZW50aWFsCgkgIGNyYXNoZXMuCgoyMDA5LTA1LTI0IDIzOjE0OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IHVwZGF0ZSBydWxlCgkgIE9ubHkgdXBkYXRlIHRoZSBwcmVzZXQgZnJvbSBzeXN0ZW0sIGlmIHdlIGhhZCBhIHByZXNldCBiZWZvcmUgYW5kIHN5c3RlbQoJICB2ZXJzaW9uIGlzIG5ld2VyLgoKMjAwOS0wNS0yMiAyMzo0NzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgYmVuY2htYXJrIHRvIHZlcmlmeSB0aGUgc3dpdGNoIHRvIGdzZXF1ZW5jZQoKMjAwOS0wNS0yMiAyMzo1MDo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIGVycm9yIGhhbmRsaW5nIHRvIGV4YW1wbGUKCjIwMDktMDUtMjIgMjM6MTQ6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZnJlZSBub2RlLWRhdGUgYW5kIGRlcmVmIGFnYWluLiBGaXhlcyAjNTgwNTc5CgkgIFdoZW4gd3JpdGluZyBhIGNhY2hlIGNodW5rIGZhaWxzLCB3ZSB3ZXJlIGZyZWVpbmcgdGhlIG5vZGUgYW5kIGp1bXAgdG8gYSBmaW5hbAoJICBjbGVhbnVwIHdoaWNoIGRlcmVmZXJlbmNlZCBhIG51bGwgcG9pbnRlci4gTGV2ZSBmcmVlaW5nIHRoZSBub2RlIHRvIHRoZSBjbGVhbnVwCgkgIGNvZGUgaW4gZmFpbF9mcmVlX2xpc3QuIChzb3JyeSBmb3IgY29tbWl0dGluZyB3cm9uZyBmaXggYmVmb3JlKS4KCjIwMDktMDUtMjIgMjM6MTA6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZnJlZSBub2RlLWRhdGUgYW5kIGRlcmVmIGFnYWluLiBGaXhlcyAjNTgwNTc5CgkgIFdoZW4gd3JpdGluZyBhIGNhY2hlIGNodW5rIGZhaWxzLCB3ZSB3ZXJlIGZyZWVpbmcgdGhlIG5vZGUgYW5kIGp1bXAgdG8gYSBmaW5hbAoJICBjbGVhbnVwIHdoaWNoIGRlcmVmZXJlbmNlZCBhIG51bGwgcG9pbnRlci4gTGV2ZSBmcmVlaW5nIHRoZSBub2RlIHRvIHRoZSBjbGVhbnVwCgkgIGNvZGUgaW4gZmFpbF9mcmVlX2xpc3QuCgoyMDA5LTA1LTIyIDE0OjE3OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgR19MSUtFTFkgYW5kIGpvaW4gdHdvIGlmIGZvciBzYW1lIGNvbmRpdGlvbgoJICBBIEdfTElLRUxZIGZvciB0aGUgc2VxdWVuY2UhPU5VTEwgY2hlY2tzLiBKb2luIHR3byBpZnMgdG8gYW4gaWYtZWxzZS4gQWRkCgkgIGluZGVudCBndWlkZXMgdG8ga2VlcCBpbmRlbnQgZm9ybSBicmVha2luZyB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24KCjIwMDktMDUtMjIgMTI6NTc6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGdzdHR5cGVmaW5kaGVscGVyOiBGaXggaW5kZW50YXRpb24KCjIwMDktMDUtMjIgMTI6MjQ6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyB3YXJuaW5ncwoJICBNb3ZlIE1UIHNhZmV0eSB0byBtYWluIGRlc2NyaXB0aW9uIChpdCBkb2VzIG5vdCBiZWxvbmcgdG8gUmV0dXJuOiBvciBTaW5jZToKCSAgc3RhdGVtZW50KS4gQWRkIGEgZmV3IG1pc3NpbmcgcmV0dXJuIGRvY3MuIERvd25ncmFkZSBhIG5vcm1hbCBjb21tZW50IGZyb21hIGRvYwoJICBjb21tZW50LiBGaXggYSBkb2MgaGVhZGVyIHRvIG9ubHkgY29udGFpbiBzeW1ib2wgbmFtZS4KCjIwMDktMDUtMjIgMTA6MTk6MzYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDNhOGZhYiB0byA4ODhlMGEyCgoyMDA5LTA1LTIyIDA5OjUxOjQ0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBkaXN0OiBBZGQgcnRwb29sLXRlc3QuaCB0byB0aGUgc291cmNlcyBsaXN0IHNvIGl0IGdldHMgZGlzdGVkLgoJICBGaXhlcyB0aGUgZGlzdGNoZWNrCgoyMDA5LTA1LTIyIDA5OjQ0OjI1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZXM6IElnbm9yZSB0aGUgY2xvY2tzdHJlc3MgYmVuY2htYXJrIGJpbmFyeQoKMjAwOS0wNS0yMiAwOTo0MTozNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IFNpbGVuY2UgYSB3YXJuaW5nIGZyb20gdGhlIEdTZXF1ZW5jZSBiZWluZyBOVUxMLgoJICBGaXggYSB3YXJuaW5nIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHNlbGYtPnByaXYtPnZhbHVlcyBpcyBOVUxMIGFuZAoJICB0aGUgY29kZSB0cmllcyB0byByZXRyaWV2ZSBhbiBpdGVyYXRvciBmcm9tIGl0LiBUaGUgd2FybmluZyB3YXMgc2hvd2luZwoJICB1cCBpbiB0aGUgY2hlY2tzIGZvciB0aGUgdm9sdW1lIGVsZW1lbnQuCgoyMDA5LTA1LTIyIDA5OjMzOjAyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBGaXggdXAgc29tZSBkb2N1bWVudGF0aW9uIHdhcm5pbmdzLgoJICBTaW5jZTogdGFncyBzaG91bGQgYWx3YXlzIGJlIHRoZSBsYXN0IHRoaW5nIGluIGEgZG9jIGJsb2NrLCBhcHBhcmVudGx5LgoJICBBZGQgc29tZSBSZXR1cm5zOiBkZXNjcmlwdGlvbnMgdG8gc29tZSByZWNlbnQgZnVuY3Rpb25zLgoKMjAwOS0wNS0yMSAxNzozMjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIGZvciBzdHJlYW1fdGltZS0+cnVubmluZ190aW1lCgkgIENoYW5nZSBzb21lIGluc3RhbmNlcyB3aGVyZSB3ZSB3cm9uZ2x5IHJlZmVyIHRvIHN0cmVhbSB0aW1lIHdoZXJlIGl0IHNob3VsZCBoYXZlCgkgIGJlZW4gcnVubmluZyB0aW1lLgoKMjAwOS0wNS0yMSAxMDo1Nzo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IHVzZSBHX0dVSU5UMzJfRk9STUFUIGluIHRyYW5zbGF0YWJsZSBzdHJpbmcKCSAgeGdldHRleHQgZG9lc24ndCBoYW5kbGUgdGhpcyB2ZXJ5IHdlbGwuIEZpeGVzICM1ODM0MTkuCgoyMDA5LTA1LTIwIDE3OjA3OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IGNhbiByZW1vdmUgdGhlIC1Xbm8tcG9ydGFiaWxpdHkgZnJvbSBoZXJlIG5vdwoJICBzaW5jZSB3ZSBhZGRlZCBpdCB0byBjb25maWd1cmUuYWMuCgoyMDA5LTA1LTIwIDIyOjE4OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGltcHJvdmUgdGhlIGZsdXNoIGZ1bmN0aW9uCgkgIFJlbW92ZSBhIGNvbXBhcmUgYW5kIGJyYW5jaCBmcm9tIGZsdXNoLgoKMjAwOS0wNS0yMCAxNzoyNDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggYXNzZXJ0aW9uIHdoZW4gZnJlZWluZyB0aGUgY29udHJvbCBzb3VyY2UKCjIwMDktMDUtMjAgMTI6NDg6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcG90ZW50aWFsbHkgc2F2ZSBhIG1lbWNweSBpbiBfdGFrZQoJICBEaXJlY3RseSB1c2UgdGhlIGFzc2VtYmxlZF9kYXRhIGluIF90YWtlKCkgZnVuY3Rpb25zIHdoZW4gd2UgY2FuIGluc3RlYWQgb2YKCSAgY29weWluZyBpdCBvdXQuCgoyMDA5LTA1LTIwIDExOjM2OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1pY3JvIG9wdGltaXNhdGlvbnMKCjIwMDktMDUtMjAgMTE6MTI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXZvaWQgY29tcGFyaXNpb25zIGluIGZhc3QgcGF0aAoJICBTbWFsbCB0d2Vha3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgdXNlbGVzcyBjb21wYXJlcyBpbiBsb29wcy4KCjIwMDktMDUtMjAgMTA6Mjg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IG9uZSBtb3JlIGFkYXB0ZXIgdGVzdAoKMjAwOS0wNS0yMCAxMDoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBicmFuY2ggaW4gY29weSBjb2RlCgoyMDA5LTA1LTIwIDEwOjU2OjExICswMzAwICBIYW5uZXMgQmlzdHJ5IDxiaXN0cnlAaW5mb3JtYXRpay51bmktaGFtYnVyZy5kZT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBsb2Fkc2F2ZTogZml4IHJlcXVlc3RwYWQgaGFuZGxpbmcgYW5kIHNlcmlhbGlzYXRpb24gb3JkZXIuCgkgIFN1cHBvcnQgcmVxdWVzdCBwYWRzIHdoZW4gbG9hZGluZy4gUmV2ZXJzZSBwYWQgc2VyaWFsaXNhdGlvbiBvcmRlciB0bwoJICBwcmVzZXJ2ZSBpdCB3aGVuIHJlY3JlYXRpbmcgdGhlIHBpcGVsaW5lLgoKMjAwOS0wNS0yMCAwMDo0NToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wKCjIwMDktMDUtMjAgMDA6NDQ6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHN5bWJvbCB0byBkb2NzCgoyMDA5LTA1LTIwIDAwOjM3OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIF9tYXNrZWRfc2Nhbl91aW50MzIKCSAgQWRkIGEgcmVhc29uYWJseSBvcHRpbWl6ZWQgbmV3IGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpIGZ1bmN0aW9uCgkgIHRvIHNjYW4gdGhlIGFkYXB0ZXIgZm9yIGEgcGF0dGVybiBhZnRlciBhcHBseWluZyBhIG1hc2suCgkgIEFkZCBzb21lIHVuaXQgdGVzdHMuCgkgIEFQSTogR3N0QWRhcHRlcjo6Z3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCSAgRml4ZXMgIzU4MzE4NwoKMjAwOS0wNS0xOSAyMjoxMzowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBtb3JlIG9wdGltaXNhdGlvbnMKCSAgUmVtb3ZlIGR1cGxpY2F0ZSBjb3B5IGNvZGUgKF9wZWVrX2ludG8gYW5kIF9jb3B5KSBhbmQgbWFrZSBhIHVuaWZpZWQKCSAgb3B0aW1pemVkIGNvcHkgZnVuY3Rpb24uCgoyMDA5LTA1LTE5IDE3OjEyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBwYXNzIC1Xbm8tcG9ydGFiaWxpdHkgdG8gYXV0b21ha2UgdG8gc3VwcHJlc3Mgd2FybmluZ3MKCSAgR05VIG1ha2UgaXMgcmVxdWlyZWQsIG5vIHBvaW50IHByZXRlbmRpbmcgb3RoZXJ3aXNlLgoKMjAwOS0wNS0xOCAwMTowMDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgIGRvY3M6IG1lbnRpb24gdGhhdCBHU1RfRk9STUFUX3tQRVJDRU5UfEJVRkZFUlN9IGFyZSBub3QgaW1wbGVtZW50ZWQKCjIwMDktMDUtMTcgMTA6NDY6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3RjbG9jazogRml4IEFCSSBicmVha2FnZSBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcwoJICBUaGUgcGFkZGluZyBvZiBHc3RDbG9jayBpcyBhIEdzdENsb2NrVGltZSBhbmQgbm90IGEKCSAgZ3BvaW50ZXIsIHNvIGFkZGluZyBhIHBvaW50ZXIgcmVxdWlyZXMgdGhlIHBhZGRpbmcKCSAgc2l6ZSB0byBiZSBjaGFuZ2VkIGRlcGVuZGluZyBvbiB0aGUgcG9pbnRlciBzaXplLgoJICBVc2UgYW4gdW5pb24gaW5zdGVhZC4KCSAgRml4ZXMgYnVnICM1ODI4NzguCgoyMDA5LTA1LTE1IDE1OjI0OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBbZ3N0dmFsdWVdIGFkZHMgc2FmZXR5IHBhcmVudGhlc2lzIHRvIG1hY3JvcyBtaXNzaW5nIHRoZW0uCgoyMDA5LTA1LTE1IDE0OjQyOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBbZ3N0dXRpbHNdIEFkZHMgbW9yZSBzYWZldHkgdG8gR1NUX1dSSVRFXyogYW5kIEdTVF9SRUFEXyBtYWNyb3MuCgkgIEFkZHMgc2FmZXR5ICggKSB0byBwYXJhbWV0ZXJzIGluIF9HU1RfUFVUIGFuZCBfR1NUX0dFVCBtYWNyb3MuCgkgIEZpeGVzICM1ODI3MDguCgoyMDA5LTAzLTE5IDExOjM3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogdXNlIHNlcWxvY2tzIHRvIHBhcmFsbGVsbGl6ZSByZWFkZXJzCgoyMDA5LTA0LTE2IDE1OjUzOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBzdHJlc3M6IGFkZCBhIGNsb2NrIHN0cmVzc3Rlc3QKCSAgQWRkIGEgc3RyZXNzdGVzdCBmb3IgZ3N0X2Nsb2NrX2dldF90aW1lKCkuCgoyMDA5LTA1LTE1IDExOjAwOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgTWFrZWZpbGUuYW06IHVwZGF0ZSBmb3IgYWRkZWQvbW92ZWQvcmVtb3ZlZCBmaWxlcyB0aGF0IHdlcmVuJ3QgZGlzdC1lZC4KCjIwMDktMDUtMTIgMTE6Mjk6MjEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IFJlbGVhc2Ugc2NyaXB0IG1vZGlmaWNhdGlvbnMKCjIwMDktMDUtMTQgMjI6MTE6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgY29udHJvbGxlcjogVXNlIG9yZGVyZWQgR1NlcXVlbmNlIGluc3RlYWQgb2YgR0xpc3QKCSAgVGhpcyBtYWtlcyBsb29rdXBzIGFuZCBpbnNlcnRpb25zIE8obG9nIG4pIGluc3RlYWQgb2YKCSAgYWx3YXlzIE8obikgZm9yIGluc2VydGlvbnMgYW5kIE8obikgaW4gd29yc3QgY2FzZSBmb3IKCSAgbG9va3Vwcy4KCSAgRml4ZXMgYnVnICM1ODI1NjQuCgoyMDA5LTA1LTE0IDEyOjMwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRvY3M6IHJlbmFtZSBhbmQgZGVsZXRlIHNvbWUgZGVzaWduIGRvY3MKCjIwMDktMDUtMTQgMTI6MzA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBQcmludCB0aGUgcGF0aCBzdHJpbmcgZm9yIG1lc3NhZ2Ugc291cmNlcwoJICBUaGlzIHJlZHVjZXMgY29uZnVzaW9uIGlmIHRoZSBtZXNzYWdlIHNvdXJjZSBpcyBhIHBhZAoJICBhbmQgb25seSAic3JjIiBpcyBwcmludGVkIGFzIHNvdXJjZS4KCjIwMDktMDUtMTQgMTI6MjU6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IFNldCB0aGUgb3JpZ2luYXRpbmcgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCAoKQoJICBGaXhlcyBidWcgIzU4MjU4OC4KCjIwMDktMDUtMTQgMTE6MzY6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgkgIEFkZCBhIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpIHdpdGggYW4gZXh0cmEgYXJndW1lbnQgdG8gY29udHJvbAoJICBkaXN0cmlidXRpb24gb2YgYSBuZXcgYmFzZV90aW1lLiBXZSB3aWxsIG5lZWQgdGhpcyBmb3IgZmx1c2hpbmcgc3RlcAoJICBvcGVyYXRpb25zLgoJICBBUEk6IEdzdEVsZW1lbnQ6OmdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgoyMDA5LTA1LTEzIDIzOjUyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGRvbid0IHVzZSByZWFsbG9jLCBpdCBkb2VzIGEgbWVtY3B5CgkgIERvbid0IHVzZSByZWFsbG9jIHRvIGdyb3cgdGhlIHNjcmF0Y2ggYXJlYSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdGhlIG1lbWNweSB0aGUKCSAgb2xkIHVzZWxlc3MgZGF0YSBpbnRvIHRoZSBuZXcgYXJlYSBiZWZvcmUgd2Ugd3JpdGUgb3VyIG5ldyBzdHVmZiBpbiBpdC4KCjIwMDktMDUtMTMgMjM6Mzg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkb2NzOiB1cGRhdGUgdHJpY2ttb2RlIGRvY3VtZW50CgoyMDA5LTA1LTEzIDIyOjUxOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVzZSBnX3JlYWxsb2MgZm9yIHJlc2l6aW5nIHRoZSBidWZmZXIKCSAgVXNlIGdfcmVhbGxvYyBmb3IgcmVzaXppbmcgdGhlIGludGVybmFsIGJ1ZmZlciBpbnN0ZWFkIG9mIGEKCSAgbGVzcyBmYW5jeSBfZnJlZS9fbWFsbG9jIHBhaXIuCgoyMDA5LTA1LTEzIDIxOjM1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBtb3ZlIG5ldyBtZW1iZXIgdG8gcHJpdmF0ZSBzdHJ1Y3QKCSAgTW92ZSB0aGUgbmV3IG1lbWJlcnMgdG8gYSBwcml2YXRlIHN0cnVjdCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgZW5vdWdoIHBhZGRpbmcKCSAgYW55bW9yZSBvbiAzMi1iaXRzIHBsYXRmb3Jtcy4KCjIwMDktMDUtMTMgMTg6NTA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXBkYXRlIHNvbWUgZG9jcwoKMjAwOS0wNS0xMyAxNzowOTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgdGVzdCBmb3IgYWRhcHRlciB0aW1lc3RhbXBzCgoyMDA5LTA1LTEzIDE2OjQ4OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgbmV3IHRpbWVzdGFtcCB1bml0IHRlc3QKCjIwMDktMDUtMTMgMTY6MjY6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sCgoyMDA5LTA1LTEzIDE2OjA5OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBhZGQgbWV0aG9kIHRvIGtlZXAgdHJhY2sgb2YgdGltZXN0YW1wcwoJICBLZWVwIHRyYWNrIG9mIHRoZSB0aW1lc3RhbXAgYW5kIG9mZnNldCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgaGVhZCBvZiB0aGUKCSAgYWRhcHRlci4KCSAgQVBJOiBHc3RBZGFwdGVyOjpnc3RfYWRhcHRlcl9wcmV2X3RpbWVzdGFtcCgpCgoyMDA5LTA1LTEzIDE2OjIwOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wNS0xMyAxMTowMzoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogc2hvdyBtb3JlIHBhZC1kZXRhaWxzCgkgIFNob3cgcGFkIGFjdGl2YXRpb24gbW9kZSBhbmQgcGFkLWZsYWdzIGluc2lkZSB0aGUgcGFkLiBXcml0ZSBkb3duIHNvbWUgaWRlYXMKCSAgYWJvdXQgaG93IHdlIGNvdWxkIGltcHJvdmUgdGhlIGNhcHMgbGF5b3V0LgoKMjAwOS0wNS0xMyAwMDoyOTo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogbGF5b3V0IGltcHJvdmVtZW50CgkgIGRvdCBkb2VzIG5vdCB0YWtlIHRoZSBoZWFkL3RhaWwgbGFiZWxzIGludG8gYWNjb3VudC4gRm9yIHVuZml4ZWQgY2FwcyB0aGV5IGdldAoJICBxdWl0ZSBsYXJnZS4gRG91YmxlIHRoZSBwYWRkaW5nIHRvIG1ha2UgaXQgc29ydCBvZiByZWFkYWJsZSBpbiBtb3JlIGNhc2VzLiBBbHNvCgkgIG1ha2Ugbm9ybWFsIGZvbnQgYmlnZ2VyIGFuZCBjYXBzLWxhYmVsIGZvbnQgc21hbGxlciB0byBpbmNyZWFzZSBvdXIgbHVjay4KCjIwMDktMDUtMTIgMjE6MDA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGNoZWNrczogY2hlY2sgZm9yIGVudW0gdHlwZXMgbm90IGNsYXNzX3JlZidlZCBpbiBnc3RfaW5pdCgpIGluICdtYWtlIGNoZWNrJwoKMjAwOS0wNS0xMiAyMDo1ODozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIEluaXRpYWxpc2Ugc29tZSBtb3JlIHR5cGVzIGluIGdzdF9pbml0KCksIGVzcC4gdGhlIG5ldyBlbnVtIHR5cGVzCgkgIFBvc3NpYmx5IGZpeGVzIEdPYmplY3QgY2xhc3MgY3JlYXRpb24vdW5yZWYgcmFjZSBjb25kaXRpb25zIHdoZW4KCSAgY3JlYXRpbmcgdGhlIGxhc3QtbWVzc2FnZSBzdHJpbmcgaW4gZmFrZXNpbmsgZm9yIGV2ZW50cyB3aXRoCgkgIHN0cnVjdHVyZXMgdGhhdCBoYXZlIGZpZWxkcyB3aXRoIHRoZXNlIGVudW0gdHlwZXMuCgoyMDA5LTA1LTEyIDIwOjU2OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogcmVtb3ZlIGR1cGxpY2F0ZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgR3N0Q2xvY2tUeXBlCgkgIFJlbW92ZSB0aGUgc3RhdGljIGdzdF9jbG9ja190eXBlX2dldF90eXBlKCkgZnVuY3Rpb24gaW4gdGhlCgkgIHN5c3RlbWNsb2NrIGNvZGUgaW4gZmF2b3VyIG9mIHRoZSBwdWJsaWMgb25lIGluIGdzdGVudW10eXBlcy5jLgoKMjAwOS0wNC0yMiAxMDo1MzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiByZW1vdmUgZGVwcmVjYXRlZCBBUEkKCSAgX2ludGVybmFsX2xpbmtfZnVuY3Rpb24oKSBpcyBkZXByZWNhdGVkIGFuZCBfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbigpCgkgIGlzIGFscmVhZHkgcHJvdmlkZWQuCgoyMDA5LTA0LTIxIDExOjMzOjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IGFsbG93IHNwZWNpZnlpbmcgR3N0RWxlbWVudCBwcm9wZXJ0aWVzIHZpYSBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24KCSAgSWYgZGVzZXJpYWxpemluZyBhIHByb3BlcnR5IGZhaWxzLCBjaGVjayBpZiB0aGUgdmFsdWUgdHlwZSBpcyBhIHN0cmluZyBhbmQgaWYgc28KCSAgYXR0ZW1wdCB0byBjcmVhdGUgYSBiaW4gZnJvbSB0aGUgc3RyaW5nIHZhbHVlLiBUaGlzIGFsbG93cyB0byBlLmcuIHNwZWNpZnkKCSAgYXVkaW8tc2luay92aWRlby1zaW5rIGZvciBwbGF5YmluIG9uIGdzdC1sYXVuY2ggY29tbWFuZGxpbmUuCgoyMDA5LTA1LTEyIDE3OjI5OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSAgZG9jczogYWRkIHNvbWUgZG9jcyBhYm91dCBidWZmZXIgbGlzdHMKCjIwMDktMDUtMTIgMTY6MTg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBtYWtlIG9iamVjdHMgb3BhcXVlCgoyMDA5LTA1LTEyIDE1OjMzOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGEgY29tbWVudAoKMjAwOS0wNS0xMiAxMzoxMDo1NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGhvb2sgdXAgdGhlIHBhZCBmdW5jdGlvbnMKCSAgUmV1c2UgYnVmZmVyIGNvZGUgZm9yIGJ1ZmZlcmxpc3RzLiBOb3Qgc3VyZSBpZiB0aGlzIG1lYXN1cmFibHkgaW1wYWN0cyBwZXJmb3JtYW5jZQoJICBmb3IgdGhlIHNpbXBsZSBidWZmZXIgY2FzZSwgaWYgaXQgZG9lcyBhZnRlciBkb2luZyBzb21lIGJlbmNobWFya3MsIHdlIGNhbgoJICBkZWNvdXBsZSBpdCBsYXRlci4KCSAgRml4ZXMgIzU3MjI4NQoKMjAwOS0wNS0xMiAxMjowODo1NiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBkb2NzL2J1aWxkL2RlYnVnL3VuaXR0ZXN0CgkgIFNlZSAjNTcyMjg1CgoyMDA5LTA1LTEyIDExOjUxOjM3ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBhZGQgYnVmZmVybGlzdCBjb2RlCgkgIEJ1ZmZlciBsaXN0cyBhcmUgYSBtZWFucyB0byBtYW5hZ2UgZGlzam9pbnQgYnVmZmVycyBhcyBvbmUgYnVmZmVyLiBJdCdzIGFsc28KCSAgcG9zc2libGUgdG8gcHV0IG1hbnkgb2YgdGhvc2UgYnVmZmVycyBpbnRvIGEgbGlzdC4KCSAgVGhlIGlkZWEgaXMgdGhhdCB3aGVuIHN1cHBvcnQgaXMgYWRkZWQgdG8gdmFyaW91cyBlbGVtZW50cywgd2Ugd2lsbCBiZSBhYmxlIHRvCgkgIG1vcmUgZWZmaWNpZW50bHkgc2xpY2UgYW5kIGRpY2UgYnVmZmVycywgcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IGFuZCBhbHNvCgkgIHJlZHVjZSBkYXRhIHBhc3Npbmcgb3ZlcmhlYWQuCgkgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBrZXB0IHNpbXBsZSBvbiBwdXJwb3NlLCByZXVzaW5nIGFsbCBvZiB0aGUgbWVtb3J5CgkgIG1hbmFnZW1lbnQgZmVhdHVyZXMgd2UgaGF2ZSBmb3IgbWluaW9iamVjdHMgYW5kIGJ1ZmZlcnMuCgkgIEFjY2VzcyB0byB0aGUgYnVmZmVybGlzdCBvYmplY3QgaXMgZG9uZSB3aXRoIGFuIGl0ZXJhdG9yLCB3aGljaCBhbGxvd3MgZm9yCgkgIGVmZmljaWVudCBpdGVyYXRpb24gYW5kIG1vZGlmaWNhdGlvbiBvZiB0aGUgbGlzdC4KCSAgU2VlICM1NzIyODUKCjIwMDktMDUtMTEgMDc6NDk6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogY29weSBuZXcgYnVmZmVyIGZsYWdzIHdoZW4gY29weWluZyBtZXRhZGF0YS4KCjIwMDktMDQtMjcgMTA6MTM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIHRha2luZyB0aGUgaGVhZGJ1ZmZlcgoJICBXaGVuIGEgYXJlIHJlcXVlc3RlZCB0byB0YWtlIGEgYnVmZmVyIGZyb20gdGhlIGFkYXB0ZXIgdGhhdCBpcyBleGFjdGx5IHRoZQoJICBoZWFkYnVmZmVyLCBkb24ndCBtYWtlIGEgc3ViYnVmZmVyIG9mIGl0IGJ1dCByZXR1cm4gdGhhdCBoZWFkIGJ1ZmZlci4KCSAgQWRkIGEgdW5pdC10ZXN0IGZvciB0aGlzIG5ldyBvcHRpbWlzYXRpb24uCgoyMDA5LTA1LTA1IDE3OjQxOjI0ICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgbGVhayB0aGUgZm9yY2UtY2FwcyBwcm9wZXJ0eQoJICBGaXhlcyAjNTgxMzIxCgoyMDA5LTA0LTI4IDE5OjIwOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBvc3Rpbmcgb2YgYXN5bmMtc3RhcnQgbWVzc2FnZXMKCSAgV2hlbiBhbiBlbGVtZW50IGxvc3QgaXRzIHN0YXRlIGJ1dCB3YXMgYnVzeSBkb2luZyBhIHN0YXRlIGNoYW5nZSwgc3RpbGwgcG9zdCB0aGUKCSAgYXN5bmMtc3RhcnQgbWVzc2FnZSB3aXRoIHRoZSBiYXNlX3RpbWUgcmVzZXQgZmxhZyBvciBlbHNlIHdlIG1pZ2h0IGVuZCB1cCB3aXRoCgkgIGFuIG9sZCBiYXNlX3RpbWUuCgkgIHRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgc2luayBpcyBnb2luIGFzeW5jIHRvIHBhdXNlZCBhbmQgdGhlbiBhIGZsdXNoaW5nIHNlZWsgaXMKCSAgcGVyZm9ybWVkLiBUaGlzIHdvdWxkIGNhdXNlIHRoZSBiYXNlX3RpbWUgdG8gcmVtYWluIHVubW9kaWZpZWQgYmVjYXVzZSB0aGUKCSAgYXN5bmMtc3RhcnQgbWVzc2FnZSB3YXMgbm90IHNlbnQuCgoyMDA5LTA1LTEwIDE3OjI4OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgd2luMzIgZXhwb3J0cwoKMjAwOS0wNS0xMCAxMToxNzoyNyArMDIwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgUnVuIGxpYnRvb2xpemUgYmVmb3JlIGFjbG9jYWwKCSAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgaW4gc29tZSBjYXNlcy4gRml4ZXMgYnVnICM1ODIwMjEKCjIwMDktMDUtMDcgMTY6Mzc6MzcgKzAyMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQVBJOiBBZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgYmluZGluZ3MgdGhhdCBuZWVkIHRvIHByb3ZpZGUKCSAgc29tZSBhZGRpdGlvbmFsIHVzZXIgZGF0YSB0byB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzU0NTc4Ny4KCjIwMDktMDUtMDcgMTY6MDE6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IEltcHJvdmUgZGVidWdnaW5nIGEgYml0IG9uIGludmFsaWQgVVJJcwoKMjAwOS0wNS0wNyAxMDozNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAwOS0wNS0wNyAwOTozMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgdGFnczogQVBJOiBBZGQgZnVuY3Rpb25zIHRvIGFkZCBzaW5nbGUgdGFncyB0byBHc3RUYWdMaXN0IG9yIEdzdFRhZ1NldHRlcgoJICBUaGUgbmV3IGZ1bmN0aW9ucyBhcmUgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZSgpCgkgIGFuZCBnc3RfdGFnX2xpc3RfYWRkX3ZhbHVlKCkpLiBUaGlzIGZpeGVzIGJ1ZyAjNTgxMTk4LgoKMjAwOS0wNS0wNyAwOToyODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIEdzdFVSSUhhbmRsZXI6IFVzZSBnZXRfdHlwZV9mdWxsKCkgdm1ldGhvZCBpZiBzcGVjaWZpZWQgaW5zdGVhZCBvZiBnZXRfdHlwZSgpCgkgIFRoaXMgZml4ZXMgYnVnICM1ODEyODEgYW5kIG1ha2VzIGl0IGVhc2llciBmb3IgYmluZGluZ3MgdG8KCSAgaW1wbGVtZW50IEdzdFVSSUhhbmRsZXJzLiBnZXRfcHJvdG9jb2xzX2Z1bGwoKSB3YXMgYWxyZWFkeSB1c2VkCgkgIGxpa2UgdGhpcy4KCjIwMDktMDUtMTIgMDE6NDg6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGZvciBuZXcgc3RyaW5ncyBmcm9tIGNvbnRhaW5lci1mb3JtYXQgdGFnCgoyMDA5LTA1LTEyIDAxOjMwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZSB0byByZWxlYXNlIGRvY3MKCjIwMDktMDUtMTIgMDE6MTM6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVuYW1lIENWUyAtPiBnaXQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCgoyMDA5LTA1LTEyIDAwOjQ3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIHRoZSBHTGliIHJlcXVpcmVtZW50IHRvIEdMaWIgPj0gMi4xNgoJICBhcyBwZXIgdGhlIE5ldyBSZWdpbWUgKHNlZSB3aWtpKS4KCjIwMDktMDUtMTIgMDA6MDk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICB4bWxyZWdpc3RyeTogcmVtb3ZlIHRoZSBvbGQgeG1sIHJlZ2lzdHJ5CgkgIE5vIHBvaW50IGluIGtlZXBpbmcgaXQgYXJvdW5kIHJlYWxseS4gRml4ZXMgIzU3NzkyNi4KCjIwMDktMDUtMDcgMTY6MDg6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIGEgdGFnIGZvciB0aGUgY29udGFpbmVyIGZvcm1hdAoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTlRBSU5FUl9GT1JNQVQKCjIwMDktMDUtMDggMTY6Mjg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkZWJ1ZyBtZXNzYWdlCgkgIE1ha2UgdGhlIGRlYnVnIG1lc3NhZ2Ugc2hvdyB3aGF0J3MgYWN0dWFsbHkgaGFwcGVuaW5nICh0aGUgbWVzc2FnZQoJICByZXBsYWNlZCBoZXJlIGlzIG5vdCBuZWNlc3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoZSBvbmUgdGhhdAoJICByZXBsYWNlcyBpdCkuCgoyMDA5LTA1LTEyIDAwOjM0OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogZml4IGNvbXBpbGF0aW9uCgoyMDA5LTA0LTI0IDE5OjMyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICB0ZXN0czogc2V0IHRoZSBsYXRlbmN5LXRpbWUgdG8gc29tZXRoaW5nIGxvdwoKMjAwOS0wNC0yNCAxMzo1NToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkgIHRlc3RzOiBpbXByb3ZlIHRoZSBleGFtcGxlCgoyMDA5LTA0LTI0IDEyOjM1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVGFza1Bvb2w6IHJlbW92ZSBfc2V0X2Z1bmMoKQoJICBSZW1vdmUgdGhlIHN0YXRpYyBmdW5jdGlvbiBzZXQgb24gdGhlIFRhc2tQb29sIGJlZm9yZSBfcHJlcGFyZSgpIGlzIGNhbGxlZCBhbmQKCSAgYWxsb3cgZm9yIGFzc2lnbmluZyBhIGZ1bmN0aW9uIHRvIGEgVGFzayB3aGVuIHdlIF9wdXNoKCkuCgkgIFVwZGF0ZSB0aGUgZXhhbXBsZXMKCjIwMDktMDQtMjMgMTk6NDI6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuaDoKCSAgdGVzdHM6IGFkZCBleGFtcGxlIG9mIGN1c3RvbSB0YXNrcG9vbHMKCSAgQWRkIGFuIGV4YW1wbGUgdG8gZGVtb25zdHJhdGUgdGhlIHVzZSBvZiBhIGN1c3RvbSB0YXNrcG9vbCBhbmQgaG93IHRvIGNvbmZpZ3VyZQoJICBpdCBvbiB0aGUgdGFzay4gQ3VycmVudGx5IHRoZSB0YXNrcG9vbCBkb2VzIG5vdCBkbyBtdWNoIHlldCBidXQgaXQnbGwgY3JlYXRlCgkgIHNvbWUgY3VzdG9tIHRocmVhZHMgbGF0ZXIgb24uCgoyMDA5LTA0LTIzIDE5OjQxOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBmaXggYSBjb21tZW50CgoyMDA5LTA0LTIzIDE5OjQxOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRlc3RzOiBjbGVhbnVwIHNvbWUgY29kZQoKMjAwOS0wNC0yMyAxNzo0ODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBQYWQ6IHBvc3QgU1RSRUFNX1NUQVRVU19UWVBFX0NSRUFURQoJICBQb3N0IGEgc3RyZWFtLXN0YXR1cyBtZXNzYWdlIGluZGljYXRpbmcgdGhhdCBhIG5ldyB0YXNrIHdhcyBjcmVhdGVkIHNvIHRoYXQgdGhlCgkgIGFwcGxpY2F0aW9uIGhhcyBhIGNoYW5jZSB0byBjaGFuZ2UgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHRhc2suCgkgIEZpeCB1bml0IHRlc3QgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIG5ldyByZWYgb2YgdGhlIG1lc3NhZ2UuCgoyMDA5LTA0LTIzIDE3OjI0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgdGFzayBtZXRob2RzCgoyMDA5LTA0LTIzIDE3OjE5OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogYWRkIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBwb29sCgkgIEFkZCBnZXR0ZXIgYW5kIHNldHRlciBmb3IgY29uZmlndXJpbmcgdGhlIEdzdFRhc2tQb29sIHRvIHVzZSBmb3IgYSBHc3RUYXNrLgoKMjAwOS0wNC0yMyAxNzowNToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIFRhc2s6IHJlbWVtYmVyIHBvb2wKCSAgUmVtZW1iZXIgdGhlIHBvb2wgd2UgY3VycmVudGx5IGhhdmUgb3VyIHRhc2sgcnVubmluZyBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgdG8KCSAgam9pbiB0aGUgdGFzayBsYXRlciBvbi4KCSAgRml4IGEgbGVhayBvZiB0aGUgdGFza3Bvb2wuCgoyMDA5LTA0LTIzIDE2OjUzOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSAuZGVmcyBmaWxlIHdpdGggdGFza3Bvb2wgbWV0aG9kcwoKMjAwOS0wNC0yMyAxNjo1MzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGZpeCBkZWFkbG9jayBkdWUgdG8gdHlwbwoKMjAwOS0wNS0xMiAwMDoyNToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IHVzZSBHc3RUYXNrUG9vbCBmb3IgbWFuYWdpbmcgdGhyZWFkcwoJICBVc2UgdGhlIG5ldyBHc3RUYXNrUG9vbCB0byBoYW5kbGUgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA5LTA0LTIzIDE2OjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogZml4IGRvY3MsIG1ha2UgcHVzaC9qb2luIGdlbmVyaWMKCSAgRml4IHNvbWUgbW9yZSBkb2NzLgoJICBNYWtlIF9wdXNoKCkgcmV0dXJuIGEgZ2VuZXJpYyBpZCAodGhpcyBjYW4gYmUgc29tZXRoaW5nIGVsc2UgdGhhbiBhIEdUaHJlYWQgaW4KCSAgc29tZSBjYXNlcykgYW5kIG1ha2UgX2pvaW4oKSB1c2UgdGhhdCBnZW5lcmljIGlkLgoKMjAwOS0wNC0yMyAxNTo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBhZGQgbmV3IG9iamVjdCB0byBtYW5hZ2UgdGhyZWFkcwoJICBBZGQgYSBuZXcgb2JqZWN0IEdzdFRhc2tQb29sIHRvIG1hbmFnZSB0aGUgc3RyZWFtaW5nIHRocmVhZHMuCgkgIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBjcmVhdGUgYW5kIHVzZSBjdXN0b20gY29uZmlndXJlZCB0aHJlYWRzLgoKMjAwOS0wNC0yMiAxMjowNDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICBleGFtcGxlczogc2V0IGJ1cyBoYW5kbGVyIGJlZm9yZSBzdGF0ZSBjaGFuZ2UKCSAgV2UgbmVlZCB0byBzZXQgdGhlIGJ1cyBoYW5kbGVyIGJlZm9yZSBzdGFydGluZyB0aGUgcGlwZWxpbmUgb3Igd2UgbWlnaHQganVzdAoJICBtaXNzIHRoZSBtZXNzYWdlIHdlIGFyZSBsb29raW5nIGZvci4KCjIwMDktMDQtMjIgMTA6MTY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0ZXN0czogYWRkIGV4YW1wbGUgYXBwIGZvciBzdHJlYW0tc3RhdHVzCgkgIEFkZCBhbiBleGFtcGxlIGFwcGxpY2F0aW9uIHRoYXQgYWRqdXN0cyB0aGUgdGhyZWFkIHByaW9yaXR5IG9mIGEgdGFzayB1c2luZyB0aGUKCSAgc3RyZWFtLXN0YXR1cyBtZXNzYWdlcy4KCjIwMDktMDQtMjEgMTk6MTU6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVGFzazogYWRkIG1ldGhvZCB0byBzZXQgdGhlIHByaW9yaXR5CgkgIEFkZCBhIG1ldGhvZCB0byBjb25maWd1cmUgYSBwcmlvcml0eSBmb3IgdGhlIHRocmVhZHMgdXNlZCBieSBHc3RUYXNrLgoKMjAwOS0wNC0yMSAxNjozMDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIHRlc3RzOiBhZGQgYSB1bml0LXRlc3QgZm9yIHRoZSBzdHJlYW0tc3RhdHVzCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA1LTEyIDAwOjA1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBpbXByb3ZlIGRvY3VtZW50YXRpb24KCSAgSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGNhbGxiYWNrcy4KCjIwMDktMDQtMjEgMTU6MjU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggdW5pdC10ZXN0cyBmb3IgbmV3IHN0cmVhbS1zdGF0dXMKCSAgRml4IHRoZSB1bml0LXRlc3RzIHNvIHRoYXQgdGhleSBkb24ndCBmYWlsIG9uIHRoZSBuZXcgc3RyZWFtLXN0YXR1cyBtZXNzYWdlcwoJICB0aGF0IGFyZSBlbWl0ZWQgbm93LgoKMjAwOS0wNC0yMSAxNDo0NjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiBpbnN0YWxsIHRocmVhZCBjYWxsYmFja3Mgb2YgdGhlIHRhc2sKCSAgSW5zdGFsbCB0aHJlYWQgc3RhdHVzIGNhbGxiYWNrcyBvbiB0aGUgdGFzayBvYmplY3Qgb2YgYSBwYWQgYW5kIHBvc3QKCSAgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDQtMjIgMTA6MTQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBjbGFyaWZ5IHNvbWUgZG9jcwoKMjAwOS0wNC0yMSAxNDo0MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIFRhc2s6IGNhbGwgbGVhdmVfdGhyZWFkIGJlZm9yZSBzaWduYWxpbmcKCSAgQ2FsbCB0aGUgbGVhdmVfdGhyZWFkIGNhbGxiYWNrIGJlZm9yZSB3ZSBzaWduYWwgdGhlIHRocmVhZCBwZXJmb3JtaW5nIHRoZSBfam9pbgoJICBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlIGxpc3RlbmVyIHN0aWxsIGhhcyB2YWxpZCBpbmZvIGluIHRoZSBjYWxsYmFjay4KCjIwMDktMDQtMjEgMTM6NDI6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0TWVzc2FnZTogQWRkIFNUUkVBTV9TVEFUVVMgbWVzc2FnZSBtZXRob2RzCgkgIEFkZCBtZXRob2RzIHRvIGhhbmRsZSB0aGUgc3RyZWFtX3N0YXR1cyBtZXNzYWdlIHR5cGVzLgoKMjAwOS0wNC0yMSAxMzowNToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcms6IGFkZCAib2JqZWN0IiBxdWFyawoJICBBZGQgdGhlIG9iamVjdCBxdWFyayB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA1LTExIDIzOjQ0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgVGFzazogcmVtb3ZlIGNyZWF0ZS9qb2luIG1ldGhvZHMKCSAgUHJlcGFyZSBmb3IgdXNpbmcgdGhlIEdzdFRhc2tQb29sIG9iamVjdC4gV2UgZG9uJ3QgbmVlZCB0aGUgY3JlYXRlIGFuZCBqb2luCgkgIGNhbGxiYWNrcyBhbnltb3JlLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcG9vbC4KCjIwMDktMDQtMjAgMTc6MDc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBhZGQgcHJpdmF0ZSBkYXRhLCBmaXggcGFyZW50X2NsYXNzCgkgIFVzZSB0aGUgcGFyZW50IGNsYXNzIHRoYXQgdGhlIGdsaWIgbWFjcm8gZ2F2ZSB1cwoJICBBY3R1YWxseSBhZGQgdGhlIHByaXZhdGUgZGF0YSB0byB0aGUgdGFzay4KCjIwMDktMDQtMjAgMTc6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBob29rIHVwIGVudGVyL2xlYXZlL25vdGlmeSBjYWxsYmFja3MKCSAgSG9vcCB1cCB0aGUgbm90aWZ5L2VudGVyL2xlYXZlIGNhbGxiYWNrcy4KCjIwMDktMDUtMTEgMjM6MjM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wgdG8gZGVmcyBmaWxlCgoyMDA5LTA1LTExIDIzOjE5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogYWxsb3cgc2V0dGluZyBjYWxsYmFja3MKCSAgQWxsb3cgc2V0dGluZyB0aHJlYWQgY2FsbGJhY2tzIHRoYXQgd2lsbCBhbGxvdyB1cyB0byBjb250cm9sIHRoZSB0aHJlYWRzIHVzZWQgYnkKCSAgdGhlIHRhc2suCgoyMDA5LTA0LTIzIDE5OjQwOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGlnbm9yZSBwYWRfc3RhcnQgcmV0dXJuIHZhbHVlCgoyMDA5LTA0LTIxIDEzOjM0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogbW9yZSBTVFJFQU1fU1RBVFVTIHVwZGF0ZXMKCSAgUGFzcyB0aGUgdGhyZWFkIG9iamVjdCBpbiBhIEdWYWx1ZSwgd2hpY2ggd291bGQgYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHRvIGZpZ3VyZQoJICBvdXQgdGhlIHR5cGUgb2YgdGhlIG9iamVjdCBpbnN0ZWFkIG9mIHVzIGhhdmluZyB0byBleHBsaWNpdGx5IGNvZGUgaXQgaW4gYQoJICBtZXNzYWdlIGZpZWxkLgoKMjAwOS0wNC0yMSAwOTo0NTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBzdHJlYW0tc3RhdHVzIGRvY3VtZW50IHNvbWUgbW9yZQoKMjAwOS0wNC0yMCAxNTo1NTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IGFkZCBmaXJzdCB2ZXJzaW9uIG9mIHN0cmVhbS1zdGF0dXMKCSAgQWRkIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2UgZGVzaWduIGRvY3MuCgkgIFRoaXMgbWVzc2FnZSB3aWxsIGJlIHVzZWQgdG8gZ2l2ZSBhcHBsaWNhdGlvbnMgbW9yZSBjb250cm9sIG92ZXIgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwOS0wNC0yMSAxNzo1MzowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGFkZCBzb21lIG1vcmUgZG9jcwoKMjAwOS0wNC0yMSAxNzoxNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiB1c2UgbmV3IHRhc2sgZnVuY3Rpb24KCSAgVXNlIHRoZSBuZXcgdGFza19zZXRfc3RhdGUgZnVuY3Rpb24gYW5kIGFjdHVhbGx5IHJldHVybiBpdHMgcmVzdWx0IHRvCgkgIHRoZSBjYWxsZXIuCgoyMDA5LTA1LTExIDIyOjU5OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFRhc2s6IHVuaWZ5IHRhc2sgc3RhdGUgZnVuY3Rpb25zCgkgIEFkZCBuZXcgZ3N0X3Rhc2tfc2V0X3N0YXRlKCkgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgdGFzayBpbnN0ZWFkIG9mCgkgIGR1cGxpY2F0aW5nIHRoZSBjb2RlIGluIGVhY2ggZnVuY3Rpb24uCgkgIEFQSTogR3N0VGFzazo6Z3N0X3Rhc2tfc2V0X3N0YXRlKCkKCjIwMDktMDQtMjEgMTM6Mzc6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNZXNzYWdlOiBzbWFsbCBpbmRlbnRhdGlvbiBjaGFuZ2UuCgoyMDA5LTA1LTAyIDE0OjQzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNrcwoKMjAwOS0wNS0wMiAxNDozOTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYXZvaWQgY2FsbGluZyBfZ2V0X25hbWUoKSB0b28gbXVjaAoJICBBdm9pZCBjYWxsaW5nIGdzdF9wbHVnaW5fZ2V0X25hbWUoKSB0b28gbWFueSB0aW1lcyBidXQgaW5zdGVhZCBjYWNoZQoJICB0aGUgdmFsdWUuCgoyMDA5LTA1LTAyIDE0OjM2OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgVXNlIG5ldyBfcmVmX3Npbmsgd2hlbiB3ZSBjYW4KCjIwMDktMDUtMDIgMTQ6MzM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogYWRkIGdzdF9vYmplY3RfcmVmX3NpbmsKCSAgQWRkIHRoZSBnc3Rfb2JqZWN0X3JlZl9zaW5rKCkgbWV0aG9kIHRvIG1hdGNoIHRoZSBnbGliIG9uZS4KCSAgQVBJOiBHc3RPYmplY3Q6OmdzdF9vYmplY3RfcmVmX3NpbmsoKQoKMjAwOS0wNS0wMiAxMzowNjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhdm9pZCB0eXBlIGNoZWNrcwoKMjAwOS0wNS0wMiAxMzowMjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBhdm9pZCB0eXBlY2hlY2tzIGluIGZpbmFsaXplCgkgIEF2b2lkIHVzZWxlc3MgdHlwZWNoZWNraW5nIGluIHRoZSBmaW5hbGl6ZSBvZiBidWZmZXJzIGFuZCBzdWJidWZmZXJzLgoKMjAwOS0wNS0wMiAxMjo1OTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGF2b2lkIHR5cGVjaGVjawoKMjAwOS0wNC0yMCAxNDowMTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogY29ubmVjdCB0byBkZWVwLW5vdGlmeSB3aXRoIHJpZ2h0IG5hbWUKCSAgQ29ubmVjdCB0byB0aGUgcmlnaHQgc2lnbmFsIG5hbWUgd2l0aCAtIGluc3RlYWQgb2YgXy4KCjIwMDktMDQtMjQgMjI6MDY6MTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogU3VwcG9ydCBuZXcgcHJpbnRmIGV4dGVuc2lvbnMgaW4gZ2xpYmMgMi4xMAoJICBUaGUgcHJpbnRmIGV4dGVuc2lvbiBtZWNoYW5pc20gY2hhbmdlZCBpbiBnbGliYyAyLjEwLCBhbmQgdGhlIG9sZGVyCgkgIHJlZ2lzdGVyX3ByaW50Zl9mdW5jdGlvbiBpcyBkZXByZWNhdGVkLiBEZXRlY3QgYW5kIHVzZSB0aGUgbmV3CgkgIG1lY2hhbmlzbSB3aGVyZSBhdmFpbGFibGUuCgoyMDA5LTA0LTIwIDEyOjI1OjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBGaXggYSB0eXBvIGluIHRoZSByZWxlYXNlIHNjcmlwdAoKMjAwOS0wNS0xMSAyMToxMTo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjMuMQoKPT09IHJlbGVhc2UgMC4xMC4yMyA9PT0KCjIwMDktMDUtMTAgMjI6NDE6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjMKCjIwMDktMDUtMTAgMjI6Mzg6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTA1LTA2IDE2OjEwOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjIuNCBwcmUtcmVsZWFzZQoKMjAwOS0wNC0yNCAxOTozNjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgR3N0QmluOiBzZXQgUEVORElOR19TVEFURSBjb3JyZWN0bHkKCSAgU2V0IHRoZSBwZW5kaW5nIHN0YXRlIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBnb2luZyB0byBwZXJmb3JtIGFuIGFzeW5jCgkgIHN0YXRlX2NvbnRpbnVlIG9uIHRoZSBiaW4uCgkgIEZpeGVzICM1ODAxMjEKCjIwMDktMDQtMjEgMjA6NTA6NTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMi4zIHByZS1yZWxlYXNlCgoyMDA5LTA0LTIxIDIyOjEyOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGIzOTQxZWEgdG8gNmFiMTFkMQoKMjAwOS0wNC0xNyAxNTo0Njo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIHdpbjMyOiBkZWZpbmUgX19NU1ZDUlRfVkVSU0lPTl9fIHdoZW4gY29tcGlsaW5nIHdpdGggTWluZ1csIGZvciBfX3N0YXQ2NAoJICBOZWVkIHRvIGRlZmluZSB0aGlzIHdoZW4gdXNpbmcgTWluZ1csIHNvIHRoYXQgdGhlIGluY2x1ZGVzIHByb3ZpZGUKCSAgX19zdGF0NjQgYW5kIGZyaWVuZHMuIFdlIG5lZWQgYXQgbGVhc3QgV2luZG93cyBYUCBTUDIgZm9yIHRoaXMuCgkgIEZpeGVzICM1Njg2MzIuCgoyMDA5LTA0LTE2IDIyOjI2OjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RkZWJ1ZzogY29tcGV0ZSBzdHVicy4gRml4ZXMgIzU3OTE3Ny4KCSAgQXZvaWQgZGVmaW5lcyB3aGVuIGluY2x1ZGluZyBnc3RpbmZvLmggb3Vyc2VsZiBhbmQgY29tcGxldGUgc3R1YnMuIFN5bmMgc3R1YgoJICByZXR1cm5zIHdpdGggdGhlIGRlZmluZXMuCgoyMDA5LTA0LTE3IDExOjQ0OjExICswMTAwICBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBmb3JrKCkgZHVyaW5nIHJlZ2lzdHJ5IHNjYW5uaW5nIGlzIHVuc2FmZSBvbiBDeWd3aW4KCSAgRml4ZXMgIzU1NTk3OC4KCjIwMDktMDQtMTcgMTE6Mzk6NTkgKzAxMDAgIFlhYWtvdiBTZWxrb3dpdHogPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3RfaW5pdDogcmVsb2NhdGFiaWxpdHkgaXMgdW5uZWNlc3Nhcnkgb24gQ3lnd2luCgkgIFNlZSAjNTU1OTc4LgoKMjAwOS0wNC0xNyAxMDoxMToyMSArMDEwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogZG9uJ3QgYXNzdW1lIEdfSEFWRV9JU09fVkFSQVJHUyBpbXBsaWVzIElTTyBDOTkKCSAgTWFrZXMgaGVhZGVycyBDKysgY2xlYW4sIGVzcC4gd2l0aCB0aGUgU3VuIGNvbXBpbGVycy4KCSAgRml4ZXMgIzU2NzY5Mi4KCjIwMDktMDQtMTcgMDk6MTc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBHc3RQbHVnaW46IGZpeCBjb21waWxhdGlvbiBpZiBib3RoIEhBVkVfV0lOMzIgYW5kIEhBVkVfU0lHQUNUSU9OIGFyZSBkZWZpbmVkCgkgIE1vdmUgX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9pc19zZXR1cCBpbnRvIHRoZSBpZmRlZiBibG9jayB3aGVyZSBpdCdzCgkgIHVzZWQuIEZpeGVzICM1NzgyMDEuCgoyMDA5LTA0LTE2IDEyOjAxOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBkaXNhYmxlIENMT0NLX0xPU1QgbWVzc2FnZSBoYW5kbGluZwoJICBEaXNhYmxlIHRoZSBoYW5kbGluZyBvZiB0aGUgQ0xPQ0tfTE9TVCBtZXNzYWdlcyB1bnRpbCB3ZSBmaXhlZCBhbmQgcmVsZWFzZWQgdGhlCgkgIGVsZW1lbnRzIChydHNwc3JjKSB0aGF0IGJyZWFrIHdoZW4gd2UgcXVpY2tseSBQQVVTRS9QTEFZIHRoZSBwaXBlbGluZS4KCSAgRml4ZXMgIzU3OTEyNwoKMjAwOS0wNC0xNSAyMjoyNDo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICByZWxlYXNlOiBCdW1wIHZlcnNpb24gdG8gMC4xMC4yMi4yIGZvciBwcmUtcmVsZWFzZQoKMjAwOS0wNC0xNiAwMDowODoyMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiBVcGRhdGUgd2luMzIgYnVpbGQgZmlsZXMKCjIwMDktMDQtMTUgMjM6Mjc6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIFRQCgoyMDA5LTA0LTE1IDIyOjE3OjEwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZzogcmVnZW5lcmF0ZSBjaGFuZ2Vsb2cgd2l0aCB0aGUgZ2VuLWNoYW5nZWxvZyBzY3JpcHQKCjIwMDktMDQtMTUgMjM6MjY6MTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiByZW1vdmUgZXJyYW50IGd0ay1kb2MgY29tbWVudCBtYXJrZXIgdHJpZ2dlcmluZyBhIHdhcm5pbmcKCjIwMDktMDQtMTYgMDA6MDI6MDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBwYXJhbXNwZWNzOiByZXZlcnQgZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZSgpIGZvciByZWxlYXNlCgkgIFJldmVydCB0aGUgZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZSBBUEkgZm9yIHRoaXMgcmVsZWFzZSBzbyB3ZSBjYW4KCSAgZGlzY3VzcyBpdCBhIGJpdCBmdXJ0aGVyIGZpcnN0LgoKMjAwOS0wNC0xNSAyMzozMzoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGxvZ2dpbmc6IGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyB3aGVuIGRpc2FibGluZyBkZWJ1ZyBsb2dzLgoJICBUaGUgdmFyIHdhcyBOVUxMIGFueXdheSwgYmFjYXVzZSBvZiB0aGUgaWZkZWZzIHRoZXJlLCB0aGUgbWVzc2FnZSBtYWtlcyBubwoJICBzZW5zZSBpbmNsdWRpbmcgaXQuCgoyMDA5LTA0LTE1IDIzOjEyOjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGRlYnVnOiBzaG93IGVuYWJsZWQvZGlzYWJsZWQgaW4gY29uZmlndXJlIGFuZCBmaXggYnVpbGQgZm9yIGRpc2FibGVkCgkgIFdoZW4gaXRzIGRpc2FibGVkLCB3ZSBwb2lzb24gc29tZSBzeW1ib2xzIHRvIGZvcmNlIGEgYnVpbGQgZXJyb3IgaWYgdGhleSBhcmUKCSAgdXNlZC4gRHVubm8gaG93IHVzZWZ1bCB0aGlzIGFjdWFsbHkgaXMsIGJ1dCB3ZSBuZWVkIHRvIGRpc2FibGUgdGhlIHBvaXNvbmluZwoJICB3aGVuIHdlIGluY2x1ZGUgdGhpcyBvdXJzZWxmLiBBbHNvIGRvbid0IGRlZmluZSBzb21lIG9mIHRoZSBkdW1taWVzLCBhcyB0aGV5CgkgIGFyZSBnZXR0aW5nIHJlcGxhY2VkIHdpdGggZGVmaW5lcyBhbmQgdGhhdCBjcmVhdGVzIGNvZGUgdGhhdCBkb2VzIG5vdCBjb21waWxlLgoKMjAwOS0wNC0xNSAxOTo1ODozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIFVzZSBnX29uY2VfaW5pdF8qKCkgaW5zdGVhZCBvZiBHT25jZSBmb3IgdGhlIGVudW0gdHlwZXMKCjIwMDktMDQtMTUgMTM6MDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHN0YXRpY3BhZHRlbXBsYXRlOiBVcGRhdGUgZG9jcyBvZiBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyAoKQoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyAoKSBhY3R1YWxseSByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZQoJICBjYXBzIGFuZCBpdCdzIGNsZWFuZXIgdG8gdW5yZWYgdGhlbSBhZnRlciB1c2FnZS4gVGhlIGNvcmUgd2lsbCwgaG93ZXZlciwKCSAgYWx3YXlzIGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGNhcHMgc28gdGhpcyBkaWRuJ3QgcmVzdWx0IGluIGEgbWVtb3J5CgkgIGxlYWsuCgoyMDA5LTA0LTE0IDIyOjMyOjIxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgZG9jczogdXNlIHJlYWwgPG5vdGU+IHRhZ3MgYXMgdGhleSBsb29rIG5pY2UgaW4gbmV3IGd0ay1kb2MKCjIwMDktMDQtMTQgMTI6MjA6MzcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgRml4IGxvY2tpbmcgaW4gZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZQoKMjAwOS0wNC0xNCAyMjowNzozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmYWN0b3Igb3V0IGR1cGxpY2F0ZWQgY29kZSBhbmQgYWRkIGEgZGVzY3JpcHRpb24gZm9yIGl0LgoJICBBbHNvIGZpeCB0eXBvIGluIHRoZSB0ZXN0cyB3aGlsZSByZXZpZXdpbmcgdGhlbS4KCjIwMDktMDQtMTQgMTk6MTI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogYWRkIHNpbXBsZSBkb2MgYmx1cmIKCjIwMDktMDQtMTQgMTk6MTE6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWNzOiBhZGQgbm90ZSBhYm91dCByYWN5bmVzcwoJICBBZGQgYSBub3RlIGFib3V0IHBvdGVudGlhbCByYWN5bmVzcyBpbiBfaXNfbXV0YWJsZSgpLgoKMjAwOS0wNC0xNCAxMDozMjowNyArMDIwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBtdXRleCB0byBkbyBjb25zb2xlIGNvbG9ycyBvbiB3aW5kb3dzCgkgIFVzZSBhIHN0YXRpYyBtdXRleCB0byBrZWVwIHRoZSBjb25zb2xlIGNvbG9ycyBhbmQgY29udGV4dCB0b2dldGhlciB3aGVuCgkgIGRlYnVnZ2luZyB3aXRoIGNvbG9ycyBvbiBXaW5kb3dzLgoJICBGaXhlcyAjNTE3MjMxLgoKMjAwOS0wNC0xMyAxNDoyNzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICBkb2NzOiBhZGQgU2luY2U6IHRhZ3MgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBwYXJhbSBzcGVjIEFQSQoJICBBbmQsIGZvciBvdXIgcmVsZWFzZSBtYW5hZ2VyLCB0aGUgaW4tY29tbWl0LW1lc3NhZ2Uga2V5d29yZHMKCSAgZm9yIHRoZSBwcmV2aW91cyBjb21taXQ6CgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUkVBRFkKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9QQVVTRUQKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9QTEFZSU5HCgkgIEFQSTogZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZQoKMjAwOS0wMi0yMCAxMTowOToxOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgQWRkIHBhcmFtIHNwZWMgZmxhZ3MgZm9yIHdoZW4gYSBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZAoJICBBZGRzIEdTVF9QQVJBTV9NVVRBQkxFKiBmbGFncyB0byBpbmRpY2F0ZSBpbiB3aGljaCBzdGF0ZXMgYQoJICBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZCBhbmQgdGFrZSBlZmZlY3QuICBGaXhlcyAjNTcxNTU5CgoyMDA5LTA0LTEwIDE0OjE1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBoYW5kbGUgY2xvY2stbG9zdCBtZXNzYWdlcwoJICBXaGVuIHdlIHJlY2VpdmUgYSBjbG9jay1sb3N0IG1lc3NhZ2UsIHdlIG5lZWQgdG8gc2VsZWN0IGEgbmV3IGNsb2NrIGluIHRoZQoJICBwaXBlbGluZSBieSBzZXR0aW5nIHRoZSBwaXBlbGluZSB0byBQQVVTRUQgYW5kIGJhY2sgdG8gUExBWUlORy4KCjIwMDktMDQtMDkgMTg6Mjc6MjEgKzAyMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIuY2E+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBhbGxvYyBwYWQKCSAgQWRkIGEgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgcGFkIHVzZWQgZm9yIHByb3h5aW5nIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gb24KCSAgdGhlIHNpbmtwYWQuCgkgIEZpeGVzICM1Nzc4OTEuCgoyMDA5LTA0LTA5IDExOjUxOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFsd2F5cyBtYXJrIHBlbmRpbmdfYXN5bmNfZG9uZQoJICBXaGVuIHdlIGdldCBhbiBBU1lOQ19ET05FIG1lc3NhZ2Ugd2hlbiBhIHN0YXRlIGNoYW5nZSB3YXMgYnVzeSwgc2V0IHRoZQoJICBwZW5kaW5nX2FzeW5jX2RvbmUgZmxhZyBzbyB0aGF0IGFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UgY29tcGxldGVzLCB0aGUgYmluIGNhbgoJICBjaGVjayBpZiBhbGwgYXN5bmMgZWxlbWVudHMgYXJlIGZpbmlzaGVkLiBEb24ndCBvbmx5IGRvIHRoaXMgZm9yIHRoZSBiaW4gaXRzZWxmCgkgIGJ1dCBmb3IgYWxsIGVsZW1lbnRzLgoJICBUaGlzIGZpeGVzIHNvbWUgYmlucyBpbiBiaW5zIHRoYXQgc2ltdWxhdGUgYXN5bmMgc3RhdGUgY2hhbmdlcyBieSBwb3N0aW5nIEFTWU5DCgkgIG1lc3NhZ2VzIChzdWNoIGFzIHNkcHBhcnNlIGluIHVyaWRlY29kZWJpbi9wbGF5YmluMikuCgoyMDA5LTA0LTA5IDExOjQyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGF0aW9uLCAlMDh4IG5lZWRzIGFuIHVuc2lnbmVkIGludAoJICAlMDh4IG5lZWRzIGFuIHVuc2lnbmVkIGludCwgc28gZ2l2ZSBpdCB0aGF0LgoKMjAwOS0wNC0wNiAwMToyNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgRklYTUUgYW5kIERVTVBNRU0gbG9nIGxldmVscyBhbmQgY29udmVuaWVuY2UgbWFjcm9zCgkgIFR3byBuZXcgbG9nIGxldmVscyB0byBkdW1wIEZJWE1FcyBpbnRvIHRoZSBsb2cgYW5kIHRvIGxvZyBkYXRhCgkgIGluIGZvcm0gb2YgYSBoZXggZHVtcCAoIzU3ODExNCkuCgkgIEFQSTogR1NUX0NBVF9GSVhNRV9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX01FTURVTVBfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9GSVhNRQoJICBBUEk6IEdTVF9DQVRfTUVNRFVNUAoJICBBUEk6IEdTVF9GSVhNRV9PQkpFQ1QKCSAgQVBJOiBHU1RfTUVNRFVNUF9PQkpFQ1QKCSAgQVBJOiBHU1RfRklYTUUKCSAgQVBJOiBHU1RfTUVNRFVNUAoKMjAwOS0wNC0wOCAxODoxMzo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jczogeHJlZiBtb3JlCgoyMDA5LTA0LTA4IDE3OjQ5OjE4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHJlbW92ZSB0aGUgaGFja3MgdG8gd29ya2Fyb3VuZCB0aGUgcGFkLWxlYWsKCjIwMDktMDQtMDggMTU6MjQ6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogZW5hYmxlIGNvZGUgdG8gZml4IHRoZSBsZWFrLCBub3cgdGhhdCB0aGUgZGVwcyBoYXZlIGJlZW4gcmVsZWFzZWQKCSAgR29vZCBhbmQgZmZtcGVnIGFyZSBhY3R1YWxseSBtdWx0aXBsZSByZWxlYXNlcyBiZXlvbmQsIHNvIHRoYXQgdGhpcyBpcyBub3cgc2FmZQoJICB0byBkby4KCjIwMDktMDQtMDQgMjE6MTg6MjMgKzAzMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkMGVhODllIHRvIGIzOTQxZWEKCjIwMDktMDQtMDQgMTQ6NTM6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4YjNkOTEgdG8gZDBlYTg5ZQoKMjAwOS0wNC0wNCAxNDo0MjowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZW1vdmUgZGVhZCBhc3NpZ25tZW50CgkgIGZpcnN0X2ZsYWcgd2lsbCBiZSBlaXRoZXI6CgkgICogcmV3cml0dGVuIHdpdGhvdXQgYmVpbmcgcmVhZCBpZiB3ZSBsb29wIGFnYWluIChsaW5lIDI4NCkKCSAgKiBub3QgcmVhZCBhZ2FpbiBpZiB3ZSBkb24ndCBsb29wCgoyMDA5LTA0LTA0IDE0OjM5OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLgoJICBzc3RhcnQvc3N0b3AvcnN0YXJ0L3JzdG9wIGFyZSBhbGwgZWl0aGVyOgoJICAqIGFzc2lnbmVkIHZhbHVlcyBsYXRlciBvbiBiZWZvcmUgYmVpbmcgdXNlZCBpbiAnZG9fdGltZXM6JyAoRU9TIGFuZCBidWZmZXJzKQoJICAqIG5vdCB1c2VkIChub24tRU9TIGV2ZW50cykKCjIwMDktMDQtMDQgMTQ6Mzg6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhcmlhYmxlIHdpbGwgbm90IGJlIHJlYWQgYmVmb3JlIGl0J3MgYXNzaWduZWQgYSB2YWx1ZSBsaW5lIDk0Mi85NDUKCjIwMDktMDQtMDQgMTQ6Mzc6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3R0YWdsaXN0OiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBXZSBkb24ndCBuZWVkIHRvIGFsbG9jYXRlIGEgdmFyaWFibGUgaWYgaXQncyB0aGUgcmV0dXJuIG9mIGEgZnVuY3Rpb24gY2FsbAoJICBhbmQgd2Ugb25seSBjaGVjayBpdCBvbmNlLgoKMjAwOS0wNC0wNCAxNDozNTozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBPbmx5IHVzZSBtZXRob2RzIHVzZWQgaW4gZ18qIGNoZWNrcyBpZiBnbGliIGNoZWNrcyBhcmUgZGlzYWJsZWQKCjIwMDktMDQtMDQgMTA6NTk6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBnc3Q6IFVzZSBnX29uY2VfaW5pdCogb3IgR19ERUZJTkVfVFlQRQoKMjAwOS0wNC0wNCAxMDoyMDozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGdzdDogVXNlIEdfREVGSU5FX1RZUEUgYW5kIGZyaWVuZHMgb3IgYXQgbGVhc3QgZ19vbmNlX2luaXRfKiBpbiB0aGUgX2dldF90eXBlKCkgZnVuY3Rpb25zCgoyMDA5LTA0LTA0IDEwOjE4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGdzdDogVXNlIEdfREVGSU5FX1RZUEUgYW5kIGRvbid0IGNhbGwgZ190aHJlYWRfaW5pdCgpIGZyb20gY2xhc3NfaW5pdAoJICBjbGFzc19pbml0IGlzIHRvbyBsYXRlIGZvciBjYWxsaW5nIGdfdGhyZWFkX2luaXQoKSBhcyBnX3RocmVhZF9pbml0KCkKCSAgbmVlZHMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgR09iamVjdCBmdW5jdGlvbi4KCjIwMDktMDQtMDMgMTM6NDY6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVXNlIGdfc2xpY2VfY29weSBpbnN0ZWFkIG9mIGdfc2xpY2VfZHVwLgoJICBBIChidWdneSkgZ2xpYiBnX3NsaWNlX2R1cCBtYWNybyBtYXkgY2F1c2UgY29tcGlsZXIgd2FybmluZ3Mgb24gZS5nLiB4ODZfNjQuCgoyMDA5LTA0LTAzIDEyOjIxOjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YWx1ZSBvZiBwcm9wIGlzIGJlaW5nIG92ZXJ3cml0dGVuIGp1c3QgYWZ0ZXIgd2l0aG91dCBiZWluZyByZWFkLgoKMjAwOS0wNC0wMyAxMjoyMDozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICAndHlwZScgaXMgbmV2ZXIgdXNlZCB1bnRpbCBsaW5lIDE4NDcgd2hlcmUgaXQncyBvdmVyd3JpdHRlbi4KCjIwMDktMDQtMDMgMTI6MTk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhbHVlIHNldCB0byB0b19jb3B5IGF0IHRoYXQgbGluZSBpcyBuZXZlciB1c2VkLCBhbmQgaXMgb3ZlcndyaXR0ZW4KCSAgZnVydGhlciBkb3duIGJlZm9yZSBiZWluZyByZWFkLgoKMjAwOS0wNC0wMyAxMjoxNzozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBUaGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSBpc24ndCB1c2VkIGFmdGVyIHRoYXQgY2FsbC4KCjIwMDktMDQtMDMgMTI6MTU6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IHJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudC4KCSAgSWYgdGhhdCBibG9jayBpcyBlbnRlcmVkLCB0aGVuIHN0YXJ0X3RpbWUgYmVjb21lcyBHU1RfQ0xPQ0tfVElNRV9OT05FLgoJICBTaW5jZSBzdGFydF90aW1lIGlzIGludmFsaWQsIHRoZSBjb2RlIHdpbGwgZW50ZXIgdGhlIGJsb2NrIGF0IGxpbmUgNDM0IGFuZAoJICBuZXdfYmFzZV90aW1lIHdpbGwgYmUgc2V0IHRoZXJlLgoKMjAwOS0wNC0wMyAxMjoxMzozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogcmVtb3ZlIHZhcmlhYmxlIG9ubHkgdXNlZCBmb3IgYSBjaGVjay4KCSAgdGhhdCB2YXJpYWJsZSBpc24ndCB1c2VkIGFueXdoZXJlIGVsc2Ugd2l0aGluIHRoYXQgYmxvY2suCgoyMDA5LTA0LTAzIDEyOjEzOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luayA6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIHN5bmMgaXMgbmV2ZXIgdXNlZCBhbnl3aGVyZSBpbiB0aGF0IGNvZGUuCgoyMDA5LTA0LTAzIDEyOjEyOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgdW51c2VkIHZhcmlhYmxlIGluIHRoZSAjaWYgMCBibG9jay4KCSAgVGhhdCB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgYnkgdGhlIGNvZGUgd2hpY2ggaGFzIGJlZW4gaWYgMCdkCgoyMDA5LTA0LTAzIDExOjU2OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgUmVtb3ZlIHVudXNlZCBpbmNyZW1lbnRzIGFzIGRldGVjdCBieSBMTFZNJ3MgQ0xhbmcgc3RhdGljIGFuYWx5emVyLgoKMjAwOS0wNC0wMyAxMTo1Mjo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGRldGVjdGVkIGJ5IExMVk0ncyBDbGFuZyBzdGF0aWMgYW5hbHl6ZXIuCgoyMDA5LTA0LTAzIDExOjE5OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGltcHJvdmUgQVBJIHJlZmVyZW5jZSBmb3IgZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSgpCgoyMDA5LTA0LTAyIDEzOjMyOjU4ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZ3N0L2dzdGJpbi5oOgoJICBkb2NzOiBleHBsYWluIHJlZiBvd25lcnNoaXAgZm9yIGhhbmRsZV9tZXNzYWdlIGltcGxlbWVudGF0aW9ucwoKMjAwOS0wNC0wMiAxMDo0MzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogQ2FsbCBnc3RfY2hlY2tfaW5pdCgpIGJlZm9yZSBjcmVhdGluZyB0aGUgc3VpdGUKCSAgVGhpcyBhbGxvd3MgdXNpbmcgdGhlIEdTdHJlYW1lciBvciBHT2JqZWN0IEFQSSBpbiB0aGUgc3VpdGUKCSAgY3JlYXRpb24gZnVuY3Rpb24uCgoyMDA5LTAzLTMxIDE4OjE0OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4ZXMgZXJyb3Igd2hlbiBESVNBQkxFX0ZBVUxUX0hBTkRMRVIgaXMgZGVmaW5lZAoJICBXaGVuIGRlZmluZWQsIHRoaXMgbWFjcm8gcHJldmVudGVkIHRoZSBkZWNsYXJhdGlvbiBvZiAnd2FpdGluZ19lb3MnLCBjYXVzaW5nIGFuIGVycm9yLgoKMjAwOS0wMy0yNiAxNzoyNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyLiBBbHdheXMgY2FsbHMgX3N1Z2dlc3QsIGV2ZW4gd2l0aCBOVUxMIGNhcHMuIEZpeGVzICM1NzQ4MDUKCjIwMDktMDMtMzAgMTU6NDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IERvbid0IGRlZmluZSBnbG9iYWwgYnVmZmVycyB2YXJpYWJsZSwgaXQncyBhbHJlYWR5IGRlZmluZWQgYnkgbGliZ3N0Y2hlY2sKCjIwMDktMDMtMzAgMTA6MzM6NTEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJICBkb2NzOiBTb21lIGdyYW1tYXIgYW5kIHR5cG8gY29ycmVjdGlvbnMuCgoyMDA5LTAzLTI5IDEzOjQxOjIyICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYW5hLmFtYW50ZXM+CgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkgIEZpeCB0eXBvLgoKMjAwOS0wMy0yNyAxNzozMDoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBpbml0IHZhcmlhYmxlLCB0aGF0IGlzIHJlZmVyZW5jZWQgaW4gZXJyb3IgY2FzZSBiZWxvdyB0aGUgZmFpbDogbGFiZWwKCjIwMDktMDMtMjcgMTY6MTU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHdha2V1cCB0aGUgYXN5bmMgdGhyZWFkIGEgYml0IG1vcmUKCSAgQWxzbyB3YWtlIHVwIHRoZSBhc3luYyB0aHJlYWQgd2hlbiBpdCBpcyBkb2luZyBhbiBhc3luYyB3YWl0IGZvciBhbiBlbnRyeS4KCjIwMDktMDMtMjcgMTY6MTU6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggYSBsaXR0bGUgZGVidWcgbWVzc2FnZQoKMjAwOS0wMy0yNiAxMzowNzo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBjaGVjayBmb3Igbm90IHJlYWRpbmcgYmV5b25kIHRoZSBkYXRhIGFyZWEuIEZpeGVzICM1NzY4NDIKCSAgQ2hlY2sgYWxsIHJlYWRzIGFnYWluc3QgdGhlIGVuZCBvZiB0aGUgZGF0YSByZWdpb24uIFJvbGwgYmFjayByZWdpc3RyYXRpb24gb2YKCSAgcGFydGlhbCByZWFkcy4KCjIwMDktMDMtMjUgMTE6MDM6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBhIHBhZ2UgYWJvdXQgYnVpbGRpbmcgZ3N0cmVhbWVyIGFuZCBhcHBzCgoyMDA5LTAzLTI2IDEzOjA4OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkcyBmbGFnIGZvciBlb3Mgb24gc2h1dGRvd24gaW4gZ3N0LWxhdW5jaC4gRml4ZXMgIzU3NTgxNC4KCjIwMDktMDMtMjYgMjI6MDU6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIFVOU0NIRURVTEVEIGNoZWNrcyB0aHJlYWRzYWZlCgkgIE1vdmUgdGhlIGNoZWNrcyBmb3IgdXNpbmcgYW4gdW5zY2hlZHVsZWQgZW50cnkgZnJvbSB0aGUgdW5zYWZlIEdzdENsb2NrIHRvIHRoZQoJICBTeXN0ZW1DbG9jayBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gcGVyZm9ybSB0aGUgY29ycmVjdCBsb2NraW5nLgoJICBmaXggYSBsZWFrIGFuZCBwb3RlbnRpYWwgZGVhZGxvY2sgdGhlbiB0aGUgYXN5bmMgdGhyZWFkIGZhaWxzIHRvIHN0YXJ0LgoJICBTcHJpbmtsZSBzb21lIEdfTElLRUxZIGFyb3VuZCBiZWNhdXNlIHdlIGNhbi4KCjIwMDktMDMtMjYgMjE6NDA6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBwZW5kaW5nIGFzeW5jIHdha2V1cCBzb29uZXIKCSAgUmVtb3ZlIGEgcGVuZGluZyBhc3luYyB3YWtldXAgYmVmb3JlIHdlIGNoZWNrIGlmIHRoZSBuZXh0IGVudHJ5IGlzIFVOU0NIRURVTEVECgkgIGJlY2F1c2Ugd2UgbWlnaHQgbGVhdmUgdGhlIGNvbnRyb2wgc29ja2V0IGJ1c3kuCgoyMDA5LTAzLTI2IDE5OjMzOjQxICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IENvcnJlY3RlZCBhIGRvY3VtZW50YXRpb24gdHlwby4KCjIwMDktMDMtMjYgMTk6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGFkZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA5LTAzLTI2IDE4OjQ2OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiByZXdvcmsgdGhlIHdha2V1cCBvZiBlbnRyaWVzLgoJICBLZWVwIGEgY291bnRlciBmb3IgdGhlIGFtb3VudCBvZiBvdXRzdGFuZGluZyB3YWtldXBzIHRoYXQgd2UgcHJvZHVjZSBhbmQgb25seQoJICBwZXJmb3JtIGEgd3JpdGUvcmVhZCB0byB0aGUgY29udHJvbCBzb2NrZXQgd2hlbiAxIG9yIDAgcmVzcGVjdGl2ZWx5LgoJICBkb24ndCBwb2xsIHdoZW4gd2FpdGluZyBmb3IgdGhlIGVudHJpZXMgdG8gYmUgdW5ibG9ja2VkIGFuZCBjbGVhciB0aGVpciB3YWtldXAKCSAgY291bnRzLCBqdXN0IGFjdCBvbiB0aGUgc2lnbmFsIHdoZW4gdGhlIHdha2V1cCBjb3VudCBpcyAwLgoJICB1bnNjaGVkdWxlZCBlbnRyaWVzIHdpbGwgY2xlYXIgdGhlaXIgd2FrZXVwIGNvdW50IHRoZW1zZWx2ZXMuCgkgIEtlZXAgdHJhY2sgb2Ygd2hlbiB3ZSB3YWtldXAgdGhlIGFzeW5jIHRocmVhZCBiZWNhdXNlIHRoZSBsaXN0IG9mIGVudHJpZXMgaGFzCgkgIGNoYW5nZWQuCgkgIGRvbid0IHRyeSB0byBzZWUgaWYgdGhlIGxpc3QgY2hhbmdlZCBiZWNhdXNlIHdlIGNhbid0IHJlYWxseSBrbm93IHdoZW4gb25lIGVudHJ5CgkgIGlzIGFkZGVkIG11bHRpcGxlIHRpbWVzLgoJICBPbmx5IHdha2UgdXAgdGhlIGFzeW5jIHRocmVhZCB3aGVuIHdlIGFkZCBhbiBhc3luYyBlbnRyeSB0byB0aGUgaGVhZCBvZiB0aGUgbGlzdAoJICBhbmQgdGhlIG9sZCBlbnRyeSB3YXMgQlVTWS4KCjIwMDktMDMtMjUgMTc6MzE6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEZpeCB1cCBkb2N1bWVudGF0aW9uIHN0cmluZ3MuCgkgIE5vdGUgdGhlIGNoYW5nZWQgYmVoYXZpb3VyIG9mIGdzdF9wb2xsX3dhaXQgZm9yIHRpbWVyIEdzdFBvbGwncywgYW5kCgkgIGZpeCBhIGNvdXBsZSBvZiBzcGVsbGluZyBlcnJvcnMuCgoyMDA5LTAzLTI2IDE1OjU1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZml4IDIgd2FrZXVwIHJhY2VzLgoJICB3aGVuIGFuIGVudHJ5IGJlaW5nIHdhaXRlZCBvbiBpbiB0aGUgYXN5bmMgdGhyZWFkIGlzIHVuc2NoZWR1bGVkLCBjbGVhciB0aGUKCSAgd2FrZXVwIHF1ZXVlIHNvIHdlIGNhbiBjb250aW51ZSB3YWl0aW5nIG9uIG90aGVyIGVudHJpZXMuCgkgIFdoZW4gYW4gZW50cnkgYmVpbmcgd2FpdGVkIG9uIGluIHRoZSBhc3luYyB0aHJlYWQgaXMgdW5sb2NrZWQgYmVjYXVzZSBhbiBlYXJsaWVyCgkgIGVudHJ5IHdhcyBhZGRlZCB0byB0aGUgbGlzdCwgc2V0IHRoZSBlbnRyeSB0byBPSyBhZ2Fpbi4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKCSAgb25seSB0aGUgZW50cmllcyBiZWluZyB3YWl0ZWQgb24gaGF2ZSB0aGUgQlVTWSBmbGFnIHNldCBhbmQgd2FrZSB1cCB0aGUgdGltZXIKCSAgcG9sbCB3aGVuIHRoZXkgYXJlIHVuc2NoZWR1bGVkLgoKMjAwOS0wMy0yNiAxNDo0NDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGlnbm9yZSAuZ2l0IGRpcmVjdG9yeSB3aGVuIHJlY3Vyc2l2ZWx5IHNjYW5uaW5nIHBsdWdpbiBwYXRocyBmb3IgcGx1Z2lucwoJICBTYXZlcyBzb21lIGN5Y2xlcy9wYW5kYXMgZm9yIHRob3NlIG9mIHVzIHdobyBydW4gdW5pbnN0YWxsZWQgc2V0dXBzLgoKMjAwOS0wMy0yNiAxNDoxNjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHJlZ2lzdHJ5OiBkbyBmc3luYygpIGJlZm9yZSBjbG9zZSgpIGFuZCByZW5hbWUoKQoJICBUaGlzIGhlbHBzIHByZXZlbnQgZmlsZXN5c3RlbS9kYXRhIGluY29uc2lzdGVuY2llcyBpbiBjZXJ0YWluCgkgIGNpcmN1bXN0YW5jZXMgb24gY2VydGFpbiBmaWxlc3lzdGVtcyAobGlrZSBleHQ0LCB4ZnMsIHViaWZzKS4KCSAgQWxzbyBzZWUgYnVnICM1NjI5NzYuCgoyMDA5LTAzLTI2IDAxOjA5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9nZXRfYnVmZmVye19pbmRleH0KCSAgQ29udmVuaWVuY2UgQVBJLCBtb3N0bHkgZm9yIGltYWdlIHRhZ3MsIHNvIHBlb3BsZSBkb24ndCBoYXZlIHRvCgkgIGZpZ3VyZSBvdXQgdGhlIHdob2xlIEdWYWx1ZS9Hc3RWYWx1ZSB0aGluZyBqdXN0IGZvciB0aGlzLgoKMjAwOS0wMy0yNSAyMzowMzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBDbGVhbiB1cCB0aGUgdGVzdHMgYSBiaXQuCgkgIEFkZCBzb21lIGNsZWFudXBzIHRvIHRoZSBzeXN0ZW0gY2xvY2sgdGVzdHMsIHRvIGZyZWUgYWxsIHRoZSBtZW1vcnkgYW5kCgkgIHVuc2NoZWR1bGUvdW5yZWYgYWxsIGNsb2NrIElEcyB3ZSBhbGxvY2F0ZS4KCSAgVXNlIGEgbXV0ZXggaW4gb25lIHRlc3QgdG8gYXZvaWQgcG90ZW50aWFsIHRocmVhZGluZyBwcm9ibGVtcyBvbiBtdWx0aWNvcmUKCSAgbWFjaGluZXMuCgoyMDA5LTAzLTI1IDIxOjM3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEFkZCBhIHRlc3QgZm9yIHN5bmMvYXN5bmMgY2xvY2tpZCBpbnRlcmFjdGlvbnMKCSAgVGhpcyB0ZXN0IHJhbmRvbWx5IGhhbmdzIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSByZWxpYWJpbGl0eSBvZgoJICB1bnNjaGVkdWxpbmcgc3luYyBhbmQgYXN5bmMgY2xvY2tJRCdzIG9uIHRoZSBzeXN0ZW0gY2xvY2suCgoyMDA5LTAzLTI2IDExOjE3OjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFVzZSBnX3NsaWNlX2R1cCgpIG5vdwoKMjAwOS0wMy0yNiAxMTowODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBzb21lIGNvbXBhdGliaWxpdHkgc3R1ZmYgZm9yIEdMaWIgPCAyLjE0CgoyMDA5LTAzLTI1IDAwOjUwOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfU1VCVElUTEVfQ09ERUMKCSAgWWVzLCAnY29kZWMnIGlzbid0IGV4YWN0bHkgdGhlIGJlc3Qgd29yZCwgYnV0IGxldCdzIGJlIGNvbnNpc3RlbnQgd2l0aCBBVURJT19DT0RFQwoJICBhbmQgVklERU9fQ09ERUMgKHdoaWNoIG1heSBiZSAncmF3JyBmb3JtYXRzIGFzIHdlbGwgYWZ0ZXIgYWxsKS4gUHJlcmVxdWlzaXRlIGZvcgoJICBidWcgICM1NzY1NTIuCgoyMDA5LTAzLTI0IDIxOjM5OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZ3N0LWxhdW5jaCBtYW4gcGFnZSBmaXgKCSAgVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgLS1nc3QtZGVidWctZGlzYWJsZSwgbm90IC0tZ3N0LWRpc2FibGUtZGVidWcuCgkgIEZpeGVzICM1NzY1NTYuIFNwb3R0ZWQgYnkgQm9nZGFuIEhhcmpvYy4KCjIwMDktMDMtMjQgMTk6MzM6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IGltcHJvdmUgcHJvcGVydHkgc2V0IGFuZCBjb252ZXJ0IGNvZGUKCSAgVXNlIHN0cmluZyBkZXNlcmlhbGlzYXRpb24gaW5zdGVhZCBvZiBjdXN0b20gcGFyc2luZyBjb2RlIHRvIGFsbG93IGZvciBhbGwKCSAgc3VwcG9ydGVkIHdheXMgb2Ygc3BlY2lmeWluZyBwcm9wZXJ0eSB2YWx1ZXMuCgkgIGZpeGVzICM1NzY1ODIuCgoyMDA5LTAzLTIzIDE1OjE4OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBidWlsZDogZGVmaW5lIHN0dWJzIHdoZW4gZGlzYWJsaW5nIGdzdC1kZWJ1ZyBzdWJzeXN0ZW0uIEZpeGVzICM1NzU5MjIKCSAgUnVubmluZyBjb25maWd1cmUgd2l0aCBlLmcuIC0tZGlzYWJsZS1kc3QtZGVidWcgd2FzIGNvbXBpbGluZyBvdXQgdGhlIGRlYnVnCgkgIHN5c3RlbSAoQUJJIGJyZWFrKS4gTm93IHN0dWJzIGFyZSBhZGRlZCBhbmQgb25seSBpZiBvbmUgZG9lcyBlLmcuCgkgIG1ha2UgQ0ZMQUdTPSItREdTVF9SRU1PVkVfRElTQUJMRUQiIHRoZSBzeW1ib2xzIGFyZSBvbW1pdHRlZC4KCjIwMDktMDMtMjMgMTI6MzQ6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IG9uY2UtcGVyLXNlY29uZCAnZW1lcmdlbmN5IHJlbmRlcmluZycgZm9yIGNhc2Ugd2hlcmUgYWxsIGJ1ZmZlcnMgYnV0IHRoZSB2ZXJ5IGZpcnN0IGFyZSBsYXRlCgkgIER1ZSB0byBhIHR5cG8gYmFzZXNpbmsgZGlkbid0IGRvIGFueSBlbWVyZ2VuY3kgcmVuZGVyaW5nIG9mIGxhdGUgYnVmZmVycwoJICBpZiB0aGUgb25seSBidWZmZXIgZXZlciByZW5kZXJlZCB3YXMgdGhlIGZpcnN0IG9uZSB3aXRoIHRpbWVzdGFtcCAwLiBUaGlzCgkgIG1lYW5zIHRoYXQgaW4gY2FzZXMgd2hlcmUgdGhlIGRlY29kZXIgaXMgdmVyeSB2ZXJ5IHNsb3csIHdlJ2QgbmV2ZXIgc2VlCgkgIGFueSBidWZmZXJzIGJ1dCB0aGUgdmVyeSBmaXJzdCBvbmUgcmVuZGVyZWQuIEZpeGVzICM1NzYzODEuCgoyMDA5LTAzLTIxIDAyOjM0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB0d2VhayB0aGUgcmVsZWFzZSBwcm9jZWR1cmUgc2NyaXB0CgoyMDA5LTAzLTIwIDE0OjEyOjU1ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gZmlsZXMgPjRHQgoJICBVc2UgNjQtYml0IGZ1bmN0aW9ucyBvbiB3aW5kb3dzIHRvIGltcGxlbWVudCBzZWVraW5nIGluIGZpbGVzIGJpZ2dlcgoJICB0aGFuIDRHQi4KCSAgRml4ZXMgIzU3NTk4OAoKMjAwOS0wMy0yMCAxMToyNjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBnZW5lcmF0aW9uIG9mIGNvbnRyb2wtY2hhbmdlIGFycmF5cy4KCSAgV2hlbiBnZW5lcmF0aW5nIGFycmF5cyBvZiBjb250cm9sIGNoYW5nZXMgdGltZXN0YW1wIHZhcmlhYmxlIHdhcyB1c2VkIGluc3RlYWQKCSAgdGhlIGxvY2FsIHRzIHZhcmlhYmxlIHRoYXQgd2UgaW5jcmVtZW50IHdoZW4gc3RlcHBpbmcgdGhyb3VnaCB0aGUgYXJyYXkuCgkgIFBvaW50ZWQgb3V0IGJ5IE1hcnRpbiBQb2tvcm55LgoKMjAwOS0wMy0yMCAwMDo0Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkZWJ1Z2dpbmc6IG1ha2UgR1NUX1BUUl9GT1JNQVQgd29yayBmb3IgcXVlcmllcyBhcyB3ZWxsCgoyMDA5LTAzLTIwIDAwOjM5OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBUEk6IGFkZCBHU1RfUVVFUllfQ0FTVAoJICBiZWNhdXNlIHdlIGNhbiwgYW5kIGZvciBjb25zaXN0ZW5jeS4KCjIwMDktMDMtMTkgMjE6Mjc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IGZpeCBmb3IgY2hlY2sgdmVyc2lvbnMgPiAwLjkuNgoJICBBIG5ldyBhcmd1bWVudCBhbGxvd2VkX2V4aXRfdmFsdWUgd2FzIGFkZGVkIGluIFNWTiByZWNlbnRseSAoIzU3NDIxMykuCgoyMDA5LTAzLTE5IDE3OjE5OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IGZpeCBnc3RfcGFkX2Nhbl9saW5rCgkgIFdlIHdlcmUgY29udmVydGluZyB0aGUgR3N0UGFkTGlua1JldHVybiB0byBhIGdib29sZWFuLCB3aGljaCBpcyBub3Qgd2hhdCB3ZSB3YW50CgkgIHRvIGRvLgoKMjAwOS0wMy0xOSAxMDo0NDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1ydHNwLXNlcnZlciBiaXRzIGFuZCBicmVhayB1cCBvdmVybHkgbG9uZyBsaW5lcwoJICBBZGQgc29tZSBvZiB0aGUgYml0cyBuZWVkZWQgZm9yIGFuIHVuaW5zdGFsbGVkIGdzdC1ydHNwLXNlcnZlciAoc28gZ2RiIHdvcmtzCgkgIG9uIHRoZSBleGFtcGxlcyBldGMuKS4gUHl0aG9uIGJpdHMgYXJlIHN0aWxsIG1pc3NpbmcsIGFuZCB3ZSBtaWdodCBuZWVkIGFuCgkgIC11bmluc3RhbGxlZC5wYyBmaWxlIGFzIHdlbGwgaW4gdGhlIGZ1dHVyZS4gQnJlYWsgdXAgdmVyeSBsb25nIGxpbmVzIHRvIG1ha2UKCSAgdGhlbSBlYXNpZXIgdG8gcmVhZCBhbmQgbWFpbnRhaW4uIEFsc28gcmVtb3ZlIGdzdC1wbHVnaW5zIHBhdGhzIGZyb20gdGhlCgkgIG9sZCBkYXlzLgoKMjAwOS0wMy0xOSAxMTo0NjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcndsb2NrczoKCSAgZG9jczogaW50ZXJlc3RpbmcgaWRlYSBmb3IgZmFzdCBydyBsb2NrcwoJICAtLQoKMjAwOS0wMy0xOSAxMToxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbCB0byB3aW5kb3dzIC5kZWYgZmlsZQoJICBBZGQgdGhlIG5ldyB3aW5kb3dzIGNtZC5leGUgY29sb3JpbmcgbWV0aG9kIHRvIHRoZSAuZGVmIGZpbGUuCgoyMDA5LTAzLTE4IDE2OjM4OjUxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtb3JlIGluZm8gYWJvdXQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGNhbiBiZSBhc3luYyBhbmQgd2hlbiBub3QuCgoyMDA5LTAzLTE4IDE5OjA3OjAwICswMTAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXUgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbW9yZSBpbmRlbnRhdGlvbiBmaXhlcwoJICBGaXhlcyAjNTE3MjMxLgoKMjAwOS0wMy0xOCAxOTowNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGluZGVudGF0aW9uIGZpeAoKMjAwOS0wMy0xOCAxODo1NzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHNpbXBseSBzb21lIG1vcmUKCjIwMDktMDMtMTggMTg6NDU6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZWZhY3RvciBkZWJ1ZyBjb2xvcnMgZm9yIHdpbjMyIGFuZCBvdGhlcgoJICBSZWZhY3RvciB0aGUgZGVidWcgbGluZSBjb2RlIHRvIHVzZSBhcyBtdWNoIGNvZGUgYXMgcG9zc2libGUgZm9yIHRoZSB3aW4zMiBhbmQKCSAgb3RoZXIgY29sb3IgY29kaW5ncy4KCSAgVXBkYXRlIGRvY3Mgd2l0aCBuZXcgc3ltYm9sLgoKMjAwOS0wMy0xOCAxNzozMDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgd2luZG93czogaW5pdGlhbCBjb21taXQgZm9yIHRlcm1pbmFsIGNvbG9ycwoKMjAwOS0wMy0xOCAxNzowMToxNiArMDEwMCAgWmVlc2hhbiBBbGkgKEtoYXR0YWspIDx6ZWVzaGFuYWsgYXQgZ25vbWUgZG90IG9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHBhZDogZml4IGdzdF9wYWRfY2FuX2xpbmsoKQoJICBNb3ZlIHRoZSBnc3RfcGFkX2Nhbl9saW5rKCkgaW1wbGVtZW50YXRpb24gZnJvbSBnc3R1dGlscyB0byBnc3RwYWQgYW5kIHVzZQoJICBnc3RfcGFkX2xpbmtfcHJlcGFyZSgpIHRvIG1ha2UgaXQgd29yayBjb3JyZWN0bHkgYW5kIGFsc28gY2hlY2sgdGhlIGNhcHMuCgkgIE1ha2UgdGhlIGJyb2tlbiBpbXBsZW1lbnRhdGlvbiBpbiBnc3R1dGlscyBzdGF0aWMuCgkgIFNtYWxsIGNsZWFudXBzIGluIHRoZSBfZ2V0X2ZpeGVkX2NhcHMoKSBmdW5jdGlvbi4KCSAgRml4ZXMgIzU3NTY4Mi4KCjIwMDktMDMtMTcgMjA6NDE6NDQgKzAwMDAgIERhdmlkIEFkYW0gPHphbmNoZXlAdWNjLmd1LnV3YS5lZHUuYXU+CgoJKiBnc3QvZ3N0LmM6CgkgIGNvbmZpZy5oIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGZpcnN0LCBlaXRoZXIgZGlyZWN0bHkgb3IgdmlhIGdzdF9wcml2YXRlLmgKCSAgRml4ZXMgYnVpbGQgd2l0aCAtV2Vycm9yIGNhdXNlZCBieSAnX0ZJTEVfT0ZGU0VUX0JJVFMgcmVkZWZpbmVkJyB3YXJuaW5nIG9uCgkgIE9wZW5Tb2xhcmlzIHdoZXJlIF9GSUxFX09GRlNFVF9CSVRTIG1heSBiZSBkZWZpbmVkIGJvdGggaW4gb3VyIGNvbmZpZy5oCgkgIGFuZCB2aWEgc3RkaW8uaCAoIzU3NTY5NSkuCgoyMDA5LTAzLTE3IDE5OjAyOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBmYXE6IHJlbW92ZSBvdXRkYXRlZCBiaXRzIGZyb20gaW5kZW50aW5nIHNlY3Rpb24KCjIwMDktMDMtMTcgMTI6MDU6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmb3J3YXJkIHNlZ21lbnQtc3RhcnQgbGlrZSBzZWdtZW50LWRvbmUgaWYgcGFyZW50IGlzIGFsc28gYSBiaW4sIGZpeGVzICM1NzU1OTguCgkgIEJpbiBjb2xsZWN0cyBzZWdtZW50LXN0YXJ0IG1lc3NhZ2VzIGFuZCBzZWdlbnQtZG9uZSBtZXNzYWdlcy4gaXQgcG9zdHMgYQoJICBzZWdtZW50LWRvbmUgbWVzc2FnZSB0byBpdHMgcGFyZW50LCBvbmNlIGl0IGhhcyByZWNlaXZlZCBhIHNlZ21lbnQtZG9uZSBmb3IKCSAgZWFjaCBzZWdtZW50LXN0YXJ0LiBJbWhvIGl0IHNob3VsZCBhbHNvIHNlbmQgYSBzZWdtZW50LXN0YXJ0IGlmIGl0IHJlY2VpdmVzIHRoZQoJICBmaXJzdCBzZWdtZW50IHN0YXJ0IGFuZCBpZiBwYXJlbnQgaXMgIT1OVUxMLiBUaGlzIGlzIG5lZWRlZCBmb3IgYmlucyBpbiBiaW5zLAoJICBzbyB0aGF0IGFsc28gaGlnaGVyIG9yZGVyIGJpbnMgY2FuIGdyb3VwIHNlZ21lbnQtc3RhcnRzIGFuZCBzZWdtZW50LWRvbmVzLgoJICBSaWdodCBub3cgaGlnaGVyIG9yZGVyIGJpbnMgd2lsbCBwb3N0IGEgc2VnbWVudC1kb25lIGZvciBlYWNoIHNlZ21lbnQtZG9uZQoJICByZWNlaXZlZC4KCjIwMDktMDMtMTYgMjA6MTI6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IGZpeCB0eXBvIGluIGdpdCBjb21tYW5kCgoyMDA5LTAzLTE1IDIzOjQwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHRoZXNlIHdhcm5pbmdzIGFyZSBzZXJpb3VzLCBnaXZlIG1vcmUgZGV0YWlsIGluIHRoZSBtZXNzYWdlCgoyMDA5LTAzLTE1IDIzOjM3OjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgZGVidWcgbG9nZ2luZyB0byBtYWtlIGl0IGVhc2llciB0byB0cmFjZSBpdAoKMjAwOS0wMy0xMyAxMDo1Njo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBGaXggaW5kZW50YXRpb24gb2YgLmggZmlsZXMKCSAgLS0KCjIwMDktMDMtMTIgMTI6MjA6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3RzOiBhcHBseSBmaXggZm9yIHJlcGxhY2UgYWxsIGFsc28gdG8gZ3N0X3RhZ19saXN0X2FkZF92YWxpc3RfdmFsdWVzLiBGaXhlcyAjNTc0MjQxCgoyMDA5LTAzLTEyIDEwOjQ4OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZG9jczogSW1wcm92ZSBzb21lIGRvY3MKCSAgUmVuYW1lIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIGFuZCBhZGQgc29tZSBSZXR1cm46IHRvIG1ha2UgdGhlIGRvY3MgbW9yZSBoYXBweS4KCjIwMDktMDMtMTIgMDA6NDE6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBkb2NzOiBmaXggbGlua2luZyB0byBjb25zdGFudCBhbmQgZnVuY3Rpb25zCgoyMDA5LTAzLTExIDE1OjIwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogZWxsaXBzaXplIGNhcHMgZmllbGRzLCBiZXR0ZXIgcGxhY2VtZW50IG9mIHVubmVnb3RpYXRlZCBjYXBzCgkgIExvbmcgY2FwcyBmaWVsZHMgbGlrZSBlbnVtcyBhcmUgZWxsaXBzaXNlZC4gSWYgY2FwcyBhcmUgbm90IG5lZ290aWF0ZWQsIHVzZQoJICBoZWFkLSBhbmQgdGFpbGxhYmVsIHRvIHBsYWNlIHRoZW0gY2xvc2VyIHRvIHRoZSBwYWRzLiBVc2Ugc21hcnRlciB3YXkgdG8gaW5kZW50LgoKMjAwOS0wMy0xMSAxMDoyNzoxNiArMDIwMCAgTGFzemxvIFBhbmR5IDxsYXN6bG9rMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogbWFrZSBjYXBzIGluIERPVCBkZWJ1ZyBncmFwaHMgbW9yZSByZWFkYWJsZS4gRml4ZXMgNTc0NDg0CgkgIFVzZSBhIG1vbm9zcGFjZSBmb250IGZvciBlZGdlIGxhYmVscyBhbmQgaW5kZW50LgoKMjAwOS0wMy0xMSAxNDoxMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEFsbG93ICV1IGFzIGNvbnZlcnNpb24gbW9kaWZpZXIgYWRkaXRpb25hbCB0byAlZCBhbmQgJXMKCjIwMDktMDMtMTEgMTE6MjM6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZ3N0YmFzZXNyYzogdW5zaWduZWQgbG9uZyBpcyAiJWx1Iiwgbm90ICIldWwiLiBGaXhlcyBidWlsZCBvbiBtYWNvc3gKCjIwMDktMDMtMTAgMjE6MDg6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGxvZ2dpbmc6IHNvbWUgYWRkaXRpb25hbCBsb2dnaW5nIGZvciB0cmFjaW5nIGNhcHMgbmVnb3RpYXRpb24uCgkgIERlbW90ZSBvbmUgbG9nIHRoYXQgY2FuIGNvbWUgcXVpdGUgb2Z0ZW4uIFJlbW92ZSBvbmUgZml4bWUgdGhhdCBpcyBkb25lLiBBcHBseQoJICBnc3QtaW5kZW50IGNoYW5nZXMuCgoyMDA5LTAzLTEwIDIxOjAzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbW1lbnQ6IGFkZCBhIGZpeG1lLTAuMTEKCjIwMDktMDMtMTAgMjE6MDE6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBmb3JtYXR0aW5nOiB0YWJzIHRvIHNwYWNlcwoKMjAwOS0wMy0wOSAyMzoxMToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3MDMyMTYzIHRvIGY4YjNkOTEKCjIwMDktMDMtMDkgMjA6MDc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGdzdHJlYW1lci5zcGVjOiBmaXggc3RyYXkgQEdMSUIyX1JFUUAgdGhhdCBkaWRuJ3QgZ2V0IGV4cGFuZGVkIHByb3Blcmx5CgoyMDA5LTAzLTA5IDE2OjA5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IHJld29yZCBzdHVmZiBhYm91dCBjdXN0b20gbWFpbmxvb3BzCgkgIEZpeGVzICM1NzQyMjkuCgoyMDA5LTAzLTA5IDE2OjAxOjIwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogZG9uJ3QgdXNlIEdTVF9USU1FX0ZPUk1BVCB3aGVuIGJ1aWxkaW5nIGZpbGVuYW1lcy4gZml4ZXMgIzU3NDYyMwoKMjAwOS0wMy0wOSAxMTozOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2FsbCBuZXcgY2FsbGJhY2tzIHNldCBpbiB0aGUgYmxvY2sgY2FsbGJhY2sKCSAgS2VlcCB0cmFjayBvZiB3aGVuIGEgbmV3IGNhbGxiYWNrIGlzIGluc3RhbGxlZCBpbiB0aGUgY2FsbGJhY2sgYW5kIGNhbGwgdGhlIG5ldwoJICBjYWxsYmFjayBpbiB0aGF0IGNhc2UuCgkgIEFkZCB1bml0IHRlc3QgZm9yIGNoZWNraW5nIHBhZCBibG9ja2luZy4KCSAgRml4ZXMgIzU3MzgyMy4KCjIwMDktMDMtMDggMTc6MjI6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBlbnVtdHlwZXMgYW5kIGNvbmZpZy5oCgoyMDA5LTAzLTA4IDE3OjE1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGltcHJvdmUgZG9jcyBmb3IgZ3N0X3RhZ19saXN0X2dldF9kYXRlKigpCgkgIE1lbnRpb24gdGhhdCB0aGUgZGF0ZSB2YWx1ZSBuZWVkcyB0byBiZSBmcmVlZCBhbmQgaG93IHRvIGZyZWUgaXQuCgoyMDA5LTAzLTA4IDEyOjAyOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmZhNzM4ZCB0byA3MDMyMTYzCgoyMDA5LTAzLTA4IDExOjE3OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2YxM2U0ZSB0byBmZmE3MzhkCgoyMDA5LTAzLTA4IDAwOjI3OjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogaW1wcm92ZSBjYXBzIGxvZ2dpbmcKCSAgRmFjdG9yIG91dCBjb2RlIHRvIGRlc2NyaWJlIGNhcHMuIEltcHJvdmUgZm9ybWF0aW5nIChubyBcbiBpbiBjYXBzIGZpZWxkcykuCgkgIENoZWNrIHBlZXIgY2FwcyB0b28gYW5kIHNob3cgYm90aCBpZiB0aGV5IGRpZmZlci4KCjIwMDktMDMtMDcgMTE6NDM6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzYzc0NTZiIHRvIDNmMTNlNGUKCjIwMDktMDMtMDcgMTA6NDM6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1N2M4M2YyIHRvIDNjNzQ1NmIKCjIwMDktMDMtMDYgMjI6MTA6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHJldmVydCBhY2NpZGVudGlhbCBjb21taXQgZnJvbSB0aGUgcXVldWUgKG1lIHNob3VsZCBzdGFydCB1c2luZyBicmFuY2hlcykKCjIwMDktMDMtMDYgMjE6NTk6MjAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgYXBpZG9jczogbWFya3VwIGV4YW1wbGUgYXMgaGlnaGxpZ2h0YWJsZSBleGFtcGxlIGFuZCBjb3B5IHNhbWUgZm9yIHN0cnVjdHVyZQoJICBzdHJ1Y3R1cmVzIGNhbiBiZSBwcmludGVkIGxpa2Ugd2UgY2FuIGRvIGZvciBjYXBzLiBNYXJrIHRoZSBleGFtcGxlIHNvIHRoYXQKCSAgZ3RrLWRvYyBjYW4gcHJldHR5IHByaW50IGFuZCB4cmVmIGl0LgoKMjAwOS0wMy0wNCAyMToyMTo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogcmVsaWFibHkgZ28gdG8gZW9zLiBGaXhlcyAjNTc0MTYwCgkgIFVwZGF0ZSBjb2xsZWN0cGFkcyBzdGF0dXMgd2hlbiByZW1vdmluZyBwYWRzLgoKMjAwOS0wMy0wNiAxMjowODo0MiArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfZXZlbnRfZGVmYXVsdCB3aGVuIHNlbmRpbmcgb3V0IHRoZSBuZXdzZWdtZW50IGV2ZW50IGluIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIFRoaXMgbWFrZXMgaWRlbnRpdHkgc2luZ2xlLXNlZ21lbnQ9dHJ1ZSAhIG9nZ211eCB3b3JrIGFnYWluIGFmdGVyIGEgY2hhbmdlIGluCgkgIG9nZ211eCAoY29tbWl0IGIwZTNkNDQ5IGluIC1iYXNlKS4KCjIwMDktMDMtMDUgMTc6NDI6MjIgKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5uZXQ+CgoJICBiYXNlc2luazogcHJvcGFnYXRlIFVQU1RSRUFNIGV2ZW50cyBpbiBwdWxsIG1vZGUgdG9vCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOiBQcm9wYWdhdGUKCSAgdXBzdHJlYW0gZXZlbnRzIGluIHB1bGwgbW9kZSB0b28uCgoyMDA5LTAzLTA1IDExOjI5OjQ4ICswMTAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IHJlbGF4IGZhaWx1cmUgdG8gZGVhY3RpdmF0ZSB1bmxpbmtlZCBwYWRzCgkgIFdoZW4gZGUvYWN0aXZhdGluZyBhIHBhZCBpbiBwdWxsIG1vZGUgdGhlIHBhZCBuZWVkcyB0byBkZS9hY3RpdmF0ZSB0aGUKCSAgcGVlciBwYWQgaXQgaXMgY29ubmVjdGVkIHRvLCBmYWlsdXJlIHRvIGJlIGFibGUgdG8gZG8gdGhpcyBpbiBhY3RpdmF0aW9uIG1vZGUKCSAgaXMgYW4gZXJyb3IuCgkgIEhvd2V2ZXIgaWYgdGhlcmUgaXMgbm8gcGVlcnBhZCwgd2UgY2FuIHN0aWxsIGRlYWN0aXZhdGUgdGhlIHBhZCBjb3JyZWN0bHkgYW5kCgkgIGFzc3VtZSB0aGUgYXBwbGljYXRpb24gd2lsbCBkZWFjdGl2YXRlIHRoZSB1bmxpbmtlZCBwZWVyIHBhZCBldmVudHVhbGx5LgoJICBGaXhlcyAjNTc0MTYzLgoKMjAwOS0wMy0wNSAxMTowMjo1OSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBHc3RQb2xsOiBzZXQgdGhlIHJldHVybiB2YWx1ZSBvbiB3aW5kb3dzCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9ucyBfcmVhZC9fd3JpdGVfY29udHJvbCgpCgkgIHJldHVybiB0aGUgYWN0dWFsIHJlc3VsdCBpbnN0ZWFkIG9mIGFsd2F5cyBGQUxTRSBvbiB3aW5kb3dzLgoJICBGaXhlcyAjNTc0MjExLgoKMjAwOS0wMy0wNCAxMDo0NjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciBDVlMtdG8tZ2l0IG1pZ3JhdGlvbgoJICBGaXhlcyAjNTczOTQ2LgoKMjAwOS0wMy0wNCAwOToyMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBHc3RBZGFwdGVyOiBEaXNjYXJkIGVtcHR5IGJ1ZmZlcnMgaW4gX3B1c2goKS4gRml4ZXMgIzU3NDAyNAoKMjAwOS0wMy0wMyAyMDowMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBVcGRhdGUgLmdpdGlnbm9yZQoKMjAwOS0wMy0wMyAxOTo1ODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGJpdHMgZm9yIHVuaW5zdGFsbGVkIGNoZWNrb3V0cyBvZiBnc3Qtb3Blbm1heCBhbmQgdG90ZW0KCjIwMDktMDMtMDIgMTY6MTc6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X3V0aWxfYXJyYXlfYmluYXJ5X3NlYXJjaCgpIGZvciBiaW5hcnkgc2VhcmNocyBvbiBhIHNvcnRlZCBhcnJheQoJICBUaGlzIHdpbGwgYmUgbW9zdGx5IHVzZWZ1bCBpbiBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIHNvbWUga2luZCBvZiBpbnRlcm5hbAoJICBzZWVrL2luZGV4IHRhYmxlLiBDdXJyZW50bHkgYWxtb3N0IGFsbCBvZiB0aGVtIChvciBldmVuIGFsbCBvZiB0aGVtKQoJICBhcmUgdXNpbmcgYSBsaW5lYXIgc2VhcmNoIGFsdGhvdWdoIHRoZSB1c2VkIGFycmF5IGlzIGFscmVhZHkgc29ydGVkLAoJICB3YXN0aW5nIHNvbWUgQ1BVIHRpbWUgd2l0aG91dCBnb29kIHJlYXNvbi4KCSAgRml4ZXMgYnVnICM1NzM2MjMuCgoyMDA5LTAyLTI4IDExOjE1OjI5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEJ1bXAgZ2xpYiByZXF1aXJlbWVudCB0byAyLjE0CgkgIEFsc28gcmVtb3ZlIGNvZGUgY29uZGl0aW9uYWwgb24gPCAyLjE0LgoKMjAwOS0wMi0yOCAxMzozNDowOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIFJlbW92ZSB3aW4zMi9jb21tb24vY29uZmlnLmguaW4gZnJvbSBNQU5JRkVTVCwgaXQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAwOS0wMi0yNyAxMzozNTozNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBQcm9wZXJseSByZXNldCB0aGUgY2Fwc2ZpbHRlciB3aGVuIHNldHRpbmcgY2FwcyBBTlkuCgoyMDA5LTAyLTI3IDEyOjM0OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdGhlIGZyYW1lc3RlcCBkcmFmdAoJICBVcGRhdGUgdGhlIGRvY3MgYSBsaXR0bGUuCgkgIEFkZCBwcm9wZXJ0eSB0byBhbGxvdyBpbmNyZW1lbnRhbCBzdGVwcGluZyBzbyB0aGF0IHdlIGNhbiByZWR1Y2UgZXhjZXNzaXZlCgkgIHF1ZXVlaW5nLgoKMjAwOS0wMi0yNiAxNTo0MDoyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW92ZSBsZWZ0IG92ZXIgaGFuZGxpbmcgb2YgdGhlIGVycm9yIGNhc2UgdG8gdGhlIGFjdGl2YXRlX2ZhaWxlZCBsYWJlbC4KCSAgSWYgd2FzIGxlZnQgYXMgZGVhZCBjb2RlLgoKMjAwOS0wMi0yNSAxOTo1OTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBVcGRhdGUgc2hhdmUgaW5pdCBzdGF0ZW1lbnQgZm9yIGNoYW5nZXMgaW4gY29tbW9uLiBCdW1wIGNvbW1vbi4KCjIwMDktMDItMjUgMTA6NTE6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IERvbid0IGF0dGVtcHQgdG8gcGFyc2UgZW1wdHkgY2FwcwoKMjAwOS0wMi0yNSAxNDoxOTowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFNldCB0eXBlZmluZCBmYWN0b3J5IGNhcHMgdG8gTlVMTCBpbnN0ZWFkIG9mIGVtcHR5IGNhcHMgaWYgdGhleSBvcmlnaW5hbGx5IHdlcmUgTlVMTAoKMjAwOS0wMi0yNSAxMTozMTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5Y2Y4YzliIHRvIGE2Y2U1YzYKCjIwMDktMDItMjQgMTU6MTA6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBDaGVjayBpZiB0eXBlZmluZCBmYWN0b3J5IGNhcHMgYXJlIE5VTEwgYmVmb3JlIGNvcHlpbmcgdGhlbQoKMjAwOS0wMi0yNCAxMTo0MDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSB1bmRlY2xhcmVkIHN5bWJvbHMgZnJvbSBkb2NzCgkgIFJlbW92ZSBzb21lIHVuZGVjbGFyZWQgc3ltYm9scyBmcm9tIHRoZSBkb2NzLgoKMjAwOS0wMi0yMyAxMzowMToxMSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIENoYW5nZSBob3cgd2luMzIvY29tbW9uL2NvbmZpZy5oIGlzIHVwZGF0ZWQKCSAgR2VuZXJhdGUgd2luMzIvY29tbW9uL2NvbmZpZy5oLW5ldyBkaXJlY3RseSBmcm9tIGNvbmZpZy5oLmluLAoJICB1c2luZyBzaGVsbCB2YXJpYWJsZXMgaW4gY29uZmlndXJlIGFuZCBzb21lIGhhcmQtY29kZWQgaW5mb3JtYXRpb24uCgkgIENoYW5nZSB0b3AtbGV2ZWwgbWFrZWZpbGUgc28gdGhhdCAnbWFrZSB3aW4zMi11cGRhdGUnIGNvcGllcyB0aGUKCSAgZ2VuZXJhdGVkIGZpbGUgdG8gd2luMzIvY29tbW9uL2NvbmZpZy5oLCB3aGljaCB3ZSBrZWVwIGluIHNvdXJjZQoJICBjb250cm9sLiAgSXQncyBrZXB0IGluIHNvdXJjZSBjb250cm9sIHNvIHRoYXQgdGhlIGdpdCB0cmVlIGlzCgkgIGJ1aWxkYWJsZSBmcm9tIFZTLgoKMjAwOS0wMi0yMyAxMDo1MjoxNCAtMDgwMCAgRGF2aWQgRmx5bm4gPGRhdmlkZkByZC5iYmMuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBBZGQgc3JjZGlyIHRvIGluY2x1ZGVzIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoJICBXaGVuIHlvdSB1c2UgZ3N0cmVhbWVyIHVuaW5zdGFsbGVkIGFuZCBidWlsZCBvdXRzaWRlCgkgIHRoZSBzb3VyY2UgdHJlZSwgdGhlIGluY2x1ZGVzIG5lZWQgdG8gYmUgc3BlY2lmaWVkIGZvcgoJICBib3RoIHRoZSBzb3VyY2UgdHJlZSBhbmQgdGhlIGJ1aWxkIHRyZWUuCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAwOS0wMi0yMyAxNzozNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBFcnJvciBvdXQgbW9yZSBzcGVjaWZpY2FsbHkgb24gZW1wdHkgY2FwcwoJICBXaGVuIHdlIGdldCBlbXB0eSBjYXBzIGZyb20gdGhlIGdldGNhcHMgZnVuY3Rpb24gaW4gdGhlIGRlZmF1bHQgbmVnb3RpYXRlCgkgIGZ1bmN0aW9uLCBwb3N0IGEgbW9yZSBkZXNjcmlwdGl2ZSBlcnJvci4KCjIwMDktMDItMjMgMTU6MjQ6MDAgKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5uZXQ+CgoJICBmaXggdXJpIGhhbmRsZXIgaXRlcmF0aW9uIGluIGdzdC1pbnNwZWN0CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IFdob29wcywgZml4IGl0ZXJhdGlvbi4KCSAgSSdtIHN0dXBpZC4KCjIwMDktMDItMjMgMTI6MzM6MTMgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBGaXggc2lnbmVkIHdoZW4gY29tcGlsaW5nIHdpdGggTVN5cy9NaW5HVwoJICBmaXggc2lnbmVkIGlzc3VlcyB3aGVuIGNvbXBpbGluZyB3aXRoIE1TeXMvTWluR1cuCgkgIEZpeGVzICM1NzI1OTEuCgoyMDA5LTAyLTIzIDEwOjUzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBEb24ndCBmb3J3YXJkIExBVEVOQ1kgZXZlbnQgd2hlbiBub3QgcmVhZHkKCSAgV2hlbiB3ZSBhcmUgbm90IHJlYWR5IHRvIGhhbmRsZSBhIGxhdGVuY3kgcXVlcnkgKHdlIGFyZSBub3QgeWV0IHByZXJvbGxlZCkgd2UKCSAgYWxzbyBkb24ndCB0cnkgdG8gZm9yd2FyZCB0aGUgbGF0ZW5jeSBldmVudCBiZWNhdXNlIHRoYXQgbWlnaHQgY2F1c2UgdW5leHBlY3RlZAoJICBlcnJvcnMgd2hlbiB1cHN0cmVhbSBpcyBub3QgeWV0IGxpbmtlZC4KCjIwMDktMDItMjIgMjI6MDk6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9jb3JlOgoJICBSZW1vdmUgY29yZSBmaWxlIGZyb20gcHJldmlvdXMgY29tbWl0CgoyMDA5LTAyLTIyIDIwOjAxOjA1ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9jb3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jX2Z1bGwKCSAgVGhpcyBhbGxvd3MgY29ubmVjdGluZyBhIEdEZXN0cm95Tm90aWZ5IGZvciB3aGVuIHRoZSBjYWxsYmFjayBpcyByZW1vdmVkL3JlcGxhY2VkLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzUxNDcxNwoKMjAwOS0wMi0yMiAxOTowNToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW5jbHVkZSBmbG9hdGluZyBwb2ludCB3cml0ZS9yZWFkIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBieSB3b3JraW5nIGFyb3VuZCBhIGd0ay1kb2MgYnVnCgoyMDA5LTAyLTIyIDE4OjUzOjEwICswMTAwICBBbGkgU2FiaWwgPGFsaS5zYWJpbEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFVzZSB0aGUgY29ycmVjdCB1bnJlZiBmdW5jdGlvbgoKMjAwOS0wMi0yMiAxODo1MTowOCArMDEwMCAgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIENvbnZlcnQgdW5yZWYvY29weSBmdW5jdGlvbnMgb2YgR3N0TWluaU9iamVjdCBzdWJjbGFzc2VzIHRvIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zCgkgIHVucmVmIGFuZCBjb3B5IGZ1bmN0aW9ucyBhcmUgc29tZXRpbWVzIHVzZWQgYXMgZnVuY3Rpb24KCSAgcG9pbnRlcnMgZm9yIGV4YW1wbGUgaW4gdGhlIGNhc2Ugb2YgZ19oYXNoX3RhYmxlX25ld19mdWxsCgkgIGFzIGEgR0Rlc3Ryb3lOb3RpZnkgZnVuY3Rpb24uCgkgIEN1cnJlbnRseSBHc3RCdWZmZXIsIEdzdEV2ZW50LCBHc3RNZXNzYWdlIGFuZCBHc3RRdWVyeQoJICBkZWZpbmUgdGhlaXIgcmVzcGVjdGl2ZSB1bnJlZiBhbmQgY29weSBmdW5jdGlvbnMgYXMKCSAgbWFjcm9zLCBtYWtpbmcgdXNlIG9mIGdzdF9taW5pX29iamVjdF91bnJlZi9jb3B5LgoJICBUaGlzIGFwcHJvYWNoIHdvcmtzIHZlcnkgd2VsbCBmb3IgbW9zdCBjYXNlcywgZXhjZXB0CgkgIGZvciBzb21lIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJpbmRpbmdzIChjdXJyZW50bHkgVmFsYSksCgkgIHdoZXJlIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBzZW1hbnRpY3MgYXJlIGRlZmluZWQKCSAgZGVjbGFyYXRpdmVseS4KCSAgVGhlIHBvc3NpYmxlIHNvbHV0aW9ucyB3b3VsZCBiZSB0byBlaXRoZXIgY29udmVydCBhbGwKCSAgdGhlIG1hY3JvcyBpbnRvIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24sIG9yIGNoYW5nZSB0aGUKCSAgc2lnbmF0dXJlIG9mIGdzdF9taW5pX29iamVjdF91bnJlZiB0byB0YWtlIGEgdm9pZCoKCSAgaW5zdGVhZCBvZiBhIEdzdE1pbmlPYmplY3QqLgoJICBGaXhlcyBidWcgIzU3MjQ4MC4KCjIwMDktMDItMjIgMTU6MjI6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBVc2Ugc2hhdmUgKGh0dHA6Ly9naXQubGVzcGlhdS5uYW1lL2NnaXQvc2hhdmUvKSB0byBzaW1wbGlmeSBidWlsZCBvdXRwdXQKCjIwMDktMDItMjIgMTU6NDQ6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWQ3YzljYyB0byA5Y2Y4YzliCgoyMDA5LTAyLTIxIDExOjEzOjMwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODBjNjI3ZCB0byA1ZDdjOWNjCgoyMDA5LTAyLTE5IDE4OjA1OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBHc3RCdWZmZXJGbGFnczogQWRkICJTaW5jZTogMC4xMC4yMyIgZm9yIHRoZSBuZXdseSBhZGRlZCBmbGFncwoKMjAwOS0wMi0xOSAxNjowNDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgR3N0QnVmZmVyRmxhZ3M6IEFkZCAzIG5ldyBtZWRpYS1zcGVjaWZpYyBidWZmZXIgZmxhZ3MuCgkgIFBhcnRpYWxseSBmaXhlcyAjMTYzNTc3CgoyMDA5LTAyLTE5IDEyOjU3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHByaW50IG5vcm1hbCBvdXRwdXQgdG8gc3Rkb3V0LCBhbmQgb25seSBlcnJvcnMgYW5kIHdhcm5pbmdzIHRvIHN0ZGVyciBpbiBnc3QtbGF1bmNoCgkgIExldCdzIG5vdCBwcmludCBldmVyeXRoaW5nIHRvIHN0ZGVyci4gU3VwcHJlc3Mgc29tZSBtb3JlICdub3JtYWwnIG1lc3NhZ2VzIHdoZW4gLS1xdWlldCB3YXMgcGFzc2VkLgoKMjAwOS0wMi0xOSAxMjo0NTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiB1c2UgZ19wcmludCooKSBpbnN0ZWFkIG9mICpwcmludGYoKSBpbiBnc3QtbGF1bmNoCgkgIFdlIHNob3VsZCB1c2UgR0xpYidzIGdfcHJpbnQqKCkgZnVuY3Rpb25zIGZvciBwcmludGluZyBzdHVmZiBpbiBnc3QtbGF1bmNoLCBub3QgcHJpbnRmIGFuZCBmcmllbmRzLCBzaW5jZSB3ZSdyZSBwcmludGluZwoJICB0cmFuc2xhdGVkIHN0cmluZ3MsIHdoaWNoIHdlIGdldCBpbiBVVEYtOCBlbmNvZGluZywgYW5kIEdMaWIncyBwcmludCBmdW5jdGlvbnMgZXhwZWN0IFVURi04IGVuY29kZWQgc3RyaW5ncyB3aGVyZWFzIHByaW50ZgoJICBldCBhbC4gZXhwZWN0IHN0cmluZ3MgaW4gdGhlIGxvY2FsZSBlbmNvZGluZywgd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgVVRGLTguCgkgIEFsc28gYWRkIGEgUFJJTlQgY29udmVuaWVuY2UgbWFjcm8gc28gd2UgZG9uJ3QgaGF2ZSB0byBsaXR0ZXIgdGhlIGNvZGUgd2l0aCBpZiAoIXF1aWV0KSBzdGF0ZW1lbnRzLgoKMjAwOS0wMi0xOSAxMToxODowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcmFuZG9tL21pbWV0eXBlczoKCSAgZG9jczogZml4IGNvbnN0YW50cyBmb3IgR19MSVRUTEVfRU5ESUFOIGFuZCBHX0JJR19FTkRJQU4KCSAgV2UgZ290IHRoZSBjb25zdGFudHMgZm9yIEdfTElUVExFX0VORElBTiBhbmQgR19CSUdfRU5ESUFOIHRoZSB3cm9uZyB3YXkgYXJvdW5kIGluIHNvbWUgZG9jcyAoZml4ZXM6ICM1NzIzOTIpLiBBbHNvIG1lbnRpb24KCSAgR19CWVRFX09SREVSIGluIHRoZSBhdWRpbyB0eXBlcyBzZWN0aW9uLgoKMjAwOS0wMi0xOSAxMDoyNTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gZGVmIGZpbGVzCgkgIEFkZCB0aGUgbmV3IHJlcXVlc3RfbWVzc2FnZSBzeW1ib2xzIHRvIHRoZSB3aW5kb3dzIGRlZiBmaWxlLgoKMjAwOS0wMi0xOCAxNTozMTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZCBtZXNzYWdlIHRvIHJlcXVlc3QgYSBzdGF0ZSBjaGFuZ2UKCSAgQWRkIGEgR1NUX01FU1NBR0VfUkVRVUVTVF9TVEFURSB0aGF0IGNhbiBiZSBwb3N0ZWQgYnkgZWxlbWVudCB3aGVuIHRoZXkgd291bGQKCSAgbGlrZSB0byBoYXZlIHRoZSBhcHBsaWNhdGlvbiBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBwaXBlbGluZS4gdGhlIHByaW1hcnkgdXNlCgkgIGNhc2UgaXMgdG8gcGF1c2UgdGhlIHBpcGVsaW5lIHdoZW4gYW4gYXVkaW8gbWl4ZXIgaXMgbWl4aW5nIGEgaGlnaGVyIHByaW9yaXR5CgkgIHN0cmVhbSBidXQgaXQgY2FuIGFsc28gYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuCgkgIEFkZCBzb21lIGRvY3MgYW5kIGEgdW5pdCB0ZXN0LgoJICBJbXBsZW1lbnQgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZSBpbiBnc3QtbGF1bmNoLgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19yZXF1ZXN0X3N0YXRlKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKCkKCSAgQVBJOiBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFCgoyMDA5LTAyLTE2IDEyOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBDbGVhciB0YXJnZXQgd2hlbiB0aGUgdGFyZ2V0IHBhZCBkaXNhcHBlYXJzCgkgIFdoZW4gdGhlIHRhcmdldCBwYWQgZGlzYXBwZWFycyAoYmVjYXVzZSBpdCB3YXMgZXhwbGljaXRseSB1bmxpbmtlZCBvciB0aGUKCSAgZWxlbWVudCB3YXMgcmVtb3ZlZC91bnJlZmZlZCkgbWFrZSBzdXJlIHdlIHJlY2VpdmUgYSBub3RpZnkgd2l0aCB0aGUgdW5saW5rCgkgIGZ1bmN0aW9uIG9uIHRoZSBwcm94eSBwYWQgYW5kIGNsZWFyIHRoZSB0YXJnZXQuIFdlIHVzZSBhIHNpbXBsZSBmbGFnIHRvIG5vdCBkbwoJICB0aGlzIGFuZCBjYXVzZSBkZWFkbG9ja3Mgd2hlbiB0aGUgdGFyZ2V0IHdhcyBjaGFuZ2VkIGV4cGxpY2l0bHkgdXNpbmcgdGhlCgkgIGdob3N0cGFkIGZ1bmN0aW9ucy4KCSAgVXBkYXRlIHRoZSB1bml0IHRlc3QgYmVjYXVzZSB3ZSBub3cgdW5yZWYgdGhlIHRhcmdldCBzb29uZXIgKGFuZCBjb3JyZWN0bHkpLgoKMjAwOS0wMi0xNSAxNjozNzoxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvY3M6IGZvcm1hdCBhbmQgaW5kZW50IGV4YW1wbGVzLgoKMjAwOS0wMi0wOSAyMjo0OTowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtcS8tLXF1aWV0IG9wdGlvbiB0byBzdXByZXNzIGFueSBub24gZXJyb3Igb3V0cHV0LgoJICBIYXZpbmcgbm8gb3V0cHV0IGlzIG5pY2UgZm9yIHNjcmlwdGluZy4gQWxzbyB1cGRhdGUgdGhlIG1hbnBhZ2UuCgoyMDA5LTAyLTE0IDEzOjM1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2N2cy54bWw6CgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBkb2NzL2ZhcS9zdGFydC54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgRkFROiB1cGRhdGUgZm9yIGdpdCBhbmQgbWlzY2VsbGFuZW91cyBzbWFsbCBmaXhlcyBhbmQgYWRkaXRpb25zCgkgIFJlcGxhY2UgYWxsIG1lbnRpb25zIG9mIENWUyB3aXRoIGdpdC4gQWRkIGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBpbiBjZ2l0IGFuZCB0byBTdWJtaXR0aW5nUGF0Y2hlcyBwYWdlIGluIHdpa2kuIEZpeCBzb21lIHR5cG9zLiBVcGRhdGUgaW5kZW50aW5nIHJ1bGVzIHRvIHdoYXQgd2UgYWN0dWFsbHkgdXNlICgjNTcxNjQ2KS4KCjIwMDktMDItMTMgMTY6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgKi5wbyBmaWxlcyBmb3IgbmV3bHktYWRkZWQgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCSAgVGhlIG9ubHkgcGVvcGxlIHdobyBzaG91bGQgZ2V0IGNvbmZsaWN0cyBub3cgYXJlIHBlb3BsZSB3aG8gaGF2ZSBjbG9uZWQgYW5kIGJ1aWx0IGdzdHJlYW1lciBiZXR3ZWVuIHRoZSB0aW1lIHRob3NlIHN0cmluZ3MKCSAgd2VyZSBhZGRlZCBhbmQgdGhpcyBjb21taXQuCgoyMDA5LTAyLTEyIDEwOjM4OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFQSTogQWRkIEhPTUVQQUdFIHRhZwoJICBUaGlzIHRhZyB3aWxsIGxpc3QgYSBob21lcGFnZSBmb3IgdGhlIG1lZGlhLAoJICBpLmUuIHRoZSBhcnRpc3QncyBvciBtb3ZpZSdzIGhvbWVwYWdlLgoJICBUaGlzIGlzIGRpZmZlcmVudCB0byBHU1RfVEFHX0xPQ0FUSU9OIGFzIHRoZSBsYXR0ZXIKCSAgbGlzdHMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBtZWRpYS4KCSAgRml4ZXMgYnVnICM1NzEyMjcuCgoyMDA5LTAyLTA5IDEyOjAwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBCdW1wIHJldmlzaW9uIHRvIHVzZSBmb3IgY29tbW9uIHN1Ym1vZHVsZS4KCjIwMDktMDItMDggMTA6Mjg6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBSZXBsYWNlIHNvbWUgbWVudGlvbnMgb2YgQ1ZTIGJ5IEdJVAoKMjAwOS0wMi0wNiAxMDo1MToyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogUmV3cml0ZSBzYW5pdHkgY2hlY2sgdG8gYWN0dWFseSBjYXRjaCBzb21ldGhpbmcuCgkgIFRoZSBwcmV2aW91cyBjb21taXQgd2FzIGJvZ3VzLCBhcyB3YXMgdGhlIGNoZWNrIGJlZm9yZS4gV2UganVzdCBwb2ludCBtIHRvIHRoZSBmaWxlIGRhdGEsCgkgIHNvIG5laXRoZXIgaXQgbm9yIGl0cyBtZW1iZXJzIHdpbGwgYmUgTlVMTC4gQmV0dGVyIGNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGRhdGEuCgoyMDA5LTAyLTA1IDIzOjExOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL01ha2V2YXJzOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IGF2b2lkIGNvbmZsaWN0cyBvZiBsb2NhbCAqLnBvIGZpbGVzIHdpdGggZmlsZXMgaW4gZ2l0CgkgIE1ha2UgaXQgc28gdGhhdCBmaWxlbmFtZXMgYW5kIGxpbmUgbnVtYmVycyBhcmUgb25seSBzdG9yZWQgaW4gdGhlICoucG90IGZpbGUgKHdoaWNoIGlzIG5vdCBpbiBnaXQpLCBidXQgbm90IGluIHRoZQoJICBpbmRpdmlkdWFsICoucG8gZmlsZXMuIFRoaXMgaW5mb3JtYXRpb24gaXMgaGFyZGx5IHVzZWZ1bCBmb3IgdHJhbnNsYXRvcnMgaW4gb3VyIGNhc2UsIGFuZCBpdCBzaG91bGQgYXZvaWQgdGhlIGNvbnN0YW50CgkgIGNvbmZsaWN0cyBvZiBsb2NhbCAqLnBvIGZpbGVzIHdpdGggdGhlIG9uZXMgaW4gZ2l0IHdoaWNoIGFyZSBjYXVzZWQgYnkgdGhlIHNvdXJjZSBmaWxlcyBjaGFuZ2luZyBhbmQgdGhlIGxpbmUgbnVtYmVycwoJICBiZWluZyB1cGRhdGVkLgoJICBUaGlzIGNvbW1pdCBpcyBsaWtlbHkgdG8gY2F1c2Ugb25lIGxhc3QgbWVyZ2UgY29uZmxpY3QgZm9yIHlvdSwgd2hpY2ggeW91IGNhbiB3b3JrIGFyb3VuZCB3aXRoICJnaXQgY2hlY2tvdXQgcG8vKi5wbyIKCSAgYmVmb3JlIG1lcmdpbmcgb3IgcHVsbGluZy4gQWZ0ZXIgdGhhdCB0aGVyZSBzaG91bGQgKGhvcGVmdWxseSkgbm90IGJlIGFueSBtb3JlIGxvY2FsIG1vZGlmaWNhdGlvbnMgb2YgdGhlc2UgZmlsZXMuCgoyMDA5LTAyLTA1IDE1OjIyOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBHc3RQb2xsIEFQSSB0byBsaWJnc3RyZWFtZXIuZGVmCgoyMDA5LTAyLTA1IDE3OjIzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgY2xlYW51cDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgaW4gX2NsYXNzX2luaXQoKSBhbmQgcmVpbmRlbnQuCgoyMDA5LTAyLTA1IDE3OjA1OjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogcmVtb3ZlIHVudXNlZCBzZXQvZ2V0IHByb3BlcnR5IGZ1bmN0aW9ucwoKMjAwOS0wMi0wNSAxNTo1NjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogY29tcGFyaW5nIGFycmF5cyBhZ2FpbnN0IE5VTEwgaXMgdXNlbGVzcwoKMjAwOS0wMi0wNSAxMzo1OTo0OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHVudXNlZCBjb2RlCgkgIFNraXAgbG9vcGluZyB0aHJ1IGEgZHVtbXkgaW1wbGVtZW50YXRpb24uCgoyMDA5LTAyLTA1IDEzOjU3OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IEdzdENsb2NrVGltZSBpcyBhbHdheXMgPj0gMAoKMjAwOS0wMi0wNSAxMzo0MjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwOS0wMi0wNCAxNzoyMDoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNsZWFudXA6IEVpdGhlciBjaGVjayBhbHdheXMgZm9yIGludGVybmFsIGJlaW5nIE5VTEwgb3IgZG9uJ3QuCgkgIElNSE8gdGhlIGdob3N0cGFkIGlzIGJvcmtlZCBpZiBpbnRlcm5hbCBpcyBOVUxMLiBTbyB0aGUgY2hlY2sgY2FuIGdvIGFuZCBpdCBpcwoJICB1c2VkIGxhdGVyIHVuY2hlY2tlZCBhbnl3YXkuCgoyMDA5LTAyLTA0IDE2OjI2OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBjcmFzaDogRG9uJ3QgY3Jhc2ggb24gbm9uIGV4aXN0ZW50IHRhZ3MuCgoyMDA5LTAyLTA0IDE2OjE3OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgbGVhazogRG9uJ3QgbGVhayB0eXBlIG5hbWUgaW4gZmFpbHVyZSBjYXNlcy4KCjIwMDktMDItMDQgMTY6MDc6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBEb24ndCBhc3N1bWUgZ3N0X3BhZF9nZXRfcGVlciByZXR1cm5zIG5vbiBOVUxMIHZhbHVlLgoKMjAwOS0wMi0wNCAxNTo0MToyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGxlYWs6IGRvbid0IHJldHVybiB3aXRob3V0IGNhbGxpbmcgdmFfZW5kCgoyMDA5LTAyLTAzIDE4OjA0OjQ2ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBJbXBsZW1lbnQgdGhlIHN5c3RlbWNsb2NrIHdpdGggZ3N0cG9sbAoJICBBZGQgYSBwcm9wZXJ0eSB0byBzZWxlY3QgdGhlIGNsb2NrIHR5cGUsIGN1cnJlbnRseSBSRUFMVElNRSBhbmQgTU9OT1RPTklDIHdoZW4KCSAgcG9zaXggdGltZXJzIGFyZSBhdmFpbGFibGUuCgkgIEltcGxlbWVudCB0aGUgc3lzdGVtY2xvY2sgd2l0aCBHc3RQb2xsIGluc3RlYWQgb2YgR0NvbmQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHNjaGVkdWxlIHRpbWVvdXRzIHdpdGggbmFub3NlY29uZCBwcmVjaXNzaW9uIG9uIG5ld2VyIGtlcm5lbHMgYW5kIHdpdGggcHBvbGwKCSAgc3VwcG9ydC4gSXQncyBhbHNvIHJlc2lsaWVudCB0byBjaGFuZ2VzIHRvIHRoZSBzeXN0ZW1jbG9jayBiZWNhdXNlIG9mIE5UUCBvcgoJICBzaW1pbGFyLgoKMjAwOS0wMi0wMyAxNzo0OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkgIEdzdFBvbGw6IGFkZCBtZXRob2RzIHRvIHVzZSBnc3Rwb2xsIGZvciB0aW1lb3V0cwoJICBBZGQgYSBzcGVjaWFsIHRpbWVyIG1vZGUgaW4gR3N0UG9sbCB0aGF0IG1ha2VzIGl0IG9ubHkgdXNlIHRoZSBjb250cm9sIHNvY2tldAoJICB3aXRoIGEgdGltZW91dCB0byBzY2hlZHVsZSB0aW1lb3V0cy4gQWxzbyBhZGQgYSBwYWlyIG9mIG1ldGhvZHMgdG8gd2FrZXVwIHRoZQoJICB0aW1lb3V0IHRocmVhZC4KCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF9uZXdfdGltZXIoKQoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX3dyaXRlX2NvbnRyb2woKQoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX3JlYWRfY29udHJvbCgpCgoyMDA5LTAyLTAzIDE1OjI3OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBHc3RCYXNlU2luazogdXNlIG5ldyB2YXJpYWJsZSB0byBzY2hlZHVsZSBwcmVyb2xsCgkgIFVzZSBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGtlZXAgdHJhY2sgaWYgd2UgbmVlZCB0byBjYWxsIHRoZSBwcmVyb2xsIG1ldGhvZAoJICBpbnN0ZWFkIG9mIGFidXNpbmcgdGhlIGNvbW1pdGVkIHZhcmlhYmxlLgoKMjAwOS0wMi0wMyAxMjo1Mjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgR3N0QmFzZVNpbms6IGF2b2lkIGNhbGxpbmcgcHJlcm9sbCBtdWx0aXBsZSB0aW1lcwoJICBGaXggYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgZml4IGZvciAjNTY3NzI1IGluIGNvbW1pdAoJICAxYzdhYjRlZDRmMTliNjNiYTA0NmE2ZjJmZTdkMDlhNmMxNzM1N2M1LiBXZSBzaG91bGQgb25seSBjYWxsIHRoZSBwcmVyb2xsCgkgIGZ1bmN0aW9uIG9uY2UgbmFtZWx5IHdoZW4gd2UgZGlkIG5vdCB5ZXQgY29tbWl0IHRoZSBzdGF0ZSBjaGFuZ2UuCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHdlIGNhbGwgdGhlIHByZXJvbGwgZnVuY3Rpb24gd2hlbiBpbnRlcnJ1cHRpbmcgdGhlCgkgIGNsb2NrX3dhaXQgKHNlZSAjNTY3NzI1KS4KCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgd2Ugb25seSBjYWxsIHRoZSBwcmVyb2xsIGZ1bmN0aW9uIG9uY2UuCgoyMDA5LTAxLTI5IDEzOjMwOjQ1ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0CgkgIFdoaWxlIHJlY29uZmlndXJpbmcgYSBiYXNldHJhbnNmb3JtIGVsZW1lbnQgd2UgbmVlZCBhbHNvIHRvIHJlY2hlY2sKCSAgdGhlIGFsbG9jIHJlcXVlc3QuIEJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBjYXBzIGNoYW5nZXMKCSAgdGhlIHByb3h5X2FsbG9jIHN0YXRlIGlzIG5vdCBjb3JyZWN0IGFueW1vcmUuCgkgIChSZS1jb21taXQgYWZ0ZXIgZGlzY3VzaW9uIHdpdGggV2ltIG9uIElSQykKCjIwMDktMDItMDIgMTQ6MTk6NTcgKzAxMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiBNYWtlIGl0IGNvbXBpbGUgd2l0aCBHU1RfRElTQUJMRV9HU1RfREVCVUcuCgoyMDA5LTAxLTMxIDIxOjM0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzLy5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIHJlcG86IFJlYXJyYW5nZSBnaXRpZ25vcmVzIGluIGRvY3Mgc3ViZGlyCgkgIHRtcGwgZGlyZWN0b3JpZXMgYXJlIHJlbW92ZWQgYnkgbWFrZSBjbGVhbiwgd2hpY2ggZGVsZXRlcyB0aGUKCSAgLmdpdGlnbm9yZS4gVXNlIGEgLmdpdGlnbm9yZSBoaWdoZXIgdXAgdG8gaWdub3JlIHRoZSB0bXBsIGRpcnMgaW5zdGVhZC4KCjIwMDktMDEtMzEgMjE6MzI6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgY2hlY2s6IEZpeCBjb21tZW50IGFib3V0IHRoZSB0aW1lb3V0IGZvciBnZW5lcmljIHN0cmVzcyB0ZXN0LgoJICBTZXR0aW5nIHRoZSB0aW1lb3V0IHRvIDAgbWFrZXMgaXQgaW5maW5pdGUsIHNvIGZpeCB0aGUgY29tbWVudAoJICBhYm92ZSBhY2NvcmRpbmdseS4KCjIwMDktMDEtMzEgMjE6MzE6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjazogSW5jcmVhc2UgdGltZW91dCBmb3IgdGhlIHRlZSB0ZXN0CgkgIFRoZSB0ZWUgc3RyZXNzIHRlc3Qga2VlcHMgdGltaW5nIG91dCBmb3IgbWUgb24gb25lIG9mIHRoZSBzbG93ZXIKCSAgbWFjaGluZXMsIHNvIGluY3JlYXNlIHRoZSB0aW1lb3V0IHRvIDMgbWlucy4KCjIwMDktMDEtMzAgMTQ6NTY6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgVXBkYXRlIHRoZSB3aW4zMiBjb25maWcuaC5pbiB0ZW1wbGF0ZSBmcm9tIHRoZSBtYWluIGNvbmZpZy5oLmluCgoyMDA5LTAxLTMwIDIyOjE4OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBBZGQgcmVsZWFzZWluZm8gd2l0aCBvbmxpbmUgdXJsLgoKMjAwOS0wMS0zMCAxODoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgUmVtb3ZlIGJyb2tlbiBjbGFzcyB0byBpbnRlcmZhY2UgY2FzdCBtYWNyb3MgZnJvbSBHc3RVcmlIYW5kbGVyIGFuZCBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlIGhlYWRlcnMKCSAgUmVtb3ZlIGNsYXNzLXRvLWludGVyZmFjZS1zdHJ1Y3QgY2FzdCBtYWNyb3Mgd2hpY2ggZG9uJ3Qgd29yaywKCSAgZG9uJ3QgbWFrZSBzZW5zZSwgYW5kIGluIHNvbWUgY2FzZXMgd291bGRuJ3QgZXZlbiBjb21waWxlIGlmCgkgIHVzZWQuIFJlbW92YWwgc2hvdWxkIGJlIG9rIHNlZWluZyB0aGF0IGNvZGUgd2hpY2ggdXNlcyBhbnkgb2YKCSAgdGhlc2UgaXMgYnJva2VuIGFuZCBib3VuZCB0byBjcmFzaC4gRml4ZXMgIzU2NTYwNy4KCSAgQVBJOiByZW1vdmUgR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFX0NMQVNTCgkgIEFQSTogcmVtb3ZlIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRV9DTEFTUwoJICBBUEk6IHJlbW92ZSBHU1RfVVJJX0hBTkRMRVJfQ0xBU1MKCjIwMDktMDEtMzAgMTY6Mjg6MTQgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJICBSZW1vdmUgZ2l0aWdub3JlIGluIGRvY3MvZ3N0L3RtcGwuCgkgIFRoaXMgZ2l0aWdub3JlIGZpbGUgc2VlbXMgdG8gZ2V0IGRlbGV0ZWQgYnkgdGhlIGJ1aWxkLCBhbmQgZG9lc24ndAoJICBzZWVtIHRvIGJlIGRvaW5nIGFueXRoaW5nIHVzZWZ1bCBhbnl3YXkuCgoyMDA5LTAxLTMwIDE2OjIxOjU1ICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgQnVtcCBjb21tb24KCjIwMDktMDEtMzAgMTQ6NTk6MDcgKzAwMDAgIEphbiBTY2htaWR0IC0gU3VuIE1pY3Jvc3lzdGVtcyAtIER1YmxpbiBJcmVsYW5kIDxqczIxMjQxOUBmbGFpbC4obm9uZSk+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgd2l0aCBGb3J0ZS4KCjIwMDktMDEtMzAgMTA6NDM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTBhZmQ0NTk1NzkxOTE3NzJmNDJkMWE0NGYzOTU5ZTUzMGM1YzI2OS4KCSAgSXQgYnJlYWtzIHRoZSBpbnRlcmFjdGl2ZSB0ZXN0LXNjYWxlIHVuaXQgdGVzdC4KCjIwMDktMDEtMzAgMTA6NDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzYTQ2MDJkNzcxOWRlM2MzZWY3YWVjZTY4YjVmOTQ4OWQwNzgwMTYyLgoJICBJdCBicmVha3MgdGhlIGludGVyYWN0aXZlIHRlc3Qtc2NhbGUgdW5pdCB0ZXN0LgoKMjAwOS0wMS0zMCAxMDoyOTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQWxsb2NhdGUgZXZlcnl0aGluZyB0aGF0IGlzIHdyaXR0ZW4gdG8gdGhlIHJlZ2lzdHJ5IHdpdGggZ19tYWxsb2MwKCkKCSAgQWxsb2NhdGUgZXZlcnkgc3RydWN0dXJlIHRoYXQgaXMgZGlyZWN0bHkgd3JpdHRlbiB0byB0aGUgYmluYXJ5CgkgIHJlZ2lzdHJ5IHdpdGggZ19tYWxsb2MwKCkuIE90aGVyd2lzZSBzb21lIHBhcnRzIG9mIGl0IHdpbGwgYmUKCSAgdW5pbml0aWFsaXplZCAoc3RydWN0IHBhZGRpbmcgYmVjYXVzZSBvZiBhbGlnbm1lbnQsIGV0YykgYW5kCgkgIHZhbGdyaW5kIHdpbGwgY29tcGxhaW4gYWJvdXQgaXQuCgoyMDA5LTAxLTMwIDA4OjMwOjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBVc2UgYSBzeW1ib2xpYyBsaW5rIGZvciB0aGUgcHJlLWNvbW1pdCBjbGllbnQtc2lkZSBob29rCgoyMDA5LTAxLTI5IDE1OjQ5OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgTWFrZSBzdXJlIHRvIHRha2UgYSBjb3B5IG9mIHRoZSBzdHJpbmdzIHdlJ3JlIGdvaW5nIHRvIGZyZWUgbGF0ZXIuCgoyMDA5LTAxLTI2IDE3OjE1OjE1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEFkZCBsb2dnaW5nIGluIGZhaWx1cmUgY2FzZS4gQWRkIG1vcmUgZGV0YWlscyB0byBhIHRvZG8gY29tbWVudC4KCjIwMDktMDEtMjYgMTc6MTQ6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvaW5pdC5jOgoJICBBZGQgYSB0cml2aWFsIHNvdXJjZSBmb3IgdHJhY2tpbmcgZ3N0X2luaXQgdGltZSBhY2Nyb3NzIHZlcnNpb25zLgoKMjAwOS0wMS0yNiAxNzoxMzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCB0b2RvIGNvbW1lbnRzLgoKMjAwOS0wMS0yOSAxMzozOToyOSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MKCSAgQmVjYXVzZSB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29sdmUgYSBzdWdnZXN0aW9uIGhlcmUgd2UgZG9uJ3QgbmVlZAoJICB0byBjaGVjayBvbiBjYXBzIGZvciBwcm94eV9hbGxvYyBidXQgd2UgbmVlZCB0byBjaGVjayBvbiB0aGUgc3VnZ2VzdGVkCgkgIGNhcHMgaW5zdGVhZC4KCjIwMDktMDEtMjkgMTM6MzA6NDUgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QKCSAgV2hpbGUgcmVjb25maWd1cmluZyBhIGJhc2V0cmFuc2Zvcm0gZWxlbWVudCB3ZSBuZWVkIGFsc28gdG8gcmVjaGVjawoJICB0aGUgYWxsb2MgcmVxdWVzdC4gQmVjYXVzZSBpdCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGNhcHMgY2hhbmdlcwoJICB0aGUgcHJveHlfYWxsb2Mgc3RhdGUgaXMgbm90IGNvcnJlY3QgYW55bW9yZS4KCjIwMDktMDEtMjcgMjM6MTQ6NDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBJbXByb3ZlIHRoZSBkb2NzIGZvciBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpLgoJICBJdHMgbWVudGlvbmVkIGluIHRoZSBzZWN0aW9uIGRvY3MsIGJ1dCBsZXRzIHJlcGVhdCBhdCB0aGUgZnVuY3Rpb24gZG9jcyB0aGF0IHRoZSBjYWxsYmFjayBjYW4gYmUgaW52b2tlZCBmcm9tIGFueSB0aHJlYWQuCgoyMDA5LTAxLTI3IDE3OjUzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRvbid0IHVzZSBFUlJPUl9DRkxBR1Mgd2hlbiBidWlsZGluZyAkZG9jbW9kdWxlLXNjYW4uYwoJICBXZSBkb24ndCB3YW50IHRvIHVzZSAtV2FsbCAtV2Vycm9yIGFuZCBmcmllbmRzIHdoZW4gYnVpbGRpbmcgdGhlIGd0ay1kb2MtZ2VuZXJhdGVkCgkgICRkb2Ntb2R1bGUtc2Nhbi5jLCBzaW5jZSB3ZSBjYW4ndCBlYXNpbHkgZml4IHN0dWZmIGlmIGEgY2VydGFpbiBndGstZG9jL2NvbXBpbGVyCgkgIGNvbWJpbmF0aW9uIGJyZWFrcyB0aGUgYnVpbGQuIEZpeGVzIGJ1aWxkIG9uIHVidW50dSBpbnRyZXBpZC4KCjIwMDktMDEtMjcgMTc6NTI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgTWFrZSBnaXQgaWdub3JlIGJhY2t1cCBmaWxlcy4KCjIwMDktMDEtMjYgMjE6Mjk6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIERvbid0IGNoZWNrIHRpbWVzdGFtcCBoZXJlLCBpdHMgZG9uZSBpbiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGFueXdheS4KCjIwMDktMDEtMjYgMTI6NTI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBBdm9pZCB1bm5lZWRlZCByZWFkcyBmcm9tIHRoZSBjb250cm9sIHNvY2tldAoJICBBZGQgYSBuZXcgdmFyaWFibGUgdGhhdCBrZWVwcyB0cmFjayBvZiB0aGUgc3RhdHVzIG9mIHRoZSBjb250cm9sIHNvY2tldC4gVGhpcwoJICBhbGxvd3MgdXMgdG8gYXZvaWQgZG9pbmcgYSByZWFkKCkgb24gdGhlIGNvbnRyb2wgc29ja2V0IHdoZW4gd2UgZGlkIG5vdCB3cml0ZQoJICBhbnl0aGluZyB0byBpdC4KCSAgRml4ZXMgIzU2ODQzOC4KCjIwMDktMDEtMjUgMjI6MTc6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBmYWlsdXJlIGNhc2VzLgoKMjAwOS0wMS0yNSAyMjoxMTozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBEb2N1bWVudCB0aGF0IEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcyB1c2UgUEFDS0FHRSBkZWZpbmUuIEZpeGVzICM1NTk3MjIuCgkgIFBBQ0tBR0UgaXMgZGVmaW5lZCBieSBhdXRvZm9vLiBJZiBwZW9wbGUgdXNlIHNvbWV0aGluZyBkaWZmZXJlbnQsIHRoZXkgbWlnaHQgd2FudCB0byBkZWZpbmUgaXQgdGhlbXNlbGYuCgoyMDA5LTAxLTI1IDE3OjU4OjUyICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCB0eXBvCgoyMDA5LTAxLTI0IDIxOjUwOjA4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgT25seSBmcmVlIGxpc3Qgb2YgYnVmZmVycyBvbmNlCgoyMDA5LTAxLTI0IDE0OjM3OjE0ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZG9jcy9SRUFETUU6CgkgIEZpeCB0eXBvCgoyMDA5LTAxLTIzIDIzOjA4OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby8uZ2l0aWdub3JlOgoJICBJZ25vcmUgYW5vdGhlciBmaWxlCgoyMDA5LTAxLTIzIDIxOjQ0OjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZCBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfZXh0ZW5zaW9uIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGUKCjIwMDktMDEtMjMgMTY6MDk6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgVXBkYXRlIHdpbjMyIGNvbmZpZy5oIGZvciAwLjEwLjIyLjEgZGV2IGN5Y2xlLi4uCgoyMDA5LTAxLTIzIDE2OjA4OjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiAuZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzL3RtcGwvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9uZXQvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIFVwZGF0ZSBhIGJ1bmNoIG9mIGdpdGlnbm9yZXMgdG8gY2xlYW4gdXAgbXkgZ2l0IHN0YXR1cyBvdXRwdXQKCjIwMDktMDEtMjMgMDk6NTQ6NTMgKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBGaXggbGlua2luZyBmYWlsdXJlcyBvbiBTb2xhcmlzLiBGaXhlcyBidWcgIzU2ODQ4MS4KCSAgTGluayBsaWJnc3RyZWFtZXIgd2l0aCAkKExJQk0pIGFzIGl0IHVzZXMgbWF0aCBmdW5jdGlvbnMuCgkgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayBmb3Igc29ja2V0IGFuZCBuc2wgbGlicmFyeSBhbmQgYWRkCgkgIHRoZW0gdG8gTElCUyBpZiB0aGV5J3JlIGZvdW5kLiBUaGlzIGlzIG5lZWRlZCBvbiBTb2xhcmlzCgkgIGZvciBzb2NrZXQoKSBhbmQgZ2V0aG9zdGJ5bmFtZSgpLgoKMjAwOS0wMS0yMiAxODowMjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHNuYXBzaG90LgoKMjAwOS0wMS0yMiAxMzo1ODo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIEltcHJvdmUgZGVidWcgb3V0cHV0IGJ5IGxvZ2dpbmcgdGhlIG9mZnNldHMuIEZpeGVzIGJ1ZyAjNTY4Njc4LgoJICBJbiBjcmVhdGUoKSBhbHNvIGxvZyB0aGUgb2Zmc2V0cyBhbmQgbm90IG9ubHkgdGhlCgkgIGJ1ZmZlciBzaXplLgoKMjAwOS0wMS0yMiAxMzo1MTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29tbW9uOgoJICBGaXggcHJlLWNvbW1pdCBob29rCgoyMDA5LTAxLTIyIDEyOjUyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMDktMDEtMjIgMTE6NTQ6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgRG9jIGZvciBuZXcgdHlwZWZpbmQgbWV0aG9kLgoKMjAwOS0wMS0yMiAxMDo0NTo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjIuMQoKMjAwOS0wMS0yMiAxMDoxNjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDA5LTAxLTIyIDA1OjM1OjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBJbnN0YWxsIGFuZCB1c2UgcHJlLWNvbW1pdCBpbmRlbnRhdGlvbiBob29rIGZyb20gY29tbW9uCgoyMDA5LTAxLTIxIDEyOjUwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgSWYgbm8gdHlwZSB3YXMgZm91bmQgdXNpbmcgdGhlIHR5cGVmaW5kIGZ1bmN0aW9ucywgdHJ5IGRvaW5nIGFuIHVwc3RyZWFtIFVSSSBxdWVyeSB0byBndWVzcyB0aGUgdHlwZSBmcm9tIHRoZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLgoKMjAwOS0wMS0yMSAxMjo0ODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBBZGQgbmV3IHR5cGVmaW5nIGhlbHBlciBmdW5jdGlvbiB0byBndWVzcyB0aGUgY2FwcyBiYXNlZCBvbiB0aGUgZmlsZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLiBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9leHRlbnNpb24oKQoKMjAwOS0wMS0yMSAxMjo0NTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEFsbG93IGFkZGluZyBhIHR5cGVmaW5kZXIgd2l0aG91dCBhIHR5cGVmaW5kIGZ1bmN0aW9uIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8gbWFwIHRoZSBjYXBzIHRvIHRoZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLgoKMjAwOS0wMS0yMSAxMjo0Mzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVXBkYXRlIHRoZSBsYXN0X2J1ZmZlciBleGFjdGx5IHdpdGggdGhlIGJ1ZmZlciB0aGF0IGNhdXNlZCB0aGUgcHJlcm9sbCBhbmQgYWxzbyBjYWxsIHRoZSBwcmVyb2xsIG1ldGhvZCB3aXRoIHRoYXQgcHJlcm9sbCBidWZmZXIuIEZpeGVzICM1Njc3MjUuCgoyMDA5LTAxLTIxIDEyOjIxOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBkbyBub3QgY2FsbCB0aGUgdW5saW5rIGZ1bmN0aW9uIG9uIHRoZSB0YXJnZXQgcGFkIHdoZW4gdGhlIGdob3N0cGFkIGlzIHVubGlua2VkLiBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGlzIGJlaGF2aW91ci4gRml4ZXMgIzU2NjkzNi4KCjIwMDktMDEtMjEgMDQ6Mjk6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoIDogVXNlIGdpdCBzdWJtb2R1bGUKCj09PSByZWxlYXNlIDAuMTAuMjIgPT09CgoyMDA5LTAxLTE5IDIyOjU4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMgoKMjAwOS0wMS0xOSAyMToyMDo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wMS0xNyAyMTowNDo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IG9yZGVyIG9mIG1lbWJlcnMgaW4gR3N0QnVzU291cmNlIHN0cnVjdHVyZSAtIHRoZSBmaXJzdCBtZW1iZXIgbXVzdCBiZSB0aGUgcGFyZW50IHN0cnVjdHVyZSBpZS4gR1NvdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9tYWluX2NvbnRleHQpLCAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpOgoJICBGaXggb3JkZXIgb2YgbWVtYmVycyBpbiBHc3RCdXNTb3VyY2Ugc3RydWN0dXJlIC0gdGhlIGZpcnN0IG1lbWJlcgoJICBtdXN0IGJlIHRoZSBwYXJlbnQgc3RydWN0dXJlIGllLiBHU291cmNlLiBTaG91bGQgbWFrZSBidXMgc291cmNlcwoJICBhdHRhY2hlZCB0byBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzIHdvcmsgaW4gYWxsIGNhc2VzIG5vdyAoaWUuCgkgIHByaW1hcmlseSBpbiBjYXNlcyB3aGVyZSB0aGUgY2FsbGJhY2sgaGFzIGEgbm9uLU5VTEwgdXNlciBkYXRhCgkgIGFyZ3VtZW50KS4gRml4ZXMgIzU2MjE3MC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6ICh0ZXN0X2N1c3RvbV9tYWluX2NvbnRleHQpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUsIGJhc2VkIG9uIGNvZGUgYnkKCSAgSnVzdGluIEthcm5lZ2VzIDxqdXN0aW4gYXQgYWZmaW5peCBjb20+LgoKMjAwOS0wMS0xNSAxMDowNDozNyArMDAwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBBIHNtYWxsIGRvY3VtZW50YXRpb24gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmFzIEhvbG1iZXJnIDxqb25hcyBkb3QgaG9sbWJlcmcgYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQSBzbWFsbCBkb2N1bWVudGF0aW9uIGZpeC4KCjIwMDktMDEtMTEgMDk6NDY6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBJbml0aWFsaXplIGdfb25jZV9pbml0KiBkYXRhIHdpdGggMC4gRml4ZXMgYnVnICM1NjcyMjUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBJbml0aWFsaXplIGdfb25jZV9pbml0KiBkYXRhIHdpdGggMC4gRml4ZXMgYnVnICM1NjcyMjUuCgoyMDA5LTAxLTA5IDIzOjM3OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcHJlLXJlbGVhc2UgMC4xMC4yMS4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcHJlLXJlbGVhc2UgMC4xMC4yMS4zCgoyMDA5LTAxLTA5IDE1OjQzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHdhaXRfY2xvY2sgbWV0aG9kLCByZW5hbWUgYmFzZXNpbmsgLT4gc2luayBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBGaXggZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHdhaXRfY2xvY2sgbWV0aG9kLCByZW5hbWUgYmFzZXNpbmsgLT4gc2luawoJICBmb3IgY29uc2lzdGVuY3kuCgoyMDA5LTAxLTA4IDEzOjQxOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IENyZWF0ZSBhIHJlZ2lzdHJ5IGlmIHRoZXJlIGlzIG5vbmUgYWxzbyB3aGVuIHRoZSBvcHRpb24gZm9yIGdzdC1kaXNhYmxlLXJlZ2lzdHJ5LXVwZGF0ZSBoYXMgYmVlbiBzZWxlY3RlZC4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBDcmVhdGUgYSByZWdpc3RyeSBpZiB0aGVyZSBpcyBub25lIGFsc28gd2hlbiB0aGUgb3B0aW9uIGZvcgoJICBnc3QtZGlzYWJsZS1yZWdpc3RyeS11cGRhdGUgaGFzIGJlZW4gc2VsZWN0ZWQuIEZpeGVzICM1NjcwMDIKCjIwMDktMDEtMDYgMTg6MTA6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBSZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHJlY2VudGx5LWFkZGVkIEFQSS4KCjIwMDktMDEtMDYgMTc6NTg6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgQVBJIGZvciBtYWtpbmcgYSBHU3RyZWFtZXIgcGx1Z2luICdkZXBlbmRlbnQnIG9uIGV4dGVybmFsIGZpbGVzLCBkaXJlY3RvcmllcyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHRoYXQgR1MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDo6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChHc3RQbHVnaW5EZXApLCAoX0dzdFBsdWdpblByaXZhdGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5faW5pdCksIChnc3RfcGx1Z2luX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fY2xhc3NfaW5pdCksIChnc3RfcGx1Z2luX2xpc3RfZnJlZSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X2Vudl92YXJzX2hhc2gpLAoJICAoX3ByaXZfcGx1Z2luX2RlcHNfZW52X3ZhcnNfY2hhbmdlZCksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZXh0cmFjdF9lbnZfdmFyc19wYXRocyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X2hhc2hfZnJvbV9zdGF0X2VudHJ5KSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9kaXJlbnRyeV9tYXRjaGVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zY2FuX2Rpcl9hbmRfbWF0Y2hfbmFtZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3NjYW5fcGF0aF93aXRoX2ZpbGVuYW1lcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X3N0YXRfaGFzaCksCgkgIChfcHJpdl9wbHVnaW5fZGVwc19maWxlc19jaGFuZ2VkKSwgKGdzdF9wbHVnaW5fZXh0X2RlcF9mcmVlKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zdHJ2X2VxdWFsKSwgKGdzdF9wbHVnaW5fZXh0X2RlcF9lcXVhbHMpLAoJICAoZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeSksIChnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5X3NpbXBsZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR3N0UGx1Z2luUHJpdmF0ZSksIChHc3RQbHVnaW5GbGFncyksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19OT05FKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX1JFQ1VSU0UpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfUEFUSFNfQVJFX0RFRkFVTFRfT05MWSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19GSUxFX05BTUVfSVNfU1VGRklYKSwKCSAgKEdzdFBsdWdpbkRlcGVuZGVuY3lGbGFncyksIChHc3RQbHVnaW5GaWx0ZXIpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luX2RlcCksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW5fZGVwX3N0cnYpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbl9kZXApLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6IChHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSKSwKCSAgKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQpLCAoX0dzdEJpbmFyeURlcCksIChHc3RCaW5hcnlEZXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbik6CgkgIEFkZCBBUEkgZm9yIG1ha2luZyBhIEdTdHJlYW1lciBwbHVnaW4gJ2RlcGVuZGVudCcgb24gZXh0ZXJuYWwgZmlsZXMsCgkgIGRpcmVjdG9yaWVzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcywgc28gdGhhdCBHU3RyZWFtZXIga25vd3Mgd2hlbgoJICBpdCBuZWVkcyB0byByZS1sb2FkIEdTdHJlYW1lciBwbHVnaW5zIHRoYXQgd3JhcCBvdGhlciBwbHVnaW4gc3lzdGVtcy4KCSAgRml4ZXMgYnVnICMzNTA0NzcuCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3koKQoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5X3NpbXBsZSgpCgoyMDA5LTAxLTA2IDEzOjAwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbGliZ3N0YXBwLTAuMTAgZnJvbSAtYmFzZSB0byBzZWFyY2ggcGF0aCBhbmQgcmVtb3ZlIHRoZSBvbGQgbGliIGZyb20gLWJhZCBmcm9tIHRoZSBzZWFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGxpYmdzdGFwcC0wLjEwIGZyb20gLWJhc2UgdG8gc2VhcmNoIHBhdGggYW5kIHJlbW92ZSB0aGUgb2xkCgkgIGxpYiBmcm9tIC1iYWQgZnJvbSB0aGUgc2VhcmNoIHBhdGguCgoyMDA5LTAxLTA1IDE1OjQyOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgcXVlcnkgY29udmVydCBwYWQgZnVuY3Rpb25zIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgcXVlcnkgY29udmVydCBwYWQgZnVuY3Rpb25zCgkgIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCjIwMDktMDEtMDUgMTU6NDE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IFRoZSBsb2NrIG9yZGVyIHNob3VsZCBiZSBtYWluY29udGV4dCA+IE9CSkVDVF9MT0NLIHNvIHdlIG5lZWQgdG8gcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgd2hlbiB3YWtpbmcgdXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c193YWtldXBfbWFpbl9jb250ZXh0KToKCSAgVGhlIGxvY2sgb3JkZXIgc2hvdWxkIGJlIG1haW5jb250ZXh0ID4gT0JKRUNUX0xPQ0sgc28gd2UgbmVlZCB0byByZWxlYXNlCgkgIHRoZSBvYmplY3QgbG9jayB3aGVuIHdha2luZyB1cCB0aGUgbWFpbmxvb3AgdG8gYXZvaWQgZGVhZGxvY2tzLgoKMjAwOS0wMS0wNSAxMDoxNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIGFuIGl0ZXJhdG9yIHRvIHNldCB0aGUgY2xvY2sgYW5kIHRoZSBpbmRleCBzbyB0aGF0IHdlIGNhbiByZWxlYXNlIHRoZSBvYmplY3QgbG9jayBhcHByb3ByaWF0ZWx5LiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9pbmRleF9mdW5jKSwgKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIFVzZSBhbiBpdGVyYXRvciB0byBzZXQgdGhlIGNsb2NrIGFuZCB0aGUgaW5kZXggc28gdGhhdCB3ZSBjYW4gcmVsZWFzZQoJICB0aGUgb2JqZWN0IGxvY2sgYXBwcm9wcmlhdGVseS4gRml4ZXMgIzU2NjM5My4KCjIwMDktMDEtMDMgMTg6Mzk6MzggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVzZSB0aGUgbmFtZSBvZiB0aGUgcGFkcyBpbnN0ZWFkIG9mIGEgcG9pbnRlciwgaGVscHMgaW4gZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSk6CgkgIFVzZSB0aGUgbmFtZSBvZiB0aGUgcGFkcyBpbnN0ZWFkIG9mIGEgcG9pbnRlciwgaGVscHMgaW4gZGVidWdnaW5nLgoKMjAwOS0wMS0wMyAxODoxNjo1NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RpbmRleC5jOiBBZGQgYSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgZm9yIEdzdEluZGV4LCBmaXJzdCBsaXR0bGUgc3RlcCBpbiBtYWtpbmcgaW5kZXhpbmcgdG9wLW5vdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9nZXRfdHlwZSk6CgkgIEFkZCBhIGRlYnVnZ2luZyBjYXRlZ29yeSBmb3IgR3N0SW5kZXgsIGZpcnN0IGxpdHRsZSBzdGVwIGluIG1ha2luZwoJICBpbmRleGluZyB0b3Atbm90Y2guCgoyMDA5LTAxLTAzIDE4OjEwOjA4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogQXNzaWduIGRlYnVnIHN0YXRlbWVudHMgdG8gcmVsZXZhbnQgY2F0ZWdvcmllcyBpbnN0ZWFkIG9mIHRoZSAnZGVmYXVsdCcgY2F0ZWdvcnkgc28gdGhleSBkb24ndCBnZXQgbG9zdCBpbiBkZWJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwgKGdzdF9wYWRfcHJveHlfc2V0Y2FwcyksCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbCksCgkgIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbCksIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIEFzc2lnbiBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIHJlbGV2YW50IGNhdGVnb3JpZXMgaW5zdGVhZCBvZiB0aGUgJ2RlZmF1bHQnCgkgIGNhdGVnb3J5IHNvIHRoZXkgZG9uJ3QgZ2V0IGxvc3QgaW4gZGVidWdnaW5nLgoKMjAwOS0wMS0wMSAyMToyNzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogQWRkIHNvbWUgaWRlYXMsIGhvdyB0byBtYWtlIHRoZSBncmFwaCBzbWFsbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBBZGQgc29tZSBpZGVhcywgaG93IHRvIG1ha2UgdGhlIGdyYXBoIHNtYWxsZXIuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBhIGNvbW1lbnQgZnJvbSBhIGRlYnVnIHNlc3Npb24uCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIExvZyBtb3JlIGNvbnRleHQuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBJbmRldC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDgtMTItMjcgMTc6NDE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1ha2UgR3N0QnVzU291cmNlIHdvcmsgd2l0aCBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzICgjNTYyMTcwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9idXNfd2FrZXVwX21haW5fY29udGV4dCksIChnc3RfYnVzX3NldF9tYWluX2NvbnRleHQpLAoJICAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpOgoJICBNYWtlIEdzdEJ1c1NvdXJjZSB3b3JrIHdpdGggbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyAoIzU2MjE3MCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHRlc3Rfd2F0Y2gpLCAodGVzdF93YXRjaF93aXRoX2N1c3RvbV9jb250ZXh0KSwgKGdzdF9idXNfc3VpdGUpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBHc3RCdXNTb3VyY2Ugd2l0aCBhIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0xMi0yNyAxNjoyMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBXcmFwIG11bHRpLWxpbmUgbWFjcm9zIGluIEdfU1RNVF97U1RBUlR8RU5EfS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6ICh1bnBhY2tfZWxlbWVudCksICh1bnBhY2tfY29uc3Rfc3RyaW5nKSwKCSAgKHVucGFja19zdHJpbmcpOjoKCSAgV3JhcCBtdWx0aS1saW5lIG1hY3JvcyBpbiBHX1NUTVRfe1NUQVJUfEVORH0uCgoyMDA4LTEyLTIwIDE3OjMzOjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBVUkkgcXVlcnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gcXVlcnkgdGhlIFVSSSBvZiBhIHNpbmsvc291cmNlIGVsZW1lbnQgYW5kIGNhbiBiZSB1c2VkIGJ5IGRlbXV4ZXJzIHRoYXQgbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfdXJpKSwgKGdzdF9xdWVyeV9zZXRfdXJpKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV91cmkpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBUEk6IEFkZCBVUkkgcXVlcnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gcXVlcnkgdGhlIFVSSQoJICBvZiBhIHNpbmsvc291cmNlIGVsZW1lbnQgYW5kIGNhbiBiZSB1c2VkIGJ5IGRlbXV4ZXJzIHRoYXQKCSAgbmVlZCB0byBnZXQgZGF0YSBmcm9tIG90aGVyIGZpbGVzLgoJICBUaGlzIHF1ZXJ5IHNob3VsZCBnbyB1cHN0cmVhbSBieSBkZWZhdWx0LgoJICBGaXhlcyBidWcgIzU2Mjk0OS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19xdWVyeSk6CgkgIEltcGxlbWVudCBVUkkgcXVlcnkuCgoyMDA4LTEyLTE5IDE1OjExOjA2ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkgIERvbid0IGZvcndhcmQgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIGEgc291cmNlIGdob3N0cGFkIHRvIGl0cyB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBEb24ndCBmb3J3YXJkIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiBhIHNvdXJjZSBnaG9zdHBhZCB0byBpdHMgdGFyZ2V0LgoJICBUaGF0IHdvdWxkIGNhdXNlIHRoZSBnaG9zdHBhZCB0byBlbWl0IG5vdGlmeTo6Y2FwcyB0d28gdGltZXMgKGZpc3QKCSAgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGFmdGVyIGZyb20gb25fc3JjX3RhcmdldF9ub3RpZnkoKSkuCgoyMDA4LTEyLTE5IDExOjI0OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBzb21lIG1vcmUgdW5pdC10ZXN0cyBmb3IgdGhlIGdob3N0cGFkIG5vdGlmeSBzaWduYWwsIG9uZSBvZiB3aGljaCBjdXJyZW50bHkgZmFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoZ2hvc3Rfbm90aWZ5X2NhcHMpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBtb3JlIHVuaXQtdGVzdHMgZm9yIHRoZSBnaG9zdHBhZCBub3RpZnkgc2lnbmFsLCBvbmUgb2Ygd2hpY2gKCSAgY3VycmVudGx5IGZhaWxzLgoKMjAwOC0xMi0xOSAwOTo0NDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzIHRvIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncyB0byB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0xMi0xNyAxNjoxNjo0NSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJICBJbiBhIHNvdXJjZSBnaG9zdHBhZCwgd2hlbiBjYXBzIGFyZSBjaGFuZ2VkIGluIHRoZSB0YXJnZXQgcGFkLCB0aGUgY2hhbmdlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgZ2hvc3RwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBJbiBhIHNvdXJjZSBnaG9zdHBhZCwgd2hlbiBjYXBzIGFyZSBjaGFuZ2VkIGluIHRoZSB0YXJnZXQgcGFkLCB0aGUKCSAgY2hhbmdlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgZ2hvc3RwYWQuCgkgIEZpeGVzICM1NjQ4NjMuCgoyMDA4LTEyLTE3IDA5OjM3OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIEZJWE1FIGZvciAwLjExIHRvIHNldCB0aGUgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGFuZCBub3QgdGhlIGVsZW1lbnQuIE90aGVyd2lzZSBpdCdzIGltcG9zc2libGUgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQpOgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gc2V0IHRoZSBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgYW5kIG5vdAoJICB0aGUgZWxlbWVudC4gT3RoZXJ3aXNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlY3QgZm9yIHdoaWNoCgkgIHBhZCB0aGUgdGFncyB3ZXJlIGZvdW5kIHdpdGhvdXQgYWRkaW5nIGFuIGV2ZW50IHByb2JlCgkgIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBwYWQuCgoyMDA4LTEyLTE2IDIxOjMzOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9mYXEvZ2VuZXJhbC54bWw6IFVwZGF0ZSB0aGUgZmFxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgVXBkYXRlIHRoZSBmYXEuCgoyMDA4LTEyLTE2IDE1OjUxOjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW5hbWUgYXBpIGFkZGVkIGluIHByZXZpb3VzIGNvbW1pdCBhbmQgYWRkIHNpbmNlIHRhZyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIFJlbmFtZSBhcGkgYWRkZWQgaW4gcHJldmlvdXMgY29tbWl0IGFuZCBhZGQgc2luY2UgdGFnIHRvIGRvY3MuCgkgIEFQSTogZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncygpCgoyMDA4LTEyLTE2IDE0OjA1OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgZnVuY3Rpb24gdG8gcmVzZXQgdGFnc2V0dGVyIGZvciBlbGVtZW50IHJldXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIEFkZCBmdW5jdGlvbiB0byByZXNldCB0YWdzZXR0ZXIgZm9yIGVsZW1lbnQgcmV1c2UuCgkgIEFQSTogZ3N0X3RhZ19zZXR0ZXJfZmx1c2goKQoKMjAwOC0xMi0xNiAwOTozNzo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQXZvaWQgY29weSBvZiBlbXB0eSB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBdm9pZCBjb3B5IG9mIGVtcHR5IHRhZ2xpc3QuCgoyMDA4LTEyLTE2IDA5OjIzOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGNvbXBsZXRlIHVuaXQgdGVzdHMuIEZpeCBoYW5kbGluZyBvZiBlbXB0eSB0YWdsaXN0cyAodGhleSB3ZXJlIG5vdCBtZXJnZWQgYmVmb3JlKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIE1vcmUgY29tcGxldGUgdW5pdCB0ZXN0cy4gRml4IGhhbmRsaW5nIG9mIGVtcHR5IHRhZ2xpc3RzICh0aGV5IHdlcmUKCSAgbm90IG1lcmdlZCBiZWZvcmUpLgoKMjAwOC0xMi0xNiAwNzowNzozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogVXBkYXRlIEdzdFRhZ1NldHRlciBhbmQgR3N0VGFnTWVyZ2VNb2RlIGRvY3VtZW50YXRpb24uIE1lbnRpb24gdGhhdCB0YWdzIGNhbiBjb21lIGZyb20gZXZlbnRzIGFuZCBmcm9tIGFwcGxpY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBVcGRhdGUgR3N0VGFnU2V0dGVyIGFuZCBHc3RUYWdNZXJnZU1vZGUgZG9jdW1lbnRhdGlvbi4gTWVudGlvbgoJICB0aGF0IHRhZ3MgY2FuIGNvbWUgZnJvbSBldmVudHMgYW5kIGZyb20gYXBwbGljYXRpb24uIEZpeCBleGFtcGxlLgoKMjAwOC0xMi0xNSAxNToyNzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlbW92ZSB0aGUgc2VxbnVtIGVudHJ5IHRoYXQgd2UgaW1wbGVtZW50ZWQgaW4gMC4xMCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZW1vdmUgdGhlIHNlcW51bSBlbnRyeSB0aGF0IHdlIGltcGxlbWVudGVkIGluIDAuMTAgYWxyZWFkeS4KCSAgQWRkIGVudHJ5IGFib3V0IHJlbW92aW5nIHRoZSBmb3JtYXQgcmV0dXJuIHZhbHVlIGZvciBxdWVyaWVzLgoKMjAwOC0xMi0xNSAxMjo0Nzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRXhwb3NlIHRoZSByZW5kZXItZGVsYXkgYXMgYSBwcm9wZXJ0eSBzbyB0aGluZ3MgbGlrZSBhcHBzaW5rIGNhbiB1c2UgaXQgdG8gdHdlYWsgdGhlIHN5bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KToKCSAgRXhwb3NlIHRoZSByZW5kZXItZGVsYXkgYXMgYSBwcm9wZXJ0eSBzbyB0aGluZ3MgbGlrZSBhcHBzaW5rIGNhbiB1c2UgaXQKCSAgdG8gdHdlYWsgdGhlIHN5bmNocm9uaXNhdGlvbi4KCjIwMDgtMTItMTAgMTU6MTk6NDUgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogQWxsb3cgY2hlY2sgdGVzdHMgdG8gdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEFsbG93IGNoZWNrIHRlc3RzIHRvIHVzZQoJICBNQUlOX1NUQVJUX1RIUkVBRFMoKS9NQUlOX1NUT1BfVEhSRUFEUygpIG11bHRpcGxlIHRpbWVzLiBBbHNvIGFsbG93cwoJICBDS19GT1JLPW5vIHRvIGJlIHVzZWQgd2l0aCBtdWx0aXBsZSBjaGVjayB0ZXN0IHRoYXQgdXNlIHRocmVhZHMuCgoyMDA4LTEyLTA5IDE2OjIzOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IGEgY2FwcyBtZW1vcnkgbGVhayBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXN0IGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICBGaXggYSBjYXBzIG1lbW9yeSBsZWFrIGludHJvZHVjZWQgYnkgdGhlIGxhc3QgY2hhbmdlLgoKMjAwOC0xMi0wOSAxNTo0NTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIHRoZSBjYXBzIG9mIHRoZSBwYWRzIGFyZSBjb21wYXRpYmxlIGJlZm9yZSByZXR1cm5pbmcgYSBwYWQgYW5kIGNsYWltaW5nIGl0IGlzIGNvbXBhdGlibGUuIFRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgQ2hlY2sgaWYgdGhlIGNhcHMgb2YgdGhlIHBhZHMgYXJlIGNvbXBhdGlibGUgYmVmb3JlIHJldHVybmluZwoJICBhIHBhZCBhbmQgY2xhaW1pbmcgaXQgaXMgY29tcGF0aWJsZS4gVGhpcywgYW1vbmcgb3RoZXIgdGhpbmdzLAoJICBmaXhlcyBhIGJ1ZyB3aXRoIGdzdC1sYXVuY2ggd2hlcmUgYW4gaW5jb21wYXRpYmxlIHBhZCBpcyBjaG9zZW4KCSAgYW5kIGxpbmtpbmcgZmFpbHMuIEZpeGVzIGJ1ZyAjNTQ0MDAzLgoKMjAwOC0xMi0wOSAxNDo0NjoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogUmV2ZXJ0IGFjY2lkZW50aWFsbHkgY29tbWl0ZWQgcGF0Y2ggZm9yIGJ1ZyAjNDA0NjMxIHdoaWNoIHRyaWVzIHRvIHByaW50IGEgYmFja3RyYWNlIGlmIGEgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCk6CgkgIFJldmVydCBhY2NpZGVudGlhbGx5IGNvbW1pdGVkIHBhdGNoIGZvciBidWcgIzQwNDYzMSB3aGljaAoJICB0cmllcyB0byBwcmludCBhIGJhY2t0cmFjZSBpZiBhIHRlc3RjYXNlIGlzIHRlcm1pbmF0ZWQgYnkKCSAgYSBzaWduYWwuIFRoaXMgY29kZSB3YXMgbmV2ZXIgYWN0aXZhdGVkIGFzIHRoZSBjb3JyZXNwb25kaW5nCgkgIGNvbmZpZ3VyZS5hYyBjaGFuZ2Ugd2Fzbid0IGNvbW1pdHRlZC4KCjIwMDgtMTItMDkgMTA6NTg6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBUaGlzIHRlc3Qgc2hvdWxkIHJldHVybiBUUlVFIG5vdyBhcyBzeW5jaW5nIGFuIHVuY29udHJvbGxlZCBvYmplY3Qgd2lsbCBzdWNjZWVkIG5vdyAodC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVGhpcyB0ZXN0IHNob3VsZCByZXR1cm4gVFJVRSBub3cgYXMgc3luY2luZyBhbiB1bmNvbnRyb2xsZWQKCSAgb2JqZWN0IHdpbGwgc3VjY2VlZCBub3cgKHRoZXJlJ3Mgbm90aGluZyB0byBzeW5jKS4KCjIwMDgtMTItMDkgMDk6NTY6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBBZ2dyZWdhdGUgcmV0dXJuIHZhbHVlIGZvciBnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcygpLiBNb3JlIGluZm8gaW4gbG9nZ2luZy4gQS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWdncmVnYXRlIHJldHVybiB2YWx1ZSBmb3IgZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMoKS4gTW9yZSBpbmZvIGluCgkgIGxvZ2dpbmcuIEFsd2F5cyBzZXQgdmFsdWVzIG9uIGZpcnN0IHN5bmMtY2FsbC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgTWljcm9vcHRpbWl6YXRpb25zLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIEZpeCByZXR1cm4gY29kZSBhbmQgY29tbWVudC4KCjIwMDgtMTItMDkgMDk6MDA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRml4IGRlc2NyaXB0aW9uIG9mIGhvdyB0byBzcGVjaWZ5IGEgdHlwZSBpbiBjYXBzLiBGaXhlcyAjNTUzODczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZpeCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gc3BlY2lmeSBhIHR5cGUgaW4gY2Fwcy4gRml4ZXMgIzU1Mzg3My4KCSAgQWxzbyByYW5nZXMgYW5kIGxpc3QgY29udGFpbiB2YWx1ZXMgYW5kIG5vdCBwcm9wZXJ0eS1hc3NpZ25tZW50cy4KCjIwMDgtMTItMDggMjI6Mjg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBDaGVjayBmb3IgY2hhbmdlZCBwYWRzLWxpc3QgYmVmb3JlIGNoZWNraW5nIHRoZSBsYXN0IHJldHVybmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBDaGVjayBmb3IgY2hhbmdlZCBwYWRzLWxpc3QgYmVmb3JlIGNoZWNraW5nIHRoZSBsYXN0IHJldHVybmVkCgkgIEdzdEZsb3dSZXR1cm4gYmVjYXVzZSB0aGUgcGFkIGNvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGFuZCB3ZQoJICBuZWVkIHRvIGlnbm9yZSB0aGUgdmFsdWUgaW4gdGhhdCBjYXNlLgoKMjAwOC0xMi0wOCAxODozNTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBBZGQgdm1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgd2Ugc3RhcnQgdGhlIHRyYW5zZm9ybSBhbmQgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFkZCB2bWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB3ZSBzdGFydCB0aGUgdHJhbnNmb3JtIGFuZCB3aGljaCBjYW4KCSAgYmUgdXNlZCB0byBjb25maWd1cmUgdGhlIHRyYW5zZm9ybSwgc3VjaCBhcyBkeW5hbWljIHByb3BlcnRpZXMuCgoyMDA4LTEyLTA1IDIwOjMyOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogU2VhcmNoIGZvciBwbHVnaW5zIG9uIHdpbjMyIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgZ3N0cmVhbWVyIERMTC4gIEZpeGVzICM1NDg3ODYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBTZWFyY2ggZm9yIHBsdWdpbnMgb24gd2luMzIgYmFzZWQgb24gdGhlIGxvY2F0aW9uIG9mIHRoZQoJICBnc3RyZWFtZXIgRExMLiAgRml4ZXMgIzU0ODc4NgoKMjAwOC0xMi0wNCAyMDoxMDo0MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBcHBhcmVudGx5IEFDX0NPTkZJR19NQUNST19ESVIgYnJlYWtzIHdoZW4gdXNpbmcgbW9yZSB0aGFuIG9uZSBtYWNybyBkaXJlY3RvcnksIHJldmVydGluZyBsYXN0IGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBcHBhcmVudGx5IEFDX0NPTkZJR19NQUNST19ESVIgYnJlYWtzIHdoZW4gdXNpbmcgbW9yZQoJICB0aGFuIG9uZSBtYWNybyBkaXJlY3RvcnksIHJldmVydGluZyBsYXN0IGNoYW5nZS4KCjIwMDgtMTItMDQgMTk6NDU6MDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogU2V0IEFDX0NPTkZJR19NQUNST19ESVIgdG8gY29tbW9uL200IHRvIHBvaW50IGF1dG9jb25mIHRvIG91ciBNNCBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgU2V0IEFDX0NPTkZJR19NQUNST19ESVIgdG8gY29tbW9uL200IHRvIHBvaW50IGF1dG9jb25mIHRvCgkgIG91ciBNNCBtYWNyb3MuCgoyMDA4LTExLTI5IDEzOjI5OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZXF1aXJlIGdldHRleHQgMC4xNyBiZWNhdXNlIG9sZGVyIHZlcnNpb25zIGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yLiBBdCBidWlsZCB0aW1lIGFuIG9sZGVyIGdldHRleHQgdmVyc2lvbiB3aWxsIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lcgoJICA8eXNlbGtvd2l0eiBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KCSAgKiBhdXRvZ2VuLnNoOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBnZXR0ZXh0IDAuMTcgYmVjYXVzZSBvbGRlciB2ZXJzaW9ucyBkb24ndCBtaXggd2l0aCBsaWJ0b29sCgkgIDIuMi4gQXQgYnVpbGQgdGltZSBhbiBvbGRlciBnZXR0ZXh0IHZlcnNpb24gd2lsbCBzdGlsbCB3b3JrLgoJICBGaXhlcyBidWcgIzU1NjA5MS4KCjIwMDgtMTEtMjcgMTE6MTI6MzAgKzAwMDAgIOydtOusuO2YlSA8aXdpbmdzQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLmM6IEFkZHMgc3VwcG9ydCBmb3IgRkRfQ09OTkVDVCBldmVudCAod2luMzIpLiBTZWUgIzU2MjI1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiDsnbTrrLjtmJUgPGl3aW5ncyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLCAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKToKCSAgQWRkcyBzdXBwb3J0IGZvciBGRF9DT05ORUNUIGV2ZW50ICh3aW4zMikuIFNlZSAjNTYyMjU4LgoKMjAwOC0xMS0yNCAyMDowMjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUdXJuIGNvbW1lbnQgaW50byBndGstZG9jIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVHVybiBjb21tZW50IGludG8gZ3RrLWRvYyBjb21tZW50LgoKMjAwOC0xMS0yNCAxNToyNzo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZXZlcnQgcXVpY2sgYWNjZXBjYXBzIGF0dGVtcHQsIGl0J3Mgbm90IGZ1bGx5IGVxdWl2YWxlbnQgdG8gdGhlIG9sZCBiZWhhdmlvdXIgYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKToKCSAgUmV2ZXJ0IHF1aWNrIGFjY2VwY2FwcyBhdHRlbXB0LCBpdCdzIG5vdCBmdWxseSBlcXVpdmFsZW50IHRvIHRoZSBvbGQKCSAgYmVoYXZpb3VyIGFuZCB0aHVzIGNhdXNlcyByZWdyZXNzaW9ucy4KCjIwMDgtMTEtMjQgMTE6NTY6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogRml4IG1lbW9yeSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEZpeCBtZW1vcnkgbGVhay4KCjIwMDgtMTEtMjQgMDk6NTk6MDcgKzAwMDAgIFNpbW9uIEhvbG0gVGjDuGdlcnNlbiA8b2RpZUBjcy5hYXUuZGs+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUmVkdWNlIHRoZSBudW1iZXIgb2Ygc3RhdCgpIGNhbGxzIGZvciBldmVyeSBmaWxlIGZyb20gdGhyZWUgdGltZXMgdG8gb25lIHRpbWUuIEZpeGVzIGJ1ZyAjNTYwMzYwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNpbW9uIEhvbG0gVGjDuGdlcnNlbiA8b2RpZSBhdCBjcyBkb3QgYWF1IGRvdCBkaz4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBSZWR1Y2UgdGhlIG51bWJlciBvZiBzdGF0KCkgY2FsbHMgZm9yIGV2ZXJ5IGZpbGUgZnJvbSB0aHJlZSB0aW1lcwoJICB0byBvbmUgdGltZS4gRml4ZXMgYnVnICM1NjAzNjAuCgoyMDA4LTExLTIyIDE1OjA5OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJlbmFtZSBhIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2Fwcyk6CgkgIFJlbmFtZSBhIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlci4KCjIwMDgtMTEtMjEgMjA6NTc6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9uJ3Qgd2FybmluZyBvbiBvZmZzZXQ9PS0xLiBUYWtlbiBmcm9tIF9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgRG9uJ3Qgd2FybmluZyBvbiBvZmZzZXQ9PS0xLiBUYWtlbiBmcm9tIF9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KCkuCgoyMDA4LTExLTIxIDE4OjI2OjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQ2hlY2sgZm9yIGxvY2FsaG9zdCBpbiBVUkkgd2FzIGJhY2t3YXJkcywgZml4IGl0LiBGaXhlcyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBDaGVjayBmb3IgbG9jYWxob3N0IGluIFVSSSB3YXMgYmFja3dhcmRzLCBmaXggaXQuIEZpeGVzIHVuaXQgdGVzdC4KCjIwMDgtMTEtMjEgMTc6MTQ6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkIGJlZ2lubmluZ3Mgb2YgYSBtb3JlIG9wdGltaXplZCBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRoYW4gdGhlIGRlZmF1bHQgY29yZSBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIEFkZCBiZWdpbm5pbmdzIG9mIGEgbW9yZSBvcHRpbWl6ZWQgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0aGFuIHRoZSBkZWZhdWx0CgkgIGNvcmUgb25lLgoKMjAwOC0xMS0yMSAxNjo0ODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQXZvaWQgZ2V0dGluZyB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0b28gZWFybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpOgoJICBBdm9pZCBnZXR0aW5nIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRvbyBlYXJseS4KCjIwMDgtMTEtMjEgMDg6MDk6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1ha2UgZ3N0LWxhdW5jaCBoYW5kbGUgTEFURU5DWSBtZXNzYWdlcyBhbmQgbWFrZSBpdCByZWNhbGN1bGF0ZSB0aGUgbGF0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2UgZ3N0LWxhdW5jaCBoYW5kbGUgTEFURU5DWSBtZXNzYWdlcyBhbmQgbWFrZSBpdCByZWNhbGN1bGF0ZSB0aGUKCSAgbGF0ZW5jeS4KCjIwMDgtMTEtMjAgMjE6MDU6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVc2UgZ19maWxlbmFtZV9mcm9tX3VyaSgpIGZvciBVUkkgcGFyc2luZyBpbiBmaWxlc3JjIHJhdGhlciB0aGFuIHJvbGxpbmcgb3V0IG93biBzbGlnaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIGdfZmlsZW5hbWVfZnJvbV91cmkoKSBmb3IgVVJJIHBhcnNpbmcgaW4gZmlsZXNyYyByYXRoZXIgdGhhbiByb2xsaW5nCgkgIG91dCBvd24gc2xpZ2h0bHkgaW5jb3JyZWN0IHZlcnNpb24uIEZpeGVzIHVzZSBvZiBzb21lIHBhdGhzIG9uCgkgIHdpbjMyLgoKMjAwOC0xMS0yMCAyMDo0NDo1NiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluIHdpbjMyIGNvZGVwYXRoLCBpZiB3ZSBmYWlsIHRvIHdyaXRlIHRoZSByZWdpc3RyeSwgY3JlYXRlIHRoZSBkaXJlY3RvcnkgZm9yIGl0IGFuZCB0cnkgYWdhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBJbiB3aW4zMiBjb2RlcGF0aCwgaWYgd2UgZmFpbCB0byB3cml0ZSB0aGUgcmVnaXN0cnksIGNyZWF0ZSB0aGUKCSAgZGlyZWN0b3J5IGZvciBpdCBhbmQgdHJ5IGFnYWluLCBtYXRjaGluZyB0aGUgYmVoYXZpb3VyIGluIG5vbi13aW4zMgoJICBjb2RlcGF0aHMuCgoyMDA4LTExLTIwIDE0OjIzOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBDaGFuZ2luZyB0aGUgcmVuZGVyIGRlbGF5IGNoYW5nZXMgdGhlIGxhdGVuY3kgYW5kIHNvIHdlIG11c3QgcG9zdCBhIGxhdGVuY3kgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KToKCSAgQ2hhbmdpbmcgdGhlIHJlbmRlciBkZWxheSBjaGFuZ2VzIHRoZSBsYXRlbmN5IGFuZCBzbyB3ZSBtdXN0IHBvc3QgYQoJICBsYXRlbmN5IG1lc3NhZ2UuCgoyMDA4LTExLTIwIDEwOjM1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IEFkZCBHc3RRdWVyeVR5cGUgZm9yIGN1c3RvbSBxdWVyaWVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHVzZSB0aGUgbm90LXNvLXZlcnktY29udmVuaWVudCByZWdpc3RyYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgR3N0UXVlcnlUeXBlIGZvciBjdXN0b20gcXVlcmllcyBpbnN0ZWFkIG9mIGhhdmluZyB0byB1c2UgdGhlCgkgIG5vdC1zby12ZXJ5LWNvbnZlbmllbnQgcmVnaXN0cmF0aW9uIGluZnJhc3RydWN0dXJlIHRvIHJlZ2lzdGVyIG5ldwoJICB0eXBlcy4KCjIwMDgtMTEtMTkgMTI6MjA6MDMgKzAwMDAgIEFuZHJldyBGZXJlbiA8YWNmZXJlbkB5YWhvby5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFVucmVmIHRoZSBHRW51bUNsYXNzIGFmdGVyIHVzYWdlIGFnYWluLiBGaXhlcyBidWcgIzU2MTUwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbmRyZXcgRmVyZW4gPGFjZmVyZW4gYXQgeWFob28gZG90IGNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2RlZmF1bHRfZGVlcF9ub3RpZnkpOgoJICBVbnJlZiB0aGUgR0VudW1DbGFzcyBhZnRlciB1c2FnZSBhZ2Fpbi4gRml4ZXMgYnVnICM1NjE1MDEuCgoyMDA4LTExLTE5IDEyOjA2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBBZGQgZG8tbGF0ZW5jeSBzaWduYWwgd2l0aCB0aGUgb2xkIGRlZmF1bHQgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24uIFRoaXMgYWxsb3dzIGZvciBjdXN0b20gbGF0ZW5jeSBjYWxjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKF9nc3RfYm9vbGVhbl9hY2N1bXVsYXRvciksIChnc3RfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KSwgKGdzdF9iaW5fZG9fbGF0ZW5jeV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIGRvLWxhdGVuY3kgc2lnbmFsIHdpdGggdGhlIG9sZCBkZWZhdWx0IGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLiBUaGlzCgkgIGFsbG93cyBmb3IgY3VzdG9tIGxhdGVuY3kgY2FsY3VsYXRpb25zIGZvciB3aGVuIHRoZSBkZWZhdWx0IGlzIG5vdAoJICBzdWZmaWNpZW50LgoJICBBUEk6IEdzdEJpbjo6ZG8tbGF0ZW5jeSBzaWduYWwuCgoyMDA4LTExLTE4IDEzOjM2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgc3ltYm9scyB0byAuZGVmIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gLmRlZiBmaWxlLgoKMjAwOC0xMS0xOCAwOTo1ODozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gcmVjYWxjdWxhdGUgYW5kIHJlZGlzdHJpYnV0ZSB0aGUgbGF0ZW5jeSBvbiBhIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3kpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgbWV0aG9kIHRvIHJlY2FsY3VsYXRlIGFuZCByZWRpc3RyaWJ1dGUgdGhlIGxhdGVuY3kgb24gYSBiaW4uCgkgIEFQSTogZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KCkuCgoyMDA4LTExLTE4IDA5OjUyOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEb2N1bWVudCB0aGUgZnJlZV9mdW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERvY3VtZW50IHRoZSBmcmVlX2Z1bmMuCgoyMDA4LTExLTE3IDIxOjQzOjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgaW5zdGVhZCBvZiBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgYXMgaXQgaXMgbWFwcGVkIHRvIGEgY2FzdCBvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlCgkgIGFzIGl0IGlzIG1hcHBlZCB0byBhIGNhc3Qgb24gbm9uLXdpbjMyIHBsYXRmb3Jtcy4KCjIwMDgtMTEtMTcgMjE6NDE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBLZWVwIGxhc3QtdmFsdWUgYW5kIG9ubHkgY2FsbCBzZXRfcHJvcGVydHkgaWYgdmFsdWUgaGFzIGNoYW5nZWQuIFRoaXMgc3VwcmVzc2VzIGFsbCB0aGUgZ19vYmplYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgIEtlZXAgbGFzdC12YWx1ZSBhbmQgb25seSBjYWxsIHNldF9wcm9wZXJ0eSBpZiB2YWx1ZSBoYXMgY2hhbmdlZC4gVGhpcwoJICBzdXByZXNzZXMgYWxsIHRoZSBnX29iamVjdF9ub3RpZmllcyB3ZSB3b3VsZCB0cmlnZ2VyIG90aGVyd2lzZS4gSXQKCSAgYWxzbyBhbGxvd3MgdGhlIHVzZXIgdG8gY2hhZ2UgdGhlIHZhbHVlIHdoaWxlIHRoZXJlIGlzIG5vIGNvbnRyb2xsZXIKCSAgY2hhbmdlLgoKMjAwOC0xMS0xNyAyMToyNTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvbid0IGNyYXNoIGlmIGVpdGhlciBvZiB0aGUgc3RyaW5nIEdWYWx1ZXMgaXMgZW1wdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb24ndCBjcmFzaCBpZiBlaXRoZXIgb2YgdGhlIHN0cmluZyBHVmFsdWVzIGlzIGVtcHR5LgoKMjAwOC0xMS0xNyAxNTo0ODoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IE5ldyBmdW5jdGlvbiwgcHJpbnRzIGEgc3VtbWFyeSBvZiB3aGF0IFVSSSBzY2hlbWVzIGFyZSBzdXBwb3J0ZWQgYnkgd2hhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBOZXcgZnVuY3Rpb24sCgkgIHByaW50cyBhIHN1bW1hcnkgb2Ygd2hhdCBVUkkgc2NoZW1lcyBhcmUgc3VwcG9ydGVkIGJ5IHdoYXQKCSAgZWxlbWVudHMuCgkgIChtYWluKTogUGx1bWIgaW4gc3VwcG9ydCBmb3IgLS11cmktaGFuZGxlcnMgb3IgLXUsIGFuZCBmaXggdGhlCgkgIGFyZ2MgY2hlY2sgZm9yIC1hIGFuZCAtdS4KCjIwMDgtMTEtMTcgMDQ6NDk6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgR19HTlVDX1BVUkUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlKiBhbmQgdGhlIGRvdWJsZTwtPnVpbnQ2NCBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBHX0dOVUNfUFVSRSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGUqIGFuZCB0aGUgZG91YmxlPC0+dWludDY0CgkgIGNvbnZlcnNpb24gZnVuY3Rpb25zLgoKMjAwOC0xMS0xMyAxODowOTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQXZvaWQgY29zdGx5IHR5cGVjaGVja2luZyBmb3IgdHJpdmlhbGx5IGNvcnJlY3QgcG9pbnRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBBdm9pZCBjb3N0bHkgdHlwZWNoZWNraW5nIGZvciB0cml2aWFsbHkgY29ycmVjdCBwb2ludGVycy4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfd2FpdCk6CgkgIEFkZCBzb21lIEdfTElLRUxZIGhlcmUgYW5kIHRoZXJlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcHVzaCk6CgkgIEFkZCBzb21lIGRlYnVnIGluZm8uCgoyMDA4LTExLTEzIDE4OjA1OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFNtYWxsIHR3ZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFNtYWxsIHR3ZWFrcy4KCjIwMDgtMTEtMTMgMTg6MDM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9vbGQvdGVzdHN1aXRlLzogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVwcmVjYXRlZCBBUEkgZ19tZW1fY2h1bmsqLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6IChtYWluKToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6IChtYWluKToKCSAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVwcmVjYXRlZCBBUEkgZ19tZW1fY2h1bmsqLgoJICBGaXhlcyAjNTYwNDQyLgoKMjAwOC0xMS0xMiAxNjo1NTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCAtLXBsdWdpbiBvcHRpb24uIEZpeGVzICM1NjAzMDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgQWRkIC0tcGx1Z2luIG9wdGlvbi4gRml4ZXMgIzU2MDMwMS4KCjIwMDgtMTEtMTIgMTI6NDU6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogUXVpY2sgYnJhaW5kdW1wIGZvciBhIHBvc3NpYmxlIChub3QgdG90YWxseSB2ZXJpZmllZCkgYXRvbWljIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBRdWljayBicmFpbmR1bXAgZm9yIGEgcG9zc2libGUgKG5vdCB0b3RhbGx5IHZlcmlmaWVkKSBhdG9taWMgY2FzZS4KCjIwMDgtMTEtMTIgMTA6Mzk6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBEb24ndCB3cml0ZSBhbmQgY2hlY2sgYSBDUkMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZS4gSXQncyBndWFyYW50ZWVkIHRoYXQgdGhlIHJlZ2lzdHJ5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2h1bmspLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIERvbid0IHdyaXRlIGFuZCBjaGVjayBhIENSQyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlLiBJdCdzCgkgIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVnaXN0cnkgaXMgY29tcGxldGVseSB3cml0dGVuIChpdCdzIGZpcnN0IHdyaXR0ZW4KCSAgdG8gYSB0ZW1wb3JhcnkgZmlsZSBhbmQgdGhlbiBtb3ZlZCkgYW5kIGlmIHRoZSByZWdpc3RyeSB3YXMgY29ycnVwdGVkCgkgIGJ5IHNvbWUgaGFyZHdhcmUgZmFpbHVyZSB3ZSB3b3VsZCBoYXZlIGJpZ2dlciBwcm9ibGVtcy4KCSAgQnVtcCBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbiB0byAwLjEwLjIxLjEgZm9yIHRoaXMgYXMgaXQncyBhbgoJICBpbmNvbXBhdGlibGUgY2hhbmdlIGFuZCB0byBlbnN1cmUgdGhhdCB0aGUgcmVnaXN0cnkgZ2V0cyByZWJ1aWxkCgkgIGFmdGVyIHRoZSB1cGRhdGUuCgkgIFRoaXMgc2F2ZXMgc29tZSBtaWxsaXNlY29uZHMgZm9yIHJlYWRpbmcvd3JpdGluZyB0aGUgcmVnaXN0cnkuCgkgIEZpeGVzIGJ1ZyAjNTYwMzk5LgoKMjAwOC0xMS0xMSAxNDo1MDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBTb21lIHBzZXVkbyBjb2RlIGZvciBob3cgd2UgY291bGQgaW1wbGVtZW50IGNsb2NrIHRpbWVvdXRzIHdpdGggR3N0UG9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFNvbWUgcHNldWRvIGNvZGUgZm9yIGhvdyB3ZSBjb3VsZCBpbXBsZW1lbnQgY2xvY2sgdGltZW91dHMgd2l0aCBHc3RQb2xsLgoKMjAwOC0xMS0xMCAxMzo1Njo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFVwZGF0ZSBBdXRob3Igc3RyaW5nIHRvIG1hdGNoIG90aGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBVcGRhdGUgQXV0aG9yIHN0cmluZyB0byBtYXRjaCBvdGhlcnMuCgoyMDA4LTExLTA2IDE1OjM3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJlb3JnYW5pemUgc29tZSBtb3JlLCBiZSBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBHU1RfVFlQRV9BUlJBWSBub3QgYmVpbmcgZml4ZWQgYW5kIGlubGluZSB0aGUgdHJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLCAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgUmVvcmdhbml6ZSBzb21lIG1vcmUsIGJlIG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIEdTVF9UWVBFX0FSUkFZIG5vdAoJICBiZWluZyBmaXhlZCBhbmQgaW5saW5lIHRoZSB0cml2aWFsIGNoZWNrLgoKMjAwOC0xMS0wNiAxNTowOTozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENhbGxncmluZCBtaWNybyBvcHRpbWlzYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfY29weSksIChfZ3N0X2NhcHNfZnJlZSksCgkgIChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpLCAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSksCgkgIChnc3RfY2Fwc19jb3B5X250aCksIChnc3RfY2Fwc19zZXRfc2ltcGxlKSwKCSAgKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwgKGdzdF9jYXBzX2lzX2ZpeGVkKSwKCSAgKGdzdF9jYXBzX2lzX2VxdWFsX2ZpeGVkKSwgKGdzdF9jYXBzX2ludGVyc2VjdCksCgkgIChnc3RfY2Fwc19zdWJ0cmFjdCksIChnc3RfY2Fwc19ub3JtYWxpemUpLCAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpLAoJICAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgQ2FsbGdyaW5kIG1pY3JvIG9wdGltaXNhdGlvbnMuCgkgIEF2b2lkIGFycmF5IGJvdW5kcyBjaGVja3MgYW5kIGZvcmNlIGlubGluZSBvZiB0cml2aWFsIGZ1bmN0aW9uLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWVfZGVmYXVsdCk6CgkgIC0xIGlzIGVxdWl2YWxlbnQgdG8gbGV0dGluZyBnbGliIHRvIHRoZSBzdHJsZW4gYnV0IHRoZW4gdGhlcmUgaXMgbW9yZQoJICByb29tIGZvciBvcHRpbWlzYXRpb25zIGFuZCBpdCdzIG5vdCBvdXIgZmF1bHQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKToKCSAgbm8gbmVlZCB0byBjbGVhciB0aGUgYXJyYXksIHdlJ3JlIGNvb2wuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksIChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBUaGUgbW9zdCBjb21tb24gX2lzX2ZpeGVkKCkgY2hlY2sgaXMgZG9uZSBvbiBmdW5kYW1lbnRhbCBnbGliIGJhc2UKCSAgdHlwZXMgc28gd2UgY2hlY2sgdGhpcyBmaXJzdCBpbnN0ZWFkIG9mIGRvaW5nIGEgaHVnZSBhbW91bnQgb2YKCSAgdXNlbGVzcyBHU1RfVFlQRV9BUlJBWSBjYWxscy4KCjIwMDgtMTEtMDYgMTI6MDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQWRkIGEgU0tJUCBzZWVrIGZsYWcgZm9yIHVzZSB3aXRoIGFkdmFuY2VkIHRyaWNrbW9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgYSBTS0lQIHNlZWsgZmxhZyBmb3IgdXNlIHdpdGggYWR2YW5jZWQgdHJpY2ttb2Rlcy4KCSAgQVBJOiBHc3RTZWVrRmxhZ3M6OkdTVF9TRUVLX0ZMQUdfU0tJUAoKMjAwOC0xMS0wNSAxNjo1NzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogTm8gbmVlZCB0byBtZW1zZXQsIHdlIGNhbiBjbGVhciB0aGUgdmFsdWUgb3Vyc2VsdmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpOgoJICBObyBuZWVkIHRvIG1lbXNldCwgd2UgY2FuIGNsZWFyIHRoZSB2YWx1ZSBvdXJzZWx2ZXMuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksCgkgIChnc3RfdmFsdWVfZ2V0X2NvbXBhcmVfZnVuYyk6CgkgIFNvbWUgb3B0aW1pc2F0aW9ucyBmcm9tIGEgZmV3IGNhbGxncmluZCBzZXNzaW9uczoKCSAgV2hlbiBjaGVja2luZyBpZiBhIHR5cGUgaXMgZml4ZWQsIGNoZWNrIGZvciB0cml2aWFsIGZ1bmRhbWVudGFsIHR5cGVzCgkgIGZpcnN0IGJlZm9yZSBjaGVja2luZyB0eXBlcyBmb3Igd2hpY2ggd2UgbmVlZCB0byBnZXQgdGhlIHR5cGUgZm9sbG93ZWQKCSAgYnkgdGhlIGhlYXZ5IGR1dHkgdHlwZSBjaGVja3MsIHRoaXMgcmVkdWNlcyB0aGUgYW1vdW50IG9mCgkgIGdfdHlwZV9mdW5kYW1lbnRhbCgpIGNhbGxzIGEgbG90LgoJICBXaGVuIGdldHRpbmcgdGhlIGNvbXBhcmUgZnVuY3Rpb24sIGZpcnN0IGNoZWNrIGZvciBvdXIgcmVnaXN0ZXJlZCB0eXBlcy4KCSAgSWYgdGhhdCBmYWlscywgZG8gdGhlIGhlYXZ5IGR1dHkgZ190eXBlX2lzX2EoKSBjaGVja3MsIHJlZHVjZXMgdGhlCgkgIGFtb3VudCBvZiBnX3R5cGVfaXNfYSgpIGNvbnNpZGVyYWJseS4KCjIwMDgtMTEtMDUgMTE6MTc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBNdW1ibGUgc29tZXRoaW5nIGFib3V0IHJlbW92aW5nIEdzdFhNTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgTXVtYmxlIHNvbWV0aGluZyBhYm91dCByZW1vdmluZyBHc3RYTUwuCgoyMDA4LTExLTA0IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBHZXQgdGhlIHNlcW51bSBiZWZvcmUgd2UgZGlzcG9zZSB0aGUgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgR2V0IHRoZSBzZXFudW0gYmVmb3JlIHdlIGRpc3Bvc2UgdGhlIG1lc3NhZ2UuCgoyMDA4LTExLTA0IDE2OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVmZXIgdG8gdGhlIGZyYW1lc3RlcHBpbmcgZG9jdW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlZmVyIHRvIHRoZSBmcmFtZXN0ZXBwaW5nIGRvY3VtZW50LgoKMjAwOC0xMS0wNCAxNTo1Njo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIENvcHkgc2VxbnVtcyBmcm9tIGV2ZW50cyB0byBtZXNzYWdlcyBzbyB0aGF0IHRoZXkgY2FuIGFsbCBiZSByZWxhdGVkIGJhY2sgdG8gZWFjaG90aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksIChnc3RfYmluX3F1ZXJ5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBDb3B5IHNlcW51bXMgZnJvbSBldmVudHMgdG8gbWVzc2FnZXMgc28gdGhhdCB0aGV5IGNhbiBhbGwgYmUgcmVsYXRlZAoJICBiYWNrIHRvIGVhY2hvdGhlci4KCjIwMDgtMTEtMDQgMTU6NTI6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IHRoZSBtZXNzYWdlIHNlcW51bXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCB0aGUgbWVzc2FnZSBzZXFudW1zLgoKMjAwOC0xMS0wNCAxMzo1NjozNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0KTogUmVmYWN0b3IgZm9yIGNsYXJpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCk6IFJlZmFjdG9yIGZvciBjbGFyaXR5LgoJICBBbHNvIGFkZCBBUEk6IHRvIHByZXZpb3VzIGNoYW5nZWxvZyBlbnRyeS4KCjIwMDgtMTEtMDQgMTI6MjI6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEFkZCBzZXF1ZW5jZSBudW1iZXJzIHRvIGV2ZW50cyBhbmQgbWVzc2FnZXMuIFNlZSAjNTU5MjUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgQWRkIHNlcXVlbmNlIG51bWJlcnMgdG8gZXZlbnRzIGFuZCBtZXNzYWdlcy4gU2VlICM1NTkyNTAuCgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0LCBnc3RfdXRpbF9zZXFudW1fY29tcGFyZSk6CgkgIE5ldyBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmMgKF9nc3RfZXZlbnRfY29weSwgZ3N0X2V2ZW50X25ldyk6IEluaXRpYWxpemUgbmV3CgkgIGV2ZW50cyB3aXRoIGEgbmV3IHNlcXVlbmNlIG51bWJlciwgYW5kIGNvcHkgaXQgd2hlbiBjb3B5aW5nLgoJICAoZ3N0X2V2ZW50X2dldF9zZXFudW0sIGdzdF9ldmVudF9zZXRfc2VxbnVtKTogQWNjZXNzb3JzIGZvciBhbgoJICBldmVudCdzIHNlcXVlbmNlIG51bWJlci4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKF9nc3RfbWVzc2FnZV9jb3B5LCBnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKGdzdF9ldmVudF9nZXRfc2VxbnVtLCBnc3RfZXZlbnRfc2V0X3NlcW51bSk6IEFzIHdpdGggZXZlbnRzLCBzbwoJICB3aXRoIG1lc3NhZ2VzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzLgoKMjAwOC0xMS0wNCAxMTo1NTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWwgZml4ZXMgdGhhbmtzIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIFNvbWUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsIGZpeGVzIHRoYW5rcyB0bwoJICBBbmRyZXcgRmVyZW4uIEZpeGVzICM1NTg0NTkuCgoyMDA4LTExLTAzIDEyOjI5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRG9uJ3QgYm90aGVyIHdpdGggdGhlIEdUaW1lciBpZiB3ZSBkb24ndCBvdXRwdXQgdGhlIHJlc3VsdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBEb24ndCBib3RoZXIgd2l0aCB0aGUgR1RpbWVyIGlmIHdlIGRvbid0IG91dHB1dCB0aGUgcmVzdWx0cy4KCjIwMDgtMTEtMDMgMTA6NTk6NDkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOiBBZGQgV0lOMzJfTElCUyB0byBsaWJnc3RuZXQgTElCQURELiBGaXhlcyAjNTU3MzAwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhdmlkIFNjaGxlZWYgIDxkc0BzY2hsZWVmLm9yZz4KCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIEFkZCBXSU4zMl9MSUJTIHRvIGxpYmdzdG5ldCBMSUJBREQuIEZpeGVzICM1NTczMDAuCgoyMDA4LTEwLTMxIDE1OjU0OjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogT2ggbXksIHN0dWRpcCwgc3R1cGlkIG1lLiBSZW1vdmUgZG91YmxlIHN0YXQoKSBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgT2ggbXksIHN0dWRpcCwgc3R1cGlkIG1lLiBSZW1vdmUgZG91YmxlIHN0YXQoKSBjYWxsLgoKMjAwOC0xMC0zMSAxNDoyNDo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBVc2UgZ191bmxpbmsgaW5zdGVhZCBvZiB1bmxpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgVXNlIGdfdW5saW5rIGluc3RlYWQgb2YgdW5saW5rLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXNlIGdsaWIgdHlwZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIGEgRklYTUU6LgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZvcm1hdHRpbmcgJiB3aGl0ZXNwYWNlcy4KCjIwMDgtMTAtMzEgMDg6NTM6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9jIHR5cG8uIFVzZSByZXR1cm4gdmFsdWUgb2YgcGFyZW50X2NsYXNzLT5ldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBEb2MgdHlwby4gVXNlIHJldHVybiB2YWx1ZSBvZiBwYXJlbnRfY2xhc3MtPmV2ZW50LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIENoYWluIHVwIGF0IHRoZSBlbmQgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOC0xMC0zMCAxNToyOTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IENoYW5nZSB0byB4aW5jbHVkZSBiYXNlZCBidWlsZCAtIGl0cyBmYXN0ZXIgYW5kIGVhc2llciB0byBtYWludGFpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgQ2hhbmdlIHRvIHhpbmNsdWRlIGJhc2VkIGJ1aWxkIC0gaXRzIGZhc3RlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgoKMjAwOC0xMC0zMCAxNDoxNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogVXNlIGdfdW5saW5rKCkgYXMgbm9uZSBvZiB0aGVzZSBhcmUgZGlyZWN0b3JpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBVc2UgZ191bmxpbmsoKSBhcyBub25lIG9mIHRoZXNlIGFyZSBkaXJlY3Rvcmllcy4KCjIwMDgtMTAtMjkgMTc6MDQ6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogU29tZSBtb3JlIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBTb21lIG1vcmUgY29tbWVudHMuCgoyMDA4LTEwLTI3IDE1OjAyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IElmIHdlIGhhdmUgYSBmaXhhdGUgZnVuY3Rpb24sIGNhbGwgaXQgZXZlbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZml4ZWQgY2FwcyBiZWNhdXNlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIElmIHdlIGhhdmUgYSBmaXhhdGUgZnVuY3Rpb24sIGNhbGwgaXQgZXZlbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZml4ZWQgY2FwcwoJICBiZWNhdXNlIHRoZSBzdWJjbGFzcyBtaWdodCBhZGQgc29tZSBjYXBzLiBNYWtlcyBhdWRpb2NvbnZlcnQgYWRkIGEKCSAgZGVmYXVsdCBjaGFubmVsIGxheW91dC4KCjIwMDgtMTAtMjQgMDk6NDE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciB2YXJpYWJsZS4KCSAgQ2xlYW51cHMgdG8gdGhlIGVycm9yIHBhdGggaW4gdGhlIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBGaXhlcyAjNTU3NjQ5LgoKMjAwOC0xMC0yMyAxMjo1Mjo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgYW5kIGhhbmRsZSBlcnJvcnMgaW5zdGVhZCBvZiB1c2luZyBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFVzZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgYW5kIGhhbmRsZSBlcnJvcnMgaW5zdGVhZCBvZgoJICB1c2luZyBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSB3aGljaCBhYm9ydHMgaWYgdGhlIGJ1ZmZlciBjb3VsZG4ndAoJICBiZSBhbGxvY2F0ZWQuCgoyMDA4LTEwLTIzIDA5OjQ5OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogU2V0IHRoZSBsYXN0X3N0b3AgdG8gYSBtb3JlIG1lYW5pbmdmdWwgcG9zaXRpb24gd2hlbiBjb25maWd1cmluZyB0aGUgc2VnbWVudC4gaWUuIHRoZSBzdGFydC9zdG9wIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgU2V0IHRoZSBsYXN0X3N0b3AgdG8gYSBtb3JlIG1lYW5pbmdmdWwgcG9zaXRpb24gd2hlbiBjb25maWd1cmluZyB0aGUKCSAgc2VnbWVudC4gaWUuIHRoZSBzdGFydC9zdG9wIG9mIHRoZSBzZWdtZW50IG9yIGNsaXBwZWQgYWdhaW5zdCB0aGUKCSAgdXBkYXRlZCBzZWdtZW50IGJvdW5kYXJpZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIGxhc3Rfc3RvcC4KCjIwMDgtMTAtMjMgMDc6MTE6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiBVc2UgR1NUXyhSRUFEfFdSSVRFKV8oRkxPQVR8RE9VQkxFKV8oTEV8QkUpIGluc3RlYWQgb2Ygb3VyIG93biBjb3BpZXMgb2YgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIFVzZSBHU1RfKFJFQUR8V1JJVEUpXyhGTE9BVHxET1VCTEUpXyhMRXxCRSkgaW5zdGVhZCBvZiBvdXIgb3duCgkgIGNvcGllcyBvZiB0aGVtLgoKMjAwOC0xMC0yMyAwNzowOToyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBNb3ZlIGZsb2F0IGVuZGlhbm5lc3MgY29udmVyc2lvbiBtYWNyb3MgZnJvbSBsaWJnc3RmbG9hdGNhc3QgdG8gY29yZSBhcyBpdCdzIHVzZWZ1bCBpbiBnZW5lcmFsLCBldmVuIGluIGNvcmUuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogTW92ZSBmbG9hdCBlbmRpYW5uZXNzIGNvbnZlcnNpb24gbWFjcm9zIGZyb20gbGliZ3N0ZmxvYXRjYXN0CgkgIHRvIGNvcmUgYXMgaXQncyB1c2VmdWwgaW4gZ2VuZXJhbCwgZXZlbiBpbiBjb3JlLiBGaXhlcyBidWcgIzU1NTE5Ni4KCSAgVGhpcyBhZGRzIEdET1VCTEVfRlJPTV9CRSwgR0RPVUJMRV9GUk9NX0xFLCBHRE9VQkxFX1RPX0JFLAoJICBHRE9VQkxFX1RPX0xFLCBHRE9VQkxFX1NXQVBfTEVfQkUsIEdGTE9BVF9GUk9NX0JFLCBHRkxPQVRfRlJPTV9MRSwKCSAgR0ZMT0FUX1RPX0JFLCBHRkxPQVRfVE9fTEUsIEdGTE9BVF9TV0FQX0xFX0JFLgoJICBBbHNvIGFkZCBHU1RfUkVBRF8gYW5kIEdTVF9XUklURV8gbWFjcm9zIGZvciBmbG9hdHMgYW5kIGRvdWJsZXM6CgkgIEdTVF9SRUFEX0ZMT0FUX0xFLCBHU1RfUkVBRF9GTE9BVF9CRSwgR1NUX1JFQURfRE9VQkxFX0xFLAoJICBHU1RfUkVBRF9ET1VCTEVfQkUsIEdTVF9XUklURV9GTE9BVF9MRSwgR1NUX1dSSVRFX0ZMT0FUX0JFLAoJICBHU1RfV1JJVEVfRE9VQkxFX0xFLCBHU1RfV1JJVEVfRE9VQkxFX0JFLgoKMjAwOC0xMC0yMiAxNDo0NzowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhIGFuZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGRhdGEgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBUEk6IEFkZCBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgYW5kIGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEKCSAgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZGF0YSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgaGF2ZQoJICBhIGd1YXJhbnRlZWQgc2l6ZS4KCjIwMDgtMTAtMjIgMTQ6MjU6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBGaXggYSBidWcgaW4gdGhlIG91dHB1dCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBzdW1tYXJ5IHdoZW4gLS1nc3QtZGlzYWJsZS1yZWdpc3RyeSBpcyBzdXBwbGllZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBhIGJ1ZyBpbiB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IHN1bW1hcnkKCSAgd2hlbiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5IGlzIHN1cHBsaWVkCgoyMDA4LTEwLTIyIDEzOjQ3OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggdGhlIG5hbWVzIG9mIDIgZnVuY3Rpb25zIGluIHRoZSBkb2NzIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIEZpeCB0aGUgbmFtZXMgb2YgMiBmdW5jdGlvbnMgaW4gdGhlIGRvY3Mgc3RyaW5ncy4KCjIwMDgtMTAtMjEgMTY6MzA6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJvdGVjdCBzaW5rX2FsbG9jIGNhcHMgd2l0aCB0aGUgc2lua3BhZCBsb2NrIHRvIGF2b2lkIG5hc3R5IGNhcHMgcmVmY291bnQgcHJvYmxlbXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpOgoJICBQcm90ZWN0IHNpbmtfYWxsb2MgY2FwcyB3aXRoIHRoZSBzaW5rcGFkIGxvY2sgdG8gYXZvaWQgbmFzdHkgY2FwcwoJICByZWZjb3VudCBwcm9ibGVtcyBhcyBzZWVuIGluIGJhbnNoZWUgYW5kIG1heWJlIGFsc28gaW4gZmFyc2lnaHQyLgoJICBSZW1vdmUgYXRvbWljIGludCBub3cgdGhhdCB3ZSBuZWVkIHRvIHRha2UgdGhlIGxvY2sgYW55d2F5cy4KCjIwMDgtMTAtMjAgMTU6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcGxlbWVudCBtb3JlIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEltcGxlbWVudCBtb3JlIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBVc2UgcGFkIGNvbnZlcnQgZnVuY3Rpb25zIHRvIGNvbnZlcnQgcG9zaXRpb24gdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgkgIEZpeCBwb3NpdGlvbi9kdXJhdGlvbiByZXBvcnRpbmcgaW4gcHVsbCBtb2RlLgoJICBJbXBsZW1lbnQgcG9zaXRpb24gYW5kIGR1cmF0aW9uIHJlcG9ydGluZyBpbiBvdGhlciBmb3JtYXRzIHRoYW4gdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBtZW1iZXIgdG8ga2VlcCB0cmFjayBvZiB3aGVuIHRoZSBzZWdtZW50IGlzIHBsYXlpbmcuCgoyMDA4LTEwLTIwIDEzOjMyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBXaGVuIHdlIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHdpdGhvdXQgd2FudGluZyB0byBzZXQgdGhlIGNhcHMgd2UgYWxzbyBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY29uZmlndXJlX3NyYyk6CgkgIFdoZW4gd2UgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgd2l0aG91dCB3YW50aW5nIHRvIHNldCB0aGUgY2FwcyB3ZQoJICBhbHNvIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgYmVjYXVzZSB0aGUgY2FsbGVyCgkgIHByZXN1bWFibHkgaXMgZ29pbmcgdG8gcGVyZm9ybSBpdHMgb3duIGN1c3RvbSBjaGVja3MuIEZpeGVzIHNvbWUgY2FzZXMKCSAgd2hlcmUgYmFzZXRyYW5zZm9ybSBlbGVtZW50cyB3b3VsZCBlcnJvciBvdXQgd2hlbiBpdCB3YXMgbm90IG5lZWRlZC4KCjIwMDgtMTAtMjAgMTM6Mjk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIFVwZGF0ZSBjb21tZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgQWRkIHNvbWUgZGVidWcgaW5mby4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgbWV0aG9kLgoKMjAwOC0xMC0xOSAxOTo1NzoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKTsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKTsKCSAgUmVtb3ZlIGR1cGxpY2F0ZWQgYXNzaWdubWVudCBhbmQgbG9nIGEgbWVzc2FnZSBpbiBmYWlsdXJlIGNhc2UuCgoyMDA4LTEwLTE5IDEwOjEzOjM5ICswMDAwICBEaWcgR2UgPGRpZy5nZS5jbkBnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogRml4IGNvcHknbidwYXN0ZSBidWcgaW4gaGVsbG8gd29ybGQgZXhhbXBsZSAoIzU1NjkwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGlnIEdlIDxkaWcuZ2UuY24gYXQgZ21haWwgY29tPgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAobWFpbik6CgkgIEZpeCBjb3B5J24ncGFzdGUgYnVnIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUgKCM1NTY5MDApLgoKMjAwOC0xMC0xNyAxMzoyNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUXVlcnkgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyB3aGVuIGFjdGl2YXRpbmcgdGhlIHBhZCBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFF1ZXJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgd2hlbiBhY3RpdmF0aW5nIHRoZSBwYWQgaW4gcHVsbCBtb2RlLgoJICBJbXBsZW1lbnQgZHVyYXRpb24gcXVlcnkgaW4gcHVsbCBtb2RlIGJ5IHVzaW5nIHRoZSBpbnN0YWxsZWQgcGFkIGNvbnZlcnQKCSAgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGJ5dGVzIHRvIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoKMjAwOC0xMC0xNiAxNDowOToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gY29tbWl0IHRoZSBzdGF0ZSBpbiBzdWJjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2ZsdXNoX3N0YXJ0KSwgKGdzdF9iYXNlX3NpbmtfZmx1c2hfc3RvcCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgbWV0aG9kIHRvIGNvbW1pdCB0aGUgc3RhdGUgaW4gc3ViY2xhc3Nlcy4KCSAgUmVmYWN0b3IgdGhlIGZsdXNoX3N0YXJ0IGFuZCBmbHVzaF9zdG9wIGNvZGUgYmVjYXVzZSB3ZSBuZWVkIGl0IGZvcgoJICBmbHVzaGluZyB3aGlsZSBzZWVraW5nIHRvby4KCSAgSW1wbGVtZW50IHRoZSBiZWdpbm5pbmdzIG9mIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBVc2UgdGhlIHNlZ21lbnQgbGFzdF9zdG9wIGZpZWxkIGZvciB0aGUgcHVsbGluZyBvZmZzZXQuCgkgIEZpeCB0aGUgcGF1c2UgbWV0aG9kIGluIHB1bGwgbW9kZS4KCSAgQ29uZmlndXJlIHRoZSBzZWdtZW50IHRvIEJZVEVTIGZvciBwdWxsIG1vZGUuCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3NpbmtfZG9fcHJlcm9sbCgpCgoyMDA4LTEwLTE2IDEzOjU2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwOC0xMC0xNCAxNzoxMDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RxdWFyay5jOiBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgIEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcuCgoyMDA4LTEwLTE0IDEyOjM0OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBGaXggZmxvdyBhZ2dyZWdhdGlvbiBvZiB0ZWUuIEVycm9yIG91dCBpbW1lZGlhdGVseSBmb3IgYWxsIGZsb3cgcmV0dXJucyBleGNlcHQgT0sgYW5kIE5PVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIEZpeCBmbG93IGFnZ3JlZ2F0aW9uIG9mIHRlZS4gRXJyb3Igb3V0IGltbWVkaWF0ZWx5IGZvciBhbGwgZmxvdyByZXR1cm5zCgkgIGV4Y2VwdCBPSyBhbmQgTk9UX0xJTktFRCwgcmV0dXJuIE5PVF9MSU5LRUQgaWYgYWxsIHBhZHMgYXJlIG5vdCBsaW5rZWQKCSAgYW5kIHJldHVybiBPSyBpZiBhdCBsZWFzdCBvbmUgcGFkIGlzIGxpbmtlZC4KCSAgQmVmb3JlIHdlIGVycm9yZWQgb3V0IG9uICJmYXRhbCIgZmxvdyByZXR1cm5zIChpLmUuIG5vdCBmb3IgV1JPTkdfU1RBVEUpCgkgIGFuZCBvdGhlcndpc2UgcmV0dXJuZWQgdGhlIGZsb3cgcmV0dXJuIG9mIHRoZSBsYXN0IHBhZCwgd2hpY2ggaXMgd3JvbmcuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChfZmFrZV9jaGFpbiksIChfZmFrZV9jaGFpbl9lcnJvciksCgkgIChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIGZsb3cgYWdncmVnYXRpb24uCgoyMDA4LTEwLTEzIDE3OjE5OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgdG9kbyBsaXN0IGJlY2F1c2UgaXQgd2FzIGZpeGVkIHdpdGggdGhlIGxhdGVuY3kgc3RhdGUgY2hhbmdlIHJld3JpdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZW1vdmUgaXRlbSBmcm9tIHRoZSB0b2RvIGxpc3QgYmVjYXVzZSBpdCB3YXMgZml4ZWQgd2l0aCB0aGUgbGF0ZW5jeQoJICBzdGF0ZSBjaGFuZ2UgcmV3cml0ZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksIChnc3RfZXZlbnRfbmV3X2xhdGVuY3kpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kpOgoJICBVc2UgcXVhcmtzIHRvIGNvbnN0cnVjdCBhbmQgcGFyc2UgZXZlbnRzLgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgdG8gdGhlIHRhYmxlLgoJICBFbWl0IGEgd2FybmluZyB3aGVuIHRoZSBxdWFyayB0YWJsZXMgYXJlIG5vdCBpbiBzeW5jLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGFuIGFzc2VydC4KCjIwMDgtMTAtMTMgMTY6NDc6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvOiBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciBjb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIGNvcmUuCgoyMDA4LTEwLTEzIDEwOjUwOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggZGVhZGxvY2ssIGdfc291cmNlX2dldF9pZCgpIGNhbm5vdCBiZSBjYWxsZWQgaW4gZmluYWxpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGxfdW5sb2NrZWQpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pLAoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbiksCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCksIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOgoJICBGaXggZGVhZGxvY2ssIGdfc291cmNlX2dldF9pZCgpIGNhbm5vdCBiZSBjYWxsZWQgaW4gZmluYWxpemUuCgkgIEtlZXAgdHJhY2sgb2YgdGhlIHdhdGNoIHNvdXJjZSBieSBrZWVwaW5nIGEgcG9pbnRlciB0byB0aGUgc291cmNlIG9iamVjdAoJICBpbnN0ZWFkLgoJICBVc2UgdGhlIGJ1cyBsb2NrIHRvIHByb3RlY3QgYWNjZXNzIHRvIHRoZSBwb2ludGVyIHRvIHRoZSBjdXJyZW50CgkgIHdhdGNoIHNvdXJjZS4KCjIwMDgtMTAtMTMgMDk6MjI6MjIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0YnVzLmM6IE9ubHkgYWxsb3cgb25lIGJ1cyB3YXRjaCB0byBiZSBzZXQgYXQgYSB0aW1lLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBkaXNwYXRjaGVyIHBvcHMgdGhlIG1lc3NhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2Ugb24gUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLCAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpOgoJICBPbmx5IGFsbG93IG9uZSBidXMgd2F0Y2ggdG8gYmUgc2V0IGF0IGEgdGltZS4gVGhpcyBpcyBuZWNlc3NhcnkKCSAgYmVjYXVzZSB0aGUgZGlzcGF0Y2hlciBwb3BzIHRoZSBtZXNzYWdlIGZyb20gdGhlIGJ1cyBhbmQgdGhlIHNlY29uZAoJICB3YXRjaGVyIHdpbGwgdGhlbiBnZXQgTlVMTCBvciB0aGUgbmV4dCBtZXNzYWdlIChhbmQgdGhlIGZpcnN0IHdvbid0CgkgIGdldCB0aGlzIG5leHQgbWVzc2FnZSB0aGVuLCBldGMpLiBJZiBtb3JlIHRoYW4gb25lICJ3YXRjaGVyIiBpcwoJICByZXF1aXJlZCBzaWduYWwgd2F0Y2hlcyBzaG91bGQgYmUgdXNlZC4gRml4ZXMgYnVnICM1MjYwNDQuCgoyMDA4LTEwLTEyIDIyOjE2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2hhbmdlIHRoZSBwcmludGluZyBvZiB0aGUgJ2J1ZmZlcmluZy4uLicgb3V0cHV0IHRvIGF2b2lkIHB1dHRpbmcgYSBcciBpbiBhIHRyYW5zbGF0ZWFibGUgc3RyaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIENoYW5nZSB0aGUgcHJpbnRpbmcgb2YgdGhlICdidWZmZXJpbmcuLi4nIG91dHB1dCB0byBhdm9pZCBwdXR0aW5nCgkgIGEgXHIgaW4gYSB0cmFuc2xhdGVhYmxlIHN0cmluZyAoZmxhZ2dlZCBieSB0aGUgVFApLgoKMjAwOC0xMC0xMCAxNTozODowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHhtbC5jOiBDbGFyaWZ5IHRoYXQgdGhlIHNhdmVfdGh5c2VsZigpIGFuZCByZXN0b3JlX3RoeXNlbGYoKSB2aXJ0dWFsIGZ1bmN0aW9ucyBvZiBHc3RPYmplY3QgbmVlZCB0byBiZSBvdmVycmlkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgQ2xhcmlmeSB0aGF0IHRoZSBzYXZlX3RoeXNlbGYoKSBhbmQgcmVzdG9yZV90aHlzZWxmKCkgdmlydHVhbAoJICBmdW5jdGlvbnMgb2YgR3N0T2JqZWN0IG5lZWQgdG8gYmUgb3ZlcnJpZGVuLCBub3QKCSAgZ3N0X29iamVjdF8oc2F2ZXxyZXN0b3JlKV90aHlzZWxmKCkgd2hpY2ggaXMgaW1wb3NzaWJsZS4KCSAgRml4ZXMgYnVnICM1NTU3MDAuCgoyMDA4LTEwLTEwIDE1OjI3OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgYSBwYXRjaCBmcm9tIDIxIG1vbnRocyBhZ28gdGhhdCBicm9rZSBjYXBzIG5lZ290aWF0aW9uIGluIHB1bGwgbW9kZS4gQmFzaWNhbGx5LCBoYXZpbmcgYSBidWZmZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIFJldmVydCBhIHBhdGNoIGZyb20gMjEgbW9udGhzIGFnbyB0aGF0IGJyb2tlIGNhcHMgbmVnb3RpYXRpb24gaW4gcHVsbAoJICBtb2RlLiBCYXNpY2FsbHksIGhhdmluZyBhIGJ1ZmZlciBwYXNzIG92ZXIgYSBwYWQgd2lsbCB0cmlnZ2VyIHRoZQoJICBzZXRjYXBzIGZ1bmN0aW9uIHdoZW4gY2FwcyBjaGFuZ2UsIGp1c3QgbGlrZSBpbiBwdXNoIG1vZGUuCgoyMDA4LTEwLTEwIDE1OjEyOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB0aGUgZG9jcyBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBVcGRhdGUgdGhlIGRvY3Mgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBJZiB3ZSBwdWxsIGEgYnVmZmVyIHdpdGggbm9uLXRyaXZpYWwgY2Fwcywgc3VnZ2VzdCB0aG9zZSBjYXBzIHdpdGggdGhlCgkgIG1heCBwcm9iYWJpbGl0eS4KCjIwMDgtMTAtMTAgMTQ6MzE6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgYW5vdGhlciBsaW1pdGF0aW9uIG9mIHBhZC1ibG9ja2luZyB3aXRoIHNlZ21lbnQgc2Vla3Mgbm90IHB1c2hpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIGFub3RoZXIgbGltaXRhdGlvbiBvZiBwYWQtYmxvY2tpbmcgd2l0aCBzZWdtZW50IHNlZWtzIG5vdCBwdXNoaW5nCgkgIEVPUyBldmVudHMuCgoyMDA4LTEwLTEwIDEzOjI0OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBuZXcgc3ltYm9scyB0byB0aGUgd2luMzIgZGVmcyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byB0aGUgd2luMzIgZGVmcyBmaWxlcwoKMjAwOC0xMC0xMCAxMDozODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVGhlIG1lc3NhZ2Ugc3JjIGNhbiBiZSBOVUxMLCBkb24ndCB0cnkgdG8gcHJpbnQgdGhlIG9iamVjdCBuYW1lcyBpbiB0aGF0IGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBUaGUgbWVzc2FnZSBzcmMgY2FuIGJlIE5VTEwsIGRvbid0IHRyeSB0byBwcmludCB0aGUgb2JqZWN0IG5hbWVzIGluIHRoYXQKCSAgY2FzZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgZGVidWcuCgkgIEZpeCB0aGUgdGVzdCwgcHVsbCBiYXNlZCBzaW5rcyBnbyBBU1lOQyB0byBQQVVTRUQsIGp1c3QgbGlrZSBvdGhlcgoJICBzY2hlZHVsaW5nIG1vZGVzLgoKMjAwOC0xMC0xMCAxMDowMTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X2Jsb2Nrc2l6ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9ibG9ja3NpemUpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGJsb2Nrc2l6ZSBwcm9wZXJ0eSBhbmQgbWV0aG9kcyB0byBjb250cm9sIHRoZSBhbW91bnQgb2YgZGF0YQoJICB0byBwdWxsLgoJICBOZWdvdGlhdGUgZmlyc3QgYmVmb3JlIGFjdGl2YXRpbmcgdXBzdHJlYW0gaW4gcHVsbCBtb2RlIHNvIHRoYXQgdGhleSBjYW4KCSAgbmVnb3RpYXRlIHRoZW1zZWx2ZXMuCgkgIFdoZW4gd2Ugb3BlcmF0ZSBpbiBwdWxsIG1vZGUsIHdlIG9ubHkgYWNjZXB0IHRoZSBjYXBzIHRoYXQgd2UKCSAgbmVnb3RpYXRlZC4KCSAgTWFrZSB0aGUgc2luayBnbyBBU1lOQyB0byBQQVVTRUQsIGxpa2UgYWxsIG90aGVyIHNpbmtzLgoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX3NldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX2dldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpibG9ja3NpemUKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9saXZlKSwgKGdzdF9iYXNlX3NyY19pc19saXZlKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KSwgKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfYmxvY2tzaXplKSwgKGdzdF9iYXNlX3NyY19nZXRfYmxvY2tzaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKSwgKGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCB0eXBlY2hlY2tpbmcgaW4gcHVibGljIEFQSSBmdW5jdGlvbnMuCgkgIEFkZCBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGJsb2Nrc2l6ZSBpbiBzdWJjbGFzc2VzLgoJICBBUEk6IEdzdEJhc2VTcmM6OmdzdF9iYXNlX3NyY19zZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU3JjOjpnc3RfYmFzZV9zcmNfZ2V0X2Jsb2Nrc2l6ZSgpCgoyMDA4LTEwLTEwIDA5OjExOjEwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFdlIG5vdyBzZWUgMyBldmVudHMgZ28gdGhyb3VnaCBvdXIgcGFkLCBzaW5jZSBiYXNlc2luayBub3cgc2VuZHMgdXBzdHJlYW0gbGF0ZW5jeSBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAocHJvYmVfZG9fbm90aGluZyksIChkYXRhX3Byb2JlKSwKCSAgKGJ1ZmZlcl9wcm9iZSksIChldmVudF9wcm9iZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIFdlIG5vdyBzZWUgMyBldmVudHMgZ28gdGhyb3VnaCBvdXIgcGFkLCBzaW5jZSBiYXNlc2luayBub3cgc2VuZHMKCSAgdXBzdHJlYW0gbGF0ZW5jeSBldmVudHMuCgoyMDA4LTEwLTA4IDE1OjIxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB0cnlpbmcgdG8gZmx1c2ggdGhlIGJ1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHRyeWluZyB0byBmbHVzaCB0aGUgYnVzLgoKMjAwOC0xMC0wOCAxNDoyMToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRm9yd2FyZCBMQVRFTkNZIGV2ZW50cyB1cHN0cmVhbXMgc28gdGhhdCBlbGVtZW50cyBrbm93IGFib3V0IHRoZSB0b3RhbCBwaXBlbGluZSBsYXRlbmN5Li4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBGb3J3YXJkIExBVEVOQ1kgZXZlbnRzIHVwc3RyZWFtcyBzbyB0aGF0IGVsZW1lbnRzIGtub3cgYWJvdXQgdGhlIHRvdGFsCgkgIHBpcGVsaW5lIGxhdGVuY3kuIEZpeGVzICM1NTUzMDcuCgoyMDA4LTEwLTA4IDExOjIwOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWxsb3cgdGhyb3VnaCBxdWVyaWVzIHdoZW4gd2UgZG9uJ3Qga25vdyBob3cgYXMgb3RoZXJ3aXNlIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEFsbG93IHRocm91Z2ggcXVlcmllcyB3aGVuIHdlIGRvbid0IGtub3cgaG93CgkgIHRvIGFkanVzdCB0aGVtIChub3QgVElNRSBvciBCWVRFUyksIGFzIG90aGVyd2lzZSBpdCdzCgkgIG5vdCBwb3NzaWJsZSB0byBxdWVyeSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBvcmRlcgoJICB0byBzZWVrIGluIG90aGVyIGZvcm1hdHMgYXQgYWxsLgoKMjAwOC0xMC0wOCAxMToxMjoxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwOC0xMC0wOCAxMToxMToyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUGxhY2F0ZSBkb2MgcGVuZGFudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFBsYWNhdGUgZG9jIHBlbmRhbnRzLgoKMjAwOC0xMC0wOCAxMDozOToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBVbmJyZWFrIC1nb29kIGJ1aWxkLCBwcml2YXRlIGlzIGEgcmVzZXJ2ZWQgYysrIGtleXdvcmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBVbmJyZWFrIC1nb29kIGJ1aWxkLCBwcml2YXRlIGlzIGEgcmVzZXJ2ZWQgYysrIGtleXdvcmQuCgoyMDA4LTEwLTA4IDEwOjE5OjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogRml4IHVuaW50ZW5kZWQgQVBJIHJlbW92YWw6IHJlLWFkZCBHU1RfR0hPU1RfUEFEX0NBU1QgdG8gdGhlIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmggKEdTVF9HSE9TVF9QQURfQ0FTVCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKEdTVF9HSE9TVF9QQURfQ0FTVCk6IEZpeCB1bmludGVuZGVkIEFQSQoJICByZW1vdmFsOiByZS1hZGQgR1NUX0dIT1NUX1BBRF9DQVNUIHRvIHRoZSBoZWFkZXIuCgoyMDA4LTEwLTA4IDEwOjEyOjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuaCAoR3N0UHJveHlQYWQsIEdzdFByb3h5UGFkQ2xhc3MsIEdzdEdob3N0UGFkKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaCAoR3N0UHJveHlQYWQsIEdzdFByb3h5UGFkQ2xhc3MsIEdzdEdob3N0UGFkKQoJICAoR3N0R2hvc3RQYWRDbGFzcyk6IFB1YmxpY2FsbHkgZXhwb3NlIHRoZXNlIHN0cnVjdHVyZXMgc28gYXMgdG8KCSAgYWxsb3cgZWFzeSBzdWJjbGFzc2luZyBmcm9tIEMuIEhpZGUgdGhlIG1lbWJlciBkYXRhIGJlaGluZCBhCgkgIHByaXZhdGUgb3BhcXVlIGRhdGEgcG9pbnRlci4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRhcHQgdG8gc3RvcmUgaW5zdGFuY2UgZGF0YSBpbiB0aGUgdHlwZQoJICBpbnN0YW5jZSdzIHByaXZhdGUgZGF0YSByZWdpb24sIG5vdCBpbiB0aGUgcHVibGljIHN0cnVjdC4KCjIwMDgtMTAtMDggMTA6MDc6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiB3ZSBjYW4ndCBnZXQgYSBjYWNoZSBmaWxlIGRvbid0IHRyeSB0byBzYXZlIHNvbWV0aGluZyB0byBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKToKCSAgSWYgd2UgY2FuJ3QgZ2V0IGEgY2FjaGUgZmlsZSBkb24ndCB0cnkgdG8gc2F2ZSBzb21ldGhpbmcgdG8gaXQuCgkgIERlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVycyB1c3VhbGx5IGlzbid0IGEgZ29vZCBpZGVhLgoKMjAwOC0xMC0wOCAwODo1NDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogSWYgd2UgZ290IGEgdGVtcGxhdGUgdmlhIGdfb2JqZWN0X2dldCgpLCBiZSBzdXJlIHRvIHVucmVmIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBJZiB3ZSBnb3QgYQoJICB0ZW1wbGF0ZSB2aWEgZ19vYmplY3RfZ2V0KCksIGJlIHN1cmUgdG8gdW5yZWYgaXQuCgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IEZpeCBpbmNvcnJlY3QgZG9jLgoKMjAwOC0xMC0wNyAxNToxMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBTcGFyYyBBQkkgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSAgQWRkIFNwYXJjIEFCSSBjaGVja3MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2FzdCBzaWduZWQgaW50ZWdlciB0byB1bnNpZ25lZCB0byBhdm9pZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTEwLTA3IDEyOjI2OjQwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogVXNlIG5ldyBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfYmUpOgoJICBVc2UgbmV3IEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIG1hY3Jvcy4KCjIwMDgtMTAtMDcgMTI6MDA6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFsd2F5cyB1c2UgdGhlIHVuYWxpZ25lZCB2YXJpYW50cyBvZiBHU1RfUkVBRF9VSU5UKiBhbmQgR1NUX1dSSVRFX1VJTlQqIGFzIGl0J3MgdG9vIGVhc3kgdG8gYnJlYWsgdGhlIElTTyBDIHN0cmljdCBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBbHdheXMgdXNlIHRoZSB1bmFsaWduZWQgdmFyaWFudHMgb2YgR1NUX1JFQURfVUlOVCogYW5kIEdTVF9XUklURV9VSU5UKgoJICBhcyBpdCdzIHRvbyBlYXN5IHRvIGJyZWFrIHRoZSBJU08gQyBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgd2l0aCBzaW1wbGUKCSAgY2FzdHMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBhbmQgdGhpcyB3b3VsZCBpbnRyb2R1Y2UgaGFyZCB0byBkZWJ1ZwoJICBidWdzLiBGaXhlcyBidWcgIzU0NTcxNC4KCSAgQVBJOiBBZGQgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgYW5kIEdTVF9XUklURV9VSU5UMjRfKExFfEJFKS4KCjIwMDgtMTAtMDcgMDY6NTY6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgJ1NpbmNlJyBiaXRzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6IChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6CgkgIEFkZCAnU2luY2UnIGJpdHMgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBBUEkuCgoyMDA4LTEwLTA2IDIxOjUyOjU3ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4IGRvY3VtZW50YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3VtZW50YXRpb24KCjIwMDgtMTAtMDYgMTg6MDM6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nLCBkb2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZywgZG9oCgoyMDA4LTEwLTA2IDE4OjAxOjQyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogTmV3IEFQSSwgYSBmcmVlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gdGhlIG1hbGxvY19kYXRhIHRvIGZyZWUgaXQuIEIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IE5ldyBBUEksIGEgZnJlZSBmdW5jdGlvbgoJICB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBtYWxsb2NfZGF0YSB0byBmcmVlIGl0LiBCYXNpY2FsbHkgYSB3YXkKCSAgdG8gYXZvaWQgc3ViY2xhc3Npbmcgd2hlbiBhbGwgeW91IG5lZWQgaXMgYSBkaWZmZXJlbnQgZnJlZQoJICBmdW5jdGlvbiwgaS5lLiBmcmVlKCkgaW5zdGVhZCBvZiBnX2ZyZWUoKS4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZmluYWxpemUpOiBGcmVlIG1hbGxvY19kYXRhIHZpYQoJICBjYWxsaW5nIHRoZSBmcmVlIGZ1bmN0aW9uLgoJICAoZ3N0X2J1ZmZlcl9pbml0KTogSW5pdGlhbGl6ZSB0aGUgZnJlZSBmdW5jdGlvbiB0byBnX2ZyZWUuCgoyMDA4LTEwLTA2IDE3OjU3OjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogTmV3IGZ1bmN0aW9uLCBmaW5pc2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZ2hvc3QgcGFkLiBVc2VmdWwgZm9yIGxhbmd1YWdlIGJpbmRpbmdzIGFuZCBzdWJjbGFzc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogTmV3IGZ1bmN0aW9uLAoJICBmaW5pc2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZ2hvc3QgcGFkLiBVc2VmdWwgZm9yIGxhbmd1YWdlCgkgIGJpbmRpbmdzIGFuZCBzdWJjbGFzc2VycyBvZiBHc3RHaG9zdFBhZC4gRml4ZXMgIzUzOTEwOC4KCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOiBVc2UgdGhlIG5ldyBjb25zdHJ1Y3Rvci4KCjIwMDgtMTAtMDYgMTY6MTU6MDIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0YmluLmM6IEtlZXAgdHJhY2sgb2YgcGFkcyB0aGF0IGFyZSBiZWluZyBsaW5rZWQvdW5saW5rZWQgYW5kIHJlc3luYyB0aGUgc3RhdGUgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2Ugb24gUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEtlZXAgdHJhY2sgb2YgcGFkcyB0aGF0IGFyZSBiZWluZyBsaW5rZWQvdW5saW5rZWQgYW5kIHJlc3luYyB0aGUgc3RhdGUKCSAgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9kaXJlY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hhaW5fZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX3VubGluayksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBTb21lIGNvZGUgY2xlYW51cHMsIHVzZSBtYWNyb3MgdG8gY2hlY2sgcGFkIGRpcmVjdGlvbi4KCSAgRG9uJ3QgbmVlZCB0byB0YWtlIHRoZSBsb2NrIG9uIHRoZSBwYWQgZGlyZWN0aW9uLgoJICBQb3N0IHN0cnVjdHVyZSBjaGFuZ2Ugd2hlbiBwYWRzIGFyZSBsaW5rZWQvdW5saW5rZWQuCgkgIENoYW5nZSBzb21lIGNoZWNrcyBpbnRvIF9yZXR1cm5faWZfZmFpbCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKHRlc3RfbGlua19zdHJ1Y3R1cmVfY2hhbmdlX3N0YXRlX2NoYW5nZWRfc3luY19jYiksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciBwYWQgbGluay91bmxpbmtlIHJlc3luYyBkdXJpbmcgYSBzdGF0ZSBjaGFuZ2UuCgkgIEZpeGVzICM1MTAzNTQuCgoyMDA4LTEwLTA2IDE1OjMxOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wbGVtZW50IFNUUlVDVFVSRV9DSEFOR0VEIG1lc3NhZ2VzLiBUaGVzZSBtZXNzYWdlcyB3aWxsIGJlIHVzZWQgdG8gc2lnbmFsIHRoZSBwYXJlbnQgYmluIG9mIGxpbmsvdW5saW5rIG9wZXJhdGlvbnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdHJ1Y3R1cmVfY2hhbmdlKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0cnVjdHVyZV9jaGFuZ2UpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEltcGxlbWVudCBTVFJVQ1RVUkVfQ0hBTkdFRCBtZXNzYWdlcy4gVGhlc2UgbWVzc2FnZXMgd2lsbCBiZSB1c2VkIHRvCgkgIHNpZ25hbCB0aGUgcGFyZW50IGJpbiBvZiBsaW5rL3VubGluayBvcGVyYXRpb25zIHRoYXQgY291bGQgcmVxdWlyZSBhCgkgIHJlc3luYyB3aGVuIGRvaW5nIGEgc3RhdGUgY2hhbmdlLiBTZWUgIyM1MTAzNTQuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3N0cnVjdHVyZV9jaGFuZ2UoKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX3N0cnVjdHVyZV9jaGFuZ2UoKQoKMjAwOC0xMC0wNiAxNToyMToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWFyay4qOiBBZGQgc29tZSBtb3JlIHF1YXJrcyBmb3IgbmV3IG1lc3NhZ2UuIFNlZSAjNTEwMzU0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgZm9yIG5ldyBtZXNzYWdlLiBTZWUgIzUxMDM1NC4KCjIwMDgtMTAtMDYgMTI6NTc6MzkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBBUEkgdGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIEFQSSB0YWcKCjIwMDgtMTAtMDYgMTI6NDE6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFkZCBiaXQgcmVhZGVyIGFuZCBieXRlIHJlYWRlciBjbGFzc2VzLCBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgYW4gZXh0ZW5zaXZlIHVuaXQgdGVzdCBzdWl0ZS4gRml4ZXMgYnVnICM1NTM1NTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6IChnc3RfYml0X3JlYWRlcl9uZXcpLAoJICAoZ3N0X2JpdF9yZWFkZXJfbmV3X2Zyb21fYnVmZmVyKSwgKGdzdF9iaXRfcmVhZGVyX2ZyZWUpLAoJICAoZ3N0X2JpdF9yZWFkZXJfaW5pdCksIChnc3RfYml0X3JlYWRlcl9pbml0X2Zyb21fYnVmZmVyKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3NldF9wb3MpLCAoZ3N0X2JpdF9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3RfYml0X3JlYWRlcl9nZXRfcmVtYWluaW5nKSwgKGdzdF9iaXRfcmVhZGVyX3NraXApLAoJICAoZ3N0X2JpdF9yZWFkZXJfc2tpcF90b19ieXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoR0RPVUJMRV9TV0FQX0xFX0JFKSwKCSAgKEdGTE9BVF9TV0FQX0xFX0JFKSwgKGdzdF9ieXRlX3JlYWRlcl9uZXcpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX25ld19mcm9tX2J1ZmZlciksIChnc3RfYnl0ZV9yZWFkZXJfZnJlZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfaW5pdCksIChnc3RfYnl0ZV9yZWFkZXJfaW5pdF9mcm9tX2J1ZmZlciksCgkgIChnc3RfYnl0ZV9yZWFkZXJfc2V0X3BvcyksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZyksIChnc3RfYnl0ZV9yZWFkZXJfc2tpcCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQ4KSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50OCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50OCksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQ4KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2JlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2JpdF9yZWFkZXJfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3N1aXRlKToKCSAgQWRkIGJpdCByZWFkZXIgYW5kIGJ5dGUgcmVhZGVyIGNsYXNzZXMsIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uCgkgIGFuZCBhbiBleHRlbnNpdmUgdW5pdCB0ZXN0IHN1aXRlLiBGaXhlcyBidWcgIzU1MzU1NC4KCjIwMDgtMTAtMDYgMDg6NTg6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUgc3RhdGUgY2hhbmdlcy4gRml4ZXMgIzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUgc3RhdGUKCSAgY2hhbmdlcy4gRml4ZXMgIzU1Mzg3NC4KCjIwMDgtMTAtMDYgMDg6NDU6NDIgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBzbWFsbCByZWZvdW50IGxlYWsgaW4gY2FwcyBjb21wYXRpYmlsaXR5IGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgT3JpZ2luYWwgcGF0Y2ggYnkgOiBTaW1vbiBEZXNjYXJpZXMKCSAgRml4IHNtYWxsIHJlZm91bnQgbGVhayBpbiBjYXBzIGNvbXBhdGliaWxpdHkgY2hlY2suCgkgIEZpeGVzICM1NTE2NzYuCgoyMDA4LTEwLTA2IDA3OjMwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDogRml4IDAuOCBhcGkgdXNhZ2UgaW4gZXhhbXBsZS4gRml4ZXMgIzU1NDU2MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgRml4IDAuOCBhcGkgdXNhZ2UgaW4gZXhhbXBsZS4gRml4ZXMgIzU1NDU2MQoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBDaGFuZ2UgMC45IHRvIDAuMTAgaGVyZS4KCjIwMDgtMTAtMDYgMDc6MTM6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDogQ2hhbmdlICJldmVudC1ldmVudCBpbnRlcmFjdGlvbiIgdG8gImVsZW1lbnQtZWxlbWVudCBpbnRlcmFjdGlvbiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSAgQ2hhbmdlICJldmVudC1ldmVudCBpbnRlcmFjdGlvbiIgdG8gImVsZW1lbnQtZWxlbWVudCBpbnRlcmFjdGlvbiIuCgkgIEZpeGVzICM1NTI0NDguIEFsc28gZml4IHNhbXBsZSBjb2RlIGZvciBzZWVraW5nIGFuZCBkbyBtb3JlIDAuOC0+MC4xMAoJICB1cGRhdGVzLgoKMjAwOC0xMC0wNSAxMDowMTo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMS4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIxLjEKCj09PSByZWxlYXNlIDAuMTAuMjEgPT09CgoyMDA4LTEwLTAyIDIzOjU5OjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMQoKMjAwOC0xMC0wMiAyMjo0MjoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTA5LTI4IDIyOjQ5OjU2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4yMC40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yMC40IHByZS1yZWxlYXNlCgoyMDA4LTA5LTI4IDIxOjE5OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBhc3NlcnRpb24gaW4gYmFzZXRyYW5zZm9ybSB3aGVuIHRoZSBzdWJjbGFzcyBjaG9vc2VzIG5vdCB0byBhbGxvY2F0ZSBhIGJ1ZmZlciBpbiBwcmVwYXJlX2J1ZmZlcigpLCBhbmQgbWFrZSBjYXBzZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgRml4IGFzc2VydGlvbiBpbiBiYXNldHJhbnNmb3JtIHdoZW4gdGhlIHN1YmNsYXNzIGNob29zZXMgbm90IHRvCgkgIGFsbG9jYXRlIGEgYnVmZmVyIGluIHByZXBhcmVfYnVmZmVyKCksIGFuZCBtYWtlIGNhcHNmaWx0ZXIgZXJyb3Igb3V0CgkgIGNsZWFubHkgaWYgcmVxdWVzdGVkIHRvIGFwcGx5IGNhcHMgdGhhdCBkb24ndCBjb21wbGV0ZWx5IHNwZWNpZnkgdGhlCgkgIGJ1ZmZlci4gRml4ZXMgIzU1MTUwOQoKMjAwOC0wOS0yNCAxNTowMzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUYWtlIG5ldyBjYXBzIHJlZiBiZWNhdXNlIG91ciBvbGQgb25lIG1pZ2h0IGhhdmUgYmVlbiBnb25lIHdoZW4gdGhlIHN1YmNsYXNzIHBlcmZvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBUYWtlIG5ldyBjYXBzIHJlZiBiZWNhdXNlIG91ciBvbGQgb25lIG1pZ2h0IGhhdmUgYmVlbiBnb25lIHdoZW4gdGhlCgkgIHN1YmNsYXNzIHBlcmZvcm1zIGEgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIHRoZSBzcmNwYWQuIFNlZSAjNTQ4NzY0LgoKMjAwOC0wOS0xNiAxNTozNTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFsc28gY29tbWl0IENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWxzbyBjb21taXQgQ2hhbmdlTG9nCgoyMDA4LTA5LTE2IDE1OjI0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEdhaC4gQ29tbWl0IHByZS1yZWxlYXNlIGluZm8gdGhhdCBzaG91bGQgaGF2ZSBnb25lIGluIGxhc3Qgd2VlayBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2FoLiBDb21taXQgcHJlLXJlbGVhc2UgaW5mbyB0aGF0IHNob3VsZCBoYXZlIGdvbmUgaW4gbGFzdCB3ZWVrIGFscmVhZHkuCgkgIDIwMDgtMDktMTAgIEphbiBTY2htaWR0ICA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjAuMiBwcmUtcmVsZWFzZQoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vaWQucG86CgkgICogcG8vcHRfQlIucG86CgkgIE5ldyB0cmFuc2xhdGlvbnMuCgoyMDA4LTA5LTE1IDE1OjE4OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IERvIG5vdCBwcm9iZSBhdmFpbGFiaWxpdHkgb2YgY2hlY2sgdW5pdCB0ZXN0IGxpYnJhcnkgd2hlbiBjcm9zcyBjb21waWxpbmcsIGFzIHRlc3Qgd291bGQgbm90IHdvcmsgYW55d2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEbyBub3QgcHJvYmUgYXZhaWxhYmlsaXR5IG9mIGNoZWNrIHVuaXQgdGVzdCBsaWJyYXJ5IHdoZW4gY3Jvc3MKCSAgY29tcGlsaW5nLCBhcyB0ZXN0IHdvdWxkIG5vdCB3b3JrIGFueXdheS4gQWxzbyBjbGVhbnVwIHZlcmJvc2Ugb3V0cHV0CgkgIG9mIHRoZSBjaGVjayB0ZXN0LiBGaXhlcyAjNTUxOTUyLgoKMjAwOC0wOS0xNCAyMjowMTozMCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEF2b2lkIGxlYWtpbmcgdGhlIHBhcmVudCByZWYgd2hlbiB3ZSBmYWlsIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiB0aGUgZWxlbWVudCB1c2luZyBnc3RfZWxlbWVudF9zeW5jXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KToKCSAgQXZvaWQgbGVha2luZyB0aGUgcGFyZW50IHJlZiB3aGVuIHdlIGZhaWwgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZQoJICBlbGVtZW50IHVzaW5nIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoKS4gRml4ZXMgIzU1MTk3OC4KCjIwMDgtMDktMTEgMTY6NTY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDogUmVtb3ZlIHNvbWUgYml0cyB0aGF0IG5vIGxvbmdlciBhcHBseSwgdXBkYXRlIG90aGVycyAoIzU1MTY0MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOjoKCSAgUmVtb3ZlIHNvbWUgYml0cyB0aGF0IG5vIGxvbmdlciBhcHBseSwgdXBkYXRlIG90aGVycyAoIzU1MTY0MikuCgoyMDA4LTA5LTA5IDE4OjQ3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOiBBZGQgR1NUX0RBVEFESVIsIGhhcmQtY29kZSBjcHUgdG8geDg2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIEFkZCBHU1RfREFUQURJUiwgaGFyZC1jb2RlIGNwdSB0byB4ODYuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFNwYWNlcyB0byB0YWJzLgoKMjAwOC0wOS0wMyAwNTo1Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBTaW5jZTogbWFya2VycyBmb3IgbmV3IGdlbyB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggU2luY2U6IG1hcmtlcnMgZm9yIG5ldyBnZW8gdGFncy4KCjIwMDgtMDktMDIgMjA6MDA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBhY3R1YWwgdGFnIG5hbWUgZGVmaW5lIGFmdGVyIHJlbmFtaW5nIGZyb20gYWx0aXR1ZGUgdG8gZWxldmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggYWN0dWFsIHRhZyBuYW1lIGRlZmluZSBhZnRlciByZW5hbWluZyBmcm9tIGFsdGl0dWRlIHRvIGVsZXZhdGlvbi4KCjIwMDgtMDktMDEgMTQ6MDU6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBmYWxsYmFjayB3aGVuIGNhbGxpbmcgdGhlIGRlcHJlY2F0ZWQgZnVuY3Rpb24gb24gYW4gZWxlbWVudCB0aGF0IGltcGxlbWVudHMgdGhlIG5ldyBpbnRlcm5hbF9saW5rIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoYWRkX3VucmVmX3BhZF90b19saXN0KSwKCSAgKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBBZGQgZmFsbGJhY2sgd2hlbiBjYWxsaW5nIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIG9uIGFuIGVsZW1lbnQgdGhhdAoJICBpbXBsZW1lbnRzIHRoZSBuZXcgaW50ZXJuYWxfbGluayBoYW5kbGVyLgoKMjAwOC0wOS0wMSAxMzozNTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG5ldyB0YWdzIGZvciBnZW8gbG9jYXRpb24gYW5kIGNsYXJpZnkgcHVycG9zZSBvZiBleGlzdGluZyBsb2NhdGlvbiB0YWcuIEZpeGVzICM0ODExNjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFkZCBuZXcgdGFncyBmb3IgZ2VvIGxvY2F0aW9uIGFuZCBjbGFyaWZ5IHB1cnBvc2Ugb2YgZXhpc3RpbmcgbG9jYXRpb24KCSAgdGFnLiBGaXhlcyAjNDgxMTY5CgoyMDA4LTA5LTAxIDExOjI3OjQ1ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgdGhyZWFkLXNhZmUgaW50ZXJuYWwgbGlua3MgaXRlcmF0b3IuIEZpeGVzICM1NDk1MDQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfZGlzcGF0Y2hlcik6CgkgIFVzZSB0aHJlYWQtc2FmZSBpbnRlcm5hbCBsaW5rcyBpdGVyYXRvci4gRml4ZXMgIzU0OTUwNC4KCjIwMDgtMDktMDEgMTA6NDI6MDQgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBBZGQgdGhyZWFkc2FmZSByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGdldHRpbmcgaW50ZXJuYWwgbGlua3Mgb2YgYW4gZWxlbWVudC4gRGVwcmVjYXRlIHRoZSBvbGQgaW50ZXJuYWwgbGlua3MgZnVuY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksCgkgIChnc3RfcGFkX3NldF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKSwKCSAgKGludF9saW5rX2l0ZXJfZGF0YV9mcmVlKSwgKGl0ZXJhdGVfcGFkKSwKCSAgKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyksIChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgdGhyZWFkc2FmZSByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGdldHRpbmcgaW50ZXJuYWwgbGlua3Mgb2YgYW4KCSAgZWxlbWVudC4gRGVwcmVjYXRlIHRoZSBvbGQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zLgoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX3NldF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKCkKCSAgQVBJOkdzdFBhZDo6R3N0UGFkSXRlckludExpbmtGdW5jdGlvbgoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKQoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCgpCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MpLAoJICAoZ3N0X3Byb3h5X3BhZF9pbml0KToKCSAgSW1wbGVtZW50IHRocmVhZHNhZmUgaW50ZXJuYWwgbGlua3MuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIGludGVybmFsIGxpbmtzIG9uIHRlZS4gU2VlICM1NDk1MDQuCgoyMDA4LTA4LTMwIDEyOjU3OjQ3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGxpYnMvdHJhbnNmb3JtMSB0ZXN0IHJlcXVpcmVzIGxpYnMvdGVzdF90cmFuc2Zvcm0uYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGlicy90cmFuc2Zvcm0xIHRlc3QgcmVxdWlyZXMgbGlicy90ZXN0X3RyYW5zZm9ybS5jCgoyMDA4LTA4LTMwIDEyOjA3OjQxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEaWUgZXZpbCBkZWFkbG9jaywgZGllICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIERpZSBldmlsIGRlYWRsb2NrLCBkaWUgIQoKMjAwOC0wOC0zMCAxMTo1NTo1OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEZpeCBhbGwgbGVha3MgZHVlIHRvIHRoZSBidWcgaW4gZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBieSB3aGljaCBpdCBkb2VzIG5vdCBzdGVhbCB0aGUgcmVmY291bnQgb2YgdGhlIGdpdmVuIGNhcHMgYXMgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAobmFtZV9pc192YWxpZCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhbGwgbGVha3MgZHVlIHRvIHRoZSBidWcgaW4gZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBieSB3aGljaCBpdCBkb2VzCgkgIG5vdCBzdGVhbCB0aGUgcmVmY291bnQgb2YgdGhlIGdpdmVuIGNhcHMgYXMgc3RhdGVkLgoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoKMjAwOC0wOC0yOSAxNzo1ODoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBBZnRlciAzIHllYXJzIGl0J3MgYWJvdXQgdGltZSB0byByZXZpc2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGl0ZXJhdG9yIG9iamVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZnRlciAzIHllYXJzIGl0J3MgYWJvdXQgdGltZSB0byByZXZpc2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlCgkgIGl0ZXJhdG9yIG9iamVjdHMuCgoyMDA4LTA4LTI5IDE2OjEwOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBNYWtlIHRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBsZXNzIHRocmVhZC11bnNhZmUgYW5kIGFkZCBzb21lIGNvbW1lbnRzLCBkdW5ubyB3aHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBNYWtlIHRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBsZXNzIHRocmVhZC11bnNhZmUgYW5kIGFkZCBzb21lCgkgIGNvbW1lbnRzLCBkdW5ubyB3aHkuCgoyMDA4LTA4LTI5IDE0OjEyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IEluY2x1ZGUgZ3N0aW5mby5oIGV2ZW4gaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGlzIGRlZmluZWQuIEZpeGVzIGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIEluY2x1ZGUgZ3N0aW5mby5oIGV2ZW4gaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGlzIGRlZmluZWQuIEZpeGVzCgkgIGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCjIwMDgtMDgtMjkgMDA6MzQ6NTggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFJldmVydCBsYXN0IGNoYW5nZSwgc2luY2UgaXQgYnJlYWtzIGEgZmV3IHBsdWdpbnMsIGZmbXBlZywgYWxhdywgYW5kIG11bGF3LiAgQ29kZSBpcyBjb3JyZWN0LCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UsIHNpbmNlIGl0IGJyZWFrcwoJICBhIGZldyBwbHVnaW5zLCBmZm1wZWcsIGFsYXcsIGFuZCBtdWxhdy4gIENvZGUgaXMgY29ycmVjdCwKCSAgYnV0IHNob3VsZG4ndCBiZSBlbmFibGVkIHVudGlsIHdlJ3ZlIHJlbGVhc2VkIGZpeGVkIHZlcnNpb25zCgkgIG9mIC1nb29kIGFuZCAtZmZtcGVnLgoKMjAwOC0wOC0yOCAyMDoxMjo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBQdXQgdGhlIGdzdF9vYmplY3RfZ2V0X25hbWUoKSBiYWNrIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIFB1dCB0aGUgZ3N0X29iamVjdF9nZXRfbmFtZSgpIGJhY2sgaW4uCgoyMDA4LTA4LTI4IDEyOjMyOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogVGhlIG9sZCBiZWhhdmlvdXIgd2FzIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNhcHMuIEFzIHdlIG5vdyBjYWxsIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIFRoZSBvbGQgYmVoYXZpb3VyIHdhcyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgdGFrZXMgb3duZXJzaGlwIG9mCgkgIHRoZSBjYXBzLiBBcyB3ZSBub3cgY2FsbCBnX29iamVjdF9uZXcoKSB3aGljaCBjYWxscyBnX29iamVjdF9zZXQoKSBhbmQKCSAgd2hpY2ggY29waWVzIHRoZSBjYXBzLCB3ZSBoYXZlIHRvIHVucmVmIHRoZW0gdG8gbm90IGxlYWsgdGhlbS4gRml4ZXMKCSAgbWFrZSB2YWxncmlkIGZvciBtZS4KCjIwMDgtMDgtMjggMTA6NDU6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3Qgc2VnZmF1bHQgb24gaW5wdXQgbGlrZSAidGVsOisxLTEyMy01NTUtMTIzNCIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgRG9uJ3Qgc2VnZmF1bHQgb24gaW5wdXQgbGlrZSAidGVsOisxLTEyMy01NTUtMTIzNCIuCgoyMDA4LTA4LTI3IDA3OjE4OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgYWxzbyBpbmNsdWRlIE9iamVjdFR5cGUgaW4gZ3N0X29iamVjdF9nZXRfcGF0aF9zdHJpbmcoKS4gTWFrZXMgZ3N0LWxhdW5jaCAtdiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IGFsc28gaW5jbHVkZSBPYmplY3RUeXBlIGluCgkgIGdzdF9vYmplY3RfZ2V0X3BhdGhfc3RyaW5nKCkuIE1ha2VzIGdzdC1sYXVuY2ggLXYgYml0IG1vcmUgdXNlZnVsLgoKMjAwOC0wOC0yNyAwMzowNDoyMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0CgkgIHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGggY29udmVydGluZyBuZWdhdGl2ZSBncmFudWxlcG9zCgkgIHZhbHVlcyBmb3IgRGlyYWMuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IFNhbWUsIGdzdF9xdWVyeV9uZXdfY29udmVydCgpLgoKMjAwOC0wOC0yNyAwMjo1OTo1OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0CgkgIHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGggY29udmVydGluZyBuZWdhdGl2ZSBncmFudWxlcG9zCgkgIHZhbHVlcyBmb3IgRGlyYWMuCgoyMDA4LTA4LTI1IDExOjA2OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIHRvIHRoZSBjbG9jayBzbGF2aW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIHRvIHRoZSBjbG9jayBzbGF2aW5nIGNvZGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gbWV0aG9kLgoKMjAwOC0wOC0yNSAxMTowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVGFrZSB0aGUgKHJlY3Vyc2l2ZSkgc3RhdGUgbG9jayBiZXR3ZWVuIGdldHRpbmcgdGhlIGxvY2tlZCBzdGF0ZSBvZiBhbiBlbGVtZW50IGFuZCBjaGFuZ2luZyB0aGUgZWxlbWVudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgVGFrZSB0aGUgKHJlY3Vyc2l2ZSkgc3RhdGUgbG9jayBiZXR3ZWVuIGdldHRpbmcgdGhlIGxvY2tlZCBzdGF0ZSBvZiBhbgoJICBlbGVtZW50IGFuZCBjaGFuZ2luZyB0aGUgZWxlbWVudCBzdGF0ZS4gVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvCgkgIGxvY2sgYW4gZWxlbWVudCdzIHN0YXRlIGFuZCB0aGVuIGNoYW5nZSBpdHMgc3RhdGUgd2l0aG91dCByYWNlcy4KCjIwMDgtMDgtMjUgMTA6NTI6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFdoZW4gYW4gZWxlbWVudCBpcyBpbiB0aGUgbG9ja2VkIHN0YXRlIHdlIHN0aWxsIHdhbnQgdG8gdXBkYXRlIHRoZSBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBXaGVuIGFuIGVsZW1lbnQgaXMgaW4gdGhlIGxvY2tlZCBzdGF0ZSB3ZSBzdGlsbCB3YW50IHRvIHVwZGF0ZSB0aGUKCSAgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoKMjAwOC0wOC0yMSAxMToxNzowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVc2UgdGhlIHJlc3VsdCBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZSBlbGVtZW50IGFsd2F5cyBhY2NlcHRlZCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIFVzZSB0aGUgcmVzdWx0IGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIGVsZW1lbnQKCSAgYWx3YXlzIGFjY2VwdGVkIHRoZSBjYXBzIGNvbXB1dGVkIGJ5IHRoZSBkZWZhdWx0IG5lZ290aWF0ZSBmdW5jdGlvbi4KCjIwMDgtMDgtMjAgMTA6NTI6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXBsZW1lbnQgbWV0aG9kIGZvciByZWNvbmZpZ3VyaW5nIGJhc2V0cmFuc2Zvcm0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEltcGxlbWVudCBtZXRob2QgZm9yIHJlY29uZmlndXJpbmcgYmFzZXRyYW5zZm9ybS4KCSAgQVBJOiBHc3RCYXNlVHJhbnNmb3JtOjpnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUoKQoKMjAwOC0wOC0yMCAwNzoyMjoxMSArMDAwMCAgTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogTWVudGlvbiB0aGF0IHRoaXMgaXMganVzdCBsaWtlIGdzdF9idWZmZXJfbWVyZ2UoKSBidXQgd2l0aCBleHRyYSB1bnJlZmZpbmcgZm9yIEMgY29kZXJzLiBBZHZpc2UgbGFuZ3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTWVudGlvbiB0aGF0IHRoaXMgaXMganVzdCBsaWtlIGdzdF9idWZmZXJfbWVyZ2UoKSBidXQgd2l0aCBleHRyYQoJICB1bnJlZmZpbmcgZm9yIEMgY29kZXJzLiBBZHZpc2UgbGFuZ3VhZ2UgYmluZGluZ3Mgbm90IHRvIHdyYXAgaXQuCgkgIEZpeGVzIEJ1ZyAjNTMzODU2LgoJICBBbHNvIGZpeCBmaWxlIGNvbW1lbnQuCgoyMDA4LTA4LTIwIDA3OjAzOjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQ2FsbCBzdXBlcjo6ZXZlbnQoKSB3aGVuIG5vdCBoYW5kbGluZyBpdC4gRml4ZXMgIzU0NDg1NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgQ2FsbCBzdXBlcjo6ZXZlbnQoKSB3aGVuIG5vdCBoYW5kbGluZyBpdC4gRml4ZXMgIzU0NDg1NS4KCjIwMDgtMDgtMTkgMTc6MjM6MTggKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVzZSA2NCBiaXQgdmFyaWFudHMgb2Ygc3RhdCBmdW5jdGlvbnMgb24gd2luMzIsIHRvIGVuYWJsZSBzdXBwb3J0IG9mIGxhcmdlIGZpbGVzIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgNjQgYml0IHZhcmlhbnRzIG9mIHN0YXQgZnVuY3Rpb25zIG9uIHdpbjMyLCB0byBlbmFibGUgc3VwcG9ydAoJICBvZiBsYXJnZSBmaWxlcyB0aGVyZS4KCSAgRml4ZXMgIzU0NzI3Ny4KCjIwMDgtMDgtMTkgMTY6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHRoZSBmbHVzaGluZyBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiB0aGUgZmx1c2hpbmcgc3RhdGUuCgkgIEFsc28gcmVwb3J0IHRoZSBwb3NpdGlvbiB3aGVuIHdlIGFyZSBub3QgeWV0IHByZXJvbGxlZCBidXQgd2UKCSAgaGF2ZSBhIG5ld3NlZ21lbnQgZXZlbnQuIEZpeGVzICM1NDM0NDQuCgkgIEltcHJvdmUgdGhlIHB1bGwtYmFzZWQgbmVnb3RpYXRpb24gY29kZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBpbiBQQVVTRUQgYW5kCgkgIFBMQVlJTkcuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGUgdW5pdC10ZXN0LCB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBwb3NpdGlvbiBhcyBzb29uIGFzIHdlIHJlY2VpdmUgYQoJICBORVdTRUdNRU5UIGV2ZW50LgoKMjAwOC0wOC0xOSAwODo1MjowNSArMDAwMCAgSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiB0aGUgc3ViY2xhc3MgZXZlbnQgaGFuZGxlciByZWxlYXNlcyB0aGUgUFJFUk9MTF9MT0NLLCB3ZSBjb3VsZCBiZSBpbiB0aGUgZmx1c2hpbmcgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEphc29uIFpoYW8gPGUzNDIzYyBhdCBtb3Rvcm9sYSBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCk6CgkgIFdoZW4gdGhlIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXIgcmVsZWFzZXMgdGhlIFBSRVJPTExfTE9DSywgd2UgY291bGQgYmUKCSAgaW4gdGhlIGZsdXNoaW5nIHN0YXRlIGFuZCB3ZSBoYXZlIHRvIGlnbm9yZSB0aGUgZXZlbnQuIEZpeGVzICM1NDgzOTQuCgoyMDA4LTA4LTE4IDExOjI4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBEb2N1bWVudCBHU1RfUkVHSVNUUllfVVBEQVRFIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvY3VtZW50IEdTVF9SRUdJU1RSWV9VUERBVEUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDA4LTA4LTE4IDA5OjU5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IElmIHRoZSBlbGVtZW50IGlzIGNvbmZpZ3VyZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBnYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIElmIHRoZSBlbGVtZW50IGlzIGNvbmZpZ3VyZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQgdGhlCgkgIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBnYXZlIHVzIGEgbmV3IG91dHB1dCBidWZmZXIsIGRpc2NhcmQgdGhhdCBidWZmZXIKCSAgYW5kIHJldXNlIHRoZSBpbnB1dCBidWZmZXIuCgoyMDA4LTA4LTE1IDE3OjAxOjA3ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUHJvdGVjdCBwYWRfYWxsb2Mgd2l0aCBhIG5ldyBsb2NrIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCBub3RoaW5nIGlzIHBlcmZvcm1pbmcgYSBwYWRfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hcyBhdCB0YW5kYmVyZyBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZmluYWxpemUpLCAoZ3N0X3RlZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9maW5kX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUHJvdGVjdCBwYWRfYWxsb2Mgd2l0aCBhIG5ldyBsb2NrIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCBub3RoaW5nIGlzCgkgIHBlcmZvcm1pbmcgYSBwYWRfYWxsb2Mgd2hlbiByZW1vdmluZyB0aGUgcGFkLiBGaXhlcyAjNTQ3ODM1LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoYnVmZmVyX2FsbG9jX2hhcm5lc3Nfc2V0dXApLAoJICAoYnVmZmVyX2FsbG9jX2hhcm5lc3NfdGVhcmRvd24pLCAoYXBwX3RocmVhZF9mdW5jKSwKCSAgKGZpbmFsX3NpbmtwYWRfYnVmZmVyYWxsb2MpLCAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIHNodXRkb3duIHJhY2UuCgoyMDA4LTA4LTE0IDIwOjA1OjMzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBBZGQgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGRvYwoKMjAwOC0wOC0xNCAxNjozNzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBHbyBvdmVyIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYWdhaW4gYW5kIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZW5kIHVwIGFsbG9jYXRpbmcgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEdvIG92ZXIgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBhZ2FpbiBhbmQgbWFrZSBzdXJlIHdlIGFsd2F5cyBlbmQgdXAKCSAgYWxsb2NhdGluZyBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoJICBBdm9pZCBkb2luZyBwYWQgYWxsb2Mgd2hlbiB3ZSBoYXZlIGEgcGVuZGluZyBzdWdnZXN0aW9uIGJlY2F1c2Ugd2UKCSAgY2Fubm90IHlldCBkZWFsIHdpdGggY2hhbmdpbmcgY2FwcyBpbiB0aGF0IGNhc2UuIEZpeGVzICM1NDc3MjgKCjIwMDgtMDgtMTQgMTQ6MjY6MjAgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQWRkIG9uZSBtb3JlIGltYWdlIHNob3dpbmcgZGlmZmVyZW50IHRpbWVzIHRvZ2V0aGVyIHdpdGggYSBkZXNjcmliaW5nIHBhcmFncmFwaC4gRml4ZXMgIzU0NzcyOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9jbG9ja3MucG5nOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWNsb2Nrcy5zdmc6CgkgIEFkZCBvbmUgbW9yZSBpbWFnZSBzaG93aW5nIGRpZmZlcmVudCB0aW1lcyB0b2dldGhlciB3aXRoIGEgZGVzY3JpYmluZwoJICBwYXJhZ3JhcGguIEZpeGVzICM1NDc3MjkuCgoyMDA4LTA4LTE0IDE0OjA0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgbmV3IG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IG1ldGhvZC4KCjIwMDgtMDgtMTQgMTM6NTc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvdXRzaXplIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHNpemUgb2YgYSBuZXcgYnVmZmVyIGJlY2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KToKCSAgRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvdXRzaXplIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHNpemUgb2YgYSBuZXcKCSAgYnVmZmVyIGJlY2F1c2Ugd2Ugc3RpbGwgbmVlZCBpdCBpbiBjYXNlIHdlIGNhbm5vdCBwcm9jZXNzIHRoZSBuZXcKCSAgYnVmZmVyLgoJICBXaGVuIGNvbnZlcnRpbmcgdGhlIHNpemUgb2YgdGhlIG5ldyBidWZmZXIgdG8gYW4gdXBzdHJlYW0gc2l6ZSwgYWN0dWFsbHkKCSAgdXNlIHRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBidWZmZXIsIG5vdCBzb21lIG90aGVyIHJhbmRvbSB2YWx1ZS4KCSAgVXNlIGFuIGF0b21pYyBpbnQgdG8gc2lnbmFsIHRoYXQgYSBuZXcgdXBzdHJlYW0gY2FwcyBzdWdnZXN0aW9uIGlzCgkgIGF2YWlsYWJsZS4KCSAgV2hlbiB3ZSBjYW4gY29udmVydCB0aGUgY3VycmVudCBidWZmZXIgdG8gYSBuZXcgZm9ybWF0LCBjaGVjayBpZiB0aGUKCSAgYnVmZmVyIHNpemUgaXMgb2YgdGhlIGV4cGVjdGVkIHNpemUgYW5kIGFsbG9jYXRlIGEgbmV3IGJ1ZmZlciBvZiB0aGUKCSAgZXhwZWN0ZWQgc2l6ZSB3aGVuIHRoaXMgaXMgbm90IHRoZSBjYXNlLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICByZW1vdmUgaWZkZWZmZWQgY29kZSBmcm9tIHRoZSB1bml0IHRlc3QuCgoyMDA4LTA4LTEyIDE4OjQ4OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwa2djb25maWcvOiBSZW1vdmUgLWxnc3Rjb250cm9sLTAuMTAgd2hpY2ggbmV2ZXIgd29ya2VkIGFueXdheSBhcyB0aGUgbGliIGlzIGNhbGxlZCBnc3Rjb250cm9sbGVyLTAuMTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgUmVtb3ZlIC1sZ3N0Y29udHJvbC0wLjEwIHdoaWNoIG5ldmVyIHdvcmtlZCBhbnl3YXkgYXMgdGhlIGxpYiBpcwoJICBjYWxsZWQgZ3N0Y29udHJvbGxlci0wLjEwLgoKMjAwOC0wOC0xMiAwNjoyNzozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIGRvdWJsZSBpbnRlcmZhY2UgZnJvbSBkb2Mtc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgUmVtb3ZlIGRvdWJsZSBpbnRlcmZhY2UgZnJvbSBkb2Mtc3RyaW5nLgoKMjAwOC0wOC0xMiAwNjoxNjowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCBoZWFkaW5ncyBpbiBkb2NzIGFuZCBndGstZG9jIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IGhlYWRpbmdzIGluIGRvY3MgYW5kIGd0ay1kb2Mgd2FybmluZ3MuCgoyMDA4LTA4LTExIDE5OjA0OjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRG9uJ3QgdXNlIGdfbWtzdG1wKCkgb24gd2luMzIsIGl0J3MgdW5zYWZlIGlmIGdsaWIgaXMgdXNpbmcgYSBkaWZmZXJlbnQgbGliYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIERvbid0IHVzZSBnX21rc3RtcCgpIG9uIHdpbjMyLCBpdCdzIHVuc2FmZSBpZiBnbGliIGlzIHVzaW5nIGEgZGlmZmVyZW50CgkgIGxpYmMuCgkgIEZpeGVzICM1NDQ3NzYuCgoyMDA4LTA4LTExIDE1OjE0OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhICJtYXkgYmUgdXNlZCB1bml0aWFsaXplZCIgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRml4IGEgIm1heSBiZSB1c2VkIHVuaXRpYWxpemVkIiB3YXJuaW5nLgoKMjAwOC0wOC0xMSAwODowNjoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9jdW1lbnQgcHJlc2V0LWlmYWNlIHZtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgRG9jdW1lbnQgcHJlc2V0LWlmYWNlIHZtZXRob2RzLgoKMjAwOC0wOC0xMSAwNzowNzo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6IFR1cm4gdGhvdWdodHMgYWJvdXQgSEFMIGludG8gYSBub3RlLXRhZy4gUmVtb3ZlIG1lbnRpb25pbmcgdGhhdCBpcyBvbmx5IHVzZWQgdG8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBUdXJuIHRob3VnaHRzIGFib3V0IEhBTCBpbnRvIGEgbm90ZS10YWcuIFJlbW92ZSBtZW50aW9uaW5nIHRoYXQgaXMKCSAgb25seSB1c2VkIHRvIGRpc2NvdmVyIGRldmljZXMuCgoyMDA4LTA4LTA3IDE1OjQ5OjAwICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgZ3N0L2dzdC5jOiBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA4LTA3IDEyOjI4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHN1YnNldCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCk6CgkgIEZpeCBzdWJzZXQgdGVzdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIHVuaXQgdGVzdCBzdWJzZXQgdGVzdHMgYW5kIGFkZCBhIHRlc3RjYXNlIGZvciB0aGUgc3Vic2V0IGZhaWx1cmUKCSAgY2FzZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBJbXByb3ZlIHN1YnRyYWN0aW9uIHVuaXQgdGVzdC4KCjIwMDgtMDgtMDcgMDc6MDE6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IFVubG9jaywgaW5zdGVhZCBvZiBsb2NraW5nIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBVbmxvY2ssIGluc3RlYWQgb2YgbG9ja2luZyBhZ2Fpbi4KCjIwMDgtMDgtMDUgMTY6NTA6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IENsYXJpZnkgdGhlIGRvY3MgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzIGEgYml0IG1vcmUuCgoyMDA4LTA4LTA1IDE1OjQyOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IERvbid0IGxlYWsgb2xkIHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgRG9uJ3QgbGVhayBvbGQgdGFnbGlzdC4KCjIwMDgtMDgtMDUgMTU6MDM6MjcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEF2b2lkIG92ZXJmbG93cyBpbiBmaXhhdGlvbiBjb2RlIHdoZW4gZGVhbGluZyB3aXRoIE1BWElOVCB2YWx1ZXMsIHdoaWNoIHY0bDJzcmMgc2VlbXMgdG8gZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgIEF2b2lkIG92ZXJmbG93cyBpbiBmaXhhdGlvbiBjb2RlIHdoZW4gZGVhbGluZyB3aXRoIE1BWElOVCB2YWx1ZXMsIHdoaWNoCgkgIHY0bDJzcmMgc2VlbXMgdG8gZG8uCgkgIEZpeGVzICM1NDYzMjguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXguCgoyMDA4LTA4LTA1IDExOjEyOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFVzZSBuZXcgY2FwcyBzdWdnZXN0aW9uIGZlYXR1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZXF1ZXN0IGEgY2FwcyBuZWdvdGlhdGlvbiB1cHN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoY29weV9mdW5jKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBuZXcgY2FwcyBzdWdnZXN0aW9uIGZlYXR1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZXF1ZXN0IGEgY2FwcwoJICBuZWdvdGlhdGlvbiB1cHN0cmVhbS4KCjIwMDgtMDgtMDUgMTE6MTE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IGZ1bmN0aW9uOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGZ1bmN0aW9uOgoJICBBUEk6IEdzdEJhc2VUcmFuc2Zvcm06OmdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2FuX3RyYW5zZm9ybSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfaW5fcGxhY2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX2luX3BsYWNlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJld3JpdGUgb2YgYmFzZXRyYW5zZm9ybSB0byBwZXJmb3JtIG5lZ290aWF0aW9uIG91dHNpZGUgb2YgdGhlCgkgIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbnMuICBGaXhlcyAjNTQ1ODUzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYnVmZmVyX2FsbG9jX2N0Mik6CgkgIFVwZGF0ZSB1bml0IHRlc3QuCgoyMDA4LTA4LTA1IDA1OjQ0OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6IE9ubHkgcnVuIHByZXNldCB0ZXN0cyB3aGVuICRIT01FIGlzIHdyaXRhYmxlLiBQcmVsaW1pbmFyeSBmaXggZm9yICM1NDU0MzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSAgT25seSBydW4gcHJlc2V0IHRlc3RzIHdoZW4gJEhPTUUgaXMgd3JpdGFibGUuIFByZWxpbWluYXJ5IGZpeCBmb3IKCSAgIzU0NTQzMy4KCjIwMDgtMDgtMDQgMTU6NDk6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCByYWNlIGZvciBiaW5zIHRoYXQgc2ltdWxhdGUgQVNZTkMgc3RhdGUgY2hhbmdlcyBieSBpbnNlcnRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEZpeCByYWNlIGZvciBiaW5zIHRoYXQgc2ltdWxhdGUgQVNZTkMgc3RhdGUgY2hhbmdlcyBieSBpbnNlcnRpbmcKCSAgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgaW4gdGhlaXIgYnVzLiBXZSBuZWVkIHRvIGNoZWNrIGZvcgoJICBwZW5kaW5nIEFTWU5DIG1lc3NhZ2VzIGV2ZW4gd2hlbiB0aGUgYmluIGRvZXMgbm90IGhhdmUgQVNZTkMgY2hpbGRyZW4uCgkgIFdlIG5vdGUgZGV0ZWN0IHRoaXMgYmVoYXZpb3VyIGJlY2F1c2Ugd2Ugd2lsbCByZWNlaXZlIGFuIEFTWU5DIG1lc3NhZ2UKCSAgdGhhdCBpcyBvcmlnaW5hdGluZyBmcm9tIHRoZSBiaW4gaXRzZWxmLgoJICBGaXhlcyByYWNlcyB3aXRoIGRlY29kZWJpbjIgc3RhdGUgY2hhbmdlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgoyMDA4LTA4LTA0IDEzOjAxOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgRml4IHR5cG8uCgoyMDA4LTA4LTA0IDEyOjQ2OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBcmdoLiBhY3R1YWxseSBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjb21taXR0aW5nLiBOb3cgYWRkcyBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIHRvIGdzdF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQXJnaC4gYWN0dWFsbHkgc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY29tbWl0dGluZy4gTm93IGFkZHMKCSAgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSB0byBnc3RfdGFnX3JlZ2lzdGVyKCkuCgoyMDA4LTA4LTA0IDEyOjMwOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBEbyBhcyB0aW0gcG9pbnRlZCBvdXQgYW5kIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBuZXcgdGFnLiBBbHNvIGltcHJvdmUgdGUgZG9jcyBhbmQgdXNlIGdzdF90YWdfbWVyZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBEbyBhcyB0aW0gcG9pbnRlZCBvdXQgYW5kIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBuZXcgdGFnLiBBbHNvIGltcHJvdmUKCSAgdGUgZG9jcyBhbmQgdXNlIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgbWV0aG9kIHRvIGFsbG93CgkgIHJldHJpdmluZyBhbGwga2V5d29yZHMgbWVyZ2VkIGluIG9uZSBsaXN0LgoKMjAwOC0wOC0wMSAxMTo1Nzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV2ZXJ0ICdhY2NpZGVudGlhbCcgY2hhbmdlIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHJlbW92YWwuIFdlIHN0aWxsIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHR5cGVzIGZpbGUgaW4gY29uZmlndXJlIC0tLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIFJldmVydCAnYWNjaWRlbnRpYWwnIGNoYW5nZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiByZW1vdmFsLiBXZSBzdGlsbAoJICBuZWVkIHRvIGdlbmVyYXRlIHRoZSB0eXBlcyBmaWxlIGluIGNvbmZpZ3VyZSAtLWRpc2FibGUtbG9hZC1zYXZlLgoKMjAwOC0wOC0wMSAxMTozNDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG5ldyB0YWdsaXN0IGl0ZW0gR1NUX1RBR19LRVlXT1JEUywgbmVlZGVkIGZvciAjNTIwNjk0IC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBZGQgbmV3IHRhZ2xpc3QgaXRlbSBHU1RfVEFHX0tFWVdPUkRTLCBuZWVkZWQgZm9yICM1MjA2OTQgLgoKMjAwOC0wOC0wMSAxMDowMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBBZGQgIm5hbWUtdGVtcGxhdGUiLCAiZGlyZWN0aW9uIiwgInByZXNlbmNlIiBhbmQgImNhcHMiIHByb3BlcnRpZXMsIHNvIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3NldF9wcm9wZXJ0eSksIChnc3RfcGFkX3RlbXBsYXRlX2dldF9wcm9wZXJ0eSk6CgkgIEFkZCAibmFtZS10ZW1wbGF0ZSIsICJkaXJlY3Rpb24iLCAicHJlc2VuY2UiIGFuZCAiY2FwcyIgcHJvcGVydGllcywKCSAgc28gdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGlzIGp1c3QgYSB0aGluIHdyYXBwZXIgYXJvdW5kCgkgIGdfb2JqZWN0X25ldygpLCB3aGljaCBpcyBiZXR0ZXIgZm9yIGJpbmRpbmdzLiAoRml4ZXM6ICM1Mzk3NzIpCgoyMDA4LTA3LTMxIDE3OjE2OjUwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dXJpLmM6IEJlIG1vcmUgbGliZXJhbCBpbiB3aGF0IFVSSXMgd2UgYWNjZXB0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEJlIG1vcmUgbGliZXJhbCBpbiB3aGF0IFVSSXMgd2UgYWNjZXB0LgoJICBEbyBub3QgdW5lc2NhcGUgYml0cyBvZiB0aGUgVVJJIGZvciBubyBhcHBhcmVudCByZWFzb24gYmVmb3JlIHBhc3NpbmcgdG8KCSAgdGhlIGVsZW1lbnQuIEZpeGVzICM1NDUzNTIuCgoyMDA4LTA3LTMxIDE1OjI0OjIxICswMDAwICBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+CgoJICBnc3QvZ3N0LmM6IEluY2x1ZGUgZ3N0Y29uZmlnLmggYXMgbWFjcm9zIGZyb20gaXQgYXJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTQ1NjA3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KCSAgKiBnc3QvZ3N0LmM6CgkgIEluY2x1ZGUgZ3N0Y29uZmlnLmggYXMgbWFjcm9zIGZyb20gaXQgYXJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTQ1NjA3LgoKMjAwOC0wNy0zMSAxNToyMDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVtb3ZlIEdTVF9ESVNBQkxFXyhFTlVNVFlQRVN8SU5ERVh8VVJJKSBldmVyeXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fc2V0X2luZGV4X2Z1bmMpOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2luZGV4KToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2luZGV4X2luZm8pLCAocHJpbnRfZWxlbWVudF9saXN0KSwKCSAgKHByaW50X3BsdWdpbl9mZWF0dXJlcyksIChwcmludF9lbGVtZW50X2ZlYXR1cmVzKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZXZlbnRfbWFza3MpLAoJICAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIFJlbW92ZSBHU1RfRElTQUJMRV8oRU5VTVRZUEVTfElOREVYfFVSSSkgZXZlcnl3aGVyZS4KCSAgRGlzYWJsaW5nIHRoZSBpbmRleGVycyBhbmQgVVJJIGhhbmRsZXIgY29kZSB3aWxsIG9ubHkgcmVkdWNlIHRoZQoJICByZXF1aXJlZCBhbW91bnQgb2YgbWVtb3J5IGJ5IGEgdmVyeSBzbWFsbCBhbW91bnQgYnV0IG9uIHRoZSBvdGhlciBoYW5kCgkgIHJlcXVpcmVzIG11Y2ggbW9yZSBtYWludGFpbmNlIHdvcmsuIEFwYXJ0IGZyb20gdGhhdCBtYW55IHBsYWNlcyBvZgoJICBjb2RlIGFyZSBicm9rZW4gd2hlbiBkaXNhYmxpbmcgdGhlbS4KCSAgRGlzYWJsaW5nIHRoZSBlbnVtIHR5cGVzIGRvZXNuJ3QgcmVkdWNlIHRoZSByZXF1aXJlZCBhbW91bnQgb2YgbWVtb3J5CgkgIGJ5IG1vcmUgdGhhbiBhIGZldyBieXRlcyBhbmQgbWFrZXMgaXQgaGFyZCB0byBmaXggYnVncyBsaWtlICM1Mzk3NzIsCgkgIGkuZS4gdXNlIHRoZSBlbnVtcyBhcyBHT2JqZWN0IHByb3BlcnRpZXMuCgoyMDA4LTA3LTMxIDEzOjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIHNvbWUgdGhvdWdodHMgYW5kIHByb2JsZW1zIHdpdGggdXBzdHJlYW0gcmVuZWdvdGlhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgdGhvdWdodHMgYW5kIHByb2JsZW1zIHdpdGggdXBzdHJlYW0gcmVuZWdvdGlhdGlvbi4KCjIwMDgtMDctMzEgMTI6NTA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBzaWxseSByZWR1bmRhbnQgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgUmVtb3ZlIHNpbGx5IHJlZHVuZGFudCBkZWJ1Zy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBDbGFyaWZ5IHRoZSBkb2NzIHJlZ2FyZGluZyBuZXcgY2FwcyByZWNlaXZlZCBmcm9tIHBhZF9hbGxvYy4KCjIwMDgtMDctMzEgMDk6NTU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogTWFrZSBzZXR0aW5nIHRoZSBjYXBzIG1vcmUgdGhyZWFkc2FmZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfZ2V0X3Byb3BlcnR5KSwgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9jYXBzKToKCSAgTWFrZSBzZXR0aW5nIHRoZSBjYXBzIG1vcmUgdGhyZWFkc2FmZS4KCjIwMDgtMDctMzEgMDg6Mzk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBVcGRhdGUgZG9jcy4KCjIwMDgtMDctMzEgMDg6Mzc6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFkZCBhbmQgdXNlIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiBmYWxsaW5nIGJhY2sgdG8gdGhlIHBvdGVudGlhbGx5IGxlc3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpOgoJICBBZGQgYW5kIHVzZSBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZmFsbGluZyBiYWNrIHRvIHRoZQoJICBwb3RlbnRpYWxseSBsZXNzIG9wdGltaXplZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAwOC0wNy0yOSAxNTozMjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogT25seSBzYW5pdHktY2hlY2sgdGhlIGJ1ZmZlciBzaXplIGlmIHJlcXVlc3RlZF9jYXBzID09IGJ1ZmZlcl9jYXBzIChpZS4gZG9uJ3QgdGFrZSBwYWQgY2FwcyBpbnRvIGFjY291bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgT25seSBzYW5pdHktY2hlY2sgdGhlIGJ1ZmZlciBzaXplIGlmIHJlcXVlc3RlZF9jYXBzID09IGJ1ZmZlcl9jYXBzCgkgIChpZS4gZG9uJ3QgdGFrZSBwYWQgY2FwcyBpbnRvIGFjY291bnQsIHRoZXkncmUgbm90IHJlbGV2YW50IGhlcmUpCgoyMDA4LTA3LTI5IDE0OjMyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBSZXZlcnRpbmcgYXMgbm90IGV2ZXJ5dGhpbmcgaXMgY2xlYXIgeWV0LiBOZWVkcyBzb21lIGdlbmVyYWwgZGVzaWduIHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUmV2ZXJ0aW5nIGFzIG5vdCBldmVyeXRoaW5nIGlzIGNsZWFyIHlldC4gTmVlZHMgc29tZSBnZW5lcmFsIGRlc2lnbgoJICB3b3JrLgoKMjAwOC0wNy0yOSAxMzozNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgdGVlIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgdGVlIGNvbW1pdC4KCjIwMDgtMDctMjkgMTM6MzA6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IENsZWFudXAgc2VjdGlvbi1maWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBDbGVhbnVwIHNlY3Rpb24tZmlsZS4KCjIwMDgtMDctMjkgMTE6NTc6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFJlbGF5IHRhZyBldmVudHMgaW4gdGVlLiBGaXhlcyBwYXJ0cyBvZiAjNDc0MDE2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFJlbGF5IHRhZyBldmVudHMgaW4gdGVlLiBGaXhlcyBwYXJ0cyBvZiAjNDc0MDE2LgoKMjAwOC0wNy0yOSAwMDo0NToyOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgQnVpbGQgdGhlIG5ldCBsaWJyYXJ5IGlmIHdlIGhhdmUgd2luc29jazIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgQnVpbGQgdGhlIG5ldCBsaWJyYXJ5IGlmIHdlIGhhdmUgd2luc29jazIuCgoyMDA4LTA3LTI2IDEyOjAwOjM2ICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IFJlcGxhY2Ugb25lIGRpYWdyYW0gd2l0aCB0d28gc2VwYXJhdGUgb25lcyBhbmQgdXBkYXRlcyBvdGhlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvcXVldWUucG5nOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC1idWZmZXJpbmcucG5nOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC1zeW5jaHJvbml6aW5nLnBuZzoKCSAgUmVwbGFjZSBvbmUgZGlhZ3JhbSB3aXRoIHR3byBzZXBhcmF0ZSBvbmVzIGFuZCB1cGRhdGVzIG90aGVycy4KCSAgRml4ZXMgIzU0MjQwMS4KCjIwMDgtMDctMjUgMTA6MjQ6NDMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBGaXggbGluayBpbiBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggbGluayBpbiBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0yNCAxNzozODo0MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0yNCAxNToxMzoyNCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOiByZXZlcnQgdGhlIGNoYW5nZXMgdG8gdGhlIGhlYWRlciBmaWxlIGZvciB0aGUgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgcmV2ZXJ0IHRoZSBjaGFuZ2VzIHRvIHRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIEFCSS4KCjIwMDgtMDctMjQgMTQ6NDc6NTggKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogRG9uJ3QgY2FjaGUgdGhlIHNlZWthYmxlIHN0YXR1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvbid0IGNhY2hlIHRoZSBzZWVrYWJsZSBzdGF0dXMuCgkgIEZpeGVzIGJ1ZyAjNTQ0MTc0CgoyMDA4LTA3LTI0IDEyOjM2OjIwICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBBZGQgZmFrZXNpbmsgdG8gZXhhbXBsZSBjb2RlIHRvIGNsb3NlIHRoZSBwaXBlbGluZSBncmFwaC4gIFRoaXMgcHJldmVudHMgdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogQWRkIGZha2VzaW5rIHRvIGV4YW1wbGUKCSAgY29kZSB0byBjbG9zZSB0aGUgcGlwZWxpbmUgZ3JhcGguICBUaGlzIHByZXZlbnRzIHRoZSBwcm9ncmFtIGZyb20KCSAgcHJpbnRpbmcgaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4KCjIwMDgtMDctMjMgMTU6NDQ6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBDb3JyZWN0IHR5cG8uIEZpeGVzIGJ1ZyAjNTQ0MzIwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgQ29ycmVjdCB0eXBvLiBGaXhlcyBidWcgIzU0NDMyMC4KCjIwMDgtMDctMjIgMTg6MTI6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIEFDX0lTQ19QT1NJWCBtYWNybzsgaXQncyBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgYW5kIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIEFDX0lTQ19QT1NJWCBtYWNybzsgaXQncyBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgYW5kIG5vdCBuZWVkZWQuCgkgIEFkZCBjaGVjayAodGFrZW4gZnJvbSAtYmFzZSkgZm9yIHdpbnNvY2ssIGFkZHMgV0lOMzJfTElCUwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgQWRkIFdJTjMyX0xJQlMgdG8gTElCQUREIGZvciBsaWJnc3RyZWFtZXIuIE5lZWRlZCBub3cgdGhhdCBnc3Rwb2xsIHVzZXMKCSAgd2luc29jay4KCSAgRGVmaW5lIEdTVF9FWFBPUlRTIHdoZW4gYnVpbGRpbmcgbGliZ3N0cmVhbWVyIChvbmx5IHVzZWQgb24gd2luMzIpCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVXNlIEdTVF9FWFBPUlQgaW5zdGVhZCBvZiBsb2NhbGx5LWRlZmluZWQgKGFuZCBpbmNvcnJlY3QgSU1QT1JUX1NZTUJPTCkKCSAgZm9yIHN5bWJvbHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9ydCBpbiBib3RoIHRoZXNlIGZpbGVzLgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEluY2x1ZGUgZ3N0X3ByaXZhdGUuaCBoaWdoZXIgdXAgdG8gYXZvaWQgc29tZSBjb21waWxlIHByb2JsZW1zIG9uIHdpbjMyLgoKMjAwOC0wNy0yMiAwOToyNDozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZpeCB0eXBvcy4KCjIwMDgtMDctMjIgMDA6Mjk6NTUgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBQcmV2aW91cyBjb21taXQgd2FzIHdyb25nIE5VTEwgY2FwcyBkb2VzIG5vdCBleGlzdCBhbmQgaW5kaWNhdGUgYW4gZXJyb3IsIHNvIGFsc28gYWRkIGEgRklYTUUgdG8gZ3N0X2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgUHJldmlvdXMgY29tbWl0IHdhcyB3cm9uZyBOVUxMIGNhcHMgZG9lcyBub3QgZXhpc3QKCSAgYW5kIGluZGljYXRlIGFuIGVycm9yLCBzbyBhbHNvIGFkZCBhIEZJWE1FIHRvCgkgIGdzdF9jYXBzX2lzX2VxdWFsIHdoZXJlIE5VTEwgY2FwcyBhcmUgYWNjZXB0ZWQuCgoyMDA4LTA3LTIxIDIzOjAyOjQwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQWxsb3cgcGFzc2luZyBvZiBOVUxMIHRvIGdzdF9jYXBzX3VuaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIEFsbG93IHBhc3Npbmcgb2YgTlVMTCB0byBnc3RfY2Fwc191bmlvbgoKMjAwOC0wNy0yMSAyMTozMjowNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGQgaW4gZG9jIHRoYXQgZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0IGNhbiBhY2NlcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEFkZCBpbiBkb2MgdGhhdCBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQgY2FuIGFjY2VwdAoJICBOVUxMIHRvIGNsZWFyIHRhcmdldAoKMjAwOC0wNy0xNSAyMjo1MzowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogR3N0UmVnaXN0cnlQb29sIGRvZXNuJ3QgZXhpc3Q7IGRvbid0IHJlZmVyIHRvIGl0IGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgR3N0UmVnaXN0cnlQb29sIGRvZXNuJ3QgZXhpc3Q7IGRvbid0IHJlZmVyIHRvIGl0IGluIGRvY3MuCgkgIERvbid0IHJlZmVyIHRvIGZ1bmN0aW9ucyB0aGF0IGRvbid0IGV4aXN0IGluIGRvY3MsIGl0J3MKCSAgdW5oZWxwZnVsLgoKMjAwOC0wNy0xMiAxNzo1MToxNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBGaXggc2Nhbm5pbmcgb2YgcGF0aHMgZ2l2ZW4gdmlhIC0tZ3N0LXBsdWdpbi1wYXRoLiBGaXhlcyBidWcgIzU0MjE3NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggc2Nhbm5pbmcgb2YgcGF0aHMgZ2l2ZW4gdmlhIC0tZ3N0LXBsdWdpbi1wYXRoLiBGaXhlcyBidWcgIzU0MjE3NS4KCjIwMDgtMDctMTIgMTc6NDM6MTUgKzAwMDAgIHRtYXR0aCA8bGUuYnVzaW5lc3NtYW5AZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IERvbid0IHVzZSBhbiB1bmRlY2xhcmVkIHZhcmlhYmxlIGluIHRoZSBleGFtcGxlIHByb2dyYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogdG1hdHRoIDxsZSBkb3QgYnVzaW5lc3NtYW4gYXQgZ21haWwgZG90IGNvbT4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgRG9uJ3QgdXNlIGFuIHVuZGVjbGFyZWQgdmFyaWFibGUgaW4gdGhlIGV4YW1wbGUgcHJvZ3JhbS4KCSAgRml4ZXMgYnVnICM1NDI1NzMuCgoyMDA4LTA3LTEyIDA5OjU5OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBTcXVlZXplIGdob3N0LXBhZCBsaW5rcyBhbmQgcmVtb3ZlIDw+IGZyb20gY2xhc3NuYW1lIGxhYmVscyB0byBzYXZlIG1vcmUgaG9yaXpvbnRhbCBzcGFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgU3F1ZWV6ZSBnaG9zdC1wYWQgbGlua3MgYW5kIHJlbW92ZSA8PiBmcm9tIGNsYXNzbmFtZSBsYWJlbHMgdG8gc2F2ZQoJICBtb3JlIGhvcml6b250YWwgc3BhY2UuCgoyMDA4LTA3LTExIDE5OjMwOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBHaXZlIHJlcXVlc3QgYW5kIHNvbWV0aW1lcyBwYWRzIGEgZGlmZmVyZW50IHNocGUgc3R5bGUuIENvbmRlbnNlIHRoZSBncmFwaHMgYSBsaXR0bGUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgR2l2ZSByZXF1ZXN0IGFuZCBzb21ldGltZXMgcGFkcyBhIGRpZmZlcmVudCBzaHBlIHN0eWxlLiBDb25kZW5zZSB0aGUKCSAgZ3JhcGhzIGEgbGl0dGxlIG1vcmUuCgoyMDA4LTA3LTEwIDAwOjMwOjAyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHJlcXVpcmUgZmxleCBhbmQgYmlzb24gaWYgdGhlIHBhcnNlciBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCByZXF1aXJlIGZsZXggYW5kIGJpc29uIGlmIHRoZSBwYXJzZXIgaXMgZGlzYWJsZWQuCgoyMDA4LTA3LTA4IDExOjIwOjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoX2xpc3RfZmluZF9zb3J0ZWRfY3VzdG9tKToKCSAgRG9uJ3QgdXNlIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0ZW1lbnRzLgoKMjAwOC0wNy0wOCAwOTowNDoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogQWRkIEZJWE1FcyBmb3IgMC4xMSB0byB1c2UgR1NUX1RZUEVfT0JKRUNUIGluIHRoZSBzaWduYXR1cmUgb2YgdGhlIHRoZSBjaGlsZC1hZGRlZCAvIC1yZW1vdmVkIHNpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KToKCSAgQWRkIEZJWE1FcyBmb3IgMC4xMSB0byB1c2UgR1NUX1RZUEVfT0JKRUNUIGluIHRoZSBzaWduYXR1cmUKCSAgb2YgdGhlIHRoZSBjaGlsZC1hZGRlZCAvIC1yZW1vdmVkIHNpZ25hbHMgYXMgR3N0Q2hpbGRQcm94eQoJICBvbmx5IHN1cHBvcnRzIEdzdE9iamVjdHMuCgoyMDA4LTA3LTA3IDExOjAxOjI2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogRml4IG1lbWxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IG1lbWxlYWsKCjIwMDgtMDctMDYgMTI6NDk6NDMgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdHBvbGwuYzogRml4ICJpZ25vcmVkIHJldHVybiB2YWx1ZSIgY29tcGlsZXIgd2FybmluZyB3aXRoIG5ld2VyIGdsaWJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBGaXggImlnbm9yZWQgcmV0dXJuIHZhbHVlIiBjb21waWxlciB3YXJuaW5nIHdpdGggbmV3ZXIgZ2xpYmMuCgoyMDA4LTA3LTA1IDE2OjI4OjI4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBGaXggY29weSZwYXN0ZSBlcnJvciBpbiBnc3RfY2hpbGRfcHJveHlfcmVtb3ZlZCgpIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIEZpeCBjb3B5JnBhc3RlIGVycm9yIGluIGdzdF9jaGlsZF9wcm94eV9yZW1vdmVkKCkgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMDIgMTQ6NDM6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFByaW50IGVycm9yIGRlYnVnIG1lc3NhZ2UgaWYgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzZXQgYXJlIE5VTEwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKENIRUNLX1BMVUdJTl9ERVNDX0ZJRUxEKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgUHJpbnQgZXJyb3IgZGVidWcgbWVzc2FnZSBpZiBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGRzIHRoYXQgc2hvdWxkCgkgIGJlIHNldCBhcmUgTlVMTC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9jb25zdF9zdHJpbmcpOgoJICBEb24ndCBjcmFzaCBpZiB0aGUgc3RyaW5nIHRvIHNlcmlhbGlzZSBpcyBOVUxMIChpdCByZWFsbHkgc2hvdWxkCgkgIG5vdCBiZSwgYnV0IGFwcGFyZW50bHkgdGhpcyB1c2VkIHRvIHdvcmsgd2l0aCB0aGUgeG1sIHJlZ2lzdHJ5IC4uLikuCgoyMDA4LTA3LTAyIDEyOjIzOjEyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEZpeCBwYXJzaW5nIG9mIGxvZyBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgRml4IHBhcnNpbmcgb2YgbG9nIG1lc3NhZ2VzCgoyMDA4LTA3LTAxIDA5OjI3OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBTb3J0IGFscGhhYmV0aWNhbGx5IHNvIG1ha2UgY2hlY2stZXhwb3J0cyBkb2Vzbid0IGJhcmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjo6CgkgIFNvcnQgYWxwaGFiZXRpY2FsbHkgc28gbWFrZSBjaGVjay1leHBvcnRzIGRvZXNuJ3QgYmFyZi4KCjIwMDgtMDctMDEgMDU6NTM6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBVc2UgZ3N0X2Zvcm1hdF9nZXRfbmFtZSgpIHRvIGltcHJvdmUgZGVidWcgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgVXNlIGdzdF9mb3JtYXRfZ2V0X25hbWUoKSB0byBpbXByb3ZlIGRlYnVnIG91dHB1dC4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFJlbW92ZSAjaWZkZWYnZWQgY29kZS4gQWRkIFRPRE8gY29tbWVudC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGQgZGVidWcgb3V0cHV0IHRvIGVhc2Ugc3BvdHRpbmcgZm9ybWF0ICE9IHNlZ21lbnQuZm9ybWF0IGFzc2VydGlvbnMuCgoyMDA4LTA2LTMwIDA5OjQyOjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBBbHNvIGVuYWJsZSB0aGUgR0RQIHVuaXQgdGVzdCBhZ2FpbiBvbiBQUEMgbm93IHRoYXQgdGhlIGJ1ZyBpcyBmaXhlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIEFsc28gZW5hYmxlIHRoZSBHRFAgdW5pdCB0ZXN0IGFnYWluIG9uIFBQQyBub3cgdGhhdCB0aGUgYnVnCgkgIGlzIGZpeGVkLgoKMjAwOC0wNi0zMCAwOTozODo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBEb24ndCB3cml0ZSB0byB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IGFzIGEgdWludDY0IGFuZCB1aW50MTYgYXMgdGhpcyBicmVha3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgRG9uJ3Qgd3JpdGUgdG8gdGhlIHNhbWUgcmVnaW9uIG9mIG1lbW9yeSBhcyBhIHVpbnQ2NCBhbmQgdWludDE2CgkgIGFzIHRoaXMgYnJlYWtzIHN0cmljdCBhbGlhc2luZyBydWxlcyBhbmQgYXBwYXJhbnRseSBicmVha3Mgb24gUFBDCgkgIGFuZCBzMzkwLiBUaGFua3MgdG8gU2pvZXJkIFNpbW9ucyBmb3IgYW5hbHlzaW5nLiBGaXhlcyBidWcgIzM0ODExNC4KCjIwMDgtMDYtMjkgMTY6MTE6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogT3B0aW1pemUgbGlzdCBoYW5kbGluZy4gVXNlIG93biBmaW5kIGZ1bmN0aW9uLiBFeHBsb2l0IHRoYXQgZmFjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIE9wdGltaXplIGxpc3QgaGFuZGxpbmcuIFVzZSBvd24gZmluZCBmdW5jdGlvbi4gRXhwbG9pdCB0aGF0IGZhY3QgdGhhdAoJICB0aGUgbGlzdCBpcyBzb3J0ZWQuIEFsc28gcGFzcyBiYWNrIHRoZSBub2RlIGJlZm9yZSwgc28gdGhhdCB3ZSBjYW4KCSAgaW5zZXJ0IHF1aWNrbHkuIEhhdmUgYSBmYXN0IHBhdGggZm9yIGFwcGVuZC4KCjIwMDgtMDYtMjkgMTU6MDA6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduLzogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgRml4IHR3byB0eXBvcy4KCjIwMDgtMDYtMjcgMDk6MDI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBTaG93IGNvbmZpZ3VyYXRpb24gc3VtYXJ5IGFmdGVyIGNvbmZpZ3VyZSBydW4uIEJhc2VkIG9uIHBhdGNoIGJ5CgkgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4uIEZpeGVzOiAjNTQwMTM0CgoyMDA4LTA2LTI3IDA3OjAzOjA1ICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IEFkZCBzY2FsZSBmYWN0b3IgZm9yIHBkZiBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEFkZCBzY2FsZSBmYWN0b3IgZm9yIHBkZiBvdXRwdXQuCgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgU3dpdGNoZWQgc2VjdGlvbnMgInBhZHMiIGFuZCAiYmlucyIgYW5kIGFkZGVkIGEgcGlwZWxpbmUgZGlhZ3JhbS4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBBZGRlZCBtb3JlIGluZm8gb24gZ3N0cmVhbWVyLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBDb21tZW50ZWQgb3V0IHRoZSB3aG9sZSBzZWN0aW9uICJjdXJyZW50IHByb2JsZW0iLCB3aGljaCBzb3VuZHMKCSAgaGlzdG9yaWNhbCBhbmQgc29tZWhvdyBvc29sZXRlOyBpdCBjb3VsZCBiZSB0dXJuZWQgaW4gYSBwb3NpdGl2ZQoJICB3YXkgYW5kIHJldXNlZCB0byBpbXByb3ZlIHRoZSBkZXNpZ24gcHJpbmNpcGxlcy4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgLSBVcGRhdGUgVVJMcyB0byBsaWJyYXJ5Lmdub21lLm9yZy4KCSAgLSBEbyBub3QgbWVudGlvbiBHVEsrIGluIHByZWxpbWluYXJ5IHJlYWRpbmcgKGlycmVsZXZhbnQpLgoJICAtIE1lbnRpb24gUGx1Z2luIFdyaXRlcidzIE1hbnVhbCBhbmQgZnVydGhlciByZWFkaW5nIG9ubHkgaW4gdGhlCgkgIHByZXZpb3VzIHNlY3Rpb24uCgkgIC0gQWRkZWQgYSBsaXN0IG9mIG1vc3QgcmVsZXZhbnQgR09iamVjdC9nbGliIHRvcGljcy4KCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1naG9zdC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtZ2hvc3QucG5nOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QucG5nOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQtbXVsdGkuZmlnOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LW11bHRpLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMuZmlnOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvcXVldWUuZmlnOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zaW1wbGUtcGxheWVyLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zaW5rLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL3NpbmstZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvc3JjLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL3NyYy1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJICBSZW1vdmVkIC5maWcsIGFkZGVkIC5wbmcgY291bnRlcnBhcnQuCgkgIEZpeGVzOiAjNTM5MTM3CgoyMDA4LTA2LTI2IDIwOjI3OjAwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IHJldmVydCBleHRyYS1zaXplLWJ1ZmZlcnMgc3R1ZmYsIGNhdXNlZCBzb21lIHJhY2UgY29uZGl0aW9ucyBhbmQgZXh0cmEtc2l6ZS1idWZmZXJzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICByZXZlcnQgZXh0cmEtc2l6ZS1idWZmZXJzIHN0dWZmLCBjYXVzZWQgc29tZSByYWNlIGNvbmRpdGlvbnMKCSAgYW5kIGV4dHJhLXNpemUtYnVmZmVycyBpcyBub3QgdXNlZCBhbnltb3JlLiBEb2NzIG5lZWRzIHNvbWUgdXBkYXRlcwoKMjAwOC0wNi0yNiAxMjo1Mjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSB3aW4zMiBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgVXBkYXRlIHdpbjMyIGZpbGVzLgoKMjAwOC0wNi0yNiAxMjoyNDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IEFkZCBtaXNzaW5nIFNpbmNlJyBtYXJrZXJzIHRvIGd0ay1kb2MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOiAoR3N0RGVidWdHcmFwaERldGFpbHMpLAoJICAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSk6CgkgIEFkZCBtaXNzaW5nIFNpbmNlJyBtYXJrZXJzIHRvIGd0ay1kb2MgYmx1cmJzLgoKMjAwOC0wNi0yNiAxMTo1OTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiBBZGQgc29tZSBtb3JlIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChzZXRfY2Fwc19jdDIpLCAodHJhbnNmb3JtX2N0MiksICh0cmFuc2Zvcm1fY2Fwc19jdDIpLAoJICAodHJhbnNmb3JtX3NpemVfY3QyKSwgKGJ1ZmZlcl9hbGxvY19jdDIpOgoJICBBZGQgc29tZSBtb3JlIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoKMjAwOC0wNi0yNSAxNzoyNzozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvOiBNb3JlIHRlc3RzLCBwcmVwYXJlIGZvciB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAocmVzdWx0X2J1ZmZlcl9hbGxvYyksIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksCgkgIChnc3RfdGVzdF90cmFuc19wdXNoKSwgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoc2V0X2NhcHNfY3QyKSwgKHRyYW5zZm9ybV9jdDIpLCAodHJhbnNmb3JtX2NhcHNfY3QyKSwKCSAgKHRyYW5zZm9ybV9zaXplX2N0MiksIChidWZmZXJfYWxsb2NfY3QyKSwKCSAgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgTW9yZSB0ZXN0cywgcHJlcGFyZSBmb3IgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgoyMDA4LTA2LTI1IDE1OjM5OjAyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IEZpeCBkZWFkLWxvY2sgaW4gdW5kZXJydW5fY2IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIEZpeCBkZWFkLWxvY2sgaW4gdW5kZXJydW5fY2IKCjIwMDgtMDYtMjUgMTQ6NDk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IEZpeCBkZXZpY2Ugb3Blbi9jbG9zZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIEZpeCBkZXZpY2Ugb3Blbi9jbG9zZSBkb2NzLgoKMjAwOC0wNi0yNSAxNDo0NzoxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBNZW50aW9uIGJ1Z251bWJlciBmb3IgbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWdudW1iZXIgZm9yIGxhc3QgY29tbWl0LgoKMjAwOC0wNi0yNSAxNDo0NDo1MiArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvbWFudWFsLnhtbDogLSBSZW9yZ2FuaXNlZCB0aGUgcHJldmlvdXMgImludHJvZHVjdGlvbiIgYnVuZGxlIGludG8gRm9yZXdvcmQsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAtIFJlb3JnYW5pc2VkIHRoZSBwcmV2aW91cyAiaW50cm9kdWN0aW9uIiBidW5kbGUgaW50byBGb3Jld29yZCwKCSAgSW50cm9kdWN0aW9uLCBhbmQgQWJvdXQgR1N0cmVhbWVyLiBUaGUgdHdvIGZpcnN0IGFyZSA8cHJlZmFjZT4KCSAgZG9jYm9vayBlbGVtZW50cy4gVGhlIGxhdGVyIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBib29rLgoJICAtIGFkZGVkIGludHJvLWdzdHJlYW1lci54bWwgKGNvbnRlbnQgcGFydGlhbGx5IGZyb20KCSAgaW50cm8tcHJlZmFjZS54bWwpCgkgIC0gbW92ZWQgYXBwZW5kaXgtd2luMzIueG1sIGludG8gYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sCgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6IGdzdHJlYW1lciBzZWN0aW9uIG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDogLi4uaGVyZS4gbmV3IGZpbGUuCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOiByZW1vdmVkIGZpbGUuIENvbnRlbnQgbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6IC4uLmhlcmUuCgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOiBzZWN0aW9uIGFib3V0IEdzdEVkaXRvciBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6IC4uLmhlcmUuCgoyMDA4LTA2LTI1IDE0OjMyOjUzICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IC0gRXhwbGljaXRlbHkgaW5jbHVkZSBnbGliLmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQuZmlnOgoJICAtIEV4cGxpY2l0ZWx5IGluY2x1ZGUgZ2xpYi5oLgoJICAtIERvIG5vdCB1c2UgZ2xvYmFsIHZhcmlhYmxlcy4KCSAgLSBVc2UgZ19wcmludGVycigpIGluc3RlYWQgb2YgZ19wcmludCgpLgoJICAtIE1pbm9yIGZvcm1hdGluZy9yZW5hbWluZyB0byBpbmNyZWFzZSByZWFkaWJpbGl0eS4KCSAgLSBSZW5hbWVkIG5ld19wYWQoKSB0byBvbl9wYWRfYWRkZWQoKQoJICAtIEltcHJvdmVkIGV4cGxlbmF0b3J5IGNvbW1lbnRzLgoJICAtIHJlbmFtZWQgb2dnIHBhcnNlciB0byBvZ2cgZGVtdXhlcgoJICAtIFVzZSAiYXV0b2F1ZGlvc2luayIgaW5zdGVhZCBvZiAiYWxzYXNpbmsiLgoJICBGaXhlczogIzUzODYxOQoKMjAwOC0wNi0yNSAxNDoyNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBSZW1vdmUgY3ZzIGNvbmZsaWN0IG1hcmtlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBSZW1vdmUgY3ZzIGNvbmZsaWN0IG1hcmtlci4KCjIwMDgtMDYtMjUgMTQ6MjU6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBEb2N1bWVudCB0aGF0IGZvciBwbGdpbi1kb2NzIHdlIGV4dHJheHQgaGUgc2hvcnQtZGVzYyBmcm9tIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBEb2N1bWVudCB0aGF0IGZvciBwbGdpbi1kb2NzIHdlIGV4dHJheHQgaGUgc2hvcnQtZGVzYyBmcm9tIHRoZSBlbGVtZW50CgkgIGRldGFpbHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBUZWxsIHRoYXQgZGV2aWNlcyBzaG91bGQgYmUgY2xvc2VkIGluIFBBVVNFRCAtPiBSRUFEWS4KCSAgKiBkb2NzL21hbnVhbC9SRUFETUU6CgkgIERvY3VtZW50IGhvdyB0ZXN0cyBpbiB0aGUgbWFudWFsIGFyZSBoYW5kbGVkLgoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIFR5cG8gaW4gY29tbWVudC4KCjIwMDgtMDYtMjUgMTE6NTA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE9ubHkgY2FyZSBhYm91dCBsYXRlbmN5IG1pbiBhbmQgbWF4IHdoZW4gdGhlIHNpbmsgaXMgYWN0dWFsbHkgYSBsaXZlIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpOgoJICBPbmx5IGNhcmUgYWJvdXQgbGF0ZW5jeSBtaW4gYW5kIG1heCB3aGVuIHRoZSBzaW5rIGlzIGFjdHVhbGx5IGEgbGl2ZQoJICBzaW5rLgoKMjAwOC0wNi0yNSAxMDo1Mzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBBZGQgbm90ZXMgYWJvdXQgd2h5IHRyYW5zZm9ybSBuZWVkcyB0byBrbm93IGlucHV0L291dHB1dCBzaXplcy4KCSAgQWRkIHNvbWUgaXNzdWVzIHRoYXQgbmVlZCB0byBiZSBzb2x2ZWQuCgkgIEFkZCBzb21lIG1vcmUgdXNlIGNhc2VzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKHJlc3VsdF9idWZmZXJfYWxsb2MpLCAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgQWRkIHN1cG9ydCBmb3IgZGlmZmVyZW50IHBhZCB0ZW1wbGF0ZXMgYW5kIGJ1ZmZlci1hbGxvYy4KCSAgQWRkIG1vcmUgY2hlY2tzIGZvciBjYXBzIGFuZCBidWZmZXItYWxsb2MuCgkgIEFkZCBjaGVja3MgZm9yIHByb3h5IGJ1ZmZlciBhbGxvYy4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgY29weSB0cmFuc2Zvcm0uCgoyMDA4LTA2LTI0IDE5OjU2OjUxICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IFR5cG8gYW5kIGZvcm1hdHRpbmcgZml4ZXMgKCM1Mzg1OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICBUeXBvIGFuZCBmb3JtYXR0aW5nIGZpeGVzICgjNTM4NTk0KS4KCjIwMDgtMDYtMjQgMDc6NDk6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBGaXggc29tZSBtZW1vcnkgbGVha3MgYW5kIHVzZXMgb2Ygb2JqZWN0IGluc3RhbmNlcyB0aGF0IHdlIGRvbid0IGFjdHVhbGx5IG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBzb21lIG1lbW9yeSBsZWFrcyBhbmQgdXNlcyBvZiBvYmplY3QgaW5zdGFuY2VzIHRoYXQgd2UgZG9uJ3QKCSAgYWN0dWFsbHkgb3duLgoKMjAwOC0wNi0yMiAxOToxOTozNSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBBZGQgZnVuY3Rpb25hbGl0eSB0byBleHRyYS1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgZnVuY3Rpb25hbGl0eSB0byBleHRyYS1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuCgoyMDA4LTA2LTIyIDE0OjM1OjEzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IHVwZGF0ZSB0aGUgY3VyX3RpbWUgb24gR1NUX0NMT0NLX1RJTUVfTk9ORSAoIzUzNzgwNCkgYW5kIGRvbid0IGFjdGl2YXRlIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBEb24ndCB1cGRhdGUgdGhlIGN1cl90aW1lIG9uIEdTVF9DTE9DS19USU1FX05PTkUgKCM1Mzc4MDQpIGFuZCBkb24ndAoJICBhY3RpdmF0ZSB0aGUgcGFkcyBpZiB0aGV5IGFyZSBhZGRlZCBpbiBTVEFURV9OVUxMLgoKMjAwOC0wNi0yMSAyMToyMDoxMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2MKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFQSTogZ3N0X2NoZWNrX3RlYXJkb3duX3BhZF9ieV9uYW1lCgoyMDA4LTA2LTIxIDE5OjQ4OjUzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWxzbyBzZXR1cCByZXF1ZXN0IHBhZHMgYW5kIGFsbG93IHNldHVwIHBhZHMgYnkgbmFtZSAoIzUzNzgxMikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBbHNvIHNldHVwIHJlcXVlc3QgcGFkcyBhbmQgYWxsb3cgc2V0dXAgcGFkcyBieSBuYW1lICgjNTM3ODEyKQoJICBBUEk6IGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUKCSAgQVBJOiBnc3RfY2hlY2tfc2V0dXBfc2lua19wYWRfYnlfbmFtZQoKMjAwOC0wNi0yMCAyMTowODo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IFVzZSBIQVZFX1ZBTEdSSU5EX0ggc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBVc2UgSEFWRV9WQUxHUklORF9IIHNvbWUgbW9yZS4KCjIwMDgtMDYtMjAgMTY6Mjk6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc2NyaXB0cy9jdnMtdXBkYXRlLnNoOiBQYXNzIGFyZ3VtZW50cyB0byBtYWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIFBhc3MgYXJndW1lbnRzIHRvIG1ha2UuCgkgIFJ1biBhdXRvcmVnZW4uc2ggaWYgTWFrZWZpbGUgaXMgbm90IHRoZXJlLgoKMjAwOC0wNi0yMCAxNTo1NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBEb24ndCBhc3N1bWUgdGhhdCA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4gZXhpc3RzIGp1c3QgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRG9uJ3QgYXNzdW1lIHRoYXQgPHZhbGdyaW5kL3ZhbGdyaW5kLmg+IGV4aXN0cyBqdXN0IGJlY2F1c2UKCSAgdGhlIGJpbmFyeSBpcyB0aGVyZS4KCjIwMDgtMDYtMjAgMTI6MDY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBzb21lIHRlc3QgYmFzZXRyYW5zZm9ybSBlbGVtZW50IGFuZCB0aGUgYmVnaW5uaW5ncyBvZiB2YXJpb3VzIHVuaXQgdGVzdHMgZm9yIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChnc3RfdGVzdF90cmFuc19pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX3NldF9kYXRhKSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRyYW5zZm9ybV9pcF8xKSwgKHNldF9jYXBzXzEpLCAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0IGJhc2V0cmFuc2Zvcm0gZWxlbWVudCBhbmQgdGhlIGJlZ2lubmluZ3Mgb2YgdmFyaW91cwoJICB1bml0IHRlc3RzIGZvciBpdC4KCjIwMDgtMDYtMjAgMTE6MjQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBJbmNyZWFzZSBjb2RlIHJlYWRhYmlsaXR5LgoJICBEb24ndCB0cnkgdG8gY29tcGFyZSBidWZmZXIgb2Zmc2V0cyB3aGVuIHRoZXIgYXJlIGludmFsaWQuCgoyMDA4LTA2LTIwIDExOjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3Qgc29tZSBtb3JlIGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBzb21lIG1vcmUgZGVzaWduIGRvY3MuCgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIFNtYWxsIGFkZGl0aW9uOiBnb29kIHBsdWdpbnMgbXVzdG4ndCBoYXZlIGZ1bmN0aW9uYWwgY29kZQoJICB3aXRoaW4gYXNzZXJ0aW9uIG1hY3Jvcy4KCjIwMDgtMDYtMjAgMTA6MzI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OiBTb21lIGlkZWFzIGFib3V0IGEgZnJhbWVzdGVwIEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBTb21lIGlkZWFzIGFib3V0IGEgZnJhbWVzdGVwIEFQSQoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBTdGFydCBkZXNpZ24gYW5kIHVzZSBjYXNlcyBmb3IgYmFzZXRyYW5zZm9ybSBpbiBvcmRlciB0byBnZXQgaXQKCSAgZml4ZWQgc29vbi4KCjIwMDgtMDYtMjAgMTA6MjA6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1ha2UgaXQga25vd24gdGhhdCBnc3RfYnVzX3BvbGwoKSBpcyBwdXJlIGV2aWwgKGZpeGVzICM1Mzg4MTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIE1ha2UgaXQga25vd24gdGhhdCBnc3RfYnVzX3BvbGwoKSBpcyBwdXJlIGV2aWwgKGZpeGVzICM1Mzg4MTApLgoKMjAwOC0wNi0yMCAxMDoxNDo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFJlbW92ZSBzaG9ydF9kZXNjcmlwdGlvbi4gQWRkIGJhc2ljIGRvY3MgZm9yIGdzdHR5cGVmaW5kZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmVtb3ZlIHNob3J0X2Rlc2NyaXB0aW9uLiBBZGQgYmFzaWMgZG9jcyBmb3IgZ3N0dHlwZWZpbmRlbGVtZW50LgoJICBTaW1wbGlmeSBtYXJrdXAgZm9yIGZha2VzcmMvZmRzcmMuCgoyMDA4LTA2LTIwIDEwOjA3OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBZGRlZCBTaW5jZSBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgIEFkZGVkIFNpbmNlIGRvYy4KCjIwMDgtMDYtMjAgMTA6MDI6MTQgKzAwMDAgIGpvZWwgbGFyc3NvbiA8dGlsbGpvZWxAZ21haWwuY29tPgoKCSAgQWRkIHRpbWVvdXQgcHJvcGVydHkgbGlrZSB1ZHBzcmMuIEZpeGVzICM1Mzg2MjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogam9lbCBsYXJzc29uIDx0aWxsam9lbCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgQWRkIHRpbWVvdXQgcHJvcGVydHkgbGlrZSB1ZHBzcmMuIEZpeGVzICM1Mzg2MjguCgkgIEFkZCBzb21lIG1vcmUgZG9jcyBhbmQgZXhhbXBsZSBwaXBlbGluZXMuCgoyMDA4LTA2LTIwIDA4OjU0OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBhbGxvdyBzaW5rcyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgZGVsYXkgYmV0d2VlbiB0aGUgc3luYyB0aW1lcyBhbmQgdGhlIGFjdHVhbCByZW5kZXJpbmcgb2YgdGhlIGRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksIChnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcmVuZGVyX2RlbGF5KSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbWV0aG9kIHRvIGFsbG93IHNpbmtzIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBkZWxheSBiZXR3ZWVuIHRoZSBzeW5jCgkgIHRpbWVzIGFuZCB0aGUgYWN0dWFsIHJlbmRlcmluZyBvZiB0aGUgZGF0YS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X3JlbmRlcl9kZWxheSgpCgoyMDA4LTA2LTIwIDA4OjQ1OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIG51bWJlciBiYWNrIHRvIGRldiAtPiAwLjEwLjIwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbnVtYmVyIGJhY2sgdG8gZGV2IC0+IDAuMTAuMjAuMQoKMjAwOC0wNi0yMCAwODozOTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgR1NUX1RBR19BVFRBQ0hNRU5UIGZvciBnZW5lcmljIGZpbGUgYXR0YWNobWVudHMgdG8gc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBBZGQgR1NUX1RBR19BVFRBQ0hNRU5UIGZvciBnZW5lcmljIGZpbGUgYXR0YWNobWVudHMgdG8gc3RyZWFtcy4KCSAgRml4ZXMgYnVnICM1Mzg1NjguCgoyMDA4LTA2LTIwIDA4OjM2OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogUmV2ZXJ0IG9uZSBjaGFuZ2UsIHRoYXQgbWFrZSByZXQgdmFsdWUgcG9zc2libGUgdW5pbml0aWFsaXplZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIFJldmVydCBvbmUgY2hhbmdlLCB0aGF0IG1ha2UgcmV0IHZhbHVlIHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQuCgoyMDA4LTA2LTIwIDA4OjMyOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVXNlIGZyZWV6ZS90aGF3IG5vdGlmeSB0byBzeW5jIG5vdGlmeSBlbWlzc2lvbiBhIGJpdCAoaXRzIGFsc28gbW9yZSBlZmZpY2llbnQpLiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIFVzZSBmcmVlemUvdGhhdyBub3RpZnkgdG8gc3luYyBub3RpZnkgZW1pc3Npb24gYSBiaXQgKGl0cyBhbHNvIG1vcmUKCSAgZWZmaWNpZW50KS4gTW92ZSBkZWJ1ZyBvdXRwdXQgdG8gTE9HIChpcyBjYWxsZWQgYSBsb3QgaW4gYSBsb29wKS4KCSAgQWx3YXlzIHVuc2V0IGdfdmFsdWVzIGlmIHRoZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQuCgoyMDA4LTA2LTIwIDA4OjI4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJZiB3ZSBoYXZlIG5vdCBzZWVuIGEgYnVmZmVyIGJlZm9yZSBFT1MsIHVzZSB0aGUgc2VnbWVudCB2YWx1ZXMgdG8gcmVwb3J0IHRoZSBjdXJyZW50IHBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgSWYgd2UgaGF2ZSBub3Qgc2VlbiBhIGJ1ZmZlciBiZWZvcmUgRU9TLCB1c2UgdGhlIHNlZ21lbnQgdmFsdWVzIHRvCgkgIHJlcG9ydCB0aGUgY3VycmVudCBwb3NpdGlvbiBpbnN0ZWFkIG9mIGludmFsaWQgcG9zaXRpb25zLgoKMjAwOC0wNi0yMCAwODoyMTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0wNi0yMCAwODoxNzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV3cml0ZSBoYW5kbGluZyBvZiBkZWZhdWx0IHZhbHVlcy4gRml4IG92ZXJmbG93IHdpdGggdW5zaWduZWQgdHlwZXMgaW4gbGluZWFyIGludGVycG9sYXRpb24uIFJlbW92ZSBub3cgb2Jzb2xldGUgX2ZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgUmV3cml0ZSBoYW5kbGluZyBvZiBkZWZhdWx0IHZhbHVlcy4gRml4IG92ZXJmbG93IHdpdGggdW5zaWduZWQgdHlwZXMKCSAgaW4gbGluZWFyIGludGVycG9sYXRpb24uIFJlbW92ZSBub3cgb2Jzb2xldGUgX2ZpcnN0X3ZhbHVlKCkgZnVuY3Rpb24uCgkgIEFkZCBtb3JlIHRlc3RzLiBGaXhlcyAjNTM4MjAxLgoKMjAwOC0wNi0yMCAwODoxNDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGQgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIEFkZCBkZWJ1ZyBpbmZvLgoJICBXaGVuIGEgYnVmZmVyIGlzIHdyaXRhYmxlLCBpdHMgbWV0YWRhdGEgaXMgYWxzbyB3cml0YWJsZSBzbyB3ZSBkb24ndAoJICBuZWVkIHRvIHN1YmJ1ZmZlciAod2hpY2ggdGhlbiBtYWtlcyB0aGUgYnVmZmVyIG5vdC13cml0YWJsZSBhbnltb3JlKS4KCj09PSByZWxlYXNlIDAuMTAuMjAgPT09CgoyMDA4LTA2LTE4IDEwOjU4OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMAoKMjAwOC0wNi0xOCAxMDo1NjoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wNi0xMSAyMToxNDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMTkuMyBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMTkuMyBwcmUtcmVsZWFzZQoKMjAwOC0wNi0xMSAyMDowNzozMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBSZW5hbWUgREFUQURJUiB0byBHU1RfREFUQURJUiB0byBhdm9pZCBidWlsZCBwcm9ibGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBSZW5hbWUgREFUQURJUiB0byBHU1RfREFUQURJUiB0byBhdm9pZCBidWlsZCBwcm9ibGVtcwoJICBvbiB3aW4zMi4gUGF0Y2ggQnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoJICBGaXhlczogIzUzNjg1NwoKMjAwOC0wNi0wNSAxMDoxMzo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBFeHBsaWNpdGVseSBsaW5rIHdpdGggLWxkbCBpZiBkbGFkZHIoKSBpcyBmb3VuZCB0aGVyZS4gQmVmb3JlIGl0IHdhcyBpbXBsaWNpdGVseSBsaW5rZWQgYnkgdGhlIGdtb2R1bGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRXhwbGljaXRlbHkgbGluayB3aXRoIC1sZGwgaWYgZGxhZGRyKCkgaXMgZm91bmQgdGhlcmUuIEJlZm9yZSBpdCB3YXMKCSAgaW1wbGljaXRlbHkgbGlua2VkIGJ5IHRoZSBnbW9kdWxlIHBrZ2NvbmZpZyBmaWxlIGJ1dCBpbiBnbGliIDIuMTcuMAoJICAtbGRsIGhhcyBtb3ZlZCBmcm9tIExpYnMgdG8gTGlicy5wcml2YXRlLiBGaXhlcyBidWcgIzUzNjc0NC4KCjIwMDgtMDYtMDUgMDk6NDI6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBQdXQgcHJlLXJlbGVhc2UgY2hhbmVnbG9nIGVudHJ5IHdoZXJlIGl0IGFjdHVhbGx5IGhhcHBlbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQdXQgcHJlLXJlbGVhc2UgY2hhbmVnbG9nIGVudHJ5IHdoZXJlIGl0IGFjdHVhbGx5IGhhcHBlbmVkCgoyMDA4LTA2LTA1IDA5OjQxOjI1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4xOS4yIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4xOS4yIHByZS1yZWxlYXNlCgoyMDA4LTA2LTA1IDA4OjU1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IEZpeCB0eXBvIChzcG90dGVkIGJ5IEZhYnJpY2lvIEdvZG95LCAjNTM2NzIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEZpeCB0eXBvIChzcG90dGVkIGJ5IEZhYnJpY2lvIEdvZG95LCAjNTM2NzIzKS4KCjIwMDgtMDYtMDQgMTE6NDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBzb21lIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCksIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKToKCSAgQWRkIHNvbWUgZGVidWcuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBpbnZhbGlkIFFvUyBtZXNzYWdlcy4KCjIwMDgtMDYtMDQgMTE6MzE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogQWRkIHNvbWUgYXNzZXJ0IGFuZCBkb2NzIGZvciBpbnZhbGlkIGlucHV0IHRvIHRoZSBxb3MgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19xb3MpOgoJICBBZGQgc29tZSBhc3NlcnQgYW5kIGRvY3MgZm9yIGludmFsaWQgaW5wdXQgdG8gdGhlIHFvcyBmdW5jdGlvbi4KCjIwMDgtMDUtMzAgMTU6NDg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFRoZSByZXBvcnRlZCBwb3NpdGlvbiBtdXN0IGFsd2F5cyBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhc3Qgc2VlbiB0aW1lc3RhbXBzIChvciB0aW1lc3RhbXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFRoZSByZXBvcnRlZCBwb3NpdGlvbiBtdXN0IGFsd2F5cyBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhc3Qgc2VlbgoJICB0aW1lc3RhbXBzIChvciB0aW1lc3RhbXAgKyBkdXJhdGlvbiBmb3IgcmV2ZXJzZSkuCgoyMDA4LTA1LTMwIDA3OjM2OjE3ICswMDAwICBSb2IgQnJhZGZvcmQgPHJvYkByb2JzdGVyLm9yZy51az4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBEb24ndCByZWN1cnNlIGludG8gLmRlYnVnIGRpcmVjdG9yaWVzIGFzIHNvbWUgZGlzdHJvcyBpbnN0YWxsIHRoZSBkZWJ1Z2dpbmcgc3ltYm9scyBuZXh0IHRvIHRoZSBwbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYiBCcmFkZm9yZCA8cm9iIGF0IHJvYnN0ZXIgZG90IG9yZyBkb3QgdWs+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgRG9uJ3QgcmVjdXJzZSBpbnRvIC5kZWJ1ZyBkaXJlY3RvcmllcyBhcyBzb21lIGRpc3Ryb3MgaW5zdGFsbAoJICB0aGUgZGVidWdnaW5nIHN5bWJvbHMgbmV4dCB0byB0aGUgcGx1Z2lucyBpbiAuZGVidWcgZGlyZWN0b3JpZXMKCSAgYW5kIGRsb3BlbigpIGNyYXNoZXMgb24gdGhlbSBzb21ldGltZXMuIEZpeGVzIGJ1ZyAjNTA4MDcwLgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbm90IHJlY3Vyc2UgaW50byBkaXJlY3RvcmllcyBhdCBhbGwgYmVjYXVzZQoJICBpdCdzIHZlcnkgaW5jb25zaXN0ZW50IHRvIHRoZSBiZWhhdmlvdXIgb2Ygb3RoZXIgUEFUSCBlbnZpcm9ubWVudAoJICB2YXJpYWJsZXMuCgoyMDA4LTA1LTI5IDE2OjM0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggcG9zaXRpb24gcXVlcnkgcmFuZ2UgY2hlY2tzIGluIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZpeCBwb3NpdGlvbiBxdWVyeSByYW5nZSBjaGVja3MgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDgtMDUtMjkgMDc6MTk6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIGFzIGl0IGNhbid0IGJlIHVzZWQgc2FuZWx5LiBJdCdzIG5vdCBjbGVhciBvZiB0aGUgcmVmZXJlbmNlIHRvIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIGFzIGl0IGNhbid0IGJlIHVzZWQgc2FuZWx5LiBJdCdzIG5vdAoJICBjbGVhciBvZiB0aGUgcmVmZXJlbmNlIHRvIHRoZSByZXN1bHRpbmcgcGFkIG11c3QgYmUgcmVsZWFzZWQgbGF0ZXIKCSAgb3Igbm90LCByZXN1bHRpbmcgaW4gcG9zc2libGUgbGVha3MuIEZpeGVzIGJ1ZyAjNTMzODY1LgoKMjAwOC0wNS0yOCAxNjo0NjowNyArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBTbWFsbCBkb2MgZml4LiBGaXhlcyAjNTM1Mjg1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgU21hbGwgZG9jIGZpeC4gRml4ZXMgIzUzNTI4NS4KCjIwMDgtMDUtMjggMTM6NDg6MTcgKzAwMDAgIEJqYXJuZSBSb3NlbmdyZW4gPGJqYXJuZUBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHNlbmRpbmcgYW4gRU9TIGV2ZW50IHRvIHRoZSBiYXNlc3JjIG5vbi1ibG9ja2luZyBldmVuIGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIGJsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEJqYXJuZSBSb3NlbmdyZW4gPGJqYXJuZSBhdCBheGlzIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc2VuZGluZyBhbiBFT1MgZXZlbnQgdG8gdGhlIGJhc2VzcmMgbm9uLWJsb2NraW5nIGV2ZW4gaWYgdGhlCgkgIGltcGxlbWVudGF0aW9uIGRvZXMgYmxvY2tpbmcgd2FpdHMgaW4gdGhlIGNyZWF0ZSBmdW5jdGlvbi4gVGhpcyBpcyBkb25lCgkgIGJ5IHVubG9ja2luZyB0aGUgY3JlYXRlIGZ1bmN0aW9uIHdoZW4gRU9TIGlzIHNlbnQuCgkgIEZpeGVzICM1MzUyMTguCgoyMDA4LTA1LTI4IDEwOjQ0OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBJZiBwb3NzaWJsZSBwcmludCB0aGUgZWxlbWVudCB0eXBlIG9mIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIElmIHBvc3NpYmxlIHByaW50IHRoZSBlbGVtZW50IHR5cGUgb2YgR1ZhbHVlQXJyYXkgcHJvcGVydGllcy4KCjIwMDgtMDUtMjggMDc6NDc6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBSZW1vdmUgYW4gdW51c2VkIGZpZWxkIGZyb20gdGhlIHByaXZhdGUgR3N0TGlzdEl0ZXJhdG9yIHN0cnVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIFJlbW92ZSBhbiB1bnVzZWQgZmllbGQgZnJvbSB0aGUgcHJpdmF0ZSBHc3RMaXN0SXRlcmF0b3Igc3RydWN0LgoKMjAwOC0wNS0yNyAyMDoxOToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEFkZCBwYXJhbWV0ZXIgZ3VhcmRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIHBhcmFtZXRlciBndWFyZHMuCgoyMDA4LTA1LTI3IDE5OjQ3OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogUmV2ZXJ0IHRlc3QgY2hhbmdlIGFuZCBhZGQgY29tbWVudCB3aHkgaXQgc2hvdWxkIG5vdCB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgUmV2ZXJ0IHRlc3QgY2hhbmdlIGFuZCBhZGQgY29tbWVudCB3aHkgaXQgc2hvdWxkIG5vdCB3b3JrLgoKMjAwOC0wNS0yNyAxODozMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IEV4dGVuZGluZyB0aGUgdGVzdCBhIGxpdHRsZSB0byB2ZXJpZnkgdGhhdCB3ZSBhbHNvIGdldCB0aGUgTlVMTCBzdGF0ZS0gY2hhbmdlIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBFeHRlbmRpbmcgdGhlIHRlc3QgYSBsaXR0bGUgdG8gdmVyaWZ5IHRoYXQgd2UgYWxzbyBnZXQgdGhlIE5VTEwgc3RhdGUtCgkgIGNoYW5nZSBtZXNzYWdlLgoKMjAwOC0wNS0yNyAxNjozNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogQWRkIFNpbmNlOiBtYXJrZXJzIHRvIGRvY3MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9nZXRfcHJlc2V0X25hbWVzKSwgKGdzdF9wcmVzZXRfZ2V0X3Byb3BlcnR5X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQpLCAoZ3N0X3ByZXNldF9zYXZlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3JlbmFtZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9kZWxldGVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfc2V0X21ldGEpOgoJICBBZGQgU2luY2U6IG1hcmtlcnMgdG8gZG9jcyBibHVyYnMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCByZWNlbnRseS1hZGRlZCBBUEkuCgoyMDA4LTA1LTI3IDE1OjExOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZCBEQVRBRElSIGZvciBzdG9yaW5nIHByZXNldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBEQVRBRElSIGZvciBzdG9yaW5nIHByZXNldHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgQWRkIEdzdFByZXNldCB0byBkb2NzLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOiAocHJlc2V0X2dldF9wYXRocyksIChwcmVzZXRfc2tpcF9wcm9wZXJ0eSksCgkgIChwcmVzZXRfb3Blbl9hbmRfcGFyc2VfaGVhZGVyKSwgKHByZXNldF9wYXJzZV92ZXJzaW9uKSwKCSAgKHByZXNldF9tZXJnZSksIChwcmVzZXRfZ2V0X2tleWZpbGUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9wcmVzZXRfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9wcm9wZXJ0eV9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfbG9hZF9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3NhdmVfcHJlc2V0c19maWxlKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9zYXZlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfcmVuYW1lX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZGVsZXRlX3ByZXNldCksIChnc3RfcHJlc2V0X2RlZmF1bHRfc2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9tZXRhKSwgKGdzdF9wcmVzZXRfZGVmYXVsdF9yYW5kb21pemUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3Jlc2V0KSwgKGdzdF9wcmVzZXRfZ2V0X3ByZXNldF9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2dldF9wcm9wZXJ0eV9uYW1lcyksIChnc3RfcHJlc2V0X2xvYWRfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfc2F2ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9yZW5hbWVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVsZXRlX3ByZXNldCksIChnc3RfcHJlc2V0X3NldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X21ldGEpLCAoZ3N0X3ByZXNldF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcmVzZXRfYmFzZV9pbml0KSwgKGdzdF9wcmVzZXRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIEdzdFByZXNldCB0byBjb3JlLiBGaXhlcyAjMzk2Nzc5CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF90ZXN0X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcHJlc2V0X3Rlc3Rfc2V0X3Byb3BlcnR5KSwgKGdzdF9wcmVzZXRfdGVzdF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9iYXNlX2luaXQpLCAoZ3N0X3ByZXNldF90ZXN0X2dldF90eXBlKSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9wbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChyZW1vdmVfcHJlc2V0X2ZpbGUpLCAodGVzdF9zZXR1cCksICh0ZXN0X3RlYXJkb3duKSwKCSAgKGdzdF9wcmVzZXRfc3VpdGUpOgoJICBBZGQgR3N0UHJlc2V0IHVuaXQgdGVzdHMuCgoyMDA4LTA1LTI3IDEwOjU5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBUaGUgZGVmYXVsdCBldmVudCBmdW5jdGlvbiBvbiBhIHNpbmtwYWQgc2hvdWxkIHJldHVybiBUUlVFIHdoZW4gdGhlcmUgYXJlIG5vIGludGVybmFsIGxpbmtzIGJ1dCBzaG91bGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCk6CgkgIFRoZSBkZWZhdWx0IGV2ZW50IGZ1bmN0aW9uIG9uIGEgc2lua3BhZCBzaG91bGQgcmV0dXJuIFRSVUUgd2hlbgoJICB0aGVyZSBhcmUgbm8gaW50ZXJuYWwgbGlua3MgYnV0IHNob3VsZCBjb2xsZWN0IHRoZSByZXR1cm4gdmFsdWVzIGZyb20KCSAgdGhlIGludGVybmFsIGxpbmtzIG90aGVyd2lzZS4KCjIwMDgtMDUtMjcgMTA6NTc6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZmFzdGVyIGFuZCBzYWZlciBfcGFkX3B1c2hfZXZlbnQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIFVzZSBmYXN0ZXIgYW5kIHNhZmVyIF9wYWRfcHVzaF9ldmVudCgpLgoKMjAwOC0wNS0yNyAxMDo1MDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VubGlua2VkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKSwgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLAoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKCkKCSAgQVBJOiBkZXByZWNhdGUgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjNDAxNDU2KQoKMjAwOC0wNS0yNiAxMDowNzowOSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBGaXhlZCBhIGJ1bmNoIG9mIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIEZpeGVkIGEgYnVuY2ggb2YgdHlwb3MuCgoyMDA4LTA1LTI1IDE2OjM0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogJ3VuY29ubmVjdGVkIHBhZCcgLT4gJ3VubGlua2VkIHBhZCcgZm9yIGNvbnNpc3RlbmN5ICgjNDAxNDU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwgKGVsZW1lbnRfZmluZF91bmxpbmtlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAndW5jb25uZWN0ZWQgcGFkJyAtPiAndW5saW5rZWQgcGFkJyBmb3IgY29uc2lzdGVuY3kgKCM0MDE0NTYpLgoKMjAwOC0wNS0yNSAxNjoxMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOiBTbWFsbCBkb2NzIHVwZGF0ZSwgY2FuJ3QgYmUgYm90aGVyZWQgdG8gcmV3cml0ZSB0aGUgbm9uc2Vuc2ljYWwgZXhhbXBsZXMgcmlnaHQgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgU21hbGwgZG9jcyB1cGRhdGUsIGNhbid0IGJlIGJvdGhlcmVkIHRvIHJld3JpdGUgdGhlIG5vbnNlbnNpY2FsCgkgIGV4YW1wbGVzIHJpZ2h0IG5vdy4KCjIwMDgtMDUtMjUgMTQ6NDQ6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQ2xhcmlmeSBkb2NzIGZvciBHU1RfU0VFS19UWVBFX0NVUiAoIzUzNDUwNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBDbGFyaWZ5IGRvY3MgZm9yIEdTVF9TRUVLX1RZUEVfQ1VSICgjNTM0NTA1KS4KCjIwMDgtMDUtMjUgMTQ6MTM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCjIwMDgtMDUtMjUgMTM6NTY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBHZXQgYWxsIG1pc3NpbmcgZWxlbWVudHMgZnJvbSBhIHBhcnNlIGxhdW5jaCBzdHJpbmcgaWYgcG9zc2libGUgKGllLiBpZiB0aGUgRkFUQUxfRVJST1JTIGZsYWcgaGFzIGJlZW4gc3BlY2lmaWVkKS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEdldCBhbGwgbWlzc2luZyBlbGVtZW50cyBmcm9tIGEgcGFyc2UgbGF1bmNoIHN0cmluZyBpZiBwb3NzaWJsZQoJICAoaWUuIGlmIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBoYXMgYmVlbiBzcGVjaWZpZWQpLiBGaXhlcyAjNTI4MTc4LgoKMjAwOC0wNS0yNCAxNjozODoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIG5ldyBnc3RfcGFyc2VfbGF1bmNoKl9mdWxsKCkgQVBJLiAoRXhwb3NlcyBhIHByZXZpb3VzbHktZXhpc3RpbmcgbWVtb3J5IGxlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgZ3N0X3BhcnNlX2xhdW5jaCpfZnVsbCgpIEFQSS4KCSAgKEV4cG9zZXMgYSBwcmV2aW91c2x5LWV4aXN0aW5nIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBjb2RlCgkgIHBhdGgsIHNvIGFkZGluZyB0byBWQUxHUklORF9UT19GSVggZm9yIG5vdykuCgoyMDA4LTA1LTI0IDE1OjMzOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChfR3N0UGFyc2VDb250ZXh0KToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9lcnJvcl9xdWFyayksIChnc3RfcGFyc2VfY29udGV4dF9uZXcpLAoJICAoZ3N0X3BhcnNlX2NvbnRleHRfZnJlZSksIChnc3RfcGFyc2VfY29udGV4dF9nZXRfbWlzc2luZ19lbGVtZW50cyksCgkgIChnc3RfcGFyc2VfbGF1bmNodiksIChnc3RfcGFyc2VfbGF1bmNodl9mdWxsKSwgKGdzdF9wYXJzZV9sYXVuY2gpLAoJICAoZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDogKEdTVF9QQVJTRV9GTEFHX05PTkUpLCAoR1NUX1BBUlNFX0ZMQUdfRkFUQUxfRVJST1JTKSwKCSAgKEdzdFBhcnNlRmxhZ3MpLCAoR3N0UGFyc2VDb250ZXh0KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBnc3RfcGFyc2VfKl9mdWxsIEFQSSAoIzUyODE3OCk6CgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNodl9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfbmV3KCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9mcmVlKCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9nZXRfbWlzc2luZ19lbGVtZW50cygpCgoyMDA4LTA1LTIzIDA2OjUwOjEwICswMDAwICBTdXJlc2ggS3VtYXIgUCA8c3VyZXNoa3VtYXIucHBAZ21haWwuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBbHNvIHN1cHBvcnQgZmZtcGVnIGluIGdzdC11bmluc3RhbGxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTdXJlc2ggS3VtYXIgUCA8c3VyZXNoa3VtYXIucHBAZ21haWwuY29tPgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWxzbyBzdXBwb3J0IGZmbXBlZyBpbiBnc3QtdW5pbnN0YWxsZWQuCgoyMDA4LTA1LTIyIDIwOjI5OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFmdGVyIGRpc2N1c3Npb24gb24gSVJDIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGFzIGRlZmF1bHQgYnV0IGFsbG93IHRvIGRpc2FibGUgaXQgd2l0aCAtLWRpc2FibGUtYmluYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZnRlciBkaXNjdXNzaW9uIG9uIElSQyB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeSBhcyBkZWZhdWx0CgkgIGJ1dCBhbGxvdyB0byBkaXNhYmxlIGl0IHdpdGggLS1kaXNhYmxlLWJpbmFyeS1yZWdpc3RyeS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHRoZSB0d28gbmV3IHN5bWJvbHMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkuCgoyMDA4LTA1LTIyIDE1OjM4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW9yZSBndWFyZHMgYWdhaW5zdCBiYWQgaW5wdXQ7IHR5cG8gZml4OyBzb21lIG1pbm9yIGNsZWFuLXVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChfZ3N0X3BhcnNlX2VzY2FwZSksIChnc3RfcGFyc2VfbGF1bmNodik6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IChncmFwaCk6CgkgIE1vcmUgZ3VhcmRzIGFnYWluc3QgYmFkIGlucHV0OyB0eXBvIGZpeDsgc29tZSBtaW5vciBjbGVhbi11cHMuCgoyMDA4LTA1LTIyIDA4OjMzOjI3ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IElmIG5vdGhpbmcgZWxzZSBjYW4gYmUgdXNlZCwgdXNlIHRoZSBsYXN0IGJ1ZmZlcidzIHN0YXJ0IHRpbWUgYXMgdGhlIHNlZ21lbnQncyBsYXN0IHN0b3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJZiBub3RoaW5nIGVsc2UgY2FuIGJlIHVzZWQsIHVzZSB0aGUgbGFzdCBidWZmZXIncyBzdGFydCB0aW1lIGFzCgkgIHRoZSBzZWdtZW50J3MgbGFzdCBzdG9wLiBGaXhlcyBidWcgIzUzNDI1OC4KCjIwMDgtMDUtMjEgMTg6MzM6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE1vdmUgc2l6ZSBzYW5pdHkgY2hlY2sgdG8gdGhlIHJpZ2h0IHBsYWNlOiBkb3duc3RyZWFtIG1heSByZXR1cm4gYSBidWZmZXIgd2l0aCBhIHNtYWxsZXIgc2l6ZSBpZiB0aGUgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIE1vdmUgc2l6ZSBzYW5pdHkgY2hlY2sgdG8gdGhlIHJpZ2h0IHBsYWNlOiBkb3duc3RyZWFtIG1heSByZXR1cm4KCSAgYSBidWZmZXIgd2l0aCBhIHNtYWxsZXIgc2l6ZSBpZiB0aGUgYnVmZmVyIGNhcHMgYXJlIGRpZmZlcmVudCB0aGFuCgkgIHRoZSByZXF1ZXN0ZWQgb25lcywgYXMgbWF5IGhhcHBlbiB3aGVuIGRvaW5nIHJldmVyc2UgbmVnb3RpYXRpb24uCgoyMDA4LTA1LTIxIDE2OjA2OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNtYWxsIGNsZWFudXBzLiBBZGQgbm90ZSBhZGJvdXQgZ19mb3BlbigpIG9uIHdpbmRvd3MgYW5kIHdoeSB3ZSBkb24ndCB1c2UgaXQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIFNtYWxsIGNsZWFudXBzLiBBZGQgbm90ZSBhZGJvdXQgZ19mb3BlbigpIG9uIHdpbmRvd3MgYW5kIHdoeSB3ZSBkb24ndAoJICB1c2UgaXQgeWV0LgoKMjAwOC0wNS0yMSAxNTo1Nzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbG9hZF9hbmRfbGluayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfdW5saW5rX3BhZHMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAoc2V0dXBfbXVsdGlxdWV1ZSksCgkgIChtcV9zaW5rcGFkX3RvX3NyY3BhZCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgdXNlIGdzdF9lbGVtZW50X2dldF9wYWQoKS4KCjIwMDgtMDUtMjEgMTU6NTQ6MjggKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAbm9raWEuY29tPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogRml4IGluc3RhbGxpbmcgcGx1Z2luIGRvY3VtZW50YXRpb24gd2hlbiBndGstZG9jIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBGaXggaW5zdGFsbGluZyBwbHVnaW4gZG9jdW1lbnRhdGlvbiB3aGVuIGd0ay1kb2MgaXMgZGlzYWJsZWQuCgoyMDA4LTA1LTIxIDE1OjUxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBdm9pZCB1c2luZyBhIGJhZCBmdW5jdGlvbiBpbiB0aGUgZXhhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBBdm9pZCB1c2luZyBhIGJhZCBmdW5jdGlvbiBpbiB0aGUgZXhhbXBsZSBjb2RlLgoKMjAwOC0wNS0yMSAxNTo0OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBGaXggZGVidWcgb2YgdGhlIG5ldyBjbG9jayByYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICBGaXggZGVidWcgb2YgdGhlIG5ldyBjbG9jayByYXRlLgoKMjAwOC0wNS0yMSAxMToxMDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0wNS0yMCAwODoyODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVW5yZWYgZXZlbnRzIHRoYXQgdGhlIEdzdEJhc2VUcmFuc2Zvcm06OmV2ZW50IHZmdW5jIGRpZG4ndCB3YW50IHRvIGhhdmUgZm9yd2FyZGVkIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltLm11bGxlciBhdCBjb2xsYWJvcmEgY28gdWs+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCk6CgkgIFVucmVmIGV2ZW50cyB0aGF0IHRoZSBHc3RCYXNlVHJhbnNmb3JtOjpldmVudCB2ZnVuYyBkaWRuJ3Qgd2FudCB0bwoJICBoYXZlIGZvcndhcmRlZCBieSB0aGUgYmFzZSBjbGFzcy4gQ2xvc2VzIGEgbGVhayBpbiBpZGVudGl0eS4KCSAgRml4ZXMgYnVnICM0NDY3NjMuCgoyMDA4LTA1LTE5IDE2OjM2OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRXhwb3NlIGEgbWV0aG9kIHRoYXQgd2FzIHByZXZpb3VzbHkgdXNlZCBpbnRlcm5hbGx5IHRvIHN5bmNocm9uaXplIGFnYWluc3QgdGhlIGNsb2NrIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWZ1bCBmb3Igc3ViLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEV4cG9zZSBhIG1ldGhvZCB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW50ZXJuYWxseSB0byBzeW5jaHJvbml6ZQoJICBhZ2FpbnN0IHRoZSBjbG9jayBiZWNhdXNlIGl0IGNhbiBiZSB1c2VmdWwgZm9yIHN1YmNsYXNzZXMgdG9vLgoJICBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkKCjIwMDgtMDUtMTkgMTE6NTk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGdldCBzbWFsbGVyIGJ1ZmZlcnMgdGhhbiByZXF1ZXN0ZWQgKGFuZCBmYWxsYmFjayB0byBub3JtYWwgYnVmZmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKToKCSAgQWRkIHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IHNtYWxsZXIgYnVmZmVycwoJICB0aGFuIHJlcXVlc3RlZCAoYW5kIGZhbGxiYWNrIHRvIG5vcm1hbCBidWZmZXIgYWxsb2MgaWYgd2UgZG8pLgoKMjAwOC0wNS0xOSAxMToxMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVmYWN0b3IgYWRqdXN0aW5nIHRoZSBydW5uaW5nX3RpbWUgd2l0aCBsYXRlbmN5IGFuZCBvZmZzZXQgaW50byBhIHNlcGFyYXRlIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19hZGp1c3RfdGltZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIFJlZmFjdG9yIGFkanVzdGluZyB0aGUgcnVubmluZ190aW1lIHdpdGggbGF0ZW5jeSBhbmQgb2Zmc2V0IGludG8gYQoJICBzZXBhcmF0ZSBtZXRob2QuCgkgIFdoZW4gZG9pbmcgY2xpcHBpbmcsIHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBzdWJjbGFzcyBnZXRfdGltZXMgbWV0aG9kLAoJICBqdXN0IGluIGNhc2UgdGhlIERVUkFUSU9OIG9yIFRJTUVTVEFNUCBhcmUgbm90IHNldC4KCjIwMDgtMDUtMTkgMTA6NDY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKCksICM1MzM3NDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSgpLCAjNTMzNzQwLgoKMjAwOC0wNS0xOSAxMDoyOTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVc2UgcmlnaHQgZXJyb3IgY29kZSB3aGVuIHR5cGVmaW5kaW5nIGZhaWxzLCBzbyB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0ICh0cmFuc2xhdGVkKSBlcnJvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIFVzZSByaWdodCBlcnJvciBjb2RlIHdoZW4gdHlwZWZpbmRpbmcgZmFpbHMsIHNvIHdlIGNhbiB1c2UKCSAgdGhlIGRlZmF1bHQgKHRyYW5zbGF0ZWQpIGVycm9yIG1lc3NhZ2VzLgoKMjAwOC0wNS0xOSAxMDowMzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBXaGVuIHRoZSBzdWJjbGFzcyBkaWQgbm90IHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMsIGNvbmZpZ3VyZSB0aGUgY2FwcyB3ZSBuZWdvdGlhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgV2hlbiB0aGUgc3ViY2xhc3MgZGlkIG5vdCBzZXQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLCBjb25maWd1cmUgdGhlCgkgIGNhcHMgd2UgbmVnb3RpYXRlZCBvbiB0aGUgc291cmNlIHBhZC4KCSAgV2hlbiB0aGUgdHlwZWZpbmQgaGVscGVyIGRvZXMgbm90IGZpbmQgY2FwcywgZXJyb3Igb3V0IHByb3Blcmx5IGluc3RlYWQKCSAgb2YgZG9pbmcgdGhpbmdzIHdpdGggTlVMTCBjYXBzLgoKMjAwOC0wNS0xOCAxODo1Mzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZC5oOiBUYWJzIHRvIHNwYWNlcywgb2ggeWVzIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgVGFicyB0byBzcGFjZXMsIG9oIHllcyEKCjIwMDgtMDUtMTggMTI6MTM6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoKMjAwOC0wNS0xOCAxMTo1MjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZCBEYXZpZCdzIGFuZCBCZW5qYW1pbidzIHRlc3RzIGZvciBhcnJheSBzdWJ0cmFjdGlvbiB0byB0aGUgdW5pdCB0ZXN0IHN1aXRlLCB3aGljaCBzdWdnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAodGVzdF9pbnRlcnNlY3QyKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIERhdmlkJ3MgYW5kIEJlbmphbWluJ3MgdGVzdHMgZm9yIGFycmF5IHN1YnRyYWN0aW9uIHRvIHRoZQoJICB1bml0IHRlc3Qgc3VpdGUsIHdoaWNoIHN1Z2dlc3RzIHRoYXQgIzE0NzkzMSBpcyBmaXhlZCB0aGVzZSBkYXlzLgoKMjAwOC0wNS0xOCAxMTozNTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBEb2N1bWVudCB0aGF0IGdzdF9ldmVudF9uZXdfdGFnKCkgYW5kIGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbigpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSB0YWdsaXN0L3N0cnVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRG9jdW1lbnQgdGhhdCBnc3RfZXZlbnRfbmV3X3RhZygpIGFuZCBnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24oKQoJICB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdGFnbGlzdC9zdHJ1Y3R1cmUgcGFzc2VkIHRvIHRoZW0uICgjNTMzNjM1KS4KCjIwMDgtMDUtMTcgMTc6MjA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogRG9uJ3QgZGVzY2VuZCBpbnRvIHRoZSBwbHVnaW5zIGRpciBpZiBwbHVnaW4gZG9jcyBidWlsZGluZyBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgZGVzY2VuZCBpbnRvIHRoZSBwbHVnaW5zIGRpciBpZiBwbHVnaW4gZG9jcyBidWlsZGluZwoJICBpcyBkaXNhYmxlZC4KCSAgKiBkb2NzL1JFQURNRToKCSAgQWRkIGEgbm90ZSBhYm91dCB0aGUgbmV3IHR5cGU6R1R5cGVOYW1lIHN5bnRheCBmb3IgdGhlIHBsdWdpbgoJICBkb2N1bWVudGF0aW9uIC50eXBlcyBmaWxlLgoKMjAwOC0wNS0xNyAxMzo1NDo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogTWFyayB0aGUgZGVidWcgc3RyaW5nIHBhcmFtZXRlcnMgYXMgY29uc3QuIEZpeGVzIGJ1ZyAjNTMzNDkwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld19pbmZvKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNYXJrIHRoZSBkZWJ1ZyBzdHJpbmcgcGFyYW1ldGVycyBhcyBjb25zdC4gRml4ZXMgYnVnICM1MzM0OTAuCgoyMDA4LTA1LTE2IDIxOjA5OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFNvcnQgYnVmZmVyIGNhY2hlIGxpc3QgYnkgZW5kIG9mZnNldHMuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IHN0b3AgdG8gc2VhcmMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIFNvcnQgYnVmZmVyIGNhY2hlIGxpc3QgYnkgZW5kIG9mZnNldHMuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0CgkgIHN0b3AgdG8gc2VhcmNoIGZvciBhIGNhY2hlZCBidWZmZXIgdGhhdCBjb250YWlucyB0aGUgcmVxdWVzdGVkIGRhdGEKCSAgdG9vIGVhcmx5LgoJICBBbHNvIHJlYWQgYSBtaW5pbXVtIG9mIDRrIGJ5dGVzIGluc3RlYWQgb2YgNTEyIGJ5dGVzIGFzIHRoaXMgaXMgYSBiaXQKCSAgbW9yZSBlZmZpY2llbnQuIEZpeGVzIGJ1ZyAjNDU5ODYyLgoKMjAwOC0wNS0xNCAxODoxNzozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRXhwbGFpbiB3aHkgd2UgY29weSB0aGUgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRXhwbGFpbiB3aHkgd2UgY29weSB0aGUgbGlzdC4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgSW1wcm92ZSBkb2NzLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgb25lIGRlYnVnLWxvZyBzdGF0ZW1lbnQgdG8gaGVscCB0cmFjaW5nIHByb2JlbG1zIHdpdGggbGlua2luZyBwYWRzLgoKMjAwOC0wNS0xNCAxODowOTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIuIFNlZW1zIHRvIGZhaWwgdW5kZXIgd2luZG93cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIuIFNlZW1zIHRvIGZhaWwgdW5kZXIKCSAgd2luZG93cy4KCjIwMDgtMDUtMTQgMTM6NTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbGVhc2UgcGFkIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3V0IHRvIGF2b2lkIGEgcG9zc2libGUgZGVhZGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2Fwcyk6CgkgIFJlbGVhc2UgcGFkIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3V0IHRvIGF2b2lkIGEgcG9zc2libGUgZGVhZGxvY2suCgoyMDA4LTA1LTE0IDEwOjIyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHVubmVlZGVkIHZhbHVlIHVuc2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgdW5uZWVkZWQgdmFsdWUgdW5zZXQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBkZS9zZXJpYWxpemF0aW9uIG9mIGNhcHMuCgoyMDA4LTA1LTEzIDEyOjU0OjAwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGN1c3RvbSBtYXJzaGFsZXJzIHRoYXQgdGFrZSBHc3RNaW5pT2JqZWN0IGFzIGZpcnN0IHBhcmFtZXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUX09CSkVDVCksIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUX09CSkVDVCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgIFVzZSBjdXN0b20gbWFyc2hhbGVycyB0aGF0IHRha2UgR3N0TWluaU9iamVjdCBhcyBmaXJzdCBwYXJhbWV0ZXIuCgkgIFVzaW5nIE9CSkVDVCBhcyBwYXJhbWV0ZXIgd2hpbGUgYSBHc3RNaW5pT2JqZWN0IGlzIGdpdmVuIHdpbGwgbGVhZAoJICB0byBhc3NlcnRpb25zIGlmIGJ1aWx0IHdpdGggR19FTkFCTEVfREVCVUcuIEZpeGVzIGJ1ZyAjNTI1NTMyLgoKMjAwOC0wNS0xMyAxMjozODozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogQ2xlYW4gdXAgb24gRkxVU0hfU1RPUCBhbmQgbm90IEZMVVNIX1NUQVJULiBGb3J3YXJkIGJvdGggZXZlbnRzIGltbWVkaWF0ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbiB1cCBvbiBGTFVTSF9TVE9QIGFuZCBub3QgRkxVU0hfU1RBUlQuIEZvcndhcmQgYm90aCBldmVudHMKCSAgaW1tZWRpYXRlbHkuCgoyMDA4LTA1LTEzIDExOjQ1OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGb3J3YXJkIEZMVVNIX1NUQVJUIGV2ZW50cyBpbW1lZGlhdGVseSBhbmQgY2xlYW4gdXAgaW5zdGVhZCBvZiBjYWNoaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEZvcndhcmQgRkxVU0hfU1RBUlQgZXZlbnRzIGltbWVkaWF0ZWx5IGFuZCBjbGVhbiB1cCBpbnN0ZWFkIG9mCgkgIGNhY2hpbmcgdGhlbS4KCjIwMDgtMDUtMTMgMDc6MTE6MDUgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIHJldHVybmVkIGJ5IGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYW5kIGZhbGwgYmFjayB0byBkZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgQ2hlY2sgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGFuZAoJICBmYWxsIGJhY2sgdG8gZGVmYXVsdCBuZWdvdGlhdGlvbiBpbiB0aGUgY2hhaW4gZnVuY3Rpb24gaWYgdGhlIGNhcHMKCSAgYXJlIGRpZmZlcmVudCBmcm9tIHdoYXQgd2FzIHJlcXVlc3RlZC4gRml4ZXMgYnVnICM1MjY3NjguCgoyMDA4LTA1LTA5IDIwOjQ4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTm8sIGxldCdzIG5vdCB1c2UgZ19zbGljZV97ZHVwfGNvcHl9IGhlcmUsIHNpbmNlIHRoZXkgb25seSBleGlzdCBzaW5jZSBHTGliIDIuMTQgYW5kIHdlIHN0aWxsIGRlcGVuZCBvbmx5IG9uID49IDIuMTIuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgTm8sIGxldCdzIG5vdCB1c2UgZ19zbGljZV97ZHVwfGNvcHl9IGhlcmUsIHNpbmNlIHRoZXkgb25seSBleGlzdAoJICBzaW5jZSBHTGliIDIuMTQgYW5kIHdlIHN0aWxsIGRlcGVuZCBvbmx5IG9uID49IDIuMTIuIEFsc28gYWRkCgkgIHVuaXQgdGVzdCBmb3IgZ3N0X3NlZ21lbnRfY29weSgpLgoKMjAwOC0wNS0wOSAxODoyNTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5oOiBUcnkgdG8gZml4ICdkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QgYWxpYXNpbmcgcnVsZXMnIHdhcm5pbmdzIHdpdGggQysrIGNvbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogKEdTVF9CT0lMRVJQTEFURV9GVUxMKToKCSAgVHJ5IHRvIGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0CgkgIGFsaWFzaW5nIHJ1bGVzJyB3YXJuaW5ncyB3aXRoIEMrKyBjb21waWxlcnMgYW5kIEdMaWIgPj0gMi4xNC4wOiBHTGliCgkgIGNoYW5nZWQgdGhlIGRlZmF1bHQgR1R5cGUgdHlwZWRlZiBmcm9tIGd1bG9uZyB0byBnc2l6ZSBhdCBzb21lIHBvaW50LAoJICBidXQga2VwdCBHVHlwZSB0eXBlZGVmJ2VkIHRvIGd1bG9uZyBmb3IgQysrIGZvciBBQkkgcmVhc29uczsgdGhlCgkgIGdfb25jZV8qIGZ1bmN0aW9ucyBhbGwgdGFrZSBhIGdzaXplICogdGhvdWdoLCBzbyB3b3JrIGFyb3VuZCB0aGUgdHlwZQoJICBtaXNtYXRjaCBmb3IgQysrIGJ5IGRvaW5nIGV2ZXJ5dGhpbmcgaW4gZ3NpemUgYW5kIGNhc3RpbmcgdG8gR1R5cGUKCSAgbGF0ZXIuCgoyMDA4LTA1LTA5IDE0OjAyOjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNpZ25hbHMgdG8gcHVzaCBvdXIgY29yZSBwbHVnaW4gZG9jcyBjb3ZlcmFnZSBiYWNrIHVwIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzaWduYWxzIHRvIHB1c2ggb3VyIGNvcmUgcGx1Z2luIGRvY3MKCSAgY292ZXJhZ2UgYmFjayB1cCB0byAxMDAlLgoKMjAwOC0wNS0wOCAxNDoyMzoxNiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6IFJldmVydGVkIEdTVF9GVU5DVElPTiB0byB0aGUgb2xkIHZlcnNpb24gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgZnVsbCBzaWduYXR1cmUgaW4gQysrIGNvZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOgoJICBSZXZlcnRlZCBHU1RfRlVOQ1RJT04gdG8gdGhlIG9sZCB2ZXJzaW9uIGFzIHdlIGRvbid0IHdhbnQgdGhlCgkgIGZ1bGwgc2lnbmF0dXJlIGluIEMrKyBjb2RlLiBBbHNvIGFkZGVkIHN1cHBvcnQgZm9yIE1TVkMuCgoyMDA4LTA1LTA4IDExOjM3OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogSW50ZXJuIHRoZSB0eXBlIG5hbWUgc3RyaW5nLCBzaW1pbGFyIHRvIHdoYXQgR19ERUZJTkVfVFlQRSBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW50ZXJuIHRoZSB0eXBlIG5hbWUgc3RyaW5nLCBzaW1pbGFyIHRvIHdoYXQgR19ERUZJTkVfVFlQRSBkb2VzLgoKMjAwOC0wNS0wOCAxMToyNzo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IE1ha2UgR1NUX0JPSUxFUlBMQVRFIHRocmVhZC1zYWZlIGlmIGJ1aWxkaW5nIHdpdGggR0xpYiAyLjE0IG9yIG5ld2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFrZSBHU1RfQk9JTEVSUExBVEUgdGhyZWFkLXNhZmUgaWYgYnVpbGRpbmcgd2l0aCBHTGliIDIuMTQgb3IgbmV3ZXIuCgoyMDA4LTA1LTA4IDA1OjU1OjM0ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgcGFzc3Rocm91Z2ggYnVmZmVyIGFsbG9jYXRpb24gdG9vIGVhc2lseSBpZiB0aGUgY2FwcyBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIERvbid0IHBhc3N0aHJvdWdoIGJ1ZmZlciBhbGxvY2F0aW9uIHRvbyBlYXNpbHkgaWYgdGhlIGNhcHMgY2hhbmdlLgoJICBUaGlzIGJyZWFrcyB3aGVuIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZSBhbmQgdXBzdHJlYW0gY2hhbmdlcwoJICBpdCdzIGNhcHMuIEZpeGVzIGJ1ZyAjNTI2NzY4LgoKMjAwOC0wNS0wNyAxOToyNDo0NCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmMgKGdzdF9kZWJ1Z19sb2dfdmFsaXN0KTogSW1wcm92ZWQgdGhlIF9fRklMRV9fIHBhcnQgb2YgZGVidWcgb3V0cHV0IGZvciBNU1ZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jIChnc3RfZGVidWdfbG9nX3ZhbGlzdCk6CgkgIEltcHJvdmVkIHRoZSBfX0ZJTEVfXyBwYXJ0IG9mIGRlYnVnIG91dHB1dCBmb3IgTVNWQy4KCjIwMDgtMDUtMDcgMTk6MTU6MTQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOiBEZWNsYXJhdGlvbiBhZnRlciBzdGF0ZW1lbnQgZml4IGZvciBjb21waWxlcnMgbGlrZSBNU1ZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBEZWNsYXJhdGlvbiBhZnRlciBzdGF0ZW1lbnQgZml4IGZvciBjb21waWxlcnMgbGlrZSBNU1ZDLgoKMjAwOC0wNS0wNyAxOTowOTowOCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjogRG9uJ3QgZGVmaW5lIEdTVF9GVU5DVElPTiwgaWYgR0xpYiBzdXBwb3J0cyBNU1ZDIHdlJ2QgbXVjaCByYXRoZXIgdXNlIHRoZSByZWFsIHRoaW5nIHRoYW4gaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIERvbid0IGRlZmluZSBHU1RfRlVOQ1RJT04sIGlmIEdMaWIgc3VwcG9ydHMgTVNWQyB3ZSdkIG11Y2ggcmF0aGVyCgkgIHVzZSB0aGUgcmVhbCB0aGluZyB0aGFuIGhhdmluZyAiPz8/IiB1bmNvbmRpdGlvbmFsbHkuCgoyMDA4LTA1LTA3IDE4OjUxOjIyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKTogTWFkZSBHU1RfRlVOQ1RJT04gYW4gYWxpYXMgZm9yIEdfU1RSRlVOQyB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKToKCSAgTWFkZSBHU1RfRlVOQ1RJT04gYW4gYWxpYXMgZm9yIEdfU1RSRlVOQyB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCjIwMDgtMDUtMDcgMDk6NDc6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogU21hbGwgY29kZSBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgU21hbGwgY29kZSBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgRml4IHNvbWUgY29tbWVudHMuCgoyMDA4LTA1LTA3IDA5OjM0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLio6IEFkZGVkIGZvcm1hdCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIG5ld3NlZ21lbnQgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19pbml0KSwgKGdzdF9mYWtlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBBZGRlZCBmb3JtYXQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgZm9ybWF0IG9mIHRoZSBuZXdzZWdtZW50IGV2ZW50cy4KCSAgQVBJOiBHc3RGYWtlU3JjOmZvcm1hdAoKMjAwOC0wNS0wNiAwODo0NTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBnc3RfcGFkX2hhc19uYW1lKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BhZF9oYXNfbmFtZSgpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0wNS0wNiAwODo0Mzo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRG9uJ3QgYWxsb3cgbmVnYXRpdmUgc2l6ZXMgd2hlbiBhbGxvY2F0aW5nIG5ldyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBEb24ndCBhbGxvdyBuZWdhdGl2ZSBzaXplcyB3aGVuIGFsbG9jYXRpbmcgbmV3IGJ1ZmZlcnMuCgkgIEZpeGVzIGJ1ZyAjNDYxMjUzLgoKMjAwOC0wNS0wNSAxNjo0NzoyOSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb24ndCBwcmludCBhIHdhcm5pbmcgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5IHdoZW4gd2UgdHJ5IHRvIHBvcCBoZXJlLiBUaGF0IGNvdWxkIGhhcHBlbiBpZiBhbm90aGVyIHRocmVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gbmV0PgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKToKCSAgRG9uJ3QgcHJpbnQgYSB3YXJuaW5nIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eSB3aGVuIHdlIHRyeSB0byBwb3AKCSAgaGVyZS4gVGhhdCBjb3VsZCBoYXBwZW4gaWYgYW5vdGhlciB0aHJlYWQgb3IgY2FsbGJhY2sgc2V0IHRoZQoJICBidXMgdG8gZmx1c2hpbmcgYmV0d2VlbiB0aGUgc291cmNlJ3MgY2hlY2svcHJlcGFyZSBhbmQgdGhlCgkgIGRpc3BhdGNoIGJlaW5nIGNhbGxlZCAoIzUzMTUzOCkuCgoyMDA4LTA1LTA1IDE2OjI1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFNtYWxsIGRvY3MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgU21hbGwgZG9jcyBmaXguCgoyMDA4LTA1LTA1IDE1OjUwOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIHVuaXQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyB1aW50NjRzIGFuZCBjaGVjayBzb21lIHJlYWxseSBsYXJnZSBudW1iZXJzIGluIHRoZSBpbnQ2NCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIHVpbnQ2NHMgYW5kIGNoZWNrIHNvbWUgcmVhbGx5IGxhcmdlCgkgIG51bWJlcnMgaW4gdGhlIGludDY0IHRlc3QuCgoyMDA4LTA1LTA0IDE5OjA3OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBVc2UgIiVzIiBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgcHJpbnRpbmcgc3RyaW5ncyBkaXJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG5fcHJpbnQpLCAocHJpbnRfaGllcmFyY2h5KSwKCSAgKHByaW50X2ludGVyZmFjZXMpLCAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBVc2UgIiVzIiBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgcHJpbnRpbmcgc3RyaW5ncyBkaXJlY3RseS4KCjIwMDgtMDUtMDQgMTQ6MjU6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYWtlIHNvbWUgY2hlY2tzIGFjdHVhbGx5IHVzZWZ1bC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgTWFrZSBzb21lIGNoZWNrcyBhY3R1YWxseSB1c2VmdWwuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgUmVtb3ZlIHNvbWUgdW51c2VkIGNvZGUuIFVuc2lnbmVkIGludGVnZXJzIHRlbmQgdG8gYmUgPj0gMC4KCjIwMDgtMDUtMDMgMTk6MjM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBGaXggJ1NpbmNlOicgdmVyc2lvbiBpbiBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KCkgZG9jcyBibHVyYjogdGhpcyBmdW5jdGlvbiB3YXMgbm90IGluIHRoZSB1bnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9nZXRfbWluaV9vYmplY3QpOgoJICBGaXggJ1NpbmNlOicgdmVyc2lvbiBpbiBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KCkgZG9jcyBibHVyYjogdGhpcwoJICBmdW5jdGlvbiB3YXMgbm90IGluIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgoyMDA4LTA1LTAzIDE5OjEzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IE9ubHkgcHJpbnQgb25lIGxvZyBtZXNzYWdlIHBlciBub24tcGx1Z2luIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIE9ubHkgcHJpbnQgb25lIGxvZyBtZXNzYWdlIHBlciBub24tcGx1Z2luIGZpbGUuCgoyMDA4LTA1LTAzIDE5OjA4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IGFsaWdubWVudCBvZiBkZWJ1ZyBsb2cgY29sdW1ucyBvbiA2NC1iaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBGaXggYWxpZ25tZW50IG9mIGRlYnVnIGxvZyBjb2x1bW5zIG9uIDY0LWJpdC4KCjIwMDgtMDUtMDMgMTY6NTI6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvOiBJZ25vcmUgcHJpdmF0ZSBjb250cm9sbGVyIGhlYWRlcnMgZm9yIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBJZ25vcmUgcHJpdmF0ZSBjb250cm9sbGVyIGhlYWRlcnMgZm9yIGRvY3MuCgoyMDA4LTA1LTAzIDE1OjI1OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogTW92ZSBzb21lIHByaXZhdGUgZGVjbGFyYXRpb25zIGludG8gcHJpdmF0ZSBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIE1vdmUgc29tZSBwcml2YXRlIGRlY2xhcmF0aW9ucyBpbnRvIHByaXZhdGUgaGVhZGVycy4KCjIwMDgtMDUtMDIgMTA6MTI6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyB1bnVzZWQgYWZ0ZXIgU3RlZmFuJ3MgcmVmYWN0b3JpbmcgYW5kIHVzZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgbm93LC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoZGVidWdfZHVtcF9lbGVtZW50X3BhZCk6CgkgIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyB1bnVzZWQgYWZ0ZXIgU3RlZmFuJ3MgcmVmYWN0b3JpbmcgYW5kIHVzZXMKCSAgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgbm93LCByZXN1bHRpbmcgaW4gYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0wNS0wMSAxMzowMzo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSdW4gZ19zdHJfaGFzX3N1ZmZpeCgpIG9ubHkgb24gdGhlIGZpbGUgbmFtZSwgbm90IHRoZSBlbnRpcmUgZmlsZSBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBSdW4gZ19zdHJfaGFzX3N1ZmZpeCgpIG9ubHkgb24gdGhlIGZpbGUgbmFtZSwgbm90IHRoZQoJICBlbnRpcmUgZmlsZSBwYXRoLgoKMjAwOC0wNC0zMCAxNDoyMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogU2luY2Ugd2UncmUgbm90IGNhbGxlZCBvbmx5IGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGFueSBsb25nZXIsIHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGVha19kb3duc3RyZWFtKToKCSAgU2luY2Ugd2UncmUgbm90IGNhbGxlZCBvbmx5IGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGFueSBsb25nZXIsCgkgIHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZXJlJ3MgYWx3YXlzIGRhdGEgaW4gdGhlIHF1ZXVlLCBzbyBtb3ZlCgkgIHRoZSBpc19mdWxsIGNoZWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxvb3AgKG90aGVyd2lzZSB3ZSdkCgkgIGhpdCB0aGUgYXNzZXJ0IHdoZW4gY2hhbmdpbmcgdGhlIGxpbWl0IHByb3BlcnRpZXMgd2hpbGUgdGhlCgkgIHF1ZXVlIGlzIGVtcHR5IG9yIG5vdCBydW5uaW5nIHlldCkuCgkgIEFsc28sIG9ubHkgc2V0IGEgZGlzY29udCBpZiBpdGVtcyB3ZXJlIGFjdHVhbGx5IHJlbW92ZWQgZnJvbQoJICB0aGUgcXVldWUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHRlc3RfbGVha3lfZG93bnN0cmVhbSk6CgkgIFRlc3QgY2FzZSBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wNC0zMCAwOTozNTo0MyArMDAwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBXaGVuIGNoYW5naW5nIHRociBtYXggY2FwYWNpdHkgb2YgYSBsZWFreSBxdWV1ZSwgaW1tZWRpYXRseSBkcm9wIGJ1ZmZlcnMgaW5zdGVhZCBvZiB3YWl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXMgSG9sbWJlcmcgPGpvbmFzIGRvdCBob2xtYmVyZyBhdCBheGlzIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xlYWtfZG93bnN0cmVhbSksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAocXVldWVfY2FwYWNpdHlfY2hhbmdlKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBXaGVuIGNoYW5naW5nIHRociBtYXggY2FwYWNpdHkgb2YgYSBsZWFreSBxdWV1ZSwgaW1tZWRpYXRseSBkcm9wIGJ1ZmZlcnMKCSAgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhIHB1c2ggb24gdGhlIHNpbmtwYWQuIEZpeGVzICM1MzA2MzcuCgoyMDA4LTA0LTMwIDA3OjU2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZWZhY3RvciBjb2RlIGFuZCBmaXggaGFuZGxpbmcgb2YgZ2hvc3RwYWRzIGFuZCB0aGVpciBwcm94eXBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJlZmFjdG9yIGNvZGUgYW5kIGZpeCBoYW5kbGluZyBvZiBnaG9zdHBhZHMgYW5kIHRoZWlyIHByb3h5cGFkcy4KCjIwMDgtMDQtMjkgMTE6MjM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGNvbnZlbmllbnRseSBjaGVjayB0aGUgbmFtZSBvZiBhIGN1c3RvbSBldmVudCB3aXRoIGdzdF9ldmVudF9oYXNfbmFtZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2hhc19uYW1lKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIG1ldGhvZCB0byBjb252ZW5pZW50bHkgY2hlY2sgdGhlIG5hbWUgb2YgYSBjdXN0b20gZXZlbnQgd2l0aAoJICBnc3RfZXZlbnRfaGFzX25hbWUoKS4KCSAgUmVmb3JtYXQgdGhlIGV2ZW50IGRvY3Mgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMgYXJlIHB1dCB0b2dldGhlciBpbnN0ZWFkCgkgIG9mIHRoZSBkZWZhdWx0IGFscGhhYmV0aWNhbCBzb3J0LgoJICBVcGRhdGUgdW5pdCB0ZXN0IHdpdGggbmV3IG1ldGhvZC4KCSAgQVBJOiBHc3RFdmVudDo6Z3N0X2V2ZW50X2hhc19uYW1lKCkKCjIwMDgtMDQtMjggMTg6NDQ6NDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCBhZGQgYW4gZXhwbGljaXQgbGluayB0byBsaWJnc3RyZWFtZXItMC4xMC5sYTsgaXQncyBhbHJlYWR5IGluY2x1ZGVkIGluIEdTVF9PQkpfTElCUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIERvbid0IGFkZCBhbiBleHBsaWNpdCBsaW5rIHRvIGxpYmdzdHJlYW1lci0wLjEwLmxhOyBpdCdzIGFscmVhZHkKCSAgaW5jbHVkZWQgaW4gR1NUX09CSl9MSUJTLgoKMjAwOC0wNC0yOCAwOToyMTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBSZWdpc3RlciBHc3RDbG9jayB0eXBlIGZyb20gYSB0eXBlLXNhZmUgY29udGV4dC4gRml4ZXMgYnVnICM1MzAzMTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgUmVnaXN0ZXIgR3N0Q2xvY2sgdHlwZSBmcm9tIGEgdHlwZS1zYWZlIGNvbnRleHQuIEZpeGVzIGJ1ZyAjNTMwMzE3LgoKMjAwOC0wNC0yNiAwMDoxMzowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICB0b29scy9nc3QtcnVuLmM6IEluY2x1ZGUgPHVuaXN0ZC5oPiBjb25kaXRpb25hbGx5IG9uIEhBVkVfVU5JU1REX0ggYXMgZWxzZXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnkgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBJbmNsdWRlIDx1bmlzdGQuaD4gY29uZGl0aW9uYWxseSBvbiBIQVZFX1VOSVNURF9IIGFzIGVsc2V3aGVyZS4KCjIwMDgtMDQtMjUgMTc6NTQ6MjggKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSB0aGUgR0xpYiBzdHVmZiB0byBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBVc2UgdGhlIEdMaWIgc3R1ZmYgdG8gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUuCgkgIEFkZCBzb21lIGxvY2tpbmcgYXJvdW5kIHNvbWUgZGlzcG9zZSBtZXRob2RzIHRvIG1ha2UgdGhlbSBhIGxpdHRsZQoJICBzYWZlciwgc2VlICM1Mjk3MjMuIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCjIwMDgtMDQtMjUgMTM6MjI6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggZG9jIHR5cG9zIGFuZCB1bmlmeSBjYXBzIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBGaXggZG9jIHR5cG9zIGFuZCB1bmlmeSBjYXBzIGEgYml0LgoKMjAwOC0wNC0yNSAxMzowOTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGb3Jnb3QgdG8gYWxzbyBhZGQgdGhlIGVudnZhciBkb2NzIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRm9yZ290IHRvIGFsc28gYWRkIHRoZSBlbnZ2YXIgZG9jcyBoZXJlLgoKMjAwOC0wNC0yNSAxMDowMTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJlZiBzb21lIG1vcmUgY2xhc3NlcyBpbiBnc3RfaW5pdCgpIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIHByZS0yLjE2IEdMaWJzLCBhbmQgYWRkIGJhc2ljIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocGlwZWxpbmVfdGhyZWFkKSwKCSAgKHRlc3RfY29uY3VycmVudF9jcmVhdGUpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgUmVmIHNvbWUgbW9yZSBjbGFzc2VzIGluIGdzdF9pbml0KCkgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eQoJICBpc3N1ZXMgaW4gcHJlLTIuMTYgR0xpYnMsIGFuZCBhZGQgYmFzaWMgdW5pdCB0ZXN0LgoKMjAwOC0wNC0yNSAwNzoyMjoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVhcnJhbmdlIHRoZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuIFdlIGFsd2F5cyB3YW50IHRvIGRvIHRoZSB1cHN0cmVhbSBxdWVyeSwgZXZlbiBpZiB3ZSBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgUmVhcnJhbmdlIHRoZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuIFdlIGFsd2F5cyB3YW50IHRvIGRvIHRoZSB1cHN0cmVhbQoJICBxdWVyeSwgZXZlbiBpZiB3ZSBhcmUgbm90IGxpdmUgc28gdGhhdCB0aGUgdXBzdHJlYW0gZWxlbWVudHMgY2FuIGdldCB0aGUKCSAgbGF0ZW5jeSByZXN1bHRzIHRvby4gSWYgd2UgZmFpbCBkb2luZyB0aGUgcXVlcnkgYW5kIHdlIGFyZSBsaXZlLCB3ZQoJICByZXR1cm4gVFJVRSBhZnRlcndhcmRzLgoKMjAwOC0wNC0yNCAxNToxNDo1NCArMDAwMCAgSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCgkgIEVuYWJsZS9kaXNhYmxlIHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSgpIGJhc2VkIG9uIGNvbW1hbmRsaW5lIHN3aXRjaCBvciBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRml4ZXMgIzUyMDQ2OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3QuYzoKCSAgRW5hYmxlL2Rpc2FibGUgc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KCkgYmFzZWQgb24gY29tbWFuZGxpbmUgc3dpdGNoCgkgIG9yIGVudmlyb25tZW50IHZhcmlhYmxlLiBGaXhlcyAjNTIwNDY4LgoJICAqIENoYW5nZUxvZzoKCSAgRml4IHR5cG8gaW4gbXkgcHJldmlvdXMgY29tbWl0LgoKMjAwOC0wNC0yNCAwODoyNzo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFkZCBhIHdhcm5pbmcgb2Ygd2UgaGl0IHVuaGFuZGxlZCBmYWN0b3JpZXMgd2hlbiBzYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBZGQgYSB3YXJuaW5nIG9mIHdlIGhpdCB1bmhhbmRsZWQgZmFjdG9yaWVzIHdoZW4gc2F2aW5nLgoJICBNb3JlIGRlYnVnIGxvZ2dpbmcgZGV0YWlsLCBidXQgbW92ZSB0byBMT0cgY2F0ZWdvcnkuCgoyMDA4LTA0LTI0IDA2OjQ2OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogVGVsbCB0aGUgKnRydXRoKiB3aGVuIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFRlbGwgdGhlICp0cnV0aCogd2hlbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24uCgoyMDA4LTA0LTIzIDE0OjU0OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogVW5yZWYgdGhlIGZhY3RvcnkgYWZ0ZXIgaXQgd2FzIHVzZWQgdGhlIGxhc3QgdGltZSwgbm90IGJlZm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOgoJICBVbnJlZiB0aGUgZmFjdG9yeSBhZnRlciBpdCB3YXMgdXNlZCB0aGUgbGFzdCB0aW1lLCBub3QgYmVmb3JlLgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X21ha2UpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCBhbmQgZG9uJ3QgbGVhayBhIHJlZiB0byB0aGUgaW5kZXggZmFjdG9yeSB3aXRoCgkgIGVhY2ggY2FsbC4KCjIwMDgtMDQtMjMgMTM6NTU6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDQtMjMgMTA6MTQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFRoZSBnbGliIG1hY3JvIHNlZW1zIHRvIGJlIGJvcmtlZC4gVXNlIGdfc2xpY2VfY29weSBkaXJlY3RseSBhbmQgY2FzdCBpbiB0aGUgaG9wZSB0aGF0IHRoaXMgZml4ZXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBUaGUgZ2xpYiBtYWNybyBzZWVtcyB0byBiZSBib3JrZWQuIFVzZSBnX3NsaWNlX2NvcHkgZGlyZWN0bHkgYW5kIGNhc3QKCSAgaW4gdGhlIGhvcGUgdGhhdCB0aGlzIGZpeGVzIHRoZSB3YXJuaW5nIG9uIDY0Yml0LgoKMjAwOC0wNC0yMyAwNzowODo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRG9jdW1lbnQgdGhlIG5ldyBmdW5jdGlvbi4gVXNlIGdfc2xpY2VfZHVwKCkgKG5vIG5lZWQgZm9yIGdzdF9zZWdtZW50X2luaXQoKSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIERvY3VtZW50IHRoZSBuZXcgZnVuY3Rpb24uIFVzZSBnX3NsaWNlX2R1cCgpIChubyBuZWVkIGZvcgoJICBnc3Rfc2VnbWVudF9pbml0KCkpLgoKMjAwOC0wNC0yMyAwNjo1NzozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTW92ZSBHUGFyYW1TZXBjIG1hY3JvcyB0byBzdGFuZGFydCBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNb3ZlIEdQYXJhbVNlcGMgbWFjcm9zIHRvIHN0YW5kYXJ0IHNlY3Rpb24uCgkgICogZ3N0L2dzdGJpbi5jOgoJICBEbid0IGRvY3VtZW50IF9nZXRfdHlwZSAtIGl0cyBpbiBwcml2YXRlIHNlY3Rpb24gaW4gZG9jcyBhbnl3YXkgYW5kCgkgIHRoaXMgZG9jLWJsb2Igd2FzIGluY29tcGxldGUuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCB3cm9uZyBzeW1ib2wgbmFtZXMgaW4gZG9jcy4KCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIEFkZCBvbmNlIGRvYyBzZW50ZW5jZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTA0LTIxIDEwOjI1OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbTogQW5kIHJlbW92ZSB0aG9zZSBsaWJzIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBBbmQgcmVtb3ZlIHRob3NlIGxpYnMgaGVyZS4KCjIwMDgtMDQtMjEgMDk6Mjk6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEZpeCBkb2NzIGJ1aWxkIGFnYWluIGJ5IGFkZGluZyBsaWJnc3RuZXQtMC4xMC5zbyB0byBTQ0FOT0JKX0RFUFMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IGRvY3MgYnVpbGQgYWdhaW4gYnkgYWRkaW5nIGxpYmdzdG5ldC0wLjEwLnNvIHRvIFNDQU5PQkpfREVQUy4KCjIwMDgtMDQtMjEgMDg6MzQ6MDkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFkZCB0aGUgbWluLXRocmVzaG9sZCB0byB0aGUgbWluIGxhdGVuY3kgaWYgcG9zc2libGUuIEZpeGVzICM1MjkxNDguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBBZGQgdGhlIG1pbi10aHJlc2hvbGQgdG8gdGhlIG1pbiBsYXRlbmN5IGlmIHBvc3NpYmxlLiBGaXhlcyAjNTI5MTQ4LgoKMjAwOC0wNC0yMSAwNzo0NTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOiBTdHVwaWQgZWRpdG9yLCBJIHJlbW92ZWQgdGhhdCBsaW5lIGFzIGl0IHNob3VsZCBnbyBpbiB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgU3R1cGlkIGVkaXRvciwgSSByZW1vdmVkIHRoYXQgbGluZSBhcyBpdCBzaG91bGQgZ28gaW4geWV0LgoKMjAwOC0wNC0yMSAwNzo0MjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFJlbW92ZSBsaWJyYXJ5IHR5cGVzIGZybyBjb3JlIGRvY3MgYW5kIGhhdmUgdGhlbSBpbiBsaWJzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIFJlbW92ZSBsaWJyYXJ5IHR5cGVzIGZybyBjb3JlIGRvY3MgYW5kIGhhdmUgdGhlbSBpbiBsaWJzIGRvY3MuCgkgIFJlZm9ybWF0IGFuZCBjbGVhbnVwLiBBZGQgY29tbWVudCBmb3IgbWluaW9iamVjdCB0eXBlcy4KCjIwMDgtMDQtMjAgMTY6MzI6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IEZpeCBsZWFrOiBnX3N0cmRvd24gb3BlcmF0ZXMgb24gdGhlIHN0cmluZyBpbiBwbGFjZSwgd2hpbGUgZ19hc2NpaV9zdHJkb3duKCkgcmV0dXJucyBhIG5ld2x5LWFsbG9jYXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpOgoJICBGaXggbGVhazogZ19zdHJkb3duIG9wZXJhdGVzIG9uIHRoZSBzdHJpbmcgaW4gcGxhY2UsIHdoaWxlCgkgIGdfYXNjaWlfc3RyZG93bigpIHJldHVybnMgYSBuZXdseS1hbGxvY2F0ZWQgc3RyaW5nLgoKMjAwOC0wNC0yMCAwOTo1NToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgdGhlIFVSSSBwcm90b2NvbHMgYW5kIHRoZSBVUkkgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF91cmlfaGFuZGxlcl9pbmZvKSwKCSAgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFByaW50IHRoZSBVUkkgcHJvdG9jb2xzIGFuZCB0aGUgVVJJIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBlbGVtZW50LgoKMjAwOC0wNC0xOSAxNjowNTo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogVXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBpbnN0ZWFkIG9mIHRoZSBkZXByZWNhdGVkIGdfdmFsdWVfc2V0X3N0cmluZ190YWtlX293bmVyc2hpcCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEpOgoJICBVc2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQKCSAgZ192YWx1ZV9zZXRfc3RyaW5nX3Rha2Vfb3duZXJzaGlwKCkuCgoyMDA4LTA0LTE5IDE1OjQyOjE5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUmV0dXJuIHRoZSBvbGQgQ1JDIGluc3RlYWQgb2YgMCBpZiB3ZSBnaXZlIGEgTlVMTCBidWZmZXIgb3IgYSBidWZmZXIgd2l0aCBhIGxlbmd0aCBvZiAwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKF9nc3RfY3JjMzIpOgoJICBSZXR1cm4gdGhlIG9sZCBDUkMgaW5zdGVhZCBvZiAwIGlmIHdlIGdpdmUgYSBOVUxMIGJ1ZmZlcgoJICBvciBhIGJ1ZmZlciB3aXRoIGEgbGVuZ3RoIG9mIDAuCgoyMDA4LTA0LTE5IDE1OjM2OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXJpLmM6IEEgdmFsaWQgVVJJIHNjaGVtZSBjYW4gYWxzbyBpbmNsdWRlICcrJywgJy0nIGFuZCAnLicgYWRkaXRpb25hbCB0byBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcyBwZXIgUkZDIDMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9wcm90b2NvbF9jaGVja19pbnRlcm5hbCksCgkgIChnc3RfdXJpX2dldF9wcm90b2NvbCksIChnc3RfdXJpX2hhc19wcm90b2NvbCksCgkgIChnc3RfdXJpX2NvbnN0cnVjdCksIChnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSk6CgkgIEEgdmFsaWQgVVJJIHNjaGVtZSBjYW4gYWxzbyBpbmNsdWRlICcrJywgJy0nIGFuZCAnLicgYWRkaXRpb25hbAoJICB0byBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcyBwZXIgUkZDIDM5ODYgU2VjdGlvbiAzLjEuCgkgIEhhbmRsZSBVUkkgc2NoZW1lcyBjYXNlIGluc2Vuc2l0aXZlIGluIGFsbCBwbGFjZXMgYW5kIGNvbnZlcnQKCSAgdG8gbG93ZXItY2FzZSB3aGVuIGNvbnN0cnVjdGluZyBhbiBVUkkgb3Igc2V0dGluZyBhbiBVUkkgd2l0aAoJICB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UuIEZpeGVzIGJ1ZyAjNTI4ODY4LgoJICBBbGwgZWxlbWVudHMgY2FuIHN0aWxsIGFzc3VtZSAoYXMgYmVmb3JlKSB0aGF0IHRoZXkgd2lsbAoJICBnZXQgcGFzc2VkIFVSSXMgd2l0aCBhIGxvd2VyLWNhc2UgVVJJIHNjaGVtZSBieSB0aGUgR3N0VVJJSGFuZGxlcgoJICBpbnRlcmZhY2UuCgoyMDA4LTA0LTE3IDEwOjA5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRG9uJ3QgdXNlIGdfYXRvbWljX3NldF9pbnQgd2hlcmUgaXQncyBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgRG9uJ3QgdXNlIGdfYXRvbWljX3NldF9pbnQgd2hlcmUgaXQncyBub3QgbmVlZGVkLgoKMjAwOC0wNC0xNyAwODo0NToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCAyIGNhcHMgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2NhcHMpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCAyIGNhcHMgbGVha3MuCgoyMDA4LTA0LTE3IDA4OjM0OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogVXNlIGdfYXRvbWljX2ludF9zZXQoKSBoZXJlIHRvbyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnQgKyBnX2F0b21pY19pbnRfZ2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2F0b21pY19pbnRfc2V0KToKCSAgVXNlIGdfYXRvbWljX2ludF9zZXQoKSBoZXJlIHRvbyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnQgKwoJICBnX2F0b21pY19pbnRfZ2V0KCkuCgoyMDA4LTA0LTE3IDA3OjE0OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuKjogQVBJOiBEZXByZWNhdGUgZ3N0X2F0b21pY19pbnRfc2V0KCksIGdfYXRvbWljX2ludF9zZXQoKSBzaG91bGQgYmUgdXNlZCBub3cgdGhhdCB3ZSBkZXBlbmQgb24gbmV3IGVub3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogRGVwcmVjYXRlIGdzdF9hdG9taWNfaW50X3NldCgpLCBnX2F0b21pY19pbnRfc2V0KCkgc2hvdWxkIGJlIHVzZWQKCSAgbm93IHRoYXQgd2UgZGVwZW5kIG9uIG5ldyBlbm91Z2ggR0xpYi4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KSwgKGdzdF9kZWJ1Z19zZXRfY29sb3JlZCksCgkgIChnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKSwgKF9nc3RfZGVidWdfY2F0ZWdvcnlfbmV3KSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpOgoJICBVc2UgZ19hdG9taWNfaW50X3NldCgpIGluc3RlYWQgb2YgZ3N0X2F0b21pY19pbnRfc2V0KCkuCgoyMDA4LTA0LTE2IDE4OjQ4OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cXVlcnkuYzogQWxzbyB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIHRoZSBxdWVyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgQWxzbyB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIHRoZSBxdWVyaWVzLgoKMjAwOC0wNC0xNiAxODozODoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogVXNlIEdfR0lOVDY0X0NPTlNUQU5UIGluIHZhcmFyZ3MgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIFVzZSBHX0dJTlQ2NF9DT05TVEFOVCBpbiB2YXJhcmdzIGZ1bmN0aW9uLgoKMjAwOC0wNC0xNiAxNTo1MToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluaXRpYWxpemUgdGhlIHJlZ2lzdHJ5IG1hZ2ljIHdpdGggemVyb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyk6CgkgIEluaXRpYWxpemUgdGhlIHJlZ2lzdHJ5IG1hZ2ljIHdpdGggemVyb2VzLgoKMjAwOC0wNC0xNiAxNDoxODo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IEFkZCBjcmMzMiBjaGVja3N1bSB0byB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUgYW5kIGNoZWNrIHRoaXMgYmVmb3JlIGFjY2VwdGluZyBhIHJlZ2lzdHJ5IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoX2dzdF9jcmMzMiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQWRkIGNyYzMyIGNoZWNrc3VtIHRvIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZSBhbmQgY2hlY2sgdGhpcyBiZWZvcmUKCSAgYWNjZXB0aW5nIGEgcmVnaXN0cnkgZmlsZS4KCSAgQWxzbyBmcmVlIHRoZSBkYXRhIGxpc3Qgd2hlbiB3cml0aW5nIHRvIHRoZSByZWdpc3RyeSBmaWxlIGZhaWxzLgoKMjAwOC0wNC0xNiAxMzoxNjo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIGFuIGVsZW1lbnQgc3VwcG9ydHMgdGhlIFVyaSBpbnRlcmZhY2UsIHJldHVybnMgYSB2YWxpZCBwb2ludGVyIHRvIHRoZSBzdXBwb3J0ZWQgVVJJIHByb3RvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIElmIGFuIGVsZW1lbnQgc3VwcG9ydHMgdGhlIFVyaSBpbnRlcmZhY2UsIHJldHVybnMgYSB2YWxpZCBwb2ludGVyCgkgIHRvIHRoZSBzdXBwb3J0ZWQgVVJJIHByb3RvY29scyBidXQgdGhpcyBwb2ludGVyIGNvbnRhaW5zIG5vdGhpbmcKCSAgZG9uJ3QgdHJ5IHRvIHNhdmUgdGhhdCBhcyBpdCB3aWxsIGNvcnJ1cHQgdGhlIHJlZ2lzdHJ5LgoJICBEb24ndCB1bnJlZiB0aGUgcGx1Z2luIGlmIHdlIGFkZGVkIGl0IHRvIHRoZSByZWdpc3RyeSBhbHJlYWR5IGJ1dAoJICBmYWlsIHRvIGxvYWQgYSBmZWF0dXJlIGFzIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgdGFrZXMgb3duZXJzaGlwCgkgIG9mIHRoZSBwbHVnaW4uCgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoKMjAwOC0wNC0xNiAwODozMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogQ2xhcmlmeSBzb21lIHRhZyBpdGVtIGRvY3MgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIENsYXJpZnkgc29tZSB0YWcgaXRlbSBkb2NzIGFmdGVyIGRpc2N1c3Npb24gb24gaXJjLgoKMjAwOC0wNC0xNSAwNjoyMzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgcGx1Z2lucyAodGhleSBoYXZlIHRoZWlyIG93biBkb2NzKS4gVXBkYXRlIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZW1vdmUgY29tbWVudGVkIG91dCBwbHVnaW5zICh0aGV5IGhhdmUgdGhlaXIgb3duIGRvY3MpLiBVcGRhdGUKCSAgY29tbWVudHMuCgoyMDA4LTA0LTE1IDA2OjE2OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgR1NUX1BBUkFNX0NPTlRST0xMQUJMRSBhbmQgR1NUX1BBUkFNX1VTRVJfU0hJRlQuIE1vdmUgcGFyYW1zcGVjIGRvY3MgdG8gb3duIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgIEFkZCBHU1RfUEFSQU1fQ09OVFJPTExBQkxFIGFuZCBHU1RfUEFSQU1fVVNFUl9TSElGVC4gTW92ZSBwYXJhbXNwZWMKCSAgZG9jcyB0byBvd24gc2VjdGlvbi4KCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVGhpcyBub3cgb25seSBkb2N1bWVudHMgR1ZhbHVlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIFJlbW92ZSBHU1RfUEFSQU1fQ09OVFJPTExBQkxFLgoKMjAwOC0wNC0xNSAwNTo1NDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IENvcnJlY3QgZmlsZSBwYXRoLiBUZWxsIGFib3V0IGhvdyB0byB1c2UgLW92ZXJyaWRlcy50eHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBDb3JyZWN0IGZpbGUgcGF0aC4gVGVsbCBhYm91dCBob3cgdG8gdXNlIC1vdmVycmlkZXMudHh0LgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBTbWFsbCBkZXNpZ24gdXBkYXRlLgoKMjAwOC0wNC0xNCAxMjoxMjoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBhIHR5cG8gaW4gYSBkZWJ1ZyBtZXNzYWdlIGFuZCByZXZlcnQgY2hhbmdlIGZyb20geWVzdGVyZGF5IGFzIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIEZpeCBhIHR5cG8gaW4gYSBkZWJ1ZyBtZXNzYWdlIGFuZCByZXZlcnQgY2hhbmdlIGZyb20geWVzdGVyZGF5IGFzCgkgIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgd2lsbCBvbmx5IGZhaWwgaWYgc29tZXRoaW5nIGlzIHJlYWxseSB3cm9uZwoJICBhbHJlYWR5IGFuZCB3ZSBjYW4ndCBzdXJ2aXZlIGl0IGFueXdheS4KCjIwMDgtMDQtMTQgMDg6NDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFByZS1yZWdpc3RlciBHc3RHRXJyb3IgR1R5cGUgZnJvbSBhIHRocmVhZC1zYWZlIGNvbnRleHQgKGZpeGVzICM1Mjc5NjcpOyB1bnJlZiBlbnVtIHR5cGUgY2xhc3NlcyBpbiBkZWluaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCksIChnc3RfZGVpbml0KToKCSAgUHJlLXJlZ2lzdGVyIEdzdEdFcnJvciBHVHlwZSBmcm9tIGEgdGhyZWFkLXNhZmUgY29udGV4dAoJICAoZml4ZXMgIzUyNzk2Nyk7IHVucmVmIGVudW0gdHlwZSBjbGFzc2VzIGluIGRlaW5pdC4KCjIwMDgtMDQtMTMgMTk6NTg6NDMgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogTWVyZ2luZyBhbiBlbXB0eSBsaXN0IHdpdGggYW5vdGhlciBsaXN0IGluIEtFRVBfQUxMIG1vZGUgc2hvdWxkIHlpZWxkIGFuIGVtcHR5IGxpc3QgYXMgcmVzdWx0IGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbmUgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKToKCSAgTWVyZ2luZyBhbiBlbXB0eSBsaXN0IHdpdGggYW5vdGhlciBsaXN0IGluIEtFRVBfQUxMIG1vZGUgc2hvdWxkCgkgIHlpZWxkIGFuIGVtcHR5IGxpc3QgYXMgcmVzdWx0IGFuZCBub3QgdGhlIHNlY29uZCBsaXN0ICgjNTEyNTc4KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRhZyBtZXJnZSBtb2RlcyBhbmQgdGhlIGFmb3JlbWVudGlvbmVkIGJ1Zy4KCjIwMDgtMDQtMTMgMTg6NTA6MDUgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgb3JkZXIgaW4gdGhlIHRhYmxlICgjNTEyNTc3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW5lIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IGRlc2NyaXB0aW9uIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgdGFibGUgKCM1MTI1NzcpLgoKMjAwOC0wNC0xMyAxNzo1MTowMiArMDAwMCAgS3dhbmcgWXVsIFNlbyA8a3dhbmd5dWwuc2VvLmdtYWlsLmNvbT4KCgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaW50IGlmIGl0J3Mgbm90IGRlZmluZWQgeWV0LiBGaXhlcyBjb21waWxhdGlvbiB3aXRoIE1TVkM2IGFuZCBvdGhlciB2ZXJzaW9ucyB3aGVyZSBzb2NrbGVuX3QgaXMgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEt3YW5nIFl1bCBTZW8gIDxrd2FuZ3l1bC5zZW8gZ21haWwgY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgRGVmaW5lIHNvY2tsZW5fdCBhcyBpbnQgaWYgaXQncyBub3QgZGVmaW5lZCB5ZXQuIEZpeGVzIGNvbXBpbGF0aW9uCgkgIHdpdGggTVNWQzYgYW5kIG90aGVyIHZlcnNpb25zIHdoZXJlIHNvY2tsZW5fdCBpcyBub3QgZGVmaW5lZCBpbgoJICB0aGUgd2luZG93cyBoZWFkZXJzICgjNTE4MDIyKS4KCjIwMDgtMDQtMTMgMTM6NTQ6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIGZhaWxzIG91ciByZWZlcmVuY2UgdG8gdGhlIHBsdWdpbiBpcyBpbnZhbGlkIHNvIGRvbid0IHRyeSB0byB1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBJZiBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIGZhaWxzIG91ciByZWZlcmVuY2UgdG8gdGhlIHBsdWdpbiBpcwoJICBpbnZhbGlkIHNvIGRvbid0IHRyeSB0byB1c2UgaXQgYW55bW9yZSBhbmQgaW5zdGVhZCBlcnJvciBvdXQuCgoyMDA4LTA0LTEyIDIwOjUyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogRGUtY3J1ZnQgYSBiaXQuIElmIG5vIGFyZ3VtZW50IGlzIHNwZWNpZmllZCwgcHJpbnQgYWxsIGVsZW1lbnRzIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pLCAobWFpbik6CgkgIERlLWNydWZ0IGEgYml0LiBJZiBubyBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIHByaW50IGFsbCBlbGVtZW50cyBpbgoJICBYTUwgc3ludGF4IHJhdGhlciB0aGFuIGEgZnJlZXN0eWxlIGxpc3Qgb2YgZWxlbWVudHMgbGlrZSBnc3QtaW5zcGVjdC4KCSAgQWxzbywgZG9uJ3QgcHJpbnQgWE1MIGhlYWRlciBjaHVuayB1bmxlc3Mgd2UgYWN0dWFsbHkgaGF2ZSBzb21ldGhpbmcKCSAgdG8gcHJpbnQgKGllLiBkb24ndCBwcmludCBpdCBiZWZvcmUgYW4gZXJyb3IgbWVzc2FnZSk7IHByaW50IGVycm9yCgkgIG1lc3NhZ2UgdG8gc3RkZXJyIG5vdCBzdGRvdXQuIFJlbW92ZSBzdXBwb3J0IGZvciBwcmludGluZyBwbHVnaW4KCSAgaW5mbyAoaXQgd291bGQganVzdCBvdXRwdXQgc29tZXRoaW5nIGZyZWVzdHlsZSBhbG9uZyB0aGUgbGluZXMgb2YKCSAgZ3N0LWluc3BlY3Qgc28gZmFyKSwgd2hpY2ggZml4ZXMgIzUxNDUwNy4gQWxzbyBhZGQgbGljZW5zZSBoZWFkZXIuCgoyMDA4LTA0LTExIDA5OjI3OjQ0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIE1hYyBPUyBYIGxvdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDQtMTEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgIE1hYyBPUyBYIGxvdmUuLi4KCSAgKiBjb25maWd1cmUuYWM6IE1lcmdlIHBsYXRmb3JtIHNwZWNpZmljIGRlZmluZXMsIGludHJvZHVjZSBhIG5ldwoJICBkZWZpbmUgb24gT1MgWCB0byByZW1lbWJlciB0aGF0IGZvcmtpbmcgd2hlbiB1cGRhdGluZyByZWdpc3RyeSBpcwoJICB1bnNhZmUuCgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBVcGRhdGVkIHRvIGluY2x1ZGUgZ3N0LWxpYnMgaW4gdGhlIGJhZAoJICBtb2R1bGUuCgkgICogZ3N0L2dzdC5jOiBEb24ndCBmb3JrIHdoZW4gdXBkYXRpbmcgcmVnaXN0cnkgaWYgR1NUX0hBVkVfVU5TQUZFX0ZPUksKCSAgaXMgZGVmaW5lZC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOiBGaXhlZCBhIGJvZ3VzCgkgIGNvbmRpdGlvbiB0aGF0IGxlYWRzIHRvIGFic29sdXRlbHkgbm8gcGx1Z2lucyBiZWluZyByZWdpc3RlcmVkIG9uCgkgIE9TIFguCgoyMDA4LTA0LTEwIDIwOjQ2OjUxICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgQWRkIGdzdF9wYWRfYWRkXypfcHJvYmVfZnVsbCgpIGZ1bmN0aW9ucyB3aXRoIGEgbm90aWZ5IGNhbGxiYWNrIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGZyZWUgdGhlIGRhdGEgaXQgcGFzc2VzIHRvIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcGFkX2FkZF8qX3Byb2JlX2Z1bGwoKSBmdW5jdGlvbnMgd2l0aCBhIG5vdGlmeSBjYWxsYmFjayB0aGF0CgkgIGxldHMgdGhlIGNhbGxlciBmcmVlIHRoZSBkYXRhIGl0IHBhc3NlcyB0byB0aGUgcHJvYmUgZnVuY3Rpb25zLiBUaGlzCgkgIGlzIHVzZWZ1bCBmb3IgYmluZGluZ3Mgc3VjaCBhcyBnc3QtcHl0aG9uIG9yIGdzdHJlYW1lcm1tICgjNTI2ODE0KS4KCSAgQVBJOiBnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwKCSAgQVBJOiBnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbAoJICBBUEk6IGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1pbmltYWwgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSBmcmVlaW5nIHRoZSBkYXRhIGFjdHVhbGx5IHdvcmtzCgkgIGFzIGV4cGVjdGVkLgoJICAqIHRlc3RzL2JlbmNobWFya3MvLmN2c2lnbm9yZToKCSAgUmFuZG9tIGN2c2lnbm9yZSBhZGRlbmR1bS4KCjIwMDgtMDQtMTAgMTk6MTM6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5oOiBNZW50aW9uIEdzdERlYnVnR3JhcGhEZXRhaWxzIGVudW0gdHlwZSBpbiBkb2MgYmx1cmIgc28gd2UgZ2V0IGEgbGluayB0byBpdCBpbiB0aGUgZG9jcyAoc2luY2UgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDogKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEVfV0lUSF9UUyksCgkgIChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKToKCSAgTWVudGlvbiBHc3REZWJ1Z0dyYXBoRGV0YWlscyBlbnVtIHR5cGUgaW4gZG9jIGJsdXJiIHNvIHdlIGdldCBhIGxpbmsKCSAgdG8gaXQgaW4gdGhlIGRvY3MgKHNpbmNlIHRoZXNlIGFyZSBtYWNyb3MgdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMKCSAgd29uJ3QgYmUgc2hvd24gaW4gdGhlIGRvY3Mgb3RoZXJ3aXNlKS4KCjIwMDgtMDQtMTAgMTQ6MTA6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRG8gbm90IGFib3J0IG9uIG91dCBvZiBtZW1vcnkgZm9yIHBhZF9hbGxvY19idWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRG8gbm90IGFib3J0IG9uIG91dCBvZiBtZW1vcnkgZm9yIHBhZF9hbGxvY19idWZmZXIuCgoyMDA4LTA0LTEwIDEzOjU5OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBSZW1vdmUgYmxhbmsgbGluZSBiZXR3ZWVuIHN5bWJvbCBuYW1lIGFkIHBhcmFtZXRlcnMgdG8gZml4IGd0a2RvYyB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBSZW1vdmUgYmxhbmsgbGluZSBiZXR3ZWVuIHN5bWJvbCBuYW1lIGFkIHBhcmFtZXRlcnMgdG8gZml4IGd0a2RvYwoJICB3YXJuaW5nLgoKMjAwOC0wNC0wOSAyMjozNzoyMiArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIEV4cG9zZSBnc3Rfc2VnbWVudF9jb3B5KCkgdG8gbWFrZSB0aGluZ3MgZWFzaWVyIGZvciB0aGUgYysrIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6ICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEV4cG9zZSBnc3Rfc2VnbWVudF9jb3B5KCkgdG8gbWFrZSB0aGluZ3MgZWFzaWVyIGZvciB0aGUgYysrIGJpbmRpbmdzLgoJICBGaXhlcyAjNTE4OTMyLgoJICBBUEk6IGdzdF9zZWdtZW50X2NvcHkoKQoKMjAwOC0wNC0wOSAyMToyNzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IGNvbnN0IHBvc2l0aW9uOyByZWYgR1R5cGUgY2xhc3NlcyBmb3IgZW51bSB0eXBlcyB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBHTGliIHZlcnNpb25zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGluaXRfcG9zdCk6CgkgIEZpeCBjb25zdCBwb3NpdGlvbjsgcmVmIEdUeXBlIGNsYXNzZXMgZm9yIGVudW0gdHlwZXMgdG8gd29yawoJICBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gR0xpYiB2ZXJzaW9ucyA8IDIuMTYuCgoyMDA4LTA0LTA5IDE4OjI2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OiBGaXggc29tZSB0eXBvcyBhbmQgc2V0IHRoZSBlc3RpbWF0ZWQgdG90YWwgZm9yIHB1c2ggbW9kZSB0byAtMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBGaXggc29tZSB0eXBvcyBhbmQgc2V0IHRoZSBlc3RpbWF0ZWQgdG90YWwgZm9yIHB1c2ggbW9kZSB0byAtMS4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKToKCSAgU2V0IGJ1ZmZlcmluZy1sZWZ0IHRvIDAgYXMgd2UncmUgbm90IGJ1ZmZlcmluZyBieSBkZWZhdWx0LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBJbXBsZW1lbnQgQlVGRkVSSU5HIHF1ZXJ5LgoKMjAwOC0wNC0wOSAxNzozNDo1NCArMDAwMCAgTWlsb3N6IERlcmV6eW5za2kgPGludGVybmFsZXJyb3JAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCB0d28gbmV3IGVycm9yIGNvZGVzIGZvciBlbmNyeXB0ZWQgY29udGVudC4gRml4ZXMgIzUyNDY1OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBNaWxvc3ogRGVyZXp5bnNraSA8aW50ZXJuYWxlcnJvciBnbWFpbCBjb20+CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCB0d28gbmV3IGVycm9yIGNvZGVzIGZvciBlbmNyeXB0ZWQgY29udGVudC4gRml4ZXMgIzUyNDY1OS4KCSAgQVBJOiBHU1RfU1RSRUFNX0VSUk9SX0RFQ1JZUFQKCSAgQVBJOiBHU1RfU1RSRUFNX0VSUk9SX0RFQ1JZUFRfTk9LRVkKCjIwMDgtMDQtMDkgMTM6MTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cXVlcnkuaDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBGaXggdHlwby4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbnMuCgoyMDA4LTA0LTA5IDA4OjE5OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IEZpeCBpbXBlcmZlY3QgdGltZXN0YW1wL29mZnNldCBjaGVja3Mgd2hlbiB3ZSBnZXQgYW5vdGhlciBORVdTRUdNRU5UIGV2ZW50IGFmdGVyIHByb2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV9zdGFydCk6CgkgIEZpeCBpbXBlcmZlY3QgdGltZXN0YW1wL29mZnNldCBjaGVja3Mgd2hlbiB3ZSBnZXQgYW5vdGhlciBORVdTRUdNRU5UCgkgIGV2ZW50IGFmdGVyIHByb2Nlc3Npbmcgc29tZSBkYXRhLiBGaXhlcyBidWcgIzUyNjA0Mi4KCjIwMDgtMDQtMDggMjA6Mjg6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZW5hbWUgX2F2YWlsIC0+IF9yYW5nZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcmFuZ2UpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbmFtZSBfYXZhaWwgLT4gX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlCgoyMDA4LTA0LTA4IDIwOjE3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGJ1c3kgZmllbGQgYW5kIHF1YXJrIGZvciB0aGUgYnVmZmVyaW5nIHF1ZXJ5IHNvIHRoYXQgdGhlIGFwcCBjYW4gb25seSB1c2UgdGhlIHF1ZXJ5IHRvIHNlZSBpZiBidWZmZXJpbmcgaXMgaW4gcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKSwgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIGJ1c3kgZmllbGQgYW5kIHF1YXJrIGZvciB0aGUgYnVmZmVyaW5nIHF1ZXJ5IHNvIHRoYXQgdGhlIGFwcCBjYW4KCSAgb25seSB1c2UgdGhlIHF1ZXJ5IHRvIHNlZSBpZiBidWZmZXJpbmcgaXMgaW4gcHJvZ3Jlc3MuCgoyMDA4LTA0LTA4IDE5OjU5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmVvcmRlciB0aGUgbWVzc2FnZSBkb2NzIGFuZCBoZWFkZXJzIGZvciBjbGFyaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSksIChnc3RfcXVlcnlfc2V0X2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfc3RhdHMpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19zdGF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19hdmFpbCksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX2F2YWlsKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVvcmRlciB0aGUgbWVzc2FnZSBkb2NzIGFuZCBoZWFkZXJzIGZvciBjbGFyaXR5LgoJICBBZGQgYWRpdGlvbmFsIGJ1ZmZlcmluZyBzdGF0cyBBUEkgZm9yIG1lc3NhZ2VzLgoJICBBZGQgYnVmZmVyaW5nIHF1ZXJ5LgoJICBDb252ZXJ0IHNvbWUgbGVmdG92ZXIgcXVlcmllcyB0byB1c2UgR3N0UXVhcmsuCgkgIEFQSTogZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IEdTVF9RVUVSWV9CVUZGRVJJTkcKCSAgQVBJOiBHc3RCdWZmZXJpbmdNb2RlCgkgIEFQSTogZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50CgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50CgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfYXZhaWwKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX2F2YWlsCgoyMDA4LTA0LTA4IDE5OjUyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogVXNlIEdzdFF1YXJrIGZvciBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX3N0YXJ0KSwgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyksIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2FzeW5jX3N0YXJ0KToKCSAgVXNlIEdzdFF1YXJrIGZvciBtZXNzYWdlcy4KCjIwMDgtMDQtMDggMTk6Mzk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVhcmsuKjogQWRkIHNvbWUgbW9yZSBxdWFya3MgbmVlZGVkIGZvciBtZXNzYWdlcyBhbmQgcXVlcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyBuZWVkZWQgZm9yIG1lc3NhZ2VzIGFuZCBxdWVyaWVzLgoKMjAwOC0wNC0wOCAxOToxNDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDogUmVtb3ZlIHRoZSAibm9uZSIgYnVmZmVyaW5nIG1vZGUsIFNUUkVBTSBpcyBhIGdvb2QgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBSZW1vdmUgdGhlICJub25lIiBidWZmZXJpbmcgbW9kZSwgU1RSRUFNIGlzIGEgZ29vZCBkZWZhdWx0LgoJICBNb3ZlIGVzdGltYXRlZC10aW1lIHRvIHRoZSBhdmFpbCBxdWVyeSwgdGhhdCdzIHdoZW4gaXQgd2lsbCBiZSBuZWVkZWQuCgkgIE90aGVyIHNtYWxsIHR5cG8gZml4ZXMgYW5kIHVwZGF0ZXMuCgoyMDA4LTA0LTA3IDEzOjI3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZGV4LmM6IERvbid0IHB1dCBkZXNjcmlwdGlvbnMgaW50byB0aGUgbmljayBmaWVsZCBvZiBhIEdFbnVtVmFsdWU6IGl0J3Mgbm90IG1lYW50IGZvciB0aGF0IGFuZCBzb21lIGxhbmd1YWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X3Jlc29sdmVyX2dldF90eXBlKToKCSAgRG9uJ3QgcHV0IGRlc2NyaXB0aW9ucyBpbnRvIHRoZSBuaWNrIGZpZWxkIG9mIGEgR0VudW1WYWx1ZTogaXQncyBub3QKCSAgbWVhbnQgZm9yIHRoYXQgYW5kIHNvbWUgbGFuZ3VhZ2UgYmluZGluZ3MgcmVseSBvbiB0aGUgbmljayBmaWVsZCB0bwoJICBjb25zdHJ1Y3QgY29uc3RhbnRzIGFuZCB0aGUgbGlrZS4gRml4ZXMgIzUyNjcwNS4KCjIwMDgtMDQtMDcgMTA6NDg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNZXJnZSBvdGhlciBjaGFuZ2VzIGZyb20gMC4xMC4xOSByZWxlYXNlIGJyYW5jaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTkVXUzoKCSAgKiBSRUxFQVNFOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICBNZXJnZSBvdGhlciBjaGFuZ2VzIGZyb20gMC4xMC4xOSByZWxlYXNlIGJyYW5jaC4KCjIwMDgtMDQtMDYgMDg6NTQ6NDcgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IEFjdHVhbGx5IGJ1aWxkIGRsbHMgd2hlbiBjcm9zcy1jb21waWxpbmcgd2l0aCBtaW5ndzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEFjdHVhbGx5IGJ1aWxkIGRsbHMgd2hlbiBjcm9zcy1jb21waWxpbmcgd2l0aCBtaW5ndzMyLgoJICBGaXhlcyBidWcgIzUyNjI0Ny4KCjIwMDgtMDQtMDUgMTA6NTg6MTEgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC5jOiBGaXggY29tcGlsYXRpb24gb2YgR3N0UG9sbCB3aXRoIG1pbmd3MzIuIEZpeGVzIGJ1ZyAjNTI2MjM2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBGaXggY29tcGlsYXRpb24gb2YgR3N0UG9sbCB3aXRoIG1pbmd3MzIuIEZpeGVzIGJ1ZyAjNTI2MjM2LgoKMjAwOC0wNC0wNCAxMzo0MzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgVXBkYXRlIGRlc2lnbiBkb2NzIHdpdGggbW9yZSBidWZmZXJpbmcgaWRlYXMuCgoyMDA4LTA0LTAzIDIxOjE1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gdG8gMC4xMC4xOS4xIGFmdGVyIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMTkuMSBhZnRlciB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoKMjAwOC0wNC0wMyAxNjo0NTowMiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIHRvIHdvcmsgd2l0aCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyB0byB3b3JrIHdpdGggZG9jcwoKMjAwOC0wNC0wMyAxNDo0OTowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBSZXZlcnQgcGFydCB0aGF0IGJlbG9uZ3MgdG8gdGhlIHByZXNldCBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgcGFydCB0aGF0IGJlbG9uZ3MgdG8gdGhlIHByZXNldCBwYXRjaC4KCjIwMDgtMDQtMDMgMTQ6MjY6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIHFvdXRlcyB0byB0aGUgZGVmaW5lLiBGaXhlcyAjIDUyNTk2MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgcW91dGVzIHRvIHRoZSBkZWZpbmUuIEZpeGVzICMgNTI1OTYxLgoKMjAwOC0wNC0wMyAwNzo1MjozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy86IFVzZSBHU2xpY2Ugd2hlbiBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKF9maWxlX2luZGV4X2lkX2ZyZWUpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksIChnc3RfZmlsZV9pbmRleF9hZGRfaWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfZ2V0X2Fzc29jX2VudHJ5KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2ZyZWVfZm9ybWF0KSwKCSAgKGdzdF9tZW1faW5kZXhfZnJlZV9pZCksIChnc3RfbWVtX2luZGV4X2FkZF9pZCksCgkgIChnc3RfbWVtX2luZGV4X2luZGV4X2Zvcm1hdCk6CgkgIFVzZSBHU2xpY2Ugd2hlbiBwb3NzaWJsZS4KCjIwMDgtMDQtMDIgMTc6NDU6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgY29udHJvbCBwb2ludHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVybmFsKToKCSAgVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgY29udHJvbCBwb2ludHMuCgoyMDA4LTA0LTAyIDE3OjIxOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogQ2xlYW51cCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgQ2xlYW51cCBwcm9wZXJ0aWVzLgoJICBGaXggcGFkIGxlYWsgd2hlbiBwZWVyIHF1ZXJ5IGZhaWxzLgoJICBXZSBjYW4gc3RpbGwgdHlwZWZpbmQgd2hlbiB0aGUgcGVlciByZXR1cm5zIC0xLgoJICBBZGQgcHJvcGVydHkgdG8gZm9yY2UgY2FwcyBhbmQgYnlwYXNzIHR5cGVmaW5kaW5nLiBUaGlzIHdpbGwgYmUgdXNlZCBpbgoJICB1cmlkZWNvZGViaW4uCgkgIEFQSTo6Zm9yY2UtY2FwcwoKMjAwOC0wNC0wMSAxMzo1NToyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWIgMi4xMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWIgMi4xMi4KCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19uZXdfZW1wdHkpLCAoX2dzdF9jYXBzX2ZyZWUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBVbmNvbmRpdGlvbmFsbHkgdXNlIEdTbGljZSBmb3IgYWxsb2NhdGlvbi4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9uZXcpLCAoZ3N0X3NlZ21lbnRfZnJlZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJlZSk6CgkgIFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpb24uCgoyMDA4LTA0LTAxIDEzOjQ4OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvOiBSZXF1aXJlIGEgbmV3IGVub3VnaCBmbGV4IGFuZCBiaXNvbiBhbmQgcmVtb3ZlIHRoZSBwYXJzZXIgaGFja3MgdG8gdXNlIGEgcHJlLXJlZ2VuZXJhdGVkIHZlcnNpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgUmVxdWlyZSBhIG5ldyBlbm91Z2ggZmxleCBhbmQgYmlzb24gYW5kIHJlbW92ZSB0aGUgcGFyc2VyIGhhY2tzIHRvIHVzZQoJICBhIHByZS1yZWdlbmVyYXRlZCB2ZXJzaW9uLgoKMjAwOC0wNC0wMSAxMDoyNTozNSArMDAwMCAgSmFzb24gWmhhbyA8RTM0MjNDQG1vdG9yb2xhLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIGEgY29uZmlndXJlIHN3aXRjaCB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nIGluIGdzdF9pbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wNC0wMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgcGF0Y2ggYnk6IEphc29uIFpoYW8gPEUzNDIzQ0Btb3Rvcm9sYS5jb20+CgkgICogY29uZmlndXJlLmFjOiBBZGQgYSBjb25maWd1cmUgc3dpdGNoIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcKCSAgaW4gZ3N0X2luaXQuCgkgIEZpeGVzICM1MjI4ODIuCgoyMDA4LTAzLTMxIDEzOjQ3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWNPUyBoYXMgcGx1Z2lucyB1bmRlciAuc28gb3IgdW5kZXIgLmR5bGliLiBBZGQgZGV0ZWN0aW9uIGZvciBNYWNPUyBhbmQgaGFuZGxlIHRoaXMgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBNYWNPUyBoYXMgcGx1Z2lucyB1bmRlciAuc28gb3IgdW5kZXIgLmR5bGliLiBBZGQgZGV0ZWN0aW9uIGZvciBNYWNPUwoJICBhbmQgaGFuZGxlIHRoaXMgY2FzZS4KCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBhIGNvbW1lbnQgaGVyZSBkZXNjcmliaW5nLCB3aHkgd2Ugc3RhdCBlYWNoIHBsdWdpbiBhbmQgbm90IHRyeSB0bwoJICBiZSBzbWFydC4KCjIwMDgtMDMtMzEgMTA6MjE6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBbHNvIHVuc2V0IHRoZSBHQVAgZmxhZyBvbiBidWZmZXJzIGlmIHdlJ3JlIHdvcmtpbmcgaW5wbGFjZSBidXQgdGhlIGVsZW1lbnQgaXMgbm90IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBBbHNvIHVuc2V0IHRoZSBHQVAgZmxhZyBvbiBidWZmZXJzIGlmIHdlJ3JlIHdvcmtpbmcgaW5wbGFjZSBidXQKCSAgdGhlIGVsZW1lbnQgaXMgbm90IEdBUC1hd2FyZS4KCSAgTWFyayBhIGNvbW1lbnQgYXMgRklYTUUgMC4xMS4KCjIwMDgtMDMtMzEgMDg6MzI6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IHR5cGUgaW4gbG9nIG1lc3NhZ2UgYW5kIGFkZCBvbmUgdG8gZWFzZSBzZWVpbmcgaG93IGxvbmcgcmVnaXN0cnkgY2FjaGUgdmVyaWZpY2F0aW9uIHRha2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCB0eXBlIGluIGxvZyBtZXNzYWdlIGFuZCBhZGQgb25lIHRvIGVhc2Ugc2VlaW5nIGhvdyBsb25nIHJlZ2lzdHJ5CgkgIGNhY2hlIHZlcmlmaWNhdGlvbiB0YWtlcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgT25seSB0ZXN0IHBsdWdpbiBmaWxlbmFtZXMgYWdhaW5zdCBHX01PRFVMRV9TVUZGSVguCgoyMDA4LTAzLTMxIDA3OjQ5OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBJbXByb3ZlIGhhbmRsaW5nIGdob3N0L3Byb3h5IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEltcHJvdmUgaGFuZGxpbmcgZ2hvc3QvcHJveHkgcGFkcy4KCjIwMDgtMDMtMjcgMTk6MTM6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEV4cG9zZSBtYWNybyB0byBkb2NzIGFuZCBmaXggbGluayB0byBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBFeHBvc2UgbWFjcm8gdG8gZG9jcyBhbmQgZml4IGxpbmsgdG8gaXQuCgoyMDA4LTAzLTI3IDE1OjIzOjU1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IFdoZW4gY2FsY3VsYXRpbmcgR0RQIGJvZHkgQ1JDLCB1c2UgdGhlIGNvcnJlY3QgcG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCk6CgkgIFdoZW4gY2FsY3VsYXRpbmcgR0RQIGJvZHkgQ1JDLCB1c2UgdGhlIGNvcnJlY3QgcG9pbnRlci4KCSAgRml4ZXMgcGFydCBvZiAjNTIyNDAxLgoKMjAwOC0wMy0yNCAxNjo1NjozNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogSWRlbnRpdHkgaXMgbm90IGFsd2F5cyBhIHBhc3N0aHJvdWdoIGVsZW1lbnQsIGl0IGNhbiBtb2RpZnkgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIElkZW50aXR5IGlzIG5vdCBhbHdheXMgYSBwYXNzdGhyb3VnaCBlbGVtZW50LCBpdCBjYW4gbW9kaWZ5IHRoZSBidWZmZXIKCSAgdGltZXN0YW1wcyB3aGVuIGl0IGhhcyBhIGRhdGFyYXRlIGFuZCBvcGVyYXRlcyBpbiBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBXZSB0aGVyZWZvcmUgbWFrZSBpdCBhbiBpbl9wbGFjZSBmaWx0ZXIgd2l0aCBhIGN1c3RvbSBidWZmZXIgcHJlcGFyZQoJICBmdW5jdGlvbiB0aGF0IGNvbmRpdGlvbmFsbHkgbWFrZXMgdGhlIGlucHV0IGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZQoJICB3aGVuIG5lZWRlZC4gIEZpeGVzICM1MjM5ODUuCgoyMDA4LTAzLTI0IDE2OjQ0OjI1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4gRml4ZXMgIzUyMzk3OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuIEZpeGVzICM1MjM5NzguCgoyMDA4LTAzLTI0IDE2OjMxOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsc28gcmV0cnkgb3VyIHBvbGxfd2FpdCB3aGVuIHdlIGdldCBFQUdBSU4uIEZpeGVzICM1MjQwNDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQWxzbyByZXRyeSBvdXIgcG9sbF93YWl0IHdoZW4gd2UgZ2V0IEVBR0FJTi4gRml4ZXMgIzUyNDA0MS4KCjIwMDgtMDMtMjQgMTA6Mzg6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiB0cnlpbmcgdG8gbWFrZSByb29tIGluIHRoZSBxdWV1ZSwgYnVtcCB0aGUgbWF4IGFsbG93ZWQgYnVmZmVycyBiaWdnZXIgdGhhbiB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpOgoJICBXaGVuIHRyeWluZyB0byBtYWtlIHJvb20gaW4gdGhlIHF1ZXVlLCBidW1wIHRoZSBtYXggYWxsb3dlZCBidWZmZXJzCgkgIGJpZ2dlciB0aGFuIHRoZSBjdXJyZW50IGFtb3VudCBvZiBidWZmZXJzIGluIHRoZSBxdWV1ZS4gdGhpcyBmaXhlcyBzb21lCgkgIG5hc3R5IGRlYWRsb2NrcyBpbiBtdWx0aXF1ZXVlIHdoZW4gZHluYW1pY2FsbHkgY2hhbmdpbmcgdGhlIGxpbWl0cyBvZgoJICB0aGUgcXVldWUuCgoyMDA4LTAzLTI0IDEwOjMzOjQxICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgZ3N0L2dzdGNhcHMuKjogQ29uc3RpZnkgdGhlIGZpZWxkIGdjaGFyICogcGFyYW1zIGluIHNldF9zaW1wbGUgYW5kIGZyaWVuZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc2V0X3NpbXBsZSksCgkgIChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksIChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIENvbnN0aWZ5IHRoZSBmaWVsZCBnY2hhciAqIHBhcmFtcyBpbiBzZXRfc2ltcGxlIGFuZCBmcmllbmRzLgoJICBGaXhlcyAjNTIyMzI2LgoKMjAwOC0wMy0yNCAxMDoyOTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBUcmFuc2Zvcm0gYSBHc3RPYmplY3QgdG8gYSBtb3JlIG1lYW5pbmdmdWxsIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZSBvYmplY3QgdHlwZSBpbiBhZGRpdGlvbiB0byBpdHMgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fb2JqZWN0X3N0cmluZyk6CgkgIFRyYW5zZm9ybSBhIEdzdE9iamVjdCB0byBhIG1vcmUgbWVhbmluZ2Z1bGwgc3RyaW5nIHRoYXQgaW5jbHVkZXMgdGhlCgkgIG9iamVjdCB0eXBlIGluIGFkZGl0aW9uIHRvIGl0cyBuYW1lLgoKMjAwOC0wMy0yMyAxNToxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgYnVnbnVtYmVyIHRvIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgYnVnbnVtYmVyIHRvIGNvbW1pdC4KCjIwMDgtMDMtMjMgMTQ6MjQ6NDggKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgoyMDA4LTAzLTIzIDExOjQwOjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUmVuYW1lIGNvbnN0YW50IGV2ZXJ5d2hlcmUgYW5kIGRvbid0IGZvcmdldCBvbmUgb2NjdXJlbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpOgoJICBSZW5hbWUgY29uc3RhbnQgZXZlcnl3aGVyZSBhbmQgZG9uJ3QgZm9yZ2V0IG9uZSBvY2N1cmVuY2UuCgoyMDA4LTAzLTIzIDExOjI5OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgZXZlbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIGFsbG93cyB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzcy4gVW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKToKCSAgQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgZXZlbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIGFsbG93cwoJICB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzcy4gVW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgdXN1YWxseSBjb21lcyB3aXRoCgkgIHBlcmZvcm1hbmNlIHBlbmFsaXR5LgoKMjAwOC0wMy0yMyAxMToyMzozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGluc3RlYWQgb2YgYWx3YXlzIDMyIGJpdC4gRml4ZXMgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3NlcyBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGluc3RlYWQgb2YgYWx3YXlzIDMyIGJpdC4gRml4ZXMKCSAgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3NlcyBvbiBpYTY0IGFuZCBmcmllbmRzLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBCdW1wIGJpbmFyeSByZWdpc3RyeSBmb3JtYXQgdmVyc2lvbiBmb3IgdGhpcyBhcyBpdCBjaGFuZ2VzIHRoZQoJICBmb3JtYXQgb24gdGhvc2UgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUgdW5hbGlnbmVkIGFjY2VzcwoJICBhbmQgNjQgYml0IHBvaW50ZXJzLgoKMjAwOC0wMy0yMiAxNDo1NjoxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRGVmaW5lIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgaWYgaXQncyB1bmRlZmluZWQgKEdMaWIgPCAyLjEzLjApIGFuZCB1c2UgaXQgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfcmVzdG9yZSksCgkgIChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfc2lnaGFuZGxlciksCgkgIChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfc2V0dXApLCAoZ3N0X2NoZWNrX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2NsYXNzX2luaXQpOgoJICBEZWZpbmUgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBpZiBpdCdzIHVuZGVmaW5lZCAoR0xpYiA8IDIuMTMuMCkgYW5kCgkgIHVzZSBpdCBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLgoJICBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHVzYWdlLCBmZXdlciBhbGxvY2F0aW9ucyBhbmQgdGh1cyBsZXNzCgkgIG1lbW9yeSBkZWZyYWdtZW50YXRpb24uIEZpeGVzIGJ1ZyAjNTIzODA2LgoKMjAwOC0wMy0yMiAxNDo1MToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgR1NUX0lTX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QsIEdTVF9QQVJBTV9TUEVDX01JTklfT0JKRUNUCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KSwKCSAgKGdzdF9wYXJhbV9zcGVjX21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFQSTogQWRkIEdTVF9JU19QQVJBTV9TUEVDX01JTklfT0JKRUNULCBHU1RfUEFSQU1fU1BFQ19NSU5JX09CSkVDVAoJICBHU1RfVFlQRV9QQVJBTV9NSU5JX09CSkVDVCBhbmQgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdC4gQWxzbyBtb3ZlCgkgIEdzdFBhcmFtU3BlY01pbmlPYmplY3QgaW50byBhIHB1YmxpYyBoZWFkZXIgZm9yIHRoaXMuCgkgIFRoaXMgbWFrZSBHc3RNaW5pT2JqZWN0IGEgYml0IG1vcmUgY29uc2lzdGVudCB3aXRoIEdPYmplY3QgYW5kIG1ha2VzCgkgIGl0IHBvc3NpYmxlIHRvIGV4dGVuZCB0aGUgcGFyYW0gc3BlY3MuCgkgIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QgaXMgbWFpbmx5IHVzZWZ1bCBmb3Igc2V0X3Byb3BlcnR5IG1ldGhvZHMuCgkgIEZpeGVzIGJ1ZyAjNTIzNzk4LgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFByaW50IHNvbWV0aGluZyB1c2VmdWwgZm9yIEdzdE1pbmlPYmplY3QgcHJvcGVydGllcyBhbmQgbm90IGp1c3QKCSAgInVua25vd24gdHlwZSIuCgoyMDA4LTAzLTIxIDE2OjExOjUxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBDYWxsIHRoZSB2ZXJzaW9uIEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBhZGQgaXQgdG8gdGhlIChwcml2YXRlIHBhcnQpIG9mIHRoZSBkb2NzIHRvIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQ2FsbCB0aGUgdmVyc2lvbiBHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSIHRvIGJlIG1vcmUgY29uc2lzdGVudAoJICBhbmQgYWRkIGl0IHRvIHRoZSAocHJpdmF0ZSBwYXJ0KSBvZiB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkLgoKMjAwOC0wMy0yMSAxNTo1MjoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IERvbid0IHVzZSBHU1RfTUFKT1JNSU5PUiBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uLiBJbnN0ZWFkIGhhcmRjb2RlIGEgdmFsdWUgdGhhdCBtdXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgRG9uJ3QgdXNlIEdTVF9NQUpPUk1JTk9SIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24uIEluc3RlYWQKCSAgaGFyZGNvZGUgYSB2YWx1ZSB0aGF0IG11c3QgYmUgY2hhbmdlZCB3aGVuZXZlciB0aGUgZm9ybWF0IGNoYW5nZXMKCSAgaW4gYW4gaW5jb21wYXRpYmxlIHdheS4KCSAgQWxzbyBkb24ndCBHU1RfRVJST1Igd2hlbiB0aGVyZSBpcyBhIHZlcnNpb24gbWlzbWF0Y2gsIGp1c3QKCSAgcmVnZW5lcmF0ZSB0aGUgcmVnaXN0cnkgc2lsZW50bHkuCgoyMDA4LTAzLTIxIDAwOjM1OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBkZXZlbG9wbWVudCAtIDAuMTAuMTguMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLSAwLjEwLjE4LjEKCj09PSByZWxlYXNlIDAuMTAuMTggPT09CgoyMDA4LTAzLTIxIDAwOjIwOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE4CgoyMDA4LTAzLTIwIDIzOjI2OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTAzLTE4IDEyOjE3OjU4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuNCBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjQgcHJlLXJlbGVhc2UKCjIwMDgtMDMtMTggMTA6NTQ6NTIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBBZGQgbmV3IGZ1bmN0aW9uIGdzdF9wb2xsX2ZkX2lnbm9yZWQoKSBmb3IgaW1wcm92ZWQgV2luZG93cyBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfd2luc29ja19lcnJvcl90b19lcnJubyksCgkgIChnc3RfcG9sbF91cGRhdGVfd2luc29ja19ldmVudF9tYXNrKSwKCSAgKGdzdF9wb2xsX3ByZXBhcmVfd2luc29ja19hY3RpdmVfc2V0cyksCgkgIChnc3RfcG9sbF9jb2xsZWN0X3dpbnNvY2tfZXZlbnRzKSwgKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKSwKCSAgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfaWdub3JlZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfY2hlY2tfY3RybF9jb21tYW5kcyksIChnc3RfcG9sbF93YWl0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9uIGdzdF9wb2xsX2ZkX2lnbm9yZWQoKSBmb3IgaW1wcm92ZWQgV2luZG93cwoJICBjb21wYXRpYmlsaXR5LgoJICBWYXJpb3VzIG1pbm9yIGZpeGVzIGFuZCBjbGVhbnVwcy4gU2VlICM1MjA4MDguCgoyMDA4LTAzLTE3IDEwOjIxOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZGV4Lio6IERvbid0IGZyZWUga2V5IHN0cmluZ3Mgd2hpY2ggd2UgZG9uJ3Qgb3duLiBGaXhlcyBjcmFzaCBpbiBnc3RfaW5kZXhfZW50cnlfZnJlZSgpICgjNTIyNzQxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZW50cnlfZnJlZSk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIERvbid0IGZyZWUga2V5IHN0cmluZ3Mgd2hpY2ggd2UgZG9uJ3Qgb3duLiBGaXhlcyBjcmFzaCBpbgoJICBnc3RfaW5kZXhfZW50cnlfZnJlZSgpICgjNTIyNzQxKS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5kZXguYzogKHRlc3RfaW5kZXhfZW50cmllcyksCgkgIChnc3RfaW5kZXhfc3VpdGUpLCAoZ3N0X2luZGV4KToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wMy0xMSAxNDowOTo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IFJlbW92ZSBzeW1ib2xzIHRoYXQgd2VyZSByZW1vdmVkIHJlY2VudGx5LiBGaXhlcyBidWcgIzUyMTc0MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBzeW1ib2xzIHRoYXQgd2VyZSByZW1vdmVkIHJlY2VudGx5LiBGaXhlcyBidWcgIzUyMTc0MC4KCjIwMDgtMDMtMTEgMDA6MjQ6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy4zIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuMyBwcmUtcmVsZWFzZQoKMjAwOC0wMy0xMSAwMDoyMzowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJlbGVhc2UgMC4xMC4xNy4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVsZWFzZSAwLjEwLjE3LjMKCjIwMDgtMDMtMDcgMTU6Mzk6NDUgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBSZW1vdmUgR3N0UG9sbE1vZGUgZnJvbSB0aGUgQVBJLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGxldCB0aGUgYXBwbGljYXRpb24gY29udHJvbCB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZmluZF9pbmRleCksIChnc3RfcG9sbF9mcmVlX3dpbnNvY2tfZXZlbnQpLAoJICAoZ3N0X3BvbGxfdXBkYXRlX3dpbnNvY2tfZXZlbnRfbWFzayksIChnc3RfcG9sbF9uZXcpLAoJICAoZ3N0X3BvbGxfZnJlZSksIChnc3RfcG9sbF9mZF9pbml0KSwgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9yZW1vdmVfZmQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2hhc19jbG9zZWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl93cml0ZSksIChnc3RfcG9sbF93YWl0KSwKCSAgKGdzdF9wb2xsX3NldF9jb250cm9sbGFibGUpLCAoZ3N0X3BvbGxfcmVzdGFydCksCgkgIChnc3RfcG9sbF9zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfc3RhcnQpOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWFpbik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wb2xsX3N1aXRlKToKCSAgUmVtb3ZlIEdzdFBvbGxNb2RlIGZyb20gdGhlIEFQSSwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBsZXQgdGhlCgkgIGFwcGxpY2F0aW9uIGNvbnRyb2wgdGhpcy4KCSAgQWRkIHN1cHBvcnQgZm9yIFdpbjMyLgoJICBGaXggdGhlIHRlc3RzdWl0ZS4gRml4ZXMgIzUyMDY3MS4KCjIwMDgtMDMtMDcgMTM6MTk6MTIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW5jbHVkZSBpby5oIGZvciB3cml0ZSgpIGFuZCBjbG9zZSgpIHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDLiBGaXhlcyBidWcgIzUyMDg3Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBJbmNsdWRlIGlvLmggZm9yIHdyaXRlKCkgYW5kIGNsb3NlKCkgd2hlbiBidWlsZGluZyB3aXRoIE1TVkMuIEZpeGVzCgkgIGJ1ZyAjNTIwODc3LgoKMjAwOC0wMy0wNyAxMToxMjo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW92ZSByZWdpc3RyeSBiYWNrZW5kIEFQSSB0byBwcml2YXRlIGhlYWRlcnMgd2hlcmUgd2UgY2FuLiBBZGQgZml4bWUtMC4xMSBjb21tZW50cyBmb3IgdGhlIG90aGVycy4gQWRkIHN0dWJzIGZvciB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBNb3ZlIHJlZ2lzdHJ5IGJhY2tlbmQgQVBJIHRvIHByaXZhdGUgaGVhZGVycyB3aGVyZSB3ZSBjYW4uIEFkZAoJICBmaXhtZS0wLjExIGNvbW1lbnRzIGZvciB0aGUgb3RoZXJzLiBBZGQgc3R1YnMgZm9yIHRoZSB4bWwgYmFja2VuZCB3aGVuCgkgIHVzaW5nIHRoZSBiaW5hcnkgdG8gZW5zdXJlIHRoZXkgZnVuY3Rpb25zIGV4aXN0cyAodGhleSBzaG91bGQgbm90IGJlCgkgIHVzZWQgdGhvdWdoKS4gRml4ZXMgIzUyMDc1Ni4KCjIwMDgtMDMtMDQgMDA6MTQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy4yIHByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuMiBwcmVsZWFzZQoKMjAwOC0wMy0wMyAxODo0MjowNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFN3aXRjaCB0byB1c2luZyBwb3J0YWJsIGdzaXplL2dzc2l6ZSBpbnN0ZWFkIG9mIHNpemVfdC9zc2l6ZV90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmUpOgoJICAqIGdzdC9nc3R1cmkuYzogKHVuZXNjYXBlX3N0cmluZyksIChnc3RfdXJpX2hhc19wcm90b2NvbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgU3dpdGNoIHRvIHVzaW5nIHBvcnRhYmwgZ3NpemUvZ3NzaXplIGluc3RlYWQgb2Ygc2l6ZV90L3NzaXplX3QKCSAgRml4ZXMgIzUyMDE1MgoKMjAwOC0wMy0wMyAxODoxNDozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEltcG9ydCBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVyIHRoYXQgbWlnaHQgaW5jbHVkZSBvdGhlciBnbGliIGhlYWRlcnMuIFRoaXMgZml4ZXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBJbXBvcnQgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgYW55IG90aGVyIGhlYWRlciB0aGF0IG1pZ2h0IGluY2x1ZGUgb3RoZXIKCSAgZ2xpYiBoZWFkZXJzLiBUaGlzIGZpeGVzIHRoZSBidWlsZCBvbiB3aW5kb3dzIHVzaW5nIG5hdGl2ZSBjb21waWxlcnMuCgoyMDA4LTAzLTAzIDE0OjQ4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBBZGQgaGVyZSB0b28sIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBBZGQgaGVyZSB0b28sIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4KCjIwMDgtMDMtMDMgMTQ6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggYnJva2VuIHVzZSBvZiBjb25maWcuaC1kZWZpbmVkIHByZXByb2Nlc3NvciBkaXJlY3RpdmUgaW4gYSBwdWJsaWMgaGVhZGVyIGZpbGUuIEFkZCBhIGNvcnJlc3BvbmRpbmcgZGVmaW5lIHRvIGdzdGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgRml4IGJyb2tlbiB1c2Ugb2YgY29uZmlnLmgtZGVmaW5lZCBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlIGluIGEgcHVibGljCgkgIGhlYWRlciBmaWxlLiBBZGQgYSBjb3JyZXNwb25kaW5nIGRlZmluZSB0byBnc3Rjb25maWcuaCwgc2luY2Ugd2UgY2FuJ3QKCSAgcmVhbGx5IHJlbW92ZSB0aG9zZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZnJvbSB0aGUgaGVhZGVyIGZpbGUgbm93CgkgIChvciBjYW4gd2U/IGFuZCB3aHkgYXJlIHRoZXkgdGhlcmUgaW4gdGhlIGZpcnN0IHBsYWNlPykuCgoyMDA4LTAzLTAzIDEwOjA3OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmMgKEdTVF9TVEFSVF9URVNUKTogQWRkIGEgY2hlY2sgZm9yIHRoZSBuZXcgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDMtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jIChHU1RfU1RBUlRfVEVTVCk6IEFkZCBhIGNoZWNrIGZvcgoJICB0aGUgbmV3IHdhcm5pbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKTogV2FybiBpZgoJICBzdHJ1Y3R1cmVfZnJvbV9zdHJpbmcgZGlkbid0IGNvbnN1bWUgdGhlIHdob2xlIHN0cmluZywgYnV0IHRoZQoJICBjYWxsZXIgZGlkIG5vdCBwcm92aWRlIGFuIGVuZCBwb2ludGVyLgoKMjAwOC0wMy0wMSAxMToyMTozMCArMDAwMCAgRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8uZ2VAdGlzY2FsaS5pdD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBTdHJpbmdzIGFsbG9jYXRlZCBieSBsaWJ4bWwyIHNob3VsZCBiZSBmcmVlZCB3aXRoIHhtbEZyZWUoKSwgbm90IHdpdGggZ19mcmVlKCkuIEZpeGVzIGlzc3VlcyBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvLmdlIGF0IHRpc2NhbGkgaXQ+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyksIChsb2FkX2ZlYXR1cmUpOgoJICBTdHJpbmdzIGFsbG9jYXRlZCBieSBsaWJ4bWwyIHNob3VsZCBiZSBmcmVlZCB3aXRoIHhtbEZyZWUoKSwgbm90CgkgIHdpdGggZ19mcmVlKCkuIEZpeGVzIGlzc3VlcyBvbiB3aW5kb3dzIGluIGNlcnRhaW4gY29udGV4dHMgKCM1MTk2OTgpLgoKMjAwOC0wMi0yOSAxODozODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbnRlcmZhY2UuYzogRG9uJ3QgY3Jhc2ggaWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgdGhlIGludGVyZmFjZSBxdWVyaWVkLCBidXQgZG9lcyBub3QgaW1wbGVtZW50IEdzdEltcGxlbWVudHNJbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmM6IChnc3RfZWxlbWVudF9pbXBsZW1lbnRzX2ludGVyZmFjZSk6CgkgIERvbid0IGNyYXNoIGlmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgcXVlcmllZCwgYnV0IGRvZXMKCSAgbm90IGltcGxlbWVudCBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlLiBGaXhlcyAjNTE5NTg0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbnRlcmZhY2UuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wMi0yOSAxNTozOTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDgtMDItMjkgMTU6MjI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBJbXByb3ZlIHNvbWUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKToKCSAgSW1wcm92ZSBzb21lIGNvbW1lbnQuCgkgIFVwZGF0ZSB2YXJpYWJsZXMgd2hlcmUgaXQgbWFrZXMgbW9yZSBzZW5zZS4KCjIwMDgtMDItMjkgMTQ6MjM6MTcgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R1cmkuYzogVXNlIHRoZSBnZXRfcHJvdG9jb2xzX2Z1bGwgdmZ1bmMgaWYgZ2V0X3Byb3RvY29scyBpcyBOVUxMLiAgRml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2dldF9wcm90b2NvbHMpOgoJICBVc2UgdGhlIGdldF9wcm90b2NvbHNfZnVsbCB2ZnVuYyBpZiBnZXRfcHJvdG9jb2xzIGlzIE5VTEwuICBGaXhlcwoJICBVUklIYW5kbGVycyBpbXBsZW1lbnRlZCB1c2luZyBsYW5ndWFnZSBiaW5kaW5ncy4KCjIwMDgtMDItMjkgMTM6NTk6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFuZCBjb3JyZWN0IGV2ZW4gbW9yZSB2YWxpZCBzcGFyc2Ugd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKHNldHVwX2Zkc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOiAoc2V0dXBfZmlsZXNpbmspOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKHNldHVwX2ZpbGVzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChzZXR1cCksICh0ZWFyZG93bik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAocHVsbF9tZXNzYWdlcyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKG15X2Zvb19pbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6ICh0aHJlYWRfbmFtZV9vYmplY3QpLAoJICAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoY3JlYXRlX2FuZF9maWxsX2FkYXB0ZXIpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgQW5kIGNvcnJlY3QgZXZlbiBtb3JlIHZhbGlkIHNwYXJzZSB3YXJuaW5ncy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wb2xsX2ZkX2luaXQgdG8gdGhlIGxpc3Qgb2Ygc3ltYm9scy4KCjIwMDgtMDItMjkgMTI6NDE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIENvcnJlY3QgYWxsIHJlbGV2YW50IHdhcm5pbmdzIGZvdW5kIGJ5IHRoZSBzcGFyc2Ugc2VtYW50aWMgY29kZSBhbmFseXplci4gVGhpcyBpbmNsdWRlIG1hcmtpbmcgc2V2ZXJhbCBzeW1ib2xzIHN0YXRpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlcik6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyksIChnc3RfY2hlY2tfZHJvcF9idWZmZXJzKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbGxlciksIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfbmV3KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChfZmlsZV9pbmRleF9pZF9zYXZlX3htbCksCgkgIChnc3RfZmlsZV9pbmRleF9hZGRfYXNzb2NpYXRpb24pOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1lc3Nfc29tZV9tb3JlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAoc2V0dXBfcXVldWUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKHNldHVwKSwgKHRlYXJkb3duKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWFrZV9waXBlbGluZSk6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgQ29ycmVjdCBhbGwgcmVsZXZhbnQgd2FybmluZ3MgZm91bmQgYnkgdGhlIHNwYXJzZSBzZW1hbnRpYyBjb2RlCgkgIGFuYWx5emVyLiBUaGlzIGluY2x1ZGUgbWFya2luZyBzZXZlcmFsIHN5bWJvbHMgc3RhdGljLCB1c2luZwoJICBOVUxMIGluc3RlYWQgb2YgMCBmb3IgcG9pbnRlcnMsIG5vdCB1c2luZyB2YXJpYWJsZSBzaXplZCBhcnJheXMKCSAgb24gdGhlIHN0YWNrLCBtb3ZpbmcgdmFyaWFibGUgZGVjbGFyYXRpb25zIHRvIHRoZSBiZWdpbm5pbmcgb2YKCSAgYSBibG9jayBhbmQgdXNpbmcgImZvbyAodm9pZCkiIGluc3RlYWQgb2YgImZvbyAoKSIgZm9yIGRlY2xhcmF0aW9ucy4KCjIwMDgtMDItMjkgMTI6MDU6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBEb24ndCByZXNldCBHc3RQb2xsRkRzLCB0aGlzIGlzIG5vdCBuZWNlc3NhcnkgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIERvbid0IHJlc2V0IEdzdFBvbGxGRHMsIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhdCBhbGwuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2NvbnRyb2wpOgoJICBVc2UgR1NUX1BPTExfRkRfSU5JVC4KCjIwMDgtMDItMjkgMTE6NTc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC4qOiBBZGRlZCBTaW5jZSB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfaW5pdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkZWQgU2luY2UgdGFncy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgVXNlIHNvbWUgbW9yZSBpbml0IG1hY3Jvcy4KCjIwMDgtMDItMjkgMTE6MjA6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGluaXQgbWFjcm9zIGFuZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBVc2UgaW5pdCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KCjIwMDgtMDItMjkgMTE6MDA6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgSU5JVCBtYWNybyBhbmQgX2luaXQgbWV0aG9kIGZvciBpbml0aWFsaXppbmcgdGhlIEdzdFBvbGxGRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfaW5pdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkIElOSVQgbWFjcm8gYW5kIF9pbml0IG1ldGhvZCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBHc3RQb2xsRkQuCgoyMDA4LTAyLTI4IDE5OjU4OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBJbml0aWFsaXplIHNvbWUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgYXMgc3BvdHRlZCBieSB2YWxncmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KSwKCSAgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9jb250cm9sKToKCSAgSW5pdGlhbGl6ZSBzb21lIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFzIHNwb3R0ZWQgYnkgdmFsZ3JpbmQuCgoyMDA4LTAyLTI4IDE1OjI1OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IEFkZCBwb2xsIHN0cmVzcyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWVzc19zb21lX21vcmUpLCAocnVuX3Rlc3QpLAoJICAobWFpbik6CgkgIEFkZCBwb2xsIHN0cmVzcyB0ZXN0LgoKMjAwOC0wMi0yOCAxMDoxODowMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUG9ydCB0byBHc3RQb2xsLiBTZWUgIzUwNTQxNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlciksCgkgIChnc3RfZmRfc2lua19zdGFydCksIChnc3RfZmRfc2lua19zdG9wKSwgKGdzdF9mZF9zaW5rX3VubG9jayksCgkgIChnc3RfZmRfc2lua191bmxvY2tfc3RvcCksIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19zdGFydCksIChnc3RfZmRfc3JjX3N0b3ApLCAoZ3N0X2ZkX3NyY191bmxvY2spLAoJICAoZ3N0X2ZkX3NyY191bmxvY2tfc3RvcCksIChnc3RfZmRfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmRfc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFBvcnQgdG8gR3N0UG9sbC4gU2VlICM1MDU0MTcuCgoyMDA4LTAyLTI3IDIxOjE4OjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGdzdF9wb2xsXyBzeW1ib2xzIHRvIHdpbjMyIGRlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGdzdF9wb2xsXyBzeW1ib2xzIHRvIHdpbjMyIGRlZnMuCgoyMDA4LTAyLTI3IDE5OjAxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXNlIGEgcHJpdmF0ZSBzdHVjdCB0byBub3QgYnJlYWsgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RvcCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RvcCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIFVzZSBhIHByaXZhdGUgc3R1Y3QgdG8gbm90IGJyZWFrIEFCSS4KCjIwMDgtMDItMjcgMTg6Mjc6NTkgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogTWFzc2l2ZSBjb2RlIHJlbW92YWwgYW5kIGNsZWFudXBzIGJlY2F1c2Ugb2YgR3N0UG9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RvcCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RvcCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIE1hc3NpdmUgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwcyBiZWNhdXNlIG9mIEdzdFBvbGwuCgkgIEZpeGVzICM1MDU0MTcuCgoyMDA4LTAyLTI3IDE4OjAwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgY2hlY2tzIGZvciBwb2xsLCBwcG9sbCBhbmQgcHNlbGVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgY2hlY2tzIGZvciBwb2xsLCBwcG9sbCBhbmQgcHNlbGVjdC4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBHc3RQb2xsLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBvbGwuYzogKGZpbmRfaW5kZXgpLCAoc2VsZWN0YWJsZV9mZHMpLAoJICAocG9sbGFibGVfdGltZW91dCksIChjaG9vc2VfbW9kZSksIChwb2xsZmRfdG9fZmRfc2V0KSwKCSAgKGZkX3NldF90b19wb2xsZmQpLCAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpLAoJICAoZ3N0X3BvbGxfc2V0X21vZGUpLCAoZ3N0X3BvbGxfZ2V0X21vZGUpLAoJICAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2FkZF9mZCksCgkgIChnc3RfcG9sbF9yZW1vdmVfZmQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19jbG9zZWQpLCAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl93cml0ZSksIChnc3RfcG9sbF93YWl0KSwKCSAgKGdzdF9wb2xsX3NldF9jb250cm9sbGFibGUpLCAoZ3N0X3BvbGxfcmVzdGFydCksCgkgIChnc3RfcG9sbF9zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZCBnZW5lcmljIHBvbGwgYWJzdHJhY3Rpb24uIFdlIGlkZWFsbHkgZG9uJ3Qgd2FudCB0byBoYXZlIHRoaXMgaW4gY29yZQoJICBoZXJlIGJ1dCBpbiBnbGliIGludGVhZC4uLgoJICBUaGlzIGNvZGUgd2lsbCBiZSB1c2VkIGluIHZhcmlvdXMgbmV0d29yayBlbGVtZW50cyBhbmQgdWx0aW1hdGVseSBmb3IKCSAgdGhlIG5hbm9zZWNvbmQgcHJlY2lzaW9uIG1vbm90b25pYyBjbG9jayAodGhhdCdzIHdoeSBpdCdzIGhlcmUgaW4gY29yZSkuCgkgIEl0J2xsIGFsbG93IHVzIHRvIGltcGxlbWVudCBjYW5jZWxhYmxlIHNvY2tldCBvcGVyYXRpb25zIGZvciB3aW5kb3dzIHRvby4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9zdG9wKSwgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2ZsdXNoKSwKCSAgKGRlbGF5ZWRfY29udHJvbCksIChnc3RfcG9sbF9zdWl0ZSk6CgkgIEFkZCBHc3RQb2xsIHVuaXQgdGVzdC4KCjIwMDgtMDItMjUgMTU6Mzc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZmlsdGVyLmM6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZmlsdGVyX3J1bigpLiBGaXhlcyAjNTE4NjI3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZmlsdGVyX3J1bigpLiBGaXhlcyAjNTE4NjI3LgoKMjAwOC0wMi0yMyAxNjowMzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBBZGQgYSBmZXcgbGluZXMgYWJvdXQgdGhlIG5ldyAnY2hlY2staW5zcGVjdGVkLXZlcnNpb25zJyB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBBZGQgYSBmZXcgbGluZXMgYWJvdXQgdGhlIG5ldyAnY2hlY2staW5zcGVjdGVkLXZlcnNpb25zJyB0YXJnZXQuCgoyMDA4LTAyLTIxIDEwOjMwOjUwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogQWRkIHFvcyB0byB0aGUgZXZlbnQgdGVzdC4gUmVuYW1lIHRjYXNlL3RzdWl0ZTsgaXMgbm90IG9ubHkgYWJvdXQgY3VzdG9tIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIEFkZCBxb3MgdG8gdGhlIGV2ZW50IHRlc3QuIFJlbmFtZSB0Y2FzZS90c3VpdGU7IGlzIG5vdCBvbmx5IGFib3V0CgkgIGN1c3RvbSBldmVudHMuCgoyMDA4LTAyLTIxIDEwOjIyOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEVuc3VyZSB0aGF0IGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0ZWFibGUsIGJlZm9yZSBtb2RpZnlpbmcuIFNwb3R0ZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBFbnN1cmUgdGhhdCBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGVhYmxlLCBiZWZvcmUgbW9kaWZ5aW5nLiBTcG90dGVkIGJ5CgkgIE1pa2UuCgoyMDA4LTAyLTIwIDE1OjQ0OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFdoZW4gZHJvcHBpbmcgYnVmZmVycyBpbiBsZWFreSBtb2RlcywgbWFyayBuZXh0IGJ1ZmZlcnMgd2Ugc2VudCBhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBXaGVuIGRyb3BwaW5nIGJ1ZmZlcnMgaW4gbGVha3kgbW9kZXMsIG1hcmsgbmV4dCBidWZmZXJzIHdlIHNlbnQgYXMKCSAgRElTQ09OVC4KCjIwMDgtMDItMjAgMTI6MzE6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQWxzbywgaWYgbW1hcCgpIGZhaWxzIHRoYXQgd291bGQgYmUgYSBSRUFEIGVycm9yLCBub3QgT1BFTl9SRUFELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgQWxzbywgaWYgbW1hcCgpIGZhaWxzIHRoYXQgd291bGQgYmUgYSBSRUFEIGVycm9yLCBub3QgT1BFTl9SRUFELgoKMjAwOC0wMi0yMCAxMjoyNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBSZW1vdmUgR3N0QnVmZmVyU3RvcmUsIG5vIGlkZWEgd2h5IHdlIHdlcmUgc3RpbGwgYnVpbGRpbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBSZW1vdmUgR3N0QnVmZmVyU3RvcmUsIG5vIGlkZWEgd2h5IHdlIHdlcmUgc3RpbGwgYnVpbGRpbmcgaXQuCgkgIEl0J3Mgbm90IHVzZWQgYW55d2hlcmUgYW5kIHN1cGVyc2VkZWQgYnkgR3N0QWRhcHRlci4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2FkZF9hc3NvY2lhdGlvbik6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgZm9yIDY0LWJpdCBpbnRlZ2Vycy4KCjIwMDgtMDItMTkgMTM6MDA6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3Qgc2V0IEdTVF9DQUNIRV9ESVIgYW5kIGFsbG93IHRvIHNldCBpdCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3Qgc2V0IEdTVF9DQUNIRV9ESVIgYW5kIGFsbG93IHRvIHNldCBpdCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIFdlJ3JlIG5vdCBpbiAwLjggdGltZXMgYW55bW9yZS4KCjIwMDgtMDItMTkgMTI6NTY6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogTWFrZSB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCBtYXRjaCB0aGUgaW1wbGVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfZHJvcF9idWZmZXJzKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIE1ha2UgdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZm9yCgkgIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QgbWF0Y2ggdGhlIGltcGxlbWVudGF0aW9uLgoJICBGaXggdXAgc3BlbGxpbmcsIGdyYW1tYXIgYW5kIHdvcmRpbmcgb2YgdGhlIGRvY3VtZW50YXRpb24gaW4gYSBmZXcKCSAgcGxhY2VzLCBhbmQgYWRkIHRoZSBTaW5jZSBrZXl3b3JkIHRvIG5ldyBBUEkgZnVuY3Rpb25zLgoJICBVc2UgZ19saXN0X2RlbGV0ZV9saW5rIGluc3RlYWQgb2YgZ19saXN0X3JlbW92ZSBpbgoJICBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLCBzaW5jZSBpdCdzIGltbWVhc3VyYWJseSBtb3JlIGVmZmljaWVudC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBuZXcgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyBmdW5jdGlvbiB3aGVyZSBhcHByb3ByaWF0ZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyBnc3RfY29sbGVjdF9wYWRzX3Rha2VfYnVmZmVyLAoJICBnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyLCBnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwgdG8gdGhlCgkgIGV4cG9ydHMKCSAgQ2hhbmdlbG9nIHN1cmdlcnkgdG8gYWRkIEFQSSBrZXl3b3JkIHRvIG5ldyBnc3RfY2hlY2sgQVBJLgoKMjAwOC0wMi0xOSAwODowNToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiBVcGRhdGUgcHJlLWdlbmVyYXRlZCBmbGV4IGZpbGVzIHdpdGggZmxleCAyLjMuMzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogKHl5X2dldF9uZXh0X2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5ZW5zdXJlX2J1ZmZlcl9zdGFjayksIChfZ3N0X3BhcnNlX3l5bGV4X2luaXRfZXh0cmEpOgoJICBVcGRhdGUgcHJlLWdlbmVyYXRlZCBmbGV4IGZpbGVzIHdpdGggZmxleCAyLjMuMzQuCgoyMDA4LTAyLTE5IDA1OjQ5OjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbWFrZSBHc3RNaW5pT2JqZWN0Q2xhc3M6OmNvcHkoKSBhIGJpdCBtb3JlIGZyaWVuZGx5IHRvIHN1YmNsYXNzZXMgYW5kIG5vdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIG1ha2UgR3N0TWluaU9iamVjdENsYXNzOjpjb3B5KCkgYSBiaXQgbW9yZQoJICBmcmllbmRseSB0byBzdWJjbGFzc2VzIGFuZCBub3QgcmVxdWlyZSB0aGVtIHRvIGtub3cgYWxsIGludGVybmFscwoJICBvZiB0aGVpciBwYXJlbnQgY2xhc3MuCgoyMDA4LTAyLTE1IDEzOjE1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgc3ViLWJ1ZmZlciBmdW5jdGlvbnMgdG8gY29sbGVjdHBhZHMuIEZpeGVzICM1MTYxODcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQWRkIHN1Yi1idWZmZXIgZnVuY3Rpb25zIHRvIGNvbGxlY3RwYWRzLiBGaXhlcyAjNTE2MTg3LgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfdGFrZV9idWZmZXIoKSwgZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlcigpCgoyMDA4LTAyLTE1IDEyOjMzOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgc2VsZWN0ZWQgYnVmZmVyLWZsYWdzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBDb3B5IHNlbGVjdGVkIGJ1ZmZlci1mbGFncyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgkgIEZpeGVzICM1MTYzOTUuCgoyMDA4LTAyLTEyIDEyOjA0OjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBmdW5jdGlvbnMgdG8gdGhlIHBhcmVudCBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2NsYXNzX2luaXQpLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVzc2FnZV9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfY2xhc3NfaW5pdCksIChnc3RfcXVlcnlfZmluYWxpemUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKToKCSAgUHJvcGVybHkgY2hhaW4gdXAgZmluYWxpemUgZnVuY3Rpb25zIHRvIHRoZSBwYXJlbnQgY2xhc3MuCgoyMDA4LTAyLTExIDE3OjUzOjU3ICswMDAwICBTaWF2YXNoIFNhZmkgPHNpYXZhc2guc2FmaUBnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5kZXguKjogQWRkIG5ldyBmdW5jdGlvbiB3aXRoIG9wdGlvbiB0byBkaXNwb3NlIG9mIHVzZXJfZGF0YSBpbiByZXNvbHZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTaWF2YXNoIFNhZmkgPHNpYXZhc2ggZG90IHNhZmkgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9maW5hbGl6ZSksIChnc3RfaW5kZXhfc2V0X3Jlc29sdmVyKSwKCSAgKGdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIEFkZCBuZXcgZnVuY3Rpb24gd2l0aCBvcHRpb24gdG8gZGlzcG9zZSBvZiB1c2VyX2RhdGEgaW4gcmVzb2x2ZXIuCgkgIEFjdHVhbGx5IGNhbGwgdGhlIGRpc3Bvc2UgZnVuY3Rpb24gd2hlbiBmaW5hbGl6aW5nIHRoZSBvYmplY3QgYW5kIG5vdAoJICBqdXN0IHdoZW4gY2hhbmdpbmcgdGhlIHJlc29sdmVyL2ZpbHRlci4KCSAgQVBJOiBHc3RJbmRleDo6Z3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsKCkKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGZ1bmN0aW9uIHRvIGRvY3MuIEZpeGVzICM1MTU0NjkuCgoyMDA4LTAyLTExIDA4OjUzOjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0aW5kZXguYzogQ2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcy4gRml4ZXMgbGVha2luZyB0aGUgR3N0T2JqZWN0IG5hbWUgYW5kIG90aGVyIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZmluYWxpemUpOgoJICBDaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzLiBGaXhlcyBsZWFraW5nIHRoZSBHc3RPYmplY3QKCSAgbmFtZSBhbmQgb3RoZXIgdGhpbmdzLgoKMjAwOC0wMi0xMCAxOTo0ODowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IEZpeCBKb3NlcCdzIHN1cm5hbWUgaW4gcHJldmlvdXMgY29tbWl0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IEZpeCBKb3NlcCdzIHN1cm5hbWUgaW4gcHJldmlvdXMgY29tbWl0cwoKMjAwOC0wMi0wOCAwMDo1NDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IE1ha2UgRElTQUJMRV9ERVBSRUNBVEVEIGRlZmluZWQgKm9ubHkqIGR1cmluZyBDVlMsIG5vdCBkdXJpbmcgcHJlLXJlbGVhc2VzIG9yIHJlbGVhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIE1ha2UgRElTQUJMRV9ERVBSRUNBVEVEIGRlZmluZWQgKm9ubHkqIGR1cmluZyBDVlMsIG5vdCBkdXJpbmcKCSAgcHJlLXJlbGVhc2VzIG9yIHJlbGVhc2VzLgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGdzdC1wbHVnaW5zLWdsCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgQ2hhbmdlIG9uZSBvZiB0aGUgc3RlcHMgLSB3ZSBvbmx5IHVwbG9hZCBjb3JlICYgYmFzZSB0byBHbm9tZSBGVFAKCjIwMDgtMDItMDYgMTI6MjE6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogQWRkICdpZCcgZm9yIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgQWRkICdpZCcgZm9yIGV4YW1wbGUuCgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIExpbmsgdG8gc2lnbmFscy4gRG9jIGFuZCBjb21tZW50IGZpeGVzLgoKMjAwOC0wMi0wNSAyMToyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFNvbWUgbWlub3IgZG9jcyBmaXhlczogZml4IHR5cG8sIG1lbnRpb24gdGhhdCBHU1RfRkxPV19SRVNFTkQgaXMgdW51c2VkIGFuZCB1bmltcGxlbWVudGVkOyBmaW5hbGx5LCBpdCBpcyBwbHVnaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6IChHU1RfUEFEX0xJTktfU1VDQ0VTU0ZVTCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogKEdzdFBsdWdpbkZlYXR1cmVDbGFzcyk6CgkgIFNvbWUgbWlub3IgZG9jcyBmaXhlczogZml4IHR5cG8sIG1lbnRpb24gdGhhdCBHU1RfRkxPV19SRVNFTkQgaXMKCSAgdW51c2VkIGFuZCB1bmltcGxlbWVudGVkOyBmaW5hbGx5LCBpdCBpcyBwbHVnaW4gZmVhdHVyZXMsIG5vdAoJICBwbHVnaW5zLCB0aGF0IGhhdmUgcmFua3MuCgoyMDA4LTAyLTA1IDE5OjQyOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiBDbGFyaWZ5IEdzdFJhbmsgcmFuZ2UgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgQ2xhcmlmeSBHc3RSYW5rIHJhbmdlIGRvY3MuCgoyMDA4LTAyLTA1IDE4OjM3OjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogQWRkIGEgc2VwYXJhdGUgZ3N0X2RlaW5pdGlhbGl6ZWQgdGhhdCBwcmV2ZW50cyBnc3RfaW5pdCgpIGZyb20gYmVpbmcgY2FsbGVkIGFmdGVyIGdzdF9kZWluaXQoKS4gIEZpeGVzICM1MC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IEFkZCBhIHNlcGFyYXRlIGdzdF9kZWluaXRpYWxpemVkIHRoYXQgcHJldmVudHMKCSAgZ3N0X2luaXQoKSBmcm9tIGJlaW5nIGNhbGxlZCBhZnRlciBnc3RfZGVpbml0KCkuICBGaXhlcyAjNTA5NTU5CgoyMDA4LTAyLTA1IDE0OjE1OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcyB0byB0aGUgYmVoYXZpb3VyIG9mIEdzdFBhZFRlbXBsYXRlcywgZXRjIGFuZCB0aGUgcG9zc2libGl0eSB0byBjYWxsIHRoZW0gaW4gY2xhc3NfaW5pdCBhcyBpdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2Jhc2VfaW5pdCksCgkgIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9iYXNlX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zcmNfYmFzZV9pbml0KSwgKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcyB0byB0aGUgYmVoYXZpb3VyIG9mIEdzdFBhZFRlbXBsYXRlcywgZXRjCgkgIGFuZCB0aGUgcG9zc2libGl0eSB0byBjYWxsIHRoZW0gaW4gY2xhc3NfaW5pdCBhcyBpdCBicmVha3MgdG9vCgkgIG1hbnkgZWxlbWVudHMuIFJlb3BlbnMgYnVnICM0OTE1MDEuCgkgIFNob3VsZCBiZSBhcHBsaWVkIGFnYWluIGZvciAwLjExLCB0aHVzIGFkZGVkIGEgZmV3IEZJWE1FIDAuMTEgYXQKCSAgc2V2ZXJhbCBwbGFjZXMuCgoyMDA4LTAyLTA1IDA5OjI0OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IER1bXAgb25lIGdyYXBoIHBlciBwaXBlbGluZSBzdGF0ZS1jaGFuZ2UgYW5kIHN0YXRlIGNoYW5nZSBuYW1lIChpZiBHU1RfREVCVUdfRFVNUF9ET1RfRElSIGlzIHNldCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgRHVtcCBvbmUgZ3JhcGggcGVyIHBpcGVsaW5lIHN0YXRlLWNoYW5nZSBhbmQgc3RhdGUgY2hhbmdlIG5hbWUKCSAgKGlmIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIgaXMgc2V0KS4KCjIwMDgtMDItMDQgMTQ6MTQ6NDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBCZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIG5ldyBjb3B5IG9mIHRoZSBjYXBzIGFuZCBub3QgcmVmZmVkIGNhcHMgZnJvbSBhIHRlbXBsYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIEJlIHN1cmUgdGhhdCB3ZSBoYXZlIGEgbmV3IGNvcHkgb2YgdGhlIGNhcHMgYW5kIG5vdAoJICByZWZmZWQgY2FwcyBmcm9tIGEgdGVtcGxhdGUKCjIwMDgtMDItMDMgMTI6MDQ6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERvbid0IHVzZSBiYXNlX2luaXQgd2hlcmUgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55bW9yZSBmb3IgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgRG9uJ3QgdXNlIGJhc2VfaW5pdCB3aGVyZSBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkuIEZvciBleGFtcGxlIGl0J3MKCSAgbm90IG5lY2Vzc2FyeSBhbnltb3JlIGZvciBhZGRpbmcgcGFkIHRlbXBsYXRlcyBvciBzZXR0aW5nIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgTGVhdmUgZW1wdHkgYmFzZV9pbml0IGZ1bmN0aW9ucyBpbiBzZXZlcmFsIHBsYWNlcyBhcyBHU1RfQk9JTEVSUExBVEUKCSAgc3RpbGwgZGVmaW5lcyBhbmQgdXNlcyB0aGVtLgoKMjAwOC0wMi0wMyAxMDo0ODowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0LzogTWFrZSBpdCBwb3NzaWJsZSAoYW5kIHJlY29tbWVuZGVkKSB0byBzZXQgZWxlbWVudCBkZXRhaWxzIGFuZCBhZGQgcGFkIHRlbXBsYXRlcyBpbiB0aGUgY2xhc3NfaW5pdCBmdW5jdGlvbnMgYnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIE1ha2UgaXQgcG9zc2libGUgKGFuZCByZWNvbW1lbmRlZCkgdG8gc2V0IGVsZW1lbnQgZGV0YWlscyBhbmQgYWRkCgkgIHBhZCB0ZW1wbGF0ZXMgaW4gdGhlIGNsYXNzX2luaXQgZnVuY3Rpb25zIGJ5IGNvcHlpbmcgdGhlIGRldGFpbHMvcGFkCgkgIHRlbXBsYXRlcyBpbiBHc3RFbGVtZW50J3MgYmFzZV9pbml0LgoJICBBbHNvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVwbGFjZSBleGlzdGluZyBwYWQgdGVtcGxhdGVzIGJ5IGFkZGluZwoJICBhIG5ldyBvbmUgd2l0aCB0aGUgc2FtZSBuYW1lLiBUaGlzIHdhcyBkb25lIGluIGEgaGFja2lzaCBmYXNoaW9uCgkgIGluIHNhbWUgZWxlbWVudHMgYmVmb3JlIGFscmVhZHkuCgkgIERvbid0IHJlZmVyZW5jZSBwYWQgdGVtcGxhdGVzIHRoYXQgYXJlIGFkZGVkIGEgc2Vjb25kIHRpbWUuIEEKCSAgbmV3IHBhZCB0ZW1wbGF0ZSBoYXMgYSByZWZjb3VudCBvZiBvbmUgYW5kIGlzIG5vdCBmbG9hdGluZyBhbnltb3JlCgkgIGFuZCB0byBiZSBvd25lZCBieSB0aGUgZWxlbWVudCdzIGNsYXNzLiBNYWtlIHRoaXMgbW9yZSBleHBsaWNpdCBieQoJICBtZW50aW9uaW5nIGl0IGluIHRoZSBkb2NzIG9mIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoKS4KCSAgVGhlc2UgY2hhbmdlcyBhcmUgYmFja3dhcmRzIGNvbXBhdGlibGUuIEZpeGVzIGJ1ZyAjNDkxNTAxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHNldHRpbmcgZWxlbWVudCBkZXRhaWxzLCBhZGRpbmcgcGFkIHRlbXBsYXRlcyBhbmQKCSAgcmVwbGFjaW5nIHRoZW0gaW4gYSBzdWJjbGFzcy4KCjIwMDgtMDItMDIgMDY6NDg6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X3BhZF9pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA4LTAyLTAxIDE3OjE2OjI2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgQWRkIG1vcmUgZnVuY3Rpb25zIGZvciB1bml0IHRlc3Rpbmc6IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsIGdzdF9jaGVja19jYXBzX2VxdWFsLCBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgbW9yZSBmdW5jdGlvbnMgZm9yIHVuaXQgdGVzdGluZzogZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywKCSAgZ3N0X2NoZWNrX2NhcHNfZXF1YWwsIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QsCgkgIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyCgoyMDA4LTAyLTAxIDE2OjM3OjIyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wMi0wMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gdG8gdGhlCgkgIGRvY3MKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KSwKCSAgKGdzdF9pbmRleF9mcmVlX3dyaXRlciksCgkgIChnc3RfaW5kZXhfZmluYWxpemUpLCAoZ3N0X2luZGV4X2VudHJ5X2ZyZWUpLAoJICAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbik6IEZpeCBtZW1vcnkgbGVha3MuCgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjogQWRkIEdTVF9DSEVDS19WRVJTSU9OIG1hY3JvLgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVtX2luZGV4X2ZyZWVfZm9ybWF0KSwgKGdzdF9tZW1faW5kZXhfZnJlZV9pZCksCgkgIChnc3RfbWVtX2luZGV4X2ZpbmFsaXplKTogRml4IG1lbW9yeSBsZWFrcy4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6IFVwZGF0ZWQgdG8gQ1ZTIEhFQUQuCgoyMDA4LTAyLTAxIDEyOjI1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogU29tZSBtb3JlIGRldGFpbHMgYWJvdXQgaG93IHRoZSBwbHVnaW4gZG9jcyB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIFNvbWUgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0aGUgcGx1Z2luIGRvY3Mgd29ya3MuCgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgV2hpdGVzcGFjZSBjbGVhbnVwLgoKMjAwOC0wMi0wMSAxMjoxMDoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlLzogQWRkIGRlbGF5ZWQgc2V0LXByb3BlcnR5LiBUaGlzIGFsbG93cyB0byBzZXQgcHJvcGVydGllcyBvbiBkeW5hbWljYWx5IGNyZWF0ZWQgb2JqZWN0cyAocGFkcyBpbiB2aWRlb214ZXIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBBZGQgZGVsYXllZCBzZXQtcHJvcGVydHkuIFRoaXMgYWxsb3dzIHRvIHNldCBwcm9wZXJ0aWVzIG9uIGR5bmFtaWNhbHkKCSAgY3JlYXRlZCBvYmplY3RzIChwYWRzIGluIHZpZGVvbXhlcikuCgoyMDA4LTAyLTAxIDExOjI3OjMyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMi0wMSAxMDoyNzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGZpeG1lIHJlZ2FyZGluZyBFT1MgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKToKCSAgQWRkIGZpeG1lIHJlZ2FyZGluZyBFT1MgaW4gcHVsbCBtb2RlLgoJICBGaXggcG9zaXRpb24gcmVwb3J0aW5nIGluIFBBVVNFRCBmb3IgbmVnYXRpdmUgcmF0ZXMuCgoyMDA4LTAyLTAxIDEwOjIzOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogV2hlbiByZXBsYWNpbmcgYSBtaW5pb2JqZWN0LCBkbyBhIHF1aWNrIGVxdWFsaXR5IGNoZWNrIGZpcnN0IHNvIHRoYXQgd2UgY2FuIGF2b2lkIGEgcmVmL3VucmVmIHBhaXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSk6CgkgIFdoZW4gcmVwbGFjaW5nIGEgbWluaW9iamVjdCwgZG8gYSBxdWljayBlcXVhbGl0eSBjaGVjayBmaXJzdCBzbyB0aGF0IHdlCgkgIGNhbiBhdm9pZCBhIHJlZi91bnJlZiBwYWlyLgoKMjAwOC0wMi0wMSAxMDoxNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBtdWx0aXF1ZXVlIHRvIHRoZSBkb2NzLgoKMjAwOC0wMS0zMCAxNDozODo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTcgPT09CgoyMDA4LTAxLTMwIDE0OjA1OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE3CgoyMDA4LTAxLTMwIDEzOjEzOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgYWRkIENoYW5nZUxvZyBlbnRyeSBmb3IgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgQ2hhbmdlTG9nIGVudHJ5IGZvciBwcmV2aW91cyBjb21taXQKCjIwMDgtMDEtMzAgMTM6MTI6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMS0zMCAxMjo1NTo0MiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDEtMzAgMTI6NDQ6MTMgKzAwMDAgIEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyIDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBwb3NpeCB0aW1lcnMgYnV0IG5vIG1vbm90b25pYyBjbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBwb3NpeCB0aW1lcnMgYnV0IG5vCgkgIG1vbm90b25pYyBjbG9jay4KCSAgRml4ZXM6ICM1MTI3MTUKCSAgUGF0Y2ggQnk6IEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyIDx5c2Vsa293aXR6IGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZQoJICBkb3QgbmV0PgoKMjAwOC0wMS0zMCAxMjozOTo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0IGluIHByZXBhcmF0aW9uIGZvciBhbiBpbXByb21wdHUgMC4xMC4xNyByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQgaW4gcHJlcGFyYXRpb24gZm9yIGFuIGltcHJvbXB0dSAwLjEwLjE3IHJlbGVhc2UKCjIwMDgtMDEtMjkgMDk6NDM6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X3BhZF9pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA4LTAxLTI4IDIzOjMwOjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNiA9PT0KCjIwMDgtMDEtMjggMjM6Mjc6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNgoKMjAwOC0wMS0yOCAyMToyMDoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wMS0yNCAyMzoyODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFDX1RSWV9DT01QSUxFIGluc3RlYWQgb2YgQUNfVFJZX1JVTiB0byBjaGVjayBmb3IgX1BPU0lYX1RJTUVSLCBfUE9TSVhfTU9OT1RPTklDX0NMT0NLLCBldGMuIE1ha2VzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBQ19UUllfQ09NUElMRSBpbnN0ZWFkIG9mIEFDX1RSWV9SVU4gdG8gY2hlY2sgZm9yCgkgIF9QT1NJWF9USU1FUiwgX1BPU0lYX01PTk9UT05JQ19DTE9DSywgZXRjLiBNYWtlcyBjb25maWd1cmUKCSAgbm90IGZhaWwgd2hlbiB0cnlpbmcgdG8gY3Jvc3Njb21waWxlIG9uIE9wZW5FbWJlZGRlZCAoIzUxMTc1MCkuCgoyMDA4LTAxLTIwIDE3OjA4OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL21hbnVhbHMubWFrOiBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UgdG8gZml4IHRoZSBidWlsZCBpZiBHTlUgbWFrZSBpcyBjYWxsZWQgZGlmZmVyZW50LiBGaXhlcyBidWcgIzUxMDc0Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlIHRvIGZpeCB0aGUgYnVpbGQgaWYgR05VIG1ha2UgaXMKCSAgY2FsbGVkIGRpZmZlcmVudC4gRml4ZXMgYnVnICM1MTA3NDcuCgoyMDA4LTAxLTIwIDE1OjA0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBGaXggb2xkLXN0eWxlIHN0YXRpYyBwbHVnaW5zIHZpYSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgYWdhaW4sIHdoaWNoIEkgYnJva2UgdHdvIGNvbW1pdHMgYWdvIHdoZW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpOgoJICBGaXggb2xkLXN0eWxlIHN0YXRpYyBwbHVnaW5zIHZpYSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMKCSAgYWdhaW4sIHdoaWNoIEkgYnJva2UgdHdvIGNvbW1pdHMgYWdvIHdoZW4gY2hhbmdpbmcgdGhlIEFQSQoJICBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpOiB0aGUgZ19saXN0X2ZvcmVhY2goKSBpbgoJICBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMgc3RpbGwgYXNzdW1lZCB0aGUgb2xkIGZ1bmN0aW9uCgkgIHNpZ25hdHVyZSBhbmQgd291bGQgdGhlcmVmb3JlIGZhaWwgKHJlLWZpeGVzICM1MTAxODcpLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9udW1fc3RhdGljX3BsdWdpbnMpLCAoX3N0YXRpY19wbHVnaW5zKSwKCSAgKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyk6CgkgIFJldmVydCB0aGUgKHRlY2huaWNhbGx5IGNvcnJlY3QpIGNoYW5nZSB0byBjYWxsIGdfdGhyZWFkX2luaXQoKSBmcm9tCgkgIHRoZSBwcmUtbWFpbigpIGNvbnN0cnVjdG9yLiBUaGlzIHdpbGwgYnJlYWsgcHJvZ3JhbXMgd2hpY2ggY2FsbAoJICBnX3RocmVhZF9pbml0KCkgd2l0aG91dCBhbiBpZiAoIWdfdGhyZWFkX3N1cHBvcnRlZCgpKSBndWFyZCBpbiB0aGVpcgoJICBtYWluIGZ1bmN0aW9uLiBXZSBjb3VsZCBqdXN0IGJsYW1lIGl0IG9uIEdMaWIgb3IgdGhlIGFwcGxpY2F0aW9uLCBidXQKCSAgaXQncyBwcm9iYWJseSBiZXN0IHRvIGp1c3QgYXZvaWQgdGhpcyBhbHRvZ2V0aGVyIGFuZCBzaW1wbHkgbm90IHVzZQoJICBhbnkgR0xpYiBmdW5jdGlvbnMgaGVyZSBhbmQgdXNlIHBsYWluIG9sZCBtYWxsb2MoKSB3aXRoIGEgc2ltcGxlCgkgIGFycmF5IHRvIHN0b3JlIHRoZSBwbHVnaW5zIHRvIHJlZ2lzdGVyIGxhdGVyIHdoZW4gZ3N0X2luaXQoKSBpcwoJICBmaW5hbGx5IGNhbGxlZCAocmUtZml4ZXMgIzUxMDE4NykuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAoR1NUX0dOVUNfQ09OU1RSVUNUT1JfREVGSU5FRCksCgkgIChHU1RfR05VQ19DT05TVFJVQ1RPUl9ERUZJTkVEKSwgKHBsdWdpbl9pbml0X2NvdW50ZXIpLAoJICAocGx1Z2luMV9pbml0KSwgKHBsdWdpbjJfaW5pdCksIChwbHVnaW4zX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIER1bWIgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgb2xkIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBzdGlsbAoJICB3b3Jrcy4KCjIwMDgtMDEtMTcgMjI6MjI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYXJvdW5kIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDKToKCSAgUmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkcyBhcm91bmQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLgoJICBUaGlzIG1ha2VzIGd0ay1kb2MgY29tcGxhaW4sIGJ1dCByZXN1bHRzIGluIHNsaWdodGx5IGJldHRlcgoJICBjb21waWxlciBlcnJvcnMuIFRoZSBvbGQgX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgaXMKCSAgc3RpbGwgZ3VhcmRlZCwgc28gdGhlcmUnbGwgYmUgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHRoYXQKCSAgaW5zdGVhZC4gRml4ZXMgIzUxMDE4NyB0b28uCgoyMDA4LTAxLTE3IDIyOjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQ2hhbmdlIEFQSSBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIHRvIG5vdCB0YWtlIGEgR3N0UGx1Z2luRGVzYywgYnV0IHJhdGhlciBqdXN0IHRha2UgYWxsIHRoZSBhcmd1bWVudHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdzdFBsdWdpbkZpbHRlcik6CgkgIENoYW5nZSBBUEkgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSB0byBub3QgdGFrZQoJICBhIEdzdFBsdWdpbkRlc2MsIGJ1dCByYXRoZXIganVzdCB0YWtlIGFsbCB0aGUgYXJndW1lbnRzCgkgIGluIGEgR3N0UGx1Z2luRGVzYyBkaXJlY3RseS4gVGhpcyBpcyBtb3JlIGludHVpdGl2ZSBhbmQKCSAgYXZvaWRzIGNlcnRhaW4gbWlzdGFrZXMgd2hlbiBwb3J0aW5nIGNvZGUgZnJvbQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgdG8gZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKS4KCSAgRml4ZXMgIzUxMDE4Ny4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCB1cCBmb3IgY2hhbmdlZCBBUEkuCgoyMDA4LTAxLTE3IDE4OjUwOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2xlZ2FsLnhtbDogVXBkYXRlIEZBUSwgVG90ZW0gYWN0dWFsbHkgaGFzIGFuIGV4Y2VwdGlvbiB0aGVzZSBkYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9sZWdhbC54bWw6CgkgIFVwZGF0ZSBGQVEsIFRvdGVtIGFjdHVhbGx5IGhhcyBhbiBleGNlcHRpb24gdGhlc2UgZGF5cy4KCjIwMDgtMDEtMTQgMjI6MjA6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgQVBJIGRlY2xhcmF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBBUEkgZGVjbGFyYXRpb25zCgoyMDA4LTAxLTE0IDEzOjE4OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTcGVsbGluZyBmaXhlcyBmb3IgdGhlIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBTcGVsbGluZyBmaXhlcyBmb3IgdGhlIEFQSSBkb2NzLgoKMjAwOC0wMS0xNCAxMTo0NzozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFkZCBBUEkga2V5d29yZCBmb3IgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCwgYW5kIHJlbW92ZSB0aGUgdGFnIGZvciBHU1RfR0VUX1RJTUVTVE1BUCB3aGljaCBkaWRuJ3Qgc3Vydml2ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBBUEkga2V5d29yZCBmb3IgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCwgYW5kIHJlbW92ZSB0aGUgdGFnIGZvciBHU1RfR0VUX1RJTUVTVE1BUCB3aGljaCBkaWRuJ3Qgc3Vydml2ZS4KCjIwMDgtMDEtMTQgMTE6NDA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggbG9uZyBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3IgUW9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IGxvbmcgcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIFFvUy4KCjIwMDgtMDEtMTIgMjA6MjI6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBfZ3N0X3RyYWNlX29uIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgZ3N0dHJhY2UuaCwgbm8gbmVlZCB0byBkZWNsYXJlIGl0IG91cnNlbHZlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBfZ3N0X3RyYWNlX29uIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgZ3N0dHJhY2UuaCwgbm8gbmVlZCB0byBkZWNsYXJlCgkgIGl0IG91cnNlbHZlcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgJ2J1ZmZlcnMnLCAnY2hlY2tfY29uZCcgYW5kICdjaGVja19tdXRleCcgZnJvbSBsaWJnc3RjaGVjawoJICBhbmQgcmVtb3ZlIHN0cmFuZ2UgdGNhc2VfYWRkX3Rlc3Qgd2hpY2ggaXMgb3V0cHV0dGluZyBhIHdhcm5pbmcuCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBQcm9wZXJseSBkZWNsYXJlICdidWZmZXJzJywgJ2NoZWNrX2NvbmQnLCAnY2hlY2tfbXV0ZXgnIGV4dGVybgoJICBhbmQgZGVmaW5lIHRoZW0gaW4gZ3N0Y2hlY2suYyBpbnN0ZWFkIG9mIGhhdmluZyBldmVyeSAuYyBmaWxlIHdoY2loCgkgIGluY2x1ZGVzIGdzdGNoZWNrLmggYmUgZGVmaW5pbmcgaXRzIG93biBjb3B5IGFuZCByZWx5aW5nIG9uIHN5bWJvbAoJICBpbnRlcnBvc2luZyB0byBtYXJyeSB0aGVtIGFsbCwgd2hpY2ggZG9lc24ndCB3b3JrIG9uIFNvbGFyaXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgZGVmaW5lICdidWZmZXJzJyBsb2NhbGx5LCBpdCBjb21lcyBmcm9tIGxpYmdzdGNoZWNrLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfYnVmZmVyKToKCSAgRml4IHR5cGUgb2YgdmFyaWFibGUgKEdzdEZsb3dSZXR1cm4sIG5vdCBHc3RTdGF0ZUNoYW5nZVJldHVybikKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhIGJ1bmNoIG9mIGNhc3RzIHRvIG1ha2UgdmFyaW91cyBjb25zdGFudHMgZml0IHRoZSB0eXBlcwoJICB0aGV5J3JlIGJlaW5nIGFzc2lnbmVkIHRvLgoKMjAwOC0wMS0xMCAyMTowNjo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogSW1wcm92ZSBkb2NzIGFuZCBhZGQgc29tZSBpZGVhcyBmb3IgbWFraW5nIHRoaXMgbW9yZSBnZW5lcmFsLXB1cnBvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIEltcHJvdmUgZG9jcyBhbmQgYWRkIHNvbWUgaWRlYXMgZm9yIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJhbC1wdXJwb3NlLgoKMjAwOC0wMS0xMCAxNTo1NTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBBZGQgR1NUX0NBVF9UWVBFUywgZm9yIGNvbnNpc3RlbmN5LCBhbmQgc28gdGhhdCB0aGUgb3RoZXIgZGVidWcgY2F0ZWdvcmllcyBkb24ndCBtYWtlIGZ1biBvZiBpdC4gUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKEdTVF9DQVRfVFlQRVMpOgoJICBBZGQgR1NUX0NBVF9UWVBFUywgZm9yIGNvbnNpc3RlbmN5LCBhbmQgc28gdGhhdCB0aGUgb3RoZXIKCSAgZGVidWcgY2F0ZWdvcmllcyBkb24ndCBtYWtlIGZ1biBvZiBpdC4gU3BvdHRlZCBieSBTYXVyIG9uIElSQy4KCjIwMDgtMDEtMTAgMTM6MDM6MzUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTW92ZSB0eXBlcy5oIGZyb20gRVhUUkFfRElTVCB0byBub2luc3RfSEVBREVSUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNb3ZlIHR5cGVzLmggZnJvbSBFWFRSQV9ESVNUIHRvIG5vaW5zdF9IRUFERVJTLgoKMjAwOC0wMS0xMCAxMjoxNDowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgYXV0b2dlbi5zaDogQWRkIC1Xbm8tcG9ydGFiaWxpdHkgdG8gdGhlIGF1dG9tYWtlIHBhcmFtZXRlcnMgdG8gc3RvcCB3YXJuaW5ncyBhYm91dCBHTlUgbWFrZSBleHRlbnNpb25zIGJlaW5nIHVzZWQuIFdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIEFkZCAtV25vLXBvcnRhYmlsaXR5IHRvIHRoZSBhdXRvbWFrZSBwYXJhbWV0ZXJzIHRvIHN0b3Agd2FybmluZ3MKCSAgYWJvdXQgR05VIG1ha2UgZXh0ZW5zaW9ucyBiZWluZyB1c2VkLiBXZSByZXF1aXJlIEdOVSBtYWtlIGluIGFsbW9zdAoJICBldmVyeSBNYWtlZmlsZSBhbnl3YXkuCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQU1fUFJPR19DQ19DX08gYXMgYSBjb21waWxlciB0aGF0IGFjY2VwdHMgYm90aCAtYyBhbmQgLW8KCSAgYXQgdGhlIHNhbWUgdGltZSBpcyByZXF1aXJlZCBmb3IgcGVyIHRhcmdldCBmbGFncy4KCjIwMDgtMDEtMDkgMTg6MjM6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGFuZCBkZXByZWNhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYyk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDKToKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBhbmQgZGVwcmVjYXRlCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgc2luY2UgaXQncyBub3QgcG9ydGFibGUKCSAgKCM0OTg5MjQpLgoJICBBbHNvLCBpbiBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSwgbWFrZSBzdXJlIHRvIGNhbGwKCSAgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBjYWxsaW5nIEdMaWIgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19saXN0X2FwcGVuZCgpIGlmIHdlJ3JlIG5vdCBpbml0aWFsaXNlZCB5ZXQsIHNpbmNlIHRoYXQKCSAgbWF5IGxlYWQgdG8gcmFuZG9tIGNyYXNoZXMgd2l0aCBvbGRlciBHU2xpY2UvR0xpYiB2ZXJzaW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIEFkYXB0IHVuaXQgdGVzdCB0byBhYm92ZSBjaGFuZ2VzLgoKMjAwOC0wMS0wOSAxNjozNjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFlldCBhbm90aGVyIGdyYXR1aXRvdXMgR1N0cmluZyBtaWNyby1vcHRpbWlzYXRpb246IGFkZCBhIChwcml2YXRlKSBmdW5jdGlvbiB0aGF0IHNlcmlhbGlzZXMgYSBzdHJ1Y3R1cmUgYXBwZW5kaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKFNUUlVDVFVSRV9FU1RJTUFURURfU1RSSU5HX0xFTik6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX0FTQ0lJX0lTX1NUUklORyksCgkgIChwcml2X2dzdF9zdHJ1Y3R1cmVfYXBwZW5kX3RvX2dzdHJpbmcpLCAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpOgoJICBZZXQgYW5vdGhlciBncmF0dWl0b3VzIEdTdHJpbmcgbWljcm8tb3B0aW1pc2F0aW9uOiBhZGQgYSAocHJpdmF0ZSkKCSAgZnVuY3Rpb24gdGhhdCBzZXJpYWxpc2VzIGEgc3RydWN0dXJlIGFwcGVuZGluZyB0byBhbiBleGlzdGluZwoJICBHU3RyaW5nLCBzbyB0aGF0IHdoZW4gd2Ugc2VyaWFsaXNlIGNhcHMgd2UgZG9uJ3QgbmVlZCB0byBhbGxvYytmcmVlCgkgIGEgdGhyb3dhd2F5IEdTdHJpbmcgZm9yIGVhY2ggc3RydWN0dXJlIChlYWNoIG9mIHdoaWNoIGFsc28gZW50YWlsaW5nCgkgIG11bHRpcGxlIHJlYWxsb2NzIG9uIHRoZSB3YXkpOyBhbHNvIHVzZSBnX3N0cmluZ19zaXplZF9uZXcoKSBpbgoJICB2YXJpb3VzIHBsYWNlcyB3aXRoIGFuIGFwcHJveGltYXRlIHN0cmluZyBsZW5ndGggdG8gYXZvaWQgcmVhbGxvY3MKCSAgd2l0aGluIEdTdHJpbmcuIFNlZSAjNTAwMTQzLgoKMjAwOC0wMS0wOSAxNTowNToyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWx3YXlzIGNoZWNrIFVURi04IGNvbmZvcm1hbmNlIG9mIHN0cnVjdHVyZSBzdHJpbmdzIGFuZCBub3Qgb25seSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIEFsd2F5cyBjaGVjayBVVEYtOCBjb25mb3JtYW5jZSBvZiBzdHJ1Y3R1cmUgc3RyaW5ncyBhbmQgbm90IG9ubHkKCSAgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZDsgcmVhc29uaW5nOiB0aGUgYmVoYXZpb3VyIG9mCgkgIHRoZSBhY3R1YWwgY29kZSBzaG91bGRuJ3QgcmVhbGx5IGNoYW5nZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUKCSAgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkIG9yIG5vdCAoIzUwODI5MSkuCgoyMDA4LTAxLTA5IDEzOjQ4OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWtlZmlsZS5hbTogUmVtb3ZlIG9sZCBjb3ZlcmFnZSB0YXJnZXQgaW4gZmF2b3VyIG9mICJtYWtlIGxjb3YiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgUmVtb3ZlIG9sZCBjb3ZlcmFnZSB0YXJnZXQgaW4gZmF2b3VyIG9mICJtYWtlIGxjb3YiLgoKMjAwOC0wMS0wOSAxMjoyNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBUaGUgc3RhcnQgc2VnbWVudCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBnb2VzIGZyb20gc3RhcnQgdG8gbGFzdF9zdG9wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBUaGUgc3RhcnQgc2VnbWVudCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBnb2VzIGZyb20gc3RhcnQgdG8gbGFzdF9zdG9wLgoKMjAwOC0wMS0wOSAxMjoyMjoyMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaDogQ2FzdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSB0aW1ldmFsL3NwZWNfdG9fdGltZSBtYWNyb3MgdG8gd2hhdCB0aGUgZG9jcyBzYXkgaXQgY2FzdHMgdG8sIGEgR3N0Q2xvY2tUaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQ2FzdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSB0aW1ldmFsL3NwZWNfdG9fdGltZSBtYWNyb3MgdG8gd2hhdCB0aGUKCSAgZG9jcyBzYXkgaXQgY2FzdHMgdG8sIGEgR3N0Q2xvY2tUaW1lLiBmaXhlcyAjNTA4MTc1LgoKMjAwOC0wMS0wOSAxMjoxOTozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogVXBkYXRlIHNvbWUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgVXBkYXRlIHNvbWUgY29tbWVudHMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSW1wcm92ZSBwcmludGluZyBvZiBmbGFncy4KCjIwMDgtMDEtMDggMjE6MTM6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJpbnQgZWxlbWVudCBuYW1lIHdpdGggZ193YXJuaW5nKCkgaWYgdGhlcmUncyBhIHByb2JsZW0gd2l0aCB0aGUgdW5pdCBzaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgIFByaW50IGVsZW1lbnQgbmFtZSB3aXRoIGdfd2FybmluZygpIGlmIHRoZXJlJ3MgYSBwcm9ibGVtCgkgIHdpdGggdGhlIHVuaXQgc2l6ZS4KCjIwMDgtMDEtMDggMDI6MDc6MzggKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC86IEZpeCBlbXB0eSBwcm90b3R5cGVzLiAgRml4ZXMgYnVnICM1MDc5NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBGaXggZW1wdHkgcHJvdG90eXBlcy4gIEZpeGVzIGJ1ZyAjNTA3OTU3LgoKMjAwOC0wMS0wOCAwMjowMTozNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDogRml4IHR5cG8uCgoyMDA4LTAxLTA3IDExOjIzOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIGluIGRvX3NlZWssIHRoYXQncyB0aGUgcG9zaXRpb24gd2UgZGlkIGEgc2VlayB0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgRG9uJ3QgdXBkYXRlIHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gaW4gZG9fc2VlaywgdGhhdCdzIHRoZSBwb3NpdGlvbiB3ZQoJICBkaWQgYSBzZWVrIHRvLgoJICBSZWFkIGJhY2t3YXJkcyB3aGVuIHdlIGhhdmUgYSBuZWdhdGl2ZSByYXRlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGV2ZW50X2Z1bmMpLCAod2FpdF9lb3MpLAoJICAoc2V0dXBfZmlsZXNyYyksIChjbGVhbnVwX2ZpbGVzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZCBjaGVjayBmb3IgcmV2ZXJzZSByZWFkaW5nLgoKMjAwOC0wMS0wNyAwOTo0Nzo0OSArMDAwMCAgQWxleGlzIEJhbGxpZXIgPGFiYWxsaWVyQGdlbnRvby5vcmc+CgoJICB0ZXN0cy9jaGVjay86IERlY2lkZSB3aGljaCBoZWFkZXIgdG8gaW5jbHVkZSBiYXNlZCBvbiB0aGUgdXNlcmxhbmQgQUJJIHRhcmdldCBhbmQgbm90IHRoZSBrZXJuZWwvY3B1LiBGaXggdXAgc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXIgYXQgZ2VudG9vIG9yZz4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgIERlY2lkZSB3aGljaCBoZWFkZXIgdG8gaW5jbHVkZSBiYXNlZCBvbiB0aGUgdXNlcmxhbmQgQUJJIHRhcmdldAoJICBhbmQgbm90IHRoZSBrZXJuZWwvY3B1LiBGaXggdXAgc3RydWN0dXJlIHNpemVzIG9mIHBwYzY0IGhlYWRlcgoJICBmb3IgNjQtYml0IHVzZXJsYW5kICgjNTAzNTkwKS4gIE1pZ2h0IG5lZWQgc29tZXRoaW5nIHNpbWlsYXIgZm9yCgkgIHg4NiB0b28uCgoyMDA4LTAxLTA1IDEzOjQ1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogTG9nIHRoZSByZWFzb24gd2h5IGZvcGVuIGZhaWxzIGluIGFkZGl0aW9uIHRvIHRoZSBmYWN0IHRoYXQgaXQgZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpOgoJICBMb2cgdGhlIHJlYXNvbiB3aHkgZm9wZW4gZmFpbHMgaW4gYWRkaXRpb24gdG8gdGhlIGZhY3QgdGhhdCBpdCBmYWlsZWQuCgoyMDA4LTAxLTA0IDE4OjQ0OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogVXNlICIlb3B0aW9uIG5ldmVyLWludGVyYWN0aXZlIiB0byBwcmV2ZW50IHVzZWxlc3MgY2FsbHMgdG8gaXNhdHR5KCkgb24gZXZlcnkgaW5wdXQgd2hlbiBwYXJzaW5nLiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFVzZSAiJW9wdGlvbiBuZXZlci1pbnRlcmFjdGl2ZSIgdG8gcHJldmVudCB1c2VsZXNzIGNhbGxzIHRvIGlzYXR0eSgpCgkgIG9uIGV2ZXJ5IGlucHV0IHdoZW4gcGFyc2luZy4gQWxzbyB1c2UgIiVvcHRpb24gbm9pbnB1dCIgdG8gbm90IGRlZmluZQoJICB0aGUgc3RhdGljIGlucHV0L3l5aW5wdXQgZnVuY3Rpb25zIHdoaWNoIHdlIGRvbid0IHVzZSBhbnl3YXkuIFRoaXMKCSAgcmVtb3ZlcyBhIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBnY2MgNC4zIGFuZCBzYXZlcyBzb21lIGJ5dGVzIGluIHRoZQoJICBsaWJyYXJ5LgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgUmVnZW5lcmF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2UuCgoyMDA4LTAxLTA0IDE4OjM5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBjcmFzaCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYW5kIGVtcHR5IGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSk6CgkgIERvbid0IGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhbmQgZW1wdHkgbGlzdC4KCSAgRml4ZXMgIzUwNjY0My4KCjIwMDgtMDEtMDMgMDk6NDM6NDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQ2xhcmlmeSB0aGUgY29tbWVudHMgdG8gbWFrZSB0aGUgdXNhZ2Ugb2YgdGhpcyBzY3JpcHQgYW5kIHdoYXQgaXQgZG9lcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBDbGFyaWZ5IHRoZSBjb21tZW50cyB0byBtYWtlIHRoZSB1c2FnZSBvZiB0aGlzIHNjcmlwdCBhbmQgd2hhdCBpdAoJICBkb2VzIGVhc2llciB0byB1bmRlcnN0YW5kLgoKMjAwOC0wMS0wMSAxNzoxMDozMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBBZGQgbW9yZSBvcHRpb25zIHRvIGdzdC1wbG90LXRpbWVsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBBZGQgbW9yZSBvcHRpb25zIHRvIGdzdC1wbG90LXRpbWVsaW5lCgoyMDA3LTEyLTMxIDE5OjExOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTb21lIG1vcmUgaW5mbyBvbiBob3cgdGhlIHN0cmVhbV90aW1lIGluIEdzdEJhc2VTaW5rIGlzIGRvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU29tZSBtb3JlIGluZm8gb24gaG93IHRoZSBzdHJlYW1fdGltZSBpbiBHc3RCYXNlU2luayBpcyBkb25lLgoKMjAwNy0xMi0zMCAxMzozNjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IHJlbW92ZSBib2d1cyBjaGFuZ2Vsb2cgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiByZW1vdmUgYm9ndXMgY2hhbmdlbG9nIGVudHJ5CgoyMDA3LTEyLTMwIDEzOjMxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBQdXQgYmFjayB0aGUgdGNhc2Vfc2V0X3RpbWVvdXQoKSwgYXBwYXJlbnRseSBpdCdzIG5lZWRlZCBhZnRlciBhbGw7IGZpeCBpdCB1cCBpbiBhIHdheSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGdzdF9zaW5rc19zdWl0ZSk6CgkgIFB1dCBiYWNrIHRoZSB0Y2FzZV9zZXRfdGltZW91dCgpLCBhcHBhcmVudGx5IGl0J3MgbmVlZGVkIGFmdGVyCgkgIGFsbDsgZml4IGl0IHVwIGluIGEgd2F5IHRoYXQgbWFrZXMgdGhpbmdzIHdvcmsgd2l0aCB2YWxncmluZCB0b28uCgoyMDA3LTEyLTMwIDEyOjIyOjQ5ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogYWRkIHdhcm5pbmcgd2hlbiBmYWlsZWQgdG8gb3BlbiBmaWxlIGZvciB3cml0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGFkZCB3YXJuaW5nIHdoZW4gZmFpbGVkIHRvIG9wZW4gZmlsZSBmb3Igd3JpdGluZwoKMjAwNy0xMi0yOCAxNDozNDozNCArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE9wdGltaXNhdGlvbjogYmFpbCBvdXQgb2YgdGhlIGxvb3AgYXMgZWFybHkgYXMgcG9zc2libGUgKCM1MDAxNDMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsICA8c3BnbGVnbGUgeWFob28gZnI+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBPcHRpbWlzYXRpb246IGJhaWwgb3V0IG9mIHRoZSBsb29wIGFzIGVhcmx5IGFzIHBvc3NpYmxlICgjNTAwMTQzKS4KCjIwMDctMTItMjggMTQ6MTU6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBCdW5jaCBvZiBncmF0dWl0b3VzIG5hbm8tb3B0aW1pc2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19jb25zdHJ1Y3RfdGVybV9jb2xvcik6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNodik6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kdW1wX21lbSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2FueV9saXN0KSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYW55X2xpc3Rfc3RyaW5nKToKCSAgQnVuY2ggb2YgZ3JhdHVpdG91cyBuYW5vLW9wdGltaXNhdGlvbnMuCgoyMDA3LTEyLTI4IDEzOjU3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBGaXggbGVhayBpbiB1bml0IHRlc3QgKGJ1cyBzeW5jIGhhbmRsZXIgbXVzdCB1bnJlZiB0aGUgbWVzc2FnZSBpZiBpdCByZXR1cm5zIEdTVF9CVVNfRFJPLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGFzeW5jX2RvbmVfZnVuYyksCgkgIChhc3luY19kb25lX2Vvc19mdW5jKToKCSAgRml4IGxlYWsgaW4gdW5pdCB0ZXN0IChidXMgc3luYyBoYW5kbGVyIG11c3QgdW5yZWYgdGhlIG1lc3NhZ2UKCSAgaWYgaXQgcmV0dXJucyBHU1RfQlVTX0RST1ApLiBEb24ndCBmaWRkbGUgd2l0aCB0aGUgZGVmYXVsdCB0ZXN0CgkgIHRpbWVvdXQsIHRoaXMgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHByZWNvbmZpZ3VyZWQgdmFsdWUKCSAgdmlhIENLX0RFRkFVTFRfVElNRU9VVCwgYW5kIGFsc28gYnJlYWtzIHRoaW5ncyB3aXRoIHZhbGdyaW5kCgkgIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gQ0tfREVGQVVMVF9USU1FT1VULgoKMjAwNy0xMi0yNCAxOToyMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWRkIGJ1ZyB0aGF0IHdhcyBmaXhlZCB3aXRoIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGJ1ZyB0aGF0IHdhcyBmaXhlZCB3aXRoIGxhc3QgY29tbWl0LgoKMjAwNy0xMi0yNCAxOToxMToyOSArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgY29uZmlndXJlLmFjOiBDaGVjayBmb3Igc3RkaW9fZXh0LmggZm9yIHRoZSBmaWxlc2luayBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gUGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZSBhdCB5YWhvbyBkb3QgZnI+CgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBmb3Igc3RkaW9fZXh0LmggZm9yIHRoZSBmaWxlc2luayBjaGFuZ2VzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGJ1ZmZlcl9tb2RlX2dldF90eXBlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfZmlsZV9zaW5rX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19kaXNwb3NlKSwgKGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBBZGQgdHdvIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgYnVmZmVyaW5nIG1vZGUgYW5kIHNpemUuCgkgIEFQSTogR3N0RmlsZVNpbms6OmJ1ZmZlci1tb2RlCgkgIEFQSTogR3N0RmlsZVNpbms6OmJ1ZmZlci1zaXplCgoyMDA3LTEyLTI0IDE0OjM1OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEFkZCBzb21lIG1vcmUgZG9jcyB0byBleHBsYWluIHdoeSBhIEZJWE1FIHdhcyB3cm9uZ2x5IGFkZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgdG8gZXhwbGFpbiB3aHkgYSBGSVhNRSB3YXMgd3JvbmdseSBhZGRlZC4KCjIwMDctMTItMjIgMTI6NDg6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuYzogRml4IHR5cG8gaW4gdGhlIGdzdF9vYmplY3Rfe3JlZix1bnJlZn0gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBGaXggdHlwbyBpbiB0aGUgZ3N0X29iamVjdF97cmVmLHVucmVmfSBkb2N1bWVudGF0aW9uLgoKMjAwNy0xMi0yMSAyMToxNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogRG9uJ3QgdXNlIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgaXQgaXMgbm90IHBvcnRhYmxlIGFuZCBpcyBnb2luZyB0byBiZSBkZXByZWNhdGVkIChzZWUgIzQ5ODkyNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIERvbid0IHVzZSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIGl0IGlzIG5vdCBwb3J0YWJsZSBhbmQgaXMKCSAgZ29pbmcgdG8gYmUgZGVwcmVjYXRlZCAoc2VlICM0OTg5MjQpLgoKMjAwNy0xMi0yMSAyMDo1ODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZC5jOiBNYWtlIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIgd29yayBmb3Igc3RhdGljIHR5cGVmaW5kIGZ1bmN0aW9ucywgaWUuIGFsbG93IHBhc3NpbmcgcGx1Z2luID09IE5VTEwgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICBNYWtlIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIgd29yayBmb3Igc3RhdGljIHR5cGVmaW5kIGZ1bmN0aW9ucywKCSAgaWUuIGFsbG93IHBhc3NpbmcgcGx1Z2luID09IE5VTEwgKHByZXJlcXVpc2l0ZSBmb3IgIzQ5ODkyNCkuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb24uCgoyMDA3LTEyLTIxIDEzOjU0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZWFsbHkgdW5saW5rIHRoZSBwZWVyIHBhZCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIHBlZXIgcG9pbnRlciB0byBOVUxMIHdoZW4gd2UgZGlzcG9zZSB0aGUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBSZWFsbHkgdW5saW5rIHRoZSBwZWVyIHBhZCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIHBlZXIgcG9pbnRlciB0byBOVUxMCgkgIHdoZW4gd2UgZGlzcG9zZSB0aGUgcGFkLgoJICBUaGlzIGNvcnJlY3RseSBjYWxscyB0aGUgdW5saW5rIGZ1bmN0aW9ucyBhbmQgbWFrZXMgc3VyZSB0aGF0IHRoZSBwZWVyCgkgIGRvZXMgbm90IGhhdmUgYSBoYW5kbGUgdG8gaW52YWxpZCBtZW1vcnkuIFNlZSAjNTA0NjcxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGQgdGVzdHN1aXRlIGZvciBhYm92ZSBjYXNlLgoKMjAwNy0xMi0yMCAwOToyMDoyNyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggZGV0ZWN0aW9uIG9mIHRoZSBjaGVjayB2ZXJzaW9uIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0ICh3b3VsZCBvdGhlcndpc2UgYnJlYWsgaWYgY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBheGlzIGNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggZGV0ZWN0aW9uIG9mIHRoZSBjaGVjayB2ZXJzaW9uIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0ICh3b3VsZAoJICBvdGhlcndpc2UgYnJlYWsgaWYgY2hlY2sgZ29lcyB2MC4xMC4wKTsgY29ycmVjdGx5IHJlcG9ydCB0aGUKCSAgbmFtZSBvZiB0aGUgZmFpbGVkIHRlc3QgYWdhaW4gaW4gY2FzZSBvZiBmYWlsdXJlLCBpbnN0ZWFkIG9mCgkgIGp1c3QgJ3RmJyAoZml4ZXMgIzUwNDQ5OSkuCgoyMDA3LTEyLTE5IDE3OjQ5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsbG93IHNlbmRpbmcgRU9TIHRvIHRoZSBzb3VyY2UgdG8gbWFrZSBpdCBzZW5kIG91dCBhbiBFT1MgZXZlbnQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsbG93IHNlbmRpbmcgRU9TIHRvIHRoZSBzb3VyY2UgdG8gbWFrZSBpdCBzZW5kIG91dCBhbiBFT1MgZXZlbnQgZnJvbQoJICB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgVXBkYXRlIGRvY3MgYW5kIGRlcHJlY2F0ZSB0aGUgb2xkIE5VTEwvUkVBRFkgc2h1dGRvd24gbWV0aG9kLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2Jhc2VzcmNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjb250cm9sbGVkIHNodXRkb3duLgoKMjAwNy0xMi0xOSAxMjo0ODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU21hbGwgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTbWFsbCB1cGRhdGVzLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIFRoZSBzZWVrIGZvcm1hdCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlIHNlZ21lbnQgZm9ybWF0IHdoZW4gdGhlIHN0YXJ0CgkgIGFuZCBzdG9wIHZhbHVlcyBhcmUgbm90IHRvIGJlIHVwZGF0ZWQsIHdoZW4gd2Ugb25seSBkbyBhIHJhdGUgY2hhbmdlIGZvcgoJICBleGFtcGxlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIEFkZCBhIHRlc3RjYXNlIGZvciB0aGUgcmF0ZS1vbmx5IHNlZWtzLCBjaGVja2luZyB0aGF0IHRoZSBmb3JtYXQgaXMKCSAgY29ycmVjdGx5IGlnbm9yZWQgd2hlbiBzdGFydCBhbmQgc3RvcCBhcmUgbm90IHVwZGF0ZWQuCgoyMDA3LTEyLTE4IDEzOjM4OjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5LCBnc3RlbnVtdHlwZXMuYyBjaGFuZ2VzIHdlcmUgbm90IGNvbW1pdHRlZCBiZWNhdXNlIHRoZXJlIHdlcmUgbm9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2cgc3VyZ2VyeSwgZ3N0ZW51bXR5cGVzLmMgY2hhbmdlcyB3ZXJlIG5vdCBjb21taXR0ZWQgYmVjYXVzZSB0aGVyZSB3ZXJlIG5vbmUKCjIwMDctMTItMTggMTM6MTg6MzUgKzAwMDAgIE1hdHRoaWFzIEJvbHRlIDxwaG90b25AbWFpbC51cGIuZGU+CgoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IFNvbWUgaW5kZW50aW9uIGZpeGVzIGJ5IGdzdC1pbmRlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogKHJlZ2lzdGVyX2dzdF9idWZmZXJfZmxhZyksCgkgIChyZWdpc3Rlcl9nc3RfYnVmZmVyX2NvcHlfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X2Nsb2NrX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9kZWJ1Z19ncmFwaF9kZXRhaWxzKSwKCSAgKHJlZ2lzdGVyX2dzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJuKSwgKHJlZ2lzdGVyX2dzdF9zdGF0ZV9jaGFuZ2UpLAoJICAocmVnaXN0ZXJfZ3N0X2VsZW1lbnRfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X2NvcmVfZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X2xpYnJhcnlfZXJyb3IpLCAocmVnaXN0ZXJfZ3N0X3Jlc291cmNlX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF9zdHJlYW1fZXJyb3IpLCAocmVnaXN0ZXJfZ3N0X2V2ZW50X3R5cGVfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X2V2ZW50X3R5cGUpLCAocmVnaXN0ZXJfZ3N0X2luZGV4X2VudHJ5X3R5cGUpLAoJICAocmVnaXN0ZXJfZ3N0X2Fzc29jX2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9tZXNzYWdlX3R5cGUpLAoJICAocmVnaXN0ZXJfZ3N0X21pbmlfb2JqZWN0X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9wYWRfbGlua19yZXR1cm4pLAoJICAocmVnaXN0ZXJfZ3N0X2Zsb3dfcmV0dXJuKSwgKHJlZ2lzdGVyX2dzdF9wYWRfdGVtcGxhdGVfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X3BpcGVsaW5lX2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9wbHVnaW5fZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X3RhZ19tZXJnZV9tb2RlKSwgKHJlZ2lzdGVyX2dzdF9hbGxvY190cmFjZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfdHlwZV9maW5kX3Byb2JhYmlsaXR5KSwgKHJlZ2lzdGVyX2dzdF9wYXJzZV9lcnJvcik6CgkgIFNvbWUgaW5kZW50aW9uIGZpeGVzIGJ5IGdzdC1pbmRlbnQuCgkgIFBhdGNoIGJ5OiBNYXR0aGlhcyBCb2x0ZSA8cGhvdG9uIGF0IG1haWwgZG90IHVwYiBkb3QgZGU+CgkgICogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggVlM4IGFuZCBpbmNsdWRlIHNvbWUgbWlzc2luZyBmaWxlcy4KCjIwMDctMTItMTggMTI6MDM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBTbWFsbCBkb2NzIGFkZGl0aW9uOiBtZW50aW9uIHRoYXQgdGhlIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcqKCkgYXJlIGluIFVURi04IGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgU21hbGwgZG9jcyBhZGRpdGlvbjogbWVudGlvbiB0aGF0IHRoZSBzdHJpbmdzIHJldHVybmVkIGJ5CgkgIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKigpIGFyZSBpbiBVVEYtOCBlbmNvZGluZy4KCjIwMDctMTItMTcgMTk6NTk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlZmlsZS5hbTogVGhlIGNoZWNrLWV4cG9ydHMgc3R1ZmYgbW92ZWQgdG8gY29tbW9uL3dpbjMyLm1haywgc28gaW5jbHVkZSB0aGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgVGhlIGNoZWNrLWV4cG9ydHMgc3R1ZmYgbW92ZWQgdG8gY29tbW9uL3dpbjMyLm1haywgc28gaW5jbHVkZSB0aGF0LgoKMjAwNy0xMi0xNyAxNjozODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIF93YWl0X3BsYXlpbmcoKSBub3QgY2hlY2sgYW55IHZhcmlhYmxlcyBzbyB0aGF0IHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gZnJvbSBzdWJjbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcGxheWluZyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBfd2FpdF9wbGF5aW5nKCkgbm90IGNoZWNrIGFueSB2YXJpYWJsZXMgc28gdGhhdCB3ZSBjYW4gY2FsbCB0aGlzCgkgIGZ1bmN0aW9uIGZyb20gc3ViY2xhc3Nlcy4gTW92ZSB0aGUgY2hlY2tzIGVsc2V3aGVyZSBzaW1pbGFyIHRvCgkgIF93YWl0X3ByZXJvbGwoKSBpbiBiYXNlc2luay4KCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPbmx5IHNpZ25hbCB0aGUgTElWRSBjb25kIHdoZW4gd2UgYXJlIGdvaW5nIGJhY2sgdG8gUExBWUlORy4KCjIwMDctMTItMTYgMTg6Mjk6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogVXNlIGdfcmVtb3ZlKCkgYW5kIGdfcmVuYW1lKCkuIENoZWNrIHJlc3VsdCBvZiBnX3JlbmFtZSgpLCBhbmQgZG9uJ3QgbGVhayB0aGUgb3BlbiBmaWxlIGRlc2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKToKCSAgVXNlIGdfcmVtb3ZlKCkgYW5kIGdfcmVuYW1lKCkuIENoZWNrIHJlc3VsdCBvZiBnX3JlbmFtZSgpLCBhbmQKCSAgZG9uJ3QgbGVhayB0aGUgb3BlbiBmaWxlIGRlc2NyaXB0b3IgaWYgd2UgZXJyb3Igb3V0IHdoZW4gd3JpdGluZy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBNdXN0IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgY2xvc2UoKSBhZnRlciB3cml0aW5nIG91dCB0aGUgbmV3CgkgIHJlZ2lzdHJ5IGZpbGUuICBTb21ldGltZXMgd3JpdGUgcHJvYmxlbXMgc3VjaCBhcyBvdXQtb2YtZGlza3NwYWNlCgkgIGFyZSBvbmx5IHJlcG9ydGVkIHdoZW4gdGhlIGZpbGUgaXMgY2xvc2VkIGFuZCBub3QgYWxyZWFkeSBkdXJpbmcKCSAgdGhlIHdyaXRlLiAgVGhpcyBtYXkgaGF2ZSBjYXVzZWQgcGFydGlhbC9icm9rZW4gcmVnaXN0cnkgZmlsZXMgaW4KCSAgc29tZSByYXJlIGNpcmN1bXN0YW5jZXMuIFNob3VsZCBmaXggIzUwMzY3NS4KCjIwMDctMTItMTYgMTc6Mzc6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzLzogSWdub3JlIGZpbGVzIGdlbmVyYXRlZCBieSBuZXcgY29tbW9uLyogbW9kaWZpY2F0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvbGlicy8uY3ZzaWdub3JlOgoJICAqIGRvY3MvcGx1Z2lucy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgZmlsZXMgZ2VuZXJhdGVkIGJ5IG5ldyBjb21tb24vKiBtb2RpZmljYXRpb25zCgoyMDA3LTEyLTE1IDE1OjE5OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IFllcywgeW91IGNhbiBhbHNvIGhhdmUgYSA8VEFCPiBpZiB5b3Ugd2FudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBZZXMsIHlvdSBjYW4gYWxzbyBoYXZlIGEgPFRBQj4gaWYgeW91IHdhbnQuCgoyMDA3LTEyLTE1IDE0OjU4OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBBUEkgdG8gd2luIGV4cG9ydCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBBUEkgdG8gd2luIGV4cG9ydCBmaWxlLgoKMjAwNy0xMi0xNSAxNDo0MjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGp1c3QgdGhlIHRlc3QgdG8gdGhlIHJlZmNvdW50IGNoYW5nZSB0d28gZGF5cyBhZ28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgQWRqdXN0IHRoZSB0ZXN0IHRvIHRoZSByZWZjb3VudCBjaGFuZ2UgdHdvIGRheXMgYWdvLgoKMjAwNy0xMi0xNCAyMTozNjo1MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOiBGaXggdHlwby4KCjIwMDctMTItMTQgMTY6NTI6MzggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKCkgdG8gY29udHJvbCB3aGV0aGVyIHRoZSBlbGVtZW50IGNvcnJlY3RseSBoYW5kbGVzIEdTVF9CVUZGRVJfRkxBR19HQVAgb3Igcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFQSTogQWRkIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKCkgdG8gY29udHJvbCB3aGV0aGVyCgkgIHRoZSBlbGVtZW50IGNvcnJlY3RseSBoYW5kbGVzIEdTVF9CVUZGRVJfRkxBR19HQVAgb3Igc2hvdWxkbid0CgkgIGdldCBidWZmZXJzIHdpdGggdGhpcyBmbGFnIGF0IGFsbC4gRml4ZXMgIzUwMzIzMS4KCjIwMDctMTItMTMgMTY6NDk6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBSZXBsYWNlIGdzdF9wYWRfZ2V0X3BhcmVudCBieSBHU1RfT0JKRUNUX1BBUkVOVCBpbnNpZGUgc3RyZWFtaW5nIHRocmVhZC4gQ29ycmVjdCBsb2cgbWVzc2FnZSBpbiBnc3RiYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJlcGxhY2UgZ3N0X3BhZF9nZXRfcGFyZW50IGJ5IEdTVF9PQkpFQ1RfUEFSRU5UIGluc2lkZSBzdHJlYW1pbmcKCSAgdGhyZWFkLiBDb3JyZWN0IGxvZyBtZXNzYWdlIGluIGdzdGJhc2VzcmMuYy4KCjIwMDctMTItMTMgMTM6NTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IHBvc3NpYmxlIGNvbXBpbGVyIHdhcm5pbmcgKCM1MDM0MTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmNvbm5lY3RlZF9wYWQpOgoJICBGaXggcG9zc2libGUgY29tcGlsZXIgd2FybmluZyAoIzUwMzQxNykuCgoyMDA3LTEyLTEzIDExOjQxOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBEb24ndCB1c2UgR1NUX0NBVF9FVkVOVCBoZXJlIGZvciBsb2dnaW5nLCBpdCBtYWtlcyBubyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICBEb24ndCB1c2UgR1NUX0NBVF9FVkVOVCBoZXJlIGZvciBsb2dnaW5nLCBpdCBtYWtlcyBubyBzZW5zZS4KCjIwMDctMTItMTMgMTA6MzE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCBzdXBwb3J0IGZvciBHc3RGcmFjdGlvbiBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBBZGQgc3VwcG9ydCBmb3IgR3N0RnJhY3Rpb24gcHJvcGVydGllcy4KCjIwMDctMTItMTIgMjM6MjA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlZmlsZS5hbTogQWRkIGNoZWNrLWV4cG9ydHMgdGFyZ2V0IGFuZCBydW4gaXQgYXMgcGFydCBvZiAnbWFrZSBjaGVjaycgKHNlZSAjNDk5MTQwIGFuZCAjNDkzOTgzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIEFkZCBjaGVjay1leHBvcnRzIHRhcmdldCBhbmQgcnVuIGl0IGFzIHBhcnQgb2YgJ21ha2UgY2hlY2snCgkgIChzZWUgIzQ5OTE0MCBhbmQgIzQ5Mzk4MykuCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfcHJpdl9nc3RfaW5fdmFsZ3JpbmQpLCAoX2dzdF9kZWJ1Z19pbml0KSwKCSAgKF9wcml2X2dzdF9pbl92YWxncmluZCk6CgkgICogZ3N0L2dzdGluZm8uaDogKEdzdExvZ0Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKHR5cGVfZmluZF9kZWJ1ZyksIChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAodHlwZV9maW5kX2RlYnVnKSwgKEdTVF9DQVRfREVGQVVMVCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKEdTVF9DQVRfREVGQVVMVCksIChwYXJlbnRfY2xhc3MpLCAocHJpdl9nc3RfY29udHJvbGxlcl9rZXkpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoR1NUX0NBVF9ERUZBVUxUKSwgKGdzdF9vYmplY3RfdW5jb250cm9sX3Byb3BlcnRpZXMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbGxlciksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sbGVyKSwKCSAgKGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMpLCAoZ3N0X29iamVjdF9zeW5jX3ZhbHVlcyksCgkgIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3NvdXJjZSksIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMpLCAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXkpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICBNYWtlIHNvbWUgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHN0YXRpYyBzdGF0aWM7IHJlbmFtZSBzb21lCgkgIHByaXZhdGUgc3ltYm9scyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGV4cG9ydGVkOyBhZGQgc29tZSBGSVhNRQoJICBjb21tZW50cyBzbyB3ZSBjYW4gbW92ZSBhY2NpZGVudGFsbHkgZXhwb3J0ZWQgZnVuY3Rpb25zIGludG8KCSAgb3VyIHByaXZhdGUgc2VjdGlvbiBpbiAwLjExLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3V0aWxzX2dldF90aW1lc3RhbXAoKS4KCjIwMDctMTItMTIgMTQ6MDQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBBZGQgbW9yZSBtaXNzaW5nICJTaW5jZToiIHRhZ3MgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEFkZCBtb3JlIG1pc3NpbmcgIlNpbmNlOiIgdGFncyB0byBkb2NzLgoKMjAwNy0xMi0xMiAwNjo1ODo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBtaXNpbmcgIlNpbmNlOiIgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtaXNpbmcgIlNpbmNlOiIgdG8gZG9jcy4KCjIwMDctMTItMTEgMjI6MDM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSW5jbHVkZSAiZ2xpYi1jb21wYXQtcHJpdmF0ZS5oIiB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbSB3aXRoIGdsaWIgPCAyLjEwLiBGaXhlcyAjNTAzMTMxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEluY2x1ZGUgImdsaWItY29tcGF0LXByaXZhdGUuaCIgdG8gZml4IHRoZSBidWlsZCBvbiBzeXN0ZW0gd2l0aAoJICBnbGliIDwgMi4xMC4gRml4ZXMgIzUwMzEzMS4KCjIwMDctMTItMTEgMjA6MzI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy4qOiBBY3R1YWxseSBpdHMgbm90IFBVUkUgYXMgaXQgZ2V0cyB0aGUgdGltZSBmcm9tIGVsc2V3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFjdHVhbGx5IGl0cyBub3QgUFVSRSBhcyBpdCBnZXRzIHRoZSB0aW1lIGZyb20gZWxzZXdoZXJlLgoKMjAwNy0xMi0xMSAyMDoyMzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlIEdTVF9HRVRfVElNRVNUQU1QIGludG8gZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCBhbmQgcmVwbGFjZSBhbGwgdXNlcyBhcyB3ZSBkb24ndCBoYXZlIEhBVkVfUE9TSVhfVElNRVJTIGluIHB1YmxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIENoYW5nZSBHU1RfR0VUX1RJTUVTVEFNUCBpbnRvIGdzdF91dGlsX2dldF90aW1lc3RhbXAgYW5kIHJlcGxhY2UgYWxsCgkgIHVzZXMgYXMgd2UgZG9uJ3QgaGF2ZSBIQVZFX1BPU0lYX1RJTUVSUyBpbiBwdWJsaWMgaGVhZGVycy4KCSAgVGhhbmtzIFRpbSBmb3Igc3BvdHRpbmcuCgoyMDA3LTEyLTExIDE1OjI5OjI2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZSBieSBtaXJyb3JpbmcgbGF0ZXN0IEZlZG9yYSBvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUgYnkgbWlycm9yaW5nIGxhdGVzdCBGZWRvcmEgb25lCgoyMDA3LTEyLTA5IDA0OjI4OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IGRlZmluZSBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciByZWxlYXNlcy4gRml4ZXMgIzQ5ODE4MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBkZWZpbmUgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBmb3IgcmVsZWFzZXMuIEZpeGVzICM0OTgxODEuCgoyMDA3LTEyLTA4IDEyOjU0OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBEb24ndCBjcmFzaCBpbiBfZnJvbV9zdHJpbmcoKSBpZiB0aGUgc3RydWN0dXJlIG5hbWUgaXMgbm90IHZhbGlkIChmaXhlcyAjNTAxNTYwKS4gIEFsbG93IHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsaWRhdGVfbmFtZSksCgkgIChnc3Rfc3RydWN0dXJlX25ld192YWxpc3QpLCAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSksCgkgIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgRG9uJ3QgY3Jhc2ggaW4gX2Zyb21fc3RyaW5nKCkgaWYgdGhlIHN0cnVjdHVyZSBuYW1lIGlzIG5vdCB2YWxpZAoJICAoZml4ZXMgIzUwMTU2MCkuICBBbGxvdyBzdHJ1Y3R1cmUgbmFtZXMgdG8gc3RhcnQgd2l0aCBhIG51bWJlcgoJICBhZ2FpbiAodGhpcyBhcHBhcmVudGx5IGJyb2tlIHRoZSB1YnVudHUgY29kZWMgaW5zdGFsbGVyKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBjcmFzaDsgdXBkYXRlIHVuaXQgdGVzdHMgZm9yIG5ldyBiZWhhdmlvdXIuCgoyMDA3LTEyLTAzIDExOjA0OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENsYXJpZnkgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCkgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENsYXJpZnkgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCkgZG9jdW1lbnRhdGlvbi4KCSAgRml4ZXMgIzUwMDkxOS4KCjIwMDctMTItMDIgMjA6MzM6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCBmb3JnZXQgdG8gZGlzdCB7Z3N0LGxpYnN9L3N0cnVjdF9ocHBhLmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBEb24ndCBmb3JnZXQgdG8gZGlzdCB7Z3N0LGxpYnN9L3N0cnVjdF9ocHBhLmguCgoyMDA3LTExLTI4IDEzOjAyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCjIwMDctMTEtMjggMTI6NTI6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCB3cm9uZyBvcmRlciBvZiBhcmdzIGluIEdTVF9DTE9DS19ESUZGKCkgdXNhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHdyb25nIG9yZGVyIG9mIGFyZ3MgaW4gR1NUX0NMT0NLX0RJRkYoKSB1c2FnZS4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgoyMDA3LTExLTI4IDEyOjM1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW5hbWUgbmV3IEFQSSArIENoYW5nZUxvZyBzdXJnZXJ5IHRvIHJlbW92ZSBvbGQgbmFtZSBmcm9tIGxhc3QgZW50cnkuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgUmVuYW1lIG5ldyBBUEkgKyBDaGFuZ2VMb2cgc3VyZ2VyeSB0byByZW1vdmUgb2xkIG5hbWUgZnJvbSBsYXN0IGVudHJ5Li4KCSAgQVBJOiBHU1RfR0VUX1RJTUVTVEFNUAoKMjAwNy0xMS0yOCAxMjoxMTo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTm93IGhpZGUgdGhlIGRpZmZlcmVudCBjbG9jayBzdHVmZiBiZWhpbmQgYSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIE5vdyBoaWRlIHRoZSBkaWZmZXJlbnQgY2xvY2sgc3R1ZmYgYmVoaW5kIGEgbWFjcm8uCgkgIEFQSTogR1NUX0dFVF9DVVJSRU5UX1RJTUUKCjIwMDctMTEtMjggMTE6Mzk6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFwcGx5IHRoZSBwb3NpeC10aW1lciBjaGVjayBmcm9tICMzNjExNTUuIENvbmRpdGlvbmFsbHkgdXNlIHRoZSBwb3NpeCB0aW1lciBmb3IgbG9nZ2luZy4gVGhpcyBnaXZlcyBiZXR0ZXIgdGltZXN0YW1wIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBBcHBseSB0aGUgcG9zaXgtdGltZXIgY2hlY2sgZnJvbSAjMzYxMTU1LiBDb25kaXRpb25hbGx5IHVzZSB0aGUgcG9zaXgKCSAgdGltZXIgZm9yIGxvZ2dpbmcuIFRoaXMgZ2l2ZXMgYmV0dGVyIHRpbWVzdGFtcCBwcmVjaXNzaW9uLCBsZXNzCgkgIG92ZXJoZWFkIGFuZCBubyBudHAgaml0dGVyLgoKMjAwNy0xMS0yOCAxMToxMTo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU29tZSBjbGVhbnVwIGFuZCBjaGVja2luZyBhZ2FpbnN0IGludmFsaWQgZnVuY3Rpb24gcGFyYW1ldGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfY2xhc3NfaW5pdCksIChnc3RfbWluaV9vYmplY3RfY29weV9kZWZhdWx0KSwKCSAgKGdzdF9taW5pX29iamVjdF9maW5hbGl6ZSksIChnc3RfbWluaV9vYmplY3RfY29weSksCgkgIChnc3RfbWluaV9vYmplY3RfaXNfd3JpdGFibGUpLCAoZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpLCAocGFyYW1fbWluaV9vYmplY3RfdmFsaWRhdGUpLAoJICAoZ3N0X3BhcmFtX3NwZWNfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICBTb21lIGNsZWFudXAgYW5kIGNoZWNraW5nIGFnYWluc3QgaW52YWxpZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgoKMjAwNy0xMS0yOCAxMDo1ODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFN0YXJ0IG1lcmdpbmcgaW4gdGhlIGVhc3kgYml0cyBvZiAjMzYxMTU1LCB0aGUgbW9ub3RvbmljIGNsb2NrIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgU3RhcnQgbWVyZ2luZyBpbiB0aGUgZWFzeSBiaXRzIG9mICMzNjExNTUsIHRoZSBtb25vdG9uaWMgY2xvY2sgcGF0Y2guCgkgIFRoaXMgb25lIGFkZHMgYSBmZXcgaGFuZHkgbWFjcm9zIHdpdGggZG9jcyBhbmQgYSB0ZXN0c3VpdGUuCgoyMDA3LTExLTI3IDE4OjQ1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBCZSBhIGJpdCBzbWFydGVyIHdoZW4gc2Vla2luZywgbGlrZSwgZG9uJ3QgdHJ5IHRvIGRvIGEgc2VlayB3aGVuIGl0J3Mgbm90IG5lZWRlZC4gVGhpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICBCZSBhIGJpdCBzbWFydGVyIHdoZW4gc2Vla2luZywgbGlrZSwgZG9uJ3QgdHJ5IHRvIGRvIGEgc2VlayB3aGVuIGl0J3MKCSAgbm90IG5lZWRlZC4gVGhpcyBhdm9pZHMgZXJyb3JzIHdoZW4gdGhlIGZpbGUgaXMgbm90IHNlZWthYmxlLgoJICBGaXhlcyAjNDk5NzcxLgoKMjAwNy0xMS0yNiAxMzoxNjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCByZW1vdmUgcHJlc2V0IGludGVyZmFjZSBhZ2Fpbi4gOi0oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgcmVtb3ZlIHByZXNldCBpbnRlcmZhY2UgYWdhaW4uIDotKC4KCjIwMDctMTEtMjIgMjE6MzI6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50ICdkZWZhdWx0IHZhbHVlJyBmb3IgZW51bXMgYW5kIGZsYWdzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUHJpbnQgJ2RlZmF1bHQgdmFsdWUnIGZvciBlbnVtcyBhbmQgZmxhZ3MgdG9vLgoKMjAwNy0xMS0yMiAxNTo1OTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OiBNb3JlIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIE1vcmUgaWRlYXMuCgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggdHlwbyBhbmQgZ2l2ZSBiZXR0ZXIgbG9nIG91dHB1dC4KCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIE1vcmUgaWRlYXMsIG1ha2UgZ3JhcGhzIGEgYml0IHNtYWxsZXIgYW5kIGZpeCBwYXJhbSBuYW1lIGluIG1hY3JvLgoKMjAwNy0xMS0yMiAxMzo1NjoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBUcnkgaGFyZGVyIHRvIHVzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZmdldHMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBUcnkgaGFyZGVyIHRvIHVzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZmdldHMoKS4KCjIwMDctMTEtMjEgMTY6MDg6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogRm9yIHRoZXNlcyB0d28gZmdldHMgd2UgaGFuZGxlIHRoZSBlcnJvciBiZWxvdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBGb3IgdGhlc2VzIHR3byBmZ2V0cyB3ZSBoYW5kbGUgdGhlIGVycm9yIGJlbG93LgoKMjAwNy0xMS0yMSAxMzo0Nzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBzZW5kIHVwc3RyZWFtIGV2ZW50cyB1cHN0cmVhbS4gRml4ZXMgIzQ5ODc0Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgT25seSBzZW5kIHVwc3RyZWFtIGV2ZW50cyB1cHN0cmVhbS4gRml4ZXMgIzQ5ODc0Ni4KCjIwMDctMTEtMjEgMTM6Mjc6NTAgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogQWRkIHByb3BlcnR5IHRvIGRpc2FibGUgaGFuZG9mZiBzaWduYWwgZW1pc3Npb24uIEZpeGVzICM0OTg2OTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlIGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBBZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBoYW5kb2ZmIHNpZ25hbCBlbWlzc2lvbi4gRml4ZXMgIzQ5ODY5NC4KCSAgQVBJOiBHc3RJZGVudGl0eTo6c2lnbmFsLWhhbmRvZmZzCgoyMDA3LTExLTIxIDA5OjQ2OjUwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogWWV0IGFub3RoZXIgbWlzc2luZyBsaWJyYXJ5IGZvciB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IChmZnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTIxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogWWV0IGFub3RoZXIgbWlzc2luZyBsaWJyYXJ5IGZvciB0aGUKCSAgdW5pbnN0YWxsZWQgc2NyaXB0IChmZnQpCgoyMDA3LTExLTIxIDAwOjI0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOiBBZGQgYSBxdWVzdGlvbiBhYm91dCBob3cgdG8gc3VibWl0IG5ldyB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBBZGQgYSBxdWVzdGlvbiBhYm91dCBob3cgdG8gc3VibWl0IG5ldyB0cmFuc2xhdGlvbnMuCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVXBkYXRlIHRoZSBjb250YWN0IGVtYWlsIGFkZHJlc3MgZm9yIHRoZSBUcmFuc2xhdGlvbiBQcm9qZWN0CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBUaGUgcGFyZW50X2NsYXNzIGZvciBmZHNyYyBpcyBwdXNoc3JjLCBub3QgR3N0RWxlbWVudC4KCjIwMDctMTEtMjAgMTY6MzQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogUGx1ZyBhIGxlYWsgYW5kIGZpeCBzYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUGx1ZyBhIGxlYWsgYW5kIGZpeCBzYXZpbmcuCgoyMDA3LTExLTIwIDE2OjEwOjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGdzdF9wcmVzZXRfX2dldF9wcm9wZXJ0eV9uYW1lcygpIGZ1bmN0aW9uIHRvIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZ3N0X3ByZXNldF9fZ2V0X3Byb3BlcnR5X25hbWVzKCkgZnVuY3Rpb24gdG8gdGhlIGRvY3MKCSAgdG8gZml4IHRoZSBidWlsZC4KCjIwMDctMTEtMjAgMTU6NDY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuKjogQ2hhbmdlIF9nZXRfcHJlc2V0X25hbWVzIEFQSSB0byByZXR1cm4gYSBzdHJ2IHdpdGggY29waWVzLiBBZGQgX2dldF9wcm9wZXJ0eV9uYW1lcyB0byBhbGxvdyBpbXBsZW1lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBDaGFuZ2UgX2dldF9wcmVzZXRfbmFtZXMgQVBJIHRvIHJldHVybiBhIHN0cnYgd2l0aCBjb3BpZXMuIEFkZAoJICBfZ2V0X3Byb3BlcnR5X25hbWVzIHRvIGFsbG93IGltcGxlbWVudGF0aW9ucyB0byBmaWx0ZXIgYW5kIHByb3ZpZGUKCSAgZ29vZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAwNy0xMS0yMCAxMTo0NjozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbm90aGVyIGxpYnJhcnkgdG8gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCAoc2RwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMjAgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbm90aGVyIGxpYnJhcnkgdG8gdGhlIHVuaW5zdGFsbGVkCgkgIHNjcmlwdCAoc2RwKS4KCjIwMDctMTEtMTkgMTU6MjM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogTW9yZSBjbGVhbnVwcywgZG9jcywgYW5kIFRPRE9zIGZyb20gY29tbWVudHMgdGhhdCBub3cgc2xvd2x5IGNvbWUgaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgTW9yZSBjbGVhbnVwcywgZG9jcywgYW5kIFRPRE9zIGZyb20gY29tbWVudHMgdGhhdCBub3cgc2xvd2x5IGNvbWUgaW4uCgoyMDA3LTExLTE5IDE0OjM4OjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIG5ldyBiYXNlIGxpYnJhcmllcyBpbiB0aGUgTEQgc2VhcmNoIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbmV3IGJhc2UgbGlicmFyaWVzIGluIHRoZSBMRAoJICBzZWFyY2ggcGF0aC4KCjIwMDctMTEtMTkgMTE6NTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogRml4IGJvZ3VzIHdhcm5pbmcgYW5kIG1ha2UgdGhlIHByb3BlcnR5IHR5cGUgc3BlY2lmaWMgY29kZSBtb3JlIHNpbWlsYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRml4IGJvZ3VzIHdhcm5pbmcgYW5kIG1ha2UgdGhlIHByb3BlcnR5IHR5cGUgc3BlY2lmaWMgY29kZSBtb3JlCgkgIHNpbWlsYXIuCgoyMDA3LTExLTE5IDA5OjMzOjA1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogTWFrZSBpdCBidWlsZCBvbiBPUyBYLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfZGVmYXVsdF9jcmVhdGVfcHJlc2V0KTogTWFrZQoJICBpdCBidWlsZCBvbiBPUyBYLgoKMjAwNy0xMS0xOSAwODo1MDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2hhbmdlIGVtYWlsLCBjbGVhbnVwcyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBDaGFuZ2UgZW1haWwsIGNsZWFudXBzIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGNvbW1lbnRzLgoJICBBbHNvIHNldCBidXMgYW5kIGNsb2NrIG9uIG5ldyBlbGVtZW50cyB3aGVuIHRoZSBwaXBlbGluZSB3YXMgaW4gZXJyb3IuCgoyMDA3LTExLTE4IDE5OjMwOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLiBGaXhlcyAjNDk3ODU5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4gRml4ZXMgIzQ5Nzg1OS4KCSAgU3BvdHRlZCBieSBTYW1lZXIgTmFpay4KCjIwMDctMTEtMTcgMTc6NTA6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBMaXR0bGUgZG9jdW1lbnRhdGlvbiBpbXByb3ZtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgTGl0dGxlIGRvY3VtZW50YXRpb24gaW1wcm92bWVudC4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIE1vcmUgVE9ETyBjbGVhbnVwcy4gUmVtb3ZlIGMrKyBjb21tZW50cy4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIFRPRE8gYW5kIHVzZSBxdWFyayBmcm9tIHN0YXRpYyBzdHJpbmcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVzZSBxdWFyayBmcm9tIHN0YXRpYyBzdHJpbmcuCgoyMDA3LTExLTE3IDE3OjI0OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEFkZCBzb21lIGNvbW1lbnRzIGFuZCBUT0RPcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBBZGQgc29tZSBjb21tZW50cyBhbmQgVE9ET3MuCgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgcGFkZGluZyBmb3IgZnV0dXJlIGNoYW5nZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBJbXBsZW1lbnQgdGhlIGlmYWNlLgoKMjAwNy0xMS0xNyAxNjo0MzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHRoZSBwcmVzZXQgaW50ZXJmYWNlIChGaXhlcyAjMzk2Nzc5KS4gRG8gc29tZSBkb2MgY2xlYW51cHMgYWxvbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgdGhlIHByZXNldCBpbnRlcmZhY2UgKEZpeGVzICMzOTY3NzkpLiBEbyBzb21lIGRvYyBjbGVhbnVwcyBhbG9uZy4KCjIwMDctMTEtMTYgMDA6MjM6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE1ID09PQoKMjAwNy0xMS0xNiAwMDowNzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjE1LCAiT2N0b2JlciIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMTUgPT09CgkgIDIwMDctMTEtMTUgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMTUsICJPY3RvYmVyIgoKMjAwNy0xMS0xNSAyMzozMToxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0xMS0xNCAxMjoyNDowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDogQ29udmVydCBsaW5lIGVuZGluZ3MgYmFjayB0byBET1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBDb252ZXJ0IGxpbmUgZW5kaW5ncyBiYWNrIHRvIERPUy4KCjIwMDctMTEtMTMgMTE6MzA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBVcGRhdGUgZmFzdCB0YWdyZWFkaW5nIGRyYWZ0IGFuZCBwZXJmb3JtYW5jZSBwcm9maWxpbmcgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgVXBkYXRlIGZhc3QgdGFncmVhZGluZyBkcmFmdCBhbmQgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIGlkZWFzLgoKMjAwNy0xMS0wOSAxNDowNTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hlbiB1bnJlZmZpbmcgYSBidWZmZXIgYmVjYXVzZSBpdCBjb3VsZCBjYXVzZSBhIGRlYWRsb2NrIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlcik6CgkgIERvbid0IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoZW4gdW5yZWZmaW5nIGEgYnVmZmVyIGJlY2F1c2UgaXQgY291bGQKCSAgY2F1c2UgYSBkZWFkbG9jayB3aGVuIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbiB3YW50cyB0byBncmFiIHRoZSBvYmplY3QKCSAgbG9jayB0b28uIEZpeGVzICM0OTUxMzMuCgoyMDA3LTExLTA5IDExOjU2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWxzbyBhY2N1bXVsYXRlIHRpbWUgY29ycmVjdGx5IHdoZW4gZG9pbmcgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMgIzQ4ODIwMSwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgQWxzbyBhY2N1bXVsYXRlIHRpbWUgY29ycmVjdGx5IHdoZW4gZG9pbmcgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMKCSAgIzQ4ODIwMSwKCSAgV2hlbiBjb252ZXJ0aW5nIHRvIHJ1bm5pbmcgYW5kIHN0cmVhbSB0aW1lLCB1c2UgZGVmYXVsdCB2YWx1ZXMgZm9yCgkgIHN0YXJ0L3N0b3AvdGltZS9hY2N1bSB3aGVuIGNvbXBhcmluZyBkaWZmZXJlbnQgZm9ybWF0cy4gRml4ZXMgIzQ5NDI0NS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgRG8gcnVubmluZy9zdHJlYW0gdGltZSBpbiBUSU1FIGZvcm1hdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICAyIG5ldyB1bml0IHRlc3RzIGZvciBzZWdtZW50IGFjY3VtdWxhdGlvbi4KCjIwMDctMTEtMDcgMTU6NTM6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3ZlIGdldGVudigpIGJhY2sgaW50byBnc3RfaW5pdCwgc28gZXZlcnlvbmUgY2FuIGxpdmUgaGFwcGlseSBldmVyIGFmdGVyLiBNYWtlIHN1cmUgdGhlIHN5bWJvbCBpc24ndCBleHBvcnRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChwcml2X2dzdF9kdW1wX2RvdF9kaXIpLCAoZGVidWdfZHVtcF9lbGVtZW50KSwKCSAgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKToKCSAgTW92ZSBnZXRlbnYoKSBiYWNrIGludG8gZ3N0X2luaXQsIHNvIGV2ZXJ5b25lIGNhbiBsaXZlIGhhcHBpbHkKCSAgZXZlciBhZnRlci4gTWFrZSBzdXJlIHRoZSBzeW1ib2wgaXNuJ3QgZXhwb3J0ZWQgdGhvdWdoLgoKMjAwNy0xMS0wNiAyMzoxNzowOSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZSBlbnVtIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUgIDxzZWJhc3RpZW4gbW91dHRlIG5ldD4KCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUgZW51bSB0eXBlcy4KCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXBkYXRlIHZzNiBwcm9qZWN0IGZpbGVzICgjNDk0MzQzKS4KCjIwMDctMTEtMDYgMTc6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVW5pZnkgZmx1c2hpbmcgY29kZSwgcmVtb3ZlIHNvbWUgb2xkIHVubG9jayBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVW5pZnkgZmx1c2hpbmcgY29kZSwgcmVtb3ZlIHNvbWUgb2xkIHVubG9jayBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyIHVzZWQuCgkgIFRha2UgdGhlIHN0cmVhbWluZyBsb2NrIHdoZW4gc2Vla2luZyB0byBhdm9pZCByYWNlcy4gRml4ZXMgIzQ5MjcyOS4KCSAgQWRkZWQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwNy0xMS0wNiAxNToxMDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogTWFrZSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAgc3RhdGljLCBpdCdzIG9ubHkgdXNlZCBpbiBnc3RwbHVnaW4uYyBhbmQgd2UgY2FuIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChfZ3N0X2Rpc2FibGVfc2VndHJhcCk6CgkgIE1ha2UgIF9nc3RfZGlzYWJsZV9zZWd0cmFwIHN0YXRpYywgaXQncyBvbmx5IHVzZWQgaW4gZ3N0cGx1Z2luLmMgYW5kCgkgIHdlIGNhbiB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIHRoZXJlIG5vdyB0aGF0IHdlIGhhdmUgdGhhdCBBUEkuCgkgIE1vdmUgX2dzdF9kZWJ1Z19kdW1wX2RvdF9kaXIgaW50byBnc3RkZWJ1Z3V0aWxzLmMsIHRoZXJlJ3Mgbm8gcmVhc29uCgkgIHRvIGRvIHRoZSBnZXRlbnYgaGVyZSAoYW5kIGV4cG9ydCB0aGUgdmFyaWFibGUpLgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChkZWJ1Z19kdW1wX2VsZW1lbnQpLAoJICAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpLCAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGVfd2l0aF90cyk6CgkgIERvbid0IHVzZSBWTEFzIHdoaWNoIGlzIGEgQzk5aXNtIGFuZCB0aHJvd3Mgb2ZmIE1TVkMgKCM0OTM5ODMpLgoJICAqIGdzdC9nc3RpbmZvLmM6IChfcHJpdl9nc3RfaW5mb19zdGFydF90aW1lKSwgKF9nc3RfZGVidWdfaW5pdCksCgkgIChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBSZW5hbWUgX2dzdF9pbmZvX3N0YXJ0X3RpbWUgdG8gcHJpdl9nc3RfaW5mb19zdGFydF90aW1lIHNvIGl0CgkgIGRvZXNuJ3QgZ2V0IGV4cG9ydGVkICh3YXMgbmV2ZXIgaW4gYW55IGhlYWRlcikuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9zZXR1cCksCgkgIChnc3RfcGx1Z2luX2xvYWRpbmdfbXV0ZXgpOgoJICBNYWtlIHN0YXRpYyBtdXRleCBnc3RfcGx1Z2luX2xvYWRpbmdfbXV0ZXggcmVhbGx5IHN0YXRpYyAod2FzIG5ldmVyCgkgIGluIGFueSBoZWFkZXIpLCBhbmQgdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSBpbnN0ZWFkIG9mCgkgIF9nc3RfZGlzYWJsZV9zZWd0cmFwLgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoX2dzdF90cmFjZV9kZWZhdWx0KToKCSAgTWFrZSBsb2NhbCBfZ3N0X3RyYWNlX2RlZmF1bHQgc3RhdGljICh3YXMgbmV2ZXIgaW4gYW55IGhlYWRlcikuCgoyMDA3LTExLTA2IDE0OjQzOjE0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzLCByZW1vdmUgc29tZSBkdXBsaWNhdGVzLCBhbmQgc29ydCBhcyB0aGUgJ3NvcnQnIGNvbW1hbmQgc29ydHMgaXQgKHBhcnRpYWxseSBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzLCByZW1vdmUgc29tZSBkdXBsaWNhdGVzLCBhbmQgc29ydAoJICBhcyB0aGUgJ3NvcnQnIGNvbW1hbmQgc29ydHMgaXQgKHBhcnRpYWxseSBmaXhlcyAjNDkzOTgzKS4KCjIwMDctMTEtMDYgMTI6Mjg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBPbmx5IGNoYW5nZSB0aGUgc3RhdGUgY29va2llIGlmIGEgZGlmZmVyZW50IHN0YXRlIHdhcyBzZXQgb24gdGhlIGVsZW1lbnQuIFNlZSAjNDkyNzI5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICBPbmx5IGNoYW5nZSB0aGUgc3RhdGUgY29va2llIGlmIGEgZGlmZmVyZW50IHN0YXRlIHdhcyBzZXQgb24gdGhlCgkgIGVsZW1lbnQuIFNlZSAjNDkyNzI5LgoKMjAwNy0xMS0wNiAxMTo0MTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZW1vdmUgdW51c2VkIGFuZCB1bmluaXRpYWxpc2VkIHR5cGUgdmFyaWFibGVzIHRoYXQgd2VyZSBzdGlsbCBleHBvcnRlZCBmb3Igc29tZSByZWFzb24gKHRoZXkgd2VyZSBuZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgUmVtb3ZlIHVudXNlZCBhbmQgdW5pbml0aWFsaXNlZCB0eXBlIHZhcmlhYmxlcyB0aGF0IHdlcmUgc3RpbGwKCSAgZXhwb3J0ZWQgZm9yIHNvbWUgcmVhc29uICh0aGV5IHdlcmUgbmV2ZXIgaW4gYW55IGhlYWRlciBmaWxlcwoJICB0aG91Z2gpLgoKMjAwNy0xMS0wNiAxMDozMzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdHJ5IHRvIHJlcG9ydCBhIDAgcG9zaXRpb24gd2hlbiB3ZSBkb24ndCBrbm93LCByZXR1cm4gLTEgYW5kIEZBTFNFIGluc3RlYWQuIFRoaXMgbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCB0cnkgdG8gcmVwb3J0IGEgMCBwb3NpdGlvbiB3aGVuIHdlIGRvbid0IGtub3csIHJldHVybiAtMSBhbmQgRkFMU0UKCSAgaW5zdGVhZC4gVGhpcyBtb3N0bHkgaGFwcGVucyB3aGVuIHdlIGFyZSBwcmVyb2xsaW5nLgoJICBNYWtlIHN1cmUgd2UgY2FuIHJlcG9ydCB0aGUgcmlnaHQgcG9zaXRpb24gYmVmb3JlIHdlIHBvc3QgdGhlIEFTWU5DX0RPTkUKCSAgbWVzc2FnZSBzbyB0aGF0IGEgbWVzc2FnZSBoYW5kbGVyIGNhbiBxdWVyeSBwb3NpdGlvbiB3aXRob3V0IHJhY2VzLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfZW9zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGFzeW5jX2RvbmVfaGFuZG9mZiksIChhc3luY19kb25lX2Z1bmMpLCAoc2VuZF9idWZmZXIpLAoJICAoYXN5bmNfZG9uZV9lb3NfZnVuYyksIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgdHdvIHRlc3RzIGZvciB0aGUgYWJvdmUuCgoyMDA3LTExLTA2IDEwOjIxOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTUFJTlRBSU5FUlM6IFVwZGF0ZSB3aXRoIG5ldyBlbWFpbCBhZGRyZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNQUlOVEFJTkVSUzoKCSAgVXBkYXRlIHdpdGggbmV3IGVtYWlsIGFkZHJlc3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSBpbmZvIGFib3V0IGZ1dHVyZSBwYWQtYmxvY2sgYW5kIG5lZ290aWF0aW9uIGNoYW5nZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBBZGQgc29tZSBpZGVhcyBhYm91dCBidWZmZXJpbmcgcmVwb3J0aW5nLgoKMjAwNy0xMS0wNiAxMDowMTowNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBTUEVDIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcywgYWxzbyBhZGQgTUFJTlRBSU5FUlMgZmlsZSB0byBFWFRSQV9ESVNULCB0aGUgb21taXNzaW9uIG9mIHRoaXMgY2F1c2UgYSB3ZWlyZCBSUC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFNQRUMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLCBhbHNvIGFkZCBNQUlOVEFJTkVSUyBmaWxlIHRvIEVYVFJBX0RJU1QsIHRoZSBvbW1pc3Npb24gb2YgdGhpcyBjYXVzZSBhIHdlaXJkIFJQTSBidWlsZCBlcnJvciBvbiBGQzgKCjIwMDctMTEtMDYgMDA6NTk6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiBEaXNhYmxlIHNpbGx5IHJhY3kgdGVzdCB0aGF0IGFsd2F5cyBmYWlscyBvbiB0aGlzIGNvbWJpbmF0aW9uIG9mIENQVSBhbmQga2VybmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIERpc2FibGUgc2lsbHkgcmFjeSB0ZXN0IHRoYXQgYWx3YXlzIGZhaWxzIG9uIHRoaXMgY29tYmluYXRpb24gb2YgQ1BVCgkgIGFuZCBrZXJuZWwuCgoyMDA3LTExLTA0IDEwOjE2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBidWcgbnVtYmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBidWcgbnVtYmVyCgoyMDA3LTExLTA0IDEwOjEzOjMzICswMDAwICBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogQ29ycmVjdGVkIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldCBzaWduYWxzOiBUaGUgcGFyYW1ldGVyIGlzIGEgR3N0T2JqZWN0LC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE11cnJheSBDdW1taW5nICA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIENvcnJlY3RlZCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQKCSAgc2lnbmFsczogVGhlIHBhcmFtZXRlciBpcyBhIEdzdE9iamVjdCwgbm90IGEgR09iamVjdC4KCjIwMDctMTEtMDIgMTg6MzU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3ZlIGRlY2xhcmF0aW9uIG9mIHByaXZhdGUgX2dzdF9mb29faW5pdGlhbGl6ZSgpIGZ1bmN0aW9ucyBpbnRvIG91ciBwcml2YXRlIGhlYWRlciBmaWxlIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBNb3ZlIGRlY2xhcmF0aW9uIG9mIHByaXZhdGUgX2dzdF9mb29faW5pdGlhbGl6ZSgpIGZ1bmN0aW9ucyBpbnRvCgkgIG91ciBwcml2YXRlIGhlYWRlciBmaWxlIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBhbGwgYWxvbmcuCgoyMDA3LTExLTAyIDE3OjQzOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3RrLWRvYyBmaXhlczsgdHJhaWxpbmctY29tbWEtaW4tZW51bSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBndGstZG9jIGZpeGVzOyB0cmFpbGluZy1jb21tYS1pbi1lbnVtIGZpeC4KCjIwMDctMTEtMDIgMTY6Mjc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENsZWFuIHVwIG9uIGRlaW5pdCAobm90IHRoZSBleHRlcm5hbCBvbmVzIHRob3VnaCwgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBmb3Igc29tZSByZWFzb24pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVpbml0KToKCSAgQ2xlYW4gdXAgb24gZGVpbml0IChub3QgdGhlIGV4dGVybmFsIG9uZXMgdGhvdWdoLCBkb2Vzbid0IHNlZW0gdG8gYmUKCSAgbmVlZGVkIGZvciBzb21lIHJlYXNvbikuCgoyMDA3LTExLTAxIDIzOjUxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogUmVtb3ZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBmb3IgTVNWQyB0aGF0IHdhcyBjb3BpZWQgb3ZlciBpbnRvIGNvcmUgZnJvbSBhIHBsdWdpbiwgb2J2aW91c2x5IHdpdGhvdXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6IChHU1RfREVCVUdfQ0FURUdPUllfRVhURVJOKToKCSAgUmVtb3ZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBmb3IgTVNWQyB0aGF0IHdhcyBjb3BpZWQgb3ZlciBpbnRvIGNvcmUKCSAgZnJvbSBhIHBsdWdpbiwgb2J2aW91c2x5IHdpdGhvdXQgZXZlciBoYXZpbmcgYmVlbiB0ZXN0ZWQgKG5vdGUgdGhlCgkgIHNpbmdsZSB1bmRlcnNjb3JlIGluIF9kZWNsc3BlYyBpbiB0aGUgaW5pdGlhbCBjb21taXQpLCBhbmQgdGhhdCBkb2Vzbid0CgkgIHJlYWxseSBtYWtlIHNlbnNlLiAgU2VlICM0OTIwNzcuCgoyMDA3LTExLTAxIDIxOjUwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ190eXBlX2NsYXNzX3JlZigpIG90aGVyIHR5cGVzIGFzIHdlbGwsIHNlZSAjMzQ5NDEwIGFuZCAjNjQ3NjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9pbml0KToKCSAgZ190eXBlX2NsYXNzX3JlZigpIG90aGVyIHR5cGVzIGFzIHdlbGwsIHNlZSAjMzQ5NDEwIGFuZCAjNjQ3NjQuCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKToKCSAgU2ltcGxpZnkgZXhpc3RpbmcgZ190eXBlX2NsYXNzX3JlZigpLgoKMjAwNy0xMS0wMSAyMDoxMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogZ190eXBlX2NsYXNzX3JlZigpIG91ciBHc3RGb3JtYXQgdHlwZSB0byBtYWtlIHN1cmUgd2UgYXZvaWQgdGhlIHRocmVhZC11bnNhZmUgYml0cyBvZiB0aGUgR09iamVjdC9HVC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKToKCSAgZ190eXBlX2NsYXNzX3JlZigpIG91ciBHc3RGb3JtYXQgdHlwZSB0byBtYWtlIHN1cmUgd2UgYXZvaWQgdGhlCgkgIHRocmVhZC11bnNhZmUgYml0cyBvZiB0aGUgR09iamVjdC9HVHlwZSBzeXN0ZW0sIGllLiBidWcgIzM0OTQxMCBhbmQKCSAgYnVnICM2NDc2NC4gU2hvdWxkIGZpeCBpbnRlcm1pdHRlbnQgdGVlIHVuaXQgdGVzdCBmYWlsdXJlcyAoIzQ3NDgyMykuCgoyMDA3LTExLTAxIDE5OjE5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IFNpbXBsaWZ5LCBzaW1wbGlmeSwgc2ltcGxpZnkgLSBvciBub3QuICBSZXdyaXRlIHVuaXQgdGVzdCBub3QgdG8gdXNlIGdzdF9wYXJzZV9sYXVuY2goKTsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAodGVzdF9udW1fYnVmZmVycyk6CgkgIFNpbXBsaWZ5LCBzaW1wbGlmeSwgc2ltcGxpZnkgLSBvciBub3QuICBSZXdyaXRlIHVuaXQgdGVzdAoJICBub3QgdG8gdXNlIGdzdF9wYXJzZV9sYXVuY2goKTsgYWxsb3cgTiBzdWItc3RyZWFtcy4gSW5jcmVhc2luZwoJICB0aGUgbnVtYmVyIG9mIHN1Yi1zdHJlYW1zIHNlZW1zIHRvIHJlcHJvZHVjZSAjNDc0ODIzIG1vcmUgZWFzaWx5LgoKMjAwNy0xMC0zMSAyMjowMTowMyArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIEZpeCBhIGNvdXBsZSBvZiBtaXNzaW5nIGluY2x1ZGVzIGZvciBNU1ZDMjAwNSBhbmQgYSBDOTkgaXNzdWUuIEFsc28sIHN0YXJ0aW5nIHdpdGggMi4xNC4wLCBHTGliIHdvbid0IHByb3ZpZGUgYSBwaXBlKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgRml4IGEgY291cGxlIG9mIG1pc3NpbmcgaW5jbHVkZXMgZm9yIE1TVkMyMDA1IGFuZCBhIEM5OSBpc3N1ZS4gQWxzbywKCSAgc3RhcnRpbmcgd2l0aCAyLjE0LjAsIEdMaWIgd29uJ3QgcHJvdmlkZSBhIHBpcGUoKSBtYWNybyBhbnkgbG9uZ2VyLAoJICBzbyB1c2UgX3BpcGUoKSBkaXJlY3RseSAoIzQ5MjA3NykuCgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOiAoX3RyZWFkZGlyKToKCSAgQWRkIGEgY291cGxlIG9mIGNhc3RzIHRvIG1ha2UgaXQgYnVpbGQgd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBzb21lIG1vcmUgc3ltYm9scyB0aGF0IG5lZWQgdG8gYmUgZXhwb3J0ZWQuCgoyMDA3LTEwLTMxIDE4OjA4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiBVc2UgX0tFRVAgYXMgbWVyZ2UgbW9kZSByYXRoZXIgdGhhbiBfS0VFUF9BTEwsIHNvIHRhZ3MgYXJyaXZpbmcgaW4gYSBzZWNvbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCk6CgkgIFVzZSBfS0VFUCBhcyBtZXJnZSBtb2RlIHJhdGhlciB0aGFuIF9LRUVQX0FMTCwgc28gdGFncwoJICBhcnJpdmluZyBpbiBhIHNlY29uZCBvciB0aGlyZCB0YWcgbWVzc2FnZSBhcmUgYWRkZWQgdG8KCSAgdGhlIHRhZyBsaXN0IGFzIHdlbGwuCgoyMDA3LTEwLTMxIDEzOjAxOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSXRzICJTaW5jZToiIGFuZCBub3QgIkBTaW5jZToiLiBBbmQgcmVtb3ZlIGFuIHN1cGVyZmxvdXMgY2FzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIEl0cyAiU2luY2U6IiBhbmQgbm90ICJAU2luY2U6Ii4gQW5kIHJlbW92ZSBhbiBzdXBlcmZsb3VzIGNhc3QuCgoyMDA3LTEwLTMwIDE4OjMwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGEgbmV3IGxhc3QtYnVmZmVyIHByb3BlcnR5IHRoYXQgY29udGFpbnMgdGhlIGxhc3QgYnVmZmVyIHVzZWQgaW4gYmFzZXNpbmsgZm9yIHByZXJvbGwgb3IgcmVuZGVyaW5nLiB1c2VmdWwgZm9yIG1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2xhc3RfYnVmZmVyKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGEgbmV3IGxhc3QtYnVmZmVyIHByb3BlcnR5IHRoYXQgY29udGFpbnMgdGhlIGxhc3QgYnVmZmVyIHVzZWQgaW4KCSAgYmFzZXNpbmsgZm9yIHByZXJvbGwgb3IgcmVuZGVyaW5nLiB1c2VmdWwgZm9yIG1ha2luZyBzbmFwc2hvdHMuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbGFzdF9idWZmZXIoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpsYXN0LWJ1ZmZlcgoKMjAwNy0xMC0yOSAxMzo0NjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSW1wcm92ZSBiaW4gZ3JhcGggZHVtcGluZywgYnkgdXNpbmcgdGhlIGVudnZhciB0byBzcGVjaWZ5IGEgcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEltcHJvdmUgYmluIGdyYXBoIGR1bXBpbmcsIGJ5IHVzaW5nIHRoZSBlbnZ2YXIgdG8gc3BlY2lmeSBhIHBhdGguCgkgIFJlbmFtZSB0aGUgZW52dmFyIHRvIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIuCgoyMDA3LTEwLTI5IDEzOjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogUG9zdCBzcGVjaWFsIGVycm9yIG1lc3NhZ2UgaWYgd2UgY2FuJ3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIGEgc3RyZWFtIGJlY2F1c2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFBvc3Qgc3BlY2lhbCBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbid0IGRldGVybWluZSB0aGUgdHlwZSBvZiBhIHN0cmVhbQoJICBiZWNhdXNlIGl0J3MgZW1wdHkuCgoyMDA3LTEwLTI5IDEwOjA1OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCBuZXcgZW52LXZhci4gQWRkIG9uZSBsb2ctbGluZSBhZnRlciBkdW1wbmcgYSBncmFwaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRG9jdW1lbnQgbmV3IGVudi12YXIuIEFkZCBvbmUgbG9nLWxpbmUgYWZ0ZXIgZHVtcG5nIGEgZ3JhcGguCgoyMDA3LTEwLTI2IDE4OjM5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVZ2x5IGhhY2sgdG8gcHV0IHRoZSAocmVjZW50bHkgcmVtb3ZlZCBhbmQgbm9uLXBvcnRhYmxlLCBhcHBhcmVudGx5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVnbHkgaGFjayB0byBwdXQgdGhlIChyZWNlbnRseSByZW1vdmVkIGFuZCBub24tcG9ydGFibGUsIGFwcGFyZW50bHkpCgkgIC1XbCwtLWV4cG9ydC1keW5hbWljIGJhY2sgaW50byBsaWJnc3RjaGVjaydzIExERkxBR1Mgd2hlbiB3ZSdyZSB1c2luZwoJICBHTlUgbGQsIGJlY2F1c2Ugd2l0aG91dCB0aGF0ICdtYWtlIGNoZWNrJyBmYWlscyBtaXNlcmFibHkgb24gbXkgZGViaWFuCgkgIHN0YWJsZSBib3guICBTb21lb25lIHdpdGggbW9yZSBrbm93bGVkZ2Ugb2YgbGlua2VyIGludHJpY2FjaWVzIGFuZAoJICBwb3J0YWJpbGl0eSBpc3N1ZXMgdGhhbiBtZSBmaXggdGhpcyBwcm9wZXJseSBwbGVhc2UuCgoyMDA3LTEwLTI1IDE3OjIwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXNldCBsYXN0IHNlZW4gcG9zaXRpb24gYWZ0ZXIgZmx1c2hpbmcgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgdGhlIG9sZCBwb3NpdGlvbiBhbnltb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgUmVzZXQgbGFzdCBzZWVuIHBvc2l0aW9uIGFmdGVyIGZsdXNoaW5nIHNvIHRoYXQgd2UgZG9uJ3QgcmVwb3J0IHRoZSBvbGQKCSAgcG9zaXRpb24gYW55bW9yZS4KCjIwMDctMTAtMjUgMTY6MTk6MDUgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0LzogUGF0Y2ggZnJvbSBBbGVzc2FuZHJvIERlY2luYSBhZGRpbmcgZ2V0X3R5cGVfZnVsbCBhbmQgZ2V0X3Byb3RvY29sc19mdWxsIHByaXZhdGUgdmZ1bmNzIHRvIHRoZSBVUklIYW5kbGVyIGludGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgUGF0Y2ggZnJvbSBBbGVzc2FuZHJvIERlY2luYSBhZGRpbmcgZ2V0X3R5cGVfZnVsbCBhbmQKCSAgZ2V0X3Byb3RvY29sc19mdWxsIHByaXZhdGUgdmZ1bmNzIHRvIHRoZSBVUklIYW5kbGVyIGludGVyZmFjZQoJICB0byBhbGxvdyBiaW5kaW5ncyB0byBzdXBwb3J0IGNyZWF0aW5nIFVSSSBoYW5kbGVycy4KCSAgUGFydGlhbGx5IGZpeGVzOiAjMzM5Mjc5CgkgIEFQSTogR3N0VVJJSGFuZGxlckludGVyZmFjZTo6Z2V0X3R5cGVfZnVsbAoJICBBUEk6IEdzdFVSSUhhbmRsZXJJbnRlcmZhY2U6OmdldF9wcm90b2NvbHNfZnVsbAoKMjAwNy0xMC0yNSAxNToxNDowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogTWFrZSBpdCBzbyB0aGF0IHBhZHMgYXJlIGNvbnNpZGVyZWQgbGlua2VkIHVudGlsIGEgYnVmZmVyIGlzIHB1c2hlZCBhbmQgZGlzY292ZXJlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBpdCBzbyB0aGF0IHBhZHMgYXJlIGNvbnNpZGVyZWQgbGlua2VkIHVudGlsIGEgYnVmZmVyIGlzIHB1c2hlZAoJICBhbmQgZGlzY292ZXJlZCBvdGhlcndpc2UuIFRoaXMgYXZvaWRzIHByb2JsZW1zIHdpdGggZGVjb2RlYmluMiBoYW5naW5nCgkgIGFmdGVyIGEgc2VlayBpbiB0aGUgZmlsZXNyYyAhIGRlY29kZWJpbjIgbmFtZT1kICEgZmFrZXNpbmsgZC4gISBmYWtlc2luawoJICBjYXNlLgoJICBNYWtlIHN1cmUgd2UgbG9jayB0aGUgbXVsdGlxdWV1ZSB3aGVuIHVwZGF0aW5nIHRoZSBtYXgtc2l6ZSBwcm9wZXJ0aWVzLgoJICBGaXggYSBjcmFzaCBvbiBTb2xhcmlzIGluIGEgZGVidWcgc3RhdGVtZW50IGluIGdldF9yZXF1ZXN0X3BhZCB0aGF0CgkgIHBhc3NlcyBhIE5VTEwgc3RyaW5nIHRvIEdTVF9ERUJVRy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9kdW1teXBhZF9jaGFpbiksCgkgIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpOgoJICBGaXggdGhlIHRlc3QgdG8gYWxsb3cgdGhlIGZpcnN0IGJ1ZmZlciBvbiBub3QtbGlua2VkIHBhZHMgdG8gY29tZSBvdXQKCSAgb2Ygc2VxdWVuY2Ugd2hpbGUgbXVsdGlxdWV1ZSBkaXNjb3ZlcnMgdGhhdCB0aGV5IGFyZSBub3QtbGlua2VkLgoKMjAwNy0xMC0yNSAxNDo1MDo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBVc2UgYSBjdXN0b20gZXhwb3J0IHN5bWJvbCByZWdleCBmb3IgbGliZ3N0Y2hlY2ssIGFzIGl0IG5lZWRzIHRvIGV4cG9ydCBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHN0YW5kYXJkIEdTdHJlYW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgYSBjdXN0b20gZXhwb3J0IHN5bWJvbCByZWdleCBmb3IgbGliZ3N0Y2hlY2ssIGFzIGl0IG5lZWRzCgkgIHRvIGV4cG9ydCBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHN0YW5kYXJkIEdTdHJlYW1lciBnc3RfKgoJICBwYXR0ZXJuLCBhbmQgIC0tZXhwb3J0LWR5bmFtaWMgaXMgbm90IHBvcnRhYmxlIChvbmx5IHdvcmtzIG9uCgkgIEdOVSBsZCkKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKToKCSAgTWFrZSBzdXJlIHRvIHBhc3MgYSBtZXNzYWdlIHBhcmFtZXRlciB0byB0aGUgZmFpbF8qIG1hY3Jvcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggc29tZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMDctMTAtMjUgMTQ6NDE6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IERpc2FibGUgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHdoaXRlIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQgaW4gc3RydWN0dXJlIG5hbWVzIG9yIGZpZWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAodGVzdF90b19zdHJpbmcpOgoJICBEaXNhYmxlIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB3aGl0ZSBzcGFjZXMgYXJlIG5vdCBhbGxvd2VkCgkgIGluIHN0cnVjdHVyZSBuYW1lcyBvciBmaWVsZCBuYW1lcywgc2luY2Ugd2UgbmVlZCB0bwoJICBzdXBwb3J0IHRoYXQgZm9yIG5vdyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KCjIwMDctMTAtMjQgMTM6MTM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgQVBJOiBhZGQgR1NUX1RBR19BTEJVTV9TT1JUTkFNRQoJICBBUEk6IGFkZCBHU1RfVEFHX1RJVExFX1NPUlROQU1FCgkgIEFkZCB0YWcgdmFyaWFudHMgZm9yIHNvcnRpbmcgKCM0MTQ1MzkpLgoKMjAwNy0xMC0yNCAxMzowMDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWxzbyBhbGxvdyB3aGl0ZSBzcGFjZSBmb3IgbmFtZXMgc28gd2UgZG9uJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWxzbyBhbGxvdyB3aGl0ZSBzcGFjZSBmb3IgbmFtZXMgc28gd2UgZG9uJ3QgYnJlYWsKCSAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDA3LTEwLTIyIDE1OjM3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIFNtYWxsIHVwZGF0ZXMuCgoyMDA3LTEwLTIyIDExOjMyOjE0ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXhlZCBkb2N1bWVudGF0aW9uIGZyb20gbXkgcHJldmlvdXMgY29tbWl0IChhZGRlZCBuZXcgQVBJIGFkZCBnc3RfdmFsdWVfc2V0X3N0cnVjdHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4ZWQgZG9jdW1lbnRhdGlvbiBmcm9tIG15IHByZXZpb3VzIGNvbW1pdCAoYWRkZWQgbmV3IEFQSSBhZGQKCSAgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUoKSwgYWRkIGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKCkgYW5kCgkgIEdTVF9WQUxVRV9IT0xEU19TVFJVQ1RVUkUpLgoKMjAwNy0xMC0yMiAxMToxMDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVmbG93IGNvZGUgdG8gZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmVmbG93IGNvZGUgdG8gZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCjIwMDctMTAtMjIgMDg6NTM6MjYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkgIEFkZGVkIEdzdFN0cnVjdHVyZSB0byBnc3RfdmFsdWVfdGFibGUgYW5kIGl0cyByZWxhdGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyksCgkgIChnc3RfY2Fwc19mcm9tX3N0cmluZ19pbnBsYWNlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9hYmJycyksCgkgIChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyksIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKSwKCSAgKGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfc3RydWN0dXJlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zdHJ1Y3R1cmUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgR3N0U3RydWN0dXJlIHRvIGdzdF92YWx1ZV90YWJsZSBhbmQgaXRzIHJlbGF0ZWQgZnVuY3Rpb25zLgoJICBDaGFuZ2VkIGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nIHRvIHByaW50ICc7JyBpbiB0aGUgZW5kLgoJICBDaGFuZ2VkIGdzdF9jYXBzX3RvX3N0cmluZyB0byBub3QgcHJpbnQgJzsnIGJldGV3ZWVuIGl0cwoJICBmaWVsZHMgKHN0cnVjdHVyZXMpIGFueW1vcmUgYW5kIHJlbW92ZSB0aGUgbGFzdGVzICc7JyBmcm9tIGxhdGVzdAoJICBzdHJ1Y3R1cmUuIE5vdyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG5lc3RlZCBzdHJ1Y3R1cmVzLgoJICBJbiBhZGRpdGlvbiwgYmFja3dhcmQgY29tcGF0aWJpbHR5IGlzIGFzc3VyZWQgYnkgYWNjZXB0aW5nICdcMCcgYXMKCSAgZW5kIGRlbGltaXRlci4gRml4ZXM6ICM0ODc5NjkuCgkgIEFQSTogYWRkIGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKCkKCSAgQVBJOiBhZGQgZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUoKQoKMjAwNy0xMC0xOSAwOTo0ODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogV2hlbiBubyBHU291cmNlIGNhbGxiYWNrIGhhcyBiZWVuIHNldCB1cCwgdGVsbCBkZXZlbG9wZXIgdG8gdXNlIGEgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBleGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgV2hlbiBubyBHU291cmNlIGNhbGxiYWNrIGhhcyBiZWVuIHNldCB1cCwgdGVsbCBkZXZlbG9wZXIKCSAgdG8gdXNlIGEgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBleGlzdHMuCgoyMDA3LTEwLTE3IDEyOjU4OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBbGxvdyBkdW1waW5nIHBpcGVsaW5lcyBhcyBkb3QgZ3JhcGhzLiBGaXhlcyAjNDU2NTczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBbGxvdyBkdW1waW5nIHBpcGVsaW5lcyBhcyBkb3QgZ3JhcGhzLiBGaXhlcyAjNDU2NTczLgoKMjAwNy0xMC0xNiAyMTo0ODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWxsb3cgJysnIGFzIHdlbGwsIGl0IGNhbiBiZSBwYXJ0IG9mIG1lZGlhIG9yIG1pbWUgdHlwZXMgc3VjaCBhcyBpbWFnZS9zdmcreG1sLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFsbG93ICcrJyBhcyB3ZWxsLCBpdCBjYW4gYmUgcGFydCBvZiBtZWRpYSBvciBtaW1lIHR5cGVzCgkgIHN1Y2ggYXMgaW1hZ2Uvc3ZnK3htbC4KCjIwMDctMTAtMTYgMjA6MzA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYnVzX3BvcF9maWx0ZXJlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFQSTogYWRkIGdzdF9idXNfcG9wX2ZpbHRlcmVkCgkgIEFQSTogYWRkIGdzdF9idXNfdGltZWRfcG9wX2ZpbHRlcmVkCgkgIFR3byBuZXcgZnVuY3Rpb25zIGZvciB3YWl0aW5nIGZvciBzcGVjaWZpYyBtZXNzYWdlIHR5cGVzIG9uIHRoZQoJICBidXMgZm9yIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lIHdpdGhvdXQgaXRlcmF0aW5nIGFueSBtYWluCgkgIGxvb3BzIG9yIG1haW4gY29udGV4dHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBTb21lIHRlc3RzIGZvciB0aGUgbmV3IGZ1bmN0aW9ucy4KCjIwMDctMTAtMTYgMTc6MjE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBNYWtlIGd0ay1kb2MgaWdub3JlIHN0dWZmIGl0IHNob3VsZCBpZ25vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIE1ha2UgZ3RrLWRvYyBpZ25vcmUgc3R1ZmYgaXQgc2hvdWxkIGlnbm9yZS4KCjIwMDctMTAtMTYgMTY6MTI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBbGxvdyBydW50aW1lIHNlbGVjdGlvbiBvZiB1bml0IHRlc3RzIHRvIHJ1biB2aWEgdGhlIEdTVF9DSEVDS1MgZW52aXJvbm1lbnQgdmFyaWFibGUgKHRlc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBbGxvdyBydW50aW1lIHNlbGVjdGlvbiBvZiB1bml0IHRlc3RzIHRvIHJ1biB2aWEgdGhlIEdTVF9DSEVDS1MKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgKHRlc3QgY2FzZSBmdW5jdGlvbiBuYW1lcywgY29tbWEtc2VwYXJhdGVkKS4KCjIwMDctMTAtMTYgMTM6NTg6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJldmVydCBzZXJpYWxpc2F0aW9uIGNoYW5nZSBhbmQgY29uc3RyYWluIHN0cnVjdHVyZS1uYW1lcyBhZnRlciBjb25zZW5zdXMgb24gaXJjLiBVcGRhdGUgYXBpIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBSZXZlcnQgc2VyaWFsaXNhdGlvbiBjaGFuZ2UgYW5kIGNvbnN0cmFpbiBzdHJ1Y3R1cmUtbmFtZXMgYWZ0ZXIKCSAgY29uc2Vuc3VzIG9uIGlyYy4gVXBkYXRlIGFwaSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgdGhlIGNoYW5nZS4KCjIwMDctMTAtMTYgMDY6MzI6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogSW1wcm92ZSBzZXJpYWxpemF0aW9uIGFuZCBmaXggdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgSW1wcm92ZSBzZXJpYWxpemF0aW9uIGFuZCBmaXggdGVzdHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgYW5vdGhlciB0ZXN0IHRoYXQgY292ZXJzIHdoeSBJIGFjdHVhbGx5IGRpZCB0aGUgcHJldmlvdXMgc3RydWN0dXJlCgkgIGNoYW5nZS4KCjIwMDctMTAtMTUgMTQ6MzM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBEb24ndCBjcmFzaCB3aGVuIGluc3BlY3RpbmcgYW4gZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIERvbid0IGNyYXNoIHdoZW4gaW5zcGVjdGluZyBhbiBlbGVtZW50LgoKMjAwNy0xMC0xNSAxMTo1ODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogQWRkIHVuaXQgdGVzdCBmb3IgZXNjYXBpbmcgb2Ygc3RydWN0dXJlIG5hbWUgd2hlbiBzZXJpYWxpc2luZyBhbmQgZGVzZXJpYWxpc2luZyB0by9mci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGVzY2FwaW5nIG9mIHN0cnVjdHVyZSBuYW1lIHdoZW4gc2VyaWFsaXNpbmcKCSAgYW5kIGRlc2VyaWFsaXNpbmcgdG8vZnJvbSBzdHJpbmdzLgoKMjAwNy0xMC0xNSAxMTozNjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBGaXggcXVldWUgbmVnb3RpYXRpb24uIElmIGFjY2VwdGNhcHMgdW5jb25kaXRpb25hbGx5IHJldHVybnMgVFJVRSwgdXBzdHJlYW0gaXMgdHJpY2tlZCBpbnRvIHRoaW5raS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gSWYgYWNjZXB0Y2FwcyB1bmNvbmRpdGlvbmFsbHkgcmV0dXJucyBUUlVFLAoJICB1cHN0cmVhbSBpcyB0cmlja2VkIGludG8gdGhpbmtpbmcgaXQgY2FuIHN1Z2dlc3QgYSBmb3JtYXQgZG93bnN0cmVhbQoJICB3aGlsZSBkb3duc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgdGhhdCBmb3JtYXQuIFRoZSByZWFsIHByb2JsZW0gaXMgdGhhdAoJICBjb3JlIGNhbGxzIGFjY2VwdGNhcHMgd2hlbiBwdXNoaW5nIGEgYnVmZmVyIHdpdGggbmV3IGNhcHMsIGZvciB3aGljaCB3ZQoJICBkbyBhIGxpdHRsZSB3b3JrYXJvdW5kIGJ5IHNldHRpbmcgdGhlIGNhcHMgb24gdGhlIHNyY3BhZCBvdXJzZWx2ZXMKCSAgYmVmb3JlIHB1c2hpbmcgdGhlIGJ1ZmZlciAodW50aWwgdGhpcyBpcyBmaWd1cmVkIG91dCkuIEZpeGVzICM0ODY3NTguCgoyMDA3LTEwLTE1IDExOjE5OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBvdXRwdXQuIFF1b3RlIHN0cnVjdHVyZSBuYW1lIHRvIGZpeCBkZXNlcmlhbGlzYXRpb24gb2Ygc29tZSBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGRlYnVnIG91dHB1dC4gUXVvdGUgc3RydWN0dXJlIG5hbWUgdG8gZml4CgkgIGRlc2VyaWFsaXNhdGlvbiBvZiBzb21lIHN0cmluZ3MuCgoyMDA3LTEwLTE1IDA3OjM3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERlZmluZSBHU1RfQlVGRkVSX0ZMQUdfR0FQIG1vcmUgc3RyaWN0bHkgdG8gZW5hYmxlIG9wdGltaXphdGlvbnMgYmFzZWQgb24gaXQuIEZpeCBkb2NzIGZvciBHU1RfQlVGRkUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEZWZpbmUgR1NUX0JVRkZFUl9GTEFHX0dBUCBtb3JlIHN0cmljdGx5IHRvIGVuYWJsZSBvcHRpbWl6YXRpb25zIGJhc2VkCgkgIG9uIGl0LiBGaXggZG9jcyBmb3IgR1NUX0JVRkZFUl9NQUxMT0NEQVRBIGFuZCBHc3RCdWZmZXIubWFsbG9jX2RhdGEuCgoyMDA3LTEwLTE1IDA3OjExOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBTYXZlIGFwcHJveC4gNDAwIDEgYnl0ZSBhbGxvY3Mgd2hlbiBwcmludGluZy4gVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFNhdmUgYXBwcm94LiA0MDAgMSBieXRlIGFsbG9jcyB3aGVuIHByaW50aW5nLiBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIEF2b2lkIGEgc3RyZHVwLgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudCBkZXRhaWxzLgoKMjAwNy0xMC0xNSAwNjo1MjowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggc29tZSBzcGVsbGluZyBlcnJvcnMuCgoyMDA3LTEwLTE0IDE1OjU0OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDb3JyZWN0bHkgc2V0IHRoZSBuZXh0IHN0YXRlIGlmIGFsbCBvZiBvdXIgYXN5bmMgY2hpbGRyZW4gY29tbWl0ZWQgdGhlaXIgc3RhdGUuIFRoaXMgbWFrZXMgc3VyZSB3ZSBjYW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSk6CgkgIENvcnJlY3RseSBzZXQgdGhlIG5leHQgc3RhdGUgaWYgYWxsIG9mIG91ciBhc3luYyBjaGlsZHJlbiBjb21taXRlZCB0aGVpcgoJICBzdGF0ZS4gVGhpcyBtYWtlcyBzdXJlIHdlIGNhbiBhY3R1YWxseSBjYW5jZWwgdGhlIHN0YXRlIGNoYW5nZSBpbgoJICBwcm9ncmVzcy4gRml4ZXMgYSByZWdyZXNzaW9uIGluIFJoeXRobWJveCB3aGVuIHNlZWtpbmcuCgoyMDA3LTEwLTEzIDE3OjQzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBzaGFkb3cgbG9jYWwgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRG9uJ3Qgc2hhZG93IGxvY2FsIHZhcmlhYmxlLgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIERvbid0IHNoYWRvdyBnbG9iYWwgZnVuY3Rpb24gbmFtZS4KCjIwMDctMTAtMTMgMTc6MjA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgYWxyZWFkeS1pbnRlcm5lZCBzdHJpbmcgZm9yIHRoZSBwcml2YXRlIEdzdFBsdWdpbkZlYXR1cmUgcGx1Z2luX25hbWUgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgVXNlIGFscmVhZHktaW50ZXJuZWQgc3RyaW5nIGZvciB0aGUgcHJpdmF0ZSBHc3RQbHVnaW5GZWF0dXJlCgkgIHBsdWdpbl9uYW1lIGZpZWxkLgoKMjAwNy0xMC0xMCAyMjo0MzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvY3M7IGZpeGVzIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jczsgZml4ZXMgdGhlIGJ1aWxkLgoKMjAwNy0xMC0xMCAxNToxODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIEVPUywgc3ViY2xhc3NlcyBjYW4gdXNlIHRoaXMgdG8gY29ycmVjdGx5IHdhaXQgZm9yIGRldmljZXMgdG8gZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggaW5zcGlyZWQgYnk6IEJlbm9pdCBGb3VldCA8YmVub2l0IGRvdCBmb3VldCBhdCBwdXJwbGVsYWJzIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBmdW5jdGlvbiB0byB3YWl0IGZvciBFT1MsIHN1YmNsYXNzZXMgY2FuIHVzZSB0aGlzIHRvIGNvcnJlY3RseSB3YWl0CgkgIGZvciBkZXZpY2VzIHRvIGRyYWluIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBFT1MgbG9naWMuIEZpeGVzICM0ODUzNDMuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua193YWl0X2VvcygpCgoyMDA3LTEwLTEwIDEwOjUzOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBDYXN0IGRlc2NyaXB0aW9uIHN0cmluZyBjb25zdGFudHMgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zIHRvIGEgKGdjaGFyKikgdG8gbWFrZSBDKysgY29kZSB1c2luZyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQ2FzdCBkZXNjcmlwdGlvbiBzdHJpbmcgY29uc3RhbnRzIGluIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcwoJICB0byBhIChnY2hhciopIHRvIG1ha2UgQysrIGNvZGUgdXNpbmcgdGhlc2UgbWFjcm9zIGNvbXBpbGUKCSAgd2l0aG91dCB3YXJuaW5nIHdpdGggZysrLTQuMiAoc2VlICM0NjI3MzcpLiAgRXZlbiBpZiBzbGlnaHRseQoJICB1Z2x5LCB0aGlzIHNlZW1zIHByZWZlcmFibGUgdG8gcHV0dGluZyB0aGUgZGVzY3JpcHRpb24gc3RyaW5ncwoJICBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlIG9yIG1ha2luZyB0aGUgc3RydWN0dXJlIG1lbWJlciBhCgkgIGNvbnN0IGdjaGFyICogYW5kIGRvaW5nIGNhc3RzIGluIGNvcmUgY29kZSB0aGF0IGFsbG9jcyBhbmQKCSAgZnJlZXMgdGhlc2Ugc3RyaW5ncywgb3IgcmVxdWlyaW5nIGEgY2FzdCBpbiB0aGUgQysrIGNvZGUuCgoyMDA3LTEwLTA5IDIwOjQ1OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogVXNlIF9fRlVOQ1RJT05fXyBpbnN0ZWFkIG9mIF9fUFJFVFRZX0ZVTkNUSU9OX18sIGl0J3Mgc2lsbHkgdG8gcHJpbnQgdGhlIGVudGlyZSBjbGFzcy9mdW5jdGlvbiBzaWduYXR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFVzZSBfX0ZVTkNUSU9OX18gaW5zdGVhZCBvZiBfX1BSRVRUWV9GVU5DVElPTl9fLCBpdCdzIHNpbGx5CgkgIHRvIHByaW50IHRoZSBlbnRpcmUgY2xhc3MvZnVuY3Rpb24gc2lnbmF0dXJlIGludG8gdGhlIGxvZwoJICBmaWxlIGZvciBDKysgY29kZS4gIFRoaXMgb25seSBhZmZlY3RzIEMrKyBjb2RlLCBmb3IgQyBjb2RlCgkgIGV2ZXJ5dGhpbmcgcmVtYWlucyB0aGUgc2FtZS4KCjIwMDctMTAtMDkgMTY6MjA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFdvcmsgYXJvdW5kIGEgcHJvYmxlbSB3aXRoIHBpcGVsaW5lcyBjb250YWluaW5nIChzZW1pKWxvb3BzIHVudGlsIGEgcHJvcGVyLCBtb3JlIGNvbXBsaWNhdGVkIHNvbHV0aW9uIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAocmVtb3ZlX2Zyb21fcXVldWUpOgoJICBXb3JrIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBwaXBlbGluZXMgY29udGFpbmluZyAoc2VtaSlsb29wcyB1bnRpbCBhCgkgIHByb3BlciwgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiBpcyByZWFkeS4gU2VlICM0NzU0NTUuCgoyMDA3LTEwLTA5IDE0OjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUHV0IG1vcmUgc3RyaW5ncyBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlLiBObyBuZWVkIHRvIGtlZXAgYSBodW5kcmVkLXNvbWV0aGluZyBjb3BpZXMgb2YgaWRlbnRpY2FsIHZlcnNpb24gc3RyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIFB1dCBtb3JlIHN0cmluZ3MgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZS4gTm8gbmVlZCB0byBrZWVwCgkgIGEgaHVuZHJlZC1zb21ldGhpbmcgY29waWVzIG9mIGlkZW50aWNhbCB2ZXJzaW9uIHN0cmluZ3MsCgkgIGxpY2Vuc2Ugc3RyaW5ncywgcGFja2FnZSBuYW1lIHN0cmluZ3MgYW5kIHBhY2thZ2Ugb3JpZ2luCgkgIHN0cmluZ3MgYXJvdW5kLgoKMjAwNy0xMC0wOSAxMDo0MTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBEb24ndCBpbXBseSB0aGF0IGl0J3Mgb2theSB0byB1bmNvbmRpdGlvbmFsbHkgY2hhbmdlIGJ1ZmZlciBkYXRhIG9yIGJ1ZmZlciBtZXRhZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRG9uJ3QgaW1wbHkgdGhhdCBpdCdzIG9rYXkgdG8gdW5jb25kaXRpb25hbGx5IGNoYW5nZQoJICBidWZmZXIgZGF0YSBvciBidWZmZXIgbWV0YWRhdGEgaW4gYSBwYWQgcHJvYmUgY2FsbGJhY2ssCgkgIGFuZCBhIGJ1bmNoIG9mIG90aGVyIGNvbW1lbnRzLiBGaXhlcyAjNDMwMDMxLgoKMjAwNy0xMC0wOCAyMDo0NTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgVXBkYXRlIGdlbmVyYXRlZCBmaWxlcy4KCjIwMDctMTAtMDggMTc6NTk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBQcmVmaXggc2VjdGlvbiB3aXRoIGJyb2tlbiBjb2RlIHdpdGggYSB3YXJuaW5nIChzZWUgIzM0MjQzMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIFByZWZpeCBzZWN0aW9uIHdpdGggYnJva2VuIGNvZGUgd2l0aCBhIHdhcm5pbmcgKHNlZSAjMzQyNDMyKS4KCjIwMDctMTAtMDggMTc6MjY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IENhbGwgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpIHRvIGF2b2lkIHdhcm5pbmdzLiBTcG90dGVkIGJ5IFJpdGVzaCBLaGFkZ2FyYXkuIEZpeGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgdG8KCSAgYXZvaWQgd2FybmluZ3MuIFNwb3R0ZWQgYnkgUml0ZXNoIEtoYWRnYXJheS4gRml4ZXMgIzQ4NDIyNS4KCjIwMDctMTAtMDggMTc6MDU6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gd2UgcmVjZWl2ZWQgRU9TIGFuZCBhcmUgd2FpdGluZyBmb3Igd2hlbiB0byBwb3N0IHRoZSBFT1MgbWVzc2FnZSwgb3VyIHN0YXRlIGlzIHByZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBXaGVuIHdlIHJlY2VpdmVkIEVPUyBhbmQgYXJlIHdhaXRpbmcgZm9yIHdoZW4gdG8gcG9zdCB0aGUgRU9TIG1lc3NhZ2UsCgkgIG91ciBzdGF0ZSBpcyBwcmVyb2xsZWQgYW5kIHdlIHNob3VsZCBub3QgcmV0dXJuIEFTWU5DLgoJICBSZW9yZ2FuaXplIHNvbWUgY29kZSBwYXRocyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlvci4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2VvcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IHRvIHZlcmlmeSBhYm92ZSBFT1MgZml4LgoKMjAwNy0xMC0wOCAxMDoyODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE1vdmUgZGV0ZWN0aW5nIHRoZSBpbnB1dCBjYXBzIG9mIHRoZSBzaW5rcGFkIHRvIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0Y2FwcyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNb3ZlIGRldGVjdGluZyB0aGUgaW5wdXQgY2FwcyBvZiB0aGUgc2lua3BhZCB0byB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gdXBkYXRlIHRoZSBvdXRwdXQgY2FwcyB3aGVuIHdlIHJlY2VpdmUgbmV3IGlucHV0IGNhcHMKCSAgaW5zdGVhZCBvZiBhbHdheXMgdXNpbmcgdGhlIGZpcnN0IGRldGVjdGVkIGNhcHMuCgoyMDA3LTEwLTA4IDEwOjIxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB0cnkgdG8gcHJlcm9sbCBub24tYXN5bmMgZWxlbWVudHMgYWZ0ZXIgYSBmbHVzaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHRyeSB0byBwcmVyb2xsIG5vbi1hc3luYyBlbGVtZW50cyBhZnRlciBhIGZsdXNoLgoJICBTdWJ0cmFjdCBsYXRlbmN5IGZvcm0gY2xvY2sgdGltZXMgd2hlbiByZXBvcnRpbmcgcG9zaXRpb24uCgoyMDA3LTEwLTA1IDE0OjQ0OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY29tbWVudCBhbmQgZG9jdW1lbnRhdGlvbiB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGF1c2VfdGFzayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGNvbW1lbnQgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAwNy0xMC0wNSAxNDo0MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBSZXdvcmsgdGhlIGxvY2tpbmcgb2YgYmFzZXNyYyBpbiBhIHNpbWlsYXIgZmFzaGlvbiB0byBiYXNlc2luay4gV2UgYmFzaWNhbGx5IGhhdmUgb25lIGxvYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9saXZlKSwgKGdzdF9iYXNlX3NyY19pc19saXZlKSwKCSAgKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfdW5sb2NrKSwgKGdzdF9iYXNlX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NyY19zZXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUmV3b3JrIHRoZSBsb2NraW5nIG9mIGJhc2VzcmMgaW4gYSBzaW1pbGFyIGZhc2hpb24gdG8gYmFzZXNpbmsuIFdlCgkgIGJhc2ljYWxseSBoYXZlIG9uZSBsb2NrIChMSVZFX0xPQ0spIHByb3RlY3RpbmcgdGhlIGRhdGFmbG93LiBUaGlzIGFsbG93cwoJICB1cyB0byBoYW5kbGUgbGl2ZSBzb3VyY2VzIGFuZCBzZW1pIGxpdmUgb25lcyBtdWNoIGJldHRlci4KCSAgU2ltcGxpZnkgZmx1c2hpbmcuCgkgIEZpeCB1bmxvY2tpbmcgd2hlbiBzZWVraW5nLCBzaHV0dGluZyBkb3duIGFuZCBwYXVzaW5nIGluIGxpdmUgc291cmNlcy4KCjIwMDctMTAtMDUgMTE6NTI6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBGaXggY29tcGlsYXRpb24gYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICBGaXggY29tcGlsYXRpb24gYWdhaW4uCgoyMDA3LTEwLTAzIDE1OjI3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2UgbWVhbmluZ2Z1bCBjYXRlZ29yaWVzIGZvciB0aGUgbG9ncyB0byBjbGVhbiB0aGUgZGVmYXVsdCBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFVzZSBtZWFuaW5nZnVsIGNhdGVnb3JpZXMgZm9yIHRoZSBsb2dzIHRvIGNsZWFuIHRoZSBkZWZhdWx0IG9uZS4KCjIwMDctMTAtMDMgMTU6MDU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCjIwMDctMTAtMDMgMTU6MDI6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OiBBZGQgc29tZSBtb3JlIHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMDctMTAtMDMgMTQ6NTE6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCjIwMDctMTAtMDMgMTI6MDU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogU3BlZWR1cCB0eXBlZmluZGluZy4gVGhpcyBpcyB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ1OTg2MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgU3BlZWR1cCB0eXBlZmluZGluZy4gVGhpcyBpcyB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ1OTg2MikuCgoyMDA3LTEwLTAzIDExOjM2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBkb2NzIHRoYXQgbWVudGlvbiAncGx1Z2luX2Rlc2MnIGluc3RlYWQgb2YgJ2dzdF9wbHVnaW5fZGVzYycuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgRml4IGRvY3MgdGhhdCBtZW50aW9uICdwbHVnaW5fZGVzYycgaW5zdGVhZCBvZiAnZ3N0X3BsdWdpbl9kZXNjJy4KCSAgU3BvdHRlZCBieSBKb3NlcCBUb3JyYSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPi4KCjIwMDctMTAtMDMgMTE6MTY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2xvY2suaDogRml4IHVwIGJyb2tlbiBHU1RfQ0xPQ0tfRkxBR1MgbWFjcm8gYW5kIEdzdENsb2NrIGRvY3MuIFRoZSBmbGFncyBmaWVsZCBoYXMgbW92ZWQgdG8gR3N0T2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IHVwIGJyb2tlbiBHU1RfQ0xPQ0tfRkxBR1MgbWFjcm8gYW5kIEdzdENsb2NrIGRvY3MuIFRoZSBmbGFncwoJICBmaWVsZCBoYXMgbW92ZWQgdG8gR3N0T2JqZWN0LgoKMjAwNy0xMC0wMiAxNToyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDYWxsIHVubG9jayBmb3IgbGl2ZSBzb3VyY2VzIHNvIHRoYXQgdGhleSBjYW4ndCBnZXQgc3R1Y2sgaW4gX2NyZWF0ZSBhbmQgcHJvZHVjZSBhIGJ1ZmZlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIENhbGwgdW5sb2NrIGZvciBsaXZlIHNvdXJjZXMgc28gdGhhdCB0aGV5IGNhbid0IGdldCBzdHVjayBpbiBfY3JlYXRlIGFuZAoJICBwcm9kdWNlIGEgYnVmZmVyIGJlZm9yZSB0aGV5IGFyZSBzZXQgYmFjayB0byBQTEFZSU5HLgoKMjAwNy0xMC0wMiAwOToyMTo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQ29tbWVudCB0aGUgc2VnbWVudC1yZWxhdGVkIGNvZGUuLi4gaW4gdGhlIFBST1BFUiBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIENvbW1lbnQgdGhlIHNlZ21lbnQtcmVsYXRlZCBjb2RlLi4uIGluIHRoZSBQUk9QRVIgZnVuY3Rpb24uCgkgIFNlZSAjNDgyMTQ3IGFuZCBteSBjb21taXQgZnJvbSB5ZXN0ZXJkYXkuCgoyMDA3LTEwLTAxIDE3OjU5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsc28gaW5pdGlhbGl6ZSB0aGUgY291bnRlciB0aGF0IGNhbGN1bGF0ZXMgdGhlIGZpcnN0IHRpbWVzdGFtcCBvbiBhIGJ1ZmZlciBjb3JyZWN0bHkgZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsc28gaW5pdGlhbGl6ZSB0aGUgY291bnRlciB0aGF0IGNhbGN1bGF0ZXMgdGhlIGZpcnN0IHRpbWVzdGFtcCBvbiBhCgkgIGJ1ZmZlciBjb3JyZWN0bHkgZm9yIG5vbi1saXZlIHNvdXJjZXMuCgoyMDA3LTEwLTAxIDEyOjMxOjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBEaXNhYmxlIGNvZGUgdGhhdCdzIGJyZWFraW5nIHRoZSBjdXJyZW50LXRpbWUtbGV2ZWwgcmVwb3J0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBEaXNhYmxlIGNvZGUgdGhhdCdzIGJyZWFraW5nIHRoZSBjdXJyZW50LXRpbWUtbGV2ZWwgcmVwb3J0aW5nLgoJICBTZWUgIzQ4MjE0NwoKMjAwNy0wOS0zMCAxODoxNjozNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIE1fUEkgYW5kIElNUE9SVF9TWU1CT0wgdG8gdGhlIHByaXZhdGUgcGFydCBvZiB0aGUgR3N0SW5mbyBzZWN0aW9uIGFzIHRoZXkgc2hvdWxkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBNX1BJIGFuZCBJTVBPUlRfU1lNQk9MIHRvIHRoZSBwcml2YXRlIHBhcnQgb2YgdGhlIEdzdEluZm8gc2VjdGlvbgoJICBhcyB0aGV5IHNob3VsZG4ndCBzaG93IHVwLiBGaXhlcyB0aGUgZG9jcyBidWlsZC4KCjIwMDctMDktMjkgMTE6NDY6MzEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IEFkZCBhbiBleHBsaWNpdCB2YXJpYWJsZSBpbXBvcnRhdGlvbiBuZWVkZWQgb24gVlM2IChvbmx5IGZvciBNU0NfVkVSKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgYW4gZXhwbGljaXQgdmFyaWFibGUgaW1wb3J0YXRpb24gbmVlZGVkIG9uIFZTNiAob25seSBmb3IgTVNDX1ZFUikKCSAgRGVmaW5lIE1fUEkgd2hpY2ggaXMgdXNlZCBpbiBmaWxlcyB3aGljaCBhcmUgaW5jbHVkaW5nIGdzdGluZm8uaC4KCSAgVlM2IGluY2x1ZGVzIGRvZXNuJ3QgZGVmaW5lIGl0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuCgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVcGRhdGUgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gYnVpbGQuCgoyMDA3LTA5LTI4IDEwOjIyOjQwICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuIEZpeGVzICM0ODA4NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlIGRvdCBjb250cmVyYXMgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6ICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuIEZpeGVzICM0ODA4NTguCgoyMDA3LTA5LTI4IDEwOjE1OjIzICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRmlyc3QgcGF0Y2ggb2YgY29kZSBjbGVhbnVwcywgdXNlIHRoZSBtYWNyb3MgYW5kIHJpZ2h0IGFyZ3VtZW50cyBpbiB0aGUgbWFjcm9zIHRvIHNpZ25hbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZSBkb3QgY29udHJlcmFzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRmlyc3QgcGF0Y2ggb2YgY29kZSBjbGVhbnVwcywgdXNlIHRoZSBtYWNyb3MgYW5kIHJpZ2h0IGFyZ3VtZW50cyBpbiB0aGUKCSAgbWFjcm9zIHRvIHNpZ25hbCBhbmQgbG9jayB0aGUgcXVldWUuIFNlZSAjNDgwODU4LgoKMjAwNy0wOS0yNiAxODowNjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgd2hlbiBkZWFsaW5nIHdpdGggX3BvbGwoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAocG9sbF9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgd2hlbiBkZWFsaW5nIHdpdGggX3BvbGwoKS4KCjIwMDctMDktMjYgMTg6MDQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRml4IG1lbW9yeSBsZWFrIEkgaW50cm9kdWNlZCBhIGZldyBkYXlzIGFnby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEZpeCBtZW1vcnkgbGVhayBJIGludHJvZHVjZWQgYSBmZXcgZGF5cyBhZ28uCgoyMDA3LTA5LTI2IDE3OjAwOjIyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IE1ha2UgaXQgb25jZSBhZ2FpbiBwb3NzaWJsZSB0byBmcmVlIEdzdEJ1ZmZlcnMgaW4gdGhlIGRlZmF1bHQgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBNYWtlIGl0IG9uY2UgYWdhaW4gcG9zc2libGUgdG8gZnJlZSBHc3RCdWZmZXJzIGluIHRoZSBkZWZhdWx0CgkgIGJ1aWxkLgoJICBUaGUgcG9pc29uaW5nIHNjcmliYmxlcyBvbiBwYXJ0cyBvZiB0aGUgbWluaW9iamVjdCB3ZSBuZWVkIGluCgkgIG9yZGVyIHRvIGZyZWUgaXQuCgkgIEZpeGVzICM0ODAzNDEKCjIwMDctMDktMjUgMTg6MzU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTVBPU0VSLCBmaXhlcyAjNDU5ODA5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19DT01QT1NFUiwgZml4ZXMgIzQ1OTgwOS4KCjIwMDctMDktMjQgMTc6NDE6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uKjogQWRkIHRoZSAzLWNsYXVzZSBCU0QgbGljZW5zZSBhbmQgdGhlIE1JVC9YMTEgbGljZW5zZSB0byB0aGUgbGljZW5zZSBsaXN0LiBGaXhlcyAjNDc5Nzg0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBBZGQgdGhlIDMtY2xhdXNlIEJTRCBsaWNlbnNlIGFuZCB0aGUgTUlUL1gxMSBsaWNlbnNlIHRvIHRoZSBsaWNlbnNlCgkgIGxpc3QuIEZpeGVzICM0Nzk3ODQuCgoyMDA3LTA5LTI0IDE3OjIyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvZ2V0dGluZy54bWw6IEFkZCBRK0EgYWJvdXQgZGlmZmVyZW50IEdTdHJlYW1lciB2ZXJzaW9ucyAoIzM2NDA1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICBBZGQgUStBIGFib3V0IGRpZmZlcmVudCBHU3RyZWFtZXIgdmVyc2lvbnMgKCMzNjQwNTYpLgoKMjAwNy0wOS0yNCAxMjo0NjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmV0dXJuIGNvcnJlY3QgZ2Jvb2xlYW4gZnJvbSBxdWVyeSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZXR1cm4gY29ycmVjdCBnYm9vbGVhbiBmcm9tIHF1ZXJ5IGZ1bmN0aW9uLgoKMjAwNy0wOS0yNCAxMjoyOToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2ltcGxpZnkgbGF0ZW5jeSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbXBsaWZ5IGxhdGVuY3kgcXVlcnkuCgkgIFdoZW4gbm90IHN5bmNocm9uaXppbmcsIHdlIGNhbiByZXBvcnQgbGF0ZW5jeSB3aXRob3V0IHF1ZXJ5aW5nIHRoZSBwZWVyCgkgIGVsZW1lbnQuCgoyMDA3LTA5LTI0IDExOjQ2OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHNtYWxsIHR5cG9zIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZpeCBzbWFsbCB0eXBvcyBpbiB0aGUgZG9jcy4KCjIwMDctMDktMjQgMTE6MjI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHlwbyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHlwbyBmaXhlcy4KCjIwMDctMDktMjMgMTA6MTY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IEFkZCBzb21lIGRlYnVnIHRleHQgdG8gZXJyb3IgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGF0IHdlIGVycm9yZWQgb3V0IG9uIHJlcXVlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgQWRkIHNvbWUgZGVidWcgdGV4dCB0byBlcnJvciBtZXNzYWdlIHRvIGluZGljYXRlIHRoYXQKCSAgd2UgZXJyb3JlZCBvdXQgb24gcmVxdWVzdC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFdoZW4gdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HIGZhaWxzLCBjaGVjayBmb3IgYW4KCSAgZXJyb3IgbWVzc2FnZSBvbiB0aGUgYnVzIGFuZCBwcmludCBpdC4KCjIwMDctMDktMjIgMTc6MjI6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vY3MucG86CgkqIHBvL2h1LnBvOgoJKiBwby91ay5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA3LTA5LTIyIDE3OjE4OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IEpvcmdlIEdvbnrDoWxleiBHb256w6FsZXogPGFsb3JpZWxAZ21haWwuY29tPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZXMucG86CgkgIEFkZGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA5LTIxIDE0OjM3OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBGaXggcHJpbnRmIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHByaW50ZiBhcmd1bWVudHMuCgoyMDA3LTA5LTIwIDEwOjM2OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiBJbXByb3ZlZCBzdGF0ZSBjaGFuZ2UgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBJbXByb3ZlZCBzdGF0ZSBjaGFuZ2UgdW5pdCB0ZXN0LgoKMjAwNy0wOS0yMCAwNzo0MjozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiBNb3ZlIHByaXYgdG8gdGhlIHJpZ2h0IHBsYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIE1vdmUgcHJpdiB0byB0aGUgcmlnaHQgcGxhY2UuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIEFkZCBGSVhNRTogYW5kIGltcHJvdmUgbG9nLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgV29yayB3aXRoIGFsbCB0eXBlcyBvZiByZWdpc3RyaWVzLgoKMjAwNy0wOS0xOSAyMDozOTo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1bnJlZiB0aGUgZXZlbnQgYWZ0ZXIgcHVzaGluZyBpdC4gRml4ZXMgIzQ3ODQwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCk6CgkgIERvbid0IHVucmVmIHRoZSBldmVudCBhZnRlciBwdXNoaW5nIGl0LiBGaXhlcyAjNDc4NDAxLgoKMjAwNy0wOS0xOSAxODowNzoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSWdub3JlIHJlZ2lzdHJpZXMgaW4gYW55IGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgSWdub3JlIHJlZ2lzdHJpZXMgaW4gYW55IGZvcm1hdC4KCjIwMDctMDktMTkgMTM6Mjg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOiBBZGQgY29tcGF0aWJpbGl0eSBtYWNybyBmb3IgZ19pbnRlcm5fc3RyaW5nKCkgZm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIEFkZCBjb21wYXRpYmlsaXR5IG1hY3JvIGZvciBnX2ludGVybl9zdHJpbmcoKSBmb3IKCSAgR0xpYi0yLjggKGFueSByZWFzb24gd2UgY2FuJ3QganVzdCBidW1wIHRoZQoJICByZXF1aXJlbWVudCB0byBhdCBsZWFzdCAyLjEwPykKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgTWFrZSBHc3RTdGF0aWNQYWRUZW1wbGF0ZSdzIHRlbXBsX25hbWUgZmllbGQgYSBjb25zdCBnY2hhciAqIGFuZCBmaXgKCSAgdXAgdGhlIGludGVybmFsIGNvZGUgYWNjb3JkaW5nbHkuICBUaGlzIHNob3VsZG4ndCBiZSBhIHByb2JsZW0sIHNpbmNlCgkgIHRoZXJlIGlzIG5vIHJlYXNvbiBleHRlcm5hbCBjb2RlIGNvdWxkIGV2ZXIgYXNzdW1lIHRoZSBzdHJpbmcgaW4gc3VjaAoJICBhIHN0cnVjdHVyZSBpcyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdW5sZXNzIGl0IGRpZCB0aGF0IGl0c2VsZjsgIHRoZQoJICB1c2Ugb2YgZ19zdHJkdXAoKSBpcyBwcml2YXRlIHRvIGVsZW1lbnQgZmFjdG9yaWVzLiAgVGhlIG5ldyBjb2RlIGFsc28KCSAgc2F2ZXMgc29tZSBtZW1vcnkgYnkgcHV0dGluZyBwYWQgdGVtcGxhdGUgbmFtZSBzdHJpbmdzIGludG8gdGhlIEdMaWIKCSAgcXVhcmsgdGFibGUgaW5zdGVhZCBvZiBhbGxvY2F0aW5nIHRoZW0gZHluYW1pY2FsbHkuCgkgIERlY2xhcmluZyB0aGlzIGZpZWxkIGNvbnN0YW50IGZpeGVzIHdhcm5pbmdzIHdpdGggZysrLTQuMiB3aGVuIHVzaW5nCgkgIHRoZSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSBtYWNybyBpbiBjKysgY29kZSAoIzQ3ODA5MikuCgoyMDA3LTA5LTE5IDEyOjMxOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVsZWFzZSBzdGF0aWMgY2Fwcy4gRml4ZXMgIzQ3NTcyMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIFJlbGVhc2Ugc3RhdGljIGNhcHMuIEZpeGVzICM0NzU3MjMuCgoyMDA3LTA5LTE4IDIyOjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uKjogTWFrZSBzb21lIGludGVybmFsIEFQSSB0YWtlIGNvbnN0IGdjaGFyICogaW5zdGVhZCBvZiBqdXN0IGdjaGFyICogdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgTWFrZSBzb21lIGludGVybmFsIEFQSSB0YWtlIGNvbnN0IGdjaGFyICogaW5zdGVhZCBvZiBqdXN0CgkgIGdjaGFyICogdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystNC4yLjIgd2hlbgoJICBwYXNzaW5nIHN0cmluZyBjb25zdGFudHMgKHBhcnRpYWxseSBmaXhlcyAjNDc4MDkyKS4KCjIwMDctMDktMTcgMjA6NTU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEEgbGF0ZW5jeSBxdWVyeSBmYWlscyB3aGVuIG9uZSBvZiB0aGUgc2lua3MgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChnc3RfYmluX3F1ZXJ5KToKCSAgQSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIHdoZW4gb25lIG9mIHRoZSBzaW5rcyBmYWlsLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA5LTE3IDE3OjE3OjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBtaW5vciBjb21waWxhdGlvbiB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9sb29wKToKCSAgRml4IG1pbm9yIGNvbXBpbGF0aW9uIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgoyMDA3LTA5LTE3IDA2OjAxOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBNZWFzdXJlIHF1ZXVlIGxldmVsIGJhc2VkIG9uIHRoZSBkaWZmIGJldHdlZW4gaGVhZCBhbmQgdGFpbCB0aW1lc3RhbXBzIGV2ZW4gd2hlbiBwdXNoaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgTWVhc3VyZSBxdWV1ZSBsZXZlbCBiYXNlZCBvbiB0aGUgZGlmZiBiZXR3ZWVuIGhlYWQgYW5kIHRhaWwgdGltZXN0YW1wcwoJICBldmVuIHdoZW4gcHVzaGluZyB0aGUgZmlyc3QgYnVmZmVyLgoKMjAwNy0wOS0xNCAyMzowNjozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2lua3MgdGhhdCBkb24ndCBwcmVyb2xsIGNhbiBhbHdheXMgYmUgcXVlcmllZCBmb3IgdGhlIGxhdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2lua3MgdGhhdCBkb24ndCBwcmVyb2xsIGNhbiBhbHdheXMgYmUgcXVlcmllZCBmb3IgdGhlIGxhdGVuY3kuCgkgIERvbid0IHBvc3QgQVNZTkMgc3RhcnQgd2hlbiB3ZSBhcmUgbm90IGFzeW5jLgoKMjAwNy0wOS0xNCAyMDoyNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogV2hlbiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRCBmcm9tIHB1c2hpbmcgYSBidWZmZXIsIGRvbid0IHRyeSB0byBwdXNoIG1vcmUgYnVmZmVycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgV2hlbiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRCBmcm9tIHB1c2hpbmcgYSBidWZmZXIsIGRvbid0IHRyeSB0bwoJICBwdXNoIG1vcmUgYnVmZmVycyBidXQgYWxsb3cgcHVzaGluZyBvZiBFT1MgYW5kIE5FV1NFR01FTlQuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBoZXJlIGFuZCB0aGVyZS4gRml4ZXMgIzQ3NjUxNC4KCjIwMDctMDktMTQgMTU6NTI6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IExhdGVuY3kgcXVlcnkgaXMgYWxsb3dlZCBhZnRlciB3ZSBhcmUgcHJlcm9sbGVkLiBJbnRyb2R1Y2UgYSBuZXcgZmxhZyBmb3IgdGhpcyBhbmQgc3RvcCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIExhdGVuY3kgcXVlcnkgaXMgYWxsb3dlZCBhZnRlciB3ZSBhcmUgcHJlcm9sbGVkLiBJbnRyb2R1Y2UgYSBuZXcgZmxhZwoJICBmb3IgdGhpcyBhbmQgc3RvcCBhYnVzaW5nIG90aGVyIHZhcmlhYmxlcy4KCjIwMDctMDktMTMgMjM6NTM6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUHVzaCBPT0IgZXZlbnRzIGRvd25zdHJlYW0gd2hlbiB3ZSBnZXQgdGhlbSBpbiBzZW5kX2V2ZW50LiBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCk6CgkgIFB1c2ggT09CIGV2ZW50cyBkb3duc3RyZWFtIHdoZW4gd2UgZ2V0IHRoZW0gaW4gc2VuZF9ldmVudC4gVGhpcyBhbGxvd3MKCSAgdGhlIGFwcGxpY2F0aW9uIHRvIGluc2VydCBldmVudHMgaW4gdGhlIHBpcGVsaW5lLgoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwNy0wOS0xMyAyMToyNzozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vdmUgbGF0ZW5jeSBxdWVyeSBmcm9tIEdzdFBpcGVsaW5lIHRvIEdzdEJpbiBzbyB0aGF0IHdlIGNhbiBhbHNvIHVzZSBpdCB3aGVuIGFzeW5jLWhhbmRsaW5nIGlzIGVuYWJsZWQgb24gYmlucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGNsZWFyX3F1ZXVlKSwKCSAgKGRvX2Jpbl9sYXRlbmN5KSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIE1vdmUgbGF0ZW5jeSBxdWVyeSBmcm9tIEdzdFBpcGVsaW5lIHRvIEdzdEJpbiBzbyB0aGF0IHdlIGNhbiBhbHNvCgkgIHVzZSBpdCB3aGVuIGFzeW5jLWhhbmRsaW5nIGlzIGVuYWJsZWQgb24gYmlucy4KCjIwMDctMDktMTMgMjE6MTk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFVwZGF0ZSBkb2NzLgoJICBDbGVhbiB1cCB0aGUgdGltZXN0YW1waW5nIGFuZCBzeW5jaW5nIGNvZGUgZm9yIHBzZXVkbyBsaXZlIHNvdXJjZXMuCgoyMDA3LTA5LTEzIDE5OjI3OjUzICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDogTWVudGlvbiBsZXNzIC1SIHN3aXRjaCBpbiB0aGUgc2VjdGlvbiBhYm91dCBkZWJ1ZyBvdXRwdXQgKCM0NzQwNTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIE1lbnRpb24gbGVzcyAtUiBzd2l0Y2ggaW4gdGhlIHNlY3Rpb24gYWJvdXQgZGVidWcgb3V0cHV0ICgjNDc0MDU1KS4KCjIwMDctMDktMTMgMTc6MTU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFF1ZXVlIGNhbiBsYXRlbmN5IHRvIHRoZSBwaXBlbGluZSB1cCB0byB0aGUgY29uZmlndXJlZCBtYXggc2l6ZSBpbiB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFF1ZXVlIGNhbiBsYXRlbmN5IHRvIHRoZSBwaXBlbGluZSB1cCB0byB0aGUgY29uZmlndXJlZCBtYXggc2l6ZSBpbiB0aW1lLgoJICBSZXBvcnQgdGhpcyBmYWN0IGluIHRoZSBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wOS0xMyAwOTowODoyMyArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUoKSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhIHVpbnQ2NCBvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbiBhdCBtb3V0dGUgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUoKSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhIHVpbnQ2NCBvcgoJICBHc3RDbG9ja1RpbWUgdG8gZG91YmxlIHRvIGZpeCB0aGUgYnVpbGQgb24gd2luMzIuIEZpeGVzICM0NzQzNzEuCgoyMDA3LTA5LTEzIDA4OjQyOjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEltcGxlbWVudCBwb2lzb25pbmcgZm9yIEdzdEJ1ZmZlciBpZiAtLWVuYWJsZS1wb2lzb25pbmcgaXMgc3BlY2lmaWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgSW1wbGVtZW50IHBvaXNvbmluZyBmb3IgR3N0QnVmZmVyIGlmIC0tZW5hYmxlLXBvaXNvbmluZyBpcyBzcGVjaWZpZWQuCgkgIFdoZW4gZmluYWxpemluZyBhIGJ1ZmZlciB0aGUgY29tcGxldGUgc3RydWN0IGlzIGZpbGxlZCB3aXRoIDB4ZmYsCgkgIHRodXMgbWFraW5nIGEgdXNlIG9mIHRoZSBidWZmZXIgYWZ0ZXIgdGhlIGZpbmFsIHVucmVmIGltcG9zc2libGUuCgoyMDA3LTA5LTEzIDA4OjM2OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogVXNlIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQoYSwgYikgaW5zdGVhZCBvZiBmYWlsX3VubGVzc19lcXVhbHMgKGEgPT0gYikgdG8gZ2V0IGJldHRlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBmYWlsX3VubGVzc19lcXVhbHNfaW50KGEsIGIpIGluc3RlYWQgb2YKCSAgZmFpbF91bmxlc3NfZXF1YWxzIChhID09IGIpIHRvIGdldCBiZXR0ZXIgb3V0cHV0IG9uIGZhaWx1cmVzLgoKMjAwNy0wOS0xMiAxNjozNTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzogQWxzbyBjaGVjayBmb3IgdGhlIG90aGVyIGZpbGUgVVJJIHZhcmlhbnQgb24gd2luMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgQWxzbyBjaGVjayBmb3IgdGhlIG90aGVyIGZpbGUgVVJJIHZhcmlhbnQgb24gd2luMzIuCgoyMDA3LTA5LTEyIDEyOjM2OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBJZiB0aGVyZSdzIG5vIGhvc3RuYW1lLCB3ZSB3YW50IHRvIHJldHVybiAnYzovZm9vL2Jhci50eHQnIGFuZCBub3QgJy9jOi9mb28vYmFyLnR4dCcgb24gV2luZG93cy4gRml4ZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X2xvY2F0aW9uKToKCSAgSWYgdGhlcmUncyBubyBob3N0bmFtZSwgd2Ugd2FudCB0byByZXR1cm4gJ2M6L2Zvby9iYXIudHh0JwoJICBhbmQgbm90ICcvYzovZm9vL2Jhci50eHQnIG9uIFdpbmRvd3MuIEZpeGVzICM0Njk0MDIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZSBhbmQgYSBmZXcgbW9yZSB0aGluZ3MuCgoyMDA3LTA5LTExIDIzOjI3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6IEFkZCBkb2NzIG9uIGhvdyBsaXZlIHNvdXJjZXMgc2hvdWxkIHRpbWVzdGFtcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgIEFkZCBkb2NzIG9uIGhvdyBsaXZlIHNvdXJjZXMgc2hvdWxkIHRpbWVzdGFtcC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBGb3Igc3ViY2xhc3NlcyB0aGF0IGFyZSBsaXZlIGFuZCBsaWtlIHRvIHN5bmMsIGFkZCBhZGl0aW9uYWwgc3RhcnR1cAoJICBsYXRlbmN5IHRvIHN5bmMgdGltZSBhbmQgdGltZXN0YW1wcyBzbyB0aGF0IHdlIHRpbXN0YW1wIGFjY29yZGluZyB0byB0aGUKCSAgZGVzaWduIGRvYy4KCjIwMDctMDktMTEgMTg6NTk6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEFsc28gZG8gYSBnX3R5cGVfY2xhc3NfcmVmKCkgZm9yIHRoZSBzdWJidWZmZXIgdHlwZSBpbiB0aGUgaW5pdCBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBBbHNvIGRvIGEgZ190eXBlX2NsYXNzX3JlZigpIGZvciB0aGUgc3ViYnVmZmVyIHR5cGUgaW4KCSAgdGhlIGluaXQgZnVuY3Rpb24uCgoyMDA3LTA5LTExIDE1OjU1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSBvbiB0aGUgcGVlciBvZiBhIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfcXVlcnkpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSBvbiB0aGUgcGVlciBvZiBhIHBhZC4KCSAgQVBJOiBnc3RfcGFkX3BlZXJfcXVlcnkoKQoKMjAwNy0wOS0xMSAxMzo0Mzo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IENsZWFudXAgdGhlIHRlc3QgYSBsaXR0bGUgKHVzZSBnc3QtbG9nZ2luZyBhbmQgbm90IGdfbWVzc2FnZSkuIEltcHJvdmUgdGVzdCB0byBjaGVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBDbGVhbnVwIHRoZSB0ZXN0IGEgbGl0dGxlICh1c2UgZ3N0LWxvZ2dpbmcgYW5kIG5vdCBnX21lc3NhZ2UpLiBJbXByb3ZlCgkgIHRlc3QgdG8gY2hlY2sgaWYgYSB3YWl0IHJlYWNoZWQgdGhlIHRhcmdldC4KCjIwMDctMDktMTEgMTA6MzM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggdGhlIGJ1aWxkLgoKMjAwNy0wOS0xMCAxNjo1MDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgcHJvcGVydHkgdG8gbWFrZSB0aGUgYmFzZXNyYyB0aW1lc3RhbXAgYnVmZmVycyBiYXNlZCBvbiB0aGUgY3VycmVudCBydW5uaW5nIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXApLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIHByb3BlcnR5IHRvIG1ha2UgdGhlIGJhc2VzcmMgdGltZXN0YW1wIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGN1cnJlbnQKCSAgcnVubmluZyB0aW1lLgoJICBBUEk6IEdzdEJhc2VTcmM6OmRvLXRpbWVzdGFtcAoJICBBUEk6IGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKCkKCSAgQVBJOiBnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCgpCgoyMDA3LTA5LTA4IDIwOjI1OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogUmVhbGx5IG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGEgcmVsZWFzZSAoIzQ2NTAxMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFJlYWxseSBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlIGJlZm9yZQoJICBhIHJlbGVhc2UgKCM0NjUwMTApLgoKMjAwNy0wOS0wNyAxNDo0Njo1MiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgaGVhZGVyIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IGhlYWRlciBmaWxlcwoKMjAwNy0wOS0wNyAwNDo1MDoyMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsd2F5cyBkZXN0cm95IHRoZSB0aW1lciwgYWxzbyBpbiBlcnJvciBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBBbHdheXMgZGVzdHJveSB0aGUgdGltZXIsIGFsc28gaW4gZXJyb3IgY2FzZXMuCgoyMDA3LTA5LTA1IDIyOjI5OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6IEZpeCBYTUwgZXhhbXBsZSBjb2RlLiBGaXhlcyAjNDcyNzE0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgRml4IFhNTCBleGFtcGxlIGNvZGUuIEZpeGVzICM0NzI3MTQuCgoyMDA3LTA5LTA1IDIyOjEyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcm90ZWN0IGVvcyBhbmQgaGF2ZV9wcmVyb2xsIHdpdGggdGhlIE9CSkVDVCBsb2NrIHNvIHdlIGRvbid0IG5lZWQgdG8gdGFrZSB0aGUgUFJFUk9MTCBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFByb3RlY3QgZW9zIGFuZCBoYXZlX3ByZXJvbGwgd2l0aCB0aGUgT0JKRUNUIGxvY2sgc28gd2UgZG9uJ3QgbmVlZCB0bwoJICB0YWtlIHRoZSBQUkVST0xMIGxvY2sgd2hlbiBxdWVyeWluZyB0aGUgbGF0ZW5jeS4gRml4ZXMgIzQ3Mzg0Ni4KCjIwMDctMDktMDUgMTM6MjQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEdpdmUgc29tZSBsb2ctbWVzc2FnZXMgYSBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgR2l2ZSBzb21lIGxvZy1tZXNzYWdlcyBhIGNhdGVnb3J5LgoKMjAwNy0wOS0wNSAwMTowMDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRml4IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gY29kZS4gVGFrZSB0aGUgZnJhY3Rpb24gd2l0aCB0aGUgc21hbGxlc3QgZGlmZmVyZW5jZSB3aXRoIHRoZSB0YXJnZXQgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgRml4IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gY29kZS4gVGFrZSB0aGUgZnJhY3Rpb24gd2l0aCB0aGUgc21hbGxlc3QKCSAgZGlmZmVyZW5jZSB3aXRoIHRoZSB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IHRvIHZlcmlmeSBjb3JyZWN0IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gYmVoYXZpb3VyLgoKMjAwNy0wOS0wMiAyMDozMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBFeHBvcnQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEV4cG9ydCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2ggdG9vLgoKMjAwNy0wOC0zMCAxNzo1MDo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgbWV0aG9kcyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IG1ldGhvZHMgdG8gZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90c19vZmZzZXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCB0cy1vZmZzZXQgcHJvcGVydHkgdG8gZmluZS10dW5lIHRoZSBzeW5jaHJvbmlzYXRpb24uCgkgIEFQSTogR3N0QmFzZVNpbms6OnRzLW9mZnNldCBwcm9wZXJ0eQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfdHNfb2Zmc2V0KCkKCjIwMDctMDgtMjkgMjA6NTc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZCBhc3luYyBwcm9wZXJ0eSB0byBpbnN0cnVjdCB0aGUgc2luayBuZXZlciB0byBpbmZvcm0gdGhlIHBhcmVudCBhYm91dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luYyksIChnc3RfYmFzZV9zaW5rX3NldF9tYXhfbGF0ZW5lc3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2xhdGVuZXNzKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX2FzeW5jX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGFzeW5jIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSBzaW5rIG5ldmVyIHRvIGluZm9ybSB0aGUgcGFyZW50IGFib3V0CgkgIEFTWU5DIHN0YXRlIGNoYW5nZXMsIHVwZGF0ZSBkb2NzLgoJICBDaGVjayBhcmd1bWVudCB3aXRoIGdfcmV0dXJuXyogZm9yIHRoZSBwdWJsaWMgZnVuY3Rpb25zLgoJICBBUEk6IEdzdEJhc2VTaW5rOjphc3luYyBwcm9wZXJ0eQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfYXN5bmNfZW5hYmxlZCgpCgoyMDA3LTA4LTI4IDE1OjAyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19sb29wKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUmVhcnJhbmdlIHNvbWUgY29kZSBzbyB0aGF0IHdlIGNhbiBhZGQgc3VwcG9ydCBmb3IgbWVhc3VyaW5nIHRoZQoJICBzdGFydHVwIGxhdGVuY3kuCgoyMDA3LTA4LTI3IDIwOjAwOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OiBNb3JlIHRob3VnaHMgb24gdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgTW9yZSB0aG91Z2hzIG9uIHRoaXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIEFkZCBidWd6aWxsYSB0aWNrZXQgbnVtYmVyIHRvIEZJWE1FIGNvbW1lbnQuCgoyMDA3LTA4LTI2IDE4OjMwOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICByZW1vdmUgdGVtcCBmaWxlcyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlbXAgZmlsZXMgYWdhaW4KCjIwMDctMDgtMjYgMTY6NDI6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wOC0yNiAxNTo1ODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBBVVRIT1JTOgoJKiBNQUlOVEFJTkVSUzoKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA4LTI0IDIxOjUzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwNy0wOC0yNCAxNjozOTowNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJldmVydCBwYXRjaCB3aGljaCB1c2VzICQoZ3N0X2hlYWRlcnMpIGluc3RlYWQgb2YgJF4gYmVjYXVzZSBpdCBicmVha3MgbWFrZSBkaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJldmVydCBwYXRjaCB3aGljaCB1c2VzICQoZ3N0X2hlYWRlcnMpIGluc3RlYWQgb2YgJF4gYmVjYXVzZSBpdAoJICBicmVha3MgbWFrZSBkaXN0LgoKMjAwNy0wOC0yNCAxNDo1NTo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEZpeCBsZWFrcyBpbiB0aGUgbmV3IHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVha3MgaW4gdGhlIG5ldyB1bml0IHRlc3QuCgoyMDA3LTA4LTIzIDIwOjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb24ndCB1c2UgR1NUX0lORk8gYmVmb3JlIHRoZSBkZWJ1ZyBzeXN0ZW0gaXMgYWN0dWFsbHkgaW5pdGlhbGlzZWQgKHNob3VsZG4ndCBkbyBhbnkgaGFybSwgYnV0IHdvbid0IHByaW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRG9uJ3QgdXNlIEdTVF9JTkZPIGJlZm9yZSB0aGUgZGVidWcgc3lzdGVtIGlzIGFjdHVhbGx5IGluaXRpYWxpc2VkCgkgIChzaG91bGRuJ3QgZG8gYW55IGhhcm0sIGJ1dCB3b24ndCBwcmludCBhbnl0aGluZyBlaXRoZXIsIHNvIHdlIGNhbgoJICBqdXN0IGFzIHdlbGwgcmVtb3ZlIGl0KS4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBHU1RfQ0FUX0xFVkVMX0xPR192YWxpc3QoKSwgd2hpY2ggaXMgb3VyIGlubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yCgkgIGNvbXBpbGVycyB0aGF0IGRvbid0IHN1cHBvcnQgdmFyaWFkaWMgbWFjcm9zIChzdWNoIGFzIE1TVkMpLCBzaG91bGQKCSAgY2hlY2sgZm9yIGRlYnVnX2xldmVsIDw9IF9fZ3N0X2RlYnVnX21pbiBhcyB3ZWxsLCBzaW5jZSB0aGF0J3MgdGhlCgkgIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGFsbCB0aGUgbGV2ZWwtc3BlY2lmaWMgR1NUX0NBVF8qX0xPR19PQkpFQ1QoKQoJICBpbmxpbmUgaGVscGVyIGZ1bmN0aW9ucy4gU2hvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UgYSBiaXQsIGJ1dCBhbHNvCgkgIG1ha2VzIHN1cmUgdXNlcyBvZiBHU1RfSU5GTyBldC5hbCBhcmUgaWdub3JlZCBpZiB0aGUgZGVidWdnaW5nCgkgIHN5c3RlbSBpc24ndCBpbml0aWFsaXNlZCB5ZXQgKGluc3RlYWQgb2YgcHJpbnRpbmcgYW4gYXNzZXJ0aW9uCgkgIGZhaWx1cmUpLgoKMjAwNy0wOC0yMyAwNzoxMDozMyArMDAwMCAgRGF2aWQgTmXEjWFzIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmVwbGFjZSBzb21lIG5vbiBwb3J0YWJsZSBtYWtlZmlsZSBjb25zdHJ1Y3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IERhdmlkIE5lxI1hcyA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXBsYWNlIHNvbWUgbm9uIHBvcnRhYmxlIG1ha2VmaWxlIGNvbnN0cnVjdHMuCgoyMDA3LTA4LTIxIDE0OjEwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb21tb24vZ3RrLWRvYy1wbHVnaW5zLm1hazogR3JycnJyLiBEb24ndCByZW1vdmUgdGhlIHR5cGVzIGZpbGUgb24gbWFrZSBjbGVhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2d0ay1kb2MtcGx1Z2lucy5tYWs6CgkgIEdycnJyci4gRG9uJ3QgcmVtb3ZlIHRoZSB0eXBlcyBmaWxlIG9uIG1ha2UgY2xlYW4uCgoyMDA3LTA4LTIwIDE3OjUxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBBZGQgY29sb3JzcGFjZSB0byBleGFtcGxlIHBpcGVsaW5lLiBGaXhlcyAjNDU4Mjc0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEFkZCBjb2xvcnNwYWNlIHRvIGV4YW1wbGUgcGlwZWxpbmUuIEZpeGVzICM0NTgyNzQuCgoyMDA3LTA4LTIwIDEyOjMxOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogVGhlIHJlbGVhc2UgbWFuYWdlciBzaG91bGQgcnVuICdtYWtlIGRvd25sb2FkLXBvJyBiZWZvcmUgbWFraW5nIGEgcmVsZWFzZSB0byBtYWtlIHN1cmUgdHJhbnNsYXRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFRoZSByZWxlYXNlIG1hbmFnZXIgc2hvdWxkIHJ1biAnbWFrZSBkb3dubG9hZC1wbycgYmVmb3JlIG1ha2luZyBhCgkgIHJlbGVhc2UgdG8gbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZS4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2JlLnBvOgoJICAqIHBvL3BsLnBvOgoJICAqIHBvL3J3LnBvOgoJICBBZGQgc29tZSBuZXcgdHJhbnNsYXRpb25zLgoKMjAwNy0wOC0xNyAxMzo0ODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uwrR0IHRyeSB0byBkbyBhbnkgc3RhdGUgbWFuYWdlbWVudCB3aGVuIGEgbGl2ZSBwaXBlbGluZSBwb3N0cyBidWZmZXJpbmcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIERvbsK0dCB0cnkgdG8gZG8gYW55IHN0YXRlIG1hbmFnZW1lbnQgd2hlbiBhIGxpdmUgcGlwZWxpbmUgcG9zdHMKCSAgYnVmZmVyaW5nIG1lc3NhZ2VzLgoJICBBbHNvIG1ha2UgdGhlIGJ1ZmZlcmluZyBzdHJpbmcgdHJhbnNsYXRhYmxlLgoKMjAwNy0wOC0xNiAxMTowNDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIFdoZW4gYWRkaW5nIGVsZW1lbnRzLCBpbnNlcnQgbWVzc2FnZXMgaW50byB0aGUgYnVzIG9mIHRoZSBuZXdseSBhZGRlZAoJICBlbGVtZW50IGFuZCBtYWtlIHN1cmUgdGhlIGVsZW1lbnQgaXMgdGhlIHNvdXJjZSBvZiB0aGUgbWVzc2FnZS4gVGhpcwoJICBhbGxvd3MgdGhlIHBhcmVudCBiaW4gdG8gaW50ZXJjZXB0IHRoZSBtZXNzYWdlIGFuZCBkbyB0aGUKCSAgcmlnaHQgdGhpbmcuIEl0IGFsc28gYXZvaWRzIHVzIHBvc3RpbmcgQVNZTkNfU1RBUlQgYW5kIENMT0NLX1BST1ZJREUKCSAgbWVzc2FnZXMgdG8gdGhlIGFwcCAod2hpY2ggaXMgbm90IGFsbG93ZWQpLgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGVzdHN1aXRlIHNvIHRoYXQgaXMgZG9lcyBub3Qgd29yayBhcm91bmQgbWVzc2FnZXMgdGhhdCBzaG91bGQgbm90CgkgIGhhdmUgYmVlbiBwb3N0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgoKMjAwNy0wOC0xNiAxMDoyNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGFubm95aW5nIGJ1ZyBpbiB0aGUgc29ydGVkIGl0ZXJhdG9yIHdoZXJlIGEgc2luayB0aGF0IGlzIG5vdCByZWFsbHkgYSBzaW5rICh3aGVuIGl0IGhhcyBkb3duc3RyZWFtIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAocmVtb3ZlX2Zyb21fcXVldWUpLCAoY2xlYXJfcXVldWUpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCk6CgkgIEZpeCBhbm5veWluZyBidWcgaW4gdGhlIHNvcnRlZCBpdGVyYXRvciB3aGVyZSBhIHNpbmsgdGhhdCBpcyBub3QgcmVhbGx5CgkgIGEgc2luayAod2hlbiBpdCBoYXMgZG93bnN0cmVhbSBsaW5rcykgc2NyZXdlZCB1cCB0aGUgaXRlcmF0b3IuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIFVuaXQgdGVzdCB0byB2ZXJpZnkgdGhlIGZpeC4KCjIwMDctMDgtMTYgMTA6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBBZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgbWVzc2FnZXMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBXaGVuIGludGVycnVwdGluZywgZG9uJ3QgdHJ5IHRvIHNldCBwaXBlbGluZSB0byBQQVVTRUQgdHdpY2UuCgoyMDA3LTA4LTE0IDE0OjEwOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNb3ZlIEFTWU5DX1NUQVJUIG1lc3NhZ2UgcG9zdGluZyB0byB3aGVyZSBpdCBiZWxvbmdzLCBzaW1pbGFyIHRvIGFzeW5jX2RvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1vdmUgQVNZTkNfU1RBUlQgbWVzc2FnZSBwb3N0aW5nIHRvIHdoZXJlIGl0IGJlbG9uZ3MsIHNpbWlsYXIgdG8KCSAgYXN5bmNfZG9uZS4KCSAgRG9uJ3QgcG9zdCBBU1lOQ19TVEFSVCB3aGVuIHdlIGFyZSBpbiBlcnJvci4KCSAgUG9zdCBBU1lOQ19TVEFSVCB3aGVuIHdlIGFkZGVkIGFuIGFzeW5jIGVsZW1lbnQgdG8gYSBiaW4uCgoyMDA3LTA4LTE0IDEzOjQzOjQ0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmRleC5jOiBGaXggaW5kZXggZW50cnkgZ2VuZXJhdGlvbiBmcm9tIHZhcmdzLiBGaXhlcyAjNDY2NTk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbik6IEZpeCBpbmRleCBlbnRyeQoJICBnZW5lcmF0aW9uIGZyb20gdmFyZ3MuIEZpeGVzICM0NjY1OTUuCgoyMDA3LTA4LTE0IDEzOjM3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbHdheXMgY2hhbmdlIHRoZSBzdGF0ZSBvZiBhIE5PX1BSRVJPTEwgZWxlbWVudCBldmVuIGlmIGl0IGhhcyBBU1lOQyBlbGVtZW50cyBpbnNpZGUgKGluIGNhc2Ugb2YgYSBiaW4pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWx3YXlzIGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBOT19QUkVST0xMIGVsZW1lbnQgZXZlbiBpZiBpdCBoYXMgQVNZTkMKCSAgZWxlbWVudHMgaW5zaWRlIChpbiBjYXNlIG9mIGEgYmluKS4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIHRoaXMgY2FzZS4KCjIwMDctMDgtMTMgMTM6MzM6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBtb3JlIG1pc3NpbmcgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBBZGQgbW9yZSBtaXNzaW5nIGRvY3MuCgoyMDA3LTA4LTEyIDE2OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBZGQgU2luY2UgdGFnIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIFNpbmNlIHRhZyB0byBkb2NzLgoKMjAwNy0wOC0xMiAxNjo0MDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBmdW5jdGlvbiB0byBnZXQgdWludCBmcm9tIGEgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIGdldCB1aW50IGZyb20gYSBzdHJ1Y3R1cmUuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfdWludCgpCgoyMDA3LTA4LTEyIDE2OjM4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHByb3BlciBjaGVjayBmb3Igc2ltcGxlIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksCgkgIChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBGaXggcHJvcGVyIGNoZWNrIGZvciBzaW1wbGUgY2Fwcy4KCjIwMDctMDgtMTAgMTc6MzU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBSZW1vdmUgY3J1ZnQgYW5kIGRvIHNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIGNydWZ0IGFuZCBkbyBzb21lIGNsZWFudXBzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgUHJlcGFyZSBmb3IgY29tbWluZyBndGtkb2MgZmVhdHVyZXMgKHJlYmFzZSBhZ2FpbnN0IG9ubGluZSBkb2NzKS4KCjIwMDctMDgtMTAgMTQ6NTI6NDEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGggdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCB0byBkb2NzLgoJICBBbHNvIGZpeCBmb3JtYXR0aW5nIG9mIGFuIG9sZGVyIGNoYW5nZWxvZyBlbnRyeQoKMjAwNy0wOC0xMCAxNDo0MDoyNiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lmg6IEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGgsIHdoaWNoIHdhcyBtaXNzaW5nIGZyb20gdGhpcyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoLCB3aGljaCB3YXMgbWlzc2luZyBmcm9tIHRoaXMgaGVhZGVyLgoKMjAwNy0wOC0xMCAxMDozMDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOiBQcmludGYgZm9ybWF0IGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFByaW50ZiBmb3JtYXQgZml4LgoKMjAwNy0wOC0wOSAyMTo1MDoxOSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3Qgc2VuZCBhbiBhc3luY19zdGFydCBtZXNzYWdlIGR1cmluZyBkb3dud2FyZHMgc3RhdGUgY2hhbmdlIGlmIHRhcmdldCBzdGF0ZSBpcyBsZXNzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIERvbid0IHNlbmQgYW4gYXN5bmNfc3RhcnQgbWVzc2FnZSBkdXJpbmcgZG93bndhcmRzIHN0YXRlIGNoYW5nZSBpZiB0YXJnZXQKCSAgc3RhdGUgaXMgbGVzcyB0aGFuIFJFQURZCgoyMDA3LTA4LTA5IDEwOjUwOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogR2Fib3IgS2VsZW1lbiA8a2VsZW1lbmdAZ25vbWUuaHU+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9odS5wbzoKCSAgQWRkZWQgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uLgoKMjAwNy0wOC0wOSAxMDo0ODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9maS5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby91ay5wbzoKCSAgVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgoyMDA3LTA4LTA3IDE2OjA2OjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06IERpc3QgZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBEaXN0IGdzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmgKCjIwMDctMDgtMDcgMTU6MTU6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOiBEb24ndCByZWdpc3RlciB0aGUgZW51bSB0eXBlIGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUoKSBpbiB0aGUgLnR5cGVzIGZpbGUgLSBvbmx5IEdPLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgRG9uJ3QgcmVnaXN0ZXIgdGhlIGVudW0gdHlwZSBnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKCkgaW4gdGhlCgkgIC50eXBlcyBmaWxlIC0gb25seSBHT2JqZWN0IGRlcml2ZWQgdHlwZXMgYmVsb25nLgoKMjAwNy0wOC0wNyAxNDowNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogUmVtb3ZlIGNvbW1hIGZyb20gbGFzdCBlbGVtZW50IGluIGVudW0gdG8gYXZvaWQgY29tcGlsZSBlcnJvcnMgd2hlbiB1c2luZyAtcGVuZGFudGljLiBGaXhlcyAjNDY0MzY2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxhcmVuZXZpZXIgYXQgZmRuIGRvdCBmcj4KCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFJlbW92ZSBjb21tYSBmcm9tIGxhc3QgZWxlbWVudCBpbiBlbnVtIHRvIGF2b2lkIGNvbXBpbGUgZXJyb3JzIHdoZW4KCSAgdXNpbmcgLXBlbmRhbnRpYy4gRml4ZXMgIzQ2NDM2Ni4KCjIwMDctMDgtMDcgMDk6NTY6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgc29tZSBtb3JlIFRPRE8gaXRlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSBUT0RPIGl0ZW1zCgkgICogZ3N0L2dzdGJpbi5jOiAoZmluZF9tZXNzYWdlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgT3B0aW1pemUgdHJpdmlhbCBpbnRlcnNlY3Rpb24gY2FzZSBiZXR3ZWVuIGlkZW50aWNhbCBjYXBzIHBvaW50ZXJzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggc3BlbGxpbmcgYW5kIGdyYW1tYXIgbWlzdGFrZXMuCgoyMDA3LTA4LTA1IDE0OjQ4OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwby9QT1RGSUxFUy4qOiBVcGRhdGUgUE9URklMRVMuIEZpeGVzICM0NjE1OTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICAqIHBvL1BPVEZJTEVTLnNraXA6CgkgIFVwZGF0ZSBQT1RGSUxFUy4gRml4ZXMgIzQ2MTU5OS4KCjIwMDctMDgtMDMgMTk6MjU6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogRml4IGNvbmZ1c2luZyB0eXBvIGluIGRlYnVnIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggY29uZnVzaW5nIHR5cG8gaW4gZGVidWcgb3V0cHV0LgoKMjAwNy0wOC0wMyAxNTo0NzoxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogQWRkIEdzdExGT0NvbnRyb2xTb3VyY2UsIGEgY29udHJvbCBzb3VyY2UgdGhhdCBnaXZlcyB2YWx1ZXMgZm9yIHNwZWNpZmljIHRpbWVzdGFtcHMgYmFzZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6IChfY2FsY3VsYXRlX3BvcyksCgkgIChnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKSwgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfcmVzZXQpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9uZXcpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9zZXRfd2F2ZWZvcm0pLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9iaW5kKSwgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZGlzcG9zZSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgQVBJOiBBZGQgR3N0TEZPQ29udHJvbFNvdXJjZSwgYSBjb250cm9sIHNvdXJjZSB0aGF0IGdpdmVzIHZhbHVlcwoJICBmb3Igc3BlY2lmaWMgdGltZXN0YW1wcyBiYXNlZCBvbiBzZXZlcmFsIHBlcmlvZGljIHdhdmVmb3Jtcy4KCSAgRml4ZXMgIzQ1OTcxNy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cyBmb3IgR3N0TEZPQ29udHJvbFNvdXJjZS4KCjIwMDctMDgtMDMgMTQ6NDA6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE0ID09PQoKMjAwNy0wOC0wMyAxNDozOToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTQKCjIwMDctMDgtMDMgMTM6MjA6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDgtMDIgMTE6NTE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBNYWtlIHN0cmluZ3MgcGFzc2VkIHRvIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGNvbnN0YW50LCBhcyB0aGV5IHNob3VsZCBiZSAoIzQ2Mjc1MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1ha2Ugc3RyaW5ncyBwYXNzZWQgdG8gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkKCSAgY29uc3RhbnQsIGFzIHRoZXkgc2hvdWxkIGJlICgjNDYyNzUyKS4KCjIwMDctMDgtMDIgMTE6MTU6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGZvcmdldCBhYm91dCB0aGUgZmFjdCB0aGF0IHNvbWUgZWxlbWVudCB3ZW50IEFTWU5DIGV2ZW4gYWZ0ZXIgYSByZXN5bmMuIFRoaXMgbWFrZXMgdXMgcG9zdCB0aGUgQVMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRG9uJ3QgZm9yZ2V0IGFib3V0IHRoZSBmYWN0IHRoYXQgc29tZSBlbGVtZW50IHdlbnQgQVNZTkMgZXZlbiBhZnRlciBhCgkgIHJlc3luYy4gVGhpcyBtYWtlcyB1cyBwb3N0IHRoZSBBU1lOQ19ET05FIG1lc3NhZ2UgY29ycmVjdGx5LgoJICBGaXhlcyAjNDYyNTU4LgoKMjAwNy0wNy0zMSAxMTo1MTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogV2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgZmVhdHVyZSBpbiB0aGUgcmVnaXN0cnksIG1ha2Ugc3VyZSB0byBjb250aW51ZSBob2xkaW5nIGEgcmVmZXJlbmNlIHVudGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpOgoJICBXaGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBmZWF0dXJlIGluIHRoZSByZWdpc3RyeSwgbWFrZSBzdXJlIHRvCgkgIGNvbnRpbnVlIGhvbGRpbmcgYSByZWZlcmVuY2UgdW50aWwgd2UndmUgcmVwbGFjZWQgdGhlIG5hbWUgc3RyaW5nCgkgIHdpdGhpbiBvdXIgZmVhdHVyZSBoYXNoIHRhYmxlLiBNYWtlIHN1cmUgdG8gdXNlIGdfaGFzaF90YWJsZV9yZXBsYWNlCgkgIGluc3RlYWQgb2YgZ19oYXNoX3RhYmxlX2luc2VydCB0byBlbnN1cmUgdGhlIG5ldyBuYW1lIHN0cmluZyBpcyB1c2VkCgkgIGFzIGEga2V5IGluc3RlYWQgb2YgdGhlIG9sZCBvbmUgdGhhdCB3ZSdyZSBhYm91dCB0byBmcmVlLgoJICBGaXhlczogIzQ2MjA4NQoKMjAwNy0wNy0zMSAxMDoxMDoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBSZXZlcnQgcGF0Y2ggZnJvbSAjNDU5NDY2IHVudGlsIGFmdGVyIHRoZSByZWxlYXNlIGFuZCB3ZSBjYW4gd29yayBvdXQgZXhhY3RseSB3aGF0IHRoZSBwcm9ibGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfc2V0X25hbWUpOgoJICBSZXZlcnQgcGF0Y2ggZnJvbSAjNDU5NDY2IHVudGlsIGFmdGVyIHRoZSByZWxlYXNlIGFuZCB3ZSBjYW4gd29yawoJICBvdXQgZXhhY3RseSB3aGF0IHRoZSBwcm9ibGVtIGlzIChpZiBhbnkpLgoKMjAwNy0wNy0yNiAxNTo0ODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfTElDRU5TRV9VUkkgYW5kIEdTVF9UQUdfQ09QWVJJR0hUX1VSSSAoIzQ1MTkzOSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0xJQ0VOU0VfVVJJIGFuZCBHU1RfVEFHX0NPUFlSSUdIVF9VUkkgKCM0NTE5MzkpLgoKMjAwNy0wNy0yNiAxNDowNToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEluY2x1ZGUgb3VyIGJ1aWxkLXByZWZpeCBsaWJzIGFuZCBpbmNsdWRlcyBiZWZvcmUgdGhlIGdlbmVyaWMgb25lcyB0byBhdm9pZCBsaW5raW5nIGFnYWluc3QgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBJbmNsdWRlIG91ciBidWlsZC1wcmVmaXggbGlicyBhbmQgaW5jbHVkZXMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZXMgdG8KCSAgYXZvaWQgbGlua2luZyBhZ2FpbnN0IHRoZSBpbnN0YWxsZWQgbGlicyB3aGVuIHdlIHdhbnQgdGhlIGJ1aWxkLXRyZWUKCSAgb25lcy4KCjIwMDctMDctMjYgMDg6NDY6NDYgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogTWVudGlvbiB0aGF0IEdTVF9QTFVHSU5fUEFUSCBvciAtLWdzdC1wbHVnaW4tcGF0aCBtaWdodCBiZSBuZWVkZWQgaWYgcGVvcGxlIHRyeSB0byBidWkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgTWVudGlvbiB0aGF0IEdTVF9QTFVHSU5fUEFUSCBvciAtLWdzdC1wbHVnaW4tcGF0aCBtaWdodCBiZSBuZWVkZWQKCSAgaWYgcGVvcGxlIHRyeSB0byBidWlsZCBvciBpbnN0YWxsIHRoZSBleGFtcGxlIGZyb20gdGhlIHBsdWdpbgoJICB0ZW1wbGF0ZSBhZ2FpbnN0IGEgR1N0cmVhbWVyIGZyb20gcGFja2FnZSB1c2luZyB0aGUgY29uZmlndXJlCgkgIGRlZmF1bHRzLgoKMjAwNy0wNy0yNSAyMjoyOTo1NyArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46IERvY3VtZW50IC0tcHJpbnQtYWxsIGFuZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBjb21tYW5kIGxpbmUgb3B0aW9ucyBpbiBtYW4gcGFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICBEb2N1bWVudCAtLXByaW50LWFsbCBhbmQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gY29tbWFuZAoJICBsaW5lIG9wdGlvbnMgaW4gbWFuIHBhZ2UuCgoyMDA3LTA3LTI1IDE4OjQ2OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBhcGkgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgYXBpIGZ1bmN0aW9uLgoKMjAwNy0wNy0yNSAxODozNzoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS4qOiBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UoKQoJICBBZGRlZCBtZXRob2QgdG8gY2hlY2sgaWYgYW4gZWxlbWVudCBmYWN0b3J5IGltcGxlbWVudHMgYSBuYW1lZAoJICBpbnRlcmZhY2UuCgoyMDA3LTA3LTI1IDEzOjAwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBbm90aGVyIGNvbmRpdGlvbmFsIGRvYyBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgQW5vdGhlciBjb25kaXRpb25hbCBkb2MgY2hlY2suCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgIEFQSS1kb2MgZml4ZXMuCgoyMDA3LTA3LTI0IDEzOjQ0OjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUHJpbnQgZXJyb3IganVzdCBvbmNlIGFuZCB3aXRoIGFkZGl0aW9uYWwgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgUHJpbnQgZXJyb3IganVzdCBvbmNlIGFuZCB3aXRoIGFkZGl0aW9uYWwgaW5mby4KCjIwMDctMDctMjQgMTM6Mzg6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogQ2xlYW51cCB0aGUgdHlwZWZpbmRoZWxwZXIgY29kZSBhbmQgYWRkIHByaXZhdGUgZG9jIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoaGVscGVyX2ZpbmRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpLCAoYnVmX2hlbHBlcl9maW5kX3N1Z2dlc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcik6CgkgIENsZWFudXAgdGhlIHR5cGVmaW5kaGVscGVyIGNvZGUgYW5kIGFkZCBwcml2YXRlIGRvYyBjb21tZW50cy4KCjIwMDctMDctMjQgMTI6MzI6MzEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogRml4IGNhcHNmaWx0ZXIgZm9yIGNhc2VzIHdoZXJlIHRoZSBjYXBzIHNldCBvbiBjYXBzZmlsdGVyIHdpbGwgcHJvdmlkZSBhZGRpdGlvbmFsIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9zaXplKSwgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgRml4IGNhcHNmaWx0ZXIgZm9yIGNhc2VzIHdoZXJlIHRoZSBjYXBzIHNldCBvbiBjYXBzZmlsdGVyIHdpbGwgcHJvdmlkZQoJICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLgoJICBGaXhlcyAjNDQ5MTk3CgoyMDA3LTA3LTI0IDExOjMxOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IEZpeCBkb2NzIHRoYXQgcmVjb21tZW5lZCB3cm9uZyBmdW5jdGlvbiB0byB1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgRml4IGRvY3MgdGhhdCByZWNvbW1lbmVkIHdyb25nIGZ1bmN0aW9uIHRvIHVzZS4KCjIwMDctMDctMjMgMTM6MDM6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFsc28gZ2l2ZSBtZWRpYS10eXBlIGZvciB0eXBlZmluZGVycyBpbiBlbGVtZW50IG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9mZWF0dXJlcyk6CgkgIEFsc28gZ2l2ZSBtZWRpYS10eXBlIGZvciB0eXBlZmluZGVycyBpbiBlbGVtZW50IG91dHB1dC4KCjIwMDctMDctMjMgMTE6NDI6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS4qOiBTcGVlZCB1cCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKCkgYnkgdXNpbmcgYSBoYXNobWFwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9pbml0KSwgKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgU3BlZWQgdXAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCgpIGJ5IHVzaW5nIGEgaGFzaG1hcC4KCSAgRml4ZXMgIzQ1OTUwMS4KCjIwMDctMDctMjMgMTA6Mzk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IEF2b2lkIGRvdWJsZSBtZW1vcnkgdXNhZ2UgZm9yIHBsdWdpbmZlYXR1cmUgbmFtZXMuIEZpeGVzICM0NTk0NjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX3NldF9uYW1lKToKCSAgQXZvaWQgZG91YmxlIG1lbW9yeSB1c2FnZSBmb3IgcGx1Z2luZmVhdHVyZSBuYW1lcy4gRml4ZXMgIzQ1OTQ2Ni4KCjIwMDctMDctMjIgMTg6MjY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmg6IFNtYWxsIGFkZGl0aW9uIHRvIEdTVF9GTE9XX0lTX0ZBVEFMKCkgZG9jczogbWVudGlvbiB0aGF0IGVsZW1lbnRzIGRyaXZpbmcgdGhlIHBpcGVsaW5lIG1heSBuZWVkIHRvIGV4cGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBTbWFsbCBhZGRpdGlvbiB0byBHU1RfRkxPV19JU19GQVRBTCgpIGRvY3M6IG1lbnRpb24gdGhhdCBlbGVtZW50cwoJICBkcml2aW5nIHRoZSBwaXBlbGluZSBtYXkgbmVlZCB0byBleHBsaWNpdGx5IGNoZWNrIGZvciBOT1RfTElOS0VEIGFzCgkgIHdlbGwsIHNpbmNlIElTX0ZBVEFMIGRvZXNuJ3QgY292ZXIgdGhhdC4KCjIwMDctMDctMjIgMTg6MTY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCB0eXBvIGFuZCBkdXBsaWNhdGUgZW50cnkgaW4gdmlkZW8gZm9ybWF0cyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCB0eXBvIGFuZCBkdXBsaWNhdGUgZW50cnkgaW4gdmlkZW8gZm9ybWF0cyBsaXN0LgoKMjAwNy0wNy0yMiAxMjoxODo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFsc28gcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IHdoZW4gdXNpbmcgY3ViaWMgaW50ZXJwb2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEFsc28gcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IHdoZW4gdXNpbmcgY3ViaWMgaW50ZXJwb2xhdGlvbi4KCjIwMDctMDctMjEgMjE6MjA6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFdoZW4gbGluZWFybHkgaW50ZXJwb2xhdGluZyBpbnRlZ2VyIHR5cGVzLCByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgYnkgYWRkaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBXaGVuIGxpbmVhcmx5IGludGVycG9sYXRpbmcgaW50ZWdlciB0eXBlcywgcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50CgkgIGJ5IGFkZGluZyAwLjUuIERvbid0IGRvIGl0IGZvciBmbG9hdC9kb3VibGUgdHlwZXMuCgkgIEZpeGVzIHRoZSBmYWlsaW5nIGNvbnRyb2xsZXIgdGVzdCBvbiBteSBtYWNoaW5lLCB3aGljaCBpcyBzb21laG93CgkgIHJvdW5kaW5nIGRpZmZlcmVudGx5IHRoYW4gb24gdGhlIGJ1aWxkYm90cy4KCjIwMDctMDctMjAgMDc6MzY6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBCZXR0ZXIgbG9nIHBhcnNpbmcgKGNhdGVnb3JpZXMgY2FuIGhhdmUgLSkuIEFkanVzdCB0ZXh0IHZzLiBsaW5lcywgc28gdGhhdCB0aGV5IHNwYW4gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgQmV0dGVyIGxvZyBwYXJzaW5nIChjYXRlZ29yaWVzIGNhbiBoYXZlIC0pLiBBZGp1c3QgdGV4dCB2cy4gbGluZXMsIHNvCgkgIHRoYXQgdGhleSBzcGFuIHRoZSBzYW1lIHktcmFuZ2UuCgoyMDA3LTA3LTIwIDA3OjI2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogU2F2ZSBteSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9hdWRpb2Jhc2VjbGFzc2VzLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgU2F2ZSBteSB0aG91Z2h0cy4KCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgQWRkIG5vdGUgdG8gdXNlIGdfYXNzZXJ0IHR5cGUgbWFjcm9zLgoKMjAwNy0wNy0yMCAwNzowOToxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGxpYm0gY2hlY2sgYXMgd2UgdXNlIGluIGZvciBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIEFkZCBsaWJtIGNoZWNrIGFzIHdlIHVzZSBpbiBmb3IgcGx1Z2lucy4KCjIwMDctMDctMTggMTQ6MzE6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDaGVjayB0aGF0IHRoZSBzdGF0ZV9jb29raWUgaGFzbid0IGNoYW5nZWQgc2luY2UgdGhlIGNvbnRpbnVlX2Z1bmMgd2FzIHNjaGVkdWxlZC4gQXZvaWRzIHByb2JsZW1zIHdoZXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIENoZWNrIHRoYXQgdGhlIHN0YXRlX2Nvb2tpZSBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgY29udGludWVfZnVuYwoJICB3YXMgc2NoZWR1bGVkLiBBdm9pZHMgcHJvYmxlbXMgd2hlcmUgdGhlIHN0YXRlIGNoYW5nZXMgYmFjayB0bwoJICBzb21ldGhpbmcgaXQgc2hvdWxkbid0IGJlIGJlY2F1c2UgaXQgd2FzIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoKMjAwNy0wNy0xNyAwOTo0NDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBtZW1vcnkgbGVhay4gQmUgbGVzcyB2ZXJib3NlIGluIHRoZSBsb2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2NvbnN0X3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEZpeCBtZW1vcnkgbGVhay4gQmUgbGVzcyB2ZXJib3NlIGluIHRoZSBsb2cuCgoyMDA3LTA3LTE2IDE2OjQ0OjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IEFkZCBmaWxlIHRvIGN2c2lnbm9yZSBhcyBjb21tYW5kZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIEFkZCBmaWxlIHRvIGN2c2lnbm9yZSBhcyBjb21tYW5kZWQuCgoyMDA3LTA3LTE2IDE2OjA0OjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogVXNlIGEgR1N0YXRpY011dGV4IHRvIHByb3RlY3QgYWxsIGNhc2VzIHdoZXJlIGxpYmNoZWNrIGZhaWxfaWYvZmFpbF91bmxlc3MgbWFjcm9zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9kdW1teXBhZF9jaGFpbiksCgkgIChtcV9kdW1teXBhZF9ldmVudCksIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpOgoJICBVc2UgYSBHU3RhdGljTXV0ZXggdG8gcHJvdGVjdCBhbGwgY2FzZXMgd2hlcmUgbGliY2hlY2sKCSAgZmFpbF9pZi9mYWlsX3VubGVzcyBtYWNyb3MgbWlnaHQgYmUgY2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcwoJICBzaW11bHRhbmVvdXNseSB0byBhdm9pZCBlcnJvcnMgbGlrZToKCSAgImNoZWNrX3BhY2suYzoxMDc6IDotMTA4MTcyNTQwMDpCYWQgbWVzc2FnZSB0eXBlIGFyZyIKCjIwMDctMDctMTYgMTU6MTk6MDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIHRoZSBOVUxMIHN0YXRlIGJlZm9yZSBkcm9wcGluZyBvdXIgZmluYWwgcmVmZXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBzdXJlIHdlIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byB0aGUgTlVMTCBzdGF0ZSBiZWZvcmUKCSAgZHJvcHBpbmcgb3VyIGZpbmFsIHJlZmVyZW5jZS4KCjIwMDctMDctMTYgMTQ6NTU6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IE1ha2UgdGhlIHRlZSBzdHJlc3MtdGVzdCBhIGxpdHRsZSBsZXNzIHN0cmVzc2Z1bCBzbyBpdCBkb2Vzbid0IGp1c3QgdGltZSBvdXQgb24gc2xvdy1tYWNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSB0ZWUgc3RyZXNzLXRlc3QgYSBsaXR0bGUgbGVzcyBzdHJlc3NmdWwgc28gaXQgZG9lc24ndCBqdXN0CgkgIHRpbWUgb3V0IG9uIHNsb3ctbWFjaGluZXMsIGFuZCByZW1vdmUgYSBzbWFsbCByYWNlIHdoZW4gaXQncyBzdGFydGluZwoJICB1cCBieSBhZGRpbmcgYSBnZXRfc3RhdGUoKSBjYWxsLgoKMjAwNy0wNy0xNiAxMjozNjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBBdm9pZCByZWFkaW5nIHJlZ2lzdHJ5IHR3aWNlIG9uIHN0YXJ0dXAuIEZpeGVzICM0NTczMjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQXZvaWQgcmVhZGluZyByZWdpc3RyeSB0d2ljZSBvbiBzdGFydHVwLiBGaXhlcyAjNDU3MzIyLgoKMjAwNy0wNy0xMyAxNDoxMToyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwa2djb25maWcvOiBTdWJzdGl0dXRlIHRoZSBDRkxBR1MgZm9yIGxpYmNoZWNrIGludG8gb3VyIC5wYyBmaWxlIHRvbyBzbyB0aGF0IGRlcGVuZGVudCBtb2R1bGVzIHdpbGwgcGljayBpdCB1cCBwcm9wZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBTdWJzdGl0dXRlIHRoZSBDRkxBR1MgZm9yIGxpYmNoZWNrIGludG8gb3VyIC5wYyBmaWxlIHRvbyBzbyB0aGF0CgkgIGRlcGVuZGVudCBtb2R1bGVzIHdpbGwgcGljayBpdCB1cCBwcm9wZXJseSBpZiBsaWJjaGVjayBpcyBpbnN0YWxsZWQKCSAgaW50byBzb21lIG90aGVyIHByZWZpeC4KCjIwMDctMDctMTMgMTM6NDk6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZXZlcnQgdGhlIHBrZy1jb25maWcgY2hlY2sgZm9yIGxpYmNoZWNrLCBzaW5jZSBpdCBwdWxscyBpbiB0aGUgd3Jvbmcgbm9uLVBJQyBsaWJjaGVjay5hIG9uIFVidW50dSBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0IHRoZSBwa2ctY29uZmlnIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2UgaXQgcHVsbHMgaW4gdGhlCgkgIHdyb25nIG5vbi1QSUMgbGliY2hlY2suYSBvbiBVYnVudHUgYW5kIHByb2JhYmx5IEZlZG9yYSB0b28uIFdlIG5lZWQKCSAgYSBwcm9wZXIgc29sdXRpb24sIGVpdGhlciBmcm9tIHRoZSBjaGVjayBwcm9qZWN0LCBvciBzb21ldGhpbmcgZWxzZS4KCjIwMDctMDctMTIgMTE6MTA6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIHBrZy1jb25maWcgdG8gbG9jYXRlIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBjaGVjay4KCjIwMDctMDctMTAgMjA6MTA6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBkb2Mgc3ludGF4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBGaXggZG9jIHN5bnRheC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIGRlcHJlY2F0aW9uIGd1YXJkcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvbid0IGRvY3VtZW50IG9iamVjdCAodGhpcyBpcyBpbXBsaWNpdGx5IHByaXZhdGUpLgoKMjAwNy0wNy0wOCAxNDoxMTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogV2hlbiBkZXNlcmlhbGlzaW5nIGZvbz1iYXIgd2l0aG91dCBhIHR5cGUgY2FzdCwgY2hlY2sgaWYgaXQncyBhIGJvb2xlYW4gYmVmb3JlIGZhbGxpbmcgYmFjayB0byBhIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgV2hlbiBkZXNlcmlhbGlzaW5nIGZvbz1iYXIgd2l0aG91dCBhIHR5cGUgY2FzdCwgY2hlY2sgaWYgaXQncyBhCgkgIGJvb2xlYW4gYmVmb3JlIGZhbGxpbmcgYmFjayB0byBhIHN0cmluZyB0eXBlLCBvdGhlcndpc2UgdGhpbmdzIGxpa2UKCSAgYXVkaW90ZXN0c3JjICEgYXVkaW8veC1yYXctaW50LHNpZ25lZD10cnVlICEgZmFrZXNpbmsgd29uJ3Qgd29yaywKCSAgYmVjYXVzZSB0aGUgZmlsdGVyY2FwcyBlbmQgdXAgaGF2aW5nIGEgc2lnbmVkPShzdHJpbmcpdHJ1ZSBmaWVsZCwKCSAgd2hpY2ggY2F1c2VzIHByb2JsZW1zIGxhdGVyIHdoZW4gaW50ZXJzZWN0aW9uIGNhcHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDA3LTA3LTA2IDIxOjUwOjAyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBSZWZhY3RvciBHc3RDb250cm9sbGVyIGludG8gdGhlIGNvcmUgY29udHJvbGxlciB3aGljaCBjYW4gdGFrZSBhIEdzdENvbnRyb2xTb3VyY2UgZm9yIHByb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2FkZF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKSwKCSAgKGdzdF9jb250cm9sbGVyX2ZpbmRfY29udHJvbGxlZF9wcm9wZXJ0eSksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ldyksIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllcyksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHlfZGlzYWJsZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Rpc2FibGVkKSwgKGdzdF9jb250cm9sbGVyX3NldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfY29udHJvbF9zb3VyY2UpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfYWxsKSwgKGdzdF9jb250cm9sbGVyX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KSwgKGdzdF9jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9nZXRfdmFsdWUpLAoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2dldF92YWx1ZV9hcnJheSksIChnc3RfY29udHJvbF9zb3VyY2VfYmluZCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9maXJzdF92YWx1ZSksCgkgIChfaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfYm9vbGVhbl92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSksCgkgIChfaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLCAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfYm9vbGVhbl92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9yZXNldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9uZXcpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9iaW5kKSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2NvbXBhcmUpLCAoZ3N0X2NvbnRyb2xfcG9pbnRfZmluZCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfdW5zZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfdW5zZXRfYWxsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9hbGwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2NvdW50KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZGlzcG9zZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgQVBJOiBSZWZhY3RvciBHc3RDb250cm9sbGVyIGludG8gdGhlIGNvcmUgY29udHJvbGxlciB3aGljaCBjYW4gdGFrZQoJICBhIEdzdENvbnRyb2xTb3VyY2UgZm9yIHByb3ZpZGluZyBhY3R1YWwgdmFsdWVzIGZvciB0aW1lc3RhbXBzLgoJICBJbXBsZW1lbnQgYSBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlIGFuZCB1c2UgdGhpcyBmb3IgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSwgZGVwcmVjYXRlIGEgYnVuY2ggb2YgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdyBoYW5kbGVkCgkgIGJ5IEdzdENvbnRyb2xTb3VyY2Ugb3IgR3N0SW50ZXJwb2xhdGlvbkNvbnRyb2xTb3VyY2UuCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSB0aGUgY29udHJvbGxlciBjb21wbGV0ZWx5IG9yIG9ubHkgZm9yCgkgIHNwZWNpZmljIHByb3BlcnRpZXMuIEZpeGVzICM0NTA3MTEuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgdG8gdGhlIGRvY3MuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgUG9ydCB1bml0IHRlc3QgYW5kIGV4YW1wbGUgdG8gdGhlIG5ldyBBUEkgYW5kIGFkZCBzb21lIG5ldwoJICB1bml0IHRlc3RzLgoKMjAwNy0wNy0wNSAwOTowNjowMiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBJbXBsZW1lbnQgbm9uLWRlZmF1bHQgR3N0UGFkSW50TGlua0Z1bmN0aW9uIGZvciBtdWx0aXF1ZXVlIHBhZHMgc28gdGhhdCB0aGUgcGlwZWxpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0X2ludGVybmFsX2xpbmtzKSwgKGFwcGx5X2J1ZmZlciksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEltcGxlbWVudCBub24tZGVmYXVsdCBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gZm9yIG11bHRpcXVldWUgcGFkcyBzbyB0aGF0CgkgIHRoZSBwaXBlbGluZSBsYXlvdXQgY2FuIGJlIHRyYWNrZWQgY29ycmVjdGx5LiBGaXhlcyAjNDUzNzMyLgoKMjAwNy0wNy0wNSAwODo0Mjo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFNpbXBsaXR5IC0tZXh0cmEtZGlyIGFzIGd0a2RvYyBzY2FucyByZWN1cnNpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgU2ltcGxpdHkgLS1leHRyYS1kaXIgYXMgZ3RrZG9jIHNjYW5zIHJlY3Vyc2l2ZWx5LgoKMjAwNy0wNy0wMyAxNzowMTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogV2hlbiB3ZSBnb3QgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIHBvaW50IGluIHdhaXRpbmcgZm9yIHByZXJvbGwgd2hlbiBzaHV0dGluZyBkb3duLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgV2hlbiB3ZSBnb3QgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIHBvaW50IGluIHdhaXRpbmcgZm9yIHByZXJvbGwgd2hlbgoJICBzaHV0dGluZyBkb3duLgoKMjAwNy0wNy0wMyAxNjoyNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEJlIGEgbG90IHNtYXJ0ZXIgd2hlbiBkZWNpZGluZyB3aGF0IHNyY3BhZCB0byB1c2UgZm9yIHByb3h5aW5nIHRoZSBidWZmZXJfYWxsb2MuIEFsc28gaGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2ZpbmRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF90ZWVfZG9fcHVzaCksIChjbGVhcl9wYWRzKSwgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfdGVlX2NoYWluKToKCSAgQmUgYSBsb3Qgc21hcnRlciB3aGVuIGRlY2lkaW5nIHdoYXQgc3JjcGFkIHRvIHVzZSBmb3IgcHJveHlpbmcKCSAgdGhlIGJ1ZmZlcl9hbGxvYy4gQWxzbyBoYW5kbGUgcGFkIGFkZGVkL3JlbW92ZWQgd2hlbiBkb2luZyBzby4KCSAgRml4ZXMgIzM1Nzk1OS4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IHBhZHMgd2UgYWxyZWFkeSBwdXNoZWQgb24gaW4gY2FzZSB3ZSBoYXZlIHBhZHMKCSAgYWRkZWQvcmVtb3ZlZCB3aGlsZSBwdXNoaW5nLiBGaXhlcyAjMzc0NjM5CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChoYW5kb2ZmKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRlZV9zdWl0ZSk6CgkgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcGFkIHJlc3luYy4KCjIwMDctMDctMDEgMjE6MzE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vbmwucG86CgkgICogcG8vc3YucG86CgkgIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoKMjAwNy0wNy0wMSAyMTozMDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIG5ldyBGaW5uaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRpb24gYnk6IFRvbW1pIFZhaW5pa2FpbmVuIDxUb21taS5WYWluaWthaW5lbkBpa2kuZmk+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9maS5wbzoKCSAgQWRkZWQgbmV3IEZpbm5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA2LTI4IDExOjI1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gZmlndXJpbmcgb3V0IHdoZW4gYSBxdWV1ZSBpcyBmaWxsZWQsIHVzZSBvdXIgaW50ZXJuYWwgdGltZSBlc3RpbWF0ZSBiYXNlZCBvbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKToKCSAgV2hlbiBmaWd1cmluZyBvdXQgd2hlbiBhIHF1ZXVlIGlzIGZpbGxlZCwgdXNlIG91ciBpbnRlcm5hbCB0aW1lIGVzdGltYXRlCgkgIGJhc2VkIG9uIHNlZ21lbnRzLCBqdXN0IGxpa2UgY2hlY2tfZnVsbCBkb2VzLgoKMjAwNy0wNi0yNyAxMTo0Nzo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIDQzMDY4MiBjbG9zZWQgYnkgcHJldmlvdXMgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgNDMwNjgyIGNsb3NlZCBieSBwcmV2aW91cyBjb21taXQuCgoyMDA3LTA2LTI3IDExOjQzOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBSZW1vdmUgMyBkby1ub3RoaW5nIG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICBSZW1vdmUgMyBkby1ub3RoaW5nIG1ldGhvZHMuCgoyMDA3LTA2LTI3IDExOjI0OjA4ICswMDAwICBUaW0gQW5ndXMgPHRpbUBuZ3VzLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBjb3B5IHdoZW4gc2V0dGluZyAiY2FwcyIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGltIEFuZ3VzIDx0aW0gYXQgbmd1cyBkb3QgbmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBjb3B5IHdoZW4gc2V0dGluZyAiY2FwcyIuCgkgIEZpeCBkb2N1bWVudGF0aW9uIHRvIGNsYXJpZnkgdGhpcyBiZWhhdmlvdXIuIEZpeGVzICM0NDk0MTQuCgoyMDA3LTA2LTI3IDEwOjEyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgZW1wdHkgaW5zdGFuY2VfaW5pdCgpIGZ1bmN0aW9ucyB0byBzYXZlIHJlbG9jcyBhbmQgbGVzc2VuIHRoZSBub2lzZS4gUmVtb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIHByb3RvdHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5faW5pdCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9pbml0KToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfaW5pdCk6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2Jhc2VfaW5pdCk6CgkgIFJlbW92ZSBlbXB0eSBpbnN0YW5jZV9pbml0KCkgZnVuY3Rpb25zIHRvIHNhdmUgcmVsb2NzIGFuZCBsZXNzZW4gdGhlCgkgIG5vaXNlLiBSZW1vdmUgc29tZSBvZiB0aGUgZnVuY3Rpb24gcHJvdG90eXBlcyB0aGF0IGFyZSBkb3VibGVkIGJ5CgkgIEdfREVGSU5FX1RZUEUuCgoyMDA3LTA2LTI3IDA5OjM0OjAxICswMDAwICDDiXRpZW5uZSBOb3JlYXUtSMOpYmVydCA8ZXRpZW5uZUBkZWVwdW5kZXIub3JnPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBwZWVyIGFuZCBkaXJlY3Rpb24gaW4gdGhlIFhNTCBzZXJpYWxpc2F0aW9uIG9mIGdob3N0cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiDDiXRpZW5uZSBOb3JlYXUtSMOpYmVydCA8ZXRpZW5uZSBhdCBkZWVwdW5kZXIgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2F2ZV90aHlzZWxmKToKCSAgQWRkIHBlZXIgYW5kIGRpcmVjdGlvbiBpbiB0aGUgWE1MIHNlcmlhbGlzYXRpb24gb2YgZ2hvc3RwYWRzLgoJICBGaXhlcyAjNDQ5MjI2LgoKMjAwNy0wNi0yNiAxNjoyNDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBQcmVzZXJ2ZSB1c2VmdWwgaW5mb3JtYXRpb24sIHRoYW5rcyBUaW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUHJlc2VydmUgdXNlZnVsIGluZm9ybWF0aW9uLCB0aGFua3MgVGltLgoKMjAwNy0wNi0yNiAxNDo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogVGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHdoZW4gdXBkYXRpbmcgdGhlIGZpbGwgbGV2ZWwgc28gd2UgZG9uJ3QgZ2V0IGNvbmZ1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLCAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfbG9vcCksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksICh3YWtlX3VwX25leHRfbm9uX2xpbmtlZCksCgkgIChjb21wdXRlX2hpZ2hfaWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBUYWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgd2hlbiB1cGRhdGluZyB0aGUgZmlsbCBsZXZlbCBzbyB3ZSBkb24ndCBnZXQKCSAgY29uZnVzZWQuCgkgIEFmdGVyIGFwcGx5aW5nIGEgYnVmZmVyIG9yIGV2ZW50IG9uIHRoZSBzcmMgcGFkIHNlZ21lbnQsIG1ha2Ugc3VyZSB0bwoJICBjYWxsIGdzdF9kYXRhX3F1ZXVlX2xpbWl0c19jaGFuZ2VkKCkgdG8gZ2V0IHRoZSBkYXRhIHF1ZXVlIHRvIHVuYmxvY2sKCSAgYW5kIGNoZWNrIHRoZSBmaWxsZWQgc3RhdGUgYWdhaW4uCgkgIFJld29yayB0aGUgbm90LWxpbmtlZCBwYWQgaGFuZGxpbmcgc28gdGhlIGxvZ2ljIGlzIHRoYXQgbm90LWxpbmtlZAoJICBwYWRzIGNhbiBwdXNoIGFzIGZhc3QgYXMgdGhleSBsaWtlLCBidXQgb25seSBzbyB0aGV5IG5ldmVyIGdldAoJICBhaGVhZCBvZiBhbnkgbGlua2VkIHBhZHMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfc2lua3BhZF90b19zcmNwYWQpLAoJICAobXFfZHVtbXlwYWRfZ2V0Y2FwcyksIChtcV9kdW1teXBhZF9jaGFpbiksIChtcV9kdW1teXBhZF9ldmVudCksCgkgIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpLCAoR1NUX1NUQVJUX1RFU1QpLCAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEFkZCBhIHRlc3QgdG8gY2hlY2sgdGhhdCBub3QtbGlua2VkIHBhZHMgYWx3YXlzIHN0YXkgYmVoaW5kCgkgIGxpbmtlZCBwYWRzLgoKMjAwNy0wNi0yNiAxMTo1NzoyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBTb21lIHVwZGF0ZXMgdG8gdGhlIHJlbGVhc2UgcHJvY2VkdXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBTb21lIHVwZGF0ZXMgdG8gdGhlIHJlbGVhc2UgcHJvY2VkdXJlLgoKMjAwNy0wNi0yNiAwODoyNjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IE1pY3Jvb3B0aW1pemF0aW9uIHRoYXQgc2F2ZXMgc3R1bm5pbmcgODAgYnl0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoX19nc3RfZWxlbWVudF9kZXRhaWxzX2NsZWFyKToKCSAgTWljcm9vcHRpbWl6YXRpb24gdGhhdCBzYXZlcyBzdHVubmluZyA4MCBieXRlcy4KCjIwMDctMDYtMjUgMTI6MzU6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBkb2NzIHdpdGggY2FwcyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgVXBkYXRlIGRvY3Mgd2l0aCBjYXBzIGluZm8uCgoyMDA3LTA2LTIzIDIyOjU2OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvL2l0LnBvOiBVcGRhdGVkIEl0YWxpYW4gdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2l0LnBvOgoJICBVcGRhdGVkIEl0YWxpYW4gdHJhbnNsYXRpb24uCgoyMDA3LTA2LTIzIDExOjE5OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZml4IHdpbjMyIGFyY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB3aW4zMiBhcmNoCgoyMDA3LTA2LTIzIDExOjE4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIDgwIGxpbmUgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA4MCBsaW5lIGZpeAoKMjAwNy0wNi0yMyAxMToxNToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSBWaWV0bmFtZXNlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICAqIHBvL3ZpLnBvOgoJICBVcGRhdGUgVmlldG5hbWVzZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTA2LTIxIDIyOjM3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZW1vdmUgdW51c2VkIHNpZ25hbCBlbnVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFJlbW92ZSB1bnVzZWQgc2lnbmFsIGVudW0uCgoyMDA3LTA2LTIxIDE4OjAwOjU4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgdXBkYXRlIE1BSU5UQUlORVJTIGZpbGUgdG8gcmVmbGVjdCBjdXJyZW50IHJlYWxpdGllcyBiZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBNQUlOVEFJTkVSUyBmaWxlIHRvIHJlZmxlY3QgY3VycmVudCByZWFsaXRpZXMgYmV0dGVyCgoyMDA3LTA2LTIxIDE2OjM5OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEJlZWYgdXAgYW5kIGluY2x1ZGUgdGhlIGRvY3MgZm9yIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsIGFuZCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgYW5kIGFkZCB0aGUgQS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCk6CgkgIEJlZWYgdXAgYW5kIGluY2x1ZGUgdGhlIGRvY3MgZm9yIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsIGFuZAoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgYW5kIGFkZCB0aGUgQVBJIGtleXdvcmQKCSAgaW4gdGhlIENoYW5nZUxvZy4KCjIwMDctMDYtMjEgMTQ6MzU6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IHNldHRpbmcgbWF4LSogcHJvcGVydGllcyBhZnRlciBhZGRpbmcgcXVldWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKToKCSAgRml4IHNldHRpbmcgbWF4LSogcHJvcGVydGllcyBhZnRlciBhZGRpbmcgcXVldWVzLgoJICBVc2UgSVNfRklMTEVEIGZvciBjaGVja2luZyB2aXNpYmxlIGl0ZW1zLgoJICBTaWduYWwgb3ZlcnJ1biBpZiBtdWx0aXBsZSBxdWV1ZXMgb3ZlcnJ1bi4KCSAgQWRkIGV4dHJhIGRlYnVnIG91dHB1dC4KCSAgUGF0Y2ggYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoyMDA3LTA2LTIxIDE0OjI5OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBTYXZpbmcgcmVsb2NhdGlvbnMgZm9yIEdUeXBlSW5mbyBhbmQgR3N0RWxlbWVudERldGFpbHMuIEZpeGVzICM0Mzc0NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9xdWV1ZV9jaGFpbik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIFNhdmluZyByZWxvY2F0aW9ucyBmb3IgR1R5cGVJbmZvIGFuZCBHc3RFbGVtZW50RGV0YWlscy4gRml4ZXMgIzQzNzQ1Ny4KCjIwMDctMDYtMjEgMDk6NDY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCB0eXBvIGluIGlhbmEub3JnIFVSSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggdHlwbyBpbiBpYW5hLm9yZyBVUkkuCgoyMDA3LTA2LTE5IDIxOjU4OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHRlc3Rfc3RhdGVfY2hhbmdlX3JldHVybnMpOiBFbmFibGUgcHVsbC1tb2RlIHRlc3RzIG5vdyB0aGF0CgkgIGJhc2VzaW5rIGhhcyBiZWVuIGZpeGVkLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKToKCSAgQ2hhbmdlZCBmcm9tIGdzdF9iYXNlX3NpbmtfaXNfcHJlcm9sbGVkLCByZXZlcnNpbmcgdGhlIHNlbnNlIG9mCgkgIHRoZSByZXR1cm4gdmFsdWUuIFJldHVybnMgRkFMU0UgYWxzbyBpZiB0aGUgc2luayBpcyBpbiBwdWxsIG1vZGUsCgkgIGluIHdoaWNoIGNhc2UgaXQgbmVlZHMgbm8gcHJlcm9sbC4KCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnksIGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogVXBkYXRlIGZvcgoJICBuZWVkc19wcmVyb2xsIGNoYW5nZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogQWRkIGEgY2FzZSBmb3IgUkVBRFlfVE9fUEFVU0VEIGFmdGVyCgkgIGNoYWluaW5nIHVwLCBpbiB3aGljaCB3ZSByZXR1cm4gU1VDQ0VTUyBkaXJlY3RseSBpZiB3ZSBhY3RpdmF0ZWQKCSAgaW4gcHVsbCBtb2RlIGluc3RlYWQgb2YgQVNZTkMuIEludm9sdmVzIGNvdW50ZXJpbmcgYW4gYXN5bmNfc3RhcnQKCSAgbWVzc2FnZSBzZW50IGJlZm9yZSBjaGFpbmluZyB1cDsgbm90IHN1cmUgaWYgdGhpcyBpcyBjb3JyZWN0LCBpbgoJICBhbiBpZGVhbCB3b3JsZCB3ZSBvbmx5IHNlbmQgYXN5bmMtc3RhcnQgd2hlbiBhY3RpdmF0aW5nIGluIHB1c2gKCSAgbW9kZS4KCjIwMDctMDYtMTkgMjE6Mjg6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHRlc3Rfc3RhdGVfY2hhbmdlX3JldHVybnMpOiBOZXcgdGVzdCwgcGFydGlhbGx5IGRpc2FibGVkIHVudGlsCgkgIGJhc2VzaW5rIGlzIGZpeGVkLgoKMjAwNy0wNi0xOSAxNjowNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggZXZlbnQgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBGaXggZXZlbnQgbGVhay4KCjIwMDctMDYtMTkgMTA6NDE6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1vdmUgdGhlIGNvbW1vbiBjb2RlIGZvciBwb3N0aW5nIHN0YXRlLWNoYW5nZSBtZXNzYWdlcyBpbnRvIG9uZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTW92ZSB0aGUgY29tbW9uIGNvZGUgZm9yIHBvc3Rpbmcgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIGludG8KCSAgb25lIGZ1bmN0aW9uLgoJICBCcm9hZGNhc3QgdGhlIHN0YXRlIHNpZ25hbCBhZnRlciB3ZSBwb3N0ZWQgdGhlIG1lc3NhZ2VzLgoJICBNYXJrIHRoZSBiaW4gYXMgYnVzeSB3aGVuIGl0J3MgZG9pbmcgYSBzdGF0ZS1jaGFuZ2UuCgkgIE1ha2Ugc3VyZSBhc3luYy1zdGFydC9kb25lIG1lc3NhZ2VzIGRvbid0IGludGVyZmVyZSB3aXRoIHRoZSBiaW4ncwoJICBzdGF0ZSB3aGVuIGl0J3MgYnVzeS4KCSAgQWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSwgbGV0IHRoZSBiaW4gY2hlY2sgd2hpY2ggZWxlbWVudHMgY29tcGxldGVkIHRoZQoJICBzdGF0ZSBjaGFuZ2Ugd2hpbGUgaXQgd2FzIGJ1c3kgc28gdGhhdCBpdCBjYW4gdXBkYXRlIGl0cyBzdGF0ZS4KCjIwMDctMDYtMTkgMTA6Mzg6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogQWRkIGEgbm90ZSBhYm91dCB1cGRhdGluZyB0aGUgZG9hcCBmaWxlIHRvIHRoZSByZWxlYXNlIGNoZWNrbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBBZGQgYSBub3RlIGFib3V0IHVwZGF0aW5nIHRoZSBkb2FwIGZpbGUgdG8gdGhlIHJlbGVhc2UgY2hlY2tsaXN0CgoyMDA3LTA2LTE4IDE2OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IE1ha2Ugc3VyZSB3ZSBkb24ndCByZWZlcmVuY2UgdGhlIGJ1ZmZlci9ldmVudCBhZnRlciB3ZSBoYXZlIGdpdmVuIGF3YXkgb3duZXJzaGlwIGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHJlZmVyZW5jZSB0aGUgYnVmZmVyL2V2ZW50IGFmdGVyIHdlIGhhdmUgZ2l2ZW4gYXdheQoJICBvd25lcnNoaXAgaW4gdGhlIHF1ZXVlLgoKMjAwNy0wNi0xOCAxNToxNTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBVcGRhdGUgcXVldWUgc3RhdGUgX2FmdGVyXyBhZGRpbmcgdGhlIGl0ZW0gaW4gdGhlIHF1ZXVlIGJlY2F1c2UgZWxzZSB3ZSBjb3VsZCBlbmQgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgVXBkYXRlIHF1ZXVlIHN0YXRlIF9hZnRlcl8gYWRkaW5nIHRoZSBpdGVtIGluIHRoZSBxdWV1ZSBiZWNhdXNlIGVsc2Ugd2UKCSAgY291bGQgZW5kIHVwIGJlaW5nIGZ1bGwgd2l0aG91dCB0aGUgZWxlbWVudCBhZGRlZCB5ZXQuCgoyMDA3LTA2LTE4IDE1OjEyOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBJbW1lZGlhdGx5IGNvbW1pdCB0aGUgdG9wbGV2ZWwgYmluIHN0YXRlIHdoZW4gcmVjZWl2aW5nIGFuIGFzeW5jLWRvbmUgbWVzc2FnZS4gVGhpcyBlbmFibGVzIHVzIHRvIGF2b2lkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyksCgkgIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgSW1tZWRpYXRseSBjb21taXQgdGhlIHRvcGxldmVsIGJpbiBzdGF0ZSB3aGVuIHJlY2VpdmluZyBhbiBhc3luYy1kb25lCgkgIG1lc3NhZ2UuIFRoaXMgZW5hYmxlcyB1cyB0byBhdm9pZCBzcGF3bmluZyBhIHRocmVhZCB0byBjb21taXQgdGhlIHN0YXRlCgkgIGluIHNvbWUgY29tbW9uIGNhc2VzIGFuZCBpdCBhbHNvIGF2b2lkcyBzb21lIHJhY2VzLgoJICBBdm9pZCBzcGF3bmluZyBhIHN0YXRlIHRocmVhZCB3aGVuIGFkZGluZy9yZW1vdmluZyBhc3luYyBlbGVtZW50cyB0byBhCgkgIHRvcGxldmVsIGJpbi4gSW5zdGVhZCB3ZSBpbW1lZGlhdGx5IHVwZGF0ZSB0aGUgYmluIHN0YXRlLgoJICBHZXQgcmlkIG9mIGl0ZXJhdGluZyBhbGwgdGhlIGNoaWxkcmVuIHdoZW4gZ2V0dGluZyB0aGUgc3RhdGUgaW4gdGhlIGJpbgoJICBiZWNhdXNlIGl0IGlzIG5vdyBhbHdheXMgdXAtdG8tZGF0ZS4KCSAgRml4IGJ1ZyB3aGVyZSBsb2NrZWQgZWxlbWVudHMgd291bGQgYWx3YXlzIHJldHVybiBfU1VDQ0VTUyBldmVuIGl0IHRoZXkKCSAgcmV0dXJuZWQgTk9fUFJFUk9MTCBiZWZvcmUgYmVpbmcgbG9ja2VkLgoJICBGaXggdGhlIG9yZGVyIG9mIHRoZSBzdGF0ZV9jaGFuZ2UsIGFzeW5jLXN0YXJ0L2RvbmUgbWVzc2FnZXMgdGhhdCB3YXMKCSAgc29tZXRpbWVzIGluY29ycmVjdC4KCSAgTWFyayB0aGUgc3RhdGVfZGlydHkgZmllbGQgYXMgZGVwcmVjYXRlZCwgd2UgZG9uJ3QgbmVlZCBpdCBhbnltb3JlIGFzIHdlCgkgIGFyZSBhbHdheXMgdXAtdG8tZGF0ZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpOgoJICBTbWFsbCBkZWJ1ZyBpbnByb3ZlbWVudHMuCgkgIFJldHVybiB0aGUgcHJldmlvdXMgZWxlbWVudCBzdGF0ZSByZXR1cm4gd2hlbiBub3RoaW5nIGlzIHBlbmRpbmcgaW5zdGVhZAoJICBvZiBibGluZGx5IHJldHVybmluZyBTVUNDRVNTLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBhZF9ibG9ja2VkX2NiKSwKCSAgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCBhIHdob2xlIGJ1bmNoIG9mIG5ldyB0ZXN0Y2FzZXMuCgoyMDA3LTA2LTE3IDE3OjI2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgIFVwZGF0ZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTA2LTE1IDE0OjM3OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHR5cG8gaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG8gaW4gdGhlIGRvY3MuCgoyMDA3LTA2LTE1IDExOjQ5OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgoyMDA3LTA2LTE1IDExOjM1OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IHVzZSBHU2xpY2UgYmVjYXVzZSB3ZSBkb24ndCBkZXBlbmQgb24gPj0gMi4xMCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpOgoJICBEb24ndCB1c2UgR1NsaWNlIGJlY2F1c2Ugd2UgZG9uJ3QgZGVwZW5kIG9uID49IDIuMTAgeWV0LgoKMjAwNy0wNi0xNSAxMTowOTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBSZW1vdmUgZGVidWcgcHJpbnRmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpOgoJICBSZW1vdmUgZGVidWcgcHJpbnRmLgoKMjAwNy0wNi0xNSAxMTowMDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLio6IFZhcmlvdXMgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9jbGVhbnVwKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19lbXB0eSksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfZmx1c2hpbmcpLCAoZ3N0X2RhdGFfcXVldWVfcHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9wb3ApLCAoZ3N0X2RhdGFfcXVldWVfZHJvcF9oZWFkKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xpbWl0c19jaGFuZ2VkKSwgKGdzdF9kYXRhX3F1ZXVlX2dldF9sZXZlbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgQWRkZWQgbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgbGV2ZWxzIGFuZCB0byBpbmZvcm0gdGhlIHF1ZXVlIHRoYXQgdGhlCgkgICdmdWxsJyBsaW1pdHMgY2hhbmdlZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9zdGVhbF9vYmplY3QpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldGNhcHMpLCAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfcXVlcnkpLCAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgS2VlcCB0cmFjayBvZiB0aW1lIGluIHRoZSBxdWV1ZSBieSBtZWFzdXJpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgoJICBydW5uaW5nX3RpbWUgb24gaW5wdXQgYW5kIG91dHB1dC4gVGhpcyBnaXZlcyBtb3JlIGFjY3VyYXRlIHJlc3VsdHMgYW5kCgkgIGNhbiBjb21wZW5zYXRlIGZvciBzZWdtZW50cyBjb3JyZWN0bHkuCgkgIE1ha2UgYSBxdWV1ZSBieSBkZWZhdWx0IG9ubHkgNSBidWZmZXJzIGRlZXAuIFdlIHdpbGwgbm93IGluY3JlYXNlIHRoZQoJICBidWZmZXIgc2l6ZSBkZXBlbmRpbmcgb24gdGhlIGZpbGxlZG5lc3Mgb2YgdGhlIG90aGVyIHF1ZXVlcy4KCSAgRmFjdG9yIG91dCBjb21tb25nIGZsdXNoIGNvZGUuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBhZGQgYWRkaXRpb25hbCByZWZjb3VudHMgdG8gYnVmZmVycyB3aGVuIHdlIGNhbiBhdm9pZAoJICBpdC4KCSAgUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gZGlmZmVyZW50bHkuCgkgIFVzZSBHU2xpY2UgZm9yIGludGVybWVkaWF0ZSBHc3RNdWx0aVF1ZXVlSXRlbXMuCgkgIEtlZXAgdHJhY2sgb2YgRU9TLgoJICBSZXNpemUgcXVldWVzIG9uIG92ZXIgYW5kIHVuZGVycnVucyBiYXNlZCBvbiBmaWxsZWQgbGV2ZWwgb2Ygb3RoZXIKCSAgcXVldWVzLgoJICBXaGVuIGNoZWNraW5nIGlmIHRoZSBxdWV1ZSBpcyBmaWxsZWQsIHByZWZlciB0byBtZWFzdXJlIGluIHRpbWUgaWYgd2UKCSAgY2FuIGFuZCBmYWxsIGJhY2sgdG8gYnl0ZXMgd2hlbiBubyB0aW1lIGlzIGtub3duLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRml4IHJldHVybiB2YWx1ZS4KCjIwMDctMDYtMTUgMTA6NDg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogV29yayBhcm91bmQgdGhlIGJyb2tlbm5lc3Mgb2YgdGhlIGV2ZW50IHZtZXRob2QgaW4gYmFzZXRyYW5zZm9ybS4gUHJlZmVyIHRvIHJldHVybiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCk6CgkgIFdvcmsgYXJvdW5kIHRoZSBicm9rZW5uZXNzIG9mIHRoZSBldmVudCB2bWV0aG9kIGluIGJhc2V0cmFuc2Zvcm0uIFByZWZlcgoJICB0byByZXR1cm4gVFJVRSB3aGVuIHRoZSBzdWJjbGFzcyByZXR1cm5lZCBGQUxTRSAobWVhbmluZyBkb24ndCBmb3J3YXJkCgkgIHRoZSBldmVudCkuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENsYXJpZnkgdGhlIGRvY3MuCgoyMDA3LTA2LTE1IDEwOjQzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHNldHVwX3BpcGVsaW5lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA2LTE1IDA3OjI3OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEFkZGVkIG1vcmUgZm9ybWF0cyB0byBjYXBzIHRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEFkZGVkIG1vcmUgZm9ybWF0cyB0byBjYXBzIHRhYmxlLgoKMjAwNy0wNi0xNSAwNzowMjowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBSZW1vdmUgY3J1ZnkgY29kZS4gR09wdGlvbiBkb2VzIG5vdCBuZWVkIHRoaXMgd29ya2Fyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFJlbW92ZSBjcnVmeSBjb2RlLiBHT3B0aW9uIGRvZXMgbm90IG5lZWQgdGhpcyB3b3JrYXJvdW5kLgoKMjAwNy0wNi0xNCAyMDoyOTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCB3cm9uZyBnZXR0ZXIgZm9yIGVudW1zIGluIGNvbnRyb2xsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgIEZpeCB3cm9uZyBnZXR0ZXIgZm9yIGVudW1zIGluIGNvbnRyb2xsZXIuCgoyMDA3LTA2LTE0IDE3OjM2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogSW50ZXJjZXB0IGNyaXRpY2FscyBhbmQgd2FybmluZ3MgaW4gdGhlIEdzdC1QaG9ub24gbG9nIGRvbWFpbiwgc28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KToKCSAgSW50ZXJjZXB0IGNyaXRpY2FscyBhbmQgd2FybmluZ3MgaW4gdGhlIEdzdC1QaG9ub24gbG9nIGRvbWFpbiwgc28KCSAgQVNTRVJUX0NSSVRJQ0FMKCkgZXRjLiBjYW4gYmUgdXNlZCBpbiBnc3QtcGhvbm9uJ3MgdW5pdCB0ZXN0cyBhcwoJICB3ZWxsLgoKMjAwNy0wNi0xNCAxNjowNzowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYXJhbXNwZWNzLmM6IFNpbmNlIHRoaXMgZmlsZSBkb2Vzbid0IGluY2x1ZGUgImdzdC5oIiBpdCB3aWxsIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWNyb3MgdGhhdCBkaXNhYmxlIEdTVF9MT0cgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWxpZGF0ZSk6CgkgIFNpbmNlIHRoaXMgZmlsZSBkb2Vzbid0IGluY2x1ZGUgImdzdC5oIiBpdCB3aWxsIG5vdCBnbyB0aHJvdWdoIHRoZQoJICBtYWNyb3MgdGhhdCBkaXNhYmxlIEdTVF9MT0cgaWYgZGVidWdnaW5nIHdhcyBkaXNhYmxlZC4KCjIwMDctMDYtMTQgMTU6NTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVZ2x5ICdmaXgnIGZvciB0aGUgY29udHJvbGxlciB1bml0IHRlc3Qgb24gdGhlIHA1IGJvdDogaW4gZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgY2hlY2sgd2hldGhlciB0aGUgdmFsdWVzIGFyZSAnYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFVnbHkgJ2ZpeCcgZm9yIHRoZSBjb250cm9sbGVyIHVuaXQgdGVzdCBvbiB0aGUgcDUgYm90OiBpbgoJICBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlICdhbG1vc3QKCSAgZXF1YWwnIGJ5IGFsbG93aW5nIGEgc21hbGwgYWJzb2x1dGUgZXJyb3IsIHdoaWNoIHNob3VsZCBiZSBnb29kCgkgIGVub3VnaCBmb3Igb3VyIHVzZSBjYXNlcyAobm9ybWFsIG51bWJlcnMgYW5kIHZhbHVlcyBjbG9zZSB0byAwKS4KCSAgUHJvcGVyIGZpeGFnZSBsZWZ0IHRvIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgYWZpY2lvbmFkb3MuCgoyMDA3LTA2LTE0IDEyOjAzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0d28gYnJlYWtzIHRoYXRzIHdoZXJlIG1pc3NpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEFkZCB0d28gYnJlYWtzIHRoYXRzIHdoZXJlIG1pc3NpbmcuCgoyMDA3LTA2LTE0IDExOjU2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgYW5kIGFzc2VydF9lcXVhbHNfZmxvYXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBUEk6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBhbmQgYXNzZXJ0X2VxdWFsc19mbG9hdCgpLgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3Igc29tZSBvZiB0aGUgbWFjcm9zLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgbmV3bHktYWRkZWQgYXNzZXJ0cy4KCjIwMDctMDYtMTQgMTA6MzM6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogU2hvdyB0aGUgY2FwcyBjaGFuZ2UgaW4gdGhlIGxvZyB0byBoZWxwIHNwb3R0aW5nIHRoZSBjYXNlIG9mIG5vdCBleGFjdGx5IG1hdGNoaW5nIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLCAoZ3N0X3BhZF9wdXNoKToKCSAgU2hvdyB0aGUgY2FwcyBjaGFuZ2UgaW4gdGhlIGxvZyB0byBoZWxwIHNwb3R0aW5nIHRoZSBjYXNlIG9mIG5vdAoJICBleGFjdGx5IG1hdGNoaW5nIGNhcHMuCgoyMDA3LTA2LTE0IDA4OjUyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDogRml4IHR5cG9zLCBzcG90dGVkIGJ5IFRoaWpzIFZlcm1laXIgKCM0NDcxOTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBGaXggdHlwb3MsIHNwb3R0ZWQgYnkgVGhpanMgVmVybWVpciAoIzQ0NzE5MCkuCgoyMDA3LTA2LTEzIDE2OjE1OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6IElnbm9yZSBmaWxlIHRvIGtlZXAgdGhlIGJ1aWxkYm90cyBoYXBweQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgZmlsZSB0byBrZWVwIHRoZSBidWlsZGJvdHMgaGFwcHkKCjIwMDctMDYtMTMgMTU6Mzk6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogUHVsbCBmZHNpbmsgaW50byB0aGUgZG9jcyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIFB1bGwgZmRzaW5rIGludG8gdGhlIGRvY3MgdG9vLgoKMjAwNy0wNi0xMSAwNzoxNDo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFjdHVhbGx5IHVzZSB0aGUgbmV3IGZ1bmN0aW9ucyB3aXRoIG1pbi9tYXggY2hlY2tzIGZvciB0aGUgdHJpZ2dlciBhbmQgbm9uZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBBY3R1YWxseSB1c2UgdGhlIG5ldyBmdW5jdGlvbnMgd2l0aCBtaW4vbWF4IGNoZWNrcyBmb3IgdGhlIHRyaWdnZXIgYW5kCgkgIG5vbmUgaW50ZXJwb2xhdGlvbiBtb2RlcyBmb3IgZ2V0KCkgYW5kIGdldF92YWx1ZV9hcnJheSgpIGluc3RlYWQgb2YKCSAganVzdCB0aGUgbGF0dGVyLgoKMjAwNy0wNi0xMCAxMjozODoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFVuc2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIEdWYWx1ZXMgd2hlbiBmcmVlaW5nIHRoZSBjb3JyZXNwb25kaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSk6CgkgIFVuc2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIEdWYWx1ZXMgd2hlbiBmcmVlaW5nIHRoZSBjb3JyZXNwb25kaW5nCgkgIEdzdENvbnRyb2xsZXJQcm9wZXJ0eSBzdHJ1Y3QuCgoyMDA3LTA2LTA5IDE2OjU4OjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogUHJvdGVjdCBhZ2FpbnN0IHZhbHVlcyBsYXJnZXIgb3Igc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIG9yIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIHByb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgUHJvdGVjdCBhZ2FpbnN0IHZhbHVlcyBsYXJnZXIgb3Igc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIG9yIG1heGltdW0KCSAgYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IHdoZW4gdXNpbmcgdmFsdWVzIHRoYXQgY2FuIGJlIGNvbXBhcmVkLgoJICBPcHRpbWl6ZSB0cmlnZ2VyIGludGVycG9sYXRvciBhIGJpdCBieSB0YWtpbmcgdGhlIGxhc3QgcmVxdWVzdGVkIHZhbHVlCgkgIGludG8gYWNjb3VudCBpbnN0ZWFkIG9mIGFsd2F5cyBsb29waW5nIHRocm91Z2ggdGhlIGNvbXBsZXRlIGxpc3QuCgkgIEZpeCBjb2Rpbmcgc3R5bGUgYSBiaXQsIGV2ZXJ5d2hlcmUgZWxzZSB3ZSB1c2UgInJldHVybiBmb28iIGluc3RlYWQKCSAgb2YgInJldHVybiAoZm9vKSIuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBwcm90ZWN0aW9uIGFnYWluc3QgdG9vIGxhcmdlIG9yIHRvbyBzbWFsbAoJICB2YWx1ZXMuCgoyMDA3LTA2LTA4IDIxOjA4OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDogQWRkIHNvbWUgdGhvdWdodHMgYWJvdXQgdGhlIGZ1dHVyZSBvZiB0aGUgY29udHJvbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6CgkgIEFkZCBzb21lIHRob3VnaHRzIGFib3V0IHRoZSBmdXR1cmUgb2YgdGhlIGNvbnRyb2xsZXIuCgoyMDA3LTA2LTA4IDExOjAwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb24ndCBvdmVyZmxvdyBpbiByZXRpbWVzdGFtcGluZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgRG9uJ3Qgb3ZlcmZsb3cgaW4gcmV0aW1lc3RhbXBpbmcgY29kZS4KCjIwMDctMDYtMDcgMjA6NTE6MzUgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBVc2UgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IChERUZJTkVfQ1VCSUNfR0VUKToKCSAgVXNlIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbnMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wNi0wNyAxNzoyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBTbWFsbCBkb2NzIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgZG9jcyBhZGRpdGlvbi4KCjIwMDctMDYtMDcgMTQ6NDk6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJFQURNRTogUmVtb3ZlIHRoYXQgdGVzdCBsaW5lIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIFJlbW92ZSB0aGF0IHRlc3QgbGluZSBhZ2Fpbi4KCjIwMDctMDYtMDcgMTQ6MzY6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJFQURNRTogVGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIFRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTQ6MTc6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IHR5cG8gYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggdHlwbyBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxNDoxMjowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IEltcHJvdmUgY29tbWVudCBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgSW1wcm92ZSBjb21tZW50IGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDEwOjExOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGZpbmRfbWVzc2FnZSksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwgKGlzX2VvcyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIG1lc3NhZ2VzLgoJICBHZW5lcmF0ZSB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlcyB0b2dldGhlciB3aXRoIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgbWVzc2FnZXMuCgkgIFNtYWxsIGNsZWFudXBzIGluIGhhbmRsaW5nIHRvcGxldmVsIGJpbnMuCgoyMDA3LTA2LTA2IDE4OjExOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IG11bHRpcXVldWUgbGVha2luZyBidWZmZXJzIGFuZCBldmVudHMgd2hlbiBkb3duc3RyZWFtIG9yIHRoZSBxdWV1ZSBhcmUgZmx1c2hpbmcuIE1ha2UgcmVmY291bnRpbmcgYXNzdW1wdGlvbnMgZXhwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEZpeCBtdWx0aXF1ZXVlIGxlYWtpbmcgYnVmZmVycyBhbmQgZXZlbnRzIHdoZW4gZG93bnN0cmVhbSBvciB0aGUKCSAgcXVldWUgYXJlIGZsdXNoaW5nLiBNYWtlIHJlZmNvdW50aW5nIGFzc3VtcHRpb25zIGV4cGxpY2l0IGFuZAoJICBkb2N1bWVudCB0aGVtIChzaG91bGRuJ3QgYnJlYWsgZXhpc3RpbmcgY29kZSB0aGF0IHVzZXMgaXQgb3RoZXIgdGhhbgoJICBtYXliZSBsZWFrIG1pbmlvYmplY3RzLCBidXQgdGhhdCBhbHJlYWR5IGhhcHBlbnMgYW55d2F5KS4gQWRkIHVuaXQKCSAgdGVzdCBmb3IgdGhlIG1vc3QgY29tbW9uIGZsdXNoaW5nIGNhc2UuIEZpeGVzICM0MjM3MDAuCgoyMDA3LTA2LTA2IDE0OjIwOjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQ2xhcmlmeSBkb2NzOiBUaGUgZ2V0X2FsbCwgZ2V0X3ZhbHVlX2FycmF5KHMpIGZ1bmN0aW9ucyBkb24ndCBtb2RpZnkgdGhlIEdPYmplY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIENsYXJpZnkgZG9jczogVGhlIGdldF9hbGwsIGdldF92YWx1ZV9hcnJheShzKSBmdW5jdGlvbnMKCSAgZG9uJ3QgbW9kaWZ5IHRoZSBHT2JqZWN0IHByb3BlcnRpZXMuCgoyMDA3LTA2LTA2IDE0OjAxOjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogRmFjdG9yIG91dCB0aGUgJ3NldCcgbG9naWMgaW50byBnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQgZm9yIHRoZSBnc3RfY29udHJvbGxlcl9zZXQgYW5kIGdzdF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3ByZXBlbmRfZGVmYXVsdCksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBGYWN0b3Igb3V0IHRoZSAnc2V0JyBsb2dpYyBpbnRvIGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCBmb3IgdGhlCgkgIGdzdF9jb250cm9sbGVyX3NldCBhbmQgZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCBmdW5jdGlvbnMuCgkgIFRvIG1ha2UgbGlmZSBvZiB0aGUgaW50ZXJwb2xhdG9ycyBlYXNpZXIgYWx3YXlzIGFkZCBhIGNvbnRyb2wgcG9pbnQKCSAgYXQgdGltZXN0YW1wIHplcm8gd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZS4KCSAgSW4gdGhlIGxpbmVhciBpbnRlcnBvbGF0b3IgbWFrZSB0aGluZ3MgbW9yZSBvYnZpb3VzIGJ5IGJldHRlciB2YXJpYWJsZQoJICBuYW1pbmcgKHNsb3BlKS4KCSAgSW1wbGVtZW50IGN1YmljIGludGVycG9sYXRpb24gbW9kZSAoYnkgdXNpbmcgYSBuYXR1cmFsIGN1YmljIHNwbGluZSkKCSAgYW5kIG1hcCB0aGUgcXVhZHJhdGljIGludGVycG9sYXRpb24gbW9kZSB0byB0aGlzIHRvbyAoYXMgcXVhZHJhdGljCgkgIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLCBzZWUgZGlzY3Vzc2lvbiBvbiB0aGUgbGlzdCkuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUgYW5kIGNoZWNrIGV2ZXJ5d2hlcmUKCSAgaWYgdGhlIGludGVycG9sYXRpb24gbW9kZSBjb3VsZCBiZSBzZXQgYXMgZXhwZWN0ZWQuCgoyMDA3LTA2LTA2IDExOjM4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhcmFtc3BlY3MuYzogRG9uJ3QgdXNlIEdMaWItMi4xMCBmdW5jdGlvbnMsIHdlIHN0aWxsIGRlcGVuZCBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb25fZ2V0X3R5cGUpOgoJICBEb24ndCB1c2UgR0xpYi0yLjEwIGZ1bmN0aW9ucywgd2Ugc3RpbGwgZGVwZW5kIG9uCgkgIEdMaWItaG93LW9sZC1pcy1pdC1hZ2Fpbi0yLjguCgoyMDA3LTA2LTA2IDExOjE4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR3N0UGFyYW1TcGVjRnJhY3Rpb24sIHNvIGVsZW1lbnRzIGNhbiBoYXZlIGZyYWN0aW9uIHByb3BlcnRpZXMgd2l0aG91dCBsb3RzIG9mIHBhaW5mdWwgc3RyaW5nIHBhcnNpbmcgKCM0NDQ2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKF9nc3RfcGFyYW1fZnJhY3Rpb25faW5pdCksCgkgIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3NldF9kZWZhdWx0KSwgKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsaWRhdGUpLAoJICAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWx1ZXNfY21wKSwKCSAgKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uX2dldF90eXBlKSwgKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6IChnc3RfZHVtbXlfb2JqX2Jhc2VfaW5pdCksCgkgIChnc3RfZHVtbXlfb2JqX2NsYXNzX2luaXQpLCAoZ3N0X2R1bW15X29ial9pbml0KSwKCSAgKGdzdF9kdW1teV9vYmpfc2V0X3Byb3BlcnR5KSwgKGdzdF9kdW1teV9vYmpfZ2V0X3Byb3BlcnR5KSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYXJhbV9zcGVjX3N1aXRlKToKCSAgQVBJOiBhZGQgR3N0UGFyYW1TcGVjRnJhY3Rpb24sIHNvIGVsZW1lbnRzIGNhbiBoYXZlIGZyYWN0aW9uCgkgIHByb3BlcnRpZXMgd2l0aG91dCBsb3RzIG9mIHBhaW5mdWwgc3RyaW5nIHBhcnNpbmcgKCM0NDQ2NDgpLgoKMjAwNy0wNi0wNSAxNjoyNTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogRml4IHNpZ25hbCBzaWduYXR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgIEZpeCBzaWduYWwgc2lnbmF0dXJlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZCBzbWFsbCBjbGFyaWZpY2F0aW9uIGluIHRoZSBhcGkgZG9jcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfbG9jYXRpb24pOgoJICBTdGF0ZXMgYXJlIHByb3RlY3RlZCB3aXRoIG9iamVjdCBsb2NrLgoKMjAwNy0wNi0wNSAxNDoxMTo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBVVRIT1JTOiBJIHNob3VsZCBwcm9iYWJseSBiZSBsaXN0ZWQgYXMgYW4gYXV0aG9yIGJ5IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQVVUSE9SUzoKCSAgSSBzaG91bGQgcHJvYmFibHkgYmUgbGlzdGVkIGFzIGFuIGF1dGhvciBieSBub3cuCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVXBkYXRlIHRoZSByZWxlYXNlIGRvYwoKMjAwNy0wNi0wNSAxMzo0OToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBNYWtlIGRvY3MgZm9yIGdzdF92YWx1ZV9jb21wYXJlKCkgbWVudGlvbiByZXR1cm4gZW51bXMgdGhhdCBhY3R1YWxseSBleGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIE1ha2UgZG9jcyBmb3IgZ3N0X3ZhbHVlX2NvbXBhcmUoKSBtZW50aW9uIHJldHVybiBlbnVtcyB0aGF0CgkgIGFjdHVhbGx5IGV4aXN0LgoKMjAwNy0wNi0wNSAxMzoyMTo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTMgPT09CgoyMDA3LTA2LTA1IDEyOjQ3OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFJlbGVhc2UgMC4xMC4xMyAiV2l0aCBvciB3aXRob3V0IHlvdSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xMyAiV2l0aCBvciB3aXRob3V0IHlvdSIKCjIwMDctMDYtMDUgMTI6MDY6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wNS0yOSAxNTo1MDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDo0OTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDo0ODo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDozNzoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHNlbmQgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzZW5kIGEgbWFpbAoKMjAwNy0wNS0yOSAxMTo1MjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMTo0MDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMTowMDoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDo0MzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDozNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDozNDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDoyMDoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yNSAxNTozNjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBzdXJlIHRoYXQgdGhlIGNoaWxkIGJpbiBzdG9wcyBhZnRlciBjb21wbGV0aW5nIHRoZSBhc3luYyBzdGF0ZSBjaGFuZ2Ugc28gdGhhdCB0aGUgcGFyZW50IGNhbiBjb250aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX2RvbmUpOgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgY2hpbGQgYmluIHN0b3BzIGFmdGVyIGNvbXBsZXRpbmcgdGhlIGFzeW5jIHN0YXRlCgkgIGNoYW5nZSBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGNvbnRpbnVlIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORy4KCSAgRml4ZXMgIzQ0MTE1OS4KCjIwMDctMDUtMjUgMDk6MjY6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVzZSBhZGRpdGlvbmFsIHJlZmNvdW50aW5nIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIHBhZHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpOgoJICBVc2UgYWRkaXRpb25hbCByZWZjb3VudGluZyB0byBhdm9pZCBjcmFzaGVzIHdoZW4gZHluYW1pY2FsbHkgYWRkaW5nIGFuZAoJICByZW1vdmluZyBwYWRzLiBGaXhlcyAjNDIwMjA2LgoKMjAwNy0wNS0yNCAxNTowMDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogV2hlbiBidWZmZXJpbmcgZ29lcyBmcm9tIGEgdHdvIGRpZ2l0IHRvIGEgc2luZ2xlIGRpZ2l0IG51bWJlciwgbWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgb2xkIHNlY29uZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgV2hlbiBidWZmZXJpbmcgZ29lcyBmcm9tIGEgdHdvIGRpZ2l0IHRvIGEgc2luZ2xlIGRpZ2l0IG51bWJlciwgbWFrZSBzdXJlCgkgIHRvIHJlbW92ZSB0aGUgb2xkIHNlY29uZCBkaWdpdCBieSB3cml0aW5nIGEgYmxhbmsgb3ZlciBpdC4KCjIwMDctMDUtMjQgMTI6MTk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiBFbGltaW5hdGUgdGFicyBhbmQgdHJhaWxpbmcgY29tbWEgaW4gZW51bSBsaXN0OyBmaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgRWxpbWluYXRlIHRhYnMgYW5kIHRyYWlsaW5nIGNvbW1hIGluIGVudW0gbGlzdDsgZml4IHNvbWUgdHlwb3MuCgoyMDA3LTA1LTI0IDExOjUwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBBbGxvdyByZWZjb3VudCBvZiAzIGFuZCA0IGJlY2F1c2Ugc29tZSBzdGF0ZSB0aHJlYWQgbWlnaHQgc3RpbGwgYmUgYnVzeSB3aXRoIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFsbG93IHJlZmNvdW50IG9mIDMgYW5kIDQgYmVjYXVzZSBzb21lIHN0YXRlIHRocmVhZCBtaWdodCBzdGlsbCBiZSBidXN5CgkgIHdpdGggaXQuCgoyMDA3LTA1LTI0IDA5OjQxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFRoZXNlIGFyZSBub3QgaW5zdGFsbGVkIGhlYWRlcnMsIG5vIG5lZWQgZm9yIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBUaGVzZSBhcmUgbm90IGluc3RhbGxlZCBoZWFkZXJzLCBubyBuZWVkIGZvciBwYWRkaW5nLgoKMjAwNy0wNS0yNCAwODozNTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRW5hYmxlIGxhdGVuY3kgZm9yIG5leHQgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgRW5hYmxlIGxhdGVuY3kgZm9yIG5leHQgcmVsZWFzZS4KCSAgUmVzdG9yZSBTVEFURV9MT0NLIGFyb3VuZCByZWNhbGNfc3RhdGUgdGhhdCB3YXMgbGVmdCBvdXQgZHVyaW5nIHRoZQoJICByZXdyaXRlIGFuZCBjb3VsZCByZXN1bHQgaW4gcmFjeSBiZWhhdmlvdXIgd2hlbiBfZ2V0X3N0YXRlIGFuZAoJICByZWNhbGNfc3RhdGUgYXJlIHJ1biBjb25jdXJyZW50bHkuIFNlZSAjNDQwNDYzLgoKMjAwNy0wNS0yMyAxMzo1NjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBJbXByb3ZlIHRlc3RfYXN5bmNfb3JkZXIgdG8gYWxzbyB3b3JrIHdoZW4gYm90aCB0aW1lcnMgYXJlIGFscmVhZHkgZXhwaXJlZCB3aGVuIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKHN0b3JlX2NhbGxiYWNrKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSB0ZXN0X2FzeW5jX29yZGVyIHRvIGFsc28gd29yayB3aGVuIGJvdGggdGltZXJzIGFyZSBhbHJlYWR5CgkgIGV4cGlyZWQgd2hlbiB3ZSBnZXQgc2NoZWR1bGVkIHRvIGNoZWNrIGl0LgoKMjAwNy0wNS0yMiAxNzoxMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uKjogJ3ByaXZhdGUnIGlzIGEgYysrIGtleXdvcmQsIGxldCdzIG5vdCB1c2UgdGhhdCBpbiBoZWFkZXIgZmlsZXMsIG90aGVyd2lzZSBjKysgY29tcGlsZXJzIHdpbGwgdGhyb3cgYSB0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9iaW5fc2V0X3Byb3BlcnR5KSwgKGdzdF9iaW5fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICdwcml2YXRlJyBpcyBhIGMrKyBrZXl3b3JkLCBsZXQncyBub3QgdXNlIHRoYXQgaW4gaGVhZGVyIGZpbGVzLAoJICBvdGhlcndpc2UgYysrIGNvbXBpbGVycyB3aWxsIHRocm93IGEgdGFudHJ1bS4KCjIwMDctMDUtMjIgMTE6NTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zLzogVXNlICNpZmRlZiBmb3IgSEFWRV9YWVogZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIFVzZSAjaWZkZWYgZm9yIEhBVkVfWFlaIGZvciBjb25zaXN0ZW5jeS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6IChzZXR1cF9maWxlc2luayksCgkgIChjbGVhbnVwX2ZpbGVzaW5rKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZpbGVzaW5rX3N1aXRlKToKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgZmlsZXNpbmsuCgoyMDA3LTA1LTIyIDExOjQzOjA3ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay4qOiBGaXggcG9zaXRpb24gcmVwb3J0aW5nOyByZW5hbWUgZGF0YV93cml0dGVuIG1lbWJlciB0byBjdXJyZW50X3BvcyB0byByZWZsZWN0IGl0cyByZWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX3F1ZXJ5KSwgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBGaXggcG9zaXRpb24gcmVwb3J0aW5nOyByZW5hbWUgZGF0YV93cml0dGVuIG1lbWJlciB0byBjdXJyZW50X3BvcyB0bwoJICByZWZsZWN0IGl0cyByZWFsIG1lYW5pbmcgKGZpeGVzICM0MTI2NDgpLgoKMjAwNy0wNS0yMiAxMTowOTo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEFkZCBhIHByb3BlcnR5IGZvciBiaW5zIHRoYXQgaGFuZGxlIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgdGhlaXIgY2hpbGRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fc2V0X3Byb3BlcnR5KSwgKGdzdF9iaW5fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBhIHByb3BlcnR5IGZvciBiaW5zIHRoYXQgaGFuZGxlIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgdGhlaXIgY2hpbGRzLgoJICBGaXhlcyAjNDM1ODgwCgoyMDA3LTA1LTIyIDEwOjIxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGFkZCBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHF1b3RlCgoyMDA3LTA1LTIyIDA5OjU2OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogVXNlIGFuIGFycmF5IG9mIHRoZSBjb3JyZWN0IHR5cGUgd2hlbiB1c2luZyBfZ2V0X3ZhbHVlX2FycmF5IHdpdGggbGluZWFyIGludGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIFVzZSBhbiBhcnJheSBvZiB0aGUgY29ycmVjdCB0eXBlIHdoZW4gdXNpbmcgX2dldF92YWx1ZV9hcnJheSB3aXRoCgkgIGxpbmVhciBpbnRlcnBvbGF0aW9uLgoKMjAwNy0wNS0yMiAwNjozNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrLCBnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jaywgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQsIGdzdF9lbGVtZW50X2NsYXNzXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jaywKCSAgZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2ssIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkLAoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscywgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlLAoJICBnc3RfZWxlbWVudF9kZWZhdWx0X3NlbmRfZXZlbnQsIGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlLAoJICBnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSwgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlLAoJICBnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYywgaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyk6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwsIGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24sCgkgIGdzdF9wYWRfZml4YXRlX2NhcHMsIGdzdF9wYWRfY29uZmlndXJlX3NpbmssIGdzdF9wYWRfY29uZmlndXJlX3NyYywKCSAgZ3N0X3BhZF9xdWVyeSwgZ3N0X3BhZF9zYXZlX3RoeXNlbGYsIGhhbmRsZV9wYWRfYmxvY2ssIGdzdF9wYWRfcHVzaCwKCSAgZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0xJTktfU1VDQ0VTU0ZVTCwgR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1MsCgkgIEdTVF9GTE9XX05PVF9TVVBQT1JURUQsIEdTVF9GTE9XX0lTX0ZBVEFMLCBHc3RQYWRBY3RpdmF0ZUZ1bmN0aW9uLAoJICBHc3RQYWRBY3RpdmF0ZU1vZGVGdW5jdGlvbiwgR3N0UGFkQ2hhaW5GdW5jdGlvbiwKCSAgR3N0UGFkR2V0Q2Fwc0Z1bmN0aW9uLCBHc3RQYWRBY2NlcHRDYXBzRnVuY3Rpb24sCgkgIEdzdFBhZEZpeGF0ZUNhcHNGdW5jdGlvbiwgR3N0UGFkVGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlLAoJICBnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSwgZ3N0X3BpcGVsaW5lX3VzZV9jbG9jaywKCSAgZ3N0X3BpcGVsaW5lX3NldF9jbG9jaywgZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2ssCgkgIGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICBXaGl0ZXNwYWNlIGFuZCBkb2NzIGZpeGVzLgoKMjAwNy0wNS0yMSAyMTo0ODowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFkZCBzdXBwb3J0IGZvciByZXRyaWV2aW5nIHZhbHVlIGFycmF5cyB3aGVuIHVzaW5nIHRoZSB0cmlnZ2VyIGludGVycG9sYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBBZGQgc3VwcG9ydCBmb3IgcmV0cmlldmluZyB2YWx1ZSBhcnJheXMgd2hlbiB1c2luZyB0aGUgdHJpZ2dlcgoJICBpbnRlcnBvbGF0aW9uIG1vZGUuCgoyMDA3LTA1LTIxIDIxOjM0OjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuKjogQ2xhcmlmeSB0aGUgZG9jcyBvZiBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKTogVGhlIGFycmF5IHdoZXJlIHRoZSB2YWx1ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzIG9mIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpOiBUaGUgYXJyYXkgd2hlcmUKCSAgdGhlIHZhbHVlcyBzaG91bGQgYmUgd3JpdHRlbiB0byBtdXN0IGJlIGFsbG9jYXRlZCBhcyB0aGVyZSBzZWVtcyB0byBiZQoJICBubyB3YXkgdG8gZ2V0IHRoZSBzaXplIG9mIGEgcmFuZG9tIEdUeXBlLiBUaGlzIGRvZXNuJ3QgY2hhbmdlIGFueQoJICBiZWhhdmlvdXIuIEFsc28gZml4IHNvbWUgdHlwb3MgYWxsIG92ZXIgdGhlIHBsYWNlIGFuZCByZW1vdmUgYW4gdW51c2VkLAoJICBjb21tZW50ZWQgZnVuY3Rpb24gdGhhdCBpcyBub3QgbmVjZXNzYXJ5IGFzIGdfb2JqZWN0X3NldCgpIGNvdWxkIGJlCgkgIHVzZWQgaW5zdGVhZC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCkuCgoyMDA3LTA1LTIxIDE0OjUwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogRGlzYWJsZSBwYXJ0IG9mIHRoZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jIHRlc3QsIGJlY2F1c2UgaXQgY2FuIGhhcHBpbHkgc3VjY2VlZCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERpc2FibGUgcGFydCBvZiB0aGUgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyB0ZXN0LCBiZWNhdXNlCgkgIGl0IGNhbiBoYXBwaWx5IHN1Y2NlZWQgb24gNjQtYml0IHN5c3RlbXMgd2hlcmUgdGhlcmUncyBtb3JlIGFkZHJlc3MKCSAgc3BhY2UgYXZhaWxhYmxlLgoKMjAwNy0wNS0yMSAxMjowNTo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgaW1wcm92ZWQgY2FwcyBjaGVja2luZyBmcm9tIGJ1ZyAjNDIxNTQzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcgZnJvbSBidWcgIzQyMTU0My4KCjIwMDctMDUtMjEgMTI6MDU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNtYWxsIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNtYWxsIGFkZGl0aW9uLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGFwcGx5X3NlZ21lbnQpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBJbXByb3ZlIGRvY3MuCgoyMDA3LTA1LTIxIDEyOjAwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGRlZCBzaW1wbGUgdmVyc2lvbiBvZiBpbXByb3ZlZCBjYXBzIGNoZWNraW5nLiBJdCB3YXMgcHJldmlvdXNseSBhc3N1bWVkIHRoYXQgYSBzZXRjYXBzIGZ1bmN0aW9uIHdvdWxkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpOgoJICBBZGRlZCBzaW1wbGUgdmVyc2lvbiBvZiBpbXByb3ZlZCBjYXBzIGNoZWNraW5nLiBJdCB3YXMgcHJldmlvdXNseQoJICBhc3N1bWVkIHRoYXQgYSBzZXRjYXBzIGZ1bmN0aW9uIHdvdWxkIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FwcyBidXQKCSAgcGVvcGxlIHByZWZlciB1cyB0byBjaGVjayBjYXBzIGFnYWluc3QgdGhlIHRlbXBsYXRlIGF1dG9tYXRpY2FsbHkuCgkgIEZpeGVzICM0MjE1NDMuCgoyMDA3LTA1LTIxIDExOjI5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6IEZpeCBtYWNybyBmb3IgbG9ja2luZy91bmxvY2tpbmcgdGhlIHRyYW5zZm9ybSBsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4IG1hY3JvIGZvciBsb2NraW5nL3VubG9ja2luZyB0aGUgdHJhbnNmb3JtIGxvY2suCgoyMDA3LTA1LTE5IDEzOjUzOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZTogSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwNy0wNS0xOCAxNjo1MzoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogSGVsbG8sIEkgYW0gTXIgVGF5bWFucycgcGVyc29uYWwgZGVidWdnZXIuIFRvZGF5IEkgd2lsbCBpbnRyb2R1Y2UgYSBmaXggZm9yIHRoZSBzdWJ0bGUgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIEhlbGxvLCBJIGFtIE1yIFRheW1hbnMnIHBlcnNvbmFsIGRlYnVnZ2VyLiBUb2RheSBJIHdpbGwgaW50cm9kdWNlIGEgZml4CgkgIGZvciB0aGUgc3VidGxlIGFydCBvZiB3YXJuaW5nIGEgcG90ZW50aWFsbHkgYmxvY2tpbmcgdGhyZWFkIHRoYXQgaXQKCSAgc2hvdWxkIGNoZWNrIHRoZSBzb3VyY2UgcGFkIHJldHVybiB2YWx1ZSwgYW5kIHJlbGF5IHRoZSBpbmZvcm1hdGlvbgoJICB1cHN0cmVhbS4KCjIwMDctMDUtMTggMTE6MjA6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2sgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBSZWxlYXNlIHRoZSBxdWV1ZSBsb2NrICEKCjIwMDctMDUtMTcgMTc6NTU6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCB0aGUgdHdvIG5ldyBjb250cm9sbGVyIGZ1bmN0aW9ucyB0byB0aGUgYXBwcm9waWF0ZSBwbGFjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCB0aGUgdHdvIG5ldyBjb250cm9sbGVyIGZ1bmN0aW9ucyB0byB0aGUgYXBwcm9waWF0ZSBwbGFjZXMuCgoyMDA3LTA1LTE3IDE3OjM3OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYygpLCBnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYyksIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZ2V0X3Byb3BlcnR5KSwgKF9nc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHkpLAoJICAoX2dzdF9jb250cm9sbGVyX2luaXQpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICBBUEk6IGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKCksIGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMoKQoJICBBZGQgQVBJIHRoYXQgcHJvdmlkZXMgc3luYyBzdWdnZXN0aW9uIHRpbWVzdGFtcHMgZm9yIGVsZW1lbnRzIHRoYXQKCSAgY2FsbCBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKCkgZnJvbSB3aGljaCB0aG9zZSBlbGVtZW50cyBjYW4gc3ViZGl2aWRlCgkgIHRoZWlyIHByb2Nlc3NpbmcgbG9vcCB0byBnZXQgdGhlIGJlc3QgcmVzdWx0cyBmb3IgdGhlIGNvbnRyb2xsZWQKCSAgcHJvcGVydGllcy4gRm9yIG5vdyBpdCBqdXN0IHN1Z2dlc3RzIGxhc3Rfc3luYyArIGNvbnRyb2xfcmF0ZSBhcwoJICBuZXcgdGltZXN0YW1wIGJ1dCB0aGlzIHdpbGwgYmUgaW1wcm92ZWQgaW4gdGhlIGZ1dHVyZS4KCSAgV2hpbGUgZG9pbmcgdGhhdCBjaGFuZ2UgdGhlIGNvbnRyb2wtcmF0ZSBwcm9wZXJ0eSB0byBhIEdzdENsb2NrVGltZQoJICBmcm9tIGd1aW50IGFuZCBjaGFuZ2UgaXQncyBtZWFuaW5nIGZyb20gc2FtcGxlcyB0byBuYW5vc2Vjb25kcyBhcwoJICB0aGUgR3N0Q29udHJvbGxlciBkb2Vzbid0IGtub3cgYW55dGhpbmcgYWJvdXQgc2FtcGxpbmcgcmF0ZS4gU3RyaWN0bHkKCSAgc3BlYWtpbmcgdGhpcyBicmVha3MgQUJJIGJ1dCBhcyB0aGUgY29udHJvbC1yYXRlIHByb3BlcnR5IGRpZG4ndCBkbwoJICBhbnl0aGluZyBpbiB0aGUgcGFzdCBhbmQgYXMgc3VjaCBjb3VsZG4ndCBiZSB1c2VkIHRoaXMgc2hvdWxkIGJlIG5vCgkgIHByb2JsZW0uCgoyMDA3LTA1LTE3IDE3OjE2OjA5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogU2F2ZSBsYXN0IHN5bmNlZCB2YWx1ZSBmcm9tIHRoZSBsaXN0IHRvIGNvbnRpbnVlIHNlYXJjaGluZyBmcm9tIHRoZXJlIGluIGZ1dHVyZSBzeW5jcy4gVGhpcyBzcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKToKCSAgU2F2ZSBsYXN0IHN5bmNlZCB2YWx1ZSBmcm9tIHRoZSBsaXN0IHRvIGNvbnRpbnVlIHNlYXJjaGluZyBmcm9tIHRoZXJlCgkgIGluIGZ1dHVyZSBzeW5jcy4gVGhpcyBzcGVlZHMgZXZlcnl0aGluZyB1cCBhIGJpdC4KCjIwMDctMDUtMTcgMTc6MDU6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBZGQgYSBuZXcgcHJpdmF0ZSBHc3RDb250cm9sUG9pbnQgc3RydWN0IHdoaWNoICJpbmhlcml0cyIgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sX3BvaW50X2NvbXBhcmUpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZmluZCksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpOgoJICBBZGQgYSBuZXcgcHJpdmF0ZSBHc3RDb250cm9sUG9pbnQgc3RydWN0IHdoaWNoICJpbmhlcml0cyIgZnJvbQoJICBHc3RUaW1lZFZhbHVlIHRvIGFsbG93IGRpZmZlcmVudCBpbnRlcnBvbGF0b3JzIHRvIHN0b3JlIGludGVybmFsCgkgIHZhbHVlcyBuZXh0IHRvIGVhY2ggY29udHJvbCBwb2ludC4gRnJvbSB0aGUgb3V0c2lkZSBldmVyeXRoaW5nIGlzCgkgIHN0aWxsIGEgR3N0Q29udHJvbFBvaW50IHNvIHdlIGRvbid0IGxvb3NlIGJpbmFyeSBjb21wYXRpYmlsaXR5LgoJICBBbHNvIGZpeHVwIGFsbCB0aGUgR1ZhbHVlIGhhbmRsaW5nIHRvIG5vdCBsZWFrIEdWYWx1ZXMgb3IgbGlzdCBub2Rlcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRnJlZSB0aGUgbGlzdCBub2RlcyBhbmQgR1ZhbHVlcyBpbiB0aGUgY29udHJvbGxlcl9taXNjIHRlc3QuCgoyMDA3LTA1LTE3IDExOjA1OjIyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogU21hbGwgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgU21hbGwgZG9jIGZpeC4KCjIwMDctMDUtMTYgMTk6MzU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IElmIHdlIGZhaWwgdG8gbG9hZCBhIHBsdWdpbiBiZWNhdXNlIG9mIHVucmVzb2x2ZWQgc3ltYm9scyBvciBtaXNzaW5nIGxpYnJhcmllcyBhbmQgc3BldyBhIHdhcm5pbmcgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBJZiB3ZSBmYWlsIHRvIGxvYWQgYSBwbHVnaW4gYmVjYXVzZSBvZiB1bnJlc29sdmVkIHN5bWJvbHMgb3IgbWlzc2luZwoJICBsaWJyYXJpZXMgYW5kIHNwZXcgYSB3YXJuaW5nIHRvIHN0ZGVyciwgd2UgbWF5IGp1c3QgYXMgd2VsbCBtZW50aW9uCgkgIHdoaWNoIHBsdWdpbiBpdCB3YXMgdGhhdCBmYWlsZWQgdG8gbG9hZC4KCjIwMDctMDUtMTMgMjA6Mjg6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogdGhlIGd0ay1kb2MgbWFrZWZpbGUgc25pcHBldCBjb3JyZWN0bHkgaGFuZGxlcyB0aGUgY2FzZSB3aGVuIEVOQUJMRV9HVEtfRE9DIGlzIGZhbHNlLCBhbmQgaW5zdGFsbHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06IHRoZSBndGstZG9jIG1ha2VmaWxlIHNuaXBwZXQgY29ycmVjdGx5CgkgIGhhbmRsZXMgdGhlIGNhc2Ugd2hlbiBFTkFCTEVfR1RLX0RPQyBpcyBmYWxzZSwgYW5kIGluc3RhbGxzCgkgIHRoZSBwcmVidWlsdCBkb2N1bWVudGF0aW9uLiAgU28gZ3RrLWRvYyBzdWJkaXJzIGFyZQoJICB1bmNvbmRpdGlvbmFsbHkgZW5hYmxlZC4gIEZpeGVzOiAjMzQ5MDk5LgoKMjAwNy0wNS0xMyAyMDoxMToyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogUmV3b3JkIHNvbWUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6IFJld29yZCBzb21lIGRvY3VtZW50YXRpb24uCgoyMDA3LTA1LTEzIDAwOjIwOjM1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKCkgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyB3aXRoIHRoZSBwYXNzZWQgIm1vZHVsZSIgcGFyYW1ldGVyLCBzbyByZW1vdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYygpIGRvZXNuJ3QgYWN0dWFsbHkKCSAgZG8gYW55dGhpbmcgd2l0aCB0aGUgcGFzc2VkICJtb2R1bGUiIHBhcmFtZXRlciwgc28gcmVtb3ZlIGl0LgoJICBBbGxvd3MgcmVtb3ZhbCBvZiBhZGRpdGlvbmFsIHZlc3RpZ2FsIGNvZGUuCgoyMDA3LTA1LTEzIDAwOjA5OjAwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogVXNpbmcgc2lnYWN0aW9uIHNob3VsZCBkZXBlbmQgb24gSEFWRV9TSUdBQ1RJT04sIG5vdCBIQVZFX1dJTjMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIFVzaW5nIHNpZ2FjdGlvbiBzaG91bGQgZGVwZW5kIG9uIEhBVkVfU0lHQUNUSU9OLCBub3QgSEFWRV9XSU4zMi4KCSAgU3dpdGNoIHRvIHVzaW5nIGdfc3RhdCgpIGJlY2F1c2UgaXQncyBtb3JlIHBvcnRhYmxlLgoKMjAwNy0wNS0xMiAyMzo1MzowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IEFkZCBHU1RfRElTQUJMRV9PUFRJT05fUEFSU0lORywgaW4gb3JkZXIgdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZyBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBZGQgR1NUX0RJU0FCTEVfT1BUSU9OX1BBUlNJTkcsIGluIG9yZGVyIHRvIGRpc2FibGUgb3B0aW9uCgkgIHBhcnNpbmcgZm9yIGVtYmVkZGVkIHN5c3RlbXMuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIEFsbG93IGdzdF9lbGVtZW50X3JlZ2lzdGVyKCkgdG8gYmUgY2FsbGVkIHdpdGggcGx1Z2luPT1OVUxMLgoJICBEaWQgbm9ib2R5IG5vdGljZSB0aGF0IHN0YXRpYyBlbGVtZW50cyB3ZXJlIGJyb2tlbj8KCjIwMDctMDUtMTIgMTU6Mzg6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEdpdmUgbW9yZSBpbnRlcmVzdGluZyBpbmZvIHdoZW4gYnVmZmVyaW5nIHN0YXJ0cyBhbmQgc3RvcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBHaXZlIG1vcmUgaW50ZXJlc3RpbmcgaW5mbyB3aGVuIGJ1ZmZlcmluZyBzdGFydHMgYW5kIHN0b3BzLgoJICBGaXggY2FzZSB3aGVyZSBidWZmZXJpbmcgc3RhcnRzIGJ1dCB3ZSBmYWlsIHRvIHVwZGF0ZSB0aGUgYnVmZmVyaW5nIGZsYWcKCSAgYmVjYXVzZSB0aGUgdGFyZ2V0IHN0YXRlIGlzIG5vdCBQTEFZSU5HLgoKMjAwNy0wNS0xMiAxNTozNTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogUmVmYWN0b3IgYW4gY2xlYW51cCBxdWV1ZSBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBSZWZhY3RvciBhbiBjbGVhbnVwIHF1ZXVlIGEgYml0LgoJICBEbyBiZXR0ZXIgdGltZSBsZXZlbCBjYWxjdWxhdGlvbnMgdGhhdCBhbHNvIHdvcmsgd2hlbiB0aGUgc3JjcGFkIGlzIG5vdAoJICB5ZXQgcnVubmluZy4KCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZGVidWcgbGluZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIHRpbWUgbGV2ZWwgbWVhc3VyZW1lbnQuCgkgIFRyeSB0byBtYWtlIHNvbWUgc3R1ZmYgbW9yZSByYWNlZnJlZS4KCjIwMDctMDUtMTEgMTQ6NDY6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IGxlYWsgcGx1Z2luIGZlYXR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91cmlfc3VpdGUpOgoJICBBZGQgYnJhaW4tZGVhZCB1bml0IHRlc3QuCgoyMDA3LTA1LTExIDE0OjI4OjU1ICswMDAwICBKZXJvZW4gV291dGVycyA8d291dGVyc2pAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHVyaS5jOiBUcmVhdCBwcm90b2NvbCBzdHJpbmdzIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSB3YXkgKCM0Mzc1NjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEplcm9lbiBXb3V0ZXJzIDx3b3V0ZXJzaiBhdCBnbWFpbCBjb20+CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpLCAoc2VhcmNoX2J5X2VudHJ5KToKCSAgVHJlYXQgcHJvdG9jb2wgc3RyaW5ncyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgd2F5ICgjNDM3NTYzKS4KCjIwMDctMDUtMTEgMTA6NTY6NDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IERvbid0IHByaW50IGEgZ193YXJuaW5nIGZvciBhbnkgZmFpbHVyZSB0byBsb2FkIGEgc2hhcmVkIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIERvbid0IHByaW50IGEgZ193YXJuaW5nIGZvciBhbnkgZmFpbHVyZSB0byBsb2FkIGEgc2hhcmVkIG9iamVjdC4KCSAgSW5zdGVhZCwgcHVzaCB0aGlzIGRvd24gaW50byBnc3RwbHVnaW4uYywgYW5kIHdhcm4gX29ubHlfIGlmIHdlCgkgIGZhaWxlZCB0byBvcGVuIHRoZSBtb2R1bGUgKGkuZS4gZmFpbHVyZSB0byBsaW5rKS4KCSAgQXZvaWRzIHdhcm5pbmdzIG9uIG5vcm1hbCwgd29ya2luZywgbm9uLXBsdWdpbiAuc28gZmlsZXMuCgoyMDA3LTA1LTExIDA4OjI5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogZ3N0L2dzdHJlZ2lzdHJ5LmMgKEdTVF9DQVRfREVGQVVMVCwgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCwgZ3N0X3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKEdTVF9DQVRfREVGQVVMVCwKCSAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCwgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFByaW50IGEgZ193YXJuaW5nIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGVuIGxvYWRpbmcgYSBwbHVnaW5zIGR1cmluZwoJICByZWdpc3RyeSBzY2FuLiBUaGUgc2h1bGQgaGVscCBiZWdpbm5lcnMgc3RhcnRpbmcgd2l0aCBnc3QtcGx1Z2luCgkgIHRlbXBsYXRlLgoKMjAwNy0wNS0xMCAxNToyMToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogQmUgc21hcnRlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSBjdXJyZW50IGFtb3VudCBvZiBkYXRhIGluIHRoZSBxdWV1ZSBieSBtZWFzdXJpbmcgdGhlIGRpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIEJlIHNtYXJ0ZXIgd2hlbiBjYWxjdWxhdGluZyB0aGUgY3VycmVudCBhbW91bnQgb2YgZGF0YSBpbiB0aGUgcXVldWUgYnkKCSAgbWVhc3VyaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhcnQgYW5kIGVuZCB0aW1lc3RhbXBzIChpbiBydW5uaW5nCgkgIHRpbWUpIGluc2lkZSB0aGUgcXVldWUuIEZpeGVzICM0MzI4NzYuCgkgIEFQSTogR3N0UXVldWU6OnB1c2hpbmcgdG8gbm90aWZ5IGVsZW1lbnRzIHRoYXQgd2UgYXJlIHB1c2hpbmcgZGF0YSBhZ2FpbgoJICBzaW5jZSB0aGUgcnVubmluZyBzaWduYWwgaXMgcmF0aGVyIGJyb2tlbiBmb3IgdGhpcyBwdXJwb3NlLgoKMjAwNy0wNS0xMCAxMjo0MDoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChfZG9faW5pdCwgZ3N0X3F1ZXVlX3NpZ25hbHMsIGdzdF9xdWV1ZV9iYXNlX2luaXQsIGdzdF9xdWV1ZV9pbml0KTogdXNlIEdTVF9CT0lMRVJQTEFURQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKF9kb19pbml0LCBnc3RfcXVldWVfc2lnbmFscywKCSAgZ3N0X3F1ZXVlX2Jhc2VfaW5pdCwgZ3N0X3F1ZXVlX2luaXQpOgoJICB1c2UgR1NUX0JPSUxFUlBMQVRFCgoyMDA3LTA1LTA5IDIxOjA2OjA2ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIFVzZSBncmFtbWFyIHByZS1nZW5lcmF0ZWQgZmlsZXMuCgoyMDA3LTA1LTA5IDE2OjMyOjA3ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IE1haW50YWluIEFQSSBhbmQgQUJJIHdoZW4gLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuIE5vdyB0aGF0IHdlIGhhdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSwgd2UgY2FuIGp1c3QgcmV0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCAgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNodiksIChnc3RfcGFyc2VfbGF1bmNoKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1haW50YWluIEFQSSBhbmQgQUJJIHdoZW4gLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuIE5vdyB0aGF0CgkgIHdlIGhhdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSwgd2UgY2FuIGp1c3QgcmV0dXJuIE5VTEwgYW5kIHRoZQoJICBhcHByb3ByaWF0ZSBlcnJvciB3aGVuIGdzdF9wYXJzZV9sYXVuY2goKSBpcyB1c2VkIGRlc3BpdGUgaXQgaGF2aW5nCgkgIGJlZW4gZGlzYWJsZWQgKCMzNDI1NjQpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1kaXNhYmxlZC5jOgoJICBNYWtlIHN1cmUgdGhlc2UgZnVuY3Rpb25zIGV4aXN0IGFuZCByZXR1cm4gTlVMTCBwbHVzIGEgR0Vycm9yIHdoZW4KCSAgLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuCgoyMDA3LTA1LTA5IDEwOjAxOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IFNldCBhIGdvb2QgZXhhbXBsZSBhbmQgZG9uJ3QgbGVhayBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6IChtYWluKToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzogKG1haW4pOgoJICBTZXQgYSBnb29kIGV4YW1wbGUgYW5kIGRvbid0IGxlYWsgbWVzc2FnZXMuCgoyMDA3LTA1LTA2IDE4OjI3OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogQ29ycmVjdCBmaXh4cmVmcyBvcHRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIENvcnJlY3QgZml4eHJlZnMgb3B0aW9ucy4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgKGdzdF9jYXBzZmlsdGVyX2RldGFpbHMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oIChfX0dTVF9DQVBTRklMVEVSX0hfXywKCSAgR1NUX1RZUEVfQ0FQU0ZJTFRFUiwgR1NUX0NBUFNGSUxURVIsIEdTVF9DQVBTRklMVEVSX0NMQVNTLAoJICBHU1RfSVNfQ0FQU0ZJTFRFUiwgR1NUX0lTX0NBUFNGSUxURVJfQ0xBU1MsIEdzdENhcHNGaWx0ZXIsCgkgIEdzdENhcHNGaWx0ZXJDbGFzcywgX0dzdENhcHNGaWx0ZXIsIHRyYW5zLCBmaWx0ZXJfY2FwcywKCSAgX0dzdENhcHNGaWx0ZXJDbGFzcywgdHJhbnNfY2xhc3MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYyAobmFtZSwgcmFuaywgdHlwZSwgX2VsZW1lbnRzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3RfdGltZXN0YW1wLAoJICBnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6CgkgIERvY3VtZW50IGNhcHNmaWx0ZXIgYW5kIGFkZCBkb2MtYmx1cmIgdG8gaWRlbnRpdHkuCgoyMDA3LTA1LTA0IDEyOjM3OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IERvbid0IGNyYXNoIGlmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGFuIGludGVycG9sYXRpb24gbW9kZSB0aGF0IGlzIGludmFsaWQgb3IgdGhhdCBpc24ndCBzdXBwb3J0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIERvbid0IGNyYXNoIGlmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGFuIGludGVycG9sYXRpb24gbW9kZSB0aGF0CgkgIGlzIGludmFsaWQgb3IgdGhhdCBpc24ndCBzdXBwb3J0ZWQgeWV0LiBGaXhlcyAjNDIyMjk1LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgYSB0ZXN0IGNhc2UgZm9yIHRoZSBhYm92ZS4KCjIwMDctMDUtMDMgMTY6NDQ6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJvcGVybHkgc2V0IHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gb24gR3N0U2VnbWVudC4gVGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIHRoZXJlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBQcm9wZXJseSBzZXQgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBvbiBHc3RTZWdtZW50LiBUaGlzIHdpbGwgb25seSBoYXBwZW4KCSAgaWYgdGhlcmUgaXMgYSBidWZmZXIgdG8gcHVzaCBvdXQuCgoyMDA3LTA1LTAzIDE0OjU4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IGFsd2F5c19pbl9wbGFjZSBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHNpbmsgYW5kIHNvdXJjZSBjYXBzIGFyZSB0aGUgc2FtZSEgTWFrZSBzdXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIGFsd2F5c19pbl9wbGFjZSBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHNpbmsgYW5kIHNvdXJjZSBjYXBzIGFyZSB0aGUKCSAgc2FtZSEgTWFrZSBzdXJlIHdlIGRvbid0IGJsaW5kbHkgcHJveHkgdGhlIGJ1ZmZlcl9hbGxvYyBpbiB0aGlzIGNhc2UuCgoyMDA3LTA1LTAzIDE0OjU0OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLiBBZGRlZCBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBlYXNpbHkgZ2V0IHRoZSBsYXRlbmN5IHZhbHVlcyBvZiB0aGUgYmFzZSBzb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQVBJOiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLiBBZGRlZCBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbgoJICBlYXNpbHkgZ2V0IHRoZSBsYXRlbmN5IHZhbHVlcyBvZiB0aGUgYmFzZSBzb3VyY2UgY2xhc3MuCgoyMDA3LTA1LTAzIDA5OjI0OjU4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfaW1wbGVtZW50YXRpb25faW5mbyk6IFJlbW92ZSAwLjggY3J1ZnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2ltcGxlbWVudGF0aW9uX2luZm8pOgoJICBSZW1vdmUgMC44IGNydWZ0LgoKMjAwNy0wNS0wMiAxNzowOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogRG9uJ3QgY3JlYXRlIGEgY3VzdG9taXNlZCBtYW4gcGFnZSBiYXNlZCBvbiB0aGUgaG9zdCBhcmNoaXRlY3R1cmUsIGRlc2NyaWJlIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHBhdGggZ2VuZXJpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvbid0IGNyZWF0ZSBhIGN1c3RvbWlzZWQgbWFuIHBhZ2UgYmFzZWQgb24gdGhlIGhvc3QgYXJjaGl0ZWN0dXJlLAoJICBkZXNjcmliZSB0aGUgZGVmYXVsdCByZWdpc3RyeSBwYXRoIGdlbmVyaWNhbGx5LiBUaGF0IHdheSB0aGUgbWFuCgkgIHBhZ2UgaXMgdGhlIHNhbWUgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGFuZCBwYWNrYWdlcnMgaGF2ZSBvbmUKCSAgbXVsdGlsaWIgaXNzdWUgbGVzcyB0byBkZWFsIHdpdGguIEZpeGVzICM0MzQ5MjYuCgoyMDA3LTA1LTAyIDE1OjE0OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggZG9jdW1lbnRhdGlvbiBhcyBzcG90dGVkIGJ5IHJnIG9uIElSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jdW1lbnRhdGlvbiBhcyBzcG90dGVkIGJ5IHJnIG9uIElSQy4KCjIwMDctMDQtMjkgMTc6MzY6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBJbXByb3ZlIGRvY3MgZm9yIGdzdF9lbGVtZW50X3tsaW5rLHVubGlua30uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBJbXByb3ZlIGRvY3MgZm9yIGdzdF9lbGVtZW50X3tsaW5rLHVubGlua30uCgoyMDA3LTA0LTI5IDE0OjA0OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9SRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDctMDQtMjggMTE6Mjk6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBUeXBvIGZpeGVzOyBtaW5vciBkb2NzIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFR5cG8gZml4ZXM7IG1pbm9yIGRvY3MgYWRkaXRpb24uCgoyMDA3LTA0LTI3IDA4OjMwOjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCgpLCB3aGljaCBjaGVja3MgaWYgYW4gc2luayBvciBzcmMgdGhhdCBzdXBwb3J0cyBhIGdpdmVuIFVSSSBwcm90b2NvbCBleGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ2V0X2VsZW1lbnRfZmFjdG9yaWVzX2Zyb21fdXJpX3Byb3RvY29sKSwKCSAgKGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKSwgKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgQVBJOiBBZGQgZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQoKSwgd2hpY2ggY2hlY2tzIGlmIGFuIHNpbmsKCSAgb3Igc3JjIHRoYXQgc3VwcG9ydHMgYSBnaXZlbiBVUkkgcHJvdG9jb2wgZXhpc3RzLgoKMjAwNy0wNC0yNyAwNzozNDoxMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNldCB0aGUgbG9jYXRpb24gdG8gTlVMTCBpZiAiZmlsZTovLyIgaXMgc2V0IGFzIFVSSS4gT3RoZXJ3aXNlIHNvbWUgcmFuZG9tIHByZXZpb3VzIFVSSSB3b3VsZCBzdGlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgU2V0IHRoZSBsb2NhdGlvbiB0byBOVUxMIGlmICJmaWxlOi8vIiBpcyBzZXQgYXMgVVJJLiBPdGhlcndpc2UKCSAgc29tZSByYW5kb20gcHJldmlvdXMgVVJJIHdvdWxkIHN0aWxsIGJlIHNldCBpZiAiZmlsZTovLyIgaXMKCSAgc2V0IG9uIGFuIGFscmVhZHkgdXNlZCBmaWxlc2luay9maWxlc3JjLgoKMjAwNy0wNC0yNyAwNzoyNzozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNwZWNpYWwgY2FzZSB0aGUgImZpbGU6Ly8iIFVSSSBhcyBhcyB0aGlzIGlzIHVzZWQgYnkgc29tZSBhcHBsaWNhdGlvbnMgdG8gdGVzdCB3aXRoIGdzdF9lbGVtZW50X21hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgU3BlY2lhbCBjYXNlIHRoZSAiZmlsZTovLyIgVVJJIGFzIGFzIHRoaXMgaXMgdXNlZCBieSBzb21lCgkgIGFwcGxpY2F0aW9ucyB0byB0ZXN0IHdpdGggZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSBpZiB0aGVyZSdzCgkgIGFuIGVsZW1lbnQgdGhhdCBzdXBwb3J0cyB0aGUgVVJJIHByb3RvY29sLgoJICBBbHNvIG1vdmUgdGhlIGdfcGF0aF9pc19hYnNvbHV0ZSgpIGNoZWNrIGZvciB0aGUgbG9jYXRpb24gcGFydAoJICBvZiB0aGUgVVJJIHRvIGFsc28gY2hlY2sgdGhpcyBmb3IgImZpbGU6Ly9sb2NhbGhvc3QvYmxhIiBVUklzLgoKMjAwNy0wNC0yNiAxMDowMDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBwbHVzIHVuaXQgdGVzdCAoIzQzMTk0MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9idWZmZXJfc3VpdGUpOgoJICBBUEk6IGFkZCBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgcGx1cyB1bml0IHRlc3QgKCM0MzE5NDApLgoKMjAwNy0wNC0yNiAwNzozMjowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IEltcGxlbWVudCBuby1tbWFwIGFsdGVybmF0aXZlIGZvciByZWdpc3RyeSByZWFkaW5nLiBEbyBjb2RlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEltcGxlbWVudCBuby1tbWFwIGFsdGVybmF0aXZlIGZvciByZWdpc3RyeSByZWFkaW5nLiBEbyBjb2RlIGNsZWFudXBzLgoJICBBZGQgbW9yZSBjb21tZW50cyBhYm91dCBhdm9pZGluZyBzdHJkdXBzIGZvciBhbGwgdGV4dCBkYXRhLiBDb21tZW50cwoJICB3ZWxjb21lLgoKMjAwNy0wNC0yNSAxMjozMDoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmggKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50LAoJICBHc3RCaW5hcnlQbHVnaW5GZWF0dXJlLCBfR3N0QmluYXJ5RWxlbWVudEZhY3RvcnksIHBsdWdpbl9mZWF0dXJlLAoJICBHc3RCaW5hcnlFbGVtZW50RmFjdG9yeSwgX0dzdEJpbmFyeVR5cGVGaW5kRmFjdG9yeSwgcGx1Z2luX2ZlYXR1cmUpOgoJICBDb21tZW50IHN0cnVjdHMgYW5kIHJlZm9ybWF0IHRvIGZpeCB0aGUgYnVpbGQgKHRoYXQgc3R1ZmYgc2hvdWxkIGdvCgkgIGludG8gYSBwcml2LiBoZWFkZXIpLgoKMjAwNy0wNC0yNSAxMTo0NDoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IFJlZmFjdG9yIHNvIHRoYXQgd2UgY2FuIGltcGxlbWVudCBtdWx0aXBsZSBmZWF0dXJlcy4gQWRkIHN1cHBvcnQgZm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBSZWZhY3RvciBzbyB0aGF0IHdlIGNhbiBpbXBsZW1lbnQgbXVsdGlwbGUgZmVhdHVyZXMuIEFkZCBzdXBwb3J0IGZvcgoJICBUeXBlRmluZEZhY3RvcnkgZmVhdHVyZXMuCgoyMDA3LTA0LTI0IDA2OjE0OjM1ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPFBldGVyLktqZWxsZXJzdGVkdEBheGlzLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IEFNX0NPTkRJVElPTkFMKEdTVF9ESVNBQkxFX0dTVF9ERUJVRywuLi4pIGFuZCB1cGRhdGUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPFBldGVyLktqZWxsZXJzdGVkdEBheGlzLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBBTV9DT05ESVRJT05BTChHU1RfRElTQUJMRV9HU1RfREVCVUcsLi4uKSBhbmQgdXBkYXRlIGNvbW1lbnQuCgoyMDA3LTA0LTIzIDA3OjMwOjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBidWlsZCB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEZpeCBidWlsZCB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgoyMDA3LTA0LTIxIDEzOjI3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSBzdHJlYW1pbmcgaGFzIGZpbmlzaGVkIGJlZm9yZSBjYWxsaW5nIHRoZSA6OnN0b3AoKSB2ZnVuYywgc2luY2UgdGhhdCB2ZnVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgTWFrZSBzdXJlIHN0cmVhbWluZyBoYXMgZmluaXNoZWQgYmVmb3JlIGNhbGxpbmcgdGhlIDo6c3RvcCgpIHZmdW5jLAoJICBzaW5jZSB0aGF0IHZmdW5jIG1pZ2h0IGNsZWFyIHN0YXRlIHdoaWNoIGlzIGJlaW5nIHVzZWQgaW4gdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuIFRoaXMgZml4ZXMgYSByYWNlIHRoYXQgY2F1c2VkIGNyYXNoZXMgaW4KCSAgYXVkaW9yZXNhbXBsZSB3aGVuIHNodXR0aW5nIGRvd24gYSBwaXBlbGluZSAoIzQyMDEwNikuCgoyMDA3LTA0LTIwIDA4OjUzOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBUaGF0IHdhcyBvbmUgYnl0ZSBtaXNzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBUaGF0IHdhcyBvbmUgYnl0ZSBtaXNzaW5nLgoKMjAwNy0wNC0yMCAwODozOTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgMm5kIGF0dGVtcHQgdG8gaGF2ZSBhIHhtbC1sZXNzIGJ1aWxkIGFzIGEgam9pbmVkIGVmZm9ydCBvZiAjNDEzMTIzIGFuZCAjNDIxNDgwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2lnbmFsX29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIDJuZCBhdHRlbXB0IHRvIGhhdmUgYSB4bWwtbGVzcyBidWlsZCBhcyBhIGpvaW5lZCBlZmZvcnQgb2YgIzQxMzEyMwoJICBhbmQgIzQyMTQ4MC4KCjIwMDctMDQtMjAgMDg6MjE6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OiBBZGRlZCBvcGVuIGlzc3Vlcy90aG91Z2h0cyB0byBkcmFmdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIEFkZGVkIG9wZW4gaXNzdWVzL3Rob3VnaHRzIHRvIGRyYWZ0LgoKMjAwNy0wNC0xOSAxNDozMjo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlLzogVXBkYXRlIHRoZSBwcmVidWlsZCBwYXJzZXIgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFVwZGF0ZSB0aGUgcHJlYnVpbGQgcGFyc2VyIHNvdXJjZXMuCgoyMDA3LTA0LTE5IDE0OjIzOjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEFuZCBub3cgZml4IHRoZSBidWlsZGluZyBvZiB0aGUgZmxleCBzb3VyY2VzLiBOb3cgZXZlcnl0aGluZyBzaG91bGQgd29yayBhcyBleHBlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBBbmQgbm93IGZpeCB0aGUgYnVpbGRpbmcgb2YgdGhlIGZsZXggc291cmNlcy4gTm93IGV2ZXJ5dGhpbmcgc2hvdWxkCgkgIHdvcmsgYXMgZXhwZWN0ZWQuCgoyMDA3LTA0LTE5IDE0OjA2OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE5vdyBob3BlZnVsbHkgZml4IHRoZSBidWlsZCBmYWlsdXJlcyBieSBzZXR0aW5nIHByb3BlciBydWxlIGRlcGVuZGVuY2llcyBhbmQgbW92aW5nIGluc3RlYWQgb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBOb3cgaG9wZWZ1bGx5IGZpeCB0aGUgYnVpbGQgZmFpbHVyZXMgYnkgc2V0dGluZyBwcm9wZXIgcnVsZQoJICBkZXBlbmRlbmNpZXMgYW5kIG1vdmluZyBpbnN0ZWFkIG9mIGNvcHlpbmcuCgoyMDA3LTA0LTE5IDEwOjQzOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogVG90YWwgbGljZW5zaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuZ251cGxvdDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5nbnVwbG90OgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5zY206CgkgIFRvdGFsIGxpY2Vuc2lmaWNhdGlvbi4KCjIwMDctMDQtMTkgMTA6MjI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IHRoZSBidWlsZCBieSBjb3JyZWN0aW5nIHRoZSBydWxlIHRoYXQgZ2F2ZSB3cm9uZyBmaWxlcyB0byBmbGV4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCB0aGUgYnVpbGQgYnkgY29ycmVjdGluZyB0aGUgcnVsZSB0aGF0IGdhdmUgd3JvbmcgZmlsZXMgdG8gZmxleC4KCjIwMDctMDQtMTkgMDg6NDA6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBDaGFuZ2UgbGljZW5jZSB0byBMR1BMIGFzIGdyYW50ZWQgYnkgQmVuamFtaW4gYW5kIEFuZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBDaGFuZ2UgbGljZW5jZSB0byBMR1BMIGFzIGdyYW50ZWQgYnkgQmVuamFtaW4gYW5kIEFuZHkuCgoyMDA3LTA0LTE5IDA2OjE4OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEFkZCBjb3JyZWN0IGdyYW1tYXIudGFiLmggZGVwZW5kZW5jeSBpZiBjb21waWxpbmcgd2l0aG91dCBuZXcgZW5vdWdoIGZsZXguIEZpeGVzICM0MzExNTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgQWRkIGNvcnJlY3QgZ3JhbW1hci50YWIuaCBkZXBlbmRlbmN5IGlmIGNvbXBpbGluZyB3aXRob3V0IG5ldyBlbm91Z2gKCSAgZmxleC4gRml4ZXMgIzQzMTE1MC4KCjIwMDctMDQtMTggMTM6MzQ6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IHR5cG8gYW5kIHVzZSBvdXRkYXRlZCBzb3VyY2VzIGlmIHRoZSBmbGV4L2Jpc29uIHNvdXJjZXMgYXJlIG5ld2VyIHRoYW4gdGhlIHByZWdlbmVyYXRlZCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCB0eXBvIGFuZCB1c2Ugb3V0ZGF0ZWQgc291cmNlcyBpZiB0aGUgZmxleC9iaXNvbiBzb3VyY2VzIGFyZSBuZXdlcgoJICB0aGFuIHRoZSBwcmVnZW5lcmF0ZWQgb25lcyBidXQgZmxleCBpcyB0b28gb2xkLiBQcmludCBhIHdhcm5pbmcgaW4KCSAgdGhhdCBjYXNlLiBUaGlzIHNob3VsZCBmaXggdGhlIGJ1aWxkIG9uIHRoZSBidWlsZCBib3QuCgoyMDA3LTA0LTE4IDEyOjM0OjUxICswMDAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvOiBNYWtlIHRoZSBwYXJzZXIgcmVlbnRyYW50IGFuZCByZWN1cnNpdmVseSBjYWxsYWJsZS4gVGhpcyByZXF1aXJlcyBmbGV4ID49IDIuNS4zMSwgZm9yIG9sZGVyIHZlcnNpb25zIHByZWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlIGRvdCBsdXJlYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgTWFrZSB0aGUgcGFyc2VyIHJlZW50cmFudCBhbmQgcmVjdXJzaXZlbHkgY2FsbGFibGUuIFRoaXMgcmVxdWlyZXMgZmxleAoJICA+PSAyLjUuMzEsIGZvciBvbGRlciB2ZXJzaW9ucyBwcmVnZW5lcmF0ZWQgc291cmNlcyBhcmUgdXNlZCBhcyB3ZQoJICBjYW4ndCBidW1wIHRoZSBidWlsZCBkZXBlbmRlbmN5LiBGaW5hbGx5IGZpeGVzICMzNDkxODAuCgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgRHJvcCB0aGUgSEFWRV9NVF9TQVZFX0ZMRVggI2lmZGVmcyBhcyB3ZSBhbHdheXMgdXNlIGEgbmV3IGVub3VnaCBmbGV4CgkgIG5vdyBhbnl3YXkuCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOiAoX19nc3RfcGFyc2Vfc3RyZHVwKSwKCSAgKF9fZ3N0X3BhcnNlX3N0cmZyZWUpLCAoX19nc3RfcGFyc2VfbGlua19uZXcpLAoJICAoX19nc3RfcGFyc2VfbGlua19mcmVlKSwgKF9fZ3N0X3BhcnNlX2NoYWluX25ldyksCgkgIChfX2dzdF9wYXJzZV9jaGFpbl9mcmVlKSwgKFNFVF9FUlJPUiksIChZWVBSSU5URiksCgkgIChnc3RfcGFyc2VfZWxlbWVudF9zZXQpLCAoZ3N0X3BhcnNlX2ZyZWVfbGluayksCgkgIChnc3RfcGFyc2VfZm91bmRfcGFkKSwgKGdzdF9wYXJzZV9wZXJmb3JtX2RlbGF5ZWRfbGluayksCgkgIChnc3RfcGFyc2VfcGVyZm9ybV9saW5rKSwgKHl5dG5hbWVyciksICh5eXN5bnRheF9lcnJvciksICh5eWVycm9yKSwKCSAgKF9nc3RfcGFyc2VfbGF1bmNoKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiAoUFJJTlQpLCAoeXlfZ2V0X25leHRfYnVmZmVyKSwKCSAgKHl5X2dldF9wcmV2aW91c19zdGF0ZSksICh5eV90cnlfTlVMX3RyYW5zKSwgKGlucHV0KSwKCSAgKF9nc3RfcGFyc2VfeXlyZXN0YXJ0KSwgKF9nc3RfcGFyc2VfeXlfc3dpdGNoX3RvX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2xvYWRfYnVmZmVyX3N0YXRlKSwgKF9nc3RfcGFyc2VfeXlfY3JlYXRlX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2RlbGV0ZV9idWZmZXIpLCAoX2dzdF9wYXJzZV95eV9pbml0X2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2ZsdXNoX2J1ZmZlciksIChfZ3N0X3BhcnNlX3l5cHVzaF9idWZmZXJfc3RhdGUpLAoJICAoX2dzdF9wYXJzZV95eXBvcF9idWZmZXJfc3RhdGUpLAoJICAoX2dzdF9wYXJzZV95eWVuc3VyZV9idWZmZXJfc3RhY2spLCAoX2dzdF9wYXJzZV95eV9zY2FuX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X3NjYW5fc3RyaW5nKSwgKF9nc3RfcGFyc2VfeXlfc2Nhbl9ieXRlcyksCgkgICh5eV9mYXRhbF9lcnJvciksIChfZ3N0X3BhcnNlX3l5Z2V0X2V4dHJhKSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfbGluZW5vKSwgKF9nc3RfcGFyc2VfeXlnZXRfY29sdW1uKSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfaW4pLCAoX2dzdF9wYXJzZV95eWdldF9vdXQpLAoJICAoX2dzdF9wYXJzZV95eWdldF9sZW5nKSwgKF9nc3RfcGFyc2VfeXlnZXRfdGV4dCksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2V4dHJhKSwgKF9nc3RfcGFyc2VfeXlzZXRfbGluZW5vKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfY29sdW1uKSwgKF9nc3RfcGFyc2VfeXlzZXRfaW4pLAoJICAoX2dzdF9wYXJzZV95eXNldF9vdXQpLCAoX2dzdF9wYXJzZV95eWdldF9kZWJ1ZyksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2RlYnVnKSwgKF9nc3RfcGFyc2VfeXlnZXRfbHZhbCksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2x2YWwpLCAoX2dzdF9wYXJzZV95eWxleF9pbml0KSwKCSAgKHl5X2luaXRfZ2xvYmFscyksIChfZ3N0X3BhcnNlX3l5bGV4X2Rlc3Ryb3kpLCAoeXlfZmxleF9zdHJuY3B5KSwKCSAgKHl5X2ZsZXhfc3RybGVuKSwgKF9nc3RfcGFyc2VfeXlhbGxvYyksIChfZ3N0X3BhcnNlX3l5cmVhbGxvYyksCgkgIChfZ3N0X3BhcnNlX3l5ZnJlZSk6CgkgIElmIHRoZSBpbnN0YWxsZWQgZmxleCB2ZXJzaW9uIGlzIHRvbyBvbGQgdXNlIHByZS1nZW5lcmF0ZWQgcGFyc2VyCgkgIHNvdXJjZXMuIFRoZXNlIHByZS1nZW5lcmF0ZWQgcGFyc2VyIHNvdXJjZXMgYXJlIGFsd2F5cyB1cGRhdGVkIHdoZW4KCSAgdGhlIGFjdHVhbCBmbGV4L2Jpc29uIHNvdXJjZXMgY2hhbmdlIGJ1dCByZXF1aXJlIGV2ZXJ5Ym9keSB3aG8gd2FudHMKCSAgdG8gY2hhbmdlIHNvbWV0aGluZyBpbiB0aGUgcGFyc2VyIHRvIGhhdmUgZmxleCA+PSAyLjUuMzEgaW5zdGFsbGVkLgoKMjAwNy0wNC0xOCAxMDo1ODozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFrZSAtLWRpc2FibGUtbmxzIHRvIHdvcmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL200L2dzdC1nZXR0ZXh0Lm00OgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgTWFrZSAtLWRpc2FibGUtbmxzIHRvIHdvcmsKCjIwMDctMDQtMTcgMTY6MTI6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdGhhdCBicm9rZSB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB0aGF0IGJyb2tlIHRoZSBidWlsZC4KCjIwMDctMDQtMTcgMTQ6MzY6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBNQU5QQVRIIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTUFOUEFUSCBmaXgKCjIwMDctMDQtMTcgMTA6NDY6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERyb3AgbGlieG1sMiBkZXBlbmRlbmN5IHdoZW4gYnVpbGRpbmcgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgRHJvcCBsaWJ4bWwyIGRlcGVuZGVuY3kgd2hlbiBidWlsZGluZyB3aXRoCgkgIC0tZW5hYmxlLWJpbmFyeS1yZWdpc3RyeSAtLWRpc2FibGUtbG9hZHNhdmUKCjIwMDctMDQtMTYgMjE6NDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGZpeCB0aGUgcmVsZWFzZSBkYXRlIGluIHRoZSBkb2FwIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0aGUgcmVsZWFzZSBkYXRlIGluIHRoZSBkb2FwIGZpbGUKCjIwMDctMDQtMTYgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogUmVtb3ZlIHVubmVjZXNzYXJ5IDxzeXMvbW1hbi5oPiBpbmNsdWRlIHdoaWNoIGJyb2tlIHRoZSB3aW4zMiBidWlsZCB3aXRoIE1pbmdXOyBtb3ZlIGluY2x1ZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSA8c3lzL21tYW4uaD4gaW5jbHVkZSB3aGljaCBicm9rZSB0aGUgd2luMzIgYnVpbGQKCSAgd2l0aCBNaW5nVzsgbW92ZSBpbmNsdWRlcyBmcm9tIGhlYWRlciBmaWxlIHRvIC5jIGZpbGUsIGV2ZW4gaWYgdGhlCgkgIGhlYWRlciBmaWxlIGlzbid0IGluc3RhbGxlZDsgdXNlIGdfc3RyZXJyb3IoKSB3aGVyZSBVVEYtOCBzdHJpbmdzCgkgIGFyZSBleHBlY3RlZCwgc3VjaCBhcyBpbiBHU1RfREVCVUcgbWVzc2FnZXMuCgoyMDA3LTA0LTEzIDE1OjE1OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IFJlbW92ZSBib2d1cyBhZGRpdGlvbiBmb3IgQVBJIEkgZGlkbid0IGVuZCB1cCBrZWVwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgYm9ndXMgYWRkaXRpb24gZm9yIEFQSSBJIGRpZG4ndCBlbmQgdXAga2VlcGluZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWVudGlvbiBTaW5jZTogMC4xMC4xMyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgQWRkIHRoZSBBUEkga2V5d29yZCB0byB0aGUgcHJldmlvdXMgQ2hhbmdlTG9nIGVudHJ5LgoKMjAwNy0wNC0xMyAxNDoxODo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBbGxvdyBiYXNlc3JjIGRlcml2ZWQgY2xhc3NlcyB0byBleGVjdXRlIHNlZWtzIGluIG90aGVyIGZvcm1hdHMgYnkgcHJvdmlkaW5nIGEgcHJlcGFyZV9zZWVrX3NlZ21lbnQgdm1ldGhvZC4gU3ViLWNsYXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3ByZXBhcmVfc2Vla19zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19wcmVwYXJlX3NlZWtfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWxsb3cgYmFzZXNyYyBkZXJpdmVkIGNsYXNzZXMgdG8gZXhlY3V0ZSBzZWVrcyBpbiBvdGhlciBmb3JtYXRzCgkgIGJ5IHByb3ZpZGluZyBhIHByZXBhcmVfc2Vla19zZWdtZW50IHZtZXRob2QuIFN1Yi1jbGFzc2VzIGNhbiBjaG9vc2UKCSAgdG8gcHJlcGFyZSB0aGUgR3N0U2VnbWVudCBpbiBhbnkgZm9ybWF0IHRoYXQgdGhlaXIgcGVyZm9ybV9zZWVrIG1ldGhvZAoJICB3aWxsIGJlIGFibGUgdG8gdW5kZXJzdGFuZC4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgdGhlCgkgIG9sZCBiZWhhdmlvdXIgb2YgYXR0ZW1wdGluZyB0byBjb252ZXJ0IHRoZSBzZWVrIG9mZnNldHMgdG8gdGhlCgkgIGNvbmZpZ3VyZWQgbmF0aXZlIGZvcm1hdC4KCjIwMDctMDQtMTMgMTE6NTM6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3Qgb3V0cHV0IHRoZSBzYW1lIGRlYnVnIHN0YXRlbWVudCB0d2ljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKToKCSAgRG9uJ3Qgb3V0cHV0IHRoZSBzYW1lIGRlYnVnIHN0YXRlbWVudCB0d2ljZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3RyeV90b19tZXJnZV91cCksCgkgIChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgT3B0aW1pc2UgdGhlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBidWZmZXJzIGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSB0aGF0CgkgIGNhbiBiZSBqb2luZWQgcXVpY2tseSAoYmVjYXVzZSB0aGV5J3JlIGNvbnRpZ3VvdXMgc3ViLWJ1ZmZlcnMpIGJ5CgkgIG1lcmdpbmcgdGhlbSB0b2dldGhlciByYXRoZXIgdGhhbiBjb3B5aW5nIGRhdGEgb3V0IGludG8gbmV3IG1lbW9yeS4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRml4IGEgbGVhayBpbiBhbiBlcnJvciBwYXRoIGZvciBwYXJzZV9sYXVuY2gsIGFuZCBhZGQgYSBjaGVjawoJICBmb3IgaXQgdG8gdGhlIHRlc3RzdWl0ZS4KCjIwMDctMDQtMTMgMTE6MjA6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IGRlYWRsb2NrIHdoZW4gcmVsZWFzaW5nIGEgcGFkIC0gZ3N0X3BhZF9zZXRfYWN0aXZlIG1heSB0cnkgYW5kIHRha2UgdGhlIG11bHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKToKCSAgRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWxlYXNpbmcgYSBwYWQgLSBnc3RfcGFkX3NldF9hY3RpdmUgbWF5IHRyeQoJICBhbmQgdGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHRvby4KCjIwMDctMDQtMTIgMTI6NTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQVBJOiBhZGQgR1NUX0NPUkVfRVJST1JfRElTQUJMRUQgKCMzOTI4MDQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFQSTogYWRkIEdTVF9DT1JFX0VSUk9SX0RJU0FCTEVEICgjMzkyODA0KS4KCjIwMDctMDQtMTIgMTA6MzI6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBkb24ndCBnZXQgZW1wdHkgcGF0aHMgb24gdGhlIFBBVEggdmFyaWFibGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9uJ3QgZ2V0IGVtcHR5IHBhdGhzIG9uIHRoZSBQQVRIIHZhcmlhYmxlcwoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9pc19hY3RpdmUsIGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBEb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiB0ZXJtaW5hbCB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzLgoKMjAwNy0wNC0wOSAxMTo1OToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgoyMDA3LTA0LTA5IDA4OjE3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gZWRpdG9yIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIGVkaXRvciB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzCgoyMDA3LTA0LTA2IDExOjQ4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IE9ubHkgdHJ5IHRvIHNlbGVjdCBhIGRpZmZlcmVudCBwaXBlbGluZSBjbG9jayB3aGVuIHdlIHdlbnQgYmFjayB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKHJlc2V0X3N0cmVhbV90aW1lKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBPbmx5IHRyeSB0byBzZWxlY3QgYSBkaWZmZXJlbnQgcGlwZWxpbmUgY2xvY2sgd2hlbiB3ZSB3ZW50IGJhY2sgdG8KCSAgUEFVU0VEIGFuZCBub3Qgd2hlbiB3ZSBtZXJlbHkgZ290IGZsdXNoZWQuCgoyMDA3LTA0LTA1IDE2OjE3OjI0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IGZyYWN0aW9ucyBhcmUgYmV0dGVyIHN1cHBvcnRlZCBpbiBnc3RyZWFtZXIgdGhhbiByYWN0aW9ucywgc28gc3VnZ2VzdCB1c2luZyB0aG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBmcmFjdGlvbnMgYXJlIGJldHRlciBzdXBwb3J0ZWQgaW4gZ3N0cmVhbWVyIHRoYW4gcmFjdGlvbnMsIHNvCgkgIHN1Z2dlc3QgdXNpbmcgdGhvc2UuCgoyMDA3LTA0LTA1IDEzOjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL25sLnBvOgoJICB1cGRhdGUgZHV0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkdXRjaAoKMjAwNy0wNC0wNSAxMzo0Njo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFN1Ym1pdHRlZCBieTogTW9nZW5zIEphZWdlciA8bW9nZW5zQGphZWdlci50Zj4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2RhLnBvOgoJICBBZGRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA0LTA1IDExOjE2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggbGVhayBjYXVzZWQgd2hlbiByZWZ1c2luZyBuZXdzZWdtZW50IGFmdGVyIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIEZpeCBsZWFrIGNhdXNlZCB3aGVuIHJlZnVzaW5nIG5ld3NlZ21lbnQgYWZ0ZXIgRU9TLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2luaXQpLCAoZ3N0X2Zha2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKSwKCSAgKGdzdF9mYWtlX3NpbmtfcmVuZGVyKSwgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBlbGVtZW50IGdlbmVyYXRlIEVPUyBhZnRlciBhCgkgIGNvbmZpZ3VyYWJsZSBhbW91bnQgb2YgYnVmZmVycy4KCSAgQVBJOiBmYWtlc2luazo6bnVtLWJ1ZmZlcnMgcHJvcGVydHkuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgRml4IEdzdEJ1cyBsZWFrIGluIHRlc3QuCgkgIFRlc3QgZm9yIGZha2VzaW5rIG51bS1idWZmZXJzLgoKMjAwNy0wNC0wNSAxMDoxMDowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgYWNjZXB0IGFueXRoaW5nIGFmdGVyIGFuIEVPUywgcmV0dXJuIFVORVhQRUNURUQgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGFjY2VwdCBhbnl0aGluZyBhZnRlciBhbiBFT1MsIHJldHVybiBVTkVYUEVDVEVEIGluc3RlYWQuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBuZXcgRU9TIGJlaGF2aW91ci4KCjIwMDctMDQtMDUgMTA6MDg6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBNYWtlIHBhZHRlbXBsYXRlcyBhbHNvIHdvcmsgd2hlbiB0aGV5IGRvbid0IGNvbnRhaW4gJXMgb3IgJWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQpOgoJICBNYWtlIHBhZHRlbXBsYXRlcyBhbHNvIHdvcmsgd2hlbiB0aGV5IGRvbid0IGNvbnRhaW4gJXMgb3IgJWQuCgoyMDA3LTA0LTA1IDEwOjA2OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wcm92ZSBfYWRqdXN0X3VubG9ja2VkKCkgc28gdGhhdCBpdCBvdmVyZmxvd3MgbGVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkKSwgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBJbXByb3ZlIF9hZGp1c3RfdW5sb2NrZWQoKSBzbyB0aGF0IGl0IG92ZXJmbG93cyBsZXNzLgoJICBBZGQgZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkIHRvIGNvbnZlcnQgZnJvbSBleHRlcm5hbCB0aW1lIHRvCgkgIGludGVybmFsIHRpbWUgYmFzZWQgb24gY2FsaWJyYXRpb24uCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIEFQSTogR3N0Q2xvY2s6OmdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCgpCgoyMDA3LTA0LTAzIDExOjAyOjQxICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERlYWN0aXZhdGUgcGFkcyBhbmQgZnJlZSBHc3RTaW5nbGVRdWV1ZSB3aXRoIGdzdF9zaW5nbGVfcXVldWVfZnJlZSgpIHdoZW4gcmVsZWFzaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKToKCSAgRGVhY3RpdmF0ZSBwYWRzIGFuZCBmcmVlIEdzdFNpbmdsZVF1ZXVlIHdpdGggZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKCkKCSAgd2hlbiByZWxlYXNpbmcgc2luayBwYWQuIEZpeGVzICM0MjU0MDAuCgoyMDA3LTA0LTAyIDE0OjQ4OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OiBNb3JlIHdvcmsgb24gcHJvcG9zYWwgZm9yIG5ldyBjb3JlIGFwaS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgTW9yZSB3b3JrIG9uIHByb3Bvc2FsIGZvciBuZXcgY29yZSBhcGkuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQVBJOiBHU1RfQkFTRV9UUkFOU0ZPUk1fTE9DSy9VTkxPQ0sgYWRkZWQKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKG9uX29iamVjdF9jb250cm9sbGVkX3Byb3BlcnR5X2NoYW5nZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIExlc3MgdmVyYm9zZSBsb2dnaW5nIGFkZCBkb2NzIGZvciB1bmltcGxlbWVudGVkIHBhcnRzIGFuZCBjb3JyZWN0bHkKCSAgcmV0dXJuIHdoZW4gdXNpbmcgdW5hdmFpbGFibGUgcGFydHMuCgoyMDA3LTAzLTI5IDE2OjA0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNb3ZlIGFsbCB0aGUgZGVidWcgdG8gdGhlIENMT0NLIGNhdGVnb3J5LCBhbmQgYXNzb2NpYXRlIGl0IHdpdGggdGhlIGNsb2NrIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIE1vdmUgYWxsIHRoZSBkZWJ1ZyB0byB0aGUgQ0xPQ0sgY2F0ZWdvcnksIGFuZCBhc3NvY2lhdGUgaXQgd2l0aAoJICB0aGUgY2xvY2sgb2JqZWN0LgoKMjAwNy0wMy0yOSAxNTo1MzowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogTWFrZSB0YWtlX2J1ZmZlciBhIGJpdCBxdWlja2VyIGJ5IHJlbW92aW5nIHJlZHVuZGFudCBjaGVja3MgY2F1c2VkIGJ5IGNhbGxpbmcgZ3N0X2FkYXB0ZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIE1ha2UgdGFrZV9idWZmZXIgYSBiaXQgcXVpY2tlciBieSByZW1vdmluZyByZWR1bmRhbnQgY2hlY2tzCgkgIGNhdXNlZCBieSBjYWxsaW5nIGdzdF9hZGFwdGVyX3Rha2UuCgoyMDA3LTAzLTI4IDE4OjM4OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IGxlYWsgR0NvbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKToKCSAgRG9uJ3QgbGVhayBHQ29uZC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKHNldHVwX211bHRpcXVldWUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEFkZCBzb21lIGRlYWQgc2ltcGxlIHVuaXQgdGVzdHMgZm9yIHRoZSAnbXVsdGlxdWV1ZScgZWxlbWVudAoJICAoc29tZSBiaXRzIGRvbid0IHdvcmsgeWV0IGFuZCBhcmUgZGlzYWJsZWQgZm9yIG5vdykuCgoyMDA3LTAzLTI4IDE4OjI1OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTWFrZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBjcmVhdGUgcmVxdWVzdCBwYWRzIG9ubHkgZm9yIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyBhbmQgbm90IGZvciwgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfZ2V0X3JlcXVlc3RfcGFkX3RlbXBsYXRlKToKCSAgTWFrZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBjcmVhdGUgcmVxdWVzdCBwYWRzIG9ubHkgZm9yCgkgIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyBhbmQgbm90IGZvciwgc2F5LCBzb21ldGltZXMgcGFkIHRlbXBsYXRlcy4KCjIwMDctMDMtMjggMTM6NDQ6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGV4YW1wbGUgdGhhdCBuZWVkcyBtb3JlIHRoaW5raW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBleGFtcGxlIHRoYXQgbmVlZHMgbW9yZSB0aGlua2luZy4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBNb3JlIHRob3VnaHRzIGFib3V0IHd0cmFwcGVyIHBsdWdpbnMuCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBNb3JlIGRlc2lnbiB3b3JrLgoKMjAwNy0wMy0yNSAxNTozMzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBPbmx5IHB1c2ggdGhlIHNlZ21lbnQgZXZlbnRzIGluIHRoZSBQTEFZSU5HIHN0YXRlIGZvciBsaXZlIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIE9ubHkgcHVzaCB0aGUgc2VnbWVudCBldmVudHMgaW4gdGhlIFBMQVlJTkcgc3RhdGUgZm9yIGxpdmUgc291cmNlcy4KCjIwMDctMDMtMjMgMTc6NTI6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IE1vZGlmeSB0aGUgY2xvY2sgZGlzdHJpYnV0aW9uIHBhdGggaW4gUEFVU0VELT5QTEFZSU5HIHNvIHRoYXQgd2UgbmV2ZXIgYXR0ZW1wdCB0byBjaG9vc2UgYSBuZXcgY2xvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIE1vZGlmeSB0aGUgY2xvY2sgZGlzdHJpYnV0aW9uIHBhdGggaW4gUEFVU0VELT5QTEFZSU5HIHNvIHRoYXQgd2UKCSAgbmV2ZXIgYXR0ZW1wdCB0byBjaG9vc2UgYSBuZXcgY2xvY2sgdW5sZXNzIHdlJ3JlIGFjdHVhbGx5IGxlYXZpbmcKCSAgdGhlIFBBVVNFRCBzdGF0ZSBmb3IgdGhlIGZpcnN0IHRpbWUuIFRoaXMgcHJldmVudHMgY2hvb3NpbmcgYQoJICBkaWZmZXJlbnQgY2xvY2sgd2hlbiB0aGUgc3RhdGVfY2hhbmdlIGdldHMgY2FsbGVkIGZvciBhIDJuZCB0aW1lIGR1ZQoJICB0byBzb21lIGVsZW1lbnQgZG9pbmcgYW4gYXN5bmMgc3RhdGUgY2hhbmdlLgoKMjAwNy0wMy0yMiAxODoyODowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgbGFzdCBjb21taXQuIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKToKCSAgUmV2ZXJ0IGxhc3QgY29tbWl0LiBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMDctMDMtMjIgMTc6MTI6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogQ2hlY2sgaW4gc2V0X2NhcHMgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgcGFkIGFuZCByZW1vdmUgdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWR1bmRhbnQgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKToKCSAgQ2hlY2sgaW4gc2V0X2NhcHMgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgcGFkIGFuZCByZW1vdmUKCSAgdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWR1bmRhbnQgbm93LiBGaXhlcyAjNDIxNTQzLgoKMjAwNy0wMy0yMiAxMjozMTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBVbnJlZiBzb21lIG1vcmUgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChtaXhlZF90aHJlYWQpLCAobWl4ZWRfYXN5bmNfY2IpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgVW5yZWYgc29tZSBtb3JlIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgoyMDA3LTAzLTIyIDExOjU4OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEZpeCBhbm95aW5nIHJlZ3Jlc3Npb24gdGhhdCBzdXJ2aXZlZCBhIGZldyByZWxlYXNlcy4gV2hlbiBhZGRpbmcgYW4gYXN5bmMgZW50cnkgd2hpbGUgYmxvY2tpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUpOgoJICBGaXggYW5veWluZyByZWdyZXNzaW9uIHRoYXQgc3Vydml2ZWQgYSBmZXcgcmVsZWFzZXMuIFdoZW4gYWRkaW5nIGFuCgkgIGFzeW5jIGVudHJ5IHdoaWxlIGJsb2NraW5nIG9uIGEgc3luYyBlbnRyeSwgdGhlIHN5bmMgZW50cnkgd2lsbCB1bmJsb2NrCgkgIGJ1dCBzdGlsbCBiZSBidXN5LCBzbyBpdCBzaG91bGQgY29udGludWUgdG8gd2FpdCBpbnN0ZWFkIG9mIHJldHVybmluZwoJICBfQlVTWSB0byB0aGUgYXBwLgoJICBBZGQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKG1peGVkX3RocmVhZCksCgkgIChtaXhlZF9hc3luY19jYiksIChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHRoaXMuCgoyMDA3LTAzLTIyIDExOjE5OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgY2xvY2sgc3luYyBiZXR0ZXIsIG9ubHkgVU5TQ0hFRFVMRUQgaW5kaWNhdGVzIGEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgSGFuZGxlIGVycm9ycyBmcm9tIHRoZSBjbG9jayBzeW5jIGJldHRlciwgb25seSBVTlNDSEVEVUxFRCBpbmRpY2F0ZXMgYQoJICBXUk9OR19TVEFURSBhbmQgY2FuIHNpbGVudGx5IHBhdXNlIHRoZSB0YXNrLiBBbGwgb3RoZXIgY2FzZXMgc2hvdWxkCgkgIGVycm9yIG91dC4KCjIwMDctMDMtMjIgMDg6MjM6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBwb3NzaWJsZSBkZWFkbG9jayBpZiBwYWQgZXZlbnRmdW5jIGlzIG5vdCBzcGVjaWZpZWQuICBGaXhlcyAjNDIxMTc3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxzeXJqYWxhIGF0IHNjaSBkb3QgZmk+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBGaXggcG9zc2libGUgZGVhZGxvY2sgaWYgcGFkIGV2ZW50ZnVuYyBpcyBub3Qgc3BlY2lmaWVkLiAgRml4ZXMgIzQyMTE3Ny4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAzLTIxIDE4OjEzOjQwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCBzb21lIGVycm9ycyBpbiB0aGUgdHlwZWZpbmRpbmcgZG9jcyBwb2ludGVkIG91dCBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHNvbWUgZXJyb3JzIGluIHRoZSB0eXBlZmluZGluZyBkb2NzIHBvaW50ZWQgb3V0IG9uIGlyYy4KCjIwMDctMDMtMjEgMTc6NTA6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENsYXJpZnkgRklYTUUgY29tbWVudCBpbiB0aGUgZmFjZSBvZiBoYXZpbmcgYWRkZWQgdW5sb2NrX3N0b3AoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgQ2xhcmlmeSBGSVhNRSBjb21tZW50IGluIHRoZSBmYWNlIG9mIGhhdmluZyBhZGRlZCB1bmxvY2tfc3RvcCgpCgoyMDA3LTAzLTIxIDExOjUyOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBQcmVwYXJlIGZvciByZWxlYXNlIHdoZXJlIHdlIHdhcm4gYWdhaW5zdCBwb3NzaWJsZSBhcHAgYnJlYWthZ2UgaW4gdGhlIGNhc2Ugb2YgbGl2ZSBwaXBlbGluZXMgYWxvbmcgd2l0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFByZXBhcmUgZm9yIHJlbGVhc2Ugd2hlcmUgd2Ugd2FybiBhZ2FpbnN0IHBvc3NpYmxlIGFwcCBicmVha2FnZSBpbiB0aGUKCSAgY2FzZSBvZiBsaXZlIHBpcGVsaW5lcyBhbG9uZyB3aXRoIGFuIGVudiB2YXIgdG8gZW5hYmxlL2Rpc2FibGUgbGl2ZQoJICBwcmVyb2xsIG1vZGUgKEdTVF9DT01QQVQ9W25vLV1saXZlLXByZXJvbGwpLgoKMjAwNy0wMy0yMCAxNDoyNToxNSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOiBTbyB3ZSBzaG91bGQgdXNlIGNvcnJlY3QgY29uc3RhbnRzIGZvciBjaGVja2luZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KToKCSAgU28gd2Ugc2hvdWxkIHVzZSBjb3JyZWN0IGNvbnN0YW50cyBmb3IgY2hlY2tpbmcgZm9yIE5vbmUgb2Zmc2V0LgoKMjAwNy0wMy0yMCAxNDoxNzo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBNZW50aW9uIHRoZSBmYWN0IHRoYXQgdGhlIG5ld2x5IHN3aXRjaGVkIGVsZW1lbnQgc2hvdWxkIGJlIHNldCB0byBhdCBsZWFzdCBQQVVTRUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBNZW50aW9uIHRoZSBmYWN0IHRoYXQgdGhlIG5ld2x5IHN3aXRjaGVkIGVsZW1lbnQgc2hvdWxkIGJlIHNldCB0byBhdAoJICBsZWFzdCBQQVVTRUQuCgoyMDA3LTAzLTIwIDEwOjIzOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggY29tcGlsYXRpb24gd2l0aCByZWdpc3RyeSBkaXNhYmxlZCBhcyBzcG90dGVkIGJ5IFNhdXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggcmVnaXN0cnkgZGlzYWJsZWQgYXMgc3BvdHRlZCBieSBTYXVyLgoKMjAwNy0wMy0yMCAwOTo0NjoxMSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IExvb2sgYXQgdGhlIHBlbmRpbmcgc3RhdGUgdG9vIHdoZW4gc3luY2luZyB0aGUgZWxlbWVudCBzdGF0ZSB0byB0aGUgcGFyZW50LiBGaXhlcyAjNDIwMTMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KToKCSAgTG9vayBhdCB0aGUgcGVuZGluZyBzdGF0ZSB0b28gd2hlbiBzeW5jaW5nIHRoZSBlbGVtZW50IHN0YXRlIHRvIHRoZQoJICBwYXJlbnQuIEZpeGVzICM0MjAxMzMuCgoyMDA3LTAzLTE5IDE1OjAxOjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBBZGQgOjp1bmxvY2tfc3RvcCB0byBiYXNlc3JjIGFuZCBiYXNlc2luay4gVGhpcyBhbGxvd3MgYW4gb3Bwb3J0dW5pdHkgZm9yIHN1Yi1jbGFzc2VzIHRvIGNvcnJlY3RseSBjbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlYWN0aXZhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgOjp1bmxvY2tfc3RvcCB0byBiYXNlc3JjIGFuZCBiYXNlc2luay4gVGhpcyBhbGxvd3MgYW4gb3Bwb3J0dW5pdHkKCSAgZm9yIHN1Yi1jbGFzc2VzIHRvIGNvcnJlY3RseSBjbGVhciBhbnkgc3RhdGUgdGhleSBzZXQgdHJ5aW5nIHRvCgkgIHVubG9jaywgc3VjaCBhcyBjbGVhcmluZyBvdXQgdW5sb2NrIGNvbW1hbmRzIGZyb20gYSBjb21tYW5kIGZkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX3JlbmRlciksIChnc3RfZmRfc2lua191bmxvY2spLAoJICAoZ3N0X2ZkX3NpbmtfdW5sb2NrX3N0b3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY191bmxvY2spLCAoZ3N0X2ZkX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSksIChnc3RfZmRfc3JjX2dldF9zaXplKSwgKGdzdF9mZF9zcmNfZG9fc2Vlayk6CgkgIEltcGxlbWVudCB1bmxvY2tfc3RvcCBpbiBmZHNyYyBhbmQgZmRzaW5rLgoJICBJbXBsZW1lbnQgc2Vla2luZyBpbiBmZHNyYyB3aGVuIGEgc2Vla2FibGUgZmQgaXMgcGFzc2VkLCBhcyBpbgoJICBnc3QtbGF1bmNoLTAuMTAgZmRzcmMgISAuLi4gISB4dmltYWdlc2luayA8IC9wYXRoL3RvL2ZpbGUKCjIwMDctMDMtMTkgMTI6MDc6MzIgKzAwMDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMuZGFzaC5ncm91cC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBGaXggcGFkLWFkZGVkIGFuZCBwYWQtcmVtb3ZlZCBzaWduYWwgc2lnbmF0dXJlcyBzbyB0aGF0IHRoZSBwYWQgdHlwZSBpcyBzdGF0ZWQgYXMgR1NUX1RZUEVfUEFEIGluc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBFdmFuIE5lbWVyc29uIDxldmFuIGF0IGNvZXVzIGRhc2ggZ3JvdXAgZG90IGNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIEZpeCBwYWQtYWRkZWQgYW5kIHBhZC1yZW1vdmVkIHNpZ25hbCBzaWduYXR1cmVzIHNvIHRoYXQgdGhlIHBhZCB0eXBlIGlzCgkgIHN0YXRlZCBhcyBHU1RfVFlQRV9QQUQgaW5zdGVhZCBvZiBHX1RZUEVfT0JKRUNULiBGaXhlcyAjNDE5ODUxLgoKMjAwNy0wMy0xOSAxMDo0Nzo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZWxlbWVudCBmaWVsZCBhbmQgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGVsZW1lbnQgZmllbGQgYW5kIG1ldGhvZC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY29udGludWVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLCAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTWFrZSBhc3luYyBzdGF0ZSBjaGFuZ2VzIGEgYml0IHNtYXJ0ZXIgYnkgdXNpbmcgbmV3IEFTWU5DX1NUQVJUIGFuZAoJICBBU1lOQ19ET05FIG1lc3NhZ2VzLiBUaGlzIHJlZHVjZXMgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBydW4gdGhlIHN0YXRlCgkgIHJlY2FsY3VsYXRpb24gdGhyZWFkLgoJICBEb24ndCBjaGFuZ2Ugc3RhdGUgb2YgZWxlbWVudCB3aXRoIGEgcGVuZGluZyBBU1lOQ19TVEFSVCBtZXNzYWdlLgoJICBEZXByZWNhdGUgU1RBVEVfRElSVFkgbWVzc2FnZXMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLCAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgS2VlcCB0aGUgc3RhdGUgdGhhdCB3YXMgbGFzdCBzZXQgYnkgdGhlIGFwcCBpbiBhIG5ldyBlbGVtZW50IGZpZWxkLgoJICBEb24ndCBhbGxvdyBzdGF0ZSBjaGFuZ2VzIHdoZW4gaGFuZGxpbmcgYW4gZWxlbWVudCBldmVudC4KCSAgUG9zdCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcy4KCSAgQ2hhbmdlIGxvc3Rfc3RhdGUgc28gdGhhdCB3ZSBnbyB0byBQQVVTRUQgYW5kIHdhaXQgZm9yIHRoZSBwYXJlbnQgdG8gc2V0CgkgIHVzIHRvIFBMQVlJTkcgYWdhaW4gKHNvIGxhdGVuY3kgY2FsY3VsYXRpb24gY2FuIGJlIHBlcmZvcm1lZCkKCSAgRXhwb3J0IGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSgpIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KCSAgQVBJOiBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUoKQoJICBBUEk6IEdTVF9TVEFURV9UQVJHRVQKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKHJlc2V0X3N0cmVhbV90aW1lKSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgVXNpbmcgdGhlIG5ldyBBU1lOQ19TVEFSVCBtZXNzYWdlIHdlIGNhbiByZXNldCB0aGUgYmFzZV90aW1lIHdoZW4KCSAgbmVlZGVkLiBUaGlzIGNhbiB0aGVuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGJhc2VfdGltZSByZWRpc3RyaWJ1dGlvbiBpbgoJICBmbHVzaGluZyBzZWVrcyBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlIGV4cGxpY2l0IHNlZWsgaGFuZGxpbmcuCgkgIFBlcmZvcm0gbGF0ZW5jeSBxdWVyeSBhbmQgY29uZmlndXJhdGlvbiB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFBvc3QgbmV3IEFTWU5DX1NUQVJUL0FTWU5DX0RPTkUgbWVzc2FnZXMuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGVzdCBiZWNhdXNlIHRoZSBiaW4gd2lsbCBub3Qgc2V0IHRoZSBhc3luYyBlbGVtZW50IHRvIFBMQVlJTkcgcmlnaHQKCSAgYXdheS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfYXN5bmNfZG9uZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIG1lc3NhZ2UgY2hlY2sgYSBsaXR0bGUgc3Ryb25nZXIuCgkgIEhhbmRsZSBBU1lOQyBtZXNzYWdlcy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEV4cGVjdCBBU1lOQ19ET05FIG1lc3NhZ2VzLgoKMjAwNy0wMy0xOSAwOTo1NTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyB0byBwcmVwYXJlIGZvciBsYXRlbmN5IHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19hc3luY19zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2FzeW5jX3N0YXJ0KToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgdG8gcHJlcGFyZSBmb3IgbGF0ZW5jeQoJICBzdXBwb3J0LgoKMjAwNy0wMy0xNSAyMjozMzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0eXBvcwoKMjAwNy0wMy0xNSAxMjozNzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IE5vdyB0aGF0IHdlIGRvbid0IGNoZWNrIGZvciB0aGUgJ0NvZGVjJyBrZXl3b3JkIGFueSBsb25nZXIgaW4gdGhlIGtsYXNzLCB3ZSBzaG91bGRuJ3Qgc3BldyBhIHdhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKToKCSAgTm93IHRoYXQgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZSAnQ29kZWMnIGtleXdvcmQgYW55IGxvbmdlciBpbiB0aGUKCSAga2xhc3MsIHdlIHNob3VsZG4ndCBzcGV3IGEgd2FybmluZyBpZiB0aGUga2xhc3MgaXNuJ3QgYSBkZWNvZGVyIG9yCgkgIGVuY29kZXIgKHNpbmNlIGl0IG1pZ2h0IGJlIGEgU291cmNlL05ldHdvcmssIGZvciBleGFtcGxlKS4KCjIwMDctMDMtMTQgMTc6MjQ6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBEb24ndCByZXF1aXJlIGRlY29kZXIvZGVtdXhlci9kZXBheWxvYWRlciBlbGVtZW50cyBvciBlbmNvZGVyL211eGVyL3BheWxhZGVyIGVsZW1lbnRzIHRvIGhhdmUgJ0MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyk6CgkgIERvbid0IHJlcXVpcmUgZGVjb2Rlci9kZW11eGVyL2RlcGF5bG9hZGVyIGVsZW1lbnRzIG9yCgkgIGVuY29kZXIvbXV4ZXIvcGF5bGFkZXIgZWxlbWVudHMgdG8gaGF2ZSAnQ29kZWMnIGFzIHBhcnQgb2YgdGhlaXIKCSAgZmFjdG9yeSBjbGFzcyBzdHJpbmcgd2hlbiBpbnRyb3NwZWN0aW5nIGEgcGx1Z2luJ3MgY2FwYWJpbGl0aWVzLgoJICBkcmFmdC1rbGFzcy50eHQgbWVudGlvbnMgdGhhdCBpdCBtaWdodCBiZSByZW1vdmVkIGluIGZ1dHVyZSwgYW5kCgkgIGZsdW1wM2RlYyBkb2Vzbid0IGhhdmUgaXQgYXMgcGFydCBvZiBpdHMgY2xhc3Mgc3RyaW5nLCBzbyBjaGFuY2VzCgkgIGFyZSBvdGhlcnMgbWlnaHQgYWxzbyBub3QgaGF2ZSBpdC4KCjIwMDctMDMtMTQgMTU6NDI6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vaTE4bjoKCSAgdXBkYXRlIGkxOG4gZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgaTE4biBkb2MKCjIwMDctMDMtMTQgMTU6MTc6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICByZWZvcm1hdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVmb3JtYXQKCjIwMDctMDMtMTQgMTU6MTU6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gdHJhbnNsYXRpb24gcHJvamVjdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9iZy5wbzoKCSAgKiBwby9jYS5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9kZS5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9mci5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9ydS5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby90ci5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgKiBwby96aF9DTi5wbzoKCSAgKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QKCjIwMDctMDMtMTQgMTM6NDA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEludmVydCBwcmVjb25kaXRpb24gY2hlY2sgdG8gYmUgYWxpa2UgdGhlIG9uZXMgaW4gdGhlIG1pbWljZWQgZ29iamVjdCBhcGkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpOgoJICBJbnZlcnQgcHJlY29uZGl0aW9uIGNoZWNrIHRvIGJlIGFsaWtlIHRoZSBvbmVzIGluIHRoZSBtaW1pY2VkIGdvYmplY3QKCSAgYXBpLgoKMjAwNy0wMy0xNCAxMToyMTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGZpeCBtaXNsZWFkaW5nIGxvZyBzdGF0ZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBtaXNsZWFkaW5nIGxvZyBzdGF0ZW1lbnQKCjIwMDctMDMtMTMgMTQ6NTM6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBEbyBzb21lIEFyY2hpdGVjdCB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2F1ZGlvYmFzZWNsYXNzZXMudHh0OgoJICBEbyBzb21lIEFyY2hpdGVjdCB3b3JrLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWUpOgoJICBBZGQgYSBXQVJOSU5HLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgQWRkIGRvY3MgdGhhdCBwb2ludCBmcm9tIGdzdF9wYWRfZ2V0X3JhbmdlIHRvIGdzdF9wYWRfcHVsbF9yYW5nZQoKMjAwNy0wMy0xMiAxNToyNzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogRGVmZXIgc3RhcnRpbmcgdGhlIGFzeW5jIHN5c3RlbSBjbG9jayB0aHJlYWQgdW50aWwgdGhlIGZpcnN0IGFzeW5jIHdhaXQgaXMgc2NoZWR1bGVkLiBGaXhlcyAjNDEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19zdGFydF9hc3luYyksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpOgoJICBEZWZlciBzdGFydGluZyB0aGUgYXN5bmMgc3lzdGVtIGNsb2NrIHRocmVhZCB1bnRpbCB0aGUgZmlyc3QgYXN5bmMKCSAgd2FpdCBpcyBzY2hlZHVsZWQuIEZpeGVzICM0MTQ5ODYuCgoyMDA3LTAzLTEyIDE0OjIzOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBzbWFsbCBsZWFrIChmcmVlIEdzdFNpbmdsZVF1ZXVlIHN0cnVjdHVyZSB0b28sIG5vdCBvbmx5IGNvbnRlbnRzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKToKCSAgRml4IHNtYWxsIGxlYWsgKGZyZWUgR3N0U2luZ2xlUXVldWUgc3RydWN0dXJlIHRvbywgbm90IG9ubHkgY29udGVudHMpLgoKMjAwNy0wMy0xMCAxNTo0NDo0NCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgR1NUX1NUUl9OVUxMIHRvIHByZXZlbnQgTlVMTCBwb2ludGVyIHRvIGJlIHBhc3NlZCB0byBHU1RfQ0FUX0RFQlVHLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6KGdzdF9iaW5fYWRkKToKCSAgVXNlIEdTVF9TVFJfTlVMTCB0byBwcmV2ZW50IE5VTEwgcG9pbnRlciB0byBiZSBwYXNzZWQgdG8gR1NUX0NBVF9ERUJVRy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wMy0wOSAxNjozOToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6IEZpeCBHc3RUZWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgRml4IEdzdFRlZSBkb2NzLgoKMjAwNy0wMy0wOSAxNjozMDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4gRml4ZXMgIzM5MzA5OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2NvcHlfbWV0YWRhdGEpLCAoX2dzdF9idWZmZXJfY29weSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuIEZpeGVzICMzOTMwOTkuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYnVmZmVyX3N0YW1wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBVc2UgbmV3IG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLgoKMjAwNy0wMy0wOSAxNDoyMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IFNlcGFyYXRlIG91dCBjaGVjay1pbXBlcmZlY3QtdGltZXN0YW1wIGFuZCBjaGVjay1pbXBlcmZlY3Qtb2Zmc2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X3RpbWVzdGFtcCksCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCksIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBTZXBhcmF0ZSBvdXQgY2hlY2staW1wZXJmZWN0LXRpbWVzdGFtcCBhbmQgY2hlY2staW1wZXJmZWN0LW9mZnNldC4KCSAgUHV0IGJhY2sgY2hlY2stcGVyZmVjdCBhcyBpdCB3YXMgdG8ga2VlcCBjb21wYXRpYmlsaXR5LgoKMjAwNy0wMy0wOSAxMjozNDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBUaGVyZSdzIG5vIG5lZWQgdG8gd2FybiBpZiBWT0lEX1BFTkRJTkcgaXMgbm90IE5PTkUgaGVyZSwgYXMgbG9uZyBhcyB0aGUgc3RhdGUgaXMgTlVMTCBpdCdzIG9rLCBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBUaGVyZSdzIG5vIG5lZWQgdG8gd2FybiBpZiBWT0lEX1BFTkRJTkcgaXMgbm90IE5PTkUgaGVyZSwgYXMKCSAgbG9uZyBhcyB0aGUgc3RhdGUgaXMgTlVMTCBpdCdzIG9rLCBhbmQgdGhhdCdzIGNoZWNrZWQgaW1tZWRpYXRlbHkKCSAgYWJvdmUuCgoyMDA3LTAzLTA4IDE3OjU4OjU3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBGaXggY2hlY2sgZm9yIHBlcmZlY3Qgc3RyZWFtIHRvIGlnbm9yZSBidWZmZXJzIHdpdGggLTEgb2Zmc2V0cy9vZmZzZXQgZW5kcyB3aGVuIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA4ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBGaXggY2hlY2sgZm9yIHBlcmZlY3Qgc3RyZWFtIHRvIGlnbm9yZSBidWZmZXJzIHdpdGggLTEKCSAgb2Zmc2V0cy9vZmZzZXQgZW5kcyB3aGVuIGNoZWNraW5nIGRhdGEgY29udGlndWl0eS4KCjIwMDctMDMtMDggMTY6MjY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IElORk8gbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBJTkZPIG1lc3NhZ2VzLgoKMjAwNy0wMy0wOCAxMTo0MDoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBBZGQgc3VwcG9ydCBmb3IgZHJvcHBpbmcgYnVmZmVycyB3aXRoIGN1c3RvbSBHc3RGbG93UmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQWRkIHN1cHBvcnQgZm9yIGRyb3BwaW5nIGJ1ZmZlcnMgd2l0aCBjdXN0b20gR3N0Rmxvd1JldHVybi4KCSAgU2V0IERJU0NPTlQgZmxhZ3Mgb24gb3V0Z29pbmcgYnVmZmVycyBiYXNlZCBvbiBRb1MsIGluY29tbWluZyBESVNDT05UCgkgIGJ1ZmZlcnMgb3IgZHJvcHBlZCBidWZmZXJzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3MgZm9yIG5ldyBjdXN0b20gcmV0dXJuIGNvZGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFVzZSBkcm9wIHN1cHBvcnQgaW4gYmFzZSBjbGFzcyB0byBpbXBsZW1lbnQgZHJvcC1wcm9iYWJpbGl0eS4KCjIwMDctMDMtMDcgMTc6MjY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgbmV3bGluZXMgYXQgZW5kIG9mIGRlYnVnIGxvZyBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChsb2FkX3BsdWdpbl9mdW5jKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfYnlfbmFtZSksIChnc3RfcGx1Z2luX2xvYWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0dHJhY2UuYzogKGdzdF90cmFjZV9uZXcpLCAoZ3N0X2FsbG9jX3RyYWNlX3NldF9mbGFnc19hbGwpOgoJICBSZW1vdmUgbmV3bGluZXMgYXQgZW5kIG9mIGRlYnVnIGxvZyBzdHJpbmdzLgoKMjAwNy0wMy0wNyAxNzoxNDo1MyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogT25seSBwb3N0IGJ1cyBtZXNzYWdlIGF0IG1heCwgb25jZSBwZXIgYnVmZmVyIHJlY2VpdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgT25seSBwb3N0IGJ1cyBtZXNzYWdlIGF0IG1heCwgb25jZSBwZXIgYnVmZmVyIHJlY2VpdmVkLgoKMjAwNy0wMy0wNyAxNzoxMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogQWRkIGRvYyBhYm91dCBzeW5jaHJvbmlzYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBBZGQgZG9jIGFib3V0IHN5bmNocm9uaXNhdGlvbgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA3LTAzLTA3IDE3OjA5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdHJlYW1lci5kb2FwOiBVcGRhdGUgdGhlIGRvYXAgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgIFVwZGF0ZSB0aGUgZG9hcCBmaWxlLgoKMjAwNy0wMy0wNyAxNzowMjo1MSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUmVuYW1lIG5vbi1wZXJmZWN0IHRvIGltcGVyZmVjdCBmb3IgTWlrZSBhbmQgZm9yIHRoZSBzYW5jdGl0eSBvZiB0aGUgbGFuZ3VhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBSZW5hbWUgbm9uLXBlcmZlY3QgdG8gaW1wZXJmZWN0IGZvciBNaWtlIGFuZCBmb3IgdGhlIHNhbmN0aXR5IG9mCgkgIHRoZSBsYW5ndWFnZS4KCSAgQWxzbyBtYWtlIHN1cmUgYnVzIG1lc3NhZ2UgZ2V0cyBlbWl0dGVkIGZvciBkYXRhLWluY29udGlndWl0aWVzLgoKMjAwNy0wMy0wNyAxNjo1ODo0MiArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogRW1pdCBidXMgbWVzc2FnZSBpZiBjaGVjay1wZXJmZWN0IGlzIHRydWUgYW5kIHdlIGVuY291bnRlciBhIG5vbi1wZXJmZWN0IHN0cmVhbSBiZXR3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV9zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBFbWl0IGJ1cyBtZXNzYWdlIGlmIGNoZWNrLXBlcmZlY3QgaXMgdHJ1ZSBhbmQgd2UgZW5jb3VudGVyIGEKCSAgbm9uLXBlcmZlY3Qgc3RyZWFtIGJldHdlZW4gMiBjb25zZWN1dGl2ZSBidWZmZXJzLgoJICBGaXhlcyAjNDE1Mzk0LgoKMjAwNy0wMy0wNyAxNjo1NTowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTIgPT09CgoyMDA3LTAzLTA3IDE2OjQ0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjEyCgoyMDA3LTAzLTA3IDE2OjMxOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wMy0wNyAxMjo1MToyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBjb21tb246CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wMy0wMSAxODo0NjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFZlcnNpb24gMC4xMC4xMS4yICgwLjEwLjEyIHByZS1yZWxlYXNlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFZlcnNpb24gMC4xMC4xMS4yICgwLjEwLjEyIHByZS1yZWxlYXNlKQoJICBCdW1wIGxpYnRvb2wgdmVyc2lvbmluZy4KCjIwMDctMDMtMDEgMTQ6NDk6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBMb2cgZmxvdy1uYW1lcyBhbmQgbm90IG51bWJlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBMb2cgZmxvdy1uYW1lcyBhbmQgbm90IG51bWJlcnMuCgoyMDA3LTAyLTI4IDE5OjI1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQ29udmVydCB0byBuZXcgQUdfR1NUIHN0eWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENvbnZlcnQgdG8gbmV3IEFHX0dTVCBzdHlsZS4KCjIwMDctMDItMjggMTg6NTE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHVucmVmIHF1ZXJ5IHR3aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpOgoJICBEb24ndCB1bnJlZiBxdWVyeSB0d2ljZS4KCjIwMDctMDItMjggMTY6NTc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSW1wbGVtZW50IEdzdE9iamVjdCAtPiBzdHJpbmcgdHJhbnNmb3JtIHNvIHdlIHByaW50IG9iamVjdCBuYW1lcyB3aGVuIHNlcmlhbGl6aW5nIEdWYWx1ZXMgY29udGFpbmluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX29iamVjdF9zdHJpbmcpLAoJICAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgSW1wbGVtZW50IEdzdE9iamVjdCAtPiBzdHJpbmcgdHJhbnNmb3JtIHNvIHdlIHByaW50IG9iamVjdCBuYW1lcwoJICB3aGVuIHNlcmlhbGl6aW5nIEdWYWx1ZXMgY29udGFpbmluZyBHc3RPYmplY3RzLgoKMjAwNy0wMi0yOCAxNjo1NTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgc3R1ZmYgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBzdHVmZiB0byBkb2NzLgoKMjAwNy0wMi0yOCAxNjo0NjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIGxhdGVuY3kgcXVlcnkgY29kZS4KCSAgRG9uJ3QgbGVhayBsYXRlbmN5IGV2ZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0yOCAxNjo0Mzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IEltcHJvdmUgZG9jcyBhIGxpdHRsZS4gQWRkZWQgU2luY2U6IGZvciBuZXcgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEltcHJvdmUgZG9jcyBhIGxpdHRsZS4gQWRkZWQgU2luY2U6IGZvciBuZXcgbWFjcm8uCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zaW5rKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhbmQgZG9jcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMjggMTY6NDA6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBIYW5kbGUgSU5GTyBtZXNzYWdlcyBmcm9tIHRoZSBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgSU5GTyBtZXNzYWdlcyBmcm9tIHRoZSBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIGFzIHdlbGwuCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgU21hbGwgY29kZSBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfaW5mbygpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbygpCgkgIEFkZCBJTkZPIG1lc3NhZ2UgY3JlYXRlIGFuZCBwYXJzZSBjb2RlLgoKMjAwNy0wMi0yOCAxNjozNTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWxzbyByZXBvcnQgdGhlIGxpdmUgcGFyYW1ldGVyIG9mIGEgbGF0ZW5jeSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X21pbl9tYXhfaW5pdCksIChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwKCSAgKGJpbl9xdWVyeV9sYXRlbmN5X2RvbmUpOgoJICBBbHNvIHJlcG9ydCB0aGUgbGl2ZSBwYXJhbWV0ZXIgb2YgYSBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wMi0yOCAxMjo1Nzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBwbHVnIHRlc3QgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGx1ZyB0ZXN0IGxlYWsKCjIwMDctMDItMjggMTI6NDM6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFjdHVhbGx5IHVzZSB0aGUgZW52IHZhciBmb3IgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFjdHVhbGx5IHVzZSB0aGUgZW52IHZhciBmb3IgdGVzdHMKCjIwMDctMDItMjggMTI6NDA6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQ29weSB0aGUgY3VycmVudCBnZW5lcmljL3N0YXRlcyBleGFtcGxlIGZyb20gLWJhc2UgYW5kIGFkYXB0IHNvIHdlIGNhbiB1c2UgdGhlIGV4YWN0IHNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBDb3B5IHRoZSBjdXJyZW50IGdlbmVyaWMvc3RhdGVzIGV4YW1wbGUgZnJvbSAtYmFzZSBhbmQgYWRhcHQgc28KCSAgd2UgY2FuIHVzZSB0aGUgZXhhY3Qgc2FtZSBjb2RlIGV2ZXJ5d2hlcmUuCgkgIENoZWNrIGEgU1RBVEVTX0lHTk9SRV9FTEVNRU5UUyBlbnYgdmFyIHdoaWNoIGNhbiBiZSB1c2VkCgkgIHRvIGlnbm9yZSBjZXJ0YWluIGVsZW1lbnQgZmFjdG9yaWVzIGZvciB0aGlzIHRlc3QsIHdoaWNoIGlzCgkgIHdoYXQgaXMgYmVpbmcgZG9uZSBpbiAtYmFzZQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBNZW50aW9uIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDA3LTAyLTI3IDE3OjIyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfYnVzX3RpbWVkX3BvcCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX3Bvc3QpLAoJICAoZ3N0X2J1c190aW1lZF9wb3ApLCAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQVBJOiBnc3RfYnVzX3RpbWVkX3BvcCgpCgkgIEltcGxlbWVudCBnc3RfYnVzX3RpbWVkX3BvcCgpIHRvIGRvIGEgYmxvY2tpbmcgdGltZWQgd2FpdCBmb3IgYQoJICBtZXNzYWdlIHRvIGFycml2ZSBvbiB0aGUgYnVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBvcF90aHJlYWQpLAoJICAoZ3N0X2J1c19zdWl0ZSk6CgkgIFR3byB1bml0IHRlc3RzIGZvciBuZXcgX3RpbWVkX3BvcCgpIGZ1bmN0aW9uLgoKMjAwNy0wMi0yMyAxNzo0MjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEb24ndCByZWYgYSBOVUxMIGNsb2NrIGluIF9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSk6CgkgIERvbid0IHJlZiBhIE5VTEwgY2xvY2sgaW4gX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBEb24ndCBhbGxvdyBhbiBJTlZBTElEIGRlbGF5LgoJICBEb24ndCB0cnkgdG8gY2FsY3VsYXRlIGJhc2VfdGltZSB3aXRoIGFuIGludmFsaWQgc3RhcnRfdGltZS4KCSAgQWxzbyBkaXN0cmlidXRlIGFuZCBub3RpZnkgYSBOVUxMIGNsb2NrIHdoZW4gaXQgd2FzIHNlbGVjdGVkLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBEb24ndCBjcmFzaCB3aGVuIGEgTlVMTCBjbG9jayB3YXMgc2VsZWN0ZWQgaW4gdGhlIHBpcGVsaW5lLgoKMjAwNy0wMi0yMyAxMzo0MjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvOiBTb21lIHNtYWxsIHVwZGF0ZXM6IHVwZGF0ZSBwbHVnaW4gc3lzdGVtIGlkZW50aWZpZXIgcHJlZml4IG1lbnRpb24gb3VyIG5ldyBpbnN0YWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBzbWFsbCB1cGRhdGVzOiB1cGRhdGUgcGx1Z2luIHN5c3RlbSBpZGVudGlmaWVyIHByZWZpeAoJICAoJ2dzdHJlYW1lci5uZXQnIHRvICdnc3RyZWFtZXInKSwgbWVudGlvbiBvdXIgbmV3IGluc3RhbGwKCSAgQVBJIGluIGxpYmdzdGJhc2V1dGlscyByYXRoZXIgdGhhbiBsaWJnaW1tZS1jb2RlYywgYWRkCgkgIHJlZmVyZW5jZSB0byB0aGUgb25saW5lIGRvY3MuCgoyMDA3LTAyLTIxIDE1OjM1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaDogUHJldHR5IHN1cmUgQmlsbCBuZXZlciBtYWRlIGEgcG93ZXJwYyB2ZXJzaW9uLiAgUG93ZXJwYyBoYWNrZXJzLCB1c2UgbW9hcCBjbCBjaSB0byBvbmx5IGNoZWNrIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFByZXR0eSBzdXJlIEJpbGwgbmV2ZXIgbWFkZSBhIHBvd2VycGMgdmVyc2lvbi4gIFBvd2VycGMgaGFja2VycywKCSAgdXNlIG1vYXAgY2wgY2kgdG8gb25seSBjaGVjayBpbiB3aGF0IGlzIG1lbnRpb25lZCBpbiB0aGUgQ2hhbmdlTG9nLgoKMjAwNy0wMi0yMSAxNTozNDoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBGaXggdXAgZG9jdW1lbnRhdGlvbiB0byBsaW5rIHRvIHRoZSBjb3JyZWN0IEdzdEdFcnJvciBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCB1cCBkb2N1bWVudGF0aW9uIHRvIGxpbmsgdG8gdGhlIGNvcnJlY3QgR3N0R0Vycm9yIHNlY3Rpb24uCgkgIEFkZCBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIHNpbmNlIHNvbWVvbmUgZWxzZSBhZGRlZCBhIEluZm8gbWVzc2FnZS4KCjIwMDctMDItMjEgMTU6MzA6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNYWtlIHN1cmUgdGhhdCB3ZSBhY3R1YWxseSBzaG93IHRoZSBpbXBvcnRhbnQgbWVzc2FnZSBwYXJ0IG9mIGEgd2FybmluZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBzdXJlIHRoYXQgd2UgYWN0dWFsbHkgc2hvdyB0aGUgaW1wb3J0YW50IG1lc3NhZ2UgcGFydCBvZiBhCgkgIHdhcm5pbmcgbWVzc2FnZS4KCSAgTm8gbmVlZCB0byBjaGVjayBpZiB0aGUgZ2Vycm9yIGlzIG5vdCBOVUxMIHRvIGZyZWU7IGZpcnN0IG9mIGFsbAoJICBnX2ZyZWUgYWNjZXB0cyBOVUxMOyBhbmQgc2Vjb25kIHRoZSBkZWZhdWx0IGVycm9yIGhhbmRsZXIgd291bGQKCSAgc2VnZmF1bHQgaWYgZ2Vycm9yIHdhcyBOVUxMLgoKMjAwNy0wMi0yMSAxMjoxMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZWQgZG9jcyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmVkIGRvY3MgYXMgd2VsbC4KCjIwMDctMDItMjEgMTI6MDE6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBSZW1vdmUgbmV3IG1lc3NhZ2VzIGZvciByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJlbW92ZSBuZXcgbWVzc2FnZXMgZm9yIHJlbGVhc2UuCgoyMDA3LTAyLTIwIDE4OjAyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSB0aGUgZ2hvc3RwYWQgYSBwYXJlbnQgb2YgdGhlIGludGVybmFsIHBhZCBhZ2FpbiBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIERvbid0IHdyaXRlIGNvZGUgdGhhdCByZWxpZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBNYWtlIHRoZSBnaG9zdHBhZCBhIHBhcmVudCBvZiB0aGUgaW50ZXJuYWwgcGFkIGFnYWluIGZvciBiZXR0ZXIgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eS4gRG9uJ3Qgd3JpdGUgY29kZSB0aGF0IHJlbGllcyBvbiB0aGlzIGhvd2V2ZXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KToKCSAgUmVxdWlyZSB0aGF0IHBhcmVudHMgc2hvdWxkIGJlIEdzdEVsZW1lbnRzIGluIHRoZSBoaWVyYXJjaHkgY2hlY2suCgoyMDA3LTAyLTIwIDEwOjQ1OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXByb3ZlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZXBsYWNlX21lc3NhZ2UpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9xdWVyeV9taW5fbWF4X2luaXQpLAoJICAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChiaW5fcXVlcnlfbGF0ZW5jeV9kb25lKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBJbXByb3ZlIGRlYnVnIGluZm8uCgkgIEltcGxlbWVudCBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wMi0yMCAxMDoxNjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvIG5vdCBzZXQgdGhlIGludGVybmFsIHBhZCBhcyBhIHBhcmVudCBhbnltb3JlIHNvIHdlIGNhbiBhdm9pZCBoaWVyYXJjaHkgbGlua2luZyBlcnJvcnMgd2hlbiB0aGUgZ2hvc3RwYWQgaGFzIG5vIHBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIERvIG5vdCBzZXQgdGhlIGludGVybmFsIHBhZCBhcyBhIHBhcmVudCBhbnltb3JlIHNvIHdlIGNhbiBhdm9pZAoJICBoaWVyYXJjaHkgbGlua2luZyBlcnJvcnMgd2hlbiB0aGUgZ2hvc3RwYWQgaGFzIG5vIHBhcmVudCB5ZXQuIFRoaXMgYWxzbwoJICBmaXhlcyBmYWlsZWQgYWN0aXZhdGlvbiBiZWNhdXNlIG9mIHVubGlua2VkIGludGVybmFsIHBhZHMsIHdoaWNoIGluCgkgIHR1cm4gZml4ZXMgdGhlIGltcG9zc2libGUgY2FzZSB3aGVyZSB5b3UgaGF2ZSB0byBhY3RpdmF0ZSBhIHBhZCBiZWZvcmUKCSAgeW91IGNhbiBhZGQgaXQgdG8gYSBydW5uaW5nIGVsZW1lbnQuCgkgIEFsc28gZml4IHRoZSBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSksIChwb3N0X2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgTWFyayBhY3RpdmF0aW9uIG1vZGUgaW4gcHJlX2FjdGl2YXRlIHNvIHRoYXQgd2UgZG9uJ3QgdHJ5IHRvIGFjdGl2YXRlIGluCgkgIGVuZGxlc3MgbG9vcHMuIEZpeGVzICMzODUwODQuCgoyMDA3LTAyLTE5IDE4OjA4OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEltcGxlbWVudCBhIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0IGNvcmUgYmVoYXZpb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoZWNrX2dldF9yYW5nZSk6CgkgIEltcGxlbWVudCBhIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0CgkgIGNvcmUgYmVoYXZpb3VyIHRoYXQgYXNzdW1lcyB3ZSBjYW4gb3BlcmF0ZSBpbiBwdWxsIG1vZGUgaWYgd2UgaGF2ZSBhCgkgIGdldHJhbmdlIGZ1bmN0aW9uLiBGaXJzdCBzdGVwIGF0IGZpeGluZyAjMzg1MDg0LgoKMjAwNy0wMi0xNSAxMjowNTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBkb2NzIGNvdmVyYWdlIGFuZCBzb21lIENoYW5nZUxvZyBzdXJnZXJ5IChhZGQgbWlzc2luZyBuYW1lcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1vcmUgZG9jcyBjb3ZlcmFnZSBhbmQgc29tZSBDaGFuZ2VMb2cgc3VyZ2VyeSAoYWRkIG1pc3NpbmcgbmFtZXMpCgoyMDA3LTAyLTE1IDExOjMyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIGRvYyB1cGRhdGVzLiBTdGFydCByZW5hbWluZyBmcm9tIHN0cmVhbV90aW1lIHRvIHJ1bm5pbmdfdGltZSB3aGVyZSBpdCB3YXMgdXNlZCB3cm9uZ2x5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIFNvbWUgZG9jIHVwZGF0ZXMuIFN0YXJ0IHJlbmFtaW5nIGZyb20gc3RyZWFtX3RpbWUgdG8gcnVubmluZ190aW1lIHdoZXJlCgkgIGl0IHdhcyB1c2VkIHdyb25nbHkuCgoyMDA3LTAyLTE1IDA5OjA3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFuc3dlciBMQVRFTkNZIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgQW5zd2VyIExBVEVOQ1kgcXVlcnkuCgoyMDA3LTAyLTE1IDA4OjQwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMTUgMDg6Mzc6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcHJvdmUgZGVidWdnaW5nIG9mIGRlZmF1bHQgcGFkIGRpc3BhdGNoZXIgYW5kIHF1ZXJ5IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2Rpc3BhdGNoZXIpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBkZWZhdWx0IHBhZCBkaXNwYXRjaGVyIGFuZCBxdWVyeSBmdW5jdGlvbnMuCgoyMDA3LTAyLTE1IDA4OjMxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlIG9sZCB1bnVzZWQgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgb2xkIHVudXNlZCBtZXRob2QuCgoyMDA3LTAyLTEzIDE1OjUxOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogRml4IGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBjaGVjawoKMjAwNy0wMi0xMyAxNTozNDoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6IFNvbWUgc21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIHNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBSZXZlcnQgb2xkIGJvZ3VzIGNoYW5nZSB0aGF0IHNob3VsZCBtYWtlIHNlZWtpbmcgd29yayBhZ2Fpbi4KCjIwMDctMDItMTMgMTQ6NTI6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBQb3NzaWJsZSBkeW5hbWljIHJlY29ubmVjdGlvbiBhcGksIHBsdXMgc29tZSB0eXBlIGZpeGVzIHRoZSBvdGhlciB0d28gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2ludGVyZmFjZXMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcmVjZWlwaWVzLnR4dDoKCSAgUG9zc2libGUgZHluYW1pYyByZWNvbm5lY3Rpb24gYXBpLCBwbHVzIHNvbWUgdHlwZSBmaXhlcyB0aGUgb3RoZXIgdHdvCgkgIGRvY3MuCgoyMDA3LTAyLTEzIDEzOjQwOjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxzbyBjaGVjayBmb3IgYW4gYWJzb2x1dGUgcGF0aCBmb2xsb3dpbmcgZmlsZTovLyBpbiB0aGUgZmlsZXNyYyBlbGVtZW50LiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBBbHNvIGNoZWNrIGZvciBhbiBhYnNvbHV0ZSBwYXRoIGZvbGxvd2luZyBmaWxlOi8vIGluIHRoZSBmaWxlc3JjCgkgIGVsZW1lbnQuIFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgYW5kIGNhbGwgZ19wYXRoX2lzX2Fic29sdXRlKCkgb24gdGhlCgkgIHVuZXNjYXBlZCBsb2NhdGlvbi4KCjIwMDctMDItMTMgMDk6MTA6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGV4aXN0aW5nIGNhdGVnb3J5IGFuYWx5c2lzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBleGlzdGluZyBjYXRlZ29yeSBhbmFseXNpcy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBGaXggZG9jIGV4YW1wbGUsIGZyYW1lcmF0ZSBpcyBhIGZyYWN0aW9uLgoKMjAwNy0wMi0xMiAxOTo1NToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGNyb3NzcmVmZXJlbmNlcyB0byBnbGliL2dvYmplY3QgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIEFkZCBjcm9zc3JlZmVyZW5jZXMgdG8gZ2xpYi9nb2JqZWN0IGRvY3MuCgoyMDA3LTAyLTEyIDExOjMyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9sYXRlbmN5KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3koKSB0byBsZXQgc3ViY2xhc3NlcyBxdWVyeSB0aGUgdXBzdHJlYW0KCSAgbGF0ZW5jeS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9sYXRlbmN5KCkgdG8gbGV0IHN1YmNsYXNzZXMgcXVlcnkgdGhlIGNvbmZpZ3VyZWQKCSAgbGF0ZW5jeSBpbiB0aGUgc2luay4KCSAgSW1wbGVtZW50IHF1ZXJ5IGFuZCBzZXQgbGF0ZW5jeS4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgQXMgc3BvdHRlZCBieSBXaWxsIE5ld3RvbiA8d2lsbCBkb3QgbmV3dG9uIGF0IGdtYWlsIGRvdCBjb20+OiBNYWtlIHN1cmUgd2UKCSAgZG9uJ3QgY29udGludWUgcHJlcm9sbCB3aGVuIHdlIGFyZSBmbHVzaGluZy4gRml4ZXMgIzQwNTI4NC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChjaGFuZ2Vfc3RhdGVfdGltZW91dCksCgkgIChxdWl0X3RpbWVvdXQpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc3RyZXNzX3N1aXRlKToKCSAgVGVzdCBmb3IgIzQwNTI4NC4KCjIwMDctMDItMTIgMTA6NTA6MjAgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBBUEk6IGFkZCBHU1RfVEFHX1JFRkVSRU5DRV9MRVZFTCAoIzQwMzU5NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1JFRkVSRU5DRV9MRVZFTCAoIzQwMzU5NykuCgoyMDA3LTAyLTExIDE5OjU5OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEZpeCBwYXRoIHRvIGNvcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggcGF0aCB0byBjb3JlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgUmVmaXggZG9jcyBieSBhbHNvIHJlbmFtaW5nICdpbnRlcmZhY2UnIHRvICdpZmFjZScgaW4gaW1wbGVtZW50YXRpb24uCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgRG9jdW1lbnQgbW9yZS4KCjIwMDctMDItMTAgMTg6MzE6MTIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogUmVwbGFjZSBpbnRlcmZhY2UgcGFyYW1ldGVyIG5hbWUgYnkgaWZhY2UgYXMgaW50ZXJmYWNlIGlzIGEgcmVzZXJ2ZWQga2V5d29yZCBpbiBWaXN1YWwgU3R1ZGlvIGZvciBDKysgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6KGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIFJlcGxhY2UgaW50ZXJmYWNlIHBhcmFtZXRlciBuYW1lIGJ5IGlmYWNlIGFzIGludGVyZmFjZSBpcwoJICBhIHJlc2VydmVkIGtleXdvcmQgaW4gVmlzdWFsIFN0dWRpbyBmb3IgQysrIHByb2plY3RzIHNvIGl0IHJlbW92ZXMKCSAgYSBidWlsZCBlcnJvciBmb3IgYXBwbGljYXRpb24gZGV2ZWxvcHBlcnMgdXNpbmcgVlMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6KGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEZpeCBhIGJ1ZyBvbiBXaW5kb3dzIGluIHVyaSBmb3JtYXQgY2hlY2suIE5vdyB0aGUgcHJlZml4IGNoZWNrZWQKCSAgaXMgZmlsZTovLyBhbmQgbmV4dCB3ZSBjaGVjayBpZiB0aGUgcGF0aCBhZnRlciBmaWxlOi8vIGlzIGFic29sdXRlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Z3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTAyLTA5IDE1OjI1OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSwgdGVzdF90ZWUpOiBEaXNhYmxlIHRlZSB0ZXN0IHVudGlsIEkKCSAgaGF2ZSB0aW1lIHRvIGZpeCBpdCA6LSgKCjIwMDctMDItMDkgMTM6NTk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbSAobm9pbnN0X0hFQURFUlMpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgoyMDA3LTAyLTA5IDEzOjQ1OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jICh0ZXN0X3RlZSk6IEFkZCB0ZXN0cyBmb3IgcHVzaCBhbmQgcHVsbCB0ZWUgYmVoYXZpb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMgKHRlc3RfdGVlKTogQWRkCgkgIHRlc3RzIGZvciBwdXNoIGFuZCBwdWxsIHRlZSBiZWhhdmlvci4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IERlc2NyaWJlIGhhcy1zaW5rLWxvb3AgYmV0dGVyLCBhbmQKCSAgbWFyayBhcyBkZXByZWNhdGVkIGFzIHdlbGwgYXMgdW5pbXBsZW1lbnRlZC4gSXQgd2FzIGEgY3JhY2sgaWRlYS4KCSAgQWRkIHN1cHBvcnQgZm9yIHRlZSBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLCBvZmYgYnkgZGVmYXVsdC4KCjIwMDctMDItMDkgMTM6NDE6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jIChsb2FkX2ZlYXR1cmUsIGxvYWRfcGx1Z2luKTogRHJvcCBzb21lIG5vcm1hbC1jYXNlIGxvZ3MgZG93biB0byBMT0csIHJhaXNlIGVycm9ycyB0byBXQVJOSU5HLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYyAobG9hZF9mZWF0dXJlLCBsb2FkX3BsdWdpbik6IERyb3Agc29tZQoJICBub3JtYWwtY2FzZSBsb2dzIGRvd24gdG8gTE9HLCByYWlzZSBlcnJvcnMgdG8gV0FSTklORy4KCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6IERvbid0IGxvZyBiZWZvcmUgY2FsbGluZyBhIGZ1bmN0aW9uCgkgIHRoYXQgbG9ncy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKTogTGVzcyBkZWJ1ZyBvbiBwcm9ncmFtCgkgIGV4aXQgKHJlZ2lzdHJ5IGZpbmFsaXplKS4KCSAgKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luLCBnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpOiBObyBuZWVkIGZvciBhCgkgIERFQlVHIGxvZyB3aGVuIHdlIGVtaXQgc2lnbmFscyB0aGF0IHBlb3BsZSBkb24ndCBldmVuIGhhdmUgdGhlCgkgIGNoYW5jZSB0byBjb25uZWN0IHRvLgoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6IExlc3MgbG9nZ2luZyBpbiB0aGUgbm9ybWFsIGNhc2UuCgoyMDA3LTAyLTA1IDEzOjE1OjQ0ICswMDAwICBNaWNoYWwgQmVuZXMgPG1pY2hhbC5iZW5lc0BpdG9uaXMudHY+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQ29ycmVjdGx5IGdlbmVyYXRlIEVPUyBmb3Igbm9uLXNlZWthYmxlIGZpbGVzLiBXZSBkb24ndCBoYXZlIGEgdG90YWwgbGVuZ3RoIGZvciB0aGVtIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNaWNoYWwgQmVuZXMgPG1pY2hhbCBkb3QgYmVuZXMgYXQgaXRvbmlzIGRvdCB0dj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIENvcnJlY3RseSBnZW5lcmF0ZSBFT1MgZm9yIG5vbi1zZWVrYWJsZSBmaWxlcy4gV2UgZG9uJ3QgaGF2ZSBhIHRvdGFsCgkgIGxlbmd0aCBmb3IgdGhlbSBhbmQgd291bGQgZ2V0IGFuIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaWYgd2Ugb25seQoJICBzcGVjaWFsLWNhc2VkIGZvciByZWd1bGFyIGZpbGVzLiAoRml4ZXM6ICM0MDQ1NjkpCgoyMDA3LTAyLTA1IDA4OjE1OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZSBpbiBmaWxlc3JjLiBUaGlzIGFsc28gdGVzdHMgdGhlIG5ld2x5IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZSBpbiBmaWxlc3JjLiBUaGlzIGFsc28KCSAgdGVzdHMgdGhlIG5ld2x5IGFkZGVkIGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBzdXBwb3J0LgoKMjAwNy0wMi0wNCAxNjoxNDoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOiBUaGUga2xhc3Mgc3RyaW5nIGlzIG5vdCBhIGhpZXJhcmNoeS4gQWRkIHJlZmVyZW5jZSB0byB0aGUgZGVzaWduIGRvYyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgVGhlIGtsYXNzIHN0cmluZyBpcyBub3QgYSBoaWVyYXJjaHkuIEFkZCByZWZlcmVuY2UgdG8gdGhlIGRlc2lnbiBkb2MKCSAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGNvbW1vbiB0eXBlcy4KCjIwMDctMDItMDIgMTg6MDg6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYzogUmVtb3ZlIG9sZCBzdHJ1Y3R1cmUgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KToKCSAgUmVtb3ZlIG9sZCBzdHJ1Y3R1cmUgZmllbGQuCgoyMDA3LTAyLTAyIDEyOjI3OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEdpdmUgZXhhbXBsZSBmb3IgbmV0d29yayBzdHJlYW1pbmcgKCMzNTE5OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgR2l2ZSBleGFtcGxlIGZvciBuZXR3b3JrIHN0cmVhbWluZyAoIzM1MTk5OCkKCjIwMDctMDItMDIgMTE6NDg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbGF0ZW5jeSksCgkgIChnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBuZXcgTEFURU5DWSBldmVudCB0byBjb25maWd1cmUgbGF0ZW5jeSBpbiBhIHBpcGVsaW5lLgoJICBBUEk6IGdzdF9ldmVudF9uZXdfbGF0ZW5jeQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2xvc3RfcHJlcm9sbCksIChnc3RfbWVzc2FnZV9uZXdfcHJlcm9sbGVkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19sYXRlbmN5KSwgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9sb3N0X3ByZXJvbGwpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIG1lc3NhZ2VzIHVzZWQgaW4gZHJhZnQtbGF0ZW5jeS4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfbG9zdF9wcmVyb2xsCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfbG9zdF9wcmVyb2xsCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3ByZXJvbGxlZAoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19sYXRlbmN5CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgSW1wbGVtZW50ZWQgbmV3IGxhdGVuY3kgcXVlcnkgYXMgaW4gZGVzaWduIGRvYy4KCSAgQVBJOiBnc3RfcXVlcnlfbmV3X2xhdGVuY3kKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2xhdGVuY3kKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeQoKMjAwNy0wMi0wMiAxMTozMzoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBTbGlnaHQgcmVkZXNpZ24gdG8gYWxsb3cgZm9yIGR5bmFtaWMgbGF0ZW5jeSBhZGp1c3RtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFNsaWdodCByZWRlc2lnbiB0byBhbGxvdyBmb3IgZHluYW1pYyBsYXRlbmN5IGFkanVzdG1lbnRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBGaXggc29tZSB0eXBvcy4KCjIwMDctMDItMDIgMTA6NDE6MjkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbGxvdyBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgVVJMcyBhbmQgY29ycmVjdGx5IGZhaWwgZm9yIGV2ZXJ5IG90aGVyIGhvc3RuYW1lIHRoYXQgb25lIHNldHMuIFRoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBBbGxvdyBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgVVJMcyBhbmQgY29ycmVjdGx5IGZhaWwgZm9yIGV2ZXJ5IG90aGVyCgkgIGhvc3RuYW1lIHRoYXQgb25lIHNldHMuIFRoaXMgd2FzIGdub21ldmZzc3JjIGlzIGxpbmtlZCBmb3IgdGhvc2UgaWYKCSAgaW5zdGFsbGVkIGFzIGl0IGNhbiBoYW5kbGUgaXQgKCM0MDMxNzIpCgoyMDA3LTAyLTAxIDE5OjAwOjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IERvbid0IHB1dCB0aGUgcHJldmlvdXNseSBhZGRlZCBkZXN0cm95IG5vdGlmeSBpbiB0aGUgR3N0Q29sbGVjdERhdGEgc3RydWN0IGFzIGFsbCBpdCcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9uJ3QgcHV0IHRoZSBwcmV2aW91c2x5IGFkZGVkIGRlc3Ryb3kgbm90aWZ5IGluIHRoZSBHc3RDb2xsZWN0RGF0YQoJICBzdHJ1Y3QgYXMgYWxsIGl0J3MgcGFkZGluZyBpcyBhbHJlYWR5IHVzZWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gYnJlYWsKCSAgQUJJLiBJbnN0ZWFkIHB1dCBpbiB0aGUgcGFkJ3MgR09iamVjdCBkYXRhIGZvciBub3cuIFRoaXMgc2hvdWxkIGJlCgkgIGNsZWFuZWQgdXAgZm9yIDAuMTEgKCM0MDIzOTMpLgoKMjAwNy0wMi0wMSAxNzo1MjoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZnVuY3Rpb24gdG8gc3BlY2lmeSBhIGRlc3Ryb3kgbm90aWZpY2F0aW9uIGZvciBjdXN0b20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBUEk6IEFkZCBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgZGVzdHJveSBub3RpZmljYXRpb24gZm9yIGN1c3RvbQoJICBHc3RDb2xsZWN0RGF0YSB3aGVuIGFkZGluZyBuZXcgcGFkcyBpbiBHc3RDb2xsZWN0UGFkcyAoIzQwMjM5MykuCgoyMDA3LTAyLTAxIDE3OjEwOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcG8vc3YucG86IFVwZGF0ZSBTd2VkaXNoIHRyYW5zbGF0aW9uICgjMzc4MjU1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vc3YucG86CgkgIFVwZGF0ZSBTd2VkaXNoIHRyYW5zbGF0aW9uICgjMzc4MjU1KS4KCjIwMDctMDEtMzEgMTE6NDI6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogRml4IHRoZSBwcmV2aW91cyBjaGFuZ2UsIHRoaXMgaXMgYSBsaXN0IG9mIGNhdGVnb3JpZXMgYW5kIG5vdCBhIGhpZXJhcmNoeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBGaXggdGhlIHByZXZpb3VzIGNoYW5nZSwgdGhpcyBpcyBhIGxpc3Qgb2YgY2F0ZWdvcmllcyBhbmQgbm90IGEgaGllcmFyY2h5LgoKMjAwNy0wMS0zMSAxMTowMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgaW5mbyBhYm91dCBob3cgdG8gZ2V0IGEgbGlzdCBvZiB1c2VkIGNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGluZm8gYWJvdXQgaG93IHRvIGdldCBhIGxpc3Qgb2YgdXNlZCBjbGFzc2VzLgoKMjAwNy0wMS0zMCAxOToxMjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvbid0IGxlYWsgZm91bmQgY2FwcyBpbiBjaGFpbiBmdW5jdGlvbiAobm8gaWRlYSB3aHkgdGhhdCBuZXZlciBzaG93ZWQgdXAgYXMgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluX2RvX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBsZWFrIGZvdW5kIGNhcHMgaW4gY2hhaW4gZnVuY3Rpb24gKG5vIGlkZWEgd2h5IHRoYXQgbmV2ZXIKCSAgc2hvd2VkIHVwIGFzIGEgbGVhayBhbnl3aGVyZSkuCgoyMDA3LTAxLTMwIDE1OjA0OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IEZpeCBhbmQgZXhwYW5kIEdzdFBsdWdpbkRlc2MgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgRml4IGFuZCBleHBhbmQgR3N0UGx1Z2luRGVzYyBBUEkgZG9jcy4KCjIwMDctMDEtMjkgMTU6NTQ6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogY29tbWVudCBhYm91dCByZWZpbmluZyB0aGUgeG1sIGRlcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjb21tZW50IGFib3V0IHJlZmluaW5nIHRoZSB4bWwgZGVwcwoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIGNvbW1lbnRzIGFib3V0IG1vdmluZyBhd2F5IGZyb20gamFkZSBmb3IgZG9jcwoJICAqIGdzdC9nc3QuYzoKCSAgcmVjb21taXQgdGhlIGlmZGVmcyB0byB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeQoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICB0aGlzIGJyZWFrIGlzIG9ic29sZXRlCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGJldHRlciBHU1RfRUxFTUVOVF9ERVRBSUxTIGRvY3MsIGFkZCBjb21tZW50IGFib3V0IHRyYW5zbGF0aW9uCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgcmVtb3ZlIGVvbCBzbGFzaAoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9zaWduYWxfb2JqZWN0X2dldF90eXBlKToKCSAgYWRkIEdfVU5MSUtFTFkgYXMgdXN1YWwKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICBhZGQgZmFsbCB0cmh1IGNvbW1lbnQKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgY29tbWVudCB0eXBvIGFuZCBmb3JtYXR0aW5nCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSksCgkgIChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgcmVtb3ZlIG9ic29sZXRlIGJyZWFrcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgYWRkIEZJWE1FIDAuMTEgYW5kIHJlbW92ZSBjcHAgY29tbWVudAoKMjAwNy0wMS0yOSAxNTowMjoxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggcHJpbnQgc3RhdGVtZW50IGluIGFuIGV2ZW4gbW9yZSBwb3J0YWJsZSB3YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgRml4IHByaW50IHN0YXRlbWVudCBpbiBhbiBldmVuIG1vcmUgcG9ydGFibGUgd2F5LgoKMjAwNy0wMS0yOSAxMzo0MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9ST1VORF9ET1dOXyogbWFjcm9zICgjNDAxNzgxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgR1NUX1JPVU5EX0RPV05fKiBtYWNyb3MgKCM0MDE3ODEpLgoKMjAwNy0wMS0yNyAxODo0NDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIERvY3VtZW50IHJlZ2lzdHJ5IHNpZ25hbHMgYW5kIG1ha2UgZ3RrLWRvYyBwaWNrIHRoZW0gdXAgKCM0MDEzODEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfY2xhc3NfaW5pdCk6CgkgIERvY3VtZW50IHJlZ2lzdHJ5IHNpZ25hbHMgYW5kIG1ha2UgZ3RrLWRvYyBwaWNrIHRoZW0gdXAgKCM0MDEzODEpLgoKMjAwNy0wMS0yNiAxODoyNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBBZGQgc29tZSBhdWRpb2NvbnZlcnRzIGFuZCBhdWRpb3Jlc2FtcGxlIHRvIHRoZSBwaXBlbGluZSwgYW5kIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgQWRkIHNvbWUgYXVkaW9jb252ZXJ0cyBhbmQgYXVkaW9yZXNhbXBsZSB0byB0aGUgcGlwZWxpbmUsIGFuZCBzb21lCgkgIG1vcmUgY29tbWVudHMgYW5kIGVycm9yIGhhbmRsaW5nLgoKMjAwNy0wMS0yNiAxMzowNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvOiBGaXggdHlwbyAoIzQwMDk4NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgRml4IHR5cG8gKCM0MDA5ODcpLgoKMjAwNy0wMS0yNiAwOTozNzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEluaXQgY2FwcyBmbGFncyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgSW5pdCBjYXBzIGZsYWdzIHRvby4KCjIwMDctMDEtMjUgMTc6NTQ6MDcgKzAwMDAgIEppbmRyaWNoIE1ha292aWNrYSA8amluZHJpY2gubWFrb3ZpY2tAaXRvbmlzLnR2PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IElmIG5vdCB1c2luZyBtbWFwJ2VkIGZpbGVzIHRyeSB0byBzZWVrIHRvIHRoZSBlbmQgaW5zdGVhZCBvZiB0aGUgc3RhcnQgdG8gZGV0ZXJtaW5lIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmluZHJpY2ggTWFrb3ZpY2thIDxqaW5kcmljaC5tYWtvdmljayBhdCBpdG9uaXMgZG90IHR2PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgSWYgbm90IHVzaW5nIG1tYXAnZWQgZmlsZXMgdHJ5IHRvIHNlZWsgdG8gdGhlIGVuZCBpbnN0ZWFkIG9mIHRoZQoJICBzdGFydCB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBjYW4gc2VlayBhdCBhbGwuIFRoaXMgZml4ZXMgdGhlIGNhc2UKCSAgb2YgMkdCKyBmaWxlcyBvdmVyIE5GUywgd2hlcmUgc2Vla3MgaW4gdGhlIGZpcnN0IDJHQiBjYW4gc3VjY2VlZCBidXQKCSAgc2Vla3MgZm9yIGV2ZXJ5dGhpbmcgYWZ0ZXJ3YXJkcyBmYWlsLiBGaXhlcyAjNDAwNjU2CgoyMDA3LTAxLTI1IDE3OjQxOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQWRkIHNvbWUgcmVmY291bnQgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoX2dzdF9jYXBzX2ZyZWUpLCAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgIEFkZCBzb21lIHJlZmNvdW50IGRlYnVnZ2luZy4KCSAgTWFrZSBnc3Rfc3RhdGljX2NhcHNfZ2V0IHRocmVhZHNhZmUsIHdoaWNoIGlzIG5lZWRlZCB3aGVuIGF1dG9wbHVnZ2luZwoJICBpbiBtdWx0aXBsZSBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDctMDEtMjUgMTA6NTA6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQVBJOiBnc3RfYWRhcHRlcl9jb3B5KCkgdGhhdCBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gdGhlIGFkYXB0ZXIuIEZpeGVzICMzODgyMDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGF2aWQgU2NobGVlZiA8ZHMgYXQgc2NobGVlZiBkb3Qgb3JnPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9jb3B5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgQVBJOiBnc3RfYWRhcHRlcl9jb3B5KCkgdGhhdCBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IHdoZW4KCSAgZ2V0dGluZyBkYXRhIGZyb20gdGhlIGFkYXB0ZXIuIEZpeGVzICMzODgyMDEuCgoyMDA3LTAxLTI1IDEwOjE0OjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluIHByaW50IHN0YXRlbWVudHMsICIleCIgaXMgZm9yIGd1aW50LiBGaXhlcyBidWlsZCBvbiBtYWNvc3guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgSW4gcHJpbnQgc3RhdGVtZW50cywgIiV4IiBpcyBmb3IgZ3VpbnQuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeC4KCjIwMDctMDEtMjQgMTE6MzI6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogU21hbGwgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKToKCSAgU21hbGwgZml4LgoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgSW1wbGVtZW50IHNpbmdsZSBxdWV1ZSBncm93dGggc3lzdGVtLgoJICBUaGlzIHVzZXMgdGhlIGV4dHJhLXNpemUgcHJvcGVydGllcywgYW5kIHdpbGwgZ3JvdyBzaW5nbGUgcXVldWVzIGJ5CgkgIHRoYXQgbXVjaCBpZiBvbmUgZ29lcyBmdWxsIHdoZXJlYXMgdGhlcmUgYXJlIG90aGVycyBlbXB0eS4gVGhpcyBpcwoJICBjYWxsZWQgZXh0cmEtbW9kZSBpbiB0aGUgY29kZS4KCSAgV2hlbiBhIHNpbmdsZSBxdWV1ZSdzIGxldmVscyBnbyBiYWNrIGJlbG93IHRoZSBpbml0aWFsIG1heC1zaXplCgkgIGxpbWl0cywgaXQgaXMgbm8gbG9uZ2VyIGluIGV4dHJhLW1vZGUuIFRoaXMgaXMgdG8gZW5zdXJlIHdlIGRvbid0CgkgIGNvbnN1bWUgdG9vIG11Y2ggbWVtb3J5LgoJICBGaXhlcyAjMzk5ODc1CgoyMDA3LTAxLTIzIDEzOjUwOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBNYWtlIHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgYSBiaXQgbW9yZSBleHBsaWNpdCwgc28gdGhhdCBpdCdzIG1vcmUgb2J2aW91cyB0byBhcHBsaWNhdGlvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApOgoJICBNYWtlIHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgYSBiaXQgbW9yZSBleHBsaWNpdCwKCSAgc28gdGhhdCBpdCdzIG1vcmUgb2J2aW91cyB0byBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHdoYXQgdGhleSBuZWVkCgkgIHRvIGRvIGlmIGEgdXNlciBmaWxlcyBhIGJ1ZyBhZ2FpbnN0IHRoZWlyIGFwcGxpY2F0aW9uLgoKMjAwNy0wMS0yMiAxNjowMDozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBSZW1vdmUgcHJldmlvdXMgaGFjayBvZiB1bnNldHRpbmcgdGhlIGZsdXNoaW5nIGZsYWcgZm9yIHRoZSBzb3VyY2UgcGFkIGluc3RlYWQgb2YgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIFJlbW92ZSBwcmV2aW91cyBoYWNrIG9mIHVuc2V0dGluZyB0aGUgZmx1c2hpbmcgZmxhZyBmb3IgdGhlIHNvdXJjZSBwYWQKCSAgaW5zdGVhZCBvZiBhY3RpdmF0aW5nIGl0LiBJbnN0ZWFkLCBmaXggdGhlIHNvdXJjZSBwYWQgYWN0aXZhdGUgZnVuY3Rpb24KCSAgc28gdGhhdCBpdCBubyBsb25nZXIgZGVwZW5kcyBvbiBoYXZpbmcgYSBwYXJlbnQgc2V0IG9yIG5vdC4KCjIwMDctMDEtMjIgMTQ6MzA6MjcgKzAwMDAgIENhcmxvcyBTYW5tYXJ0aW4gRG9taW5ndWV6IDxjc2FubWFydGluQGlnYWxpYS5jb20+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogRml4IGV4YW1wbGUgY29kZSwgZ3N0X2VsZW1lbnRfdW5yZWYoKSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQ2FybG9zIFNhbm1hcnRpbiBEb21pbmd1ZXogPGNzYW5tYXJ0aW5AaWdhbGlhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgRml4IGV4YW1wbGUgY29kZSwgZ3N0X2VsZW1lbnRfdW5yZWYoKSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIuCgoyMDA3LTAxLTIxIDIwOjI0OjExICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggdHdvIGRvY3MgdHlwb2VzICgjMzk5MDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR3byBkb2NzIHR5cG9lcyAoIzM5OTA5NCkuCgoyMDA3LTAxLTE5IDA5OjE1OjIxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgZ3N0LXBsdWdpbnMtYmFzZS9nc3QvdXRpbHMvIHRvIExEX0xJQlJBUllfUEFUSCBzbyB0aGF0IHBsdWdpbnMgZGVwZW5kaW5nIG9uIGxpYmdzdGJhc2V1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGdzdC1wbHVnaW5zLWJhc2UvZ3N0L3V0aWxzLyB0byBMRF9MSUJSQVJZX1BBVEggc28gdGhhdCBwbHVnaW5zCgkgIGRlcGVuZGluZyBvbiBsaWJnc3RiYXNldXRpbHMgY2FuIHdvcmsgaW4gdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQuCgoyMDA3LTAxLTE4IDEyOjAwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBBZGQgbW9yZSBkb2NzIHJlZ2FyZGluZyB0YWcgbWVyZ2UtbW9kZXMgYW5kIHdoZW4gdG8gc2VuZCB0YWdzLiBGaXggJ3NpbmNlJyBzdGF0ZW1lbnQgZm9yIG5ldyB0YWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBBZGQgbW9yZSBkb2NzIHJlZ2FyZGluZyB0YWcgbWVyZ2UtbW9kZXMgYW5kIHdoZW4gdG8gc2VuZCB0YWdzLiBGaXggJ3NpbmNlJwoJICBzdGF0ZW1lbnQgZm9yIG5ldyB0YWcuCgoyMDA3LTAxLTE3IDE0OjMzOjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gZHluYW1pY2FsbHkgY3JlYXRpbmcgc2luZ2xlIHF1ZXVlcywgYWN0aXZhdGUgc2lua3BhZCBiZWZvcmUgYWRkaW5nIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgV2hlbiBkeW5hbWljYWxseSBjcmVhdGluZyBzaW5nbGUgcXVldWVzLCBhY3RpdmF0ZSBzaW5rcGFkIGJlZm9yZSBhZGRpbmcKCSAgaXQuCgkgIFdlIHNob3VsZCBiZSBkb2luZyB0aGUgc2FtZSB0aGluZyBmb3IgdGhlIHNvdXJjZSBwYWQsIGJ1dCB3ZSBjYW4ndAoJICBzaW5jZSBpdCB3b3VsZCBjYWxsIGEgbWV0aG9kIHdoaWNoIG5lZWRzIHRoZSBwYXJlbnQgdG8gYmUgc2V0IGluIG9yZGVyCgkgIHRvIHdvcmsgcHJvcGVydGx5LiBJbnN0ZWFkIG9mIGFjdGl2YXRpbmcgdGhlIHNvdXJjZSBwYWQsIHdlIGp1c3QgdW5zZXQKCSAgdGhlIGZsdXNoaW5nIGZsYWcsIHdoaWNoIGlzIHRoZSBtaW5pbWFsIHJlcXVpcmVtZW50IGZvciBhZGRpbmcgYSBwYWQKCSAgdG8gYW4gZWxlbWVudCBpbiBhIHN0YXRlIGdyZWF0ZXIgdGhhbiBSRUFEWS4KCjIwMDctMDEtMTcgMTQ6MjY6NDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBEWUxEX0xJQlJBUllfUEFUSCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGFsc28gdXNlIHRoaXMgc2NyaXB0IG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIERZTERfTElCUkFSWV9QQVRIIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gYWxzbyB1c2UgdGhpcyBzY3JpcHQgb24KCSAgTWFjIE9TIFguCgoyMDA3LTAxLTE3IDEyOjMxOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgQUJJIHN0cnVjdHMgZm9yIEhQUEEgKHNlZSAjMzkzNzk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSAgQWRkIEFCSSBzdHJ1Y3RzIGZvciBIUFBBIChzZWUgIzM5Mzc5NikuCgoyMDA3LTAxLTE2IDA5OjU3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogQWN0dWFsbHkgd3JpdGUgQUJJIHN0cnVjdHMgdG8gdGhlIGZpbGUgc3BlY2lmaWVkIGluIHRoZSBHU1RfQUJJIGVudmlyb25tZW50IHZhcmlhYmxlLCBhcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfYWJpX2xpc3QpOgoJICBBY3R1YWxseSB3cml0ZSBBQkkgc3RydWN0cyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgaW4gdGhlIEdTVF9BQkkKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUsIGFzIHRoZSBtZXNzYWdlIHdlIHByaW50IGNsYWltcyB3ZSB3b3VsZC4KCjIwMDctMDEtMTUgMTQ6NTE6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6IEZpeCBoZWFkZXIgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgRml4IGhlYWRlciBjb21tZW50LgoKMjAwNy0wMS0xNSAxNDozOTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQ2hhbmdlIHRhZyB0eXBlIGZyb20gU1RSSU5HIHRvIERPVUJMRS4gQXBwbHkgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIG15IHByZXZpb3VzIHR3byBlbnRyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIENoYW5nZSB0YWcgdHlwZSBmcm9tIFNUUklORyB0byBET1VCTEUuIEFwcGx5IENoYW5nZUxvZyBzdXJnZXJ5IGZvciBteQoJICBwcmV2aW91cyB0d28gZW50cmllcy4KCjIwMDctMDEtMTUgMTM6NTc6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZCB0YWcgc3VwcG9ydCBmb3IgYmVhdC1wZXItbWludXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGFkZCB0YWcgc3VwcG9ydCBmb3IgYmVhdC1wZXItbWludXRlCgoyMDA3LTAxLTE1IDEyOjE4OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogdXNlIGdsaWIgdHlwZXMsIGNsZWFudXAgY29tbWVudHMsIGltcGVtZW50IGludGVyZmFjZXMgYW5kIHVyaS10eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLCAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9tYWtlX2RhdGEpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgdXNlIGdsaWIgdHlwZXMsIGNsZWFudXAgY29tbWVudHMsIGltcGVtZW50IGludGVyZmFjZXMgYW5kIHVyaS10eXBlcwoKMjAwNy0wMS0xMyAxMDozMzo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogQWxsb3cgZ2V0cmFuZ2UoKSB0byByZXR1cm4gYnVmZmVycyB3aXRoIG90aGVyIGNhcHMsIHdoaWxlIHdlIGZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IEFsbG93CgkgIGdldHJhbmdlKCkgdG8gcmV0dXJuIGJ1ZmZlcnMgd2l0aCBvdGhlciBjYXBzLCB3aGlsZSB3ZSBmaXgKCSAgZGVtdXhlcnMgYW5kIHR5cGVmaW5kLCBvciBvdGhlcndpc2UgY2hhbmdlIHBhcnQtbmVnb3RpYXRpb24udHh0LgoKMjAwNy0wMS0xMiAyMToxMzozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6IEZhY3RvciBzdGFydC9zdG9wIGludG8gdGhpcyBwcml2YXRlIGZ1bmN0aW9uIGluc3RlYWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICBGYWN0b3Igc3RhcnQvc3RvcCBpbnRvIHRoaXMgcHJpdmF0ZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHBhcnRpYWxseQoJICBpbiBhY3RpdmF0ZSBmdW5jdGlvbnMgYW5kIHBhcnRpYWxseSBpbiB0aGUgY2hhbmdlX3N0YXRlIGZ1bmN0aW9uLgoJICBGaXhlcyBzZXR1cCBiZWZvcmUgdGhlIGVsZW1lbnQgaGFzIGNoYW5nZWQgZnJvbSBSRUFEWS0+UEFVU0VELCBhcwoJICBpcyB0aGUgY2FzZSBpbiBwdWxsLW1vZGUgcGlwZWxpbmVzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCkKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCk6IFJlZmFjdG9yIHRvIHVzZQoJICBnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUoKS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBSZW1vdmVkLCBub3QgbmVlZGVkIGFueSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6CgkgIFRydW5jYXRlIGJlZm9yZSBmaXhhdGluZy4KCjIwMDctMDEtMTIgMTg6MDY6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6IERvbid0IHNldF9jYXBzKCkgaWYgdGhlIHJlc3VsdCBvZiBmaXhhdGluZyBpcyBBTlksIGFzIGl0Jy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOgoJICBEb24ndCBzZXRfY2FwcygpIGlmIHRoZSByZXN1bHQgb2YgZml4YXRpbmcgaXMgQU5ZLCBhcyBpdCdzIG5vdAoJICBzdXBwb3J0ZWQsIGFuZCBub3QgbmVjZXNzYXJ5IGluIHRoZSBjYXNlIG9mIGEgbGluayB3aXRoIG5vCgkgIHRlbXBsYXRlIGNhcHMgb24gZWl0aGVyIHNpZGUuIEZpeGVzIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYyBpbgoJICBzb21lIHB1bGwtbW9kZSB0ZXN0cy4KCjIwMDctMDEtMTIgMTU6NTY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChfR3N0QmFzZVRyYW5zZm9ybVByaXZhdGUpOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQsIGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoX0dzdEJhc2VUcmFuc2Zvcm1Qcml2YXRlKToKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0LCBnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVHJhY2sgdGhlIGFjdGl2YXRpb24gbW9kZS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogSW4gcHVsbCBtb2RlLCB3aGVuIGFjdGl2YXRpbmcgdGhlCgkgIHNyYyBwYWQsIGFmdGVyIGFjdGl2YXRpbmcgdGhlIHNpbmsgcGFkLCBhY3RpdmF0ZSB0aGUgc2luayBwYWQncwoJICBwZWVyLCBhcyBkaXNjdXNzZWQgaW4gcGFydC1uZWdvdGlhdGlvbi50eHQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19maXhhdGUpOiBBZGQgZml4YXRlCgkgIHZtZXRob2QsIGFzIGluIGJhc2VzaW5rLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogUmVmb3JtYXQgZG9jcywgYWRkIGZpeGF0ZSB2bWV0aG9kLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2Fwcyk6IEluIHB1bGwKCSAgbW9kZSwgZmlyc3QgcHJveHkgdGhlIHNldGNhcHMgdG8gdGhlIHBlZXIgcGFkLgoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfZml4YXRlKTogQWRkIGEgZml4YXRlIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlCgkgIG5ldyBmaXhhdGUgdm1ldGhvZC4KCSAgKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9hY3RpdmF0ZV9wdWxsKTogUmVuYW1lIGZyb20KCSAgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsLgoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6IE5ldyBmdW5jdGlvbiwgcGVyZm9ybXMgbmVnb3RpYXRpb24KCSAgaW4gcHVsbCBtb2RlIGJlZm9yZSBjYWxsaW5nIDo6YWN0aXZhdGVfcHVsbCgpLgoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCk6IEFjdHVhbGx5IGNhbGwgdGhlIGFjdGl2YXRlX3B1bGwKCSAgdm1ldGhvZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiBJIGhhdmUgbm8gaWRlYSBob3cKCSAgdGhpcyB3b3JrZWQgYmVmb3JlLiBOZWdvdGlhdGUgYmVmb3JlIGNhbGxpbmcgYWN0aXZhdGVfcHVsbC4KCjIwMDctMDEtMTIgMTU6NDg6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogUmVmdXNlIHRvIGFjdGl2YXRlIHVubGlua2VkIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUuIEluIGFkZGl0aW9uIHRvIGJlaW5nIGNvcnJlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IFJlZnVzZSB0byBhY3RpdmF0ZSB1bmxpbmtlZAoJICBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlLiBJbiBhZGRpdGlvbiB0byBiZWluZyBjb3JyZWN0LCBmaXhlcwoJICBmaWxlc3JjICEgZGVjb2RlYmluICEgaWRlbnRpdHkgISBmYWtlc2luay4KCSAgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBEb24ndCBjYWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMoKSBpZiB0aGUgY2FwcyBjaGFuZ2VzOyBpbnN0ZWFkIGVycm9yIG91dCB3aXRoCgkgIEdTVF9GTE9XX05PVF9ORUdPVElBVEVELCBhcyBkaXNjdXNzZWQgaW4gcGFydC1uZWdvdGlhdGlvbi50eHQuCgoyMDA3LTAxLTEyIDE1OjM5OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGggbW9yZSBwb2xpY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCBtb3JlIHBvbGljeS4KCjIwMDctMDEtMTIgMTI6NDg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay86IEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUy4gTW92ZSBHU1RfQ0hFQ0tfTUFJTiB3aGVyZSBpdCBiZWxvbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUy4gTW92ZSBHU1RfQ0hFQ0tfTUFJTiB3aGVyZSBpdAoJICBiZWxvbmdzLgoKMjAwNy0wMS0xMiAxMDo1Mzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBiZWZvcmVtZW50aW9uZWQgR3N0VGFnU2V0dGVyIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X2R1bW15X2VuY19hZGRfaW50ZXJmYWNlcyksCgkgIChnc3RfZHVtbXlfZW5jX2Jhc2VfaW5pdCksIChnc3RfZHVtbXlfZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2R1bW15X2VuY19pbml0KSwgKHRhZ19saXN0X2ZvcmVhY2gpLCAodGFnX3NldHRlcl9saXN0X2xlbmd0aCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3NldHRlcl9zdWl0ZSk6CgkgIEFkZCBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgYmVmb3JlbWVudGlvbmVkIEdzdFRhZ1NldHRlciBidWcuCgoyMDA3LTAxLTEyIDEwOjQ4OjQ5ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBnc3RfdGFnX2xpc3RfbWVyZ2UoKSByZXR1cm5zIGEgbmV3IGxpc3QsIHNvIGl0J3Mgbm90IHRoZSBiZXN0IGlkZWEgdG8gaW5nb3JlIGl0cyByZXR1cm4gdmFsdWUuIEVmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncyk6CgkgIGdzdF90YWdfbGlzdF9tZXJnZSgpIHJldHVybnMgYSBuZXcgbGlzdCwgc28gaXQncyBub3QgdGhlIGJlc3QgaWRlYQoJICB0byBpbmdvcmUgaXRzIHJldHVybiB2YWx1ZS4gRWZmZWN0aXZlbHkgbWVhbnQgdGhhdCB0YWdzIGNvdWxkIG9ubHkKCSAgYmUgbWVyZ2VkIG9uIGEgR3N0VGFnU2V0dGVyIG9uY2UgdXNpbmcgX21lcmdlX3RhZ3MoKS4gRml4ZXMgIzM5NTU1NC4KCSAgQWxzbyBhZGQgZnVuY3Rpb24gZ3VhcmQgdG8gcmVxdWlyZSBhIG5vbi1OVUxMIHRhZ2xpc3QgYXMgaW5wdXQgKGhhcwoJICBhbHdheXMgYmVlbiBzbyBkdWUgdG8gZ3N0X3RhZ19saXN0X2NvcHkoKSwganVzdCBtYWtpbmcgaXQgZXhwbGljaXQpLgoKMjAwNy0wMS0xMSAxNTowMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFNvbWUgYWRkaXRpb25zOiBtZW50aW9uIG5ldyBBUEkgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGF0IHRoZSB2YXJpb3VzIHN0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIGFkZGl0aW9uczogbWVudGlvbiBuZXcgQVBJIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBhdCB0aGUKCSAgdmFyaW91cyBzdGFnZXM7IHNob3J0IGJsb2IgYWJvdXQgbmV3IGdzdC1pbnNwZWN0IGludHJvc3BlY3Rpb24KCSAgb3B0aW9uOyBtZW50aW9uIHBvdGVudGlhbCBmdXR1cmUgcHJvYmxlbSB3aXRoIHBsdWdpbnMgdGhhdCBoYXZlCgkgIGEgZHluYW1pYyBsaXN0IG9mIGVsZW1lbnRzIChzdWNoIGFzIGxhZHNwYSwgcGl0ZmRsbCwgbGlidmlzdWFsKS4KCjIwMDctMDEtMTEgMTQ6MTY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gb3B0aW9uIHRvIGdzdC1pbnNwZWN0LCBzbyB3ZSBjYW4gaW50cm9zcGVjdCBwbHVnaW4gZmlsZXMgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyksCgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19wcm90b2NvbHMpLAoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm8pLCAobWFpbik6CgkgIEFkZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBvcHRpb24gdG8gZ3N0LWluc3BlY3QsIHNvIHdlIGNhbgoJICBpbnRyb3NwZWN0IHBsdWdpbiBmaWxlcyBhbmQgZ2V0IG1hY2hpbmUtcGFyc2FibGUgb3V0cHV0IHRoYXQgY29ycmVzcG9uZHMKCSAgdG8gdGhlIGxhc3QgYml0IG9mIHRoZSBtaXNzaW5nLXBsdWdpbiBpbnN0YWxsZXIgc3RyaW5nIChzbWFsbCBnb3RjaGE6CgkgIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgcmFua3MpLgoKMjAwNy0wMS0xMSAxMzo0NTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29tbWl0IGJpbmFyeSByZWdpc3RyeSAoZGlzYWJsZWQgYnkgZGVmYXVsdCwgc2VlICMzNTk2NTMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgIGNvbW1pdCBiaW5hcnkgcmVnaXN0cnkgKGRpc2FibGVkIGJ5IGRlZmF1bHQsIHNlZSAjMzU5NjUzKQoKMjAwNy0wMS0xMSAxMDo0ODo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogRml4ICdtYWtlIGNoZWNrJyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKHRlc3RfZ2V0X2FsbG93ZWRfY2Fwcyk6CgkgIEZpeCAnbWFrZSBjaGVjaycgdG9vLgoKMjAwNy0wMS0xMCAyMToyNDowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IEZpeCBhIHR5cG8sIGFkZCBhIGNvdXBsZSBub3Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IEZpeCBhIHR5cG8sIGFkZCBhIGNvdXBsZQoJICBub3Rlcy4KCjIwMDctMDEtMTAgMjE6MTU6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCwgdW0sIG9uZSB3YXkgdGhhdCBwdWxsLW1vZGUgbmVnb3RpYXRpb24gbWlnaHQgd29yaz8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoLCB1bSwgb25lIHdheSB0aGF0CgkgIHB1bGwtbW9kZSBuZWdvdGlhdGlvbiBtaWdodCB3b3JrPwoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2Fwcyk6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24KCSAgdGhhdCB0aGUgcGFkIG11c3QgYmUgYSBzcmMgcGFkOyBtYWtlcyBzZW5zZSB0byBjYWxsIGl0IHRoZSBvdGhlcgoJICB3YXkgaW4gcHVsbCBtb2RlLCBhbmQgdGhlIGxvZ2ljIGlzIHN5bW1ldHJpYyBhbnl3YXkuCgoyMDA3LTAxLTEwIDE5OjI1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBJbmNsdWRlIDxzdGRpby5oPiBmb3IgZnNlZWtvKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgSW5jbHVkZSA8c3RkaW8uaD4gZm9yIGZzZWVrbygpLgoKMjAwNy0wMS0xMCAxMDoyMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBSZXNlcnZlIExBVEVOQ1kgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBSZXNlcnZlIExBVEVOQ1kgZXZlbnQuCgoyMDA3LTAxLTA5IDE4OjA5OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBVcGRhdGVzLgoKMjAwNy0wMS0wOSAxNTozODo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBVcGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgVXBkYXRlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgU21hbGwgdHlwbyBmaXhlcy4KCjIwMDctMDEtMDkgMTQ6Mzg6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOiBJZ25vcmUgdGVzdC1yZWdpc3RyeS54bWwgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svLmN2c2lnbm9yZToKCSAgSWdub3JlIHRlc3QtcmVnaXN0cnkueG1sIGFzIHdlbGwuCgoyMDA3LTAxLTA5IDEyOjM0OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiB1bnJlZiBkYXRhIGF0IHRoZSBlbmQgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIHVucmVmIGRhdGEgYXQgdGhlIGVuZCB3aGVuIHdlIGFyZSBkb25lIHdpdGggdGhlIHBhZC4KCjIwMDctMDEtMDggMjA6MzA6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdXBkYXRlX3JlZ2lzdHJ5KCkgKCMzOTEyOTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGxvYWRfcGx1Z2luX2Z1bmMpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVpbml0KSwgKGdzdF91cGRhdGVfcmVnaXN0cnkpOgoJICAqIGdzdC9nc3QuaDoKCSAgQVBJOiBhZGQgZ3N0X3VwZGF0ZV9yZWdpc3RyeSgpICgjMzkxMjk2KS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgU2ltcGxlIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNy0wMS0wOCAxNjoyMzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBQbHVnaW4gZXh0ZW5zaW9uIG9uIEhQLVVYIGlzIC5zbCwgYWRkIHRoYXQgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2luIGV4dGVuc2lvbnMgKHNlZSAjMzkzNzk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUGx1Z2luIGV4dGVuc2lvbiBvbiBIUC1VWCBpcyAuc2wsIGFkZCB0aGF0IHRvIHRoZSBsaXN0IG9mIGFwcHJvdmVkCgkgIHBsdWdpbiBleHRlbnNpb25zIChzZWUgIzM5Mzc5NikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB1bG9uZyA9PiBndWxvbmcuIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggSFAtVVggY29tcGlsZXIuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggY29tcGlsYXRpb24gaWYgdmFsZ3JpbmQgaGVhZGVycyBhcmUgbm90IGF2YWlsYWJsZS4KCjIwMDctMDEtMDcgMTA6MjE6MzMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbi4KCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgIEFkZCBnc3RkYXRhcXVldWUuYyB0byB0aGUgYnVpbGQuCgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgIEFkZCBnc3RtdWx0aXF1ZXVlLmMgdG8gdGhlIGJ1aWxkLgoKMjAwNy0wMS0wNiAxNzoxODowMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBOZXcgR3N0QmFzZVNpbmtDbGFzcyB2bWV0aG9kLCBhY3RpdmF0ZV9wdWxsKCksIHByb3ZpZGluZyBmb3IgYSB3YXkgdG8gc3BlY2lhbGl6ZSB0aGUgcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogTmV3IEdzdEJhc2VTaW5rQ2xhc3Mgdm1ldGhvZCwKCSAgYWN0aXZhdGVfcHVsbCgpLCBwcm92aWRpbmcgZm9yIGEgd2F5IHRvIHNwZWNpYWxpemUgdGhlIHByb2Nlc3Mgb2YKCSAgc3Bhd25pbmcgYSB0aHJlYWQgdG8gcHVsbCBvbiB0aGUgc2luayBwYWQuIFRoZXJlIGlzIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdXNoLCBnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSkKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCk6IFJlbmFtZWQgcGFkIGFjdGl2YXRpb24gZnVuY3Rpb25zIChpbnNlcnRpbmcKCSAgIl9wYWQiIGluIHRoZWlyIG5hbWVzKS4gUmVmYWN0b3IgdG8gdXNlIHRoZSBuZXcgYWN0aXZhdGVfcHVsbAoJICB2bWV0aG9kLCBhcyBhcHByb3ByaWF0ZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCwgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogU2V0IHRoZQoJICBkZWZhdWx0IGFjdGl2YXRlX3B1bGwgZnVuY3Rpb24gdG8gc3RhcnQgYSB0YXNrIHB1bGxpbmcgZnJvbSB0aGUKCSAgc2luayBwYWQsIGFzIGJlZm9yZS4KCjIwMDctMDEtMDYgMTc6MDk6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IFNldCBjYXBzIG9uIHRoZSBwYWRzIGlmIG5lY2Vzc2FyeSwgYXMgaW4gcHVzaCgpL2NoYWluKCkuIFVwZGF0ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBTZXQgY2FwcwoJICBvbiB0aGUgcGFkcyBpZiBuZWNlc3NhcnksIGFzIGluIHB1c2goKS9jaGFpbigpLiBVcGRhdGUgZG9jcy4KCSAgU2hvdWxkbid0IGFmZmVjdCBleGlzdGluZyBwdWxsKCkgdXNhZ2UgYXMgaXQgaXMgY3VycmVudGx5IG9ubHkKCSAgYmVpbmcgdXNlZCBvbiBidWZmZXJzIHdpdGhvdXQgY2Fwcy4KCjIwMDctMDEtMDUgMTY6MzY6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENhbGwgZ190aHJlYWRfaW5pdCgpIGZpcnN0IHRoaW5nIGluIGdzdF9pbml0KCkgLyBnc3RfY2hlY2tfaW5pdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGluaXRfcHJlKToKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgZmlyc3QgdGhpbmcgaW4gZ3N0X2luaXQoKSAvIGdzdF9jaGVja19pbml0KCkuCgkgIFdoZW4gaW5pdGlhbGlzYXRpb24gaXMgZG9uZSB2aWEgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGFuZAoJICBHT3B0aW9uIHBhcnNpbmcsIGlzc3VlIGEgd2FybmluZyBpZiB0aGUgR0xpYiB0aHJlYWQgc3lzdGVtIGhhcyBub3QKCSAgYmVlbiBpbml0aWFsaXNlZCB5ZXQgYnkgdGhlIHRpbWUgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGlzCgkgIGNhbGxlZCwgYXMgaXQncyBxdWl0ZSBsaWtlbHkgb3RoZXIgR0xpYiBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX29wdGlvbl9jb250ZXh0X25ldygpIGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeSB0aGVuLCBhbmQKCSAgZ190aHJlYWRfaW5pdCgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgR0xpYiBmdW5jdGlvbi4gVGhlCgkgIGFwcGxpY2F0aW9uIGluIHF1ZXN0aW9uIG11c3QgYmUgZml4ZWQgaW4gdGhhdCBjYXNlLCBzaW5jZSBtZW1vcnkKCSAgY29ycnVwdGlvbiBtaWdodCBoYXBwZW4gb3RoZXJ3aXNlLgoJICBXZSBpc3N1ZSB0aGUgd2FybmluZyBiZWNhdXNlIGV2ZW4gaWYgdGhlIEdMaWIgZm9sa3MgZGVjaWRlIHRvIHdvcmsKCSAgYXJvdW5kIHRoZSBwcm9ibGVtIG9uIHRoZWlyIGVuZCBpbiBmdXR1cmUsIHRoaXMgaXMgc3RpbGwgYW4gaXNzdWUKCSAgd2l0aCBhbGwgR0xpYiB2ZXJzaW9ucyA+PSAyLjEwLjAsIHNvIHdlIHNob3VsZCB3YXJuIHVudGlsIHdlIGRlcGVuZAoJICBvbiBhIEdMaWIgdmVyc2lvbiB3ZSBrbm93IHRvIGJlIHNhZmUuCgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGFzIHdlbGwuCgkgIENsb3NlcyBidWcgIzM5MTI3OC4KCjIwMDctMDEtMDUgMTU6NTU6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IENhbGwgZ190aHJlYWRfaW5pdCgpIHJlYWxseSByZWFsbHkgZWFybHksIGJlZm9yZSBhbnkgb3RoZXIgR0xpYiBmdW5jdGlvbiAoc2VlICMzNDI1NjQgYW5kIHJlY2VudCBkaXNjdXNzaW9uIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSByZWFsbHkgcmVhbGx5IGVhcmx5LCBiZWZvcmUgYW55IG90aGVyIEdMaWIKCSAgZnVuY3Rpb24gKHNlZSAjMzQyNTY0IGFuZCByZWNlbnQgZGlzY3Vzc2lvbiBvbiBndGstZGV2ZWwtbGlzdCkuCgoyMDA3LTAxLTA1IDEzOjIzOjAyICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgZ3N0LzogT24gd2luMzIsIGFsbCB0aGUgX19kZWNsc3BlYyBzdHVmZiBmb3Igc3ltYm9sIGV4cG9ydGluZyBpcyBhcHBhcmVudGx5IG9ubHkgbmVlZGVkIHdpdGggTVNWQywgYnV0IGRvZXNuJ3Qgd29yayB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVmluY2VudCBUb3JyaSAgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZG90IGZyPgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBPbiB3aW4zMiwgYWxsIHRoZSBfX2RlY2xzcGVjIHN0dWZmIGZvciBzeW1ib2wgZXhwb3J0aW5nIGlzCgkgIGFwcGFyZW50bHkgb25seSBuZWVkZWQgd2l0aCBNU1ZDLCBidXQgZG9lc24ndCB3b3JrIHdpdGggTWluZ1cuCgkgIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggTWluZ1cgYW5kICMzOTE5MDkuCgoyMDA3LTAxLTA1IDExOjU3OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENoYW5nZSBzb21lIEdTVF9FUlJPUl9PQkpFQ1QgdGhhdCBhcmVuJ3QgcmVhbGx5IGVycm9ycyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgQ2hhbmdlIHNvbWUgR1NUX0VSUk9SX09CSkVDVCB0aGF0IGFyZW4ndCByZWFsbHkgZXJyb3JzIHRvCgkgIEdTVF9XQVJOSU5HX09CSkVDVCBpbiBvcmRlciB0byByZWR1Y2UgdGVybWluYWwgc3BhbS4KCjIwMDctMDEtMDQgMTM6NTQ6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBkaXNhYmxlIHRlc3QgYWdhaW4sIGFzIHRoZXJlIHNlZW0gdG8gYmUgc3RpbGwgcmFjZSBwcm9ibGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB0ZXN0IGFnYWluLCBhcyB0aGVyZSBzZWVtIHRvIGJlIHN0aWxsIHJhY2UgcHJvYmxlbXMKCjIwMDctMDEtMDQgMTM6Mzc6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4sIGFkZCB0ZXN0cyBmb3IgdGhlIGxlYWt5IGJlaGF2aW91cgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluLCBhZGQgdGVzdHMgZm9yIHRoZSBsZWFreSBiZWhhdmlvdXIKCjIwMDctMDEtMDIgMTc6MDE6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBDb21waWxlIGFkYXB0ZXIgdGVzdC9leGFtcGxlIG9ubHkgaWYgdGhlIHJlcXVpcmVkIGhlYWRlcnMgYXJlIGF2YWlsYWJsZSAoZml4ZXMgIzM5MTkxNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgQ29tcGlsZSBhZGFwdGVyIHRlc3QvZXhhbXBsZSBvbmx5IGlmIHRoZSByZXF1aXJlZCBoZWFkZXJzIGFyZQoJICBhdmFpbGFibGUgKGZpeGVzICMzOTE5MTUpLgoKMjAwNy0wMS0wMiAwOTozMTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdGVsbCB1cyB3aGF0J3Mgbm90IGltcGxlbWVudGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZWxsIHVzIHdoYXQncyBub3QgaW1wbGVtZW50ZWQKCjIwMDctMDEtMDIgMDk6MzE6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBidW1wIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYnVtcCB0byBDVlMKCjIwMDctMDEtMDIgMDY6MTQ6MDYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBSZXN0b3JlIHRoZSBwcmV2aW91cyBzaWduYWwgaGFuZGxlciBmb3IgU0lHU0VHViBpbnN0ZWFkIG9mIHNldHRpbmcgdG8gZGVmYXVsdCwgc2luY2Ugd2UgbWF5IGhhdmUgc3RvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgUmVzdG9yZSB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgZm9yIFNJR1NFR1YgaW5zdGVhZCBvZgoJICBzZXR0aW5nIHRvIGRlZmF1bHQsIHNpbmNlIHdlIG1heSBoYXZlIHN0b2xlbiBpdCBhd2F5IGZyb20KCSAgc29tZW9uZS4gIChpLmUuLCBNb25vKQoKMjAwNi0xMi0yNiAxNTo1NToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFNvbWUgc21hbGwgYWRkaXRpb25zIGFuZCBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBzbWFsbCBhZGRpdGlvbnMgYW5kIGNsYXJpZmljYXRpb25zLgoKMjAwNi0xMi0yNiAxNTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyBub24tVVRGLTggc3RyaW5ncyB0byBnX21hcmt1cF9lc2NhcGUoKSwgc2luY2UgdGhhdCBjYW4gbGVhZCB0byByYW5kb20gbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlX2VzY2FwZWQpOgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyBub24tVVRGLTggc3RyaW5ncyB0byBnX21hcmt1cF9lc2NhcGUoKSwKCSAgc2luY2UgdGhhdCBjYW4gbGVhZCB0byByYW5kb20gbWVtb3J5IGNvcnJ1cHRpb25zIGFuZCBjcmFzaGVzCgkgIChtYXkgb3IgbWF5IG5vdCBiZSByZWxhdGVkIHRvICMzODMyNDQsICMzODY3MTEsIGFuZCAjMzg2NzExKS4KCjIwMDYtMTItMjEgMTU6NTQ6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogc3luYyAuY3ZzaWdub21lIGFuZCBDTEVBTkZJTEVTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHN5bmMgLmN2c2lnbm9tZSBhbmQgQ0xFQU5GSUxFUwoKMjAwNi0xMi0yMSAxNTozMjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDYtMTItMjEgMTU6MDA6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogdHdvIHRpbnkgYWRkaXRpb25hbCBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIHR3byB0aW55IGFkZGl0aW9uYWwgY29tbWVudHMKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvYyBmaXhpbmcKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGRpc2FibGUgdGVzdCBmb3Igbm93LCB1bmxlc3MgaXQgZ2V0cyBmaXhlZAoKMjAwNi0xMi0yMSAxNDoyNDo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogZml4IHJhY2UgaW4gdW5kZXJydW4gdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCByYWNlIGluIHVuZGVycnVuIHRlc3QKCjIwMDYtMTItMjEgMDk6NTg6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB0cnkgdG8gbmFycm93IHRlc3QgZmFpbHVyZQoKMjAwNi0xMi0yMSAwOTozNzo1NiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogVXNlIGdfcmFuZG9tX2ludF9yYW5nZSgpLCBzaW5jZSBpdCBwcm9kdWNlcyBiZXR0ZXIgcmFuZG9tIG51bWJlcnMgaW4gYSByYW5nZSB0aGFuIGFsbW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIFVzZSBnX3JhbmRvbV9pbnRfcmFuZ2UoKSwgc2luY2UgaXQgcHJvZHVjZXMgYmV0dGVyIHJhbmRvbQoJICBudW1iZXJzIGluIGEgcmFuZ2UgdGhhbiBhbG1vc3QtY29ycmVjdCBmbG9hdGluZyBwb2ludCBjb2RlLgoKMjAwNi0xMi0yMSAwODoxMjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogZG8gbm90IGF1dG9tYXRpY2FsbHkgKGRlKWFjdGl2YXRlIHBhZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICBkbyBub3QgYXV0b21hdGljYWxseSAoZGUpYWN0aXZhdGUgcGFkcwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKHNldHVwX3F1ZXVlKSwgKGNsZWFudXBfcXVldWUpLCAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBhZGQgbmV3LCB5ZXQgc2ltcGxlIHRlc3RzIGZvciBxdWV1ZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKGNsZWFudXBfZmFrZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKGNsZWFudXBfZmRzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGNsZWFudXBfZmlsZXNyYyksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKGNsZWFudXBfaWRlbnRpdHkpOgoJICBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoKMjAwNi0xMi0yMCAxOTowNjowMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGaXggdHdvIGRvYyB0eXBvcyAoIzM4Nzg2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSAgPHNsb21vIHVidW50dSBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBGaXggdHdvIGRvYyB0eXBvcyAoIzM4Nzg2NikuCgoyMDA2LTEyLTE5IDE1OjA2OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6IEZpeCB0eXBvIChnX29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMoKSBkb2Vzbid0IGV4aXN0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIEZpeCB0eXBvIChnX29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMoKSBkb2Vzbid0IGV4aXN0KS4KCjIwMDYtMTItMTkgMTI6Mzg6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBGaW5lIHR1bmUgdGhlIGNhc2VzIHdoZXJlIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AgdmFsdWVzIGFyZSByZWFsbHkgdXBkYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgRmluZSB0dW5lIHRoZSBjYXNlcyB3aGVyZSB0aGUgc2VnbWVudCBzdGFydC9zdG9wIHZhbHVlcyBhcmUgcmVhbGx5CgkgIHVwZGF0ZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHRlc3RzIGZvciB0aGUgcmV0dXJuIHZhbHVlcyBvZiBnc3Rfc2VnbWVudF9zZXRfc2VlaygpLgoKMjAwNi0xMi0xOSAxMTowNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9jcyB0eXBvIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBEb2NzIHR5cG8gZml4LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9xdWV1ZV9pbml0KToKCSAgRml4IGluY29ycmVjdCBkb2N1bWVudGF0aW9uIGFuZCBmbGVzaCBpdCBvdXQgYSBiaXQgbW9yZS4KCSAgU2V0IGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgbWF4IHByb3BlcnRpZXMgb24gdGhlIEdQYXJhbVNwZWMgYXMgd2VsbCwKCSAgc28gaXQgc2hvd3MgdXAgY29ycmVjdGx5IGluIGdzdC1pbnNwZWN0LgoKMjAwNi0xMi0xOCAxNjowMTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBDb3JyZWN0IGRvY3Mgb2YgcXVldWUsIGFkZCBtb3JlIGRldGFpbCBhbmQgY3Jvc3NsaW5rIGl0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgQ29ycmVjdCBkb2NzIG9mIHF1ZXVlLCBhZGQgbW9yZSBkZXRhaWwgYW5kIGNyb3NzbGluayBpdCBtb3JlLgoKMjAwNi0xMi0xNiAxOTozMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUHJpbnQgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvIHdoZW4gdGhlIHN0cmVhbSBpc24ndCBwZXJmZWN0bHkgdGltZXN0YW1wZWQ7IGRvbid0IHRyeSB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIFByaW50IGFkZGl0aW9uYWwgZGVidWcgaW5mbyB3aGVuIHRoZSBzdHJlYW0gaXNuJ3QgcGVyZmVjdGx5CgkgIHRpbWVzdGFtcGVkOyBkb24ndCB0cnkgdG8gdXNlIGludmFsaWQgZHVyYXRpb25zLgoKMjAwNi0xMi0xNiAxNjoxNDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IG5ldyBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3QgbmV3IGRlc2lnbiBkb2NzLgoKMjAwNi0xMi0xNiAxNToxNzo1NCArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBBZGQgcmVmY291bnRpbmcgdG8gdGhlIGNvbGxlY3RwYWRzIGRhdGEgc28gd2UgY2FuIHRyYWNrIHdoZW4gaXQncyBzYWZlIHRvIGZyZWUgdGhlIGRhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChyZWZfZGF0YSksICh1bnJlZl9kYXRhKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBZGQgcmVmY291bnRpbmcgdG8gdGhlIGNvbGxlY3RwYWRzIGRhdGEgc28gd2UgY2FuIHRyYWNrIHdoZW4gaXQncyBzYWZlCgkgIHRvIGZyZWUgdGhlIGRhdGEuIEZpeGVzICMzODMzODIuCgoyMDA2LTEyLTE1IDE3OjA5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBBdXRvbWF0aWNhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIGEgc3RhcnRlZC9zdG9wZWQgY29sbGVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICBBdXRvbWF0aWNhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIGEKCSAgc3RhcnRlZC9zdG9wZWQgY29sbGVjdHBhZHMuCgoyMDA2LTEyLTE1IDE2OjAxOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU2V0IHBhZHMgdG8gRkxVU0hJTkcgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLiBDaGVjaywgd2FybiBhbmQgZml4IHdoZW4gYSBkZW11eGVyIGFkZHMgYW4gaW5hY3RpdmUgcGFkIHRvIGl0c2VsZiB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFNldCBwYWRzIHRvIEZMVVNISU5HIHdoZW4gdGhleSBhcmUgY3JlYXRlZC4gQ2hlY2ssIHdhcm4gYW5kIGZpeCB3aGVuIGEKCSAgZGVtdXhlciBhZGRzIGFuIGluYWN0aXZlIHBhZCB0byBpdHNlbGYgd2hlbiBydW5uaW5nLiBGaXhlcyAjMzM5MzI2LgoKMjAwNi0xMi0xNSAxNTo0OToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEV4cG9zZSBkZWZhdWx0IGVsZW1lbnQgc2VuZF9ldmVudCBhbmQgcXVlcnkgaGFuZGxpbmcgYXMgdm1ldGhvZHMgdGhhdCBzdWJjbGFzc2VzIGNhbiBjaGFpbiB1cCB0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZGVmYXVsdF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZGVmYXVsdF9xdWVyeSksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgIEV4cG9zZSBkZWZhdWx0IGVsZW1lbnQgc2VuZF9ldmVudCBhbmQgcXVlcnkgaGFuZGxpbmcgYXMgdm1ldGhvZHMgdGhhdAoJICBzdWJjbGFzc2VzIGNhbiBjaGFpbiB1cCB0by4KCjIwMDYtMTItMTUgMTU6Mzk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNi0xMi0xNSAxNToyNjo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBDaGVja2VkIGluIGRyYWZ0IGZvciBoYW5kbGluZyBsYXRlbmN5IGluIHBpcGVsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIENoZWNrZWQgaW4gZHJhZnQgZm9yIGhhbmRsaW5nIGxhdGVuY3kgaW4gcGlwZWxpbmVzLgoKMjAwNi0xMi0xNSAwMDoxNjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGRpbmcgLmRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkaW5nIC5kb2FwIGZpbGUKCjIwMDYtMTItMTQgMTQ6MDY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IGluaXRfcHJlKCkgYW5kIGluaXRfcG9zdCgpIG1pZ2h0IGJlIGNhbGxlZCB2aWEgb3VyIEdPcHRpb25Hcm91cCBvciBmcm9tIGdzdF9pbml0KCksIGFuZCB3ZSBzaG91bGQgc2tpcCBib3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoaW5pdF9wb3N0KToKCSAgaW5pdF9wcmUoKSBhbmQgaW5pdF9wb3N0KCkgbWlnaHQgYmUgY2FsbGVkIHZpYSBvdXIgR09wdGlvbkdyb3VwIG9yCgkgIGZyb20gZ3N0X2luaXQoKSwgYW5kIHdlIHNob3VsZCBza2lwIGJvdGggb2YgdGhlbSBpZiB3ZSd2ZSBhbHJlYWR5CgkgIGJlZW4gaW5pdGlhbGlzZWQsIG90aGVyd2lzZSB3ZSB3aWxsIGluaXQgc29tZSB0aGluZ3MgdHdpY2Ugb3IgYWRkCgkgIHR3byBkZWZhdWx0IGxvZyBmdW5jdGlvbnMuCgoyMDA2LTEyLTEzIDEyOjQ2OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IE5vLCBnc3RfbWFpbl9sb29wIGRvZXMgbm90IGV4aXN0LiBJdHMgZ19tYWluX2xvb3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBObywgZ3N0X21haW5fbG9vcCBkb2VzIG5vdCBleGlzdC4gSXRzIGdfbWFpbl9sb29wLgoJICBEaXNjb3ZlcmVkIGJ5IHNvbWVib2R5IHdobyBhYnVzZWQgdGhlIGNvcHktcGFzdGUgdGVjaG5pcXVlIG9mIGNvZGluZyA6KQoKMjAwNi0xMi0xMyAxMTowNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBMb2cgZ2hvc3RwYWQgZGVidWcgc3R1ZmYgdG8gdGhlIEdTVF9QQURTIGNhdGVnb3J5IGFzIHdlbGwgcmF0aGVyIHRoYW4ganVzdCB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIExvZyBnaG9zdHBhZCBkZWJ1ZyBzdHVmZiB0byB0aGUgR1NUX1BBRFMgY2F0ZWdvcnkgYXMgd2VsbCByYXRoZXIKCSAgdGhhbiBqdXN0IHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5LgoKMjAwNi0xMi0xMiAxMzo1MzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBzb21lIGJhc2ljIHN5c3RlbSBkZXRhaWxzIHN1Y2ggYXMgT1MgYW5kIGFyY2hpdGVjdHVyZSB0byB0aGUgZGVidWcgb3V0cHV0IGlmIHBvc3NpYmxlLCBjb3VydGVzeSBvZiB1bmFtZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICBBZGQgc29tZSBiYXNpYyBzeXN0ZW0gZGV0YWlscyBzdWNoIGFzIE9TIGFuZCBhcmNoaXRlY3R1cmUKCSAgdG8gdGhlIGRlYnVnIG91dHB1dCBpZiBwb3NzaWJsZSwgY291cnRlc3kgb2YgdW5hbWUoKS4KCjIwMDYtMTItMTEgMTM6NDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9ydW5uaW5nLnhtbDogRG9jdW1lbnQgR1NUX1JFR0lTVFJZX0ZPUksgYW5kIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBEb2N1bWVudCBHU1RfUkVHSVNUUllfRk9SSyBhbmQgR1NUX0RFQlVHX05PX0NPTE9SCgkgIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCjIwMDYtMTItMDkgMjA6MjM6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBJdCBpcyBhY2NlcHRhYmxlIHRvIGhhdmUgYSByZWZjb3VudCBvZiAyIG9yIDMgYXQgdGhpcyBwb2ludCBpbiB0aGUgdGVzdCwgYmVjYXVzZSB0aGUgcGlwZWxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSXQgaXMgYWNjZXB0YWJsZSB0byBoYXZlIGEgcmVmY291bnQgb2YgMiBvciAzIGF0IHRoaXMgcG9pbnQgaW4gdGhlCgkgIHRlc3QsIGJlY2F1c2UgdGhlIHBpcGVsaW5lIG1pZ2h0IGJlIGp1c3QgcG9zdGluZyBpdHMgc3RhdGVfY2hhbmdlCgkgIG1lc3NhZ2UuIFRoZSBuZXh0IGxpbmUgdGhlbiB3YWl0cyBmb3IgdGhhdCBtZXNzYWdlIHRvIGFwcGVhciB1c2luZwoJICBidXNfcG9sbCwgc28gdGhhdCBzaG91bGQgYmUgZmluZSB0b28uCgoyMDA2LTEyLTA5IDE4OjQ4OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogSWdub3JlIEVJTlRSIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBjaGlsZCByZWdpc3RyeSBwaXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgSWdub3JlIEVJTlRSIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBjaGlsZCByZWdpc3RyeSBwaXBlLgoJICBFeHBsaWNpdGx5IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gY2xvc2UsIHNpbmNlIGl0IG1ha2VzIG5vCgkgIGRpZmZlcmVuY2UuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3VucmVmKToKCSAgV2hlbiBkZWJ1Z2dpbmcgcmVmY291bnRzLCBjaGVjayBHU1RfSVNfTUlOSV9PQkpFQ1QgYW5kIHdhcm4uCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOgoJICBXaGVuIHJlbW92aW5nIGNhY2hlZCBwbHVnaW5zLCByZW1vdmUgdGhlaXIgZmVhdHVyZXMgdG9vLCBzbyB0aGV5J3JlCgkgIG5vdCB2aXNpYmxlIGFmdGVyIHRoZXkndmUgZGlzYXBwZWFyZWQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChwcmVwYXJlX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOgoJICBJbiB0aGUgdW5saWtlbHkgY2FzZSB0aGF0IHdlIGFyZSBsaW5raW5nIHBhZHMgd2l0aCBubyBwYXJlbnRzLCBkb24ndAoJICBjcmFzaCB0cnlpbmcgdG8gZ2V0IHRoZSBub24tZXhpc3RlbnQgcGFyZW50IGJpbi4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBPdXRwdXQgZGVidWcgaW4gdGhlIFBJUEVMSU5FIGNhdGVnb3J5CgoyMDA2LTEyLTA4IDE2OjEyOjQ0ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IFJlamVjdCBpbnZhbGlkIGNsb2NrIHRpbWVzIGZvciBpbnRlcnZhbCBvZiBwZXJpb2RpYyBpZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfbmV3X3BlcmlvZGljX2lkKToKCSAgUmVqZWN0IGludmFsaWQgY2xvY2sgdGltZXMgZm9yIGludGVydmFsIG9mIHBlcmlvZGljIGlkcy4KCSAgRml4ZXMgIyMzODM1MDYuCgoyMDA2LTEyLTA3IDEyOjExOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCByZWZjb3VudGluZyBvZiBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCB0byBtYXRjaCB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCByZWZjb3VudGluZyBvZiBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCB0byBtYXRjaCB0aGUgZG9jcy4KCSAgRml4ZXM6ICMzODAxMjkKCjIwMDYtMTItMDcgMTA6NTk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgZGVidWdnaW5nIG9mIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIGV2ZW50cy4KCjIwMDYtMTItMDcgMTA6NTE6MzYgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFrZSBwZXJpb2QgaWRzIGFkZCB0aGUgaW50ZXJ2YWwgdG8gdGhlIG9yaWdpYWwgcmVxdWVzdGVkIHRpbWUgaW5zdGVhZCBvZiB0aGUgcG9zc2libHkgdXBkYXRlZCB0aW1lIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgTWFrZSBwZXJpb2QgaWRzIGFkZCB0aGUgaW50ZXJ2YWwgdG8gdGhlIG9yaWdpYWwgcmVxdWVzdGVkIHRpbWUgaW5zdGVhZAoJICBvZiB0aGUgcG9zc2libHkgdXBkYXRlZCB0aW1lIHdoaWNoIGNhbiBiZSB3cm9uZyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZQoJICB3YWl0ZXJzIGZvciB0aGUgc2FtZSBpZC4gRml4ZXMgIzM4MjU5Mi4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcik6CgkgIEZpeCByZXN0YXJ0IGluIHRoZSBhc3luYyBub3RpZnkgdGhyZWFkIHdoZW4gYW4gYXN5bmMgZW50cnkgaXMgYWRkZWQgdG8KCSAgdGhlIGZyb250IG9mIHRoZSBsaXN0LiBGaXhlcyAjMzgxNDkyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoc3RvcmVfY2FsbGJhY2spLAoJICAobm90aWZ5X2NhbGxiYWNrKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIG11bHRpcGxlIGFzeW5jIHdhaXRzLgoJICBBZGRlZCB0ZXN0IGZvciBhc3luYyB3YWl0IG9yZGVyLgoKMjAwNi0xMi0wNyAxMDowMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIHNvbWUgbW9yZSBkb2NzIGFib3V0IHRoZSBQT1NJVElPTiBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBhYm91dCB0aGUgUE9TSVRJT04gcXVlcnkuCgoyMDA2LTEyLTA3IDAyOjM3OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIG5hbm8gLSBiYWNrIHRvIENWUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbmFubyAtIGJhY2sgdG8gQ1ZTLgoKPT09IHJlbGVhc2UgMC4xMC4xMSA9PT0KCjIwMDYtMTItMDcgMDI6MzM6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4xMSwgIkxvdmUgbmV2ZXIgcnVucyBvbiB0aW1lIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4xMSA9PT0KCSAgMjAwNi0xMi0wNiAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4xMSwgIkxvdmUgbmV2ZXIgcnVucyBvbiB0aW1lIgoKMjAwNi0xMi0wMSAxMDoyMzoyNiArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyLzogRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb3JlZWxlbWVudHMudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBGaXggY29tcGlsYXRpb24gb24gd2luMzIgdW5kZXIgVlM4CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgIFBhcnRpYWxseSBmaXhlcyAjMzgxMTc1CgoyMDA2LTExLTMwIDIyOjU1OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0xMS0yOSAxNjozOTozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSWYgc29tZW9uZSBpcyBmb29saXNoIGVub3VnaCB0byBjb21wYXJlIDIgZnJhY3Rpb25zIHdpdGggZGVub21pbmF0b3IgPSAwLCByZXR1cm4gVU5PUkRFUkVEIHJhdGhlciB0aGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIElmIHNvbWVvbmUgaXMgZm9vbGlzaCBlbm91Z2ggdG8gY29tcGFyZSAyIGZyYWN0aW9ucyB3aXRoIGRlbm9taW5hdG9yID0KCSAgMCwgcmV0dXJuIFVOT1JERVJFRCByYXRoZXIgdGhhbiBhYm9ydGluZy4KCjIwMDYtMTEtMjggMTI6MDc6MDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogTmV3IEdzdERhdGFRdWV1ZSBvYmplY3QgZm9yIHRocmVhZHNhZmUgcXVldWVpbmcuIE1vc3QgdXNlZnVsIGZvciBlbGVtZW50cyB0aGF0IG5lZWQgc29tZSBxdWV1ZWluZyBmdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X2RhdGFfcXVldWVfYmFzZV9pbml0KSwgKGdzdF9kYXRhX3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RhdGFfcXVldWVfaW5pdCksIChnc3RfZGF0YV9xdWV1ZV9uZXcpLAoJICAoZ3N0X2RhdGFfcXVldWVfY2xlYW51cCksIChnc3RfZGF0YV9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2VtcHR5KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19mdWxsKSwgKGdzdF9kYXRhX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2lzX2VtcHR5KSwgKGdzdF9kYXRhX3F1ZXVlX2lzX2Z1bGwpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X2ZsdXNoaW5nKSwgKGdzdF9kYXRhX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfcG9wKSwgKGdzdF9kYXRhX3F1ZXVlX2Ryb3BfaGVhZCksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X2RhdGFfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBOZXcgR3N0RGF0YVF1ZXVlIG9iamVjdCBmb3IgdGhyZWFkc2FmZSBxdWV1ZWluZy4gTW9zdCB1c2VmdWwgZm9yCgkgIGVsZW1lbnRzIHRoYXQgbmVlZCBzb21lIHF1ZXVlaW5nIGZ1bmN0aW9ubmFsaXR5LgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgSW5zZXJ0IGRvY3VtZW50YXRpb24gZm9yIEdzdERhdGFRdWV1ZQoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLCAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0X3Byb3BlcnR5KSwgKGdzdF9tdWx0aV9xdWV1ZV9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldGNhcHMpLCAoZ3N0X211bHRpX3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfYWNjZXB0Y2FwcyksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2V2ZW50KSwgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfcXVlcnkpLAoJICAod2FrZV91cF9uZXh0X25vbl9saW5rZWQpLCAoY29tcHV0ZV9uZXh0X25vbl9saW5rZWQpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgTmV3IG11bHRpcXVldWUgZWxlbWVudCwgdXNpbmcgR3N0RGF0YVF1ZXVlLiBVc2VkIGZvciBxdWV1aW5nIG11bHRpcGxlCgkgIHN0cmVhbXMuCgkgIENsb3NlcyAjMzQ0NjM5IGFuZCAjMzQ3Nzg1CgoyMDA2LTExLTIyIDEyOjI5OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGFkZCBtb3JlIG1pc3NpbmcgdHlwZSBkZXRhaWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgYWRkIG1vcmUgbWlzc2luZyB0eXBlIGRldGFpbHMKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwNi0xMS0yMSAwODozMDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzLzogYWRkIHR5cGVzIG9mIGJhc2UgY2xhc3NlcyB0byBlbmFibGUgZ29iamVjdCBzcGVjaWZpYyBzdHVmZiBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBhZGQgdHlwZXMgb2YgYmFzZSBjbGFzc2VzIHRvIGVuYWJsZSBnb2JqZWN0IHNwZWNpZmljIHN0dWZmIGluIHRoZSBkb2NzCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgIG1vcmUgaWRlYXMgYWJvdXQgaXNvbGF0aW5nIHBsYXRmb3JtIHNwZWNpZmljIHRoaW5ncwoKMjAwNi0xMS0yMCAxMToxMToyMCArMDAwMCAgU2ViYXN0aWFuIERyb2VnZSA8c2xvbW9AdWJ1bnR1LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBjb21waWxhdGlvbiBhbmQgcnVubmluZyBhZ2FpbnN0IDAuOS40LiBGaXhlcyAjMzc3MzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcm9lZ2UgPHNsb21vIGF0IHVidW50dSBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBjb21waWxhdGlvbiBhbmQgcnVubmluZyBhZ2FpbnN0IDAuOS40LiBGaXhlcyAjMzc3MzMyLgoKMjAwNi0xMS0yMCAxMDoyNzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEZpeCBib3VuZGFyeSBjaGVja2luZyBpbiB0b19ydW5uaW5nX3RpbWUoKSBhbmQgdG9fc3RyZWFtX3RpbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgRml4IGJvdW5kYXJ5IGNoZWNraW5nIGluIHRvX3J1bm5pbmdfdGltZSgpIGFuZCB0b19zdHJlYW1fdGltZSgpLgoJICBGaXhlcyAjMzc3MTgzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHN0cmVhbSBhbmQgcnVubmluZyB0aW1lIGNhbiBub3cgYmUgY2FsY3VsYXRlZCBmb3IgdGhlIGNvbXBsZXRlCgkgIGNsaXBwZWQgc2VnbWVudC4KCjIwMDYtMTEtMTUgMTc6Mzg6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IENhbid0IGFjY2VzcyBldmVudCBzdHJ1Y3R1cmUgYWZ0ZXIgZ2l2aW5nIGF3YXkgb3duZXJzaGlwIG9mIHRoZSBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgQ2FuJ3QgYWNjZXNzIGV2ZW50IHN0cnVjdHVyZSBhZnRlciBnaXZpbmcgYXdheSBvd25lcnNoaXAgb2YKCSAgdGhlIGV2ZW50LgoKMjAwNi0xMS0xNSAxMzowMDoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IG1vcmUgdGhpbmtpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcmVjZWlwaWVzLnR4dDoKCSAgbW9yZSB0aGlua2luZwoKMjAwNi0xMS0xMyAxODowMzozNSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGRvY3VtZW50YXRpb24gZm9yIGdzdF9wYWRfZGlzcGF0Y2hlci4gRml4ZXMgIzM3NDQ3NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfcGFkX2Rpc3BhdGNoZXIuIEZpeGVzICMzNzQ0NzUuCgoyMDA2LTExLTEzIDE3OjU0OjU4ICswMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBrYW9saW4ud2g5Lm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTdG9yZSBuZXcgbGVuZ3RoIGluIHNlZ21lbnQgZHVyYXRpb24gc28gd2UgZG9uJ3Qga2VlcCBvbiBjYWxsaW5nIHRoZSBwb3RlbnRpYWxseSBleHBlbnNpei4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuIGF0IGthb2xpbiBkb3Qgd2g5IGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgIFN0b3JlIG5ldyBsZW5ndGggaW4gc2VnbWVudCBkdXJhdGlvbiBzbyB3ZSBkb24ndCBrZWVwIG9uIGNhbGxpbmcgdGhlCgkgIHBvdGVudGlhbGx5IGV4cGVuc2l6ZSBnZXRfc2l6ZSgpIGNhbGwuIEZpeGVzICMzNzA4NjUuCgoyMDA2LTExLTEwIDE4OjU2OjQ0ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2VyeS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgdHdvIG1pc3Npbmcgc3ltYm9scyAoIzM2NjQ5MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggIDxzZXJnZXJ5LnNjb2JpY2ggYXQgZ21haWwgY29tPgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgdHdvIG1pc3Npbmcgc3ltYm9scyAoIzM2NjQ5MikuCgoyMDA2LTExLTEwIDEwOjUwOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBGaXggZm9ybWF0IHN0cmluZyB0byB1c2UgYWxsIGl0cyBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfZmx1c2gpLAoJICAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBGaXggZm9ybWF0IHN0cmluZyB0byB1c2UgYWxsIGl0cyBhcmd1bWVudHMuCgkgIFJlbW92ZSB1c2VsZXNzID49IGNoZWNrIG9uIGEgZ3VpbnQKCjIwMDYtMTEtMDkgMTU6MjU6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvYWRhcHRlci8uY3ZzaWdub3JlOiBJZ25vcmUgYnVpbGQgZmlsZSBhcyBjb21tYW5kZWQgYnkgdGhlIGJ1aWxkLWJvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBidWlsZCBmaWxlIGFzIGNvbW1hbmRlZCBieSB0aGUgYnVpbGQtYm90CgoyMDA2LTExLTA5IDE0OjM4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvOiBBZGQgbmV3IGZpbGVzIGZyb20gdGhlIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6IChydW5fdGVzdF90YWtlKSwKCSAgKHJ1bl90ZXN0X3Rha2VfYnVmZmVyKSwgKHJ1bl90ZXN0cyksIChtYWluKToKCSAgQWRkIG5ldyBmaWxlcyBmcm9tIHRoZSBwcmV2aW91cyBjb21taXQKCjIwMDYtMTEtMDkgMTQ6Mzc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRG8gc29tZSBvcHRpbWlzYXRpb24gd29yayBpbiBHc3RBZGFwdGVyIHRvIGF2b2lkIGNvcGllcyBpbiBtb3JlIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9jbGVhciksCgkgIChnc3RfYWRhcHRlcl9wdXNoKSwgKGdzdF9hZGFwdGVyX3BlZWtfaW50byksIChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX2ZsdXNoKSwgKGdzdF9hZGFwdGVyX3Rha2UpLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoY3JlYXRlX2FuZF9maWxsX2FkYXB0ZXIpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2FkYXB0ZXJfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBEbyBzb21lIG9wdGltaXNhdGlvbiB3b3JrIGluIEdzdEFkYXB0ZXIgdG8gYXZvaWQgY29waWVzIGluIG1vcmUgY2FzZXMuCgkgIEl0IGNvdWxkIHN0aWxsIGRvIHNsaWdodGx5IGJldHRlciBieSBtZXJnaW5nIGJ1ZmZlcnMgd2hlbgoJICBnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCBpcyB0cnVlLCBidXQgaXMgYWxyZWFkeSBmYXN0ZXIuCgkgIEFsc28sIGF2b2lkIHRyYXZlcnNpbmcgYSBzaW5nbGUtbGlua2VkIGxpc3QgdG8gYXBwZW5kIGVhY2ggaW5jb21pbmcKCSAgYnVmZmVyIGluc2lkZSB0aGUgYWRhcHRlci4KCSAgQWRkIHNpbXBsZSB0ZXN0IGFwcCB0aGF0IHRpbWVzIHRoZSBhZGFwdGVyIGJlaGF2aW91ciBpbiBkaWZmZXJlbnQKCSAgc2l0dWF0aW9ucywgYW5kIGV4dGVuZCB0aGUgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgYnl0ZXMgZW50ZXIgYW5kCgkgIGV4aXQgdGhlIGFkYXB0ZXIgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuCgoyMDA2LTExLTA4IDE5OjI3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogVXBkYXRlOiB1c2UgZWxlbWVudCBtZXNzYWdlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IG1lc3NhZ2UgdHlwZSB0byB0aGUgY29yZTsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFVwZGF0ZTogdXNlIGVsZW1lbnQgbWVzc2FnZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBtZXNzYWdlCgkgIHR5cGUgdG8gdGhlIGNvcmU7IGRvbid0IHByb3ZpZGUgR1N0cmVhbWVyIEFQSSB0byBpbml0aWF0ZSB0aGUKCSAgcGx1Z2luIGRvd25sb2FkLCBqdXN0IHByb3ZpZGUgQVBJIHRvIGNvbXBvc2UgdGhlIHN0cmluZ3MgbmVlZGVkCgkgIGFuZCBsZXQgYW4gZXh0ZXJuYWwgbGliZ2ltbWVzdHVmZiBoYW5kbGUgdGhlIHJlc3QuCgoyMDA2LTExLTA4IDExOjQxOjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50IGEgc3RyaW5nIGluc3RlYWQgb2YgJ3Vua25vd24gdHlwZScgZm9yIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUHJpbnQgYSBzdHJpbmcgaW5zdGVhZCBvZiAndW5rbm93biB0eXBlJyBmb3IgR1ZhbHVlQXJyYXkgcHJvcGVydGllcwoKMjAwNi0xMS0wOCAxMDozNToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZpeCBDaHJpc3RpYW4ncyBlbWFpbCBhZGRyZXNzIGluIENoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IENocmlzdGlhbidzIGVtYWlsIGFkZHJlc3MgaW4gQ2hhbmdlbG9nCgoyMDA2LTExLTA4IDAyOjA0OjUyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBNb3JlIHNtYWxsIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBNb3JlIHNtYWxsIGZpeGVzLgoKMjAwNi0xMS0wOCAwMjowMzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6IE1ha2UgdHlwZWZpbmQgZWxlbWVudCBleGFtcGxlIHdvcmsgYWdhaW4gKCMzNzE4OTQpOyBhZGQgYSBsaWNlbnNlIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpLCAobWFpbik6CgkgIE1ha2UgdHlwZWZpbmQgZWxlbWVudCBleGFtcGxlIHdvcmsgYWdhaW4gKCMzNzE4OTQpOyBhZGQgYQoJICBsaWNlbnNlIGhlYWRlci4KCjIwMDYtMTEtMDggMDE6NDA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBDb21taXQgaW5pdGlhbCBkcmFmdCBhYm91dCBob3cgdG8gZGVhbCB3aXRoIG1pc3NpbmcgcGx1Z2lucywgbmVlZHMgd29yayAoQVBJIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgQ29tbWl0IGluaXRpYWwgZHJhZnQgYWJvdXQgaG93IHRvIGRlYWwgd2l0aCBtaXNzaW5nIHBsdWdpbnMsCgkgIG5lZWRzIHdvcmsgKEFQSSB0b28pLgoKMjAwNi0xMS0wNyAwNzozNDo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBkb2N1bWVudHMgdGhlIG5ldyBjYXBzIGVsZW1lbnRzIChzZWUgIzM2MzExOCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2N1bWVudHMgdGhlIG5ldyBjYXBzIGVsZW1lbnRzIChzZWUgIzM2MzExOCkKCjIwMDYtMTEtMDYgMTc6NTM6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVc2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKSAtIHdlIHdhbnQgVVRGLTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgIFVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpIC0gd2Ugd2FudCBVVEYtOC4KCjIwMDYtMTEtMDYgMTc6MjU6MDEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBbm90aGVyIHByaW50ZiBmaXggKCMzNzE0OTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQW5vdGhlciBwcmludGYgZml4ICgjMzcxNDkzKS4KCjIwMDYtMTEtMDYgMTU6MjI6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogcmVsaWNlbmNlIChva2F5IHdpdGggYXV0aG9yPWNvbXBhbnkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgcmVsaWNlbmNlIChva2F5IHdpdGggYXV0aG9yPWNvbXBhbnkpCgoyMDA2LTExLTA2IDE1OjE4OjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEVuaGFuY2UgZGVidWcgYW5kIGltcHJvdmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgRW5oYW5jZSBkZWJ1ZyBhbmQgaW1wcm92ZSBkb2NzCgkgICogZ3N0L2dzdHVyaS5jOgoJICBGaXggZG9jcwoKMjAwNi0xMS0wNiAxNToxNzozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IG1vcmUgaWRlYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBtb3JlIGlkZWFzCgoyMDA2LTExLTA2IDE1OjE0OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBhZGQgbmV3IEFQSSBhbmQgZml4IHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBhZGQgbmV3IEFQSSBhbmQgZml4IHRoZSBidWlsZAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgdXNlIG5ldyBBUEkgYW5kIGltcHJvdmUgbG9nZ2luZwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGZ1bmN0aW9uIHRvIGdldCBTdGF0ZUNoYW5nZXJldHVybiBuYW1lcyB0byBpbXByb3ZlIGxvZ3MKCjIwMDYtMTEtMDYgMTI6MDE6MjcgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBkb2NzL3JhbmRvbS96YWhlZXJtL2R2Yi1pbnRlcmZhY2UudHh0OgoJICBOb3RlcyB0YWtlbiB3aGlsZSBkaXNjdXNzaW5nIGR2YiBjaGFubmVsIHNlbGVjdGlvbiB3aXRoIFdpbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTm90ZXMgdGFrZW4gd2hpbGUgZGlzY3Vzc2luZyBkdmIgY2hhbm5lbCBzZWxlY3Rpb24gd2l0aCBXaW0KCjIwMDYtMTEtMDQgMTI6NTQ6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGRvbid0IHB1dCBzdHJlcnJvciBpbiB0cmFuc2xhdGFibGUgbWVzc2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgcHV0IHN0cmVycm9yIGluIHRyYW5zbGF0YWJsZSBtZXNzYWdlCgoyMDA2LTExLTAzIDE1OjA0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBHZXQgdGhlIHR5cGUgYW5kIHByaW50ZiBjb252ZXJzaW9uIHNwZWNpZmllcnMgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgR2V0IHRoZSB0eXBlIGFuZCBwcmludGYgY29udmVyc2lvbiBzcGVjaWZpZXJzIHJpZ2h0LgoKMjAwNi0xMS0wMyAxMzo1NzoyOCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogU29tZSBzbWFsbCBjbGVhbnVwcy4gSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKHByZV9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBTb21lIHNtYWxsIGNsZWFudXBzLiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNpZ25hbCBhbGwgd2FpdGluZyB0aHJlYWRzIHdpdGggYSBicm9hZGNhc3QgaW5zdGVhZCBvZiBqdXN0IG9uZS4KCSAgRml4ZXMgIzM2OTk0Mi4KCjIwMDYtMTEtMDMgMDk6NDA6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9ubHkgdXBkYXRlIGZkIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkLgoKMjAwNi0xMS0wMiAyMDo1MjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBQcmludGYgZml4ZXMgZm9yIFBQQy9PU1gsIHRha2UgdHdvICgjMzY5MzY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBQcmludGYgZml4ZXMgZm9yIFBQQy9PU1gsIHRha2UgdHdvICgjMzY5MzY2KS4KCjIwMDYtMTEtMDIgMTM6MDA6MzggKzAwMDAgIEphbiBEYXZpZCBNb2wgPGouai5kLm1vbEB0dWRlbGZ0Lm5sPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFByaW50ZiBmaXhlcyBmb3IgZ3NpemUgcGFyYW1ldGVycyBvbiBQUEMvT1NYICgjMzY5MzY2KS4gQWxzbywgZG9uJ3QgY2FzdCB0byBsb25nIGxvbmcgZm9yIHBvcnRhYmlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSmFuIERhdmlkIE1vbCAgPGouai5kLm1vbCBhdCB0dWRlbGZ0IG5sPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBQcmludGYgZml4ZXMgZm9yIGdzaXplIHBhcmFtZXRlcnMgb24gUFBDL09TWCAoIzM2OTM2NikuIEFsc28sCgkgIGRvbid0IGNhc3QgdG8gbG9uZyBsb25nIGZvciBwb3J0YWJpbGl0eSByZWFzb25zLCBidXQgdXNlCgkgIEdMaWIncyB0eXBlcyBpbnN0ZWFkLgoKMjAwNi0xMC0zMCAxODo0MzoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBHZXQgdGhlIGFyZ3VtZW50cyB0byBsc2VlaygpIHRoZSByaWdodCB3YXkgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIEdldCB0aGUgYXJndW1lbnRzIHRvIGxzZWVrKCkgdGhlIHJpZ2h0IHdheSBhcm91bmQuCgkgIEZpeGVzIDM2NzY3Ny4KCjIwMDYtMTAtMzAgMDc6NTE6MTMgKzAwMDAgIGdvcnNoa292IDxnb3JzaGtvdkBvZ2htYS5vbi5jYT4KCgkgIGdzdC9nc3RpbmZvLmg6IF9kZWNsc3BlYyBzaG91bGQgYmUgX19kZWNsc3BlYyAodHdvIHVuZGVyc2NvcmVzLCBub3Qgb25lKS4gRml4ZXMgMzY2NTcyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGdvcnNoa292IDxnb3JzaGtvdiBhdCBvZ2htYSBkb3Qgb24gZG90IGNhPgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIF9kZWNsc3BlYyBzaG91bGQgYmUgX19kZWNsc3BlYyAodHdvIHVuZGVyc2NvcmVzLCBub3Qgb25lKS4gRml4ZXMgMzY2NTcyLgoKMjAwNi0xMC0yOCAxNTo0MjoyOSArMDAwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSAgVHlwbyBmaXhlcyAoIzM2NjIxMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogS2phcnRhbiBNYXJhYXMgIDxrbWFyYWFzIGF0IGdub21lIG9yZz4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L2NhcHNuZWdvMi1kb2NzOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgVHlwbyBmaXhlcyAoIzM2NjIxMikuCgoyMDA2LTEwLTI4IDE1OjEwOjI2ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgQWRkIG5lZWRlZCBlbnRyaWVzIGluIC5kZWYgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3QuYzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSAgQWRkIG5lZWRlZCBlbnRyaWVzIGluIC5kZWYgZmlsZXMuCgkgIFVzZSBIQVZFX1VOSVNURF9ILgoJICBSZWFycmFuZ2UgZGVmIGZpbGVzIGluIHZzOCBzb2x1dGlvbnMuIEZpeGVzICMzNjYyODYuCgoyMDA2LTEwLTI4IDE1OjAzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBBZGQgR1NUX1NFR01FTlRfRk9STUFUIGFuZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byB0aGUgaGFuZC1tYWRlIHdpbjMyIGdzdGNvbmZpZy5oLiBGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgQWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCBhbmQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gdGhlCgkgIGhhbmQtbWFkZSB3aW4zMiBnc3Rjb25maWcuaC4gRml4ZXMgIzM2NjMyMS4KCjIwMDYtMTAtMjcgMTY6MzE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTWFrZSBhY2NlcHRjYXBzIHJldHVybiBUUlVFIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldCwganVzdCBsaWtlIHNldGNhcHMgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIE1ha2UgYWNjZXB0Y2FwcyByZXR1cm4gVFJVRSB3aGVuIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQsIGp1c3QgbGlrZQoJICBzZXRjYXBzIGRvZXMuCgoyMDA2LTEwLTI3IDEwOjEwOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJldmVydCBwcmV2aW91cyBjb21taXQsIDAgc2l6ZWQgYnVmZmVycyBhcmUgYWxsb3dlZC4gUmVvcGVucyAjMzYzMDk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQsIDAgc2l6ZWQgYnVmZmVycyBhcmUgYWxsb3dlZC4gUmVvcGVucyAjMzYzMDk1LgoKMjAwNi0xMC0yNiAwODo0OTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogSWYgc29tZW9uZSB0cmllcyB0byBzZXQgYSBub24tVVRGOCBzdHJpbmcgZmllbGQgb24gYSBzdHJ1Y3R1cmUsIGRvbid0IGp1c3QgcHJpbnQgYSB3YXJuaW5nLCBidXQgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIElmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGEgbm9uLVVURjggc3RyaW5nIGZpZWxkIG9uIGEgc3RydWN0dXJlLAoJICBkb24ndCBqdXN0IHByaW50IGEgd2FybmluZywgYnV0IGFsc28gaWdub3JlIHRoZSByZXF1ZXN0IGFuZCBkbwoJICBub3QgY2hhbmdlL2FkZCB0aGF0IGZpZWxkIHRvIHRoZSBzdHJ1Y3R1cmUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIFRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMjYgMDA6MDA6MzQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZm8uYzogZ19oYXNoX3RhYmxlX2luc2VydCgpIG5lZWRzIGEgY2FzdCB0byBhIG5vbi1jb25zdCBwb2ludGVyIGR1aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgZ19oYXNoX3RhYmxlX2luc2VydCgpIG5lZWRzIGEgY2FzdCB0byBhIG5vbi1jb25zdCBwb2ludGVyIGR1aC4KCjIwMDYtMTAtMjUgMjM6NDc6NDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZm8uKjogQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0ciB0byBjb25zdCB0byByZWZsZWN0IHRoZSBjb25zdG5lc3Mgb2YgaXRzIHVzZSBpbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0ciB0byBjb25zdAoJICB0byByZWZsZWN0IHRoZSBjb25zdG5lc3Mgb2YgaXRzIHVzZSBpbiB0aGUgZnVuY3Rpb24gYXMgd2VsbAoJICBhcyB0byBxdWlldCBhIGdjYyB3YXJuaW5nLgoKMjAwNi0xMC0yNSAxMzo0MTo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBwdXNoIHRoZSBidWZmZXIgaWYgaXQncyBlbXB0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBEb24ndCBwdXNoIHRoZSBidWZmZXIgaWYgaXQncyBlbXB0eS4KCSAgQ2xvc2VzICMzNjMwOTUKCjIwMDYtMTAtMjQgMDg6MjI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQWRkIHNtYWxsIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgc21hbGwgY29tbWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6CgkgIERlYnVnIHNlZ21lbnQgdmFsdWVzICphZnRlciogdXBkYXRpbmcgdGhlbSBhcyB0aGlzIGlzIG1vcmUKCSAgaW50ZXJlc3RpbmcuCgoyMDA2LTEwLTIzIDE1OjIxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pc19ibG9ja2luZyksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFJldmVydCBCTE9DS0lORyBwYXRjaCwgaXQgdHJpZXMgdG8gYmUgc21hcnQgd2l0aG91dCByZWFsbHkgaGF2aW5nIGEKCSAgY2xlYXIgaWRlYSB3aGF0IG9yIGhvdy4gU28sIG5vdyB3ZSBkaXNjYXJkIGFsbCBGTFVTSElORyBldmVudHMgYWdhaW4gb24KCSAgYSBibG9ja2luZyBwYWQuIFNob3VsZCBmaXggZ25vbmxpbiBhZ2Fpbi4KCjIwMDYtMTAtMjMgMTQ6NTE6MzAgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzdXJlIHNpemUgaXMgYWx3YXlzIGluaXRpYWxpemVkLiBGaXhlcyAjMzY0Mzg4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBzdXJlIHNpemUgaXMgYWx3YXlzIGluaXRpYWxpemVkLiBGaXhlcyAjMzY0Mzg4LgoKMjAwNi0xMC0yMCAxMTozNjo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6IGFkZCBzb21lIGlkZWFzIGFib3V0IGRvaW5nIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6CgkgIGFkZCBzb21lIGlkZWFzIGFib3V0IGRvaW5nIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmcKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIGdldF9ydXNhZ2UgbG9vayBwcm9taXNpbmcKCjIwMDYtMTAtMTggMTk6NDM6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogQWRkIGEgY2FzdCBpbiBleGFtcGxlIHRvIGZpeCBjb21waWxlIHdhcm5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBBZGQgYSBjYXN0IGluIGV4YW1wbGUgdG8gZml4IGNvbXBpbGUgd2FybmluZwoKMjAwNi0xMC0xOCAxNToyODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFJlbGF4IGFyZyBjaGVja2luZyBhZ2FpbiwgLTEgaXMgYWxsb3dlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIFJlbGF4IGFyZyBjaGVja2luZyBhZ2FpbiwgLTEgaXMgYWxsb3dlZC4KCjIwMDYtMTAtMTggMTM6Mjc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBfc2V0X2xhc3Rfc3RvcCgpIG11c3QgYmUgd2l0aCBhIHZhbHVlICE9IC0xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBfc2V0X2xhc3Rfc3RvcCgpIG11c3QgYmUgd2l0aCBhIHZhbHVlICE9IC0xCgkgIEEgX1RZUEVfU0VUIHRvIC0xIG1lYW5zIHNlZWsgdG8gMC4KCSAgQ2FsYyBsYXN0X3N0b3AgY29ycmVjdGx5IGZvciBuZWdhdGl2ZSByYXRlcy4KCSAgTWFrZSBzdXJlIHdlIHdvcmsgd2l0aCBwb3NpdGl2ZSBkdXJhdGlvbnMgd2hlbiB1cGRhdGluZyBhIHNlZ21lbnQuCgoyMDA2LTEwLTE4IDEzOjIxOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNtYWxsIGRvY3MgZml4ZXMuCgoyMDA2LTEwLTE4IDEwOjA4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBZGQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RCdWZmZXIqKiB0byBrZWVwIG9sZCBjb2RlIHRoYXQgYWRkZWQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RNaW5pT2JqZWN0KiogLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0QnVmZmVyKiogdG8ga2VlcCBvbGQgY29kZSB0aGF0IGFkZGVkIGFuCgkgIGV4cGxpY2l0IGNhc3QgdG8gR3N0TWluaU9iamVjdCoqIGZvciBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpCgkgIGNvbXBpbGluZyB3aXRob3V0IHdhcm5pbmcuCgoyMDA2LTEwLTE4IDA4OjU0OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogY2hlY2sgZm9yIHZhbGlkaXR5IG9mIGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9kYXRlKSwgKGdzdF9kYXRlX2NvcHkpOgoJICBjaGVjayBmb3IgdmFsaWRpdHkgb2YgZGF0ZXMKCjIwMDYtMTAtMTcgMTI6MDk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGb3Jnb3QgdGhpcyBvbmUsIG1ha2VzIGd0ay1kb2Mgc2h1dCB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRm9yZ290IHRoaXMgb25lLCBtYWtlcyBndGstZG9jIHNodXQgdXAuCgoyMDA2LTEwLTE3IDExOjU3OjMyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaDogRG9uJ3QgZGVmaW5lIHhtbE5vZGVQdHIgdG8gZ3BvaW50ZXIgaWYgdGhlIGNvcmUgd2FzIGJ1aWx0IHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvbid0IGRlZmluZSB4bWxOb2RlUHRyIHRvIGdwb2ludGVyIGlmIHRoZSBjb3JlIHdhcyBidWlsdCB3aXRoCgkgIC0tZGlzYWJsZS1sb2Fkc2F2ZSBhbmQgLS1kaXNhYmxlLXJlZ2lzdHJ5LCB0aGlzIHdpbGwgYnJlYWsKCSAgYXBwbGljYXRpb25zIHRoYXQgd2FudCB0byB1c2UgbGlieG1sMiBidXQgYXJlIGJ1aWxkbGluZyBhZ2FpbnN0IGEKCSAgY29yZSB0aGF0IGRvZXNuJ3QgdXNlIGxpYnhtbDIuIFVzZSBhbiBpbnRlcm1lZGlhcnkgdHlwZSBHc3RYbWxOb2RlUHRyCgkgIGluc3RlYWQgc28gd2UgZG9uJ3QgaGF2ZSB0byBtZXNzIHdpdGggdGhlIGxpYnhtbDIgbmFtZXNwYWNlCgkgICgjMzYxNjc1KS4KCjIwMDYtMTAtMTcgMTA6MzA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEZpeCBnc3RfYnVmZmVyX3JlcGxhY2UoKSBtYWNybyB0byBhdm9pZCBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpLXJlbGF0ZWQgdHlwZS1wdW5uZWQgcG9pbnRlciB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBGaXggZ3N0X2J1ZmZlcl9yZXBsYWNlKCkgbWFjcm8gdG8gYXZvaWQgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKS1yZWxhdGVkCgkgIHR5cGUtcHVubmVkIHBvaW50ZXIgd2FybmluZ3MuCgoyMDA2LTEwLTE2IDIwOjAyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQWRkIGNhc3RzIHRvIHRoZSBjb3JyZWN0IHJldHVybiB0eXBlIHRvIHN0YXRlIDw9PiBzdGF0ZSB0cmFuc2l0aW9uIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkIGNhc3RzIHRvIHRoZSBjb3JyZWN0IHJldHVybiB0eXBlIHRvIHN0YXRlIDw9PiBzdGF0ZSB0cmFuc2l0aW9uCgkgIG1hY3Jvcy4KCjIwMDYtMTAtMTYgMTM6NTM6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OiBkZXNjcmliZSBob3d0byBoYW5kbGUgbGF0ZW5jeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgZGVzY3JpYmUgaG93dG8gaGFuZGxlIGxhdGVuY3kKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIG1vcmUgaWRlYXMKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgZml4IGxvZyBwYXJzaW5nIGZvciBzb2xhcmlzLCByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDA2LTEwLTE2IDExOjQ2OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXBkYXRlIHNvbWUgZG9jcyByZWdhcmRpbmcgcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgVXBkYXRlIHNvbWUgZG9jcyByZWdhcmRpbmcgcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDYtMTAtMTUgMTI6NDc6MTMgKzAwMDAgIE1hcmN1cyBHcmFuYWRvIDxtcmMuZ3JhbkBnbWFpbC5jb20+CgoJICB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6IEVycm9yIG91dCB3aXRoIGEgd2FybmluZyBpZiBnbGliLWdlbm1hcnNoYWwuZXhlIGlzIG5vdCBpbiBwYXRoLCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGJvZ3VzIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjdXMgR3JhbmFkbyAgPG1yYyBkb3QgZ3JhbiBhdCBnbWFpbCBjb20+CgkgICogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJICBFcnJvciBvdXQgd2l0aCBhIHdhcm5pbmcgaWYgZ2xpYi1nZW5tYXJzaGFsLmV4ZSBpcyBub3QgaW4gcGF0aCwKCSAgaW5zdGVhZCBvZiBjcmVhdGluZyBib2d1cyBnc3RtYXJzaGFsLltjaF0gZmlsZXMuIEZpeGVzICMzNjE3MjAuCgoyMDA2LTEwLTEzIDE2OjA5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogV2hlbiBzZWVraW5nIHRvIHN0b3AgLTEsIHNldCBsYXN0X3N0b3AgKGN1cnJlbnQgcG9zaXRpb24pIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgV2hlbiBzZWVraW5nIHRvIHN0b3AgLTEsIHNldCBsYXN0X3N0b3AgKGN1cnJlbnQgcG9zaXRpb24pIHRvIHRoZQoJICBkdXJhdGlvbiBvZiB0aGUgc2VnbWVudC4KCjIwMDYtMTAtMTMgMTM6Mjc6NDYgKzAwMDAgIFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGVAYWJhY29tLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IENsYXJpZnkgX05PX1BSRVJPTEwgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQ2xhcmlmeSBfTk9fUFJFUk9MTCBhIGJpdCBtb3JlLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLAoJICAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgUGF0Y2ggYnk6IFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGUgYXQgYWJhY29tIGRvdCBjb20+IEZpeCBwb3NzaWJsZSBkZWFkbG9jawoJICBkdWUgdG8gd3JvbmcgbG9ja2luZyBvcmRlci4gRml4ZXMgIzM2MTc2OS4KCSAgUmVtb3ZlIHNvbWUgcmVkdW5kYW50L21pc3BsYWNlZCBjaGVja3MgaW4gcGFkX2Jsb2NrLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRm9yIG5lZ2F0aXZlIHJhdGVzLCBjb3VudCBiYWNrd2FyZHMgZnJvbSB0aGUgZHVyYXRpb24uCgoyMDA2LTEwLTEzIDA5OjM3OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IEZpeCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9TRVRUSU5HUyAoZmVlbCBmcmVlIHRvIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2xpYnJhcnlfZXJyb3JzX2luaXQpOgoJICBGaXggZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfU0VUVElOR1MgKGZlZWwgZnJlZSB0byBjb21lCgkgIHVwIHdpdGggc29tZXRoaW5nIGJldHRlcikuCgoyMDA2LTEwLTEyIDIyOjM1OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvOiBEb24ndCByZWZlcmVuY2UgZ2xpYi1jb21wYXQuYyB3aGljaCBpcyBjdXJyZW50bHkgbm90IHVzZWQgYW5kIG5vdCBkaXN0ZWQ7IGFkZCBnc3RxdWFyay5jIHdoaWNoIHdhcyByZWNlbnRseSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICAqIHdpbjMyL3ZzNy9saWJnc3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBEb24ndCByZWZlcmVuY2UgZ2xpYi1jb21wYXQuYyB3aGljaCBpcyBjdXJyZW50bHkgbm90IHVzZWQgYW5kIG5vdAoJICBkaXN0ZWQ7IGFkZCBnc3RxdWFyay5jIHdoaWNoIHdhcyByZWNlbnRseSBhZGRlZC4gRml4ZXMgIzM2MTczMC4KCjIwMDYtMTAtMTIgMTY6MDk6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgYSBidW5jaCBvZiBvdGhlciByZWNlbnRseS1hZGRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHJlY2VudGx5LWFkZGVkIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzM2MTczMi4KCjIwMDYtMTAtMTEgMTY6MzA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBVcGRhdGUgZWxlbWVudCBhcmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgVXBkYXRlIGVsZW1lbnQgYXJncy4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgU21hbGwgY29tbWVudCB1cGRhdGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCksIChnc3RfdGVlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfdGVlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgU29tZSB0ZWUgbG92aW5nOgoJICBBZGQgZGVmYXVsdCBwcm9wZXJ0eSBkZWZpbmVzLgoJICBJbXBsZW1lbnQgcmVsZWFzZSBwYWQgZnVuY3Rpb24uCgkgIEdpdmUgcHJvcGVydGllcyBiZXR0ZXIgYmx1YnMgZXRjLgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBhZGRpbmcgdGhlbSB0byBhIHJ1bm5pbmcgdGVlLgoJICBEbyBzaW1wbGUgYnVmZmVyX2FsbG9jIG9uIHRoZSBmaXJzdCByZXF1ZXN0ZWQgcGFkLgoJICBQb3N0IGVycm9yIHdoZW4gYWN0aXZhdGlvbiBmYWlscy4KCjIwMDYtMTAtMTEgMTI6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENoZWNrIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBDaGVjayByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKSB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoKMjAwNi0xMC0xMSAxMDoxMDozNyArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBSZWNoZWNrIHF1ZXVlIGZpbGxlZG5lc3MgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgb3ZlcnJ1biB3aGVuIHdlJ3JlIGFib3V0IHRvIGxlYWsgZG93bnN0cmVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBSZWNoZWNrIHF1ZXVlIGZpbGxlZG5lc3MgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgb3ZlcnJ1biB3aGVuIHdlJ3JlIGFib3V0CgkgIHRvIGxlYWsgZG93bnN0cmVhbSBiZWNhdXNlIHdlIHJlbGVhc2VkIHRoZSBsb2NrIHdoZW4gZW1pdHRpbmcgdGhlIHNpZ25hbAoJICBhbmQgdGhlIHF1ZXVlIGNvdWxkIGJlIGVtcHR5IGFnYWluLiBGaXhlcyAjMzUyMzQ1LgoKMjAwNi0xMC0xMSAwOToxMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggcmVmY291bnRpbmcgaGVyZSB0b28sIGp1c3QgbGlrZSB3ZSBkaWQgZm9yIF9uZXdfdmFsaXN0KCkgYSBmZXcgZGF5cyBhZ28gKCMzNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgRml4IHJlZmNvdW50aW5nIGhlcmUgdG9vLCBqdXN0IGxpa2Ugd2UgZGlkIGZvciBfbmV3X3ZhbGlzdCgpIGEgZmV3CgkgIGRheXMgYWdvICgjMzU3MTgwKSAodGhhbmtzIHRvIFJlbsOpIFN0YWRsZXIpLiBBbHNvIHJlbW92ZSBhbGwgdGhvc2UKCSAgJ1NpbmNlOiAwLjknIGZyb20gdGhlIGd0ay1kb2MgYmxvYnMuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChjb250cm9sbGVyX3JlZmNvdW50X25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTEwIDE0OjQ3OjQwICswMDAwICBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDJAeWFob28uY2E+CgoJICBnc3QvZ3N0cGFkLmM6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIENvdGUgPHNlYmFzNjQyIGF0IHlhaG9vIGRvdCBjYT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKToKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgV3JpdGUgcGFkIGRpcmVjdGlvbiBpbiBYTUwgb3V0cHV0LiBGaXhlcyAjMzQ1NDk2LgoKMjAwNi0xMC0xMCAxNDoxMzowOCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBUYWtlIHJlZiB0byBjb250cm9sbGVkIG9iamVjdCBzbyB0aGF0IGl0IGNhbm5vdCBkaXNhcHBlYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwKCSAgKF9nc3RfY29udHJvbGxlcl9maW5hbGl6ZSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgIFRha2UgcmVmIHRvIGNvbnRyb2xsZWQgb2JqZWN0IHNvIHRoYXQgaXQgY2Fubm90IGRpc2FwcGVhci4KCSAgRml4ZXMgIzM1NzQzMi4KCjIwMDYtMTAtMTAgMTQ6MDk6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBBY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgaW4gc2V0dXAvdGVhcmRvd24gcmVzcGVjdGl2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgIEFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyBpbiBzZXR1cC90ZWFyZG93biByZXNwZWN0aXZlbHkuCgoyMDA2LTEwLTEwIDEyOjEyOjQ0ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBDYXN0IHZhbHVlcyB3aGVuIG1ha2luZyBnc3RlbnVtdHlwZXMuaC4gIFRoaXMgcGFjaWZpZXMgRm9ydGUgc28gaXQgZG9lc24ndCB3YXJuIGFib3V0IHRoZSB+MCBhcyBHU1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTEwICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgQ2FzdCB2YWx1ZXMgd2hlbiBtYWtpbmcgZ3N0ZW51bXR5cGVzLmguICBUaGlzIHBhY2lmaWVzIEZvcnRlCgkgIHNvIGl0IGRvZXNuJ3Qgd2FybiBhYm91dCB0aGUgfjAgYXMgR1NUX01FU1NBR0VfQU5ZIG5vdCBmaXR0aW5nCgkgIGluIHRoZSBlbnVtZXJhdGlvbi4KCjIwMDYtMTAtMDkgMTc6MTU6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogUmVuYW1lIHNvbWUgbW9yZSBAY3VyIHRvIEBzdGFydCB0byBmaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X3NlZWspLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspOgoJICBSZW5hbWUgc29tZSBtb3JlIEBjdXIgdG8gQHN0YXJ0IHRvIGZpeCBkb2NzLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIEZpeCB0eXBvLgoJICB0aW1lIGFuZCBzdGFydCBtdXN0IGFsd2F5cyBzdGF5IGluIHN5bmMgYXMgZGVmaW5lZCBpbiBkZXNpZ24gZG9jLgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfaXNfZW1wdHkpOgoJICBSZW5hbWUgcGFyYW0gdG8gZml4IGRvY3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgdGhhdCBzdGFydCBhbmQgdGltZSBhcmUgaW4gc3luYy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEFjdGl2YXRlIHBhZCBiZWZvcmUgYWRkaW5nIHRvIHRoZSBlbGVtZW50LgoKMjAwNi0xMC0wOSAxNjozMzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFVwZGF0ZSBzZWVrIGV2ZW50IGRvY3MgcmVnYXJkaW5nIG5lZ2F0aXZlIHJhdGVzLgoJICBSZW5hbWUgQGN1ciB0byBAc3RhcnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBVcGRhdGUgc2V0X3NlZWsgZG9jcyByZWdhcmRpbmcgbmVnYXRpdmUgcmF0ZXMuCgkgIENvcnJlY3RseSB1cGRhdGUgbGFzdF9zdG9wIHRvIEBzdG9wIHdoZW4gZGVhbGluZyB3aXRoIG5lZ2F0aXZlCgkgIHJhdGVzLgoJICBSZW5hbWUgQGN1ciB0byBAc3RhcnQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB0cnlpbmcgdG8gdXNlIHRoZW0uCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgQWRkIHNpbXBsZSBjaGVjayBmb3Igc2VnbWVudHMgYW5kIG5lZ2F0aXZlIHJhdGVzLgoKMjAwNi0xMC0wOSAxMToyMDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9pc19lbXB0eSgpICgjMzYwNDY3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9pc19lbXB0eSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZW1wdHkoKSAoIzM2MDQ2NykuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbmQgYSB0ZXN0IGNhc2UuCgoyMDA2LTEwLTA5IDExOjA2OjUwICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogUmV2ZXJ0IGNoYW5nZSBmcm9tIGVhcmxpZXIgd3J0IEdTVF9NRVNTQUdFX1RZUEVfQU5ZIGhhdmluZyBhIHZhbHVlIHRoYXQgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmV2ZXJ0IGNoYW5nZSBmcm9tIGVhcmxpZXIgd3J0IEdTVF9NRVNTQUdFX1RZUEVfQU5ZIGhhdmluZwoJICBhIHZhbHVlIHRoYXQgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24uCgoyMDA2LTEwLTA5IDEwOjE0OjI4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFJlbW92ZSBsb2NhbCBkZWJ1Z2dpbmcgc3lzdGVtIGFuZCB1c2UgR3N0cmVhbWVyJ3MgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIFJlbW92ZSBsb2NhbCBkZWJ1Z2dpbmcgc3lzdGVtIGFuZCB1c2UgR3N0cmVhbWVyJ3MgaW5zdGVhZC4KCjIwMDYtMTAtMDkgMDk6MzI6MjkgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBjb21tb24vbTQvZ3N0LWVycm9yLm00OiBEaXNhYmxlIHdhcm5pbmcgb2Ygc3RhdGVtZW50IG5vdCByZWFjaGVkIG9uIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICBEaXNhYmxlIHdhcm5pbmcgb2Ygc3RhdGVtZW50IG5vdCByZWFjaGVkIG9uIEZvcnRlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeCB3YXJuaW5nIG9uIEZvcnRlICh2YWx1ZSBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbikuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIEZpeCB3YXJuaW5nIG9uIEZvcnRlICh2YWx1ZSBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbikuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBERUJVRyBtYWNybyBzYXlzIGl0IHRha2VzIG1pbmltdW0gb2YgMiBhcmdzIGFuZCBzbyBGb3J0ZQoJICBjb21wbGFpbnMgYWJvdXQgdGhlIHVzZSB3aXRoIGp1c3QgMSBhcmcuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgY29ycmVjdCByZXR1cm4gdHlwZSBmb3IgdGhlIHVyaSBoYW5kbGVyIGltcGxlbWVudGF0aW9ucy4KCSAgQWxsIHRoZXNlIGZpeCB3YXJuaW5ncyBpbiBGb3J0ZS4gIEZpeGVzIGJ1ZyAjMzYwODYwLgoKMjAwNi0xMC0wOCAxMzoyNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IGdjYyB2ZXJzaW9ucyBwcmlvciB0byBnY2MgMy4zIGFwcGFyZW50bHkgY29tcGxhaW4gYWJvdXQgYSBOVUxMIHByaW50ZiBmb3JtYXQgc3RyaW5nLCBzbyBkb24ndCB1c2UgRy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnY2MgdmVyc2lvbnMgcHJpb3IgdG8gZ2NjIDMuMyBhcHBhcmVudGx5IGNvbXBsYWluIGFib3V0IGEgTlVMTCBwcmludGYKCSAgZm9ybWF0IHN0cmluZywgc28gZG9uJ3QgdXNlIEdfR05VQ19QUklOVEYgZm9yIHRob3NlIHZlcnNpb25zLgoKMjAwNi0xMC0wNyAxODo0MToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IE1pbm9yIGZpeGVzIHRvIEdTVF9JU19UQUdfTElTVCBhbmQgZ3N0X2lzX3RhZ19saXN0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfaXNfdGFnX2xpc3QpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIE1pbm9yIGZpeGVzIHRvIEdTVF9JU19UQUdfTElTVCBhbmQgZ3N0X2lzX3RhZ19saXN0KCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIFNtYWxsIHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMDcgMTg6MTE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBMZXNzIHRhYnMsIG1vcmUgc3BhY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBMZXNzIHRhYnMsIG1vcmUgc3BhY2VzLgoKMjAwNi0xMC0wNiAxNzoyMTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFRob3NlIHR3byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZG8gYWN0dWFsbHkgYmVsb25nIHRoZXJlLCByZXZlcnQgY29tbWl0IGZyb20geWVzdGVyZGF5IHRoYXQgdHVybmVkIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBUaG9zZSB0d28gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGRvIGFjdHVhbGx5IGJlbG9uZyB0aGVyZSwgcmV2ZXJ0CgkgIGNvbW1pdCBmcm9tIHllc3RlcmRheSB0aGF0IHR1cm5lZCB0aGVtIGludHJvIG1hY3Jvcy4KCjIwMDYtMTAtMDYgMTQ6NDY6MDQgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBlbXB0eSBkZWNsYXJhdGlvbiBhbmQgdHlwZSBtaXNtYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCk6CgkgIEZpeCBlbXB0eSBkZWNsYXJhdGlvbiBhbmQgdHlwZSBtaXNtYXRjaC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2guCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoZXMuCgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19jb21wYXJlX2xvZ19mdW5jdGlvbl9ieV9mdW5jKSwKCSAgKGdzdF9kZWJ1Z19yZW1vdmVfbG9nX2Z1bmN0aW9uKSwgKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICBDYXN0IGFzIGFwcHJvcHJpYXRlLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9jbGFzc19zaWduYWxfY29ubmVjdCk6CgkgIENhc3QgYXMgYXBwcm9wcmlhdGUuICBUaGUgZnVuY3Rpb24gcG9pbnRlciBwYXJhbWV0ZXIgcmVhbGx5CgkgIGhhcyB0aGUgd3JvbmcgdHlwZSBidXQgd291bGQgYnJlYWsgQVBJIGlmIHdlIGNoYW5nZSBpdC4KCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgRml4IHJlZGVmaW5pdGlvbiBvZiBfRklMRV9PRkZTRVRfQklUUyBjYXVzZWQgb24gU29sYXJpcyB3cnQKCSAgb3JkZXIgb2YgaW5jbHVkaW5nIHN0cmluZy5oLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICBSZW1vdmUgdW5yZWFjaGFibGUgbGluZS4KCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX3BhcnNlX2RvYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoLgoJICBBbGwgdGhlc2UgY2F1Z2h0IGJ5IEZvcnRlLgoKMjAwNi0xMC0wNiAxNDowMDo0OSArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6IEZpeGVkIGJ1ZyAjMzYwMTUxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICBGaXhlZCBidWcgIzM2MDE1MS4KCSAgV2UgbmVlZCB0byBkaXNhYmxlIHdhcm5pbmdzIG9uIEZvcnRlIGZvciBlbXB0eSBkZWNsYXJhdGlvbnMKCSAgZHVlIHRvIGdzdC1pbmRlbnQgYWRkaW5nIDtzIHRvIGxpbmVzIHRoYXQganVzdCB1c2UgbWFjcm9zCgkgIHdoZXJlIHRoZSBtYWNybyBhY3R1YWxseSBkb2Vzbid0IG5lZWQgYSA7IGF0IGVuZCB0byBlbmQKCSAgc3RhdGVtZW50LgoKMjAwNi0xMC0wNiAxMzowMTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogQWRkIHNvbWUgRklYTUUgZm9yIHRoZSBORVdTRUdNRU5UIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEFkZCBzb21lIEZJWE1FIGZvciB0aGUgTkVXU0VHTUVOVCBoYW5kbGluZy4KCjIwMDYtMTAtMDUgMTU6NDc6NDQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgc3RhdGljIGZ1bmN0aW9uIGdzdF9wYXJzZV9lbGVtZW50X2xvY2sgYXMgYWxsIGl0IGRvZXMgaXMgcmV0dXJuLiAgTG9va3MgbGlrZSBjcnVmdCBmcm9tIDAuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgc3RhdGljIGZ1bmN0aW9uIGdzdF9wYXJzZV9lbGVtZW50X2xvY2sgYXMgYWxsIGl0IGRvZXMKCSAgaXMgcmV0dXJuLiAgTG9va3MgbGlrZSBjcnVmdCBmcm9tIDAuOC4KCjIwMDYtMTAtMDUgMTU6MzE6MTYgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBGaXggYSBjb21waWxhdGlvbiBpc3N1ZSB3aXRoIEZvcnRlIG9uIFNvbGFyaXMuICBpbmV0X2F0b24gaXMgaW4gbGlicmVzb2x2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIEZpeCBhIGNvbXBpbGF0aW9uIGlzc3VlIHdpdGggRm9ydGUgb24gU29sYXJpcy4gIGluZXRfYXRvbiBpcyBpbgoJICBsaWJyZXNvbHYuCgoyMDA2LTEwLTA1IDE0OjI2OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUHJpbnRmIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgUHJpbnRmIGZpeGVzLgoKMjAwNi0xMC0wNSAxMjozMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byBnc3Rjb25maWcuaCBzbyB0aGF0IHdlIGtub3cgd2hldGhlciB3ZSBjYW4gdXNlIEdfR05VQ19QUklOVEYgaW4gb3RoZXIgaGVhZGVyIGZpbGVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gZ3N0Y29uZmlnLmggc28gdGhhdCB3ZSBrbm93CgkgIHdoZXRoZXIgd2UgY2FuIHVzZSBHX0dOVUNfUFJJTlRGIGluIG90aGVyIGhlYWRlciBmaWxlcyBhbmQgYXQKCSAgbGVhc3QgY2hlY2sgdGhlIHByaW50ZiBmb3JtYXQvYXJndW1lbnRzIG9mIGRlYnVnIG1lc3NhZ2VzIGFuZAoJICBHU1RfRUxFTUVOVF9FUlJPUiBtZXNzYWdlcyB3aGVuIHRoZSBwcmludGYgZXh0ZW5zaW9uIGlzIG5vdAoJICBiZWluZyB1c2VkLgoJICBSZXBsYWNlIG1vcmUgdGFicyB3aXRoIHNwYWNlcyBpbiBnc3RpbmZvLmggYW5kIHJlbW92ZSB0d28gc3B1cmlvdXMKCSAgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluIEdTVF9ESVNBQkxFX0RFQlVHIHBhcnQgd2l0aCBtYWNyb3MuCgoyMDA2LTEwLTAzIDE5OjEzOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNb3JlIGRvY3MgZm9yIHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIChtZW50aW9uIHRoYXQgaXQgaXMgbm90IGVtaXR0ZWQgYnkgZGVmYXVsdCk7IGxvZyBtZXNzYWdlIHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX3Bvc3QpOgoJICBNb3JlIGRvY3MgZm9yIHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIChtZW50aW9uIHRoYXQgaXQgaXMgbm90CgkgIGVtaXR0ZWQgYnkgZGVmYXVsdCk7IGxvZyBtZXNzYWdlIHN0cnVjdHVyZXMgb2YgbWVzc2FnZXMgcG9zdGVkIG9uCgkgIHRoZSBidXMgYXMgd2VsbC4KCjIwMDYtMTAtMDMgMTU6MTA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBVc2UgYSBwaXBlIHBhaXIgdG8gcmVjZWl2ZSBzdGF0dXMgcmVzdWx0cyBmcm9tIHRoZSBmb3JrZWQgY2hpbGQsIGFuZCBpZ25vcmUgdGhlIHJlc3VsdCBmcm9tIHdhaXRwaWQuIEZpeGVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBVc2UgYSBwaXBlIHBhaXIgdG8gcmVjZWl2ZSBzdGF0dXMgcmVzdWx0cyBmcm9tIHRoZSBmb3JrZWQgY2hpbGQsIGFuZAoJICBpZ25vcmUgdGhlIHJlc3VsdCBmcm9tIHdhaXRwaWQuIEZpeGVzICMzNTU0OTkKCjIwMDYtMTAtMDIgMTY6NDY6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogRml4IGxlYWsgaW4gY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEZpeCBsZWFrIGluIGNoZWNrLgoKMjAwNi0xMC0wMiAxNjozNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQWRkICdTaW5jZTogMC4xMC4xMScgdG8gZ3N0X3BhZF9pc19ibG9ja2luZygpIGd0ay1kb2MgYmx1cmIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgQWRkICdTaW5jZTogMC4xMC4xMScgdG8gZ3N0X3BhZF9pc19ibG9ja2luZygpIGd0ay1kb2MgYmx1cmIuCgoyMDA2LTEwLTAyIDE2OjAxOjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IEZ1cnRoZXIgZXhwbGFpbiB0aGUgdXNlIG9mIGZsdXNoaW5nIG9uIGJsb2NrZWQgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIEZ1cnRoZXIgZXhwbGFpbiB0aGUgdXNlIG9mIGZsdXNoaW5nIG9uIGJsb2NrZWQgcGFkcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXNfYmxvY2tpbmcpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgbmV3IEdzdFBhZEZsYWcgOiBHU1RfUEFEX0JMT0NLSU5HLgoJICBBZGRzIHRoZSBub3Rpb24gb2YgcGFkcyByZWFsbHkgYmxvY2tpbmcsIHdoaWNoIGVuYWJsZXMgdG8gcHJvcGVybHkKCSAgaGFuZGxlIEZMVVNIX1NUQVJUL0ZMVVNIX1NUT1AgZXZlbnRzIG9uIGJsb2NrZWQgcGFkcy4KCSAgRml4ZXMgIzM1ODk5OQoJICBBUEk6IGdzdF9wYWRfaXNfYmxvY2tpbmcoKQoJICBBUEk6IEdTVF9QQURfSVNfQkxPQ0tJTkcoKSBtYWNybwoJICBBUEk6IEdTVF9QQURfQkxPQ0tJTkcgR3N0UGFkRmxhZwoKMjAwNi0xMC0wMiAxMDowNjoxNyArMDAwMCAgbXJjZ3JhbiA8bXJjLmdyYW5AZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEZpbHRlciB0aGUgcHJveGllZCBjYXBzIGFnYWluc3QgdGhlIHBhZHRlbXBsYXRlIGlmIHdlIGhhdmUgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IG1yY2dyYW4gPG1yYy5ncmFuIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpOgoJICBGaWx0ZXIgdGhlIHByb3hpZWQgY2FwcyBhZ2FpbnN0IHRoZSBwYWR0ZW1wbGF0ZSBpZiB3ZSBoYXZlIG9uZS4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCk6CgkgIEFkZCBpbmNsdWRlIGZvciBnc3RpbmZvLmggc28gdGhhdCBjb21waWxhdGlvbiB3aXRoCgkgIC1ER1NUX0RJU0FCTEVfR1NUX0RFQlVHIHdvcmtzIGFnYWluLiBGaXhlcyAjMzU4NDM2LgoKMjAwNi0xMC0wMiAwOTo0NDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgR2l2ZSBjcmVkaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdpdmUgY3JlZGl0CgoyMDA2LTEwLTAyIDA5OjQxOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTZXQgZmlsZSB0byBOVUxMIHdoZW4gY2xvc2luZyBmaWxlc2luayBzbyB0aGF0IHdlIGNhbiBzZXQgYSBuZXcgZmlsZW5hbWUgaW4gUkVBRFkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbiksIChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFNldCBmaWxlIHRvIE5VTEwgd2hlbiBjbG9zaW5nIGZpbGVzaW5rIHNvIHRoYXQgd2UgY2FuIHNldCBhIG5ldyBmaWxlbmFtZQoJICBpbiBSRUFEWS4gRml4ZXMgIzM1ODYxMy4KCjIwMDYtMTAtMDIgMDg6Mzc6MjQgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEZpeCBnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSgpIGFuZCBnc3RfZXZlbnRfY29weSgpIGZvciBldmVudHMgd2l0aCBldmVudCBzdHJ1Y3R1cmVzIGJ5IHNldHRpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgIDxhbGVzc2FuZHJvIGF0IG5udmEgb3JnPgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9jb3B5KToKCSAgRml4IGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKCkgYW5kIGdzdF9ldmVudF9jb3B5KCkgZm9yIGV2ZW50cwoJICB3aXRoIGV2ZW50IHN0cnVjdHVyZXMgYnkgc2V0dGluZyB0aGUgcGFyZW50IHJlZmNvdW50IGFkZHJlc3Mgb2YgdGhlCgkgIGNvcGllZCBzdHJ1Y3R1cmUgdG8gdGhlIGFkZHJlc3Mgb2YgdGhlIHJlZmNvdW50IG1lbWJlciBvZiB0aGUgbmV3bHkKCSAgY29waWVkIGV2ZW50IHJhdGhlciB0aGFuIHRoZSBhZGRyZXNzIG9mIHRoZSByZWZjb3VudCBtZW1iZXIgb2YgdGhlCgkgIG9yaWdpbmFsIGV2ZW50LiBGaXhlcyAjMzU4NzM3LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMDktMjkgMjA6Mjk6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IHNvbWUgbW9yZSBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3Qgc29tZSBtb3JlIGZpbGVzLgoKMjAwNi0wOS0yOSAxMjozMToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBBZGQgdGVzdCBmb3IgdGhlIHByZXZpb3VzIGZpeDsgYWRkIHNvbWUgbW9yZSB0ZXN0cyBmb3IgY29ycmVjdCByZWZjb3VudGluZyBiZWhhdmlvdXI7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHRlc3QgZm9yIHRoZSBwcmV2aW91cyBmaXg7IGFkZCBzb21lIG1vcmUgdGVzdHMKCSAgZm9yIGNvcnJlY3QgcmVmY291bnRpbmcgYmVoYXZpb3VyOyBmaXggYSBmZXcgbGVha3MKCSAgaW4gdGVzdCBjYXNlczsgY2FsbCBnc3RfY29udHJvbGxlcl9pbml0KCkgYXQgc3RhcnQKCSAgb2YgYWxsIHRlc3RzLgoKMjAwNi0wOS0yOSAxMjoyNDo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBEb24ndCBnX3JldHVybl92YWxfaWZfZmFpbCgpIG9uIHRpbWVkIHZhbHVlcyB3aXRoIGludmFsaWQgdGltZXN0YW1wcyBpbnNpZGUgYSBjci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCk6CgkgIERvbid0IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgb24gdGltZWQgdmFsdWVzIHdpdGggaW52YWxpZCB0aW1lc3RhbXBzCgkgIGluc2lkZSBhIGNyaXRpY2FsIHNlY3Rpb24gd2l0aG91dCB1bmxvY2tpbmcgdGhlIG11dGV4LiBTcG90dGVkIGJ5CgkgIFJlbsOpIFN0YWRsZXIuICgjMzU3NjE3KQoJICBBbHNvLCBmaXggdXAgcmVmY291bnRpbmcgcHJvcGVybHk6IHdoZW4gcmV0dXJuaW5nIGFuIGV4aXN0aW5nCgkgIGNvbnRyb2xsZXIsIHdlIHNob3VsZCBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIG9ubHkgb25jZSBhbmQgbm90CgkgIG9uY2UgcGVyIHByb3BlcnR5IGFuZCB3aGVuIHRyeWluZyB0byBjb250cm9sIGEgcHJvcGVydHkgYWdhaW4KCSAgd2Ugc2hvdWxkIGFsc28gaW5jcmVhc2UgdGhlIHJlZmNvdW50LgoKMjAwNi0wOS0yOSAwODoyMjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IFN0b3AgcmVhZGluZyBjb21tYW5kcyB3aGVuIEVPRiBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCk6CgkgIFN0b3AgcmVhZGluZyBjb21tYW5kcyB3aGVuIEVPRiBhcyB3ZWxsLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICBVbmlmeSBkZXNjcmlwdGlvbiBvZiB0aGUgZHVtcCBwcm9wZXJ0eS4KCjIwMDYtMDktMjggMTc6MjA6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyBudW1iZXIgaW4gcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyBudW1iZXIgaW4gcHJldmlvdXMgY29tbWl0CgoyMDA2LTA5LTI4IDE1OjUyOjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOiBPSywgc28gaXQncyBhY3R1YWxseSBjdnNpZ25vcmUgdGhhdCBuZWVkcyBjaGFuZ2luZy4gU3RvcCBsYXVnaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgIE9LLCBzbyBpdCdzIGFjdHVhbGx5IGN2c2lnbm9yZSB0aGF0IG5lZWRzIGNoYW5naW5nLiBTdG9wIGxhdWdoaW5nLgoKMjAwNi0wOS0yOCAxNToyNzoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06IEdhaCwgZGVjbGFyZSB2YXJzICpiZWZvcmUqIHVzaW5nIHRoZW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBHYWgsIGRlY2xhcmUgdmFycyAqYmVmb3JlKiB1c2luZyB0aGVtCgoyMDA2LTA5LTI4IDE0OjAwOjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJlLWNvbW1pdCB0aGUgcmVnaXN0cnkgY2hhbmdlcywgYWxvbmcgd2l0aCBhbiBleHRyYSBmaXg6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmUtY29tbWl0IHRoZSByZWdpc3RyeSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGFuIGV4dHJhIGZpeDoKCSAgV2hlbiBhIGNhY2hlZCBwbHVnaW4gaXMgZW5jb3VudGVyZWQgYXQgYSBkaWZmZXJlbnQgZmlsZSBwYXRoLAoJICB1cGRhdGUgdGhlIHN0b3JlZCBwYXRoIGluIHRoZSByZWdpc3RyeSBjYWNoZSBzbyB0aGF0IHRoZSBwYXJlbnQKCSAgcHJvY2VzcyBrbm93cyB3aGVyZSBpdCBhY3R1YWxseSBpcyBub3cgd2hlbiBpdCByZS1yZWFkcyB0aGUgcmVnaXN0cnkKCSAgY2FjaGUuIEZpeGVzIHRoZSB0aGluZyB0aGF0IGJyb2tlIGRpc3RjaGVjayB3aXRoIHRoZSBwcmV2aW91cyBjb21taXQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIENsZWFuIHVwIGZpbGVzIG5hbWVkICdjb3JlJyB0b28gd2hlbiBydW5uaW5nIG1ha2UgY2xlYW4uCgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBTZXQgdXAgYSByZWdpc3RyeSBwYXRoIGZvciBydW5uaW5nIHRoZXNlIHRlc3RzLCBhbmQgY2xlYW4gaXQgcHJvcGVybHkKCSAgZm9yIGRpc3RjaGVjay4KCjIwMDYtMDktMjggMTE6MTE6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBwdWxsIGluIGdtb2R1bGUtMi4wLnBjIGFzIGEgZGVwZW5kZW5jeSBpbiBvdXIgLnBjIGZpbGVzIC0gd2Ugd2FudCBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMgaW5zdGVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgcHVsbCBpbiBnbW9kdWxlLTIuMC5wYyBhcyBhIGRlcGVuZGVuY3kgaW4gb3VyIC5wYyBmaWxlcyAtIHdlCgkgIHdhbnQgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjIGluc3RlYWQgc28gdGhhdCB3ZSBkb24ndCBkcmFnIGluCgkgIC0tZXhwb3J0LWR5bmFtaWMgb24gZXZlcnkgcHJvamVjdCB0aGF0IGxpbmtzIHRvIEdTdHJlYW1lci4KCSAgQWxzbywgbWFrZSBvdXIgZXhwb3J0IHJlZ2V4IG9ubHkgbWF0Y2ggdGhlIHN0YXJ0IG9mIHN5bWJvbHMsIHJhdGhlcgoJICB0aGFuIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyAnX2dzdCcgc29tZXdoZXJlLgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBUaGUgbGliZ3N0Y2hlY2sgd2UgYnVpbGQgZG9lcyBob3dldmVyIG5lZWQgZXhwb3J0LWR5bmFtaWMsIGFzIGl0CgkgIHByb2R1Y2VzIHNvbWUgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIG91ciBfZ3N0Li4uIHN0eWxlIHJlZ2V4LgoKMjAwNi0wOS0yNyAxNzo0Mjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHVudGlsIEkgZmlndXJlIG91dCB3aHkgaXQgYnJlYWtzIGRpc3RjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB1bnRpbCBJIGZpZ3VyZSBvdXQgd2h5IGl0IGJyZWFrcyBkaXN0Y2hlY2suCgoyMDA2LTA5LTI3IDE2OjUyOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogTWFrZSBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IHRha2UgdGhlIGZ1bGwgY29tcGxlbWVudCBvZiBHT3B0aW9uRnVuYyBhcmdzIHNvIHRoZXkgY2FuIHJldHVybiB1c2VmdWwgR0Vycm9ycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgTWFrZSBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IHRha2UgdGhlIGZ1bGwgY29tcGxlbWVudCBvZiBHT3B0aW9uRnVuYwoJICBhcmdzIHNvIHRoZXkgY2FuIHJldHVybiB1c2VmdWwgR0Vycm9ycy4gTWFrZSB0aGUgcmVnaXN0cnkgdXBkYXRpbmcKCSAgZnVuY3Rpb25zIGRvIHNvLgoJICBDYWxsIF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyBhZnRlciBzY2FubmluZyBmaWxlcyB0bwoJICBlbnN1cmUgdGhhdCB0aGUgcmVnaXN0cnkgd2UncmUgYWJvdXQgdG8gd3JpdGUgb3V0IGRvZXNuJ3QgY29udGFpbgoJICBzdGFsZSBpbmZvcm1hdGlvbiBhYm91dCBvbGQtZGVsZXRlZCBwbHVnaW4gZmlsZXMuCgkgIE1ha2UgX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIHJldHVybiBhIGJvb2xlYW4gc28KCSAgdGhhdCBkZWxldGlvbiBvZiBwbHVnaW4gZmlsZXMgaXMgY29uc2lkZXJlZCBhIHJlZ2lzdHJ5IGNoYW5nZS4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlbmFtZSBfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIGFuZCBfZ3N0X3JlZ2lzdHJ5X2NsZWFudXAKCSAgYnkgYWRkaW5nIF9wcml2IHByZWZpeCwgc28gdGhhdCB0aGV5IHdvbid0IGFwcGVhciBpbiB0aGUgZ2xvYmFsCgkgIHN5bWJvbCB0YWJsZS4gVGhleSBzdGlsbCBkbyBhdG0gdGhvdWdoIGJlY2F1c2Ugb2YgIzMxODAzMS4gTW92ZSB0aGUKCSAgcHJvdG90eXBlcyB0byBnc3RfcHJpdmF0ZS5oCgkgIFdoZW4gcmVtb3ZpbmcgYSBwbHVnaW4sIHJlbW92ZSBhbGwgZmVhdHVyZXMgZm9yIHRoYXQgcGx1Z2luIHRvby4KCSAgRml4ZXMgIzM0MDg3OC4KCjIwMDYtMDktMjcgMTM6MTk6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczogTWFrZSBpdCBjbGVhciB0aGF0IHRoZSAiY29tcGlsZWQtaW4gZGVzY3JpcHRpb25zIiByZWFsbHkgbWVhbiB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgTWFrZSBpdCBjbGVhciB0aGF0IHRoZSAiY29tcGlsZWQtaW4gZGVzY3JpcHRpb25zIiByZWFsbHkgbWVhbgoJICB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKToKCSAgVXBkYXRlIGRvY3MuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZGVkIGZ1bmN0aW9uIHRvIGJsb2NrIHdoaWxlIHdhaXRpbmcgZm9yIFBMQVlJTkcsIHRoaXMgZnVuY3Rpb24KCSAgaXMgdXNlZCBieSBsaXZlIHNvdXJjZXMgdGhhdCBibG9jayBvbiB0aGUgY2xvY2suCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZygpCgoyMDA2LTA5LTI3IDEwOjEzOjEzICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIE1ha2VmaWxlLmFtOiBnc3QtZWxlbWVudC1jaGVjay5tNCBpcyBnZW5lcmF0ZWQgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUgY29waWVkIGZyb20gdGhlIGJ1aWxkIGRpciByYXRoZXIgdGhhbiB0aGUgc291ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIE1ha2VmaWxlLmFtOgoJICBnc3QtZWxlbWVudC1jaGVjay5tNCBpcyBnZW5lcmF0ZWQgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUKCSAgY29waWVkIGZyb20gdGhlIGJ1aWxkIGRpciByYXRoZXIgdGhhbiB0aGUgc291cmNlIGRpciAoIzM1NzU5MykuCgkgICdtYWtlIGRpc3RjaGVjaycgaGFzbid0IG5vdGljZWQgdGhpcyBiZWNhdXNlIHdlIHdlcmUgZGlzdGluZwoJICB0aGUgZmlsZSBhcyB3ZWxsLCBzbyBzdG9wIGRvaW5nIHRoYXQuCgoyMDA2LTA5LTI3IDA5OjIzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9jYXBzX2ludGVyc2VjdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2NhcHNfaW50ZXJzZWN0KCkuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IGFsbCBidWZmZXJpbmcgcGVyY2VudGFnZXMgd2UgZ2V0LCBldmVuIHRoZSAxMDAlIG9uZS4KCjIwMDYtMDktMjYgMTI6Mzk6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggcHJpbnRpbmcgb2YgZmxhZ3MgdG8gbWF0Y2ggdGhlIGxvb2sgb2YgZW51bXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIEZpeCBwcmludGluZyBvZiBmbGFncyB0byBtYXRjaCB0aGUgbG9vayBvZiBlbnVtcy4KCjIwMDYtMDktMjUgMTM6MDg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogRml4IHR5cG8gaW4gZG9jcyBibHVyYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIEZpeCB0eXBvIGluIGRvY3MgYmx1cmIuCgoyMDA2LTA5LTI1IDExOjE2OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBhc3NlcnQvY3Jhc2ggaGVyZSBpZiBhIHVyaSBoYW5kbGVyIGRvZXNuJ3QgcmV0dXJuIGFueSBzdXBwb3J0ZWQgcHJvdG9jb2xzLiBUaGUgbGlzdCBvZiBwcm90b2NvbHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKHNlYXJjaF9ieV9lbnRyeSk6CgkgIERvbid0IGFzc2VydC9jcmFzaCBoZXJlIGlmIGEgdXJpIGhhbmRsZXIgZG9lc24ndCByZXR1cm4gYW55CgkgIHN1cHBvcnRlZCBwcm90b2NvbHMuIFRoZSBsaXN0IG9mIHByb3RvY29scyBjb3VsZCBiZSBnZW5lcmF0ZWQKCSAgZHluYW1pY2FsbHkgYXQgcnVudGltZSBvciBhdCBwbHVnaW4gcmVnaXN0cmF0aW9uLCBhbmQgYW4gZXJyb3IKCSAgaW4gdGhlIHVuZGVybHlpbmcgbGlicmFyeSBzaG91bGRuJ3QgYmUgZmF0YWwgKCMzNTMzMDEpLgoKMjAwNi0wOS0yNSAxMDozNjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCB3YXJuaW5nIGlmIEhBVkVfUFJJTlRGX0VYVEVOU0lPTiBpcyB1bmRlZmluZWQgKHNwb3R0ZWQgYnkgUGV0ZXIgS2plbGxlcnN0ZWR0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHdhcm5pbmcgaWYgSEFWRV9QUklOVEZfRVhURU5TSU9OIGlzIHVuZGVmaW5lZAoJICAoc3BvdHRlZCBieSBQZXRlciBLamVsbGVyc3RlZHQpLgoKMjAwNi0wOS0yMyAwOTozMDo0MCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYXRjaCBfc3RhcnQvX3N0b3AgY2FsbHMgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucy4gUmVtb3ZlIHJlZHVuZGFudCBfc3RvcCBjYWxsIGZyb20gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWF0Y2ggX3N0YXJ0L19zdG9wIGNhbGxzIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMuIFJlbW92ZSByZWR1bmRhbnQKCSAgX3N0b3AgY2FsbCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uIEZpeGVzICMzNTY5MTAuCgkgIFR1cm4gZmFpbHVyZSBERUJVRyBpbnRvIEVSUk9SLgoKMjAwNi0wOS0yMiAxNToyOToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVwZGF0ZSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyk6CgkgIFVwZGF0ZSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBGaXggdHlwby4KCjIwMDYtMDktMjIgMTQ6MzA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgYXVkaW90ZXN0c3JjIGlzIG5vdCBwYXJ0IG9mIGNvcmUsIGZha2VzcmMgaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1ZGlvdGVzdHNyYyBpcyBub3QgcGFydCBvZiBjb3JlLCBmYWtlc3JjIGlzCgoyMDA2LTA5LTIyIDEzOjMyOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogUmVmIGluc3RhbmNlcyB3aGVuIHJldHVybmluZyB0aGVtIGFnYWluIChmaXhlcyAjMzU3MTgwKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBSZWYgaW5zdGFuY2VzIHdoZW4gcmV0dXJuaW5nIHRoZW0gYWdhaW4gKGZpeGVzICMzNTcxODApCgoyMDA2LTA5LTIyIDEwOjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IERvbid0IGZvcmdldCB0byByZWxlYXNlIHByb3h5IGxvY2sgd2hlbiB0aGVyZSdzIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIERvbid0IGZvcmdldCB0byByZWxlYXNlIHByb3h5IGxvY2sgd2hlbiB0aGVyZSdzIGFuIGVycm9yLgoKMjAwNi0wOS0yMCAxNjoxNzoyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5oOiBBZGQgZXh0cmEgaW5pdGlhbGlzZXJzIGZvciBDYXBzIHRoaW5ncywgdG8gZml4IHNvbWUgcGx1Z2luIHdhcm5pbmdzIHdoZW4gdXNpbmcgLVdleHRyYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBBZGQgZXh0cmEgaW5pdGlhbGlzZXJzIGZvciBDYXBzIHRoaW5ncywgdG8gZml4IHNvbWUgcGx1Z2luIHdhcm5pbmdzCgkgIHdoZW4gdXNpbmcgLVdleHRyYQoKMjAwNi0wOS0xOCAxMzo1NjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBbHNvIHNldCB0ZW1wbGF0ZSBvbiB0aGUgaW50ZXJuYWwgcGFkIHNvIHRoYXQgYSBnZXRjYXBzIGZyb20gdGhlIHRhcmdldCBwYWQgcmV0dXJucyB0aGUgdGVtcGxhdGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBBbHNvIHNldCB0ZW1wbGF0ZSBvbiB0aGUgaW50ZXJuYWwgcGFkIHNvIHRoYXQgYSBnZXRjYXBzIGZyb20gdGhlIHRhcmdldAoJICBwYWQgcmV0dXJucyB0aGUgdGVtcGxhdGUgY2Fwcy4KCjIwMDYtMDktMTggMTM6NDQ6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2UgX0RFQlVHX09CSkVDVCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFVzZSBfREVCVUdfT0JKRUNUIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgQXZvaWQgdHlwZWNoZWNrcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgSWYgdGhlIHRvcGxldmVsIGVsZW1lbnQgaXMgbm90IGEgR3N0UGlwZWxpbmUsIGl0IG11c3QgYmUgcHV0IGluIGEKCSAgcGlwZWxpbmUgc28gdGhhdCBhIGJ1cyBhbmQgY2xvY2sgaXMgc2VsZWN0ZWQuCgoyMDA2LTA5LTE3IDE5OjMxOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEpJVFRFUiwgUkFURSwgYW5kIExBVEVOQ1kgcXVlcnkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGRlZmF1bHQgY2FzZSBhbmQgbm90IGJ5IHRoZSBDT05WLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBKSVRURVIsIFJBVEUsIGFuZCBMQVRFTkNZIHF1ZXJ5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZQoJICBkZWZhdWx0IGNhc2UgYW5kIG5vdCBieSB0aGUgQ09OVkVSVCBxdWVyeSBjb2RlLgoKMjAwNi0wOS0xNyAxOToyNjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogRml4IGxvY2tpbmcgb3JkZXIgKG11c3QgdGFrZSBsb2NrIGJlZm9yZSB1c2luZyBuX3ZhbHVlcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfcmVnaXN0ZXIpOgoJICBGaXggbG9ja2luZyBvcmRlciAobXVzdCB0YWtlIGxvY2sgYmVmb3JlIHVzaW5nIG5fdmFsdWVzKS4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZW51bSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bV9pdGVyX2NtcCksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bSk6CgkgIEZpeCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBvZiBjdXN0b20gcmVnaXN0ZXJlZCBHc3RGb3JtYXRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBjdXN0b20gZm9ybWF0IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uLgoKMjAwNi0wOS0xNiAyMTozODowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBHX09CSkVDVCBtYWNybyBmaXhpbmcuIEFsc28gRml4IHNvbWUgZGV0YWlscyBvbiB0aGUgcGx1Z2luLXN0YW1wIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIE1vcmUgR19PQkpFQ1QgbWFjcm8gZml4aW5nLiBBbHNvIEZpeCBzb21lIGRldGFpbHMgb24gdGhlIHBsdWdpbi1zdGFtcAoJICBzZWN0aW9uLgoKMjAwNi0wOS0xNiAxMjo0OTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayBpZiByZXF1ZXN0ZWQgY2FwcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHNpbmtzIGNhcHMgSUYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgQ2hlY2sgaWYgcmVxdWVzdGVkIGNhcHMgYXJlIHRoZSBzYW1lIGFzIHRoZSBzaW5rcyBjYXBzIElGCgkgIC0+aGF2ZV9zYW1lX2NhcHMgaXMgVFJVRS4gSWYgdGhleSBhcmUgbm90LCBhY3QgYXMgaWYgaGF2ZV9zYW1lX2NhcHMKCSAgaXMgRkFMU0UuCgkgIFRoaXMgZml4ZXMgdGhlIHJlbmVnb3RpYXRpb24gaXNzdWVzIHN0YXRlZCBpbiAjMzUyODI3LgoKMjAwNi0wOS0xNiAxMDo0OTo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBFeHRyYWN0IHRoZSBtYW51YWwgZXhhbXBsZXMgYWdhaW4gbGlrZSB3ZSB1c2VkIHRvIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIEV4dHJhY3QgdGhlIG1hbnVhbCBleGFtcGxlcyBhZ2FpbiBsaWtlIHdlIHVzZWQgdG8gZG8uCgkgIEZpeCBvbmUgb2YgdGhlbS4KCjIwMDYtMDktMTYgMTA6NDc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oOiB1cGRhdGUgZm9yIHZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZm9yIHZlcnNpb24KCjIwMDYtMDktMTUgMjE6MzA6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBEb2N1bWVudHMgaG93IHRvIHJlY2VpdmUgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgRG9jdW1lbnRzIGhvdyB0byByZWNlaXZlIGVycm9ycy4KCjIwMDYtMDktMTUgMTA6NDM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEFkZGVkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHNpZ2ludF9oYW5kbGVyX3NpZ2hhbmRsZXIpLCAoY2hlY2tfaW50ciksCgkgIChldmVudF9sb29wKSwgKG1haW4pOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICBQb3N0IGFuIGFwcGxpY2F0aW9uIG1lc3NhZ2Ugd2hlbiBhbiBpbnRlcnJ1cHQgaXMgY2F1Z2h0IGluc3RlYWQgb2YgZG9pbmcKCSAgYW4gdW5jb250cm9sbGVkIHN0YXRlIGNoYW5nZS4KCSAgQ2xlYW4gdXAgdGhlIGV2ZW50IGxvb3AuCgkgIEhhbmRsZSBidWZmZXJpbmcgbWVzc2FnZXMsIHBhdXNlL3Jlc3VtZSB0aGUgcGlwZWxpbmUuCgkgIE1ha2Ugc2h1dGRvd24gYmVjYXVzZSBvZiBhbiBpbnRlcnJ1cHQgbW9yZSByZWxpYWJsZS4KCjIwMDYtMDktMTUgMDk6NDk6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3VyZSB0aGF0IG91ciBpbnRlcm5hbCBzdGF0ZSBpcyBjb3JyZWN0IHdoZW4gd2UgY29tbWl0IG91ciBzdGF0ZSBhc3luY2hyb25vdXNseS4gVGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpOgoJICBNYWtlIHN1cmUgdGhhdCBvdXIgaW50ZXJuYWwgc3RhdGUgaXMgY29ycmVjdCB3aGVuIHdlIGNvbW1pdCBvdXIgc3RhdGUKCSAgYXN5bmNocm9ub3VzbHkuIFRoaXMgc29sdmVzIGEgcmFjZSB3aGVyZSBhIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HCgkgIGNvdWxkIGNhdXNlIHRoZSBzaW5rIHRvIHJlbWFpbiBibG9ja2VkIGluIHByZXJvbGwgaW4gc29tZSBzaXR1YXRpb25zLgoKMjAwNi0wOS0xNSAwODo1MDoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IExpc3QgZmxhZ3MgYXMgaGV4IHNvIGl0J3MgZWFzaWVyIHRvIGRlYWwgd2l0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgTGlzdCBmbGFncyBhcyBoZXggc28gaXQncyBlYXNpZXIgdG8gZGVhbCB3aXRoLgoKMjAwNi0wOS0xNSAwODo0NzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEV4cG9zZSBsb2dpYyB0byB3YWl0IGZvciBwcmVyb2xsIHNvIHRoYXQgc3ViY2xhc3NlcyBzdWNoIGFzIGF1ZGlvc2luayBjYW4gYWxzbyB1c2UgdGhpcyBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEV4cG9zZSBsb2dpYyB0byB3YWl0IGZvciBwcmVyb2xsIHNvIHRoYXQgc3ViY2xhc3NlcyBzdWNoIGFzIGF1ZGlvc2luawoJICBjYW4gYWxzbyB1c2UgdGhpcyBtZXRob2QuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwoKQoKMjAwNi0wOS0xNSAwODo0Mzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNsZWFudXBzIGluIGRvY3MgYW5kIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChkb19waXBlbGluZV9zZWVrKToKCSAgU21hbGwgY2xlYW51cHMgaW4gZG9jcyBhbmQgY29kZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgaWYgc3RvcCA9PSBzdGFydCBhbmQgc3RhcnQgaXMgaW4gdGhlIHNlZ21lbnQsIG5vIGNsaXBwaW5nIHNob3VsZCBiZQoJICBkb25lLiBBbHNvIGFkZCBhIHRlc3QgZm9yIHRoaXMuCgoyMDA2LTA5LTE1IDA4OjM5OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgbWV0aG9kcyB0byBjcmVhdGUgYW5kIHBhcnNlIEJVRkZFUklORyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBtZXRob2RzIHRvIGNyZWF0ZSBhbmQgcGFyc2UgQlVGRkVSSU5HIG1lc3NhZ2VzLgoJICBBZGRlZCBwcmVsaW1pbmFyeSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nCgoyMDA2LTA5LTE1IDA4OjMyOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9yZWxlYXNlX3JlcXVlc3RfcGFkKSwgKGdzdF9lbGVtZW50X3NldF9jbG9jayksCgkgIChnc3RfZWxlbWVudF9nZXRfaW5kZXgpLCAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksCgkgIChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKSwgKGdzdF9lbGVtZW50X2dldF9yYW5kb21fcGFkKSwKCSAgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfZ2V0X3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5KSwgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2VsZW1lbnRfcmVzdG9yZV90aHlzZWxmKToKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBSZW5hbWUgbGFzdCBiaXQgb2YgdGhlIG5ldy1wYWQgLT4gcGFkLWFkZGVkIHNpZ25hbCByZW5hbWUuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSBhbiBlbGVtZW50IHF1ZXJ5IHdvdWxkIG9ubHkgd29yayBpZiB0aGUgc291cmNlCgkgIHBhZCB3YXMgbGlua2VkLgoJICBBdm9pZCBzb21lIHVzZWxlc3MgdHlwZSBjaGVja2luZyBpbiBtZXNzYWdlIGhhbmRsaW5nLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTA5LTE0IDIwOjEyOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBhZGQgYW4gSU5GTyBsaW5lIGZvciB3aGVuIHdlIGFjdHVhbGx5IHVwZGF0ZSB0aGUgZmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbiBJTkZPIGxpbmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkgdXBkYXRlIHRoZSBmZAoKMjAwNi0wOS0xNCAyMDoxMToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byB0cnVuawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byB0cnVuawoKPT09IHJlbGVhc2UgMC4xMC4xMCA9PT0KCjIwMDYtMDktMTQgMjA6MDg6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4xMAoKMjAwNi0wOS0wOSAxNjowODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZmlyc3QgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNi0wOS0wOSAxNjowNzozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHRyYW5zbGF0aW9uIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0aW9uIHVwZGF0ZXMKCjIwMDYtMDktMDUgMTQ6MTE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6IEZpeCB0eXBvIGluIHNhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIEZpeCB0eXBvIGluIHNhbXBsZSBjb2RlLgoKMjAwNi0wOS0wNSAwODozNToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IE1ha2Ugc3R1ZmYgY29tcGlsZSBvbiB3aW5kb3dzLiBGaXhlcyAjMzQ1Mjk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGluZXRfYXRvbiksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoaW5ldF9hdG9uKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgTWFrZSBzdHVmZiBjb21waWxlIG9uIHdpbmRvd3MuIEZpeGVzICMzNDUyOTUuCgoyMDA2LTA5LTAzIDExOjE2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBQcmludCBiZXR0ZXIgZGV0YWlscyB3aGVuIGNoaWxkIHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIFByaW50IGJldHRlciBkZXRhaWxzIHdoZW4gY2hpbGQgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsLgoKMjAwNi0wOS0wMyAxMTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBQcmludCBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gZ19hc3NlcnQoKSBpZiBhIHBsdWdpbiBmZWF0dXJlIGlzIGEgVVJJIGhhbmRsZXIgYnV0IHJldHVybnMgbm8gcHJvdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgUHJpbnQgYSB3YXJuaW5nIHJhdGhlciB0aGFuIGdfYXNzZXJ0KCkgaWYgYSBwbHVnaW4gZmVhdHVyZQoJICBpcyBhIFVSSSBoYW5kbGVyIGJ1dCByZXR1cm5zIG5vIHByb3RvY29scyAoIzM1Mzk3NikuCgoyMDA2LTA5LTAyIDE5OjEwOjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA2LTA5LTAyIDE5OjAzOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCjIwMDYtMDktMDIgMTM6NDA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGNsYXJpZnkgZXJyb3IgbWVzc2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xhcmlmeSBlcnJvciBtZXNzYWdlCgoyMDA2LTA5LTAyIDEzOjM2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCjIwMDYtMDktMDEgMTY6MDM6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGZpeCB0eXBvCgoyMDA2LTA5LTAxIDE1OjU1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IGxvY2tpbmcgb3JkZXIsIGhhbmRsZSBOVUxMIGZ1bmN0aW9uIHZhbHVlcyBwcm9wZXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICBGaXggbG9ja2luZyBvcmRlciwgaGFuZGxlIE5VTEwgZnVuY3Rpb24gdmFsdWVzIHByb3Blcmx5LgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCk6CgkgIEluaXRpYWxpc2VkIHZhcmlhYmxlIGJlZm9yZSB1c2luZyBpdCBhbmQgZml4IGRlYnVnIHN0YXRlbWVudCB0bwoJICBwcmludCB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGFkZHJlc3Mgb2YgdGhlCgkgIHZhcmlhYmxlIG9uIHRoZSBzdGFjayBob2xkaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbi4KCjIwMDYtMDktMDEgMTA6MzM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTW9yZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9pbml0KSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX25ldyksIChnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBNb3JlIGNsZWFudXBzLgoJICBBdm9pZCBuZWVkbGVzcyB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICBTaW5jZSB0aGUgaW50ZXJuYWwgcGFkIGlzIGFsd2F5cyBwcmVzZW50IGFuZCBuZXZlciBjaGFuZ2VzLCB0aGVyZSBpcwoJICBubyBuZWVkIHRvIGxvY2tpbmcgb3IgcmVmIHdoZW4gcmV0cmlldmluZyBpdC4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQuCgkgIEhhbmRsZSBsaW5rIGVycm9ycyB3aGVuIHNldHRpbmcgdGhlIHRhcmdldC4gRml4ZXMgIzM0MTAyOS4KCjIwMDYtMDktMDEgMTA6MjY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzLzogRml4IGRvY3Mgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2NzIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIEZyZWUgcXVldWVkIGJ1ZmZlciB3aGVuIHJlbW92aW5nIGEgcGFkLgoKMjAwNi0wOC0zMSAxNzoxMzozNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEVuc3VyZSB0aGF0IHdlIHNldCBhIGNhcHNmaWx0ZXIgdG8gTlVMTCBpZiB3ZSBmYWlsZWQgdG8gbGluayBpdCB3aGVuIGRvaW5nIGZpbHRlcmVkIGxpbmtpbmcsIHRvIGF2b2lkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgIEVuc3VyZSB0aGF0IHdlIHNldCBhIGNhcHNmaWx0ZXIgdG8gTlVMTCBpZiB3ZSBmYWlsZWQgdG8gbGluayBpdAoJICB3aGVuIGRvaW5nIGZpbHRlcmVkIGxpbmtpbmcsIHRvIGF2b2lkIGNyaXRpY2Fscy4KCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgdW5yZWZmaW5nIHNyY3BhZCwgd2hpY2ggaXMgZXhwbGljbHkgTlVMTGVkCgkgIGFib3ZlIChhIHRyaXZpYWwgY29kZSBjbGVhbnVwKS4KCjIwMDYtMDgtMzEgMTU6MTk6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogVXBkYXRlIGFzY2lpIGFydCBpbiBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgVXBkYXRlIGFzY2lpIGFydCBpbiBkb2N1bWVudGF0aW9uLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgU21hbGwgY2xlYW51cHMgYW5kIGxlYWsgZml4ZXMuCgkgIFJlbW92ZSBzb21lIGNoZWNrcyBub3cgdGhhdCB0aGUgaW50ZXJuYWwgcGFkIGlzIG5ldmVyIE5VTEwuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSBsaW5raW5nIHBhZHMgd2l0aG91dCBhIHRhcmdldCB3b3VsZCBjcmVhdGUgbmFzdHkKCSAgY3JpdGljYWxzLiBGaXhlcyAjMzQxMDI5LgoJICBEb24ndCBhc3NpZ24gYSBHc3RQYWRMaW5rUmV0dXJuIHRvIGEgZ2Jvb2xlYW4gYW5kIG1lc3MgdXAgdGhlIHJldHVybgoJICB2YWx1ZSBvZiBfc2V0X3RhcmdldCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIFNvbWUgbW9yZSB0ZXN0cyBmb3IgY3JlYXRpbmcgYW5kIGxpbmtpbmcgdW50YXJnZXRlZCBnaG9zdHBhZHMuCgoyMDA2LTA4LTMxIDEwOjU5OjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgUmVmYWN0b3JlZCAqX25ldygpIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX25ldyksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgUmVmYWN0b3JlZCAqX25ldygpIGZ1bmN0aW9ucy4KCSAgVGVtcGxhdGVzIGFyZSBub3cgdXNlZCBhcyBhIGdfb2JqZWN0X25ldygpIHBhcmFtZXRlci4KCSAgVXNlIHRlbXBsYXRlIGluIF9kb19nZXRjYXBzKCkgaWYgd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldC4KCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGVhbnVwcy4KCSAgQWRkZWQgdHdvIG5ldyBjb25zdHJ1Y3RvcnM6CgkgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUoKQoJICBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSgpCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgdGVzdHMgZm9yIG5ldyBnaG9zdHBhZCBpbnN0YW5jaWF0aW9uIGZ1bmN0aW9ucy4KCSAgQVBJIGFkZGl0aW9uczogZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSwKCSAgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUKCjIwMDYtMDgtMzAgMTI6Mjg6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDogSWRlYXMgYWJvdXQgcW9zIHByb2ZpbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBJZGVhcyBhYm91dCBxb3MgcHJvZmlsaW5nLgoKMjAwNi0wOC0yOSAxNDozOTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENvZGUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKToKCSAgQ29kZSBjbGVhbnVwcy4KCSAgRml4IG1lbWxlYWsuCgoyMDA2LTA4LTI5IDEwOjQ5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHhtbC5jOiBJbXByb3ZlIGFuZCBkZXR5cG9meSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIEltcHJvdmUgYW5kIGRldHlwb2Z5IGRvY3MuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3htbF9zdWl0ZSk6CgkgIEFkZCBhIGJhc2ljIHRlc3Qgc3VpdGUgZm9yIEdzdFhNTC4KCjIwMDYtMDgtMjkgMDk6NTY6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGVhciB0aGUgcGFkIGNhcHMgd2hlbiB0aGUgZWxlbWVudCBzaHV0IGRvd24gYWxsIG9mIHRoZSBwYWRzIGFuZCBpcyBub3Qgc3RyZWFtaW5nIGRhdGEgdGhhdCBjb3VsZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpLCAoY2xlYXJfY2FwcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBDbGVhciB0aGUgcGFkIGNhcHMgd2hlbiB0aGUgZWxlbWVudCBzaHV0IGRvd24gYWxsIG9mIHRoZSBwYWRzIGFuZAoJICBpcyBub3Qgc3RyZWFtaW5nIGRhdGEgdGhhdCBjb3VsZCBtb2RpZnkgdGhlIGNhcHMuCgkgIEZpeGVzICMzNTI5NTguCgoyMDA2LTA4LTI5IDA4OjAyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgSSBkb24ndCBldmVuIGtub3cgd2hpY2ggYXJjaCB0aGF0IGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJIGRvbid0IGV2ZW4ga25vdyB3aGljaCBhcmNoIHRoYXQgaXMKCjIwMDYtMDgtMjggMjM6MTY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBtb3JlIGxvZ2ljYWwgdG8gbG9nIHRoZSBzZW5kaW5nIHBhZCwgYW5kIHRoZSBwYWQgaXQgaXMgc2VuZGluZyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBsb2dpY2FsIHRvIGxvZyB0aGUgc2VuZGluZyBwYWQsIGFuZCB0aGUgcGFkIGl0IGlzIHNlbmRpbmcgdG8KCjIwMDYtMDgtMjggMTg6MjA6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZTsgSSBtaXN1bmRlcnN0b29kIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlOyBJIG1pc3VuZGVyc3Rvb2Qgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDgtMjggMTg6MDg6MDkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogVW5zZXQgRElTQ09OVCBvbiBidWZmZXJzIHdoZW4gdXNpbmcgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFVuc2V0IERJU0NPTlQgb24gYnVmZmVycyB3aGVuIHVzaW5nIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTA4LTI4IDE2OjM5OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuKjogRml4IGRvY3MgYW5kIGluZGVudGF0aW9uIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBGaXggZG9jcyBhbmQgaW5kZW50YXRpb24gYWdhaW4uCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrIGluIHRlc3RzIGFuZCBhZGQgc29tZSBtb3JlIHRlc3RzLgoKMjAwNi0wOC0yOCAxNTo1NzozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW5mb3JtIEdzdFNlZ21lbnQgb2YgdGhlIGxhc3Qgc3RvcCBwb3NpdGlvbiBpbiBvcmRlciBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudCB0byBoYXZlIGEgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSW5mb3JtIEdzdFNlZ21lbnQgb2YgdGhlIGxhc3Qgc3RvcCBwb3NpdGlvbiBpbiBvcmRlciBmb3IgdGhlIGN1cnJlbnQKCSAgc2VnbWVudCB0byBoYXZlIGEgcHJvcGVyIGR1cmF0aW9uIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIHN0b3AKCSAgcG9zaXRpb24gZnJvbSB3aGljaCBhIGR1cmF0aW9uIGNvdWxkIGJlIGNhbGN1bGF0ZWQuCgkgIFRoaXMgYnVnIHdhcyBub3RpY2VhYmxlIHdoZW4gYSBub24tZmx1c2hpbmcsIG5vbi11cGRhdGUgbmV3IHNlZ21lbnQgd2FzCgkgIGZvbGxvd2VkIGJ5IGFub3RoZXIgc2VnbWVudCAoYWxsIGJ1ZmZlcnMgZnJvbSB0aGUgbmV3IHNlZ21lbnQgd2VyZSBiZWluZwoJICBkcm9wcGVkKS4KCjIwMDYtMDgtMjggMTU6NDg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU21hbGwgY29tbWVudCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBEcm9wLXByb2JhYmlsaXR5IGlzIGJyb2tlbiwgbWVudGlvbiB0aGlzIGluIHRoZSBjb2RlIHdpdGggYQoJICBGSVhNRSBhbmQgYWxzbyBpbiB0aGUgcHJvcGVydHkgZGVzY3JpcHRpb24uCgkgIE1ha2Ugc2lsZW50IGFsc28gYmUgc2lsZW50IGFib3V0IHRoZSBkcm9wIG1lc3NhZ2VzLgoKMjAwNi0wOC0yOCAxMTowNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDogUmVtb3ZlIG1lbnRpb24gb2YgcG9wdCwgd2UgZG9uJ3QgZGVwZW5kIG9uIHRoYXQgYW55IGxvbmdlciAoIzM1MzEzNikuIEFkZCBzb21lIGNvbW1lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6CgkgIFJlbW92ZSBtZW50aW9uIG9mIHBvcHQsIHdlIGRvbid0IGRlcGVuZCBvbiB0aGF0IGFueQoJICBsb25nZXIgKCMzNTMxMzYpLiBBZGQgc29tZSBjb21tZW50cyBwb2ludGluZyBvdXQgdGhhdAoJICB0aGlzIHNlY3Rpb24gaXMgc2xpZ2h0bHkgb3V0ZGF0ZWQuCgoyMDA2LTA4LTI4IDA4OjQ0OjI5ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIEluaXRpYWxpemUgdmFyaWFibGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgc2VnbWVudCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteCBkb3QgZGU+CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbml0aWFsaXplIHZhcmlhYmxlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IHNlZ21lbnQgcXVlcnkuCgkgIEZpeGVzICMzNTMxMjEuCgoyMDA2LTA4LTI4IDA4OjM1OjMxICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIENoZWNrIGZvciBOVUxMIGJlZm9yZSBfcmVmZmluZyB0aGUgYnVzLiBGaXhlcyAjMzUzMTIyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214IGRvdCBkZT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgZm9yIE5VTEwgYmVmb3JlIF9yZWZmaW5nIHRoZSBidXMuIEZpeGVzICMzNTMxMjIuCgoyMDA2LTA4LTI1IDE2OjQ2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IERvY3MgdXBkYXRlOiBmaXggd3JvbmcgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIGV4cGxhbmF0aW9uOyBhZGQgc29tZSBsaW5lcyBhYm91dCB0aGUgaW1wbGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBEb2NzIHVwZGF0ZTogZml4IHdyb25nIGNhbGxiYWNrIHJldHVybiB2YWx1ZSBleHBsYW5hdGlvbjsgYWRkCgkgIHNvbWUgbGluZXMgYWJvdXQgdGhlIGltcGxpY2l0IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1haW4gbG9vcAoJICBhbmQgbWFpbiBjb250ZXh0OyByZW1vdmUgZHVwbGljYXRlIG1haW4gbG9vcCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KCjIwMDYtMDgtMjQgMTI6MzA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBEb24ndCBsZWFrIGNhcHMgaW4gdW5pdCB0ZXN0OyBhZGQgYSBmZXcgbW9yZSBzaW1wbGUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIGNhcHMgaW4gdW5pdCB0ZXN0OyBhZGQgYSBmZXcgbW9yZSBzaW1wbGUKCSAgY2hlY2tzLgoKMjAwNi0wOC0yNCAxMDo0MDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW1wbGVtZW50IGNhcHMgbWVyZ2luZyAoZml4ZXMgIzM1MjU4MCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCksCgkgIChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0KSwgKGdzdF9jYXBzX21lcmdlKSwKCSAgKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgaW1wbGVtZW50IGNhcHMgbWVyZ2luZyAoZml4ZXMgIzM1MjU4MCkKCjIwMDYtMDgtMjMgMTg6NTM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzLzogYWRkIGRlYnVnLWxvZyBwbG90dGluZyBkZXZlbG9wZXIgdG9vbCAoIzM0MDY3NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGFkZCBkZWJ1Zy1sb2cgcGxvdHRpbmcgZGV2ZWxvcGVyIHRvb2wgKCMzNDA2NzQpCgoyMDA2LTA4LTIzIDE2OjUxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXByb3ZlIGRlYnVnZ2luZyBmb3IgdGFzayBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBmb3IgdGFzayBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLCAoZ3N0X3Rhc2tfam9pbik6CgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSB0YXNrIGZ1bmN0aW9uIHN0YXJ0ZWQgYW5kIGZpbmlzaGVkIGFmdGVyIGEKCSAgam9pbigpLgoJICBEb24ndCB0cnkgdG8gcHVzaCB0aGUgdGFzayBmdW5jdGlvbiBvbiB0aGUgdGhyZWFkcG9vbCBtdWx0aXBsZQoJICB0aW1lcy4KCSAgSW1wcm92ZSB0aGUgZ193YXJuaW5nIG1lc3NhZ2Ugd2l0aCBzb21lIHVzZWZ1bCBzdWdnZXN0aW9ucwoJICBhYm91dCBob3cgdG8gZml4IHRoZSBwcm9ibGVtLgoKMjAwNi0wOC0yMyAxMDo1OTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBIYW5kbGUgUkVTWU5DIGNvcnJlY3RseSBpbiBfcHJveHlfZ2V0Y2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3Byb3h5X2dldGNhcHMpOgoJICBIYW5kbGUgUkVTWU5DIGNvcnJlY3RseSBpbiBfcHJveHlfZ2V0Y2Fwcy4KCjIwMDYtMDgtMjMgMDk6NDc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3b3JkIHJlZmNvdW50aW5nIG1vcmUgcHJlY2lzZWx5IGZvciBnc3RfdmFsdWVfKl9idWZmZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmQgcmVmY291bnRpbmcgbW9yZSBwcmVjaXNlbHkgZm9yIGdzdF92YWx1ZV8qX2J1ZmZlcgoKMjAwNi0wOC0yMSAxNToxOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R4bWwuYzogQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGluIGRpc3Bvc2UgZnVuY3Rpb24gYW5kIGFsc28gdW5yZWYgdGhlIGVsZW1lbnRzIGluIHRoZSB0b3BsZXZlbF9lbGVtZW50cyBHTGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9kaXNwb3NlKSwgKGdzdF94bWxfcGFyc2VfZmlsZSksCgkgIChnc3RfeG1sX3BhcnNlX21lbW9yeSksIChnc3RfeG1sX2dldF9lbGVtZW50KToKCSAgQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGluIGRpc3Bvc2UgZnVuY3Rpb24gYW5kIGFsc28KCSAgdW5yZWYgdGhlIGVsZW1lbnRzIGluIHRoZSB0b3BsZXZlbF9lbGVtZW50cyBHTGlzdC4KCSAgRG9uJ3QgbGVhayBYbWxEb2NQdHIgaW4gX3BhcnNlX2ZpbGUoKSBhbmQgX3BhcnNlX21lbW9yeSgpLgoJICBBbHdheXMgcmV0dXJuIGEgcmVmZXJlbmNlIGluIGdzdF94bWxfZ2V0X2VsZW1lbnQoKSByYXRoZXIKCSAgdGhhbiBvbmx5IHNvbWV0aW1lcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6ICh4bWxsYXVuY2hfcGFyc2VfY21kbGluZSk6CgkgIERvbid0IGxlYWsgR3N0WG1sIG9iamVjdC4KCjIwMDYtMDgtMjEgMTQ6NTQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFQSTogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIHVzZSBpdCBpbiBiYXNldHJhbnNmb3JtLCBmaXhlcyAjMzQ1NDQ0IGluIGEgYmV0dGVyIHdheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RydWN0dXJlX2lzX2VxdWFsX2ZvcmVhY2gpLAoJICAoZ3N0X2NhcHNfbWVyZ2UpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBBUEk6IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXRyYW5zZm9ybSwgZml4ZXMgIzM0NTQ0NAoJICBpbiBhIGJldHRlciB3YXkKCjIwMDYtMDgtMjEgMTQ6MDM6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0eG1sLmM6IEltcGxlbWVudCBHT2JqZWN0OjpkaXNwb3NlIHZpcnR1YWwgbWV0aG9kIGluIEdzdFhNTCBzbyB3ZSBjYW4gZnJlZSB0aGUgdG9wX2VsZW1lbnRzIEdMaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpLCAoZ3N0X3htbF9kaXNwb3NlKToKCSAgSW1wbGVtZW50IEdPYmplY3Q6OmRpc3Bvc2UgdmlydHVhbCBtZXRob2QgaW4gR3N0WE1MIHNvIHdlIGNhbiBmcmVlIHRoZQoJICB0b3BfZWxlbWVudHMgR0xpc3QuCgoyMDA2LTA4LTIxIDA5OjMwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IGR1cmF0aW9uL29mZnNldF9lbmQvY2FwcyB3aGVuIGNyZWF0aW5nIGEgc3ViYnVmZmVyIG9mIHRoZSBjb21wbGV0ZSBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICBDb3B5IGR1cmF0aW9uL29mZnNldF9lbmQvY2FwcyB3aGVuIGNyZWF0aW5nIGEgc3ViYnVmZmVyIG9mIHRoZQoJICBjb21wbGV0ZSBwYXJlbnQuCgkgIE1ha2UgdGhlIHN1YmJ1ZmZlciByZWFkLW9ubHkgd2hlbiB3ZSBtYWtlIHRoZSBtZXRhZGF0YSB3cml0YWJsZSBmb3IKCSAgbm93LiBGaXhlcyAjMzUxNzY4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgY2hlY2sgZm9yIG1ldGFkYXRhIGNvcHkgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoKMjAwNi0wOC0yMSAwOToyMDo0MiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBPbmx5IGNhbGwgZG93bnN0cmVhbSBidWZmZXJfYWxsb2MgaWYgdHJhbnNmb3JtIGVsZW1lbnQgaXMgcGFzc3Rocm91Z2ggb3IgYWx3YXlzX2luXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBPbmx5IGNhbGwgZG93bnN0cmVhbSBidWZmZXJfYWxsb2MgaWYgdHJhbnNmb3JtIGVsZW1lbnQgaXMgcGFzc3Rocm91Z2gKCSAgb3IgYWx3YXlzX2luX3BsYWNlLiBDbG9zZXMgIzM1MDQ0OS4KCjIwMDYtMDgtMjAgMTk6MzY6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGNvbW1lbnRzIHRvIHByZXZpb3VzIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgY29tbWVudHMgdG8gcHJldmlvdXMgY2hhbmdlcwoKMjAwNi0wOC0yMCAxOTozMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgU2ltcGxpZnkgY2FwcyB0byBnZXQgcmlkIG9mIGR1cGxpY2F0ZXMsIGZpeGVzICMzNDU0NDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBTaW1wbGlmeSBjYXBzIHRvIGdldCByaWQgb2YgZHVwbGljYXRlcywgZml4ZXMgIzM0NTQ0NAoKMjAwNi0wOC0yMCAxNTo1NToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFVzZSB0aGVzZSBvcHRpbWl6YXRpb25zIG9ubHkgaW50ZXJuYWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlIHRoZXNlIG9wdGltaXphdGlvbnMgb25seSBpbnRlcm5hbHkuCgoyMDA2LTA4LTIwIDE0OjMwOjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogU2F2ZXMgdGhlIGV4cGVuc2l2ZSBsb29rdXAgb2YgdGhlIGNvbXBhcmUgZnVuY3Rpb24gaW4gbWFueSBjYXNlcyAoIzM0NTQ0NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9nZXRfY29tcGFyZV9mdW5jKSwgKGdzdF92YWx1ZV9jb21wYXJlKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX3dpdGhfZnVuYyk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFNhdmVzIHRoZSBleHBlbnNpdmUgbG9va3VwIG9mIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGluIG1hbnkgY2FzZXMKCSAgKCMzNDU0NDQpCgoyMDA2LTA4LTE4IDEzOjQxOjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogRGlzYWJsZSB0ZXN0IHRoYXQgcmVxdWlyZSBnc3RkZWJ1ZyBpZiBpdCB3YXNuJ3QgYnVpbHQgaW4gY29yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKGdzdF9pbmZvX3N1aXRlKToKCSAgRGlzYWJsZSB0ZXN0IHRoYXQgcmVxdWlyZSBnc3RkZWJ1ZyBpZiBpdCB3YXNuJ3QgYnVpbHQgaW4gY29yZS4KCjIwMDYtMDgtMTggMTA6NTI6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6IHVwZGF0ZSBpZGVhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OgoJICB1cGRhdGUgaWRlYXMKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgcmVvcmRlciBmaWVsZHMsIHNhdmUgc29tZSBjb2x1bW5zLCBhZGQgb3B0aW5hbCBjb2xvciBjb2RlcyBmb3IgbG9nLQoJICBsZXZlbHMKCjIwMDYtMDgtMTggMDg6MDc6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6IGFkZCBpZGVhcyBhYm91dCBtYWtpbmcgdGhlIGxvZ3MgYWJpdCBtb3JlIHVzZWZ1bAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OgoJICBhZGQgaWRlYXMgYWJvdXQgbWFraW5nIHRoZSBsb2dzIGFiaXQgbW9yZSB1c2VmdWwKCjIwMDYtMDgtMTcgMTg6MTE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IFVwZGF0ZSBmb3IgMC4xMCBBUEkgKCMzNDA2MjcpLiBBZGQgbXlzZWxmIHRvIGF1dGhvcnMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBVcGRhdGUgZm9yIDAuMTAgQVBJICgjMzQwNjI3KS4gQWRkIG15c2VsZgoJICB0byBhdXRob3JzIGxpc3QuCgoyMDA2LTA4LTE3IDEwOjQ2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZSBnc3RjaGVjayBzdHVmZiBzaG93IHVwIGluIGRvY3MgKHN0aWxsIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQgcHJvcGVybHkgdGhvdWdoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkgIE1ha2UgZ3N0Y2hlY2sgc3R1ZmYgc2hvdyB1cCBpbiBkb2NzIChzdGlsbCBuZWVkcyB0bwoJICBiZSBkb2N1bWVudGVkIHByb3Blcmx5IHRob3VnaCkuCgoyMDA2LTA4LTE2IDExOjQ3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBpbnRlcm5hbCBoZWxwZXJzIGZvciBwcmUtcmVnaXN0ZXJpbmcgcXVhcmtzIGZyb20gc3RhdGljIHN0cmluZ3MgYW5kIHVzaW5nIHRoZSBxdWFyayB2YWx1ZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X25ld19kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9jb252ZXJ0KSwgKGdzdF9xdWVyeV9wYXJzZV9jb252ZXJ0KSwKCSAgKGdzdF9xdWVyeV9uZXdfc2VnbWVudCksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X25ld19zZWVraW5nKSwKCSAgKGdzdF9xdWVyeV9zZXRfc2Vla2luZyksIChnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyk6CgkgIEFkZCBpbnRlcm5hbCBoZWxwZXJzIGZvciBwcmUtcmVnaXN0ZXJpbmcgcXVhcmtzIGZyb20gc3RhdGljIHN0cmluZ3MKCSAgYW5kIHVzaW5nIHRoZSBxdWFyayB2YWx1ZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBsb29raW5nIHRoZW0gdXAgd2hlbgoJICBjcmVhdGluZyBhbmQgcGFyc2luZyBxdWVyaWVzLiBDYW4gYmUgdXNlZCBmb3IgZXZlbnQgY29uc3RydWN0aW9uIHRvby4KCSAgQ2xvc2VzICMzNTA0MzIuCgoyMDA2LTA4LTE2IDA4OjU0OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYm9ndXMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggYm9ndXMgZG9jcy4KCjIwMDYtMDgtMTUgMTg6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IG1lbWxlYWsgKCMzNTE1MDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyk6CgkgIEZpeCBtZW1sZWFrICgjMzUxNTAyKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIG1vc3Qgb2YgZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKCkKCSAgKG5vdCB0aGF0IG9uZSB3b3VsZCB3YW50IHRvIGVuY291cmFnZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbikuCgoyMDA2LTA4LTE1IDE4OjI5OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogVXNlIGNvbnN0IGdjaGFyICogdmFyaWFibGVzIGluIGZhaWxfdW5sZXNzX2VxdWFsc19zdHJpbmcgbWFjcm8gdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIFVzZSBjb25zdCBnY2hhciAqIHZhcmlhYmxlcyBpbiBmYWlsX3VubGVzc19lcXVhbHNfc3RyaW5nCgkgIG1hY3JvIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIChhbmQgZG9uJ3QgdXNlIHRhYnMgZm9yCgkgIGluZGVudGluZykuCgoyMDA2LTA4LTE1IDEwOjA4OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNb3JlIHNwYWNlIG9uIHRoZSBsZWZ0IGZvciB0aGUgdGFnIG5hbWVzLCB0byBjYXRlciBmb3IgdGhlICdleHRlbmRlZCBjb21tZW50JyB0YWcgKG5vdCB0b3VjaGluZyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIE1vcmUgc3BhY2Ugb24gdGhlIGxlZnQgZm9yIHRoZSB0YWcgbmFtZXMsIHRvIGNhdGVyCgkgIGZvciB0aGUgJ2V4dGVuZGVkIGNvbW1lbnQnIHRhZyAobm90IHRvdWNoaW5nIHRoZQoJICBzdHJpbmcgZm9yIHRoZSBmaXJzdCBsaW5lIHNpbmNlIGl0J3MgdHJhbnNsYXRlZCkuCgoyMDA2LTA4LTE1IDA5OjQ0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb24gdGhlIG90aGVyIGNoYW5nZSBpbiB0aGUgQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb24gdGhlIG90aGVyIGNoYW5nZSBpbiB0aGUgQ2hhbmdlTG9nCgoyMDA2LTA4LTE1IDA5OjMzOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IEFTU0VSVF9DUklUSUNBTCBhbmQgQVNTRVJUX1dBUk5JTkcgbWFjcm9zIHRvIGFjdHVhbGx5IHByaW50IHNvbWV0aGluZyB3aGVuIHRoZXkgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IEFTU0VSVF9DUklUSUNBTCBhbmQgQVNTRVJUX1dBUk5JTkcgbWFjcm9zIHRvIGFjdHVhbGx5CgkgIHByaW50IHNvbWV0aGluZyB3aGVuIHRoZXkgZmFpbC4KCjIwMDYtMDgtMTQgMTk6MDQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0VYVEVOREVEX0NPTU1FTlQgKCMzNTA5MzUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0VYVEVOREVEX0NPTU1FTlQgKCMzNTA5MzUpLgoKMjAwNi0wOC0xNCAxNzoyOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IE1ha2UgR1NUX1BUUl9GT1JNQVQgcHJpbnQgbWVzc2FnZXMgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19wcmludF9vYmplY3QpOgoJICBNYWtlIEdTVF9QVFJfRk9STUFUIHByaW50IG1lc3NhZ2VzIGFzIHdlbGwuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKHByaW50Zl9leHRlbnNpb25fbG9nX2Z1bmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2luZm9fc3VpdGUpOgoJICBNb3JlIHRlc3RzLgoKMjAwNi0wOC0xNCAxNTozMzoxNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBJZiB0aGUgR3N0RWxlbWVudENsYXNzIGRvZXNuJ3QgaGF2ZSBhIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggYWxsIGZpZWxkcyB0aGVuIGVycm9yIG91dCBuaWNlbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgSWYgdGhlIEdzdEVsZW1lbnRDbGFzcyBkb2Vzbid0IGhhdmUgYSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIGFsbCBmaWVsZHMKCSAgZmlsbGVkIHVwIGNvcnJlY3RseSAobG9uZ25hbWUsIGRlc2NyaXB0aW9uIEFORCBhdXRob3IpLCB0aGVuIGVycm9yIG91dAoJICBuaWNlbHkgaW5zdGVhZCBvZiBjcmFzaGluZy4KCjIwMDYtMDgtMTQgMTI6MzU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZpeCB0eXBvIGluIGRvY3MgYW5kIHJlLXdyYXAgZG9jcyBibHVyYiB0byBub3QgZXhjZWVkIDgwIGNoYXJzL2xpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgRml4IHR5cG8gaW4gZG9jcyBhbmQgcmUtd3JhcCBkb2NzIGJsdXJiIHRvIG5vdCBleGNlZWQgODAgY2hhcnMvbGluZS4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgRXhwYW5kIG9uIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYXJyYXlzIGFuZCBsaXN0cyBhcyB3ZSB1c2UgdGhlbS4KCjIwMDYtMDgtMTQgMDc6NDQ6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSWYgdGhlIHBhcmVudCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZmFpbGVkLCBkb24ndCBhc3N1bWUgd2UgY2FuIHNhZmVseSBzdG9wIHRoZSBzb3VyY2UsIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSWYgdGhlIHBhcmVudCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZmFpbGVkLCBkb24ndCBhc3N1bWUgd2UgY2FuIHNhZmVseQoJICBzdG9wIHRoZSBzb3VyY2UsIHRoaXMgd2lsbCBiZSBkb25lIHdoZW4gdGhlIHBhZHMgYXJlIGRlYWN0aXZhdGVkLgoKMjAwNi0wOC0xNCAwNzozNTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2pvaW4pOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgV2hlbiBwYWQgKGRlKWFjdGl2YXRpb24gZmFpbGVkIGZvciBzb21lIHJlYXNvbiwgcmVzdG9yZSB0aGUgb2xkCgkgIGFjdGl2YXRpb24gbW9kZSBhbmQgc2V0IHRoZSBwYWQgdG8gZmx1c2hpbmcgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUKCSAgcGFkIGlzIGRlYWN0aXZhdGVkLgoJICBJZiB0aGUgX3Rhc2tfam9pbigpIGZhaWxlZCwgcmVpbnN0YWxsIHRoZSB0YXNrIG9uIHRoZSBwYWQgc28gdGhhdCBpdCBjYW4KCSAgYmUgc3RvcHBlZCBsYXRlciBhbmQgcmV0dXJuIGFuIGVycm9yLgoKMjAwNi0wOC0xMSAxNToyNjozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyBvbmx5IGZvciB1c2VycyBvZiBBUEkgdGhhdCBkb24ndCB3YW50IHRvIHNlZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiB0aGUgaGVhZGVyczsgcGVvcGxlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA4LTExICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0aXplcl9uZXcpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOiBHU1RfRElTQUJMRV9ERVBSRUNBVEVECgkgIGlzIG9ubHkgZm9yIHVzZXJzIG9mIEFQSSB0aGF0IGRvbid0IHdhbnQgdG8gc2VlIGRlcHJlY2F0ZWQKCSAgZnVuY3Rpb25zIGluIHRoZSBoZWFkZXJzOyBwZW9wbGUgdGhhdCB3YW50IHRvIGNvbXBpbGUgb3V0CgkgIGRlcHJlY2F0ZWQgY29kZSBzaG91bGQgcGFzcyAtREdTVF9SRU1PVkVfREVQUkVDQVRFRCBpbnRvIHRoZQoJICBDRkxBR1MuIEZpeGVzIHRoZSBidWlsZCBvZiBtdWx0aWZkc2luaywgb3Igd2lsbCBzb29uLi4KCjIwMDYtMDgtMTEgMTU6MjQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR3N0Q2xvY2tDbGFzcyB2bWV0aG9kIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBHc3RDbG9ja0NsYXNzIHZtZXRob2QgZG9jcy4KCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBNYXJrICNlbmRpZiB3aXRoIGNvbW1lbnQgZm9yIGFzc29jaWF0ZWQgI2lmCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEFkZCB2bWV0aG9kIHdhaXRfaml0dGVyIHRvIGF2b2lkIGFuIHVubmVlZGVkIF9nZXRfdGltZSgpIGZvcgoJICBtb3N0IGNsb2NrIGltcGxlbWVudGF0aW9ucy4KCSAgRG9jdW1lbnQgdm1ldGhvZHMuCgkgIEZsZXNoIG91dCBkb2NzIGFib3V0IHJlc29sdXRpb24gbWV0aG9kcy4KCSAgQVBJOiBHc3RDbG9ja0NsYXNzOjp3YWl0X2ppdHRlcgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcik6CgkgIFVzZSBiYXNlIGNsYXNzIHdhaXRfaml0dGVyIHZhcmlhbnQgZm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlCgkgIGR1ZSB0byBsZXNzIGNsb2NrIHBvbGxpbmcuCgoyMDA2LTA4LTExIDE1OjA3OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBTZXQgZ3N0IGFzIGJlaW5nIGluaXRpYWxpemVkIGJlZm9yZSBzY2FubmluZy91cGRhdGluZyB0aGUgcmVnaXN0cnksIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcGx1Z2lucyB0aGF0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2NoZWNrKSwgKGluaXRfcG9zdCk6CgkgIFNldCBnc3QgYXMgYmVpbmcgaW5pdGlhbGl6ZWQgYmVmb3JlIHNjYW5uaW5nL3VwZGF0aW5nIHRoZSByZWdpc3RyeSwKCSAgc2luY2UgdGhlcmUgbWlnaHQgYmUgc29tZSBwbHVnaW5zIHRoYXQgY2FsbCBnc3RfaW5pdCgpIGFuZCB3ZSBkb24ndAoJICB3YW50IHRvIGxvb3AgYmFjayBpbi4KCSAgQ2xvc2VzICMzNTA4NzkKCjIwMDYtMDgtMTEgMTM6MTM6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gdGhhdCB3ZSBmaXhlZCBidWcgIzM0OTk0MyB3aXRoIHRoZSBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gdGhhdCB3ZSBmaXhlZCBidWcgIzM0OTk0MyB3aXRoIHRoZSBsYXN0IGNvbW1pdC4KCjIwMDYtMDgtMTEgMTM6MDU6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEJyaW5nIGRvY3MgaW4gbGluZSB3aXRoIHRoZSBjb2RlLiBNb3N0bHkgdGhlIHNpZ24gb2YgdGhlIGppdHRlciB3YXMgd3JvbmcgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgQnJpbmcgZG9jcyBpbiBsaW5lIHdpdGggdGhlIGNvZGUuIE1vc3RseSB0aGUgc2lnbiBvZiB0aGUgaml0dGVyIHdhcwoJICB3cm9uZyBpbiB0aGUgZG9jcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgRml4IHRoZSBkb2NzIGZvciB0aGUgaml0dGVyLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19jdXN0b20pLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwKCSAgKGdzdF9ldmVudF9uZXdfc2VlayksIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksCgkgIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICBNYWtlIHN1cmUgdGhlIEdzdFN0cnVjdHVyZSBoYXMgbm8gcGFyZW50IHdoZW4gY3JlYXRpbmcgY3VzdG9tCgkgIGV2ZW50cy4KCSAgQWRkIHNvbWUgbW9yZSBhcmd1bWVudCBjaGVja2luZyBzbyB0aGF0IHdlIGF2b2lkIDAuMCByYXRlcy4KCSAgRmxlc2ggb3V0IHRoZSBkb2NzIGZvciB0aGUgUW9TIGV2ZW50IHNvbWUgbW9yZS4KCjIwMDYtMDgtMTEgMTA6MjE6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0byBtZW50aW9uIGZpeGVkIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBtZW50aW9uIGZpeGVkIGJ1Zy4KCjIwMDYtMDgtMTEgMTA6MTk6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAocGFyc2Vfb25lX29wdGlvbiksIChwYXJzZV9nb3B0aW9uX2FyZyksIChnc3RfZGVpbml0KSwKCSAgKGdzdF9yZWdpc3RyeV9mb3JrX2lzX2VuYWJsZWQpLCAoZ3N0X3JlZ2lzdHJ5X2Zvcmtfc2V0X2VuYWJsZWQpOgoJICAqIGdzdC9nc3QuaDoKCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIEFQSSBhbmQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBkaXNhYmxlIHJlZ2lzdHJ5IGZvcmtpbmcgaW4KCSAgYWRkaXRpb24gdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBDb25zdGlmeSBzb21lIHN0YXRpYyBhcnJheXMuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgRG9uJ3QgZGVpbml0IHR3aWNlLgoJICBBUEk6IGdzdF9yZWdpc3RyeV9mb3JrX2lzX2VuYWJsZWQoKQoJICBBUEk6IGdzdF9yZWdpc3RyeV9mb3JrX3NldF9lbmFibGVkKCkKCSAgQVBJOiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5LWZvcmsgY29tbWFuZCBsaW5lIG9wdGlvbgoKMjAwNi0wOC0xMSAwOTo1OToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXQpOgoJICBGaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgoKMjAwNi0wOC0xMCAyMDowNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6IGZpeCBBQkkgc2l6ZS1jb3JyZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBmaXggQUJJIHNpemUtY29ycmVjdGlvbgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBtYWtlIHRlc3RzIHRoYXQgdXNlIGRlcHJlY2F0ZWQgQVBJIGNvbmRpdGlvbmFsCgoyMDA2LTA4LTEwIDE5OjQ2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBUEk6IGFkZCBnc3Rfb2JqZWN0X3tzLGd9ZXRfY29udHJvbF9yYXRlKCksIGFkZCBwcml2YXRlIGRhdGEgc2VjdGlvbiwgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9nZXRfcHJvcGVydHkpLCAoX2dzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfaW5pdCksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksCgkgIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICBBUEk6IGFkZCBnc3Rfb2JqZWN0X3tzLGd9ZXRfY29udHJvbF9yYXRlKCksIGFkZCBwcml2YXRlIGRhdGEgc2VjdGlvbiwKCSAgZml4IGRvY3MKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0aXplcl9uZXcpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgYWRkIGRlcHJlY2F0aW9uIGd1YXJkcyB0byBtYWtlIGd0ay1kb2MgaGFwcHkgYW5kIGFsbG93IGRpc2FibGluZyBjcnVmdAoKMjAwNi0wOC0wOSAxNToyNjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogTGV0J3MgZW5hYmxlIHRoZSBuZXcgdW5pdCB0ZXN0IGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBMZXQncyBlbmFibGUgdGhlIG5ldyB1bml0IHRlc3QgYXMgd2VsbC4KCjIwMDYtMDgtMDkgMTU6MTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfU0VHTUVOVF9GT1JNQVQsIHdoaWNoIGlzIGEgcHJpbnRmIGV4dGVuc2lvbiB3ZSByZWdpc3RlciB0aGF0IGxldHMgdXMgZWFzaWx5IGR1bXAgR3N0U2VnbWVudHMgaW50byBkZWJ1ZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpLCAoZ3N0X2RlYnVnX3ByaW50X3NlZ21lbnQpLAoJICAoX2dzdF9pbmZvX3ByaW50Zl9leHRlbnNpb25fcHRyKSwKCSAgKF9nc3RfaW5mb19wcmludGZfZXh0ZW5zaW9uX3NlZ21lbnQpOgoJICBBUEk6IGFkZCBHU1RfU0VHTUVOVF9GT1JNQVQsIHdoaWNoIGlzIGEgcHJpbnRmIGV4dGVuc2lvbiB3ZQoJICByZWdpc3RlciB0aGF0IGxldHMgdXMgZWFzaWx5IGR1bXAgR3N0U2VnbWVudHMgaW50byBkZWJ1ZwoJICBsb2dzICgjMzUwNDE5KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoc2VnbWVudF9wcmludGZfZXh0ZW5zaW9uX2xvZ19mdW5jKSwKCSAgKGluZm9fc2VnbWVudF9mb3JtYXRfcHJpbnRmX2V4dGVuc2lvbiksIChnc3RfaW5mb19zdWl0ZSk6CgkgIEFkZCBzaW1wbGUgdW5pdCB0ZXN0IHRoYXQgbG9ncyBhIGJ1bmNoIG9mIGRpZmZlcmVudCBzZWdtZW50cyAobm90CgkgIHZhbGdyaW5kZWQgYXQgdGhlIG1vbWVudCBiZWNhdXNlIG9mIGxlYWtzIGluIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKS4KCjIwMDYtMDgtMDkgMTE6MDE6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRXZlbiBpZiB3ZSBjYW4ndCBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgZm9ybWF0IHRvIHJlcXVlc3QgZG93bnN0cmVhbSwgY2FsbCBidWZmZXJfYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRXZlbiBpZiB3ZSBjYW4ndCBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgZm9ybWF0IHRvIHJlcXVlc3QgZG93bnN0cmVhbSwKCSAgY2FsbCBidWZmZXJfYWxsb2MoKSBkb3duc3RyZWFtIHdpdGggdGhlIGlucHV0IHBhcmFtZXRlcnMgd2l0aG91dCBzZXR0aW5nCgkgIHRoZSBjYXBzIG9uIHRoZSBzcmNwYWQuIFRoaXMgd2lsbCBmb3JjZSBuZWdvdGlhdGlvbiBpbiB0aGUgY2hhaW4KCSAgZnVuY3Rpb24uCgkgIENsb3NlcyAjMzUwNDQ5CgoyMDA2LTA4LTA4IDE2OjI0OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IFVubGlua2luZyBmcm9tIGEgcGFkIHdpdGhvdXQgYSB0YXJnZXQgaXMgbm93IGEgcGVyZmVjdGx5IHZhbGlkIGNhc2Ugd2hpY2ggc2hvdWxkIE5PVCByYWlzZSBhbiBhc3NlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspOgoJICBVbmxpbmtpbmcgZnJvbSBhIHBhZCB3aXRob3V0IGEgdGFyZ2V0IGlzIG5vdyBhIHBlcmZlY3RseSB2YWxpZCBjYXNlCgkgIHdoaWNoIHNob3VsZCBOT1QgcmFpc2UgYW4gYXNzZXJ0aW9uLgoJICBUaGlzIGNhc2Ugd291bGQgaGFwcGVuIGlmIGEgbGlua2VkIGdob3N0cGFkIGl0cyB0YXJnZXQgc2V0IHRvIE5VTEwgYWZ0ZXIKCSAgaXQgd2FzIHByZXZpb3VzbHkgbGlua2VkLgoKMjAwNi0wOC0wOCAwOTo1Njo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IEFsc28gY29tbWVudCBvdXQgdGhlIHRlc3QgKHNlZSBiZWxvdykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIEFsc28gY29tbWVudCBvdXQgdGhlIHRlc3QgKHNlZSBiZWxvdykuCgoyMDA2LTA4LTA4IDA5OjA3OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogVXNlIHRoZSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gZnJvbSBjb25maWcuaCBhbmQgbm90IGdjYyBtYWNyb3MgaW4gb3JkZXIgdG8gcHJvcGVybHkgZGlzYWJsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBVc2UgdGhlIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBmcm9tIGNvbmZpZy5oIGFuZCBub3QgZ2NjIG1hY3JvcwoJICBpbiBvcmRlciB0byBwcm9wZXJseSBkaXNhYmxlIGEgdGVzdCB0aGF0IGZhaWxzIG9uIFBQQzY0LgoKMjAwNi0wOC0wNCAxNToxNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IERvbid0IGNyYXNoIHByaW50aW5nIHRoZSB3YXJuaW5nIGlmIHRoZSBwYWQgaGFzIG5vIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpOgoJICBEb24ndCBjcmFzaCBwcmludGluZyB0aGUgd2FybmluZyBpZiB0aGUgcGFkIGhhcyBubyBwYXJlbnQuCgoyMDA2LTA4LTAyIDE1OjE5OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBNYWtlIGRlYnVnIGNhdGVnb3J5IHN0YXRpYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyX2FueSksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc19hbnkpLAoJICAoZ3N0X2RwX2NyYyksIChnc3RfZHBfaGVhZGVyX3BheWxvYWRfbGVuZ3RoKSwKCSAgKGdzdF9kcF9oZWFkZXJfcGF5bG9hZF90eXBlKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKSwgKGdzdF9kcF9idWZmZXJfZnJvbV9oZWFkZXIpLAoJICAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMiksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX3ZhbGlkYXRlX2hlYWRlciksCgkgIChnc3RfZHBfdmFsaWRhdGVfcGF5bG9hZCk6CgkgIE1ha2UgZGVidWcgY2F0ZWdvcnkgc3RhdGljCgkgIENvbnN0aWZ5IHRoZSBjcmMgdGFibGUuCgkgIERvIHNvbWUgbW9yZSBhcmcgY2hlY2tpbmcgaW4gcHVibGljIGZ1bmN0aW9ucy4KCSAgRml4IHNvbWUgZG9jcyBhbmQgZG8gc29tZSBzbWFsbCBjbGVhbnVwcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2RwX3N1aXRlKToKCSAgQWRkIHNvbWUgbW9yZSBjaGVja3MgdG8gc2VlIGlmIEdEUCBkZWFscyB3aXRoIGJvZ3VzIGlucHV0LgoKMjAwNi0wNy0zMSAxNjozNDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24gY29kZS4gRml4ZXMgIzM0NzI5My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KToKCSAgRml4IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uIGNvZGUuIEZpeGVzICMzNDcyOTMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIHRvIHRlc3QgR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24uCgoyMDA2LTA3LTMxIDE1OjEyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFVzZSBPQkpFQ1RfTE9DSyBhbmQgcmVmY291bnRpbmcgdG8gZ2V0IHRoZSBwYWQgY2FwcyBpbiB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIFVzZSBPQkpFQ1RfTE9DSyBhbmQgcmVmY291bnRpbmcgdG8gZ2V0IHRoZSBwYWQgY2FwcyBpbiB0aGUKCSAgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGNhcHMgY291bGQgY2hhbmdlIHdoaWxlIHdlIGFyZQoJICBidXN5IHdpdGggdGhlbS4gRml4ZXMgIzM0OTEwNQoKMjAwNi0wNy0zMSAxNToxMjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2Ugc3VyZSB0byBmcmVlIHRoZSBwYXJzZSBidWZmZXIgb24gYWxsIGNvZGUgcGF0aHMuCgkgIE1vdmUgYSBnX2ZyZWUgdXAgdG8gdGhlIGVycm9yIGhhbmRsZXIgd2hlcmUgaXQncyBlYXNpZXIgdG8gc2VlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIEV4dGVuZGluZyB0aW1lb3V0IGZvciBkb3duc3RyZWFtIHRyYXZlbGxpbmcgZXZlbnRzIHRvIDEwIHNlY29uZHMgdG8KCSAgaG9wZWZ1bGx5IGF2b2lkIGludGVybWl0dGVudCBmYWlsdXJlIG9uIHRoZSBidWlsZGJvdHMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCk6CgkgIERvbid0IG1hbnVhbGx5IHNldCB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IC0gaXQgd2lsbCBoYXBwZW4gYXMgYQoJICBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRoZSBwaXBlbGluZSBjaGFuZ2luZyBzdGF0ZSwgYW5kIHRoYXQgd2F5IGl0CgkgIHdpbGwgZG8gaXQgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvby4KCjIwMDYtMDctMzEgMTU6MDc6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBzdXJlIHRvIGZyZWUgdGhlIHBhcnNlIGJ1ZmZlciBvbiBhbGwgY29kZSBwYXRocy4KCSAgTW92ZSBhIGdfZnJlZSB1cCB0byB0aGUgZXJyb3IgaGFuZGxlciB3aGVyZSBpdCdzIGVhc2llciB0byBzZWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgRXh0ZW5kaW5nIHRpbWVvdXQgZm9yIGRvd25zdHJlYW0gdHJhdmVsbGluZyBldmVudHMgdG8gMTAgc2Vjb25kcyB0bwoJICBob3BlZnVsbHkgYXZvaWQgaW50ZXJtaXR0ZW50IGZhaWx1cmUgb24gdGhlIGJ1aWxkYm90cy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KToKCSAgRG9uJ3QgbWFudWFsbHkgc2V0IHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgLSBpdCB3aWxsIGhhcHBlbiBhcyBhCgkgIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIHBpcGVsaW5lIGNoYW5naW5nIHN0YXRlLCBhbmQgdGhhdCB3YXkgaXQKCSAgd2lsbCBkbyBpdCBpbiB0aGUgcmlnaHQgb3JkZXIgdG9vLgoKMjAwNi0wNy0zMSAxNDoyMzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBQcm90ZWN0IF9QQURfQ0FQUyB3aXRoIE9CSkVDVF9MT0NLLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfZ2V0X2ZpeGVkX2NhcHNfZnVuYyk6CgkgIFByb3RlY3QgX1BBRF9DQVBTIHdpdGggT0JKRUNUX0xPQ0suCgoyMDA2LTA3LTMxIDE0OjIxOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIGl0IG1ha2VzIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1bGxfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdXNoX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9pbnRlcm5hbF9saW5rX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2xpbmtfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfdW5saW5rX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWNjZXB0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9maXhhdGVjYXBzX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3NldGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYnVmZmVyYWxsb2NfZnVuY3Rpb24pLCAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLAoJICAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKSwgKGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcyksCgkgIChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfbG9hZF9hbmRfbGluayksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIGl0IG1ha2VzIHNlbnNlLgoJICBQcm90ZWN0IEdTVF9QQURfQ0FQUyB3aXRoIHRoZSBPQkpFQ1RfTE9DSy4KCSAgU21hbGwgY2xlYW51cHMgYW5kIGNvZGUgcmVmbG93cy4KCSAgQXZvaWQgY2FwcyByZWZjb3VudGluZyBpbiBfYWNjZXB0X2NhcHMuCgkgIFJlZmFjdG9yIGFsbG9jX2J1ZmZlciBzbyB0aGF0IHRoZSBjb2RlIHBlcmZvcm1lZCBvbiB0aGUgcGVlciBpcyBpbiBhCgkgIHNlcGFyYXRlIGZ1bmN0aW9uLiBBbHNvIGlmIHRoZSBwYWQgZG9lcyBub3QgaW1wbGVtZW50IGEgYnVmZmVyIGFsbG9jCgkgIGZ1bmN0aW9uLCB3ZSBzaG91bGQgc3RpbGwgY2hlY2sgaWYgdGhlIHBhZCBpcyBmbHVzaGluZyBiZWZvcmUgZmFsbGluZwoJICBiYWNrIHRvIHRoZSBkZWZhdWx0IGFsbG9jYXRvci4KCjIwMDYtMDctMzAgMjI6MjA6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiBNYWtlIGFsbCB1c2VzIG9mIGlkZW50aXR5IGFuZCBmYWtlc2luayBoYXZlIHNpbGVudD10cnVlIHRvIGF2b2lkIHNlcmlhbGlzaW5nIGV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBhbGwgdXNlcyBvZiBpZGVudGl0eSBhbmQgZmFrZXNpbmsgaGF2ZSBzaWxlbnQ9dHJ1ZSB0byBhdm9pZAoJICBzZXJpYWxpc2luZyBldmVyeSBwYXNzaW5nIGRhdGEgc3RydWN0dXJlLCB3aGljaCBpcyBicmVha2luZyB0ZXN0cwoJICBvbiBGQzQgZm9yIHNvbWUgdW5rbm93biByZWFzb24uCgoyMDA2LTA3LTMwIDE4OjU4OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvOiBSZXZlcnRlZCBwcmV2aW91cyBwYXRjaCBhcyBpdCByZXF1aXJlZCB0byBidW1wIHRoZSBmbGV4IGRlcGVuZGVuY3kgdG8gMi41LjMxLCB3aGVyZSBmYzQvNSBzZWVtIHRvIHNoaXAgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFJldmVydGVkIHByZXZpb3VzIHBhdGNoIGFzIGl0IHJlcXVpcmVkIHRvIGJ1bXAgdGhlIGZsZXggZGVwZW5kZW5jeSB0bwoJICAyLjUuMzEsIHdoZXJlIGZjNC81IHNlZW0gdG8gc2hpcCBvbmx5IHRoZSBhbmNpZW50IDIuNS40YSA6KAoKMjAwNi0wNy0zMCAxODozMjo0OSArMDAwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlLzogcHVzaCAmIHBvcCB0aGUgc3RhdGUgb2YgdGhlIGxleGVyIGZvciByZWVudHJhbnQgdXNlIGNhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIHB1c2ggJiBwb3AgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBmb3IgcmVlbnRyYW50IHVzZSBjYXNlCgkgIEZpeGVzICMzNDkxODAKCjIwMDYtMDctMjkgMTM6NDU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDogTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoZSA6Om5ld3NlZ21lbnQgdmZ1bmMgaXMgbm90IGFjdHVhbGx5IHVzZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGUgOjpuZXdzZWdtZW50IHZmdW5jIGlzIG5vdCBhY3R1YWxseSB1c2VkIGJ5CgkgIEdzdEJhc2VTcmMuCgoyMDA2LTA3LTI4IDE0OjA5OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBXaGVuIGZsdXNoaW5nIGEgcGFkLCBhbHNvIGNsZWFyIHRoZSBxdWV1ZWQgYnVmZmVyIHNvIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nX3VubG9ja2VkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xlYXIpLCAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBXaGVuIGZsdXNoaW5nIGEgcGFkLCBhbHNvIGNsZWFyIHRoZSBxdWV1ZWQgYnVmZmVyIHNvIHRoYXQgd2UgZG9uJ3QKCSAgYWNjaWRlbnRhbGx5IHVzZSBpdCB3aGVuIHdlIHNob3VsZG4ndC4KCSAgRml4IGxlYWtzIGJ5IGlucmVmZmluZyBpbmNvbW1pbmcgYnVmZmVyLgoJICBGbHVzaCBvdXQgcXVldWVkIGJ1ZmZlcnMgaW4gY2FzZSBvZiBlcnJvcnMuCgkgIEZpeGVzICMzNDc0NTIuCgoyMDA2LTA3LTI4IDEwOjE3OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vcGhvbm9uLWdzdDogUmFuZG9tIG5vdGVzIGFib3V0IGEgUGhvbm9uIGJhY2tlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3Bob25vbi1nc3Q6CgkgIFJhbmRvbSBub3RlcyBhYm91dCBhIFBob25vbiBiYWNrZW5kLgoKMjAwNi0wNy0yNyAxNDozMjowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRXh0cmEgZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBFeHRyYSBkZWJ1ZyBvdXRwdXQKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgVGFrZSBhIHdoYWNrIGF0IGZpeGluZyB0aGUgcHBjIGNvbXBpbGUgdXNpbmcgYSBkaWZmZXJlbnQgZGVmaW5lIHRvCgkgIGRpc2FibGUgdGhlIGJyb2tlbiB0ZXN0LgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmVtb3ZlIGV4Y2VzcyBnX3ByaW50KCkKCjIwMDYtMDctMjcgMTM6NDQ6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiBPb3BzLCBtZWFudCB0byB1bmNvbW1lbnQgdGhpcyBsaW5lIHRvbyB0byBkYW1wZW4gdGhlIG5vaXNlIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpOgoJICBPb3BzLCBtZWFudCB0byB1bmNvbW1lbnQgdGhpcyBsaW5lIHRvbyB0byBkYW1wZW4gdGhlIG5vaXNlIGEgYml0LgoKMjAwNi0wNy0yNyAxMzoyNjoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc29tZSBvZiB0aGUgbGVha3MgZXhwb3NlZCBieSBleHRlbmRpbmcgdGhlIHBhcnNlLWxhdW5jaCB0ZXN0c3VpdGUsIGFuZCBtb3ZlIHRoZSAzIEkgY2FuJ3QgZmlndXJlIG91dCBpbnRvIGEgc2VwYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocGFyc2Vfc3VpdGUpOgoJICBGaXggc29tZSBvZiB0aGUgbGVha3MgZXhwb3NlZCBieSBleHRlbmRpbmcgdGhlIHBhcnNlLWxhdW5jaCB0ZXN0c3VpdGUsCgkgIGFuZCBtb3ZlIHRoZSAzIEkgY2FuJ3QgZmlndXJlIG91dCBpbnRvIGEgc2VwYXJhdGUgdGVzdCB0aGF0IHdvbid0IHJ1bgoJICB0aGUgcGlwZWxpbmVzIHVubGVzcyB0aGUgYXBwcm9wcmlhdGUgbGluZSBpcyB1bmNvbW1lbnRlZC4KCjIwMDYtMDctMjcgMTI6Mzk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUmVxdWVzdGluZyAwIGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmaWxlIHNob3VsZCByZXN1bHQgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBSZXF1ZXN0aW5nIDAgYnl0ZXMgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGZpbGUgc2hvdWxkIHJlc3VsdCBpbgoJICBGTE9XX09LIGFuZCBhbiBlbXB0eSBidWZmZXIsIG5vdCBGTE9XX1VORVhQRUNURUQuIFRoYW5rIHlvdQoJICB1bml0IHRlc3QuCgoyMDA2LTA3LTI3IDExOjAwOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHVzZWxlc3MgYXNzZXJ0LCBhIHVpbnQgaXMgYWx3YXlzIHBvc2l0aXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCksIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlKToKCSAgRml4IHVzZWxlc3MgYXNzZXJ0LCBhIHVpbnQgaXMgYWx3YXlzIHBvc2l0aXZlLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfbnRoX2ZpZWxkX25hbWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mb3JlYWNoKSwgKGdzdF9zdHJ1Y3R1cmVfbWFwX2luX3BsYWNlKToKCSAgQ2hlY2sgaW5wdXQgYXJndW1lbnRzIGZvciBwdWJsaWMgZnVuY3Rpb25zIHRvIGF2b2lkIG9idmlvdXMgY3Jhc2hlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBEbyBsZXNzIHVzZWxlc3MgdHlwZWNoZWNraW5nLgoKMjAwNi0wNy0yNyAxMDo1NDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBEbyBub3QgdXNlIG1tYXAoKSBieSBkZWZhdWx0IHNpbmNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBlcnJvciBjb25kaXRpb25zIHRoYXQgd2Ugd291bC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgRG8gbm90IHVzZSBtbWFwKCkgYnkgZGVmYXVsdCBzaW5jZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgZXJyb3IKCSAgY29uZGl0aW9ucyB0aGF0IHdlIHdvdWxkIGxpa2UgdG8gaGFuZGxlIGluIGEgbm9uLWZhdGFsIHdheSB0aGF0CgkgIHdpbGwgcmVzdWx0IGluIGEgU0lHQlVTIGlmIHdlIHVzZSBtbWFwKCkuIEV4YW1wbGVzOiBleHRlcm5hbAoJICBkZXZpY2VzIChVU0IgaGFyZGRyaXZlLCBwb3J0YWJsZSBtdXNpYyBwbGF5ZXIpIGJlaW5nIHVucGx1Z2dlZAoJICB3aGlsZSBpbiB1c2U7IGZpbGUgb24gbW91bnRlZCBDRC9EVkQgdGhhdCBjYW4ndCBiZSByZWFkIGJlY2F1c2UKCSAgdGhlIG1lZGl1bSBpcyBwYXJ0bHkgZGFtYWdlZC4gRml4ZXMgIzM0ODQ1NSBhbmQgIzM0ODQ3NS4KCjIwMDYtMDctMjYgMjI6NTk6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lmg6IERlbGV0ZSB1bnVzZWQgYW5kIG1pc2xlYWRpbmcgZGVmaW5lIG9mIEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOIC0gcmF0ZXMgYXJlIGEgZ2RvdWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRGVsZXRlIHVudXNlZCBhbmQgbWlzbGVhZGluZyBkZWZpbmUgb2YgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4gLQoJICByYXRlcyBhcmUgYSBnZG91YmxlCgoyMDA2LTA3LTI2IDIwOjMwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogTW92ZSBiaWcgZG9jdW1lbnRhdGlvbiBjb21tZW50IGludG8gY2xhc3Mgc2VjdGlvbiBoZWFkZXIsIHNvIHRoYXQgaXQgYXBwZWFycyBpbiB0aGUgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBNb3ZlIGJpZyBkb2N1bWVudGF0aW9uIGNvbW1lbnQgaW50byBjbGFzcyBzZWN0aW9uIGhlYWRlciwgc28gdGhhdCBpdAoJICBhcHBlYXJzIGluIHRoZSBBUEkgZG9jcy4KCjIwMDYtMDctMjYgMTc6MTg6MjUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogT29wcy4gQ29tbWl0IHRoZSBkb2NzIGFkZGl0aW9ucyB0b28gZm9yIG5ldyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE9vcHMuIENvbW1pdCB0aGUgZG9jcyBhZGRpdGlvbnMgdG9vIGZvciBuZXcgQVBJLgoJICBBbHNvLCByZW1vdmUgdGhlIG1lbnRpb24gb2YgdGhlIG5vbi1leGlzdGVudCBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTgoKMjAwNi0wNy0yNiAxNzowNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLio6IEFkZCBBUEkgZm9yIHNldHRpbmcgdmFsdWVzIGludG8gc3RydWN0dXJlcyB3aXRob3V0IHBlcmZvcm1pbmcgYSBxdWFyayBsb29rdXAsIGlmIHRoZSBhcHByb3ByaWF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXQpLAoJICAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIEFkZCBBUEkgZm9yIHNldHRpbmcgdmFsdWVzIGludG8gc3RydWN0dXJlcyB3aXRob3V0IHBlcmZvcm1pbmcKCSAgYSBxdWFyayBsb29rdXAsIGlmIHRoZSBhcHByb3ByaWF0ZSBxdWFyayBpcyBhbHJlYWR5IGtub3duLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfc2V0CgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgUmVtb3ZlIHNvbWUgZGVhZCBjb2RlIHNob3duIGJ5IHRoZSBjb3ZlcmFnZSBpbmZvcm1hdGlvbi4KCSAgRG9uJ3QgdGhyb3cgYSBjcml0aWNhbCBnX3dhcm5pbmcgd2hlbiBlbmNvdW50ZXJpbmcgYSBzeW50YXggZXJyb3IsCgkgIGp1c3Qgd2FybiBhbmQgbGV0IHRoZSBub3JtYWwgZXJyb3IgcGF0aCBoYW5kbGUgaXQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBCdW1wIHRoZSByYW5rIG9mIGZpbGVzaW5rIHVwIHRvIFBSSU1BUlkgc28gdGhhdCBpdCBpcyBwcmVmZXJyZWQgb3ZlcgoJICBnbm9tZXZmc3NpbmsgZm9yIGZpbGU6Ly8gc2luayB1cmkncwoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChydW5fZGVsYXllZF90ZXN0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2xhc3NfaW5pdCksIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3JlZ2lzdGVyX3BhcnNlX2VsZW1lbnQpLCAocGFyc2Vfc3VpdGUpOgoJICBCZWVmIHVwIHRoZSB0ZXN0cyBmb3IgcGFyc2Ugc3ludGF4IHRvIGNoZWNrIHRoYXQgbW9yZSBlcnJvciBjYXNlcwoJICBmYWlsIGFzIHRoZXkgYXJlIHN1cHBvc2VkIHRvLiBJbmNyZWFzZXMgdGhlIHRlc3QgY292ZXJhZ2UgYSBiaXQuCgoyMDA2LTA3LTI2IDExOjQzOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDogRml4IGdzdF9lbGVtZW50X2xpbmsoKSBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBGaXggZ3N0X2VsZW1lbnRfbGluaygpIGV4YW1wbGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1lbnRpb24gaW4gQVBJIGRvY3MgdGhhdCBvbmUgc2hvdWxkIHVzdWFsbHkgZ3N0X2Jpbl9hZGQoKQoJICBlbGVtZW50cyB0byBhIGJpbiBvciBwaXBlbGluZSBiZWZvcmUgZG9pbmcgdGhlIGxpbmtpbmcuCgoyMDA2LTA3LTI2IDEwOjQ3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byAzMiBiaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gMzIgYml0CgoyMDA2LTA3LTI2IDEwOjM5OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBdm9pZCBmdW5jdGlvbiBjYWxsIGZvciBrbm93biB0eXBlcyBieSBrZWVwaW5nIHRoZSBidWZmZXIgYW5kIHN1YmJ1ZmZlciBHVHlwZSBnbG9iYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9uZXcpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICBBdm9pZCBmdW5jdGlvbiBjYWxsIGZvciBrbm93biB0eXBlcyBieSBrZWVwaW5nIHRoZSBidWZmZXIgYW5kCgkgIHN1YmJ1ZmZlciBHVHlwZSBnbG9iYWwuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBSYW5kb20gc2lsbHkgb3B0aW1pc2F0aW9ucyBpbiByZWFkKCkgcGF0aC4KCjIwMDYtMDctMjYgMDY6MTg6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBJZiB0aGUgdG9wLWxldmVsIG9mIHRoZSBwYXJzZSBpcyBhIG5vcm1hbCBiaW4sIGl0IGRvZXNuJ3QgZG8gdGhlIHJpZ2h0IGxvZ2ljIHRvIHJ1biBhcyBhIHRvcC1sZXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBJZiB0aGUgdG9wLWxldmVsIG9mIHRoZSBwYXJzZSBpcyBhIG5vcm1hbCBiaW4sIGl0IGRvZXNuJ3QgZG8gdGhlCgkgIHJpZ2h0IGxvZ2ljIHRvIHJ1biBhcyBhIHRvcC1sZXZlbCBlbGVtZW50LCBzbyBwbGFjZSBpdCBpbnNpZGUgYQoJICBwaXBlbGluZS4KCjIwMDYtMDctMjUgMTk6Mzc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzLCBHT2JqZWN0IGRvZXMgdGhhdCBmb3IgdXMgYXV0b21hdGljYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KToKCSAgUmVtb3ZlIHN1cGVyZmx1b3VzIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzLCBHT2JqZWN0IGRvZXMKCSAgdGhhdCBmb3IgdXMgYXV0b21hdGljYWxseS4KCjIwMDYtMDctMjUgMTU6MDc6NTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IC5oIGFkZGl0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IC5oIGFkZGl0aW9uCgoyMDA2LTA3LTI1IDEzOjA2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBNb3ZlIHRoZSBXaW4zMiB2ZXJzaW9uIGZyb20gZ3N0LXBsdWdpbnMtZ29vZC9nc3QvYXZpL2F2aWRlbXV4LmMgdG8gaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgTW92ZSB0aGUgV2luMzIgdmVyc2lvbiBmcm9tIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L2F2aS9hdmlkZW11eC5jIHRvCgkgIGhlcmUuCgoyMDA2LTA3LTI0IDE2OjMzOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQWxsb3cgbW9yZSB0aGFuIG9uZSBHU1RfVEFHX0lNQUdFIHBlciB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIEFsbG93IG1vcmUgdGhhbiBvbmUgR1NUX1RBR19JTUFHRSBwZXIgdGFnbGlzdC4KCjIwMDYtMDctMjQgMDc6NDA6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogdXBkYXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdXBkYXRlIGRvY3MKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIGxvZyByZWN1cnJpbmcgZXZlbnRzIGF0IExPRyBsZXZlbAoJICBhZGQgbW9yZSBkZWJ1ZyBmb3Igd2hlbiB0aGUgZmQgZ2V0cyBzZXQKCjIwMDYtMDctMjQgMDc6Mzc6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICByZW1vdmUgLS1lbmFibGUtZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIC0tZW5hYmxlLWRvY3MKCjIwMDYtMDctMjMgMDk6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBidWcgcmVmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIGJ1ZyByZWZlcmVuY2UKCjIwMDYtMDctMjEgMTg6NTI6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYXJzZS5jOiBBbHNvIHJlbW92ZSByZWVudHJhbmNlIGNoZWNrcyBpZiBmbGV4IGlzIE1UIHNhdmUgKCMzNDgxNzkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIEFsc28gcmVtb3ZlIHJlZW50cmFuY2UgY2hlY2tzIGlmIGZsZXggaXMgTVQgc2F2ZSAoIzM0ODE3OSkKCSAgRml4IG15IGVtcHR5IENoYW5nZUxvZyBlbnRyeSBiZWxvdwoKMjAwNi0wNy0yMSAxNjowMTozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQXR0ZW1wdCB0byBwYWNpZnkgYnVpbGRib3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEF0dGVtcHQgdG8gcGFjaWZ5IGJ1aWxkYm90LgoKMjAwNi0wNy0yMSAxNTo0ODowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0gKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBpbmNsdWRlX0hFQURFUlMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtCgkgIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAaW5jbHVkZV9IRUFERVJTKQoJICAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQF9sYV9TT1VSQ0VTKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6IEFkZCBzb21lIG5ldyBoeXBlIHRlc3RpbmcKCSAgZnVuY3Rpb25zLCB0aHVzIHByb3ZpbmcgSSBhbSBzdGlsbCBhIEdTdHJlYW1lciBoYXhvci4gT0sgSSB3cm90ZQoJICB0aGVtIGEgbG9uZyB0aW1lIGFnbywgYnV0IGFueXdheXMuCgoyMDA2LTA3LTIxIDEzOjExOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6ICogY29uZmlndXJlLmFjOiAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgoyMDA2LTA3LTIxIDEwOjQwOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhcnNlLmM6IFByb3RlY3QgcmVjdXJzaXZlIGNhbGxzIHRvIF9wYXJzZSB3aXRoIGEgcmVjdXJzaXZlIG11dGV4IGFuZCBidXN5IGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIFByb3RlY3QgcmVjdXJzaXZlIGNhbGxzIHRvIF9wYXJzZSB3aXRoIGEgcmVjdXJzaXZlIG11dGV4CgkgIGFuZCBidXN5IGZsYWcuCgoyMDA2LTA3LTIxIDEwOjM4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBGaXggbGVhayBpbiB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrIGluIHRlc3QuCgoyMDA2LTA3LTIwIDIwOjAyOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFyc2UuYzogRG8gbm90IGhhbmdlIG9uIHJlY3Vyc2l2ZSB1YXNnZSBvZiBnc3RfcGFyc2VfbGF1bmNoKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgRG8gbm90IGhhbmdlIG9uIHJlY3Vyc2l2ZSB1YXNnZSBvZiBnc3RfcGFyc2VfbGF1bmNoKCkKCjIwMDYtMDctMjAgMTY6MTA6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBZGQgc29tZSBtb3JlIGRvY3MsIGNvbW1lbnRzIGFuZCBGSVhNRSAwLjExcyBoZXJlIGFuZCB0aGVyZSBhbmQgIGFsc28gZml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEFkZCBzb21lIG1vcmUgZG9jcywgY29tbWVudHMgYW5kIEZJWE1FIDAuMTFzIGhlcmUgYW5kIHRoZXJlCgkgIGFuZCAgYWxzbyBmaXggc29tZSB0eXBvcy4KCjIwMDYtMDctMjAgMTA6NTA6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBDb252ZXJ0IHRhYnMgdG8gc3BhY2VzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIENvbnZlcnQgdGFicyB0byBzcGFjZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMDYtMDctMjAgMTA6MjU6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiB0aGUgdGVzdF9idWZmZXIgdGVzdCBmYWlscyBhdCBsaW5lIDE0MCBvbiBwcGM2NCBhdCB0aGUgZm9sbG93aW5nIGNoZWNrOiAiR1NUX0JVRkZFUl9JTl9DQVBTIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIHRoZSB0ZXN0X2J1ZmZlciB0ZXN0IGZhaWxzIGF0IGxpbmUgMTQwIG9uIHBwYzY0IGF0IHRoZSBmb2xsb3dpbmcKCSAgY2hlY2s6CgkgIGZhaWxfdW5sZXNzIChHU1RfQlVGRkVSX0ZMQUdfSVNfU0VUIChuZXdidWZmZXIsIEdTVF9CVUZGRVJfRkxBR19JTl9DQVBTKSwKCSAgIkdTVF9CVUZGRVJfSU5fQ0FQUyBmbGFnIHNob3VsZCBoYXZlIGJlZW4gY29waWVkICEiKTsKCSAgU2VlIGJ1ZyAjMzQ4MTE0IGZvciBtb3JlIGRldGFpbHMuCgoyMDA2LTA3LTE5IDEyOjQwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IHR5cG9zICgjMzQ4MDAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwb3MgKCMzNDgwMDApLgoKMjAwNi0wNy0xOCAyMDozODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6IEZpeCB3cm9uZyBsaW5rcyAoIzM0NzkyNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIEZpeCB3cm9uZyBsaW5rcyAoIzM0NzkyNykuCgoyMDA2LTA3LTE4IDE5OjAxOjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtYWtlIC0tZGlzYWJsZS1pbmRleCB3b3JrICgjMzQyNTY0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgbWFrZSAtLWRpc2FibGUtaW5kZXggd29yayAoIzM0MjU2NCkKCjIwMDYtMDctMTggMDk6NDI6MzEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogVGhlIGF0dGFjaGVkIHBhdGNoIGFkZHMgdHdvIG1pc3NpbmcgZGVmaW5lcyB0byBnc3R0cmFjZS5oIHdoZW4gdHJhY2luZyBpcyBkaXNhYmxlZC4gIEl0IGFsc28gY29ycmVjdHMgb25lIGV4aXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0dHJhY2UuaDoKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIGFkZHMgdHdvIG1pc3NpbmcgZGVmaW5lcyB0byBnc3R0cmFjZS5oIHdoZW4gdHJhY2luZwoJICBpcyBkaXNhYmxlZC4gIEl0IGFsc28gY29ycmVjdHMgb25lIGV4aXN0aW5nIGRlZmluZS4KCSAgRml4ZXMgIzM0Nzc1Ni4KCjIwMDYtMDctMTcgMTc6NDA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgdHdvIGZ1bmN0aW9ucyB0byBjaGVjayBhbmQgY2hhbmdlIHRoZSBTSUdTRUdWIGJlaGF2aW91ciB3aGVuIGxvYWRpbmcgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChnc3Rfc2VndHJhcF9pc19lbmFibGVkKSwgKGdzdF9zZWd0cmFwX3NldF9lbmFibGVkKToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9yZXN0b3JlKToKCSAgQWRkIHR3byBmdW5jdGlvbnMgdG8gY2hlY2sgYW5kIGNoYW5nZSB0aGUgU0lHU0VHViBiZWhhdmlvdXIKCSAgd2hlbiBsb2FkaW5nIHBsdWdpbnMuCgkgIERvbid0IG1lc3Mgd2l0aCB0aGUgU0lHU0VHViBoYW5kbGVyIHdoZW4gd2Ugd2VyZSB0b2xkIG5vdCB0by4KCSAgRml4ZXMgIzM0Nzc5NC4KCSAgQVBJOiBnc3Rfc2VndHJhcF9pc19lbmFibGVkCgkgIEFQSTogZ3N0X3NlZ3RyYXBfc2V0X2VuYWJsZWQKCjIwMDYtMDctMTQgMTY6NDI6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZXZlcnQgZml4IGZvciByZWdyZXNzaW9uIGluICMzNDc0MDggYWZ0ZXIgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZXZlcnQgZml4IGZvciByZWdyZXNzaW9uIGluICMzNDc0MDggYWZ0ZXIgcmVsZWFzZS4KCjIwMDYtMDctMTQgMTY6MjA6MTggKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogRnJlZSBpdGVyYXRvciB3aGVuIGRvbmUgKCMzNDczMTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBjb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspOgoJICBGcmVlIGl0ZXJhdG9yIHdoZW4gZG9uZSAoIzM0NzMxMSkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBbmQgYWRkIGEgdGVzdCBjYXNlIGZvciB0aGlzLgoKMjAwNi0wNy0xNCAxNTo1Mjo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgbmFubyBiYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgbmFubyBiYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC45ID09PQoKMjAwNi0wNy0xNCAxNTo1MDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjksICJPbiB0aGUgcm9hZCBhZ2FpbiIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMTMgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuOSwgIk9uIHRoZSByb2FkIGFnYWluIgoKMjAwNi0wNy0xMyAxOTo0NzoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDctMTMgMTU6NTE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZXZlcnQgcHVsbC0wIGZpeCBmb3IgcmVsZWFzZS4gRGlzYWJsZSBjaGVjay4gRml4ZXMgIzM0NzQwOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZXZlcnQgcHVsbC0wIGZpeCBmb3IgcmVsZWFzZS4gRGlzYWJsZSBjaGVjay4gRml4ZXMgIzM0NzQwOC4KCjIwMDYtMDctMTMgMTQ6MDI6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXhlcyAjMzQ3MzM3OiBmYWlsdXJlIHRvIGRlc2VyaWFsaXplIGV2ZW50IHBhY2tldHMgd2l0aCBlbXB0eSBwYXlsb2FkIChvbmx5IGV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8xXzApOgoJICBGaXhlcyAjMzQ3MzM3OiBmYWlsdXJlIHRvIGRlc2VyaWFsaXplIGV2ZW50IHBhY2tldHMgd2l0aAoJICBlbXB0eSBwYXlsb2FkIChvbmx5IGV2ZW50IHR5cGUpCgoyMDA2LTA3LTEzIDEzOjU3OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogZG8gbm90IGluc3RhbGwgYSAuYyBmaWxlIGluIHRoZSBoZWFkZXIgZGlyZWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgZG8gbm90IGluc3RhbGwgYSAuYyBmaWxlIGluIHRoZSBoZWFkZXIgZGlyZWN0b3J5CgoyMDA2LTA3LTEzIDEwOjQ3OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEdob3N0UGFkIG5vIGxvbmdlciBpbXBsaWNpdGVseSB1c2UgdGhlIHBhZHRlbXBsYXRlcyBvZiB0aGUgdGFyZ2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpOgoJICBHaG9zdFBhZCBubyBsb25nZXIgaW1wbGljaXRlbHkgdXNlIHRoZSBwYWR0ZW1wbGF0ZXMgb2YgdGhlIHRhcmdldHMuCgkgIEZpeGVzICMzNDczODQKCjIwMDYtMDctMTEgMjI6NTU6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA3LTExIDIwOjQ0OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgIzM0MTAyOSBmaXhlZCBieSBiaWxib2VkJ3MgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyAjMzQxMDI5IGZpeGVkIGJ5IGJpbGJvZWQncyBwcmV2aW91cyBjb21taXQKCjIwMDYtMDctMTEgMjA6MTQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTWFrZSBHc3RWYWx1ZUFycmF5IGNvbXBhcmlzb24gYmUgb3JkZXIgZGVwZW5kZW50IGFzIGRlc2lnbmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfYXJyYXkpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBHc3RWYWx1ZUFycmF5IGNvbXBhcmlzb24gYmUgb3JkZXIgZGVwZW5kZW50IGFzIGRlc2lnbmVkLgoJICBBZGQgY2hlY2tzIGZvciB2YWx1ZSBsaXN0cyBhbmQgdmFsdWUgYXJyYXkgY29tcGFyaXNvbnMuCgkgIEZpeGVzICMzNDcyMjEKCjIwMDYtMDctMTEgMTY6MjA6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IChkZSlhY3RpdmF0ZSBzcmMgcGFkcyBiZWZvcmUgY2FsbGluZyBzdGF0ZV9jaGFuZ2Ugb24gdGhlIGNoaWxkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWN0aXZhdGVfcGFkcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9iaW5fc3JjX3BhZHNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIChkZSlhY3RpdmF0ZSBzcmMgcGFkcyBiZWZvcmUgY2FsbGluZyBzdGF0ZV9jaGFuZ2Ugb24gdGhlIGNoaWxkcy4KCSAgVGhpcyBpcyB0byBhdm9pZCB0aGUgY2FzZSB3aGVyZSBhIHNyYyBnaG9zdHBhZCBpcyBibG9ja2VkIChob2xkaW5nIHRoZQoJICBzdHJlYW0gbG9jayksIHdoaWNoIHdvdWxkIGJsb2NrIHRoZSBkZWFjdGl2YXRpb24gb2YgdGhlIGdob3N0cGFkJ3MKCSAgdGFyZ2V0IHBhZC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fcXVlcnlfdHlwZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnkpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2dldF9pbnRlcm5hbCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIEdob3N0UGFkcyBub3cgY3JlYXRlIHRoZWlyIGludGVybmFsIEdzdFByb3h5UGFkIGF0IGNyZWF0aW9uIChhbmQgbm90CgkgIHdoZW4gdGhleSdyZSBsaW5rZWQsIGFzIGl0IHdhcyBiZWluZyBkb25lIHByZXZpb3VzbHkpLgoJICBUaGUgaW50ZXJuYWwgYW5kIHRhcmdldCBwYWRzIGFyZSBsaW5rZWQgc3RyYWlnaHQgYXdheS4KCSAgVGhlIGRhdGEgd2lsbCBhbHNvIHRyYXZlbCB0aHJvdWdoIHRoZSBvdGhlciBwYWQgaW4gb3JkZXIgdG8gbWFrZQoJICBwYWQgYmxvY2tpbmcgYW5kIHByb2JlcyBub24taGFja2lzaCAodGhlIHByb2JlL2Jsb2NrIG5vdyByZWFsbHkgaGFwcGVucwoJICBvbiB0aGUgR2hvc3RQYWQgYW5kIG5vdCBvbiB0aGUgdGFyZ2V0KS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFJlbW92ZSBwcmV2aW91cyBnaG9zdHBhZCBjcnVmdC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgUmVtb3ZlIHByZXZpb3VzIGdob3N0IHBhZCBjcnVmdC4KCSAgQWRkZWQgbW9yZSBkZXRhaWxlZCBkZWJ1ZyBzdGF0ZW1lbnRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGhlIHRlc3RzdWl0ZSBmb3IgcmVmY291bnRpbmcgY2hhbmdlcy4KCSAgVGhlIGNvbW1lbnRzIGFib3V0IHdobyBoYXMgcmVmZXJlbmNlcyB3ZXJlIGNvcnJlY3QsIGJ1dCB0aGUgcmVmY291bnQKCSAgYmVpbmcgY2hlY2tlZCB3YXNuJ3QgdGhlIHNhbWUgKCE/ISkuCgoyMDA2LTA3LTEwIDE5OjM1OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGRvY3MgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYWRkIGRvY3MgdG8gZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIE1vcmUgZG9jcyBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhZGQgZG9jcyB0byBndGstZG9jLgoKMjAwNi0wNy0xMCAxODoyNzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4IGJ1aWxkIHdoZW4gZGlzYWJsaW5nIHRyYWNpbmcgKGZpeGVzICMzNDQwMTYpLiBBbHNvIHN0YXJ0IHRvIGRvY3VtZW50IHRoZSBkZWZpbmVzIHRoYXQgZGlzYWJsZSB0aGUgc3ViLXN5c3RlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBGaXggYnVpbGQgd2hlbiBkaXNhYmxpbmcgdHJhY2luZyAoZml4ZXMgIzM0NDAxNikuIEFsc28gc3RhcnQgdG8gZG9jdW1lbnQKCSAgdGhlIGRlZmluZXMgdGhhdCBkaXNhYmxlIHRoZSBzdWItc3lzdGVtcy4KCjIwMDYtMDctMTAgMDk6NDI6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IGxldCdzIG1ha2UgdmFsZ3JpbmQgaGFwcHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIGxldCdzIG1ha2UgdmFsZ3JpbmQgaGFwcHkuLi4KCjIwMDYtMDctMDkgMTY6NTY6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBCZXR0ZXIgcGFkIGFjdGl2YXRpb24gY29kZTogUmVzZXQgdGhlIGNvbGxlY3QgdmFsdWUgdG9vIG9uIHJlc3luYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgQmV0dGVyIHBhZCBhY3RpdmF0aW9uIGNvZGU6IFJlc2V0IHRoZSBjb2xsZWN0IHZhbHVlIHRvbyBvbiByZXN5bmMuCgkgIEFkZCBzb21lIGNvbW1lbnRzLgoKMjAwNi0wNy0wOSAxMzoyNjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIHNvbWUgbW9yZSBtYWNyb3Mgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKToKCSAgVXNlIHNvbWUgbW9yZSBtYWNyb3Mgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuCgkgIEFsbG93IHBhZCBtb2RlIHN3aXRjaGluZyBpbnN0ZWFkIG9mIGFzc2VydGluZy4gV2hlbiBhIHBhZAoJICBpcyBhY3RpdmF0ZWQgaW4gb25lIG1vZGUgYW5kIHdlIGFjdGl2YXRlIGl0IGluIGFub3RoZXIsCgkgIGRlYWN0aXZhdGUgaXQgZmlyc3QgYmVmb3JlIGFjdGl2YXRpbmcgaXQgaW4gYSBkaWZmZXJlbnQgbW9kZS4KCSAgRml4ZXMgIzMyOTE5OC4KCjIwMDYtMDctMDggMTM6MjI6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYyAobWFpbik6IEhhbmRsZSBlcnIgPT0gTlVMTC4gZ3N0L2dzdC5jIChpbml0X3Bvc3QsIGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmMgKG1haW4pOiBIYW5kbGUgZXJyID09IE5VTEwuCgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QsIGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KQoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZykKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpOiBSZWR1Y2UgI2lmZGVmIHJhdG5lc3QgYnkKCSAgZmFjdG9yaW5nIG91dCB0aGUgcmVnaXN0cnkgc2Nhbm5pbmcgaW50byBzZXBhcmF0ZSBmdW5jdGlvbnMuIERvbid0CgkgIGZvcmsgZm9yIHRoZSByZXNjYW4gaXMgR1NUX1JFR0lTVFJZX0ZPUks9bm87IHVzZWZ1bCBpbiBkZWJ1Z2dpbmcuCgkgIEJldHRlciBlbnZpcm9ubWVudCB2YXIgbmFtZS9pbnRlcmZhY2Ugc3VnZ2VzdGlvbnMgYWNjZXB0ZWQuCgoyMDA2LTA3LTA3IDE3OjE2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBSYW5kb20gbWljcm8tb3B0aW1pc2F0aW9uOiBkb24ndCB1c2UgYSBoYXNoIHRhYmxlIHdpdGggc3RyaW5ncyBhcyBrZXlzIGFuZCB0aGUgdXN1YWwgc3RyZHVwL3N0cmNtcCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWVfZGVmYXVsdCksCgkgIChnc3Rfb2JqZWN0X3NldF9uYW1lKToKCSAgUmFuZG9tIG1pY3JvLW9wdGltaXNhdGlvbjogZG9uJ3QgdXNlIGEgaGFzaCB0YWJsZQoJICB3aXRoIHN0cmluZ3MgYXMga2V5cyBhbmQgdGhlIHVzdWFsIHN0cmR1cC9zdHJjbXAKCSAgaW52b2x2ZWQsIGJ1dCByYXRoZXIganVzdCB1c2UgdGhlIEdRdWFyayBvZiB0aGUKCSAgdHlwZSBuYW1lIGFzIGtleSwgc2luY2UgaXQgbmVlZHMgdG8gYmUgbG9va2VkIHVwCgkgIGFueXdheSB0byBnZXQgdGhlIHR5cGUgbmFtZSBzdHJpbmcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdmFyaW91cyBsZWFrcy4KCjIwMDYtMDctMDcgMTU6NDI6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IENhbid0IHVzZSBHUE9JTlRFUl9UT19JTlQgYW5kIEdJTlRfVE9fUE9JTlRFUiB3aXRoIEdUeXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoY29tcGFyZV9pbnRlcmZhY2UpLCAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgQ2FuJ3QgdXNlIEdQT0lOVEVSX1RPX0lOVCBhbmQgR0lOVF9UT19QT0lOVEVSIHdpdGggR1R5cGVzLgoJICBHVHlwZXMgYXJlIGd1bG9uZ3MgYW5kIHRodXMgdGhlIHRvcCA0IGJ5dGVzIG1pZ2h0IGJlIGN1dAoJICBvZmYgb24gc29tZSBwbGF0Zm9ybXMgd2hlbiBkb2luZyBHUE9JTlRFUl9UT19JTlQsIGxlYWRpbmcKCSAgdG8gaW52YWxpZCBHVHlwZXMgYW5kIGJhZCB0aGluZ3MgaGFwcGVuaW5nLgoJICBBbHNvIGFkZCBhIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgdHlwZSBwYXNzZWQgaW4gaXMgcmVhbGx5CgkgIGFuIGludGVyZmFjZSB0eXBlLgoKMjAwNi0wNy0wNyAwOTo0NzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIC5jdnNpZ25vcmU6IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAuY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDYtMDctMDcgMDk6MDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlIGdzdC1lbGVtZW50LWNoZWNrLSRWRVJTSU9OLm00IGNhbGwgZ3N0LWluc3BlY3QtJFZFUlNJT04gaW5zdGVhZCBvZiB0aGUgdW52ZXJzaW9uZWQgZ3N0LWluc3BlY3QgKCMzMjQxNzYsICMxNjg2NTkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkgICogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkgIE1ha2UgZ3N0LWVsZW1lbnQtY2hlY2stJFZFUlNJT04ubTQgY2FsbCBnc3QtaW5zcGVjdC0kVkVSU0lPTgoJICBpbnN0ZWFkIG9mIHRoZSB1bnZlcnNpb25lZCBnc3QtaW5zcGVjdCAoIzMyNDE3NiwgIzE2ODY1OSkuCgoyMDA2LTA3LTA2IDE2OjE3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogVXNlIGEgdmFsaWQgaW50IGZvciB0aGUgX01FU1NBR0VfQU5ZIGVudW0gdmFsdWUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFVzZSBhIHZhbGlkIGludCBmb3IgdGhlIF9NRVNTQUdFX0FOWSBlbnVtIHZhbHVlIHRvIGF2b2lkIGNvbXBpbGVyCgkgIHdhcm5pbmdzLgoKMjAwNi0wNy0wNiAxNTo0NjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgZG9jcy4gYmxvY2tzaXplID09IDAgbm93IG1lYW5zIHRoZSBkZWZhdWx0IGJsb2Nrc2l6ZSB3aGVuIHdvcmtpbmcgaW4gcHVzaCBiYXNlZCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY193YWl0KSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVXBkYXRlIGRvY3MuCgkgIGJsb2Nrc2l6ZSA9PSAwIG5vdyBtZWFucyB0aGUgZGVmYXVsdCBibG9ja3NpemUgd2hlbiB3b3JraW5nIGluIHB1c2gKCSAgYmFzZWQgbW9kZS4KCSAgUmVtb3ZlIHNvbWUgcG9pbnRsZXNzIGFzc2VydHMgaW4gX3dhaXQgZnVuY3Rpb24uCgkgIEZpeCBvZmZzZXQvbGVuZ3RoIGNhbGN1bGF0aW9ucyBhbmQgRU9TIGhhbmRsaW5nLiBXZSBjYW4gbm93IHB1bGwgMAoJICBieXRlcyBhcyB3ZWxsLCB3aGljaCBpcyBhbGxvd2VkLgoJICB1c2UgX2NoZWNrX2dldF9yYW5nZSgpIHRvIGRlY2lkZSBpZiB3ZSBjYW4gb3BlcmF0ZSBpbiBfcHVsbCBiYXNlZAoJICBtb2RlLgoJICBGaXggcmVmY291bnRpbmcgbGVhayB3aGVuIGNoZWNrX2dldF9yYW5nZSBmdW5jdGlvbiB3YXMgbm90CgkgIGltcGxlbWVudGVkLgoJICBBUEkgR3N0QmFzZVNyYzo6YmxvY2tzaXplIHJhbmdlIGNhbiBiZSAwIHRvbyBub3cgKGRlZmF1bHQpCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgX2dldF9yYW5nZSgpIGJlaGF2aW91ci4KCjIwMDYtMDctMDYgMTU6MjE6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IExvdHMgb2YgY29tbWVudHMgYW5kIGRvY3MgYWRkZWQgdG8gdGhlIHBhZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTG90cyBvZiBjb21tZW50cyBhbmQgZG9jcyBhZGRlZCB0byB0aGUgcGFkIGZ1bmN0aW9ucy4KCSAgRmxlc2ggb3V0IHRoZSBleHBlY3RlZCBiZWhhdmlvdXIgb2YgdGhlIGdldF9yYW5nZSgpIGZ1bmN0aW9ucy4KCjIwMDYtMDctMDYgMDk6MjE6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW1lcmF0b3IgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtZXJhdG9yIGxpc3QuCgoyMDA2LTA3LTA1IDE5OjU2OjA4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJzZ3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDctMDUgMTg6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogQWRkIHNvbWUgbW9yZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoX3NyY19jaGVja19nZXRfcmFuZ2UpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgoyMDA2LTA3LTA1IDE4OjE4OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgdXBkYXRlIHRoZSBvZmZzZXQgc28gdGhhdCB3ZSByZWFkIHNlcXVlbnRpYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgdXBkYXRlIHRoZSBvZmZzZXQgc28gdGhhdCB3ZQoJICByZWFkIHNlcXVlbnRpYWxseS4KCjIwMDYtMDctMDUgMTg6MTc6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQXZvaWQgc3RyZHVwLiAod2lsbCBoYXBwZW4gaW4gbGlieG1sLCBidXQgaGV5ISkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyk6CgkgIEF2b2lkIHN0cmR1cC4gKHdpbGwgaGFwcGVuIGluIGxpYnhtbCwgYnV0IGhleSEpCgkgICogZ3N0L2dzdHVyaS5jOgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgoyMDA2LTA3LTA1IDE3OjA5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTm8gcG9pbnQgaW4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHN1YmJ1ZmZlciA+IDAsIHRoZSBjb2RlIGhhbmRsZXMgaXQgY29ycmVjbHR5IGFzIGRlbW9uc3RyYXRlZCBieSB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2NvcHkpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnVmZmVyX3N1aXRlKToKCSAgTm8gcG9pbnQgaW4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHN1YmJ1ZmZlciA+IDAsIHRoZQoJICBjb2RlIGhhbmRsZXMgaXQgY29ycmVjbHR5IGFzIGRlbW9uc3RyYXRlZCBieSB1bml0IHRlc3QuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgemVybyBzaXplZCBfbmV3X2FuZF9hbGxvYyBhbmQKCSAgX2NvcHkuIEZpeGVzICMzNDY2NjMuCgoyMDA2LTA3LTA1IDA4OjE2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHdlIHBhc3MgdG8gdHJhbnNmb3JtX2lwIGhhcyBhIHJlZmNvdW50IG9mIDEgYW5kIHRodXMgaXMgd3JpdGFiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgTWFrZSBzdXJlIHRoZSBidWZmZXIgd2UgcGFzcyB0byB0cmFuc2Zvcm1faXAgaGFzIGEgcmVmY291bnQgb2YKCSAgMSBhbmQgdGh1cyBpcyB3cml0YWJsZS4gRml4ZXMgIzM0MzE5NgoKMjAwNi0wNy0wNCAwOTowMTo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuKjogQWRkICJzZXF1ZW50aWFsIiBwcm9wZXJ0eSwgb2ZmIGJ5IGRlZmF1bHQsIHRvIHVzZSBtYWR2aXNlIGFuZCBoaW50IHRvIHRoZSBrZXJuZWwgdGhhdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfaW5pdCksIChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBBZGQgInNlcXVlbnRpYWwiIHByb3BlcnR5LCBvZmYgYnkgZGVmYXVsdCwgdG8gdXNlIG1hZHZpc2UgYW5kIGhpbnQKCSAgdG8gdGhlIGtlcm5lbCB0aGF0IHNlcXVlbnRpYWwgYWNjZXNzIGlzIGRlc2lyZWQuCgkgIFRvdWNoIGFsbCByZXRyaWV2ZWQgcGFnZXMgYnkgZGVmYXVsdCB0byBlbnN1cmUgdGhleSBhcmUgcHVsbGVkCgkgIGludG8gbWVtb3J5LiAoQ2xvc2VzICMzNDU3MjApCgoyMDA2LTA3LTAzIDE3OjQ0OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCjIwMDYtMDctMDMgMTY6NTc6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgR1NsaWNlIHdoZW4gdGhlIGdsaWIgd2UgYnVpbGQgYWdhaW5zdCBpcyA+PSAyLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19uZXdfZW1wdHkpLCAoX2dzdF9jYXBzX2ZyZWUpLAoJICAoZ3N0X2NhcHNfdW5yZWYpLCAoZ3N0X3N0YXRpY19jYXBzX2dldCksCgkgIChnc3RfY2Fwc19hcHBlbmRfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgVXNlIEdTbGljZSB3aGVuIHRoZSBnbGliIHdlIGJ1aWxkIGFnYWluc3QgaXMgPj0gMi4xMAoKMjAwNi0wNy0wMyAxNjo0NjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIGNsZWFudXAgaW4gcGFkIGFjdGl2YXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBTbWFsbCBjbGVhbnVwIGluIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgoyMDA2LTA3LTAzIDE0OjE0OjQ4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIFRoZSBhdHRhY2hlZCBwYXRjaCB3aWxsIG1ha2UgdGhlIGluY2x1c2lvbiBvZiBnZXR0ZXh0LmggdW5jb25kaXRpb25hbCBpbiBnc3QvZ3N0LWkxOG4tYXBwLmggYW5kIGdzdC9nc3QtaTE4bi1saWIuaCwgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9zaWduYWxfaW5mbyk6CgkgIFRoZSBhdHRhY2hlZCBwYXRjaCB3aWxsIG1ha2UgdGhlIGluY2x1c2lvbiBvZiBnZXR0ZXh0LmggdW5jb25kaXRpb25hbCBpbgoJICBnc3QvZ3N0LWkxOG4tYXBwLmggYW5kIGdzdC9nc3QtaTE4bi1saWIuaCwgYW5kIGl0IHdpbGwgcmVtb3ZlIHRoZSBpbmNsdXNpb24gb2YKCSAgbGliaW50bC5oIGluIHRvb2xzL2dzdC1pbnNwZWN0LmMuCgkgIFRoaXMgYWxsb3dzIHVzZSBvZiAtLWRpc2FibGUtbmxzIGFnYWluIGFuZCBmaXhlcyAjMzQ0NjQyLgoKMjAwNi0wNy0wMyAxMToxMDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGZpeCBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGVhawoKMjAwNi0wNy0wMyAxMDozMDo0OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IHBhZCBibG9ja2luZyBvbiBldmVudHMgYWNjb3JkaW5nIHRvIHBhcnQtYmxvY2sudHh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIEltcGxlbWVudCBwYWQgYmxvY2tpbmcgb24gZXZlbnRzIGFjY29yZGluZyB0byBwYXJ0LWJsb2NrLnR4dC4KCSAgTW9yZSBjb21tZW50cyBvbiBiZWhhdmlvdXIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgU2VuZCBldmVudCB0byBwZWVyIHBhZCBvZiBibG9ja2VkIHBhZCAoZWxzZSBpdCB3aWxsIGJsb2NrKS4KCjIwMDYtMDctMDIgMjM6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogaWYgd2UgZ2V0IHRoZSB3cm9uZyBtZXNzYWdlLCBnaXZlIHVzIHRoZSB0eXBlcyBhcyBzdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKSwKCSAgKGdzdF9jaGVja19ydW5fc3VpdGUpOgoJICBpZiB3ZSBnZXQgdGhlIHdyb25nIG1lc3NhZ2UsIGdpdmUgdXMgdGhlIHR5cGVzIGFzIHN0cmluZwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgRml4IGEgdHJhbnNsYXRhYmxlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgYSB0ZXN0IGZvciB0cnlpbmcgdG8gb3BlbiBhIG5vbi1leGlzdGluZyBmaWxlCgoyMDA2LTA3LTAyIDIyOjQ0OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtYWNyb3MKCjIwMDYtMDctMDIgMjI6Mjg6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBkb3VibGUgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZG91YmxlIHZhcgoKMjAwNi0wNy0wMiAyMjoyNzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBjbGVhbiBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiBtb3JlCgoyMDA2LTA3LTAyIDIyOjIwOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAyMjoxNzozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IGFkZCBhIHRlc3QgZm9yIGFkZGluZyBzZWxmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBhZGRpbmcgc2VsZgoKMjAwNi0wNy0wMiAyMjowNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBhZGQgc29tZSBhc3NlcnRfIGFzIGFsaWFzIGZvciBmYWlsX3VubGVzc18qCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBzb21lIGFzc2VydF8gYXMgYWxpYXMgZm9yIGZhaWxfdW5sZXNzXyoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3VpdGUpOgoJICBpbmNyZWFzZSB0ZXN0IGNvdmVyYWdlCgoyMDA2LTA3LTAyIDIxOjU0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBpbmNsdWRlIGxjb3YubWFrIGZvciBsY292IGNvdmVyYWdlIGdlbmVyYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGluY2x1ZGUgbGNvdi5tYWsgZm9yIGxjb3YgY292ZXJhZ2UgZ2VuZXJhdGlvbgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBhZGQgdG8gQ0xFQU5GSUxFUwoKMjAwNi0wNy0wMiAyMTo1Mjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCjIwMDYtMDctMDIgMTY6Mjc6MTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBtb2FwaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIG1vYXBpbmcKCjIwMDYtMDctMDIgMTQ6Mzk6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBkb24ndCBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIGZvciBnY292LCBkb25lIGZyb20gR1NUX0dDT1Ygbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZG9uJ3Qgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyBmb3IgZ2NvdiwgZG9uZSBmcm9tIEdTVF9HQ09WIG5vdwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjbGVhbiB1cCBnY292IGZpbGVzCgoyMDA2LTA3LTAyIDE0OjM3OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IHJlbW92ZSBnc3RfY2Fwc19zaW1wbGlmeTsgaXQgd2FzIG5vdCBkZWNsYXJlZCBhbmQgbm90IHVzZWQgYW5kIGRlcHJlY2F0ZWQgaW4gMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZW1vdmVfYW5kX2dldF9zdHJ1Y3R1cmUpOgoJICByZW1vdmUgZ3N0X2NhcHNfc2ltcGxpZnk7IGl0IHdhcyBub3QgZGVjbGFyZWQgYW5kIG5vdCB1c2VkCgkgIGFuZCBkZXByZWNhdGVkIGluIDAuOAoKMjAwNi0wNy0wMiAxNDowNTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGRvbid0IHB1dCBlbXB0eSBwYXRocyBvbiBQWVRIT05QQVRICgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9uJ3QgcHV0IGVtcHR5IHBhdGhzIG9uIFBZVEhPTlBBVEgKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgc29tZSBzeW1ib2xzIHRoYXQgYXJlIG5vdCB0aGVyZQoKMjAwNi0wNy0wMiAxMjo1NzoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB1bmJyZWFrIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVuYnJlYWsgdGVzdAoKMjAwNi0wNy0wMiAxMjo1NDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19jb21wYXJlX3N0cnVjdHVyZXMpOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGFkZCBtb3JlIHRlc3RzCgoyMDA2LTA3LTAyIDEyOjUyOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDctMDIgMDk6MDQ6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOiBidWlsZCBkYXRhcHJvdG9jb2wgdGVzdCBieSBsaW5raW5nIHRvIHRoZSBsaWIsIGluc3RlYWQgb2YgY29tcGlsaW5nIHRoZSBzb3VyY2UsIHNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgYnVpbGQgZGF0YXByb3RvY29sIHRlc3QgYnkgbGlua2luZyB0byB0aGUgbGliLCBpbnN0ZWFkIG9mCgkgIGNvbXBpbGluZyB0aGUgc291cmNlLCBzbyB3ZSBnZXQgY292ZXJhZ2UKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChldmVudF9mdW5jKSwgKHNldHVwX2ZpbGVzcmMpLAoJICAoY2xlYW51cF9maWxlc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZpbGVzcmNfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBmaWxlc3JjCgoyMDA2LTA3LTAyIDA4OjI2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAyIDAwOjQwOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAyIDAwOjM5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAwMDozODozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAwMDozMzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZ3N0LWluc3BlY3QgZXZlcnkgZWxlbWVudDsgdGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgYWxzbyBnZXQgY292ZXJhZ2Ugb24gZWxlbWVudCdzIGdldC9zZXQgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdzdC1pbnNwZWN0IGV2ZXJ5IGVsZW1lbnQ7IHRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGFsc28gZ2V0CgkgIGNvdmVyYWdlIG9uIGVsZW1lbnQncyBnZXQvc2V0IGZ1bmN0aW9ucwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMSAyMzoyNjowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgdG8gLU8wIGlmIGdjb3YgaXMgYmVpbmcgdXNlZCBhZGQgR0NPViBMSUJTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyB0byAtTzAgaWYgZ2NvdiBpcyBiZWluZyB1c2VkCgkgIGFkZCBHQ09WIExJQlMKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBhZGQgbWFrZWZpbGUgcnVsZXMgdG8gZ2VuZXJhdGUgZ2NvdiBkYXRhIGFuZCBjbGVhbiB1cAoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSBjb3ZlcmFnZSB0YXJnZXQgdGhhdCBnZW5lcmF0ZXMgYW4gaHRtbCBvdmVydmlldwoJICBvZiBjb3ZlcmFnZSBkYXRhCgoyMDA2LTA3LTAxIDIzOjE5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGZpeCBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcyBidWlsZAoKMjAwNi0wNy0wMSAyMDo1Njo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IHVzZSB0aGUgbmV3IG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChnc3Rfc2lua3Nfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChsaWJzYWJpX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChzdHJlc3Nfc3VpdGUpOgoJICB1c2UgdGhlIG5ldyBtYWNybwoKMjAwNi0wNy0wMSAyMDo1NDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBjcmVhdGUgYSBtYWNybyBhbmQgZnVuY3Rpb24gc28gdGhhdCB0aGUgc2ltcGxlIHVuaXQgdGVzdCBjYXNlIGNhbiBiZSBqdXN0IG9uZSBtYWNybyB0byBjcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19ydW5fc3VpdGUpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNyZWF0ZSBhIG1hY3JvIGFuZCBmdW5jdGlvbiBzbyB0aGF0IHRoZSBzaW1wbGUgdW5pdCB0ZXN0CgkgIGNhc2UgY2FuIGJlIGp1c3Qgb25lIG1hY3JvIHRvIGNyZWF0ZSBtYWluKCkKCjIwMDYtMDYtMzAgMTM6MTc6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBGaXggZGVzZXJpYWxpc2F0aW9uIGZyb20gWE1MLiBTZXQgcGFyZW50IG1hbnVhbGx5IGluc3RlYWQgb2YgdXNpbmcgZ3N0X2Jpbl9hZGQoKSwgc2luY2UgZ3N0X2Jpbl9hZGQoKSB3aWxsIHVubGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfbWFrZV9lbGVtZW50KToKCSAgRml4IGRlc2VyaWFsaXNhdGlvbiBmcm9tIFhNTC4gU2V0IHBhcmVudCBtYW51YWxseQoJICBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9iaW5fYWRkKCksIHNpbmNlIGdzdF9iaW5fYWRkKCkKCSAgd2lsbCB1bmxpbmsgYWxsIHBhZHMgb2YgdGhlIGVsZW1lbnQgYmVpbmcgYWRkZWQuCgkgIEZpeGVzICMzNDE2NjcuCgoyMDA2LTA2LTI4IDE1OjE5OjA4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IG1pc3NpbmcgZ19zdHJkdXAoKSBhbmQgZG91YmxlIGZyZWUgd2hlbiB1c2luZyB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0LmM6IChwcmVwYXJlX2Zvcl9sb2FkX3BsdWdpbl9mdW5jKSwgKHNwbGl0X2FuZF9pdGVyYXRlKToKCSAgRml4IG1pc3NpbmcgZ19zdHJkdXAoKSBhbmQgZG91YmxlIGZyZWUgd2hlbiB1c2luZyB0aGUKCSAgLS1nc3QtcGx1Z2luLWxvYWQgY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0NjA5NykuCgoyMDA2LTA2LTIzIDEzOjE2OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogUHJvbW90ZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGluIGV4YW1wbGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgUHJvbW90ZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGluIGV4YW1wbGUgaW4gZG9jcy4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIFVzZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGhlcmUgdG9vICgjMzQyNTAzKS4KCjIwMDYtMDYtMjMgMTA6MzA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IGJ1ZmZlciBwcm9iZSBleGFtcGxlIGNvbXBpbGF0aW9uIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggYnVmZmVyIHByb2JlIGV4YW1wbGUgY29tcGlsYXRpb24gaW4KCSAgQURNICgjMzQ1NzA4KS4KCjIwMDYtMDYtMjIgMTc6MDk6MTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXZSBuZWVkIHRvIGRlYWN0aXZhdGUgc3JjIHBhZHMgZmlyc3QgYW5kIHRoZW4gc2luayBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFdlIG5lZWQgdG8gZGVhY3RpdmF0ZSBzcmMgcGFkcyBmaXJzdCBhbmQgdGhlbiBzaW5rIHBhZHMuCgkgIFRoZSByZWFzb24gaXMgdGhlIHNyYyBwYWRzIG1pZ2h0IGJlIGJsb2NraW5nIHdoaWxlIGhvbGRpbmcgdGhlIHN0cmVhbWluZwoJICBsb2NrLCBzbyB3ZSBuZWVkIHRvIGRlYWN0aXZhdGUgdGhlbSBmaXJzdCBzbyB0aGF0IGRlYWN0aXZhdGluZyB0aGUgc2luawoJICBwYWRzIGRvZXNuJ3QgYmxvY2sgKHNpbmNlIGl0IHdpbGwgcmVxdWlyZSB0aGUgc3RyZWFtaW5nIGxvY2spLgoKMjAwNi0wNi0yMiAxNToxMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGb3Jnb3QgdG8gcmVtb3ZlIHR3byB1bm5lZWRlZCB1bnJlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZvcmdvdCB0byByZW1vdmUgdHdvIHVubmVlZGVkIHVucmVmcy4KCSAgU2ltcGxpZnkgYSBjaGVjayBfaXNfZXF1YWwgYWxscmVhZHkgY2hlY2tzIHRoZSBvYnZpb3VzIGNhc2UuCgoyMDA2LTA2LTIyIDE0OjA5OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IFNvbWUgZG9jcyBhYm91dCB3aGF0IHBhZF9ibG9jayBzaG91bGQgZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBTb21lIGRvY3MgYWJvdXQgd2hhdCBwYWRfYmxvY2sgc2hvdWxkIGRvLgoKMjAwNi0wNi0yMiAxMzo1MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBjcmFzaGVyIHdoZW4gcGFzc2VkIE5VTEwuIERvYyBjbGFyaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVwbGFjZSk6CgkgIEZpeCBjcmFzaGVyIHdoZW4gcGFzc2VkIE5VTEwuIERvYyBjbGFyaWZpY2F0aW9uLgoJICBPcHRpbWl6ZSBmb3IgdGhlIHRyaXZpYWwgY2FzZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIERvbid0IHVzZSBzaWxseSBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMsIEdTVF9QQURfQ0FQUwoJICBpcyB3aGF0IHdlIG5lZWQgYW5kIGl0IGF2b2lkcyBhIHdob2xlIGxvdCBvZiByZWR1bmRhbnQKCSAgcmVmY291bnQgb3BlcmF0aW9ucy4KCjIwMDYtMDYtMjIgMDg6NTM6NDAgKzAwMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGx5c2F0b3IubGl1LnNlPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCAnRW1iZWRkaW5nIHN0YXRpYyBlbGVtZW50cycgc2VjdGlvbiB0byB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQaGlsaXAgSsOkZ2Vuc3RlZHQgIDxwaGlsaXAgYXQgbHlzYXRvciBsaXUgc2U+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCAnRW1iZWRkaW5nIHN0YXRpYyBlbGVtZW50cycgc2VjdGlvbiB0byB1c2UKCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDICgjMzQ1NjA3KS4KCjIwMDYtMDYtMjEgMTE6MTI6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBBdHRlbXB0IHRvICdmaXgnIHNwdXJpb3VzbHkgZmFpbGluZyB0ZXN0IGNhc2U6IGl0IHNlZW1zIGxpa2UgdGhlIHRpbWVvdXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHRlc3Rfc3RvcF9mcm9tX2FwcCk6CgkgIEF0dGVtcHQgdG8gJ2ZpeCcgc3B1cmlvdXNseSBmYWlsaW5nIHRlc3QgY2FzZTogaXQgc2VlbXMgbGlrZSB0aGUKCSAgdGltZW91dCBvZiBoYWxmIGEgc2Vjb25kIGlzIHNpbXBseSB0b28gc21hbGwgd2hlbiB0aGUgc3lzdGVtIGlzIHVuZGVyCgkgIGxvYWQgb3RoZXJ3aXNlLCBhbmQgdGhlIHRpbWVvdXQgZG9lc24ndCByZWFsbHkgc2VlbSB0byBzZXJ2ZSBhbnkKCSAgcGFydGljdWxhciBwdXJwb3NlIGhlcmUuIEdpdmUgdGhlIHBpcGVsaW5lIGEgZmV3IHNlY29uZHMgdG8gcHJlcm9sbAoJICBmaXJzdCwgYW5kIHRoZW4gZ2l2ZSBpdCBhbm90aGVyIGhhbGYgYSBzZWNvbmQgdG8gZ28gZnJvbSBQQVVTRUQgdG8KCSAgUExBWUlORyBhbmQgbWFyc2hhbCB0aGUgbWVzc2FnZSBpbnRvIHRoZSBtYWluIHRocmVhZC4KCjIwMDYtMDYtMjEgMTA6MTQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2stbS5tOiBEb24ndCBvbmx5IHVzZSB1bnZlcnNpb25lZCB0b29scywgdHJ5IHZlcnNpb25lZCB0b29scyBhcyB3ZWxsICgjMzQ1MDg2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSAgRG9uJ3Qgb25seSB1c2UgdW52ZXJzaW9uZWQgdG9vbHMsIHRyeSB2ZXJzaW9uZWQgdG9vbHMgYXMgd2VsbAoJICAoIzM0NTA4NikuCgoyMDA2LTA2LTIxIDEwOjAxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggc29tZSB0eXBvcywgbWFrZSBkb2NzIG1vcmUgZXhwbGljaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIEZpeCBzb21lIHR5cG9zLCBtYWtlIGRvY3MgbW9yZSBleHBsaWNpdC4KCjIwMDYtMDYtMjAgMDg6NDA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgc29tZSBtb3JlIGdob3N0cGFkIHRlc3RzLCBtYWlubHkgYmxvY2tpbmcgYW5kIHByb2Jlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChibG9ja19jYWxsYmFjayksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIGdob3N0cGFkIHRlc3RzLCBtYWlubHkgYmxvY2tpbmcKCSAgYW5kIHByb2Jlcy4KCjIwMDYtMDYtMTkgMDg6NTY6NDggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBsYXRlc3QgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGF0ZXN0IHVwZGF0ZXMKCjIwMDYtMDYtMTYgMTY6Mjg6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLio6IENoZWNrIGlmIHdlIGNhbiBzZWVrIGluIHRoZSBmaWxlIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgYWx3YXlzIGNhbi4gUG9zdCBhbiBlcnJvciB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIENoZWNrIGlmIHdlIGNhbiBzZWVrIGluIHRoZSBmaWxlIGluc3RlYWQgb2YgYXNzdW1pbmcKCSAgd2UgYWx3YXlzIGNhbi4gUG9zdCBhbiBlcnJvciB3aGVuIHdlIGFyZSBhc2tlZCB0byBzZWVrIGluIGEKCSAgbm9uLXNlZWthYmxlIGZpbGUgKGxpa2UgYSBmaWZvKS4gRml4ZXMgIzM0MzMxMi4KCSAgU29tZSBjbGVhbnVwcy4KCjIwMDYtMDYtMTYgMTQ6MzE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IFVuLWdhcmJsZSAoZm91cmNjKSBiaXQgaW4gZmlsdGVyZWQgY2FwcyBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVuLWdhcmJsZSAoZm91cmNjKSBiaXQgaW4gZmlsdGVyZWQgY2FwcyBzZWN0aW9uLgoKMjAwNi0wNi0xNiAwOTozOTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRG9uJ3QgbGVhayBidXMgcmVmZXJlbmNlIGluIHNhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIERvbid0IGxlYWsgYnVzIHJlZmVyZW5jZSBpbiBzYW1wbGUgY29kZS4KCjIwMDYtMDYtMTYgMDg6MzA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBhdXRvZ2VuLnNoOiBBZGQgZGVmYXVsdCBmb3IgbmV3IC0tZW5hYmxlLXBsdWdpbi1kb2NzIHN3aXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgQWRkIGRlZmF1bHQgZm9yIG5ldyAtLWVuYWJsZS1wbHVnaW4tZG9jcyBzd2l0Y2guCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgbmV3IEdTVF9QTFVHSU5fRE9DUyBtYWNybyB0byBjaGVjayBmb3IgcHl4bWwgZXRjLgoJICBGaXhlcyAjMzQ0MDM5LgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIFVzZSBuZXcgRU5BQkxFX1BMVUdJTl9ET0NTIGNvbmRpdGlvbmFsLgoKMjAwNi0wNi0xNCAxMDozNDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBpdCBjbGVhciB3aXRoIGEgRklYTUUgYW5kIGEgcmVhbCBkZWZpbmUgd2hhdCB0aGUgI2lmIDAgcHJldmlvdXNseSBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIE1ha2UgaXQgY2xlYXIgd2l0aCBhIEZJWE1FIGFuZCBhIHJlYWwgZGVmaW5lIHdoYXQgdGhlICNpZiAwCgkgIHByZXZpb3VzbHkgZGlzYWJsZWQuCgoyMDA2LTA2LTE0IDEwOjMxOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IERvbid0IHJhbmRvbWx5IGFuZCBzaWxlbnRseSByZXNldCBhIHNlZ21lbnQgd2hlbiB0aGUgZm9ybWF0IGNoYW5nZXMgYXMgdGhpcyBpcyBhIGJ1ZyBzb21ld2hlcmUgdXBzdHJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBEb24ndCByYW5kb21seSBhbmQgc2lsZW50bHkgcmVzZXQgYSBzZWdtZW50IHdoZW4gdGhlIGZvcm1hdAoJICBjaGFuZ2VzIGFzIHRoaXMgaXMgYSBidWcgc29tZXdoZXJlIHVwc3RyZWFtLiBGaXhlcyAjMzMwMzc5LgoKMjAwNi0wNi0xNCAwODoyNjo1MyArMDAwMCAgV291dGVyIFBhZXNlbiA8d291dGVyQGthbmdhcm9vdC5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IGNvbnRyb2xsaW5nIG9mIGZsb2F0IHByb3BlcnRpZXMgKCMzNDQ4NDkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBQYWVzZW4gIDx3b3V0ZXIgYXQga2FuZ2Fyb290IG5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIEZpeCBjb250cm9sbGluZyBvZiBmbG9hdCBwcm9wZXJ0aWVzICgjMzQ0ODQ5KS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfY2xhc3NfaW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBhZGQgc29tZSBmbG9hdCBzdHVmZiB0byB1bml0IHRlc3QuCgoyMDA2LTA2LTEzIDE5OjI0OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBnZHAgaW1hZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9pbWFnZXMvZ2RwLWhlYWRlci5zdmc6CgkgIGFkZCBhIGdkcCBpbWFnZQoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ2RwLWhlYWRlci5wbmc6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBhZGQgaXQgdG8gdGhlIEFQSSBkb2NzCgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIGZpeCB0eXBvCgoyMDA2LTA2LTEzIDE2OjQxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBJZiB0aGUgZm9yaygpJ2VkIGNoaWxkIHByb2Nlc3MgY2FuJ3Qgd3JpdGUgdGhlIHVwZGF0ZWQgcmVnaXN0cnkgY2FjaGUgZmlsZSB0byBkaXNrIGZvciBzb21lIHJlYXNvbiwgbWFrZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksIChpbml0X3Bvc3QpOgoJICBJZiB0aGUgZm9yaygpJ2VkIGNoaWxkIHByb2Nlc3MgY2FuJ3Qgd3JpdGUgdGhlIHVwZGF0ZWQgcmVnaXN0cnkgY2FjaGUKCSAgZmlsZSB0byBkaXNrIGZvciBzb21lIHJlYXNvbiwgbWFrZSBpdCBleGl0IHdpdGggYSBmYWlsdXJlIGV4aXQgY29kZSwKCSAgc28gdGhhdCB0aGUgcGFyZW50IGNhbiB0aGVuIHJlLXNjYW4gdGhlIHBsdWdpbnMgaXRzZWxmIGFuZCB1cGRhdGUgdGhlCgkgIHJlZ2lzdHJ5IHN0cnVjdHVyZXMgaW4gbWVtb3J5IGFuZCB3b3JrIHdpdGggdGhhdCAocmF0aGVyIHRoYW4gZmFpbGluZwoJICB3aGVuIGNyZWF0aW5nIGVsZW1lbnRzIGJlY2F1c2Ugc2VlbWluZ2x5IG5vIHBsdWdpbnMgYXJlIGF2YWlsYWJsZSkuCgkgIFJlZmFjdG9yIHJlZ2lzdHJ5IHNjYW5uaW5nIGNvZGUgaW50byBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgdGhpcyBhbmQKCSAgYWxzbyBzZXBhcmF0ZSBmb3JrKCkgYW5kIG5vbi1mb3JrKCkgY29kZSBwYXRocy4gRml4ZXMgIzM0NDc0OC4KCjIwMDYtMDYtMTMgMTY6MjQ6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IHdyb25nIFBsdWdpbkRlc2MuIEZpeGVzICMzNDQ3NTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggd3JvbmcgUGx1Z2luRGVzYy4gRml4ZXMgIzM0NDc1NS4KCjIwMDYtMDYtMTMgMTM6MzA6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRml4IHNpbGx5IGJ1ZyB0aGF0IHByZXZlbnRlZCB1cyBmcm9tIGNyZWF0aW5nIH4vLmdzdHJlYW1lci0wLjEwIGFuZCB3cml0aW5nIHRoZSByZWdpc3RyeSBpbiBvbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgRml4IHNpbGx5IGJ1ZyB0aGF0IHByZXZlbnRlZCB1cyBmcm9tIGNyZWF0aW5nCgkgIH4vLmdzdHJlYW1lci0wLjEwIGFuZCB3cml0aW5nIHRoZSByZWdpc3RyeSBpbiBvbmUKCSAgZ28gKHRoZSBmaXJzdCBjYWxsIHRvIGdfbWtzdGVtcCgpIHdvdWxkIG92ZXJ3cml0ZSB0aGUKCSAgcGxhY2Vob2xkZXIgaW4gdGhlIHRlbXBsYXRlIHN0cmluZywgc28gdGhlIHNlY29uZCBjYWxsCgkgIHRvIGdfbWtzdGVtcCgpIGFmdGVyIGNyZWF0aW5nIHRoZSBtaXNzaW5nIGRpcmVjdG9yeQoJICB3b3VsZCB0aGVuIGVycm9yIG91dCB3aXRoICdpbnZhbGlkIGFyZ3VtZW50JykuCgoyMDA2LTA2LTEzIDExOjE3OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBGcmVlIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgRnJlZSBzdHJpbmcuCgoyMDA2LTA2LTEzIDA4OjIwOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBHTGliIDIuNiBjb21wYXRpYmlsaXR5IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICByZW1vdmUgR0xpYiAyLjYgY29tcGF0aWJpbGl0eSBjb2RlCgoyMDA2LTA2LTEyIDE2OjUwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggYnVpbGQgd2l0aCAnbWFrZSAtaiBOJyBldmVuIG1vcmUgKCMzNDAwMTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZCB3aXRoICdtYWtlIC1qIE4nIGV2ZW4gbW9yZSAoIzM0MDAxNikuCgoyMDA2LTA2LTEyIDA5OjM3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2NzLgoKMjAwNi0wNi0xMiAwOToyOTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFVzZSBHX1VOTElLRUxZIHRvIGhlbHAgdGhlIGNvbXBpbGVyIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgIFVzZSBHX1VOTElLRUxZIHRvIGhlbHAgdGhlIGNvbXBpbGVyIGEgYml0LgoKMjAwNi0wNi0xMiAwOToyODozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAc29uaWNwdWxzZS5kZT4KCgkgIGdzdC86IGNvbnN0aWZ5IHF1YXJrIHJlZ2lzdHJhdGlvbiBzdHJpbmdzLiBGaXhlcyAjMzQ0MTE1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWMgYXQgc29uaWNwdWxzZSBkb3QgZGU+CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBjb25zdGlmeSBxdWFyayByZWdpc3RyYXRpb24gc3RyaW5ncy4gRml4ZXMgIzM0NDExNQoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nIGlzIF9wYWRfcHVzaCgpIGJ5IGludGVybmFsbHkKCSAgY2FsbGluZyBnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCgpLgoKMjAwNi0wNi0xMiAwOToyMzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogSW5pdCBfdHlwZSBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSksCgkgIChfZ3N0X2J1ZmZlcl9jb3B5KSwgKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLAoJICAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLCAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgSW5pdCBfdHlwZSBmb3IgY29uc2lzdGVuY3kuCgkgIFVzZSBfRkxBR1MgbWFjcm8gdG8gYXZvaWQgdHlwZSBjaGVjay4KCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja3MgaW4gc3ViYnVmZXIgY29kZS4KCjIwMDYtMDYtMTIgMDk6MTc6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgX0NBU1QgbWFjcm9zIHRvIGF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWJ1Z19oZWxwKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9wbHVnaW5fZmlsdGVyKSwKCSAgKGdzdF9yZWdpc3RyeV9mZWF0dXJlX2ZpbHRlciksIChnc3RfcmVnaXN0cnlfZmluZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfZ2V0X3BsdWdpbl9saXN0KSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpLCAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3VucmVmKSwKCSAgKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKSwgKGdzdF92YWx1ZV9taW5pX29iamVjdF9mcmVlKSwKCSAgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb3B5KToKCSAgVXNlIF9DQVNUIG1hY3JvcyB0byBhdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBBZGRlZCBzb21lIG1vcmUgR19VTkxJS0VMWS4KCjIwMDYtMDYtMTIgMDk6MTE6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgQVBJOiBHU1RfQlVGRkVSX0lTX0RJU0NPTlQKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBBdm9pZCB0eXBlIGNoZWNrIGluIGZsYWcgYWNjZXNzb3IuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIEFkZCBfQ0FTVCBtYWNyb3MuCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9DQVNUCgkgIEFQSTogR1NUX1BMVUdJTl9DQVNUCgkgIEFQSTogR1NUX1BMVUdJTl9GRUFUVVJFX0NBU1QKCjIwMDYtMDYtMTIgMDk6MDY6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2dldF90eXBlKSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpOgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgQXZvaWQgdHlwZSBjaGVjayBpbiBfcmVmL191bnJlZiBzaW5jZSB0aGF0IGlzIGFsc28KCSAgZG9uZSBpbiBnbGliLgoKMjAwNi0wNi0xMiAwODo1NToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKGdzdF9nX2Vycm9yX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSk6CgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoKMjAwNi0wNi0xMiAwODo1MToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByb3Blcmx5IHByaW50IGVudW0gdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBQcm9wZXJseSBwcmludCBlbnVtIHZhbHVlcy4KCjIwMDYtMDYtMTIgMDg6NDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5mby4qOiBBZGQgc29tZSBHX1tVTl1MSUtFTFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfc2V0X2FjdGl2ZSksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCksIChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgc29tZSBHX1tVTl1MSUtFTFkuCgkgIE1haW50YWluIF9fZ3N0X2RlYnVnX21pbiB0byBhdm9pZCBmb3JtYXR0aW5nIHRoZSBhcmd1bWVudHMgb2YKCSAgZGVidWcgbWVzc2FnZXMgdGhhdCB3aWxsIGJlIGRyb3BwZWQgYW55d2F5IHRvIGF2b2lkIGEgbG90IG9mCgkgIG92ZXJoZWFkIGZyb20gdGhlIGRlYnVnZ2luZyBzeXN0ZW0uCgoyMDA2LTA2LTExIDIwOjM3OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwby9QT1RGSUxFUy4qOiBhZGQgbWlzc2luZyBmaWxlcyBjb250YWluaW5nIHRyYW5zbGF0YWJsZSBzdHJpbmdzLCB0ZWxsIGludGx0b29sIGFib3V0IG9uZSBleGNlcHRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgICogcG8vUE9URklMRVMuc2tpcDoKCSAgYWRkIG1pc3NpbmcgZmlsZXMgY29udGFpbmluZyB0cmFuc2xhdGFibGUgc3RyaW5ncywgdGVsbCBpbnRsdG9vbCBhYm91dAoJICBvbmUgZXhjZXB0aW9uCgoyMDA2LTA2LTExIDE3OjI4OjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6IGFkZCB0ZXN0LWJpbmFyeSB0byBpZ25vcmUgbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIGFkZCB0ZXN0LWJpbmFyeSB0byBpZ25vcmUgbGlzdAoKMjAwNi0wNi0xMSAxNzowMzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogcmVvcmRlciAocHV0IGRwIGludG8gYSBjaGFwdGVyKSBhbmQgaW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIHJlb3JkZXIgKHB1dCBkcCBpbnRvIGEgY2hhcHRlcikgYW5kIGluZGVudAoKMjAwNi0wNi0xMSAxMTo1NjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSAgYWRkIG5vdGVzIG9uIG91ciBhdXRvdG9vbHMgc2V0dXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlcyBvbiBvdXIgYXV0b3Rvb2xzIHNldHVwCgoyMDA2LTA2LTEwIDE3OjMyOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjggPT09CgoyMDA2LTA2LTEwIDE3OjA2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC44CgoyMDA2LTA2LTEwIDExOjUxOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogbW92ZSBwaWQgZGVjbGFyYXRpb24gdG8gZGVjbGFyYXRpb24gYmxvY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgbW92ZSBwaWQgZGVjbGFyYXRpb24gdG8gZGVjbGFyYXRpb24gYmxvY2sKCjIwMDYtMDYtMTAgMTE6NDc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBvdXIgZm9ya2VkIGNoaWxkOyB0aGlzIGVuc3VyZXMgdGhhdCBub25lIG9mIHRoZSByZWdpc3RlcmVkIGV4aXQgaGFuZGxlcnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIG91ciBmb3JrZWQgY2hpbGQ7IHRoaXMgZW5zdXJlcwoJICB0aGF0IG5vbmUgb2YgdGhlIHJlZ2lzdGVyZWQgZXhpdCBoYW5kbGVycyBmcm9tIHdoYXRldmVyIGlzIHVzaW5nCgkgIEdTdHJlYW1lciBnZXQgZXhlY3V0ZWQuICBUaGlzIGZpeGVzIGdub21lLW1peGVyLWFwcGxldCBmYWlsaW5nCgkgIHRvIGxvYWQsIGJlY2F1c2UgT1JCaXQgd291bGQgc2h1dCBkb3duLgoJICBTcG90dGVkIGJ5OiBFZHdhcmQgSGVydmV5ICA8ZWR3YXJkQGZsdWVuZG8uY29tPgoJICBGaXggc3VnZ2VzdGVkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgIEZpeGVzICMzNDQ0NzQKCjIwMDYtMDYtMDkgMTg6NTI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBiYWNrIHRvIFRSVU5LCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA2LTA5ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBUUlVOSwoKPT09IHJlbGVhc2UgMC4xMC43ID09PQoKMjAwNi0wNi0wOSAxODo0OToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNwoKMjAwNi0wNi0wNyAxMDo0NjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICAwLjEwLjYuMiBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9iZy5wbzoKCSAgKiBwby9jYS5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9kZS5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9mci5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9ydS5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby90ci5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgKiBwby96aF9DTi5wbzoKCSAgKiBwby96aF9UVy5wbzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuNi4yIHByZXJlbGVhc2UKCjIwMDYtMDYtMDcgMDg6Mzg6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggbGVhayBzcG90dGVkIGJ5IGNvdmVyaXR5IGNoZWNrZXIuIEZpeGVzICMzNDM4MjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZ3R5cGVfcmVzb2x2ZXIpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9wbHVnaW5faW5mbyk6CgkgIEZpeCBsZWFrIHNwb3R0ZWQgYnkgY292ZXJpdHkgY2hlY2tlci4gRml4ZXMgIzM0MzgyNwoJICBGaXggYW5vdGhlciBvdGhlciBsZWFrIGZvdW5kIGJ5IHBhb2xvIGJvcmVsbGkuCgoyMDA2LTA2LTA2IDE2OjUyOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgaWZkZWYgTE9BRFNBVkUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlmZGVmIExPQURTQVZFCgoyMDA2LTA2LTA2IDE1OjE4OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSAgcmVtb3ZlIG9sZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIGRvY3MKCjIwMDYtMDYtMDYgMTQ6NTE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlcm1pbmF0ZSBpZmRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVybWluYXRlIGlmZGVmCgoyMDA2LTA2LTA2IDE0OjMyOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGJ5dGVzdHJlYW0uc2dtbDoKCSAgcmVtb3ZlIHVudXNlZCB0bXBsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdW51c2VkIHRtcGwKCjIwMDYtMDYtMDYgMTQ6Mjk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYWRkIG5vdGUgdG8gZG9jcyBhYm91dCBHRFAgdmVyc2lvbmluZzsgcmVtb3ZlIHRtcGwgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGUgdG8gZG9jcyBhYm91dCBHRFAgdmVyc2lvbmluZzsgcmVtb3ZlIHRtcGwgZmlsZQoKMjAwNi0wNi0wNiAxNDoyNDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLio6IEFQSTogYWRkIGEgR3N0RFBQYWNrZXRpemVyIG9iamVjdCwgYW5kIGNyZWF0ZS9mcmVlIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyX2FueSksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc19hbnkpLAoJICAoZ3N0X2RwX3ZlcnNpb25fZ2V0X3R5cGUpLCAoZ3N0X2RwX2luaXQpLAoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyXzFfMCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc18xXzApLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMiksIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMV8wKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCksIChnc3RfZHBfcGFja2V0aXplcl9uZXcpLAoJICAoZ3N0X2RwX3BhY2tldGl6ZXJfZnJlZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBBUEk6IGFkZCBhIEdzdERQUGFja2V0aXplciBvYmplY3QsIGFuZCBjcmVhdGUvZnJlZSBmdW5jdGlvbnMKCSAgQVBJOiBhZGQgR3N0RFBWZXJzaW9uIGVudW0KCSAgQWRkIDEuMCBldmVudCBmdW5jdGlvbiB0aGF0IHVzZXMgdGhlIHN0cmluZyBzZXJpYWxpemF0aW9uCgkgIFNlcmlhbGl6ZSBtb3JlIHVzZWZ1bCBidWZmZXIgZmxhZ3MKCSAgRml4ZXMgIzM0Mzk4OAoKMjAwNi0wNi0wNiAxNDoyMToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgYWRkIHN5bWJvbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN5bWJvbAoKMjAwNi0wNi0wNiAxNDoxNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdpZHRoIHJlc3BlY3RhdGlvbml6aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aWR0aCByZXNwZWN0YXRpb25pemluZwoKMjAwNi0wNi0wNiAxNDoxMDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IGFkZCBwcGM2NCBzdHJ1Y3R1cmUgc2l6ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICBhZGQgcHBjNjQgc3RydWN0dXJlIHNpemVzCgoyMDA2LTA2LTA2IDEzOjU5OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogZ2VuZXJhdGUgYW5kIGFkZCBzdHJ1Y3R1cmUgc2l6ZSBsaXN0cyBmb3IgeDg2XzY0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBnZW5lcmF0ZSBhbmQgYWRkIHN0cnVjdHVyZSBzaXplIGxpc3RzIGZvciB4ODZfNjQKCjIwMDYtMDYtMDYgMTM6NTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY29zbWV0aWNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpY3MKCjIwMDYtMDYtMDYgMTM6NDg6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogZmFjdG9yIG91dCB0aGUgbWV0aG9kIGZyb20gdGVzdHMgdGhhdCBjaGVja3Mgc2l6ZSBvZiBzdHJ1Y3R1cmVzLCBhbmQgYWRkIGNvZGUgdG8gZ2VuZXJhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfYWJpX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGZhY3RvciBvdXQgdGhlIG1ldGhvZCBmcm9tIHRlc3RzIHRoYXQgY2hlY2tzIHNpemUgb2Ygc3RydWN0dXJlcywKCSAgYW5kIGFkZCBjb2RlIHRvIGdlbmVyYXRlIHRoZSBoZWFkZXIgY29udGFpbmluZyB0aGVzZSBzaXplcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHVzZSBpdAoKMjAwNi0wNi0wNiAxMzoxMTowMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogRG9uJ3QgdXNlIGMrKy1zdHlsZSBjb21tZW50cywgZml4ZXMgIzM0MzkyOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBEb24ndCB1c2UgYysrLXN0eWxlIGNvbW1lbnRzLCBmaXhlcyAjMzQzOTI5CgoyMDA2LTA2LTA2IDA5OjQ3OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIHdoaXRlc3BhY2Uvd2lkdGggZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2Uvd2lkdGggZml4ZXMKCjIwMDYtMDYtMDYgMDg6NTA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA2LTA2IDA4OjUwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIHJlbW92ZSBhbiBleHRyYSBzcGFjZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuIGV4dHJhIHNwYWNlCgoyMDA2LTA2LTA1IDEzOjA1OjM3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBwbHVnaW5fcGF0aHMgaXMgbm90IHVzZWQgaWYgd2UgYnVpbGQgd2l0aG91dCByZWdpc3RyeSBzdXBwb3J0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIHBsdWdpbl9wYXRocyBpcyBub3QgdXNlZCBpZiB3ZSBidWlsZCB3aXRob3V0IHJlZ2lzdHJ5IHN1cHBvcnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpOgoJICBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCjIwMDYtMDYtMDUgMTI6NTU6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpOgoJICBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCjIwMDYtMDYtMDIgMTY6NDY6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBmYWN0b3Igb3V0IENSQyBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgZmFjdG9yIG91dCBDUkMgY29kZQoKMjAwNi0wNi0wMiAxNjo0NTowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBtYWtlIHN1cmUgd2UgdW5zZXQgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpOgoJICBtYWtlIHN1cmUgd2UgdW5zZXQgY2FwcwoKMjAwNi0wNi0wMiAxNjo0MTowMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWRkIGEgY29uZC9tdXRleCB0byB0aGUgY2hlY2sgc3VwcG9ydCBsaWIsIHNpZ25hbCB0aGlzIHdoZW5ldmVyIHdlIGFkZCB0byB0aGUgYnVmZmVycyBsaXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCksCgkgIChnc3RfY2hlY2tfY2hhaW5fZnVuYyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIGEgY29uZC9tdXRleCB0byB0aGUgY2hlY2sgc3VwcG9ydCBsaWIsIHNpZ25hbCB0aGlzIHdoZW5ldmVyIHdlCgkgIGFkZCB0byB0aGUgYnVmZmVycyBsaXN0LiBUaGlzIHdpbGwgYWxsb3cgdGVzdHMgdG8gbm90IGJ1c3ktd2FpdCBvbgoJICB0aGUgYnVmZmVyLWxpc3QuCgoyMDA2LTA2LTAyIDEwOjU4OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogZmFjdG9yIG91dCBzb21lIGNvbW1vbiBoZWFkZXIgaW5pdCBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgZmFjdG9yIG91dCBzb21lIGNvbW1vbiBoZWFkZXIgaW5pdCBjb2RlCgoyMDA2LTA2LTAyIDEwOjA4OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEFQSTogbWFrZSBnc3RfZHBfY3JjKCkgcHVibGljCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX2NyYyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBBUEk6IG1ha2UgZ3N0X2RwX2NyYygpIHB1YmxpYwoKMjAwNi0wNi0wMiAwOToxMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZGVidWcgY2hhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBjaGFuZ2UKCjIwMDYtMDYtMDEgMTg6MzA6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogY29uZGl0aW9uYWxseSByZWdpc3RlciBmaWxlaW5kZXhlciAoZml4ZXMgIzM0MzU5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBjb25kaXRpb25hbGx5IHJlZ2lzdGVyIGZpbGVpbmRleGVyIChmaXhlcyAjMzQzNTk4KQoKMjAwNi0wNi0wMSAxODoyMjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5oOiBDYW4ndCBjYXN0IGlmYWNlcyB0byBhIGNsYXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgQ2FuJ3QgY2FzdCBpZmFjZXMgdG8gYSBjbGFzcwoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkgIEZpeCBtb3JlIGdvYmplY3QgbWFjcm9zOiBvYmo8LT5rbGFzcywgR3N0WFhYPC0+R3N0WFhYQ2xhc3MKCjIwMDYtMDYtMDEgMTE6MTM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBtYWtlIHN1cmUgd2UgemVybyB0aGUgd2hvbGUgQUJJLWNvbXBhdGlibGUgYXJlYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKToKCSAgbWFrZSBzdXJlIHdlIHplcm8gdGhlIHdob2xlIEFCSS1jb21wYXRpYmxlIGFyZWEKCjIwMDYtMDYtMDEgMDk6MDI6MjMgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBNYWtlIHN1cmUgdGhlIEVPUyBmbGFnIGlzIGNsZWFyZWQgZnJvbSBwYWRzIGFmdGVyIGEgZmx1c2ggb3Igc3RvcC4gRml4ZXMgIzM0MzUzOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgTWFrZSBzdXJlIHRoZSBFT1MgZmxhZyBpcyBjbGVhcmVkIGZyb20gcGFkcyBhZnRlciBhIGZsdXNoCgkgIG9yIHN0b3AuIEZpeGVzICMzNDM1MzguCgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIGNvbGxlY3RwYWRzIHJldXNhZ2UgYWZ0ZXIgRU9TLgoKMjAwNi0wNS0zMCAyMDoyNTowMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdC5jOiBzZXQgI2luY2x1ZGUgPHN5cy93YWl0Lmg+IGluIGEgI2lmZGVmICNpZmRlZiBIQVZFX0ZPUksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBzZXQgI2luY2x1ZGUgPHN5cy93YWl0Lmg+IGluIGEgI2lmZGVmICNpZmRlZiBIQVZFX0ZPUksKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGV4cG9ydCBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X3BhZF9zZXRfYWNjZXB0Y2Fwc19mdW5jdGlvbiwgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcsCgkgIGdzdF92YWx1ZV9mcmFjdGlvbl9tdWx0aXBseQoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgIGFkZCBhIGxpbmsgdG8gaW50bC5saWIKCjIwMDYtMDUtMzAgMTU6NTU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHBhZCBpcyByZW1vdmVkIGZyb20gdGhlIGNvbGxlY3Rpb24gdGhhdCBjb3VsZCBjYXVzZSB0aGUgb3RoZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBjb2xsZWN0aW9uCgkgIHRoYXQgY291bGQgY2F1c2UgdGhlIG90aGVyIHBhZHMgdG8gYmVjb21lIGNvbGxlY3RhYmxlLgoKMjAwNi0wNS0zMCAxNTo1Mzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsYXJpZnkgdGhlIHVzZSBvZiBfcmVsZWFzZV9yZXF1ZXN0X3BhZCgpIGFuZCBfZ2V0X3JlcXVlc3RfcGFkKCkgYSBiaXQgYmV0dGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBDbGFyaWZ5IHRoZSB1c2Ugb2YgX3JlbGVhc2VfcmVxdWVzdF9wYWQoKSBhbmQKCSAgX2dldF9yZXF1ZXN0X3BhZCgpIGEgYml0IGJldHRlci4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBGaXggc29tZSBkb2MgYW5kIGNvbW1lbnQgdHlwb3MuCgoyMDA2LTA1LTMwIDE0OjQzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgZGVjbGFyZWQgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBkZWNsYXJlZCBzeW1ib2xzCgoyMDA2LTA1LTMwIDE0OjQxOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIHBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgcG8gZmlsZXMKCjIwMDYtMDUtMzAgMTQ6NDA6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJ1aWxkCgoyMDA2LTA1LTMwIDE0OjAzOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkZWQgSEFWRV9GT1JLCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBIQVZFX0ZPUksKCjIwMDYtMDUtMzAgMTI6MDQ6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEFkZCBkZWJ1ZyB0aGF0IGNhbiBiZSBlbmFibGVkIHVzaW5nIGEgI2RlZmluZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLCBmb3IgZHVtcGluZyBzdGF0cyBhYm91dCBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQWRkIGRlYnVnIHRoYXQgY2FuIGJlIGVuYWJsZWQgdXNpbmcgYSAjZGVmaW5lIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsCgkgIGZvciBkdW1waW5nIHN0YXRzIGFib3V0IGhvdyBsYXRlL2Vhcmx5IHdlIHdlcmUgd2hlbiB3YWtpbmcgdXAgZnJvbQoJICB3YWl0aW5nIG9uIHRoZSBjbG9jay4KCjIwMDYtMDUtMzAgMTE6NDM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFdoZW4gcmVidWlsZGluZyB0aGUgcGFkIGxpc3QsIGRvbid0IGxlYWsgdGhlIHByZXZpb3VzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyk6CgkgIFdoZW4gcmVidWlsZGluZyB0aGUgcGFkIGxpc3QsIGRvbid0IGxlYWsgdGhlIHByZXZpb3VzIGxpc3QuCgoyMDA2LTA1LTMwIDEwOjU3OjQ0ICswMDAwICBMdXR6IE11ZWxsZXIgPGx1dHpAdG9wZnJvc2UuZGU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUHVibGlzaCBzdXBwb3J0ZWQgcXVlcnkgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTHV0eiBNdWVsbGVyIDxsdXR6IGF0IHRvcGZyb3NlIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICBQdWJsaXNoIHN1cHBvcnRlZCBxdWVyeSB0eXBlcy4KCSAgVXBkYXRlIGxhc3Rfc3RvcCBmaWVsZCBpbiBnZXRfcmFuZ2UgbW9kZSBzbyB0aGUgcG9zaXRpb24KCSAgcXVlcnkgd29ya3MuIEZpeGVzICMzNDIzMjEuCgoyMDA2LTA1LTMwIDEwOjEyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19QUkVWSUVXX0lNQUdFICgjMzQzMzQxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19QUkVWSUVXX0lNQUdFICgjMzQzMzQxKS4KCjIwMDYtMDUtMzAgMDk6NDI6MDkgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVbmxvY2sgbXV0ZXggd2hlbiByZW1vdmluZyBhbiB1bmtub3duIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgVW5sb2NrIG11dGV4IHdoZW4gcmVtb3ZpbmcgYW4gdW5rbm93biBwYWQuCgkgIEZpeGVzICMzNDMzMzQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoY29sbGVjdGVkX2NiKSwgKHB1c2hfYnVmZmVyKSwKCSAgKHB1c2hfZXZlbnQpLCAoc2V0dXApLCAodGVhcmRvd24pLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgY29sbGVjcGFkcyBjaGVjaywgZGlzYWJsZWQgZm9yIG5vdyBhcyBjaGVjayBjcmFzaGVzIGZvcgoJICBzb21lIHJlYXNvbi4KCjIwMDYtMDUtMjkgMTc6MjA6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IGxlYWsgcGFkcyBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSk6CgkgIERvbid0IGxlYWsgcGFkcyBsaXN0cy4KCjIwMDYtMDUtMjkgMTY6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmdfdW5sb2NrZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICBBZGRlZCBhcGkgdG8gc2V0IHRoZSBwYWRzIHRvIGZsdXNoaW5nLCB1c2VmdWxsIGZvciBzZWVraW5nCgkgIGNvZGUgaW4gZWxlbWVudHMgdXNpbmcgY29sbGVjdHBhZHMuCgkgIENsZWFyIHNlZ21lbnQgd2hlbiByZWNlaXZpbmcgYSBmbHVzaC4KCjIwMDYtMDUtMjkgMTE6NTI6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvbid0IHNjYW4gcmVnaXN0cnkgcGF0aHMgcGFzc2VkIHZpYSAtLWdzdC1wbHVnaW4tLXBhdGggaW1tZWRpYXRlbHkgKHdpbGwgY3Jhc2gsIGJlY2F1c2UgYWJzb2x1dGVseSBub3RoaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoYWRkX3BhdGhfZnVuYyksIChpbml0X3Bvc3QpOgoJICBEb24ndCBzY2FuIHJlZ2lzdHJ5IHBhdGhzIHBhc3NlZCB2aWEgLS1nc3QtcGx1Z2luLS1wYXRoIGltbWVkaWF0ZWx5CgkgICh3aWxsIGNyYXNoLCBiZWNhdXNlIGFic29sdXRlbHkgbm90aGluZyBpcyBzZXQgdXAgYW5kIG5vIHR5cGVzIGFyZQoJICByZWdpc3RlcmVkIGV0Yy4pOyBkbyB0aGlzIGxhdGVyIGluIGluaXRfcG9zdCgpLiBGaXhlcyAjMzQzMDU3LgoKMjAwNi0wNS0yOCAwOTowOTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IGlmIHdlIGhhdmUgZm9yaywgZm9yayB3aGlsZSByZWFkaW5nL3JlYnVpbGRpbmcgdGhlIHJlZ2lzdHJ5IHNvIHRoZSBwYXJlbnQgZG9lc24ndCB0YWtlIHRoZSBoaXQgb2YgaGF2aW5nIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgaWYgd2UgaGF2ZSBmb3JrLCBmb3JrIHdoaWxlIHJlYWRpbmcvcmVidWlsZGluZyB0aGUgcmVnaXN0cnkKCSAgc28gdGhlIHBhcmVudCBkb2Vzbid0IHRha2UgdGhlIGhpdCBvZiBoYXZpbmcgYWxsIHBsdWdpbnMgbG9hZGVkCgkgIGluIG1lbW9yeS4gIEZpeGVzICMzNDI3NzcuCgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBpZiB3ZSBoYXZlIGZvcmsoKQoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgbm8gZm9yaygpIG9uIHdpbjMyCgoyMDA2LTA1LTI2IDEzOjUyOjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBZGQgYSB1c2UtbW1hcCBwcm9wZXJ0eSB0byBlbmFibGUgZWFzaWVyIHRlc3Rpbmcgb2YgYWxsIGNvZGUgcGF0aHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19pbml0KSwgKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBBZGQgYSB1c2UtbW1hcCBwcm9wZXJ0eSB0byBlbmFibGUgZWFzaWVyIHRlc3Rpbmcgb2YgYWxsIGNvZGUgcGF0aHMuCgkgIEJ1bXAgcmFuayB0byBQUklNQVJZLCBzbyBmaWxlc3JjIGlzIHRoZSBwcmVmZXJyZWQgZmlsZSByZWFkZXIgYW5kIHVzZWQKCSAgaW4gdGhlIGFic2VuY2Ugb2YgZ25vbWV2ZnNzcmMuIChDbG9zZXMgIzM0MDUwMSkKCjIwMDYtMDUtMjYgMTA6MzU6MzQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgbWlzc2luZyBpbmNsdWRlLCByZW1vdmVzIHdhcm5pbmcgb2YgbmdldHRleHQgbm90IGJlaW5nIGRlZmluZWQgb24gc29tZSBhcmNoZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTI2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgQWRkIG1pc3NpbmcgaW5jbHVkZSwgcmVtb3ZlcyB3YXJuaW5nIG9mIG5nZXR0ZXh0IG5vdCBiZWluZyBkZWZpbmVkIG9uCgkgIHNvbWUgYXJjaGVzLgoKMjAwNi0wNS0yNiAwOToxOToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSGFuZGxlIE5VTEwgaW5wdXQgYW5kIG91dHB1dCBwb2ludGVycyBzaWxlbnRseSBhcyBhIGZhaWxlZCBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBnX3dhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIEhhbmRsZSBOVUxMIGlucHV0IGFuZCBvdXRwdXQgcG9pbnRlcnMgc2lsZW50bHkgYXMgYSBmYWlsZWQgY29udmVyc2lvbiwKCSAgcmF0aGVyIHRoYW4gZ193YXJuaW5ncy4KCjIwMDYtMDUtMjUgMTU6NTI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogSW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNpbmcuIEZpeGVzICMzNDI4MjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpOgoJICBJbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2luZy4gRml4ZXMgIzM0MjgyMC4KCjIwMDYtMDUtMjQgMTc6MTE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEZpeCBvZmYtYnktb25lIGJ1ZyB0aGF0IHdvdWxkIG9ubHkgYWxsb3cgcGVla3Mgb2YgTi0xIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IGV2ZW4gaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoYnVmX2hlbHBlcl9maW5kX3BlZWspOgoJICBGaXggb2ZmLWJ5LW9uZSBidWcgdGhhdCB3b3VsZCBvbmx5IGFsbG93IHBlZWtzIG9mIE4tMSBieXRlcwoJICBmcm9tIHRoZSBzdGFydCBldmVuIGlmIHRoZSBidWZmZXIgdG8gdHlwZWZpbmQgb24gY29udGFpbnMKCSAgaW4gZmFjdCBOIGJ5dGVzIG9mIGRhdGEgKG1ha2VzIHZvcmJpcyB0eXBlZmluZGluZyBmcm9tIGEKCSAgdm9yYmlzIGlkZW50aWZpY2F0aW9uIGhlYWRlciBidWZmZXIgd29yaykuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF90eXBlZmluZGhlbHBlcl9zdWl0ZSksIChtYWluKSwgKGZvb2Jhcl90eXBlZmluZCksCgkgIChwbHVnaW5faW5pdCk6CgkgIEFkZCB2ZXJ5IGJhc2ljIHVuaXQgdGVzdCBmb3IgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpCgkgIHRoYXQgY2hlY2tzIGZvciB0aGUgcHJvYmxlbSBmaXhlZCBhYm92ZS4KCjIwMDYtMDUtMjQgMDk6MDA6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGRvYyBpbmRlbnQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgaW5kZW50IGZpeAoKMjAwNi0wNS0yNCAwOTowMDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIG1hcmsgbW9yZSBzdHJpbmdzIGZvciB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFyayBtb3JlIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uCgoyMDA2LTA1LTIzIDE0OjIzOjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1ha2UgbmV3IEdTVF9GTE9XX0lTX1NVQ0NFU1MgbWFjcm8gdmlzaWJsZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEp1bGllbiBNb3V0dGUgIDxqdWxpZW4gYXQgbW91dHRlIG5ldD4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNYWtlIG5ldyBHU1RfRkxPV19JU19TVUNDRVNTIG1hY3JvIHZpc2libGUgaW4gZG9jcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZCBuZXcgOjpwcmVyb2xsLWhhbmRvZmYgc2lnbmFsICgjMzM3MTAwKS4KCjIwMDYtMDUtMjMgMTE6MTM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IEFkZGVkIF9DVVNUT00gZXJyb3IgYW5kIHN1Y2Nlc3MgR3N0Rmxvd1JldHVybiB0aGF0IGNhbiBiZSB1c2VkIGJlIGVsZW1lbnRzIGludGVybmFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9mbG93X2dldF9uYW1lKSwgKGdzdF9mbG93X3RvX3F1YXJrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIF9DVVNUT00gZXJyb3IgYW5kIHN1Y2Nlc3MgR3N0Rmxvd1JldHVybiB0aGF0IGNhbiBiZQoJICB1c2VkIGJlIGVsZW1lbnRzIGludGVybmFsbHkuCgkgIEFkZGVkIG1hY3JvIHRvIGNoZWNrIGZvciBTVUNDRVNTIGZsb3dyZXR1cm5zLgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SCgkgIEFQSTogR1NUX0ZMT1dfSVNfU1VDQ0VTUwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgR3N0Rmxvd1JldHVybiBzYW5pdHkuCgoyMDA2LTA1LTIzIDA5OjQwOjE0ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBjbGVhci9yZXNldCBzZWdtZW50IGluZm8gaW4gRkxVU0hfU1RPUC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGNsZWFyL3Jlc2V0IHNlZ21lbnQgaW5mbyBpbiBGTFVTSF9TVE9QLgoJICBGaXhlcyAjMzM2OTI5LgoKMjAwNi0wNS0yMiAxNjozMDozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGbHVzaCBxdWV1ZWQgYnVmZmVyIG9uIF9zdG9wKCksIGZpeGVzIHBsYXlpbmcgYWdhaW4gKCMzNDI0NTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX2NvbGxlY3RlZCk6CgkgIEZsdXNoIHF1ZXVlZCBidWZmZXIgb24gX3N0b3AoKSwgZml4ZXMgcGxheWluZyBhZ2FpbiAoIzM0MjQ1NCkKCjIwMDYtMDUtMjIgMTM6MzQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBhZGQgYSB0ZXN0IGZvciBhIGNvbXBsZXRlIHN0cnVjdHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgYSBjb21wbGV0ZSBzdHJ1Y3R1cmUKCjIwMDYtMDUtMjIgMTM6MzE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZGVidWdnaW5nIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnZ2luZyBjaGFuZ2VzCgoyMDA2LTA1LTE5IDE1OjM1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvOiBTb21lIG1pbm9yIEZBUSB1cGRhdGVzIHRoYXQgd29uJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgb3VyIEZBUSBpcyBiYWRseSBzdHJ1Y3R1cmVkLCBmdWxsIG9mIGluZm9ybWF0aW9uIGhhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICAqIGRvY3MvZmFxL2ZhcS54bWw6CgkgICogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIFNvbWUgbWlub3IgRkFRIHVwZGF0ZXMgdGhhdCB3b24ndCBjaGFuZ2UgdGhlIGZhY3QgdGhhdAoJICBvdXIgRkFRIGlzIGJhZGx5IHN0cnVjdHVyZWQsIGZ1bGwgb2YgaW5mb3JtYXRpb24gaGFyZGx5CgkgIGFueW9uZSBuZXcgdG8gR1N0cmVhbWVyIG5lZWRzIHRvIGtub3cgYW5kIGxhY2tpbmcgbG90cwoJICBvZiBpbmZvcm1hdGlvbiBwZW9wbGUgY29uc3RhbnRseSBhc2sgZm9yLgoKMjAwNi0wNS0xOSAxMzo0NjoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFNob3J0LWNpcmN1aXQgZ3N0X3BhZF9zZXRfY2FwcyBpZiBzZXR0aW5nIHRoZSBleGlzdGluZyBjYXBzIHBvaW50ZXIgYWdhaW4sIGFuZCBhdm9pZCBwcmludGluZyBkZWJ1ZyBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIFNob3J0LWNpcmN1aXQgZ3N0X3BhZF9zZXRfY2FwcyBpZiBzZXR0aW5nIHRoZSBleGlzdGluZwoJICBjYXBzIHBvaW50ZXIgYWdhaW4sIGFuZCBhdm9pZCBwcmludGluZyBkZWJ1ZyBhbmQKCSAgcmVmZmluZy91bnJlZmZpbmcgdGhlIGNhcHMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlcmUncyBhY3R1YWxseSBubyBuZWVkIHRvIHNldCB0aGUgY2FwcyBiZWZvcmUgcHVzaGluZyAtCgkgIHRoZSBhY2NlcHRjYXBzIG1ldGhvZCB3aWxsIGhhbmRsZSBpdCBhbnl3YXkuCgoyMDA2LTA1LTE5IDEwOjI5OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUoKSAoIzM0MjIzOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKCkgKCMzNDIyMzgpLgoKMjAwNi0wNS0xOCAxNDoyNTowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R0eXBlZmluZC4qOiBBZGRlZCBHU1RfVFlQRV9UWVBFX0ZJTkQgYW5kIGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUoKSBzbyBhIEdUeXBlIGdldHMgcmVnaXN0ZXJlZCBmb3IgR3N0VHlwZUZpbmQgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBBZGRlZCBHU1RfVFlQRV9UWVBFX0ZJTkQgYW5kIGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUoKSBzbyBhIEdUeXBlIGdldHMKCSAgcmVnaXN0ZXJlZCBmb3IgR3N0VHlwZUZpbmQgcG9pbnRlcnMuIFRoaXMgYWxsb3dzIHdyYXBwaW5nIHRoZSBzdHJ1Y3R1cmUKCSAgaW4gYmluZGluZ3MgKGkuZS4gZ3N0LXB5dGhvbikuCgoyMDA2LTA1LTE4IDE0OjAxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBEb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMgKHNlZSAjMzM5OTE4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBEb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMgKHNlZSAjMzM5OTE4KS4KCjIwMDYtMDUtMTggMDk6MDc6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFRoZSBjYXBzIGludGVyc2VjdGlvbiBhbGdvcml0aG0gY2FuIHByb2R1Y2UgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBjYXBzLiBVbnRpbCB0aGF0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBUaGUgY2FwcyBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIGNhbiBwcm9kdWNlIG11bHRpcGxlIGNvcGllcyBvZiB0aGUKCSAgY2Fwcy4gVW50aWwgdGhhdCBpcyBmaXhlZCwgd2UgbmVlZCB0byBzaW1wbGlmeSB0aGUgcmVzdWx0IHRvIGJlCgkgIHN1cmUgd2hldGhlciB0aGUgYWxsb3dlZCBjYXBzIGFyZSBmaXhlZCBvciBub3QuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFByb3hpZWQgYnVmZmVyIGFsbG9jIHNob3VsZCBub3Qgc2V0IHRoZSBjYXBzIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBXaGVuIHB1c2hpbmcgYnVmZmVycywgd2UgYWx3YXlzIGFjY2VwdCB0aGUgY2FwcyBjaGFuZ2UgdGhhdCB0cmlnZ2Vycy4KCSAgVGhpcyBwcmV2ZW50cyBuZWdvdGlhdGlvbiBlcnJvcnMgY2F1c2VkIGJ5IGNhcHMgY2hhbmdpbmcgbWlkLXN0cmVhbQoJICBhbmQgdGhlbiBiZWluZyByZWZ1c2VkIG9uIG91ciBzb3VyY2UgcGFkIChiZWNhdXNlIHVwc3RyZWFtIGlzIG5vdwoJICByZWZ1c2luZyB0aG9zZSBjYXBzKS4KCjIwMDYtMDUtMTggMDg6NDg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogTXVzdCBwbHVnIGF1ZGlvY29udmVydCBhbmQgYXVkaW9yZXNhbXBsZSBiZXR3ZWVuIGRlY29kZXIgYW5kIGF1ZGlvIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAobWFpbik6CgkgIE11c3QgcGx1ZyBhdWRpb2NvbnZlcnQgYW5kIGF1ZGlvcmVzYW1wbGUgYmV0d2VlbiBkZWNvZGVyCgkgIGFuZCBhdWRpbyBzaW5rLgoKMjAwNi0wNS0xNyAxNDoxODoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIGZpeGVkIGJ5IHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgZml4ZWQgYnkgcHJldmlvdXMgY29tbWl0CgoyMDA2LTA1LTE3IDE0OjAxOjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBbGxvdyBlbXB0eSBzdHJpbmdzIGZvciBzb21lIG9mIHRoZSBwbHVnaW4gZmllbGRzIHNvIHdlIGRvbid0IGRyb3AgdmFsaWQgcGx1Z2luIGVudHJpZXMgdGhhdCB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKSwgKGxvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbik6CgkgIEFsbG93IGVtcHR5IHN0cmluZ3MgZm9yIHNvbWUgb2YgdGhlIHBsdWdpbiBmaWVsZHMgc28gd2UgZG9uJ3QKCSAgZHJvcCB2YWxpZCBwbHVnaW4gZW50cmllcyB0aGF0IHdlcmUgd3JpdHRlbiBvdXQgY29ycmVjdGx5LgoKMjAwNi0wNS0xNyAxMzo0MDoyMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFVzZSBnX3JlbW92ZSBhbmQgZ19yZW5hbWUgaW5zdGVhZCBvZiByZW1vdmUgYW5kIHJlbmFtZSB0aGF0IGRvbid0IGhhbmRsZSB1dGY4IGNoYXJhY3RlcnMuIHJlbmFtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIFVzZSBnX3JlbW92ZSBhbmQgZ19yZW5hbWUgaW5zdGVhZCBvZiByZW1vdmUgYW5kIHJlbmFtZSB0aGF0IGRvbid0CgkgIGhhbmRsZSB1dGY4IGNoYXJhY3RlcnMuIHJlbmFtZSB3YXMgZmFpbGluZyBmb3IgdXNlcnMgd2hvIGhhZCBzcGVjaWZpYwoJICBjaGFyYWN0ZXJzIGluIHRoZWlyIG5hbWUgdGhlbiB0aGUgcmVnaXN0cnkgd2FzIGJ1aWx0IGF0IGVhY2ggZ3N0cmVhbWVyIGluaXQuCgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVc2UgYSBkZWJ1ZyB2ZXJzaW9uIG9mIGxpYnhtbDIgKGxpYnhtbDJELmxpYixsaWJ4bWwyRC5kbGwpIGZvciBERUJVRyBidWlsZAoJICBvZiBsaWJnc3RyZWFtZXIgYW5kIGNsZWFuIHVudXNlZCBsaWJyYXJpZXMgaW4gcHJvamVjdCBsaW5rcyBzZXR0aW5ncy4KCjIwMDYtMDUtMTcgMDk6MjQ6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFRoZSBxdWV1ZSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgYW4gRU9TIHdoZW4gcmVjZWl2aW5nIGEgZmF0YWwgZmxvdyBlcnJvci4gSXQncyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlIHF1ZXVlIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgcHVzaGluZyBhbiBFT1Mgd2hlbiByZWNlaXZpbmcgYSBmYXRhbAoJICBmbG93IGVycm9yLiBJdCdzIHVwIHRvIHRoZSByZWFsIGVsZW1lbnQgZHJpdmluZyB0aGUgcGlwZWxpbmUgdG8gZG8gdGhhdC4KCjIwMDYtMDUtMTYgMTc6MTU6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFRoZSBxdWV1ZSB3YXMgcG9zdGluZyBhIG5vbi1uZWVkZWQgR1NUX01FU1NBR0VfRVJST1Igd2hlbiBwdXNoaW5nIGEgYnVmZmVyIHJldHVybmVkIGEgZmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlIHF1ZXVlIHdhcyBwb3N0aW5nIGEgbm9uLW5lZWRlZCBHU1RfTUVTU0FHRV9FUlJPUiB3aGVuIHB1c2hpbmcgYQoJICBidWZmZXIgcmV0dXJuZWQgYSBmYXRhbCBlcnJvci4gSXQgc2hvdWxkIGp1c3Qgc2VuZCBhbiBFT1MgYW5kIHN0b3AKCSAgaXQncyB0YXNrLgoJICBVcHN0cmVhbSBlbGVtZW50cyB3aWxsIHRoZW4gcHJvcGVybHkgcmVjZWl2ZSB0aGUgR1NUX0ZMT1dfVU5FWFBFQ1RFRAoJICB3aGVuIHB1c2hpbmcgYnVmZmVycyBvbiB0aGUgcXVldWUgYW5kIHdpbGwgYmUgYWJsZSB0byBoYW5kbGUgdGhlIGV2ZW50LgoKMjAwNi0wNS0xNiAxNjoxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IHR5cG9zIGFuZCBtaW5vciBlcnJvcnMgaW4gc2FtcGxlIGNvZGUgKCMzNDE4NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICBGaXggdHlwb3MgYW5kIG1pbm9yIGVycm9ycyBpbiBzYW1wbGUgY29kZSAoIzM0MTg1NikuCgoyMDA2LTA1LTE2IDEzOjMxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXggaW5kZXhlcyBpbiBmb3JtdWxhcyB0byBtYWtlIG1vcmUgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRml4IGluZGV4ZXMgaW4gZm9ybXVsYXMgdG8gbWFrZSBtb3JlIHNlbnNlLgoKMjAwNi0wNS0xNSAxMTo1NDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgcmVwb3J0IFBPU0lUSU9OIGJhc2VkIG9uIGNsb2NrIHRpbWUgaWYgc3luYyBpcyBkaXNhYmxlZCBpbiBhIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgcmVwb3J0IFBPU0lUSU9OIGJhc2VkIG9uIGNsb2NrIHRpbWUgaWYgc3luYyBpcwoJICBkaXNhYmxlZCBpbiBhIHNpbmsuCgoyMDA2LTA1LTE1IDA4OjE2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5oOiBBZGQgY2FzdCB0byBtYWtlIGNvbXBpbGVyIGhhcHB5IC0gcmVmY291bnQgdmFyaWFibGUgd2FzIGEgZ2ludCBpbiBHc3RPYmplY3QgYnV0IGlzIGEgZ3VpbnQgaW4gR09iamVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgQWRkIGNhc3QgdG8gbWFrZSBjb21waWxlciBoYXBweSAtIHJlZmNvdW50IHZhcmlhYmxlIHdhcyBhIGdpbnQKCSAgaW4gR3N0T2JqZWN0IGJ1dCBpcyBhIGd1aW50IGluIEdPYmplY3QgYW5kIGdfYXRvbWljX2ludF9nZXQoKQoJICB3YW50cyBhIGdpbnQgKi4KCjIwMDYtMDUtMTQgMjM6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGZpeCBwYXJhbGxlbCBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcGFyYWxsZWwgbWFrZQoKMjAwNi0wNS0xNCAyMToxODoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGNvbmZpZy5oCgoyMDA2LTA1LTE0IDIxOjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNS0xNCAyMToxNjo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHJlYW1oZWFkZXI6CgkgIHNvbWUgc3RyZWFtaGVhZGVyIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgc3RyZWFtaGVhZGVyIHVwZGF0ZXMKCjIwMDYtMDUtMTQgMTk6MjU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNaW5vciBkb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1pbm9yIGRvY3MgZml4ZXMuCgoyMDA2LTA1LTE0IDE2OjAzOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuNiA9PT0KCjIwMDYtMDUtMTQgMTU6MjA6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC42LCAiVGFrZSB0aGUgY2Fubm9saSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMTQgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuNiwgIlRha2UgdGhlIGNhbm5vbGkiCgoyMDA2LTA1LTE0IDE1OjE4OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNS0xMyAxNzo1MDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluIHRoZSBoeXBvdGhldGljYWwgY2FzZSB0aGF0IHNvbWUgYnJva2VuIHBsdWdpbiBjcmVhdGVzIGEgR1NUXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaW4gdGhlIGh5cG90aGV0aWNhbAoJICBjYXNlIHRoYXQgc29tZSBicm9rZW4gcGx1Z2luIGNyZWF0ZXMgYSBHU1RfVEFHX0lNQUdFCgkgIHRhZyBjb250YWluaW5nIGEgTlVMTCBidWZmZXIgKCMzNDE2NjcpLgoKMjAwNi0wNS0xMiAxNjo1MDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlIGZvciBpbWFnZSB0YWdzIHdoZW4gdXNpbmcgdGhlIC10IHN3aXRjaCAoIzM0MTU1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIFByaW50IHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZSBmb3IgaW1hZ2UgdGFncyB3aGVuCgkgIHVzaW5nIHRoZSAtdCBzd2l0Y2ggKCMzNDE1NTYpLgoKMjAwNi0wNS0xMiAxNDo1Mzo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogdXBkYXRlcyBmb3Igd2luMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHVwZGF0ZXMgZm9yIHdpbjMyCgkgICogY29uZmlndXJlLmFjOgoJICBkZWZpbmUgR1NUX01BSk9STUlOT1Igc28gd2UgaGF2ZSBpdCBhdmFpbGFibGUgaW4gd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIFBvc3NpYmx5IHJlbW92ZSBpdCBmcm9tIG91ciBNYWtlZmlsZS5hbSBmaWxlcyBsYXRlcgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZGVkIEdTVF9NQUpPUk1JTk9SCgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiAocmVnaXN0ZXJfZ3N0X3Jlc291cmNlX2Vycm9yKToKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGVkCgoyMDA2LTA1LTEyIDEzOjQyOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSAgYWRkaW5nIG5vdGVzIGFib3V0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYW5kIGlkZWFzIGFib3V0IHN0cmVhbWhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG5vdGVzIGFib3V0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYW5kIGlkZWFzIGFib3V0IHN0cmVhbWhlYWRlcgoKMjAwNi0wNS0xMiAxMDo1MDo0MiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IFVwZGF0ZSB3aW4zMiBmaWxlcyBsaXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgVXBkYXRlIHdpbjMyIGZpbGVzIGxpc3RpbmcuCgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQWRkIEdTVF9NQUpPUk1JTk9SIGRlZmluaXRpb24uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNi0wNS0xMiAwOToyODoyMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJZiBhbiBzbyBmaWxlIGhhcyBubyBwbHVnaW4gZW50cnkgcG9pbnQsIHVubG9hZCB0aGUgbW9kdWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIElmIGFuIHNvIGZpbGUgaGFzIG5vIHBsdWdpbiBlbnRyeSBwb2ludCwgdW5sb2FkIHRoZSBtb2R1bGUuCgoyMDA2LTA1LTExIDE5OjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBEb24ndCBmb3JnZXQgdG8gc2lnbmFsIHRoZSBfY2hhaW4gb3IgX2xvb3AgZnVuY3Rpb24gd2hlbiB0aGUgcXVldWUgc2l6ZSBvciB0aHJlc2hvbGRzIGNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgRG9uJ3QgZm9yZ2V0IHRvIHNpZ25hbCB0aGUgX2NoYWluIG9yIF9sb29wIGZ1bmN0aW9uCgkgIHdoZW4gdGhlIHF1ZXVlIHNpemUgb3IgdGhyZXNob2xkcyBjaGFuZ2Ugc2luY2UgdGhhdCBtaWdodAoJICBjYXVzZSB0aGVtIHRvIG1ha2UgcHJvZ3JlcyBhZ2Fpbi4KCjIwMDYtMDUtMTEgMTg6MTA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEdfT0JKRUNUX0NMQVNTIG1hY3JvIHVzYWdlIGJhdGNoIGNsZWFudXAsIGZpeGVzICMzMzc3NDcgZm9yIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzogKGdzdF9leGFtcGxlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6IChnc3RfdGVzdF9jbGFzc19pbml0KToKCSAgR19PQkpFQ1RfQ0xBU1MgbWFjcm8gdXNhZ2UgYmF0Y2ggY2xlYW51cCwgZml4ZXMgIzMzNzc0NyBmb3IgY29yZQoKMjAwNi0wNS0xMSAxMDozNToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogUmVnaXN0ZXIgc3ViYnVmZXIgYWxvbmcgd2l0aCB0aGUgYnVmZmVyIHR5cGUgc28gdGhhdCBpdCBkb2VzIG5vdCBhY2NpZGVudGFsbHkgZ2V0cyByZWdpc3RlcmVkIGZyb20gTi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKToKCSAgUmVnaXN0ZXIgc3ViYnVmZXIgYWxvbmcgd2l0aCB0aGUgYnVmZmVyIHR5cGUgc28gdGhhdAoJICBpdCBkb2VzIG5vdCBhY2NpZGVudGFsbHkgZ2V0cyByZWdpc3RlcmVkIGZyb20gTgoJICBkaWZmZXJlbnQgc3RyZWFtaW5nIHRocmVhZHMgaW4gYSBub24gdGhyZWFkc2FmZSB3YXkuCgoyMDA2LTA1LTEwIDE2OjQ0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTWFrZSBndGstZG9jIGdlbmVyYXRlIGRvY3MgZm9yIG91ciBpbmxpbmVkIGdzdF9idWZmZXJfcmVmKCksIGdzdF9ldmVudF9yZWYoKSBhbmQgZ3N0X21lc3NhZ2VfcmVmKCkgZnVuY3Rpb25zIGFnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNYWtlIGd0ay1kb2MgZ2VuZXJhdGUgZG9jcyBmb3Igb3VyIGlubGluZWQgZ3N0X2J1ZmZlcl9yZWYoKSwKCSAgZ3N0X2V2ZW50X3JlZigpIGFuZCBnc3RfbWVzc2FnZV9yZWYoKSBmdW5jdGlvbnMgYWdhaW4KCSAgKHVnbHkgaGFjaywgcGxlYXNlIGRvIGZpeCBpZiB0aGVyZSdzIGEgYmV0dGVyIHdheSBiZXNpZGVzCgkgIG92ZXJyaWRlcy50eHQsIHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byB3b3JrKS4KCjIwMDYtMDUtMTAgMTU6NDk6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogYWRkIGFuIGFzc2VydCBmb3Igc2V0dGluZyBzdGF0ZSB0byBhdm9pZCBsb3RzIG9mIHJlcGV0aXRpdmUgY29kZSBpbiB0aGUgZnV0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTEwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhbiBhc3NlcnQgZm9yIHNldHRpbmcgc3RhdGUgdG8gYXZvaWQgbG90cyBvZiByZXBldGl0aXZlIGNvZGUKCSAgaW4gdGhlIGZ1dHVyZQoKMjAwNi0wNS0xMCAxNTozODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogZml4IGEgbGVhayBpZiBubyBmbGFncyBhcmUgc2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIGZpeCBhIGxlYWsgaWYgbm8gZmxhZ3MgYXJlIHNldAoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggbGVhayBpbiB0ZXN0cwoKMjAwNi0wNS0xMCAxNTowMDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDogRXhwYW5kIGEgYml0IG9uIGNhcHMgYW5kIGZpbHRlcmVkIGxpbmtzIGFuZCB1cGRhdGUgZXhhbXBsZXMgdGhhdCB3ZXJlIHN0aWxsIHVzaW5nIHRoZSBuby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEV4cGFuZCBhIGJpdCBvbiBjYXBzIGFuZCBmaWx0ZXJlZCBsaW5rcyBhbmQgdXBkYXRlCgkgIGV4YW1wbGVzIHRoYXQgd2VyZSBzdGlsbCB1c2luZyB0aGUgbm8gbG9uZ2VyIGV4aXN0aW5nCgkgIGdzdF9wYWRfbGlua19maWx0ZXJlZCgpICgjMzM4MjA2KS4KCjIwMDYtMDUtMTAgMTQ6NTE6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IE5vIG5lZWQgdG8gY2FsbCBfc3RvcCBpbiBfZmluYWxpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBObyBuZWVkIHRvIGNhbGwgX3N0b3AgaW4gX2ZpbmFsaXplLgoJICBJdGVyYXRlIHRoZSBtYWluIHBhZCBsaXN0IGluIF9maW5hbGl6ZS4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnLgoJICBGcmVlIGxpc3RzIGFuZCBkYXRhIGluIHRoZSByaWdodCBvcmRlci4KCSAgQWxzbyBmcmVlIGRhdGEgd2hlbSBkb2luZyBfcmVtb3ZlX3BhZCB3aGVuIHN0b3BwZWQgZm9yCgkgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcHJvdGVjdCA6OnN0YXJ0ZWQgd2l0aCBQQURfTE9DSyBhcwoJICB3ZWxsLgoKMjAwNi0wNS0xMCAxNDoxMjoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IGFkZCBzb21lIGNvbW1lbnRzIHJlbmFtZSBhIG1ldGhvZCBzbyB0aGF0IGl0IGFjdHVhbGx5IHNheXMgd2hhdCBpdCBkb2VzIGJldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2d0eXBlX2Zyb21fYWJiciksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgYWRkIHNvbWUgY29tbWVudHMKCSAgcmVuYW1lIGEgbWV0aG9kIHNvIHRoYXQgaXQgYWN0dWFsbHkgc2F5cyB3aGF0IGl0IGRvZXMgYmV0dGVyCgoyMDA2LTA1LTEwIDE0OjA1OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IG1ha2Ugc3VyZSBzb21lIGVzc2VudGlhbCB0eXBlcyB1c2VkIGJ5IGV2ZW50cyBhcmUgcmVnaXN0ZXJlZCBhcyBwYXJ0IG9mIGdzdF9pbml0KCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpOgoJICBtYWtlIHN1cmUgc29tZSBlc3NlbnRpYWwgdHlwZXMgdXNlZCBieSBldmVudHMgYXJlIHJlZ2lzdGVyZWQKCSAgYXMgcGFydCBvZiBnc3RfaW5pdCgpCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgaWYgbm8gZmxhZ3MgYXJlIHNldCwgc2VyaWFsaXplIHRoZW0gdG8gYSB2YWx1ZSB0aGF0IHJlcHJlc2VudHMgTk9ORQoJICBzbyB0aGF0IGRlc2VyaWFsaXppbmcgdGhlbSB3b3JrcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gb2YgZmxhZ3MKCjIwMDYtMDUtMTAgMTM6NTM6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgbGltaXQgdG8gODAgY2hhcnMgYWRkIG5vdGUgYWJvdXQgY2hhbmdpbmcgZGl2aWRlciBmb3IgZmxhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxpbWl0IHRvIDgwIGNoYXJzCgkgIGFkZCBub3RlIGFib3V0IGNoYW5naW5nIGRpdmlkZXIgZm9yIGZsYWdzCgoyMDA2LTA1LTEwIDExOjI0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19jb2xsZWN0ZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgVXBkYXRlIGRvY3MuCgkgIEJldHRlciBkZWJ1ZyBpbmZvLgoJICBDYXRjaCBhbmQgcmV0dXJuIGVycm9ycyBmcm9tIHRoZSBjb2xsZWN0IGZ1bmN0aW9uCgkgIFJlZnVzZSBkYXRhIG9uIGVvcyBwYWRzLgoKMjAwNi0wNS0xMCAxMDoyNjo1NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RpbnRlcmZhY2UuaDogR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFIGFuZCBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0UgdXNlIHRoZSBub3JtYWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGludGVyZmFjZS5oOgoJICBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0UgYW5kIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRSB1c2UgdGhlIG5vcm1hbAoJICBHSW50ZXJmYWNlIHR5cGUgY2hlY2tpbmcuCgkgIFRoZXkgd2VyZSBwcmV2aW91c2x5IHVzaW5nIG5vbi1kZWZpbmVkIG1hY3Jvcy4KCjIwMDYtMDUtMDkgMjA6NDc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IENsZWFuIHVwIHRoZSBtZXNzIHRoYXQgaXMgY29sbGVjdHBhZHMsIGFkZCBjb21tZW50cyBhbmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBDbGVhbiB1cCB0aGUgbWVzcyB0aGF0IGlzIGNvbGxlY3RwYWRzLCBhZGQgY29tbWVudHMgYW5kCgkgIEZJWE1FcyB3aGVyZSBuZWVkZWQuCgkgIE1haW50YWluIGEgc2VwYXJhdGUgcGFkIGxpc3Qgc28gd2UgY2FuIGFkZCBwYWRzIHdoaWxlCgkgIGNvbGxlY3RpbmcgdGhlIG90aGVyIG9uZXMuIEZvciB0aGlzIHdlIG5lZWQgYSBuZXcgc2VwYXJhdGUKCSAgbG9jayAoc2VlIGNvbWljcykuCgkgIEZpeCBtZW1vcnkgbGVhayBpbiBmaW5hbGl6ZS4KCSAgUmVmYWN0b3Igc29tZSB3ZWlyZCBjb2RlIHRvIHNldC91bnNldCBwYWQgZmx1c2hpbmcgZmxhZ3MsIG1hcmsKCSAgd2l0aCBjb21tZW50cy4KCSAgRG9uJ3QgY3Jhc2ggaW4gX2F2YWlsYWJsZSwgX3JlYWQsIF9mbHVzaCB3aGVuIHdlJ3JlIEVPUy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBhZGFwdGVyIGNoZWNrIGJpbmFyeS4KCjIwMDYtMDUtMDkgMTk6MTQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvYyB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2Mgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNS0wOSAxNzo1ODozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENvbnN0LWlmeSBHRW51bVZhbHVlIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfcmVzb2x2ZXJfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKGdzdF9mYWtlX3Npbmtfc3RhdGVfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2RhdGFfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3NpemV0eXBlX2dldF90eXBlKSwgKGdzdF9mYWtlX3NyY19maWxsdHlwZV9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBDb25zdC1pZnkgR0VudW1WYWx1ZSBhcnJheXMuCgoyMDA2LTA1LTA5IDEzOjIzOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBBZGQgdGVzdCBjYXNlIGZvciBmbGFncyArIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIGZsYWdzICsgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkuCgoyMDA2LTA1LTA5IDEyOjAxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBzaG91bGQgbWFpbnRhaW4gdGhlIGJ1ZmZlciBmbGFncyAodGhvc2UgdGhhdCBtYWtlIHNlbnNlIGF0IGxlYXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIHNob3VsZCBtYWludGFpbiB0aGUKCSAgYnVmZmVyIGZsYWdzICh0aG9zZSB0aGF0IG1ha2Ugc2Vuc2UgYXQgbGVhc3QpIChzZWUgIzM0MDg1OSkuCgoyMDA2LTA1LTA5IDEwOjUzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBGaXggdXAgaW5jbHVkZXM6IG5lZWQgdG8gaW5jbHVkZSBzdGRsaWIuaCBpbiB0b29scy5oIGZvciBleGl0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgICogdG9vbHMvdG9vbHMuaDoKCSAgRml4IHVwIGluY2x1ZGVzOiBuZWVkIHRvIGluY2x1ZGUgc3RkbGliLmggaW4gdG9vbHMuaCBmb3IgZXhpdCgpLgoKMjAwNi0wNS0wOSAxMDowMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IEFQSTogYWRkIEdTVF9UQUdfSU1BR0UgdGFnICgjMzQwNzIxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfSU1BR0UgdGFnICgjMzQwNzIxKS4KCjIwMDYtMDUtMDggMTc6MTI6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYzogQWRkZWQgc29tZSBkb2NzIGZvciB0aGUgc2VnbWVudCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEFkZGVkIHNvbWUgZG9jcyBmb3IgdGhlIHNlZ21lbnQgcXVlcnkuCgoyMDA2LTA1LTA4IDE3OjAzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsd2F5cyBwdXNoIG5vbi1mbHVzaGluZyBzZXJpYWxpemVkIGV2ZW50cyBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbHdheXMgcHVzaCBub24tZmx1c2hpbmcgc2VyaWFsaXplZCBldmVudHMgaW4gdGhlIHN0cmVhbWluZwoJICB0aHJlYWQuCgoyMDA2LTA1LTA4IDE1OjUzOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgd2hpdGVzcGFjZSwgY29tbWVudCwgZG9jIGZpeHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlLCBjb21tZW50LCBkb2MgZml4dXAKCjIwMDYtMDUtMDggMTU6NTI6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVycm9yLmM6IEFkZCBhIG1pc3NpbmcgZXJyb3Igc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgQWRkIGEgbWlzc2luZyBlcnJvciBzdHJpbmcuCgoyMDA2LTA1LTA4IDE0OjU1OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGFwcGxpZWRfcmF0ZSB0byB0aGUgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCk6CgkgIEFkZCBhcHBsaWVkX3JhdGUgdG8gdGhlIGRlYnVnCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgQ29weSBhcHBsaWVkX3JhdGUgaW50byB0aGUgb3V0Z29pbmcgTkVXU0VHTUVOVCBldmVudAoKMjAwNi0wNS0wOCAxMTo0OTo0MyArMDAwMCAgUGhpbGlwcGUgUm91cXVpZXIgPHBoaWxpcHBlcm9AbGliZXJ0eXN1cmYuZnI+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IGNhbGwgOjp1bmxvY2sgYmVmb3JlIHRha2luZyB0aGUgUFJFUk9MTF9MT0NLIHNvIHdlIGNhbiBzYWZlbHkgaGFuZGxlIGVsZW1lbnRzIHRoYXQgbG9jayAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQaGlsaXBwZSBSb3VxdWllciA8cGhpbGlwcGVybyBhdCBsaWJlcnR5c3VyZiBkb3QgZnI+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBjYWxsIDo6dW5sb2NrIGJlZm9yZSB0YWtpbmcgdGhlIFBSRVJPTExfTE9DSyBzbyB3ZSBjYW4gc2FmZWx5CgkgIGhhbmRsZSBlbGVtZW50cyB0aGF0IGxvY2sgaW4gOjpyZW5kZXIuCgkgIEZpeGVzICMzNDAxNzQuCgoyMDA2LTA1LTA4IDExOjQzOjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYXV0b2dlbi5zaDogRGFyd2luJ3MgbGlidG9vbGl6ZSBpcyBpbiBmYWN0IGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDogKENPTkZJR1VSRV9ERUZfT1BUKToKCSAgRGFyd2luJ3MgbGlidG9vbGl6ZSBpcyBpbiBmYWN0IGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgQWRkaW5nIGdsaWJ0b29saXplIHRvIHRoZSBsaXN0IG9mIGFjY2VwdGVkIG5hbWVzIGZvciBsaWJ0b29saXplLgoKMjAwNi0wNS0wOCAxMTozNToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVbmlmeSBlcnJvciBoYW5kbGluZywgZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIHdoZW4gYSBwdXNoKCkgcmV0dXJucyBFT1MgYnV0IHBlcmZvcm0gby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgVW5pZnkgZXJyb3IgaGFuZGxpbmcsIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZQoJICB3aGVuIGEgcHVzaCgpIHJldHVybnMgRU9TIGJ1dCBwZXJmb3JtIG91ciBub3JtYWwgRU9TCgkgIGhhbmRsaW5nIGNvZGUuIEZpeGVzICMzNDA3NzIuCgoyMDA2LTA1LTA4IDA5OjUyOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6IE1ha2UgdXBzdGVhbS9kb3duc3RyZWFtIGNvbmNlcHRzIG1vcmUgY2xlYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBNYWtlIHVwc3RlYW0vZG93bnN0cmVhbSBjb25jZXB0cyBtb3JlIGNsZWFyLgoJICBHaXZlIGFuIGV4YW1wbGUgb2Ygc2VyaWFsaXplZC9ub24tc2VyaWFsaXplZCBldmVudHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIE1lbnRpb24gYXBwbGllZF9yYXRlLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIE1lbnRpb24gYXBwbGllZCByYXRlLCBmbGVzaCBvdXQgc29tZSBtb3JlIHVzZSBjYXNlcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50KSwgKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLAoJICAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGFwcGxpZWRfcmF0ZSBmaWVsZCB0byBORVdTRUdNRU5UIGV2ZW50LgoJICBBUEk6IGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCgpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwoKQoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBZGQgYXBwbGllZF9yYXRlIHRvIEdzdFNlZ21lbnQgc3RydWN0dXJlLgoJICBNYWtlIGNhbGN1bGF0aW9uIG9mIHN0cmVhbV90aW1lIGFuZCBydW5uaW5nX3RpbWUgbW9yZSBjb3JyZWN0CgkgIHdydCByYXRlL2FwcGxpZWRfcmF0ZS4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmFwcGxpZWRfcmF0ZSBmaWVsZAoJICBBUEk6IGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwoKTsKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgUGFyc2UgYW5kIHVzZSBhcHBsaWVkX3JhdGUgaW4gdGhlIEdzdFNlZ21lbnQgZmllbGQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBjaGVjayBmb3IgYXBwbGllZF9yYXRlIGZpZWxkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RzZWdtZW50c19zdWl0ZSk6CgkgIEFkZCBtb3JlIGNoZWNrcyBmb3IgdmFyaW91cyBHc3RTZWdtZW50IG9wZXJhdGlvbnMuCgoyMDA2LTA1LTA4IDA5OjE2OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTdG9yZSB0aGUgc3luYyB0aW1lIG9mIHRoZSBidWZmZXIgZW5kIHBvc2l0aW9uIHNlcGFyYXRseSBpbiBhIG5ldyB2YXJpYWJsZSBlb3NfcnRpbWUgc28gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTdG9yZSB0aGUgc3luYyB0aW1lIG9mIHRoZSBidWZmZXIgZW5kIHBvc2l0aW9uIHNlcGFyYXRseSBpbiBhCgkgIG5ldyB2YXJpYWJsZSBlb3NfcnRpbWUgc28gd2UgY2FuIHByb3Blcmx5IHN5bmMgdGhlIEVPUyBldmVudC4KCSAgRml4ZXMgIzM0MDY5Ny4KCSAgRml4IHRoZSBkb2NzIGZvciBnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCgpLgoJICBEb24ndCBzZXQgc2VnbWVudCBzdGFydCB0byBpbnZhbGlkIHZhbHVlIHdoZW4gd2UgcmVjZWl2ZSBhCgkgIG5vbiBUSU1FIG5ld3NlZ21lbnQuCgkgIGdldCBjbG9zZXIgdG8gaGFuZGxpbmcgcG9zaXRpb24gcmVwb3J0aW5nIGZvciBuZWdhdGl2ZSByYXRlcwoJICBjb3JyZWN0bHkuCgoyMDA2LTA1LTA3IDE5OjU3OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBEb2NzIGFib3V0IGhvdyB0byBwcmludCBjYXBzIGZvciBkZWJ1ZyBwdXJwb3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgRG9jcyBhYm91dCBob3cgdG8gcHJpbnQgY2FwcyBmb3IgZGVidWcgcHVycG9zZXMuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpOgoJICB1c2UgZ3N0X2NhcHNfbWFrZV93cml0YWJsZSBpbnN0ZWFkIG9mIGdzdF9jYXBzX2NvcHksIEZpeGVzICMzNDA2MDgKCjIwMDYtMDUtMDYgMjE6NDU6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IHVzZSBmdWxsIGVudW0gbmFtZXMgYW5kIHByZXByZW5kIGEgJyUnIGluIGRvY3Mgc3RyaW5ncyB0byBtYWtlIHJlY2VudCBndGstZG9jIHR1cm4gdGhhdCBpbnRvIGEgbGluawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICB1c2UgZnVsbCBlbnVtIG5hbWVzIGFuZCBwcmVwcmVuZCBhICclJyBpbiBkb2NzIHN0cmluZ3MgdG8gbWFrZSByZWNlbnQKCSAgZ3RrLWRvYyB0dXJuIHRoYXQgaW50byBhIGxpbmsKCjIwMDYtMDUtMDUgMjE6NDQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgdHlwbyBmaXhlcywgc29tZSBhZGRpdGlvbnMsIHNvbWUgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIFNvbWUgdHlwbyBmaXhlcywgc29tZSBhZGRpdGlvbnMsIHNvbWUgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTA1LTA1IDE3OjQ1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBVc2UgdGhlIHN0cmluZyBwYXNzZWQgdG8gZ19vcHRpb25fY29udGV4dF9uZXcoKSBmb3Igd2hhdCBpdCdzIGludGVuZGVkIGZvciAtIHRoZSBwcm9ncmFtIG5hbWUgaXMgYWxyZWFkeSBwcmluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgVXNlIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgZm9yCgkgIHdoYXQgaXQncyBpbnRlbmRlZCBmb3IgLSB0aGUgcHJvZ3JhbSBuYW1lIGlzIGFscmVhZHkKCSAgcHJpbnRlZCBlbHNld2hlcmUuCgoyMDA2LTA1LTA1IDE3OjA3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBBZGQgYmFjayAtLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0MDQ2MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvdG9vbHMuaDoKCSAgQWRkIGJhY2sgLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDA0NjApLgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAoaGF2ZV90eXBlX2hhbmRsZXIpLCAodHlwZWZpbmRfZmlsZSksIChtYWluKToKCSAgQWRkIC0tdmVyc2lvbiBvcHRpb24gYW5kIHVzZSBHT3B0aW9uIGZvciBhcmd1bWVudCBwYXJzaW5nOyByZWZhY3RvciBhCgkgIGJpdDsgYWNjZXB0IGRpcmVjdG9yaWVzIGFzIGFyZ3VtZW50cyBhbmQgcmVjdXJzZSBpbnRvIHRoZW07IGxhc3RseSwKCSAgcHJpbnQgYSBkZWNlbnQgZXJyb3IgbWVzc2FnZSB3aGVuIHRoaW5ncyBnbyB3cm9uZy4KCjIwMDYtMDUtMDUgMTQ6Mzg6MDEgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBEb24ndCBtZW50aW9uIEdzdFRocmVhZCAoIzM0MDYxMSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvbid0IG1lbnRpb24gR3N0VGhyZWFkICgjMzQwNjExKQoJICBVcGRhdGUgbGluayB0byBHT2JqZWN0IHR1dG9yaWFsICgjMzQwNjA3KQoKMjAwNi0wNS0wNSAxNDoyNzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZCBub3RlIGFib3V0IHJlZmNvdW50aW5nIGFuZCBtaW5pb2JqZWN0L2J1ZmZlciB3cml0ZWFiaWxpdHkgdG8gZG9jcy4gRml4ZXMgIzM0MDYwNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgQWRkIG5vdGUgYWJvdXQgcmVmY291bnRpbmcgYW5kIG1pbmlvYmplY3QvYnVmZmVyIHdyaXRlYWJpbGl0eQoJICB0byBkb2NzLiBGaXhlcyAjMzQwNjA0CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIEFkZGVkIHNvbWUgZXhwbGFuYXRpb24gYWJvdXQgQGtsYXNzLgoKMjAwNi0wNS0wNSAxNDowOToyMSArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgQXZvaWQgQ09SQkEgJiBCb25vYm8gcmVmZXJlbmNlcyAoIzM0MDU5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEF2b2lkIENPUkJBICYgQm9ub2JvIHJlZmVyZW5jZXMgKCMzNDA1OTgpCgoyMDA2LTA1LTA1IDEzOjUzOjI4ICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEZpeCB1cCBzb21lIGluYWNjdXJhY2llcyBhbmQgb21pc3Npb25zIGluIEFETSAoIzM0MDYwOSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB1cCBzb21lIGluYWNjdXJhY2llcyBhbmQgb21pc3Npb25zIGluIEFETSAoIzM0MDYwOSkKCjIwMDYtMDUtMDUgMTI6NTM6MzMgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFNtYWxsIHR5cG8gaW4gZG9jcyAoIzM0MDYyNSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNtYWxsIHR5cG8gaW4gZG9jcyAoIzM0MDYyNSkKCjIwMDYtMDUtMDUgMDk6MDE6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE1ha2UgJ21ha2UgLWonIHByb29mIChzZWUgIzM0MDY5OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTWFrZSAnbWFrZSAtaicgcHJvb2YgKHNlZSAjMzQwNjk4KS4KCjIwMDYtMDUtMDUgMDg6NTY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYi0yLjggaGVyZSBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYi0yLjggaGVyZSBhcyB3ZWxsLgoKMjAwNi0wNS0wNSAwODoxNzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBwcmUgZ2xpYjIuOCBjb21wYXRpYmlsaXR5LCBmaXhlcyAjMzQwNTA4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZiksIChnc3Rfb2JqZWN0X3JlcGxhY2UpLCAoZ3N0X29iamVjdF9kaXNwb3NlKSwKCSAgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBSZW1vdmUgcHJlIGdsaWIyLjggY29tcGF0aWJpbGl0eSwgZml4ZXMgIzM0MDUwOAoKMjAwNi0wNS0wNCAxODoxNDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IE1lbnRpb24gdHlwZSBvZiB0YWdzIGluIGRvYyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIE1lbnRpb24gdHlwZSBvZiB0YWdzIGluIGRvYyBibHVyYnMuCgoyMDA2LTA1LTA0IDE2OjM0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVzdG9yZSBhY2NlcHRjYXBzIGNoZWNraW5nIGJlaGF2aW91ciBub3cgdGhhdCBnb29kIHBsdWdpbnMgaGF2ZSBiZWVuIHJlbGVhc2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9wdXNoKToKCSAgUmVzdG9yZSBhY2NlcHRjYXBzIGNoZWNraW5nIGJlaGF2aW91ciBub3cgdGhhdCBnb29kIHBsdWdpbnMgaGF2ZQoJICBiZWVuIHJlbGVhc2VkLgoKMjAwNi0wNS0wNCAxNToyMDoxNCArMDAwMCAgSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwQHRhcnRhcnVzLnV3YS5lZHUuYXU+CgoJICBNYWtlIHN1cmUgZ3N0cHJpdmF0ZS5oIGFuZC9vciBjb25maWcuaCBhcmUgYWx3YXlzIGluY2x1ZGVkIGZpcnN0LCBvdGhlcndpc2Ugc29tZSBvZiBvdXIgZGVmaW5lcyAobGlrZSBfRklMRV9PRkZTRVRfQkkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKYW1lcyBBbmRyZXdhcnRoYSA8dHJzODAgYXQgdGFydGFydXMgdXdhIGVkdSBhdT4KCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBNYWtlIHN1cmUgZ3N0cHJpdmF0ZS5oIGFuZC9vciBjb25maWcuaCBhcmUKCSAgYWx3YXlzIGluY2x1ZGVkIGZpcnN0LCBvdGhlcndpc2Ugc29tZSBvZiBvdXIKCSAgZGVmaW5lcyAobGlrZSBfRklMRV9PRkZTRVRfQklUUykgbWlnaHQgYmUKCSAgcmVkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVycy4gRml4ZXMgYnVpbGQKCSAgb24gb3BlbnNvbGFyaXMgKCMzNDAwMTYpLgoKMjAwNi0wNS0wNCAxNDoxOTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFQSTogYWRkaXRpb246IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBhZGRpdGlvbjogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcHVzaCksCgkgIChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX3Rha2UpLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpLAoJICAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBQcmVwYXJlIGZvciBvcHRpbWl6aW5nIHRoZSBoZWxsIG91dCBvZiB0aGlzIGh1Z2VseSBpbmVmZmljaWVudAoJICBwaWVjZSBvZiBjb2RlLgoJICBBZGRlZCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIHNvIHdlIGNhbiBhdCBsZWFzdCBzdGFydCB0aGlua2luZwoJICBhYm91dCBzdWJidWZmZXJpbmcgYW5kIG1lcmdpbmcuCgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYWRhcHRlcl9zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgR3N0QWRhcHRlciBjaGVjay4KCjIwMDYtMDUtMDQgMTM6MzA6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDogRml4IHNvbWUgdHlwb3MsIGFkZCBibHVyYiBhYm91dCBidWZmZXIgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBGaXggc29tZSB0eXBvcywgYWRkIGJsdXJiIGFib3V0IGJ1ZmZlciBmbGFncy4KCjIwMDYtMDUtMDMgMTY6NDU6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogbWFrZSBzdXJlIEdzdEJhc2VUcmFuc2Zvcm1DbGFzcyBzaG93cyB1cCBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBtYWtlIHN1cmUgR3N0QmFzZVRyYW5zZm9ybUNsYXNzIHNob3dzIHVwIGluIHRoZSBkb2NzCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIG1vdmUgZG9jcyBzbyBndGstZG9jIHBpY2tzIGl0IHVwIG5vdwoKMjAwNi0wNS0wMyAxNjo0MjowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgd2hpdGVzcGFjZSByZW1vdmFsIGFuZCB3aWR0aCBjb2VyY2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSByZW1vdmFsIGFuZCB3aWR0aCBjb2VyY2lvbgoKMjAwNi0wNS0wMyAxNjo0MDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgd2hpdGVzcGFjZSBtb3ZpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgbW92aW5nCgoyMDA2LTA1LTAyIDE3OjI5OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBhZGQgbWlzc2luZyBzeW1ib2xzIHRvIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG1pc3Npbmcgc3ltYm9scyB0byBkb2NzCgoyMDA2LTA1LTAyIDE3OjE3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGJhY2sgb3V0IHRoZSBuZXdzZWdtZW50IGhhbmRsaW5nIGNoYW5nZSwgc2VlICMzNDAwNjAgZm9yIG9uZ29pbmcgZGlzY3Vzc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgYmFjayBvdXQgdGhlIG5ld3NlZ21lbnQgaGFuZGxpbmcgY2hhbmdlLCBzZWUgIzM0MDA2MCBmb3Igb25nb2luZwoJICBkaXNjdXNzaW9uCgoyMDA2LTA0LTI5IDIzOjE1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBGaXggd3JvbmcgZ19maWxlX3Rlc3QoKSB1c2FnZSAoc2VlIGdsaWIgZG9jcyBmb3Igd2h5IGl0IGRvZXNuJ3Qgd29yayk7IGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKGdldF9jYW5kaWRhdGVzKSwgKG1haW4pOgoJICBGaXggd3JvbmcgZ19maWxlX3Rlc3QoKSB1c2FnZSAoc2VlIGdsaWIgZG9jcyBmb3Igd2h5IGl0IGRvZXNuJ3QKCSAgd29yayk7IGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuIEZpeGVzICMzNDAwNzkuCgoyMDA2LTA0LTI5IDAwOjM4OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNi0wNC0yOSAwMDozNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHVwbG9hZC5tYWsgdG8gY29tbW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkgICogZG9jcy9zbGlkZXMvTWFrZWZpbGUuYW06CgkgICogZG9jcy91cGxvYWQubWFrOgoJICAqIGNvbW1vbi91cGxvYWQubWFrOgoJICBtb3ZlIHVwbG9hZC5tYWsgdG8gY29tbW9uCgoyMDA2LTA0LTI5IDAwOjM1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBhZGQgbW9yZSBub3RlcyBvbiBtb3ZpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIG5vdGVzIG9uIG1vdmluZwoKMjAwNi0wNC0yOSAwMDozMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogYWRkIG1vcmUgYXNzZXJ0cyBvbiByZWZjb3VudHMgZG8gbW9yZSBjbGVhbnVwIGF0IGVuZCBvZiB0ZXN0cyBmaXggdGVzdCBsZWFrcyBzaG93aW5nIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMjkgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBtb3JlIGFzc2VydHMgb24gcmVmY291bnRzCgkgIGRvIG1vcmUgY2xlYW51cCBhdCBlbmQgb2YgdGVzdHMKCSAgZml4IHRlc3QgbGVha3Mgc2hvd2luZyBpbiBGQzUKCjIwMDYtMDQtMjggMjI6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IHJldmVydGVkIHdyb25nIGNoYW5nZSBhbmQgcmVmbG93ZWQgY29kZSB0byBhdm9pZCBvdGhlcnMgZmFsbGluZyBpbnRvIHRoaXMgdHJhcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIHJldmVydGVkIHdyb25nIGNoYW5nZSBhbmQgcmVmbG93ZWQgY29kZSB0byBhdm9pZCBvdGhlcnMgZmFsbGluZyBpbnRvCgkgIHRoaXMgdHJhcAoKMjAwNi0wNC0yOCAyMDo1NTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBmaXggY2hhbmdlbG9nIGVudHJ5IGFib3V0IGxhc3QgY29sbGVjdHBhZHMgY2hhbmdlLCBhZGQgbm90ZXMgYWJvdXQgcHJvcGVyIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgZml4IGNoYW5nZWxvZyBlbnRyeSBhYm91dCBsYXN0IGNvbGxlY3RwYWRzIGNoYW5nZSwKCSAgYWRkIG5vdGVzIGFib3V0IHByb3BlciBmaXgKCjIwMDYtMDQtMjggMjA6NDc6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgoyMDA2LTA0LTI4IDIwOjQ0OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoKMjAwNi0wNC0yOCAxODo1NToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWFrZSBHc3RFbGVtZW50RGV0YWlscyBjb25zdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBtYWtlIEdzdEVsZW1lbnREZXRhaWxzIGNvbnN0CgoyMDA2LTA0LTI4IDE4OjQ4OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogbW9yZSBkZXRhaWxlZCBkZWJ1ZyBhbmQgZm9ybWF0dGluZyBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBtb3JlIGRldGFpbGVkIGRlYnVnIGFuZCBmb3JtYXR0aW5nIGNsZWFudXAKCjIwMDYtMDQtMjggMTc6NTI6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBjbGVhbnVwIGRvdWJsZSBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKToKCSAgY2xlYW51cCBkb3VibGUgY29kZQoKMjAwNi0wNC0yOCAxNzozMzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IHNvbWUgbGl0dGxlIHR1bmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKToKCSAgc29tZSBsaXR0bGUgdHVuaW5nCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIGEgbmV3IHRlc3QgZm9yIGxpdmUgdmFsdWUgaGFuZGxpbmcKCjIwMDYtMDQtMjggMTU6NTE6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEdpdmUgY3JlZGl0IHRvIFRhcGkgUGFhdm9sYSBmb3IgbGFzdCBwYXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2l2ZSBjcmVkaXQgdG8gVGFwaSBQYWF2b2xhIGZvciBsYXN0IHBhdGNoCgoyMDA2LTA0LTI4IDE1OjQ4OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHB1c2hfYW5kX3JlZik6CgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBGaXggcmVmY291bnQgaXNzdWUgd2hpdGggZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpIGhlbHBlcgoJICBmdW5jdGlvbi4gRml4ZXMgIzMzODMzNQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgdGVzdHN1aXRlIGZvciBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkuCgoyMDA2LTA0LTI4IDEzOjUxOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogQXZvaWQgTlVMTCBkZXJlZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUgZmxhZ3MgY29udGFpbmluZyBpbnZhbGlkIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgQXZvaWQgTlVMTCBkZXJlZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUgZmxhZ3MgY29udGFpbmluZwoJICBpbnZhbGlkIHZhbHVlcy4KCjIwMDYtMDQtMjggMTM6NDQ6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBzbWFsbCBkb2MgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBkb2MgZml4CgoyMDA2LTA0LTI4IDEzOjQzOjAzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBJZiB3ZSBnZXQgRU9TIGJlZm9yZSBhbnkgZGF0YSBpcyBhY2N1bXVsYXRlZCwgZG9uJ3QgdXNlIHVuaW5pdGlhbGlzZWQgbG9jYWwgdmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBJZiB3ZSBnZXQgRU9TIGJlZm9yZSBhbnkgZGF0YSBpcyBhY2N1bXVsYXRlZCwgZG9uJ3QgdXNlCgkgIHVuaW5pdGlhbGlzZWQgbG9jYWwgdmFyaWFibGVzLgoKMjAwNi0wNC0yOCAxMzo0MDoxNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXhlcyBpbiByZWFkaW5nL3dyaXRpbmcgZXZlbnRzIG92ZXIgR0RQIChub3QgY3VycmVudGx5IHVzZWQ/KSAtIGRlcmVmZXJlbmNpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBGaXhlcyBpbiByZWFkaW5nL3dyaXRpbmcgZXZlbnRzIG92ZXIgR0RQIChub3QgY3VycmVudGx5IHVzZWQ/KSAtCgkgIGRlcmVmZXJlbmNpbmcgTlVMTCBldmVudHMgZm9yIHVua25vd24vaW52YWxpZCBldmVudCB0eXBlcywgbWVtb3J5CgkgIGxlYWssIGFuZCBjaGFuZ2UgZ193YXJuaW5nIHRvIEdTVF9XQVJOSU5HLgoKMjAwNi0wNC0yOCAxMzoyNTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiBmcmFtZSBkcm9wcGluZyBpcyBlbmFibGVkLCB3ZSBzaG91bGQgbm90IGlnbm9yZSBmcmFtZXMgd2l0aG91dCBhIGR1cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcmVuZGVyX3N0YXRzKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFdoZW4gZnJhbWUgZHJvcHBpbmcgaXMgZW5hYmxlZCwgd2Ugc2hvdWxkIG5vdCBpZ25vcmUgZnJhbWVzCgkgIHdpdGhvdXQgYSBkdXJhdGlvbi4KCSAgVXBkYXRlIHNvbWUgZG9jdW1lbnRhdGlvbi4KCjIwMDYtMDQtMjggMTM6MTg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDQtMjggMTM6MTY6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiBoYW5kbGUgRUFHQUlOLCBFSU5UUiBhbmQgc2hvcnQgd3JpdGVzIGNvcnJlY3RseS4gQWxzbyBjbGVhbiB1cCBzb21lIGVycm9yIGNhc2VzLCBhdm9pZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlciksCgkgIChnc3RfZmRfc2lua19jaGVja19mZCksIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICBoYW5kbGUgRUFHQUlOLCBFSU5UUiBhbmQgc2hvcnQgd3JpdGVzIGNvcnJlY3RseS4gQWxzbyBjbGVhbgoJICB1cCBzb21lIGVycm9yIGNhc2VzLCBhdm9pZCBhIGRlYWRsb2NrIG9uIGJhZCBmaWxlIGRlc2NyaXB0b3JzIGFuZAoJICB1c2UgR1NUX0RFQlVHX09CSkVDVC4KCSAgRml4ZXMgIzMzOTg0MwoKMjAwNi0wNC0yOCAxMzoxMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb24ndCB0cnkgdG8gc2VyaWFsaXplIGEgR1ZhbHVlIHdpdGggYSBOVUxMIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKToKCSAgRG9uJ3QgdHJ5IHRvIHNlcmlhbGl6ZSBhIEdWYWx1ZSB3aXRoIGEgTlVMTCBidWZmZXIuCgkgIEZpeGVzICMzMzk4MjEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3Igc2VyaWFsaXNhdGlvbiBvZiBOVUxMIGJ1ZmZlcnMuCgoyMDA2LTA0LTI4IDEzOjEwOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogVGFraW5nIGEgTlVMTCBtaW5pb2JqZWN0IGlzIHZhbGlkLCBmaXggdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIHVucmVmIHRoZSBOVUxMIG1pbmlvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCk6CgkgIFRha2luZyBhIE5VTEwgbWluaW9iamVjdCBpcyB2YWxpZCwgZml4IHRoZSBjYXNlIHdoZXJlCgkgIHdlIHRyeSB0byB1bnJlZiB0aGUgTlVMTCBtaW5pb2JqZWN0LgoKMjAwNi0wNC0yOCAxMzowNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgoyMDA2LTA0LTI4IDEzOjA0OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0Bzb25pY3B1bHNlLmRlPgoKCSAgZ3N0L2dzdGJpbi5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pYyBhdCBzb25pY3B1bHNlIGRvdCBkZT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBVcGRhdGUgZG9jcy4KCSAgRG9uJ3QgbGVhayBiaW4gcmVmY291bnQgd2hlbiBhIHN0YXRlIHJlY2FsYyBpcwoJICBpbiBwcm9ncmVzcyBhbmQgd2UgZGVsYXkgYW5vdGhlciBvbmUgIzMzOTgwOC4KCjIwMDYtMDQtMjggMTI6NTg6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBNZW50aW9uIFFvUyBhcyBhbiBvbmdvaW5nIHdvcmsgaXRlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgTWVudGlvbiBRb1MgYXMgYW4gb25nb2luZyB3b3JrIGl0ZW0uCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBOZXcgZG9jIGFib3V0IGJ1ZmZlcmluZyB0aGF0IG5lZWRzIHRvIGJlIGZsZXNoZWQgb3V0CgkgIGF0IHNvbWUgcG9pbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBNb3JlIFFvUyBwb2xpY3kgZm9yIGRlY29kZXJzL2RlbXV4ZXJzL3RyYW5zZm9ybXMKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBTbWFsbCB1cGRhdGUuCgoyMDA2LTA0LTI4IDEwOjU2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC41ID09PQoKMjAwNi0wNC0yOCAxMDo1MzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC41CgoyMDA2LTA0LTI4IDA5OjQ4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSAgZml4IHVwbG9hZC5tYWs7IHNob3VsZCBtb3ZlIHRvIGNvbW1vbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwbG9hZC5tYWs7IHNob3VsZCBtb3ZlIHRvIGNvbW1vbgoKMjAwNi0wNC0yOCAwOToyMDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgYWRkaW5nIG1pc3NpbmcgZHNwIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbWlzc2luZyBkc3AgZmlsZXMKCjIwMDYtMDQtMjYgMTM6NTQ6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDQtMjIgMjE6MzQ6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4gIEZpeGVzICMzMzg3MTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogV2ltIFRheW1hbnMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9wdXNoKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgRml4IGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuICBGaXhlcyAjMzM4NzExLgoKMjAwNi0wNC0xMiAxMTo1ODo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IERvbid0IGxlYWsgdGhlIGZhY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgdGhlIGZhY3RvcnkuCgoyMDA2LTA0LTEyIDExOjA2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNi0wNC0xMiAxMTowNDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoKMjAwNi0wNC0xMiAxMDo1NzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTA0LTEyIDEwOjI4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZyZWUgYWxsb2NhdGVkIEdzdFRpbWVkVmFsdWVzIHdoZW4gZnJlZWluZyBsaXN0IG5vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgIEZyZWUgYWxsb2NhdGVkIEdzdFRpbWVkVmFsdWVzIHdoZW4gZnJlZWluZyBsaXN0IG5vZGVzLgoJICBTaG91bGQgZml4IGxlYWtzICdtYWtlIGNoZWNrLXZhbGdyaW5kJyBjb21wbGFpbnMgYWJvdXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBBZGQgZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsLgoKMjAwNi0wNC0xMiAxMDoxNToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGZpeCBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBDaGFuZ2VMb2cKCjIwMDYtMDQtMTEgMjE6MDc6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZGVkIG5ldyBtZXRob2QgX3Vuc2V0X2FsbCgpIGFuZCBmaXhlZCBfdW5zZXQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQWRkZWQgbmV3IG1ldGhvZCBfdW5zZXRfYWxsKCkgYW5kIGZpeGVkIF91bnNldCgpCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZGVkIHR3byB0ZXN0Y2FzZXMgZm9yIG5ldyBhbmQgZml4ZWQgbWV0aG9kCgoyMDA2LTA0LTExIDE4OjQzOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogTVNHX0RPTlRXQUlUIGlzIG5vdCBkZWZpbmVkIG9uIEN5Z3dpbiwgc28gd29yayBhcm91bmQgdGhhdCAoZml4ZXMgIzMxNzA0OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICBNU0dfRE9OVFdBSVQgaXMgbm90IGRlZmluZWQgb24gQ3lnd2luLCBzbyB3b3JrCgkgIGFyb3VuZCB0aGF0IChmaXhlcyAjMzE3MDQ4KS4KCjIwMDYtMDQtMTEgMTQ6NDg6MzQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdmVyc2lvbmluZyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHZlcnNpb25pbmcgbWFjcm8KCjIwMDYtMDQtMTEgMTE6NDc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3RlciksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSksIChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOgoJICBTb21lIGNsZWFudXBzLgoJICBGaXhlZCBhIEZJWE1FLgoJICBVcGRhdGVkIGRvY3MgKEZpeGVzICMxMzEwNzkpCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIGVsZW1lbnRmYWN0b3J5IGNsYXNzIGZpZWxkLgoKMjAwNi0wNC0xMCAxMDo0Njo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKToKCSAgQ2FsY3VsYXRlIG1vcmUgYWNjdXJhdGUgcmF0ZSB2YWx1ZXMuCgoyMDA2LTA0LTA5IDE2OjU3OjM0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogYWRkIGEgbmV3ICNpZmRlZiB0byB1c2UgX19kZWNsc3BlYyhkbGxpbXBvcnQpIG9ubHkgZm9yIG90aGVyIG1vZHVsZXMgYW5kIG5vdCBmb3IgZ3N0cmVhbWVyIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGFkZCBhIG5ldyAjaWZkZWYgdG8gdXNlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBvbmx5IGZvcgoJICBvdGhlciBtb2R1bGVzIGFuZCBub3QgZm9yIGdzdHJlYW1lciBjb3JlCgkgICogZ3N0L2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKToKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb24KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJICB1cGRhdGUgcHJvamVjdCBmaWxlcwoKMjAwNi0wNC0wOCAyMDo1NzozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwKCSAgKGdzdF9zaWduYWxfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6IChnc3RfZXhhbXBsZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOiAoZ3N0X3Rlc3RfY2xhc3NfaW5pdCk6CgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgoyMDA2LTA0LTA4IDE4OjExOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBNdXN0IHNldCBwZWVyIHBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIGxpbmsgZnVuY3Rpb24sIG90aGVyd2lzZSBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgbGluayBmdW5jdGlvbiBtaWdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGluayk6CgkgIE11c3Qgc2V0IHBlZXIgcGFkcyBiZWZvcmUgY2FsbGluZyB0aGUgbGluayBmdW5jdGlvbiwgb3RoZXJ3aXNlCgkgIGEgdGFzayBzdGFydGVkIGZyb20gYSBsaW5rIGZ1bmN0aW9uIG1pZ2h0IGdldCBhIGZsb3ctbm90LWxpbmtlZAoJICByZXN1bHQgd2hlbiB0cnlpbmcgdG8gcHVzaCBiZWNhdXNlIHRoZSBvdGhlciB0aHJlYWQgd2hlcmUgdGhlCgkgIGxpbmtpbmcgaGFwcGVucyBoYXNuJ3QgaGFkIGEgY2hhbmNlIHRvIHNldCB0aGUgcGVlcnMgeWV0LiBUaGlzCgkgIG1pZ2h0IGhhcHBlbiBmb3IgZXhhbXBsZSB3aGVuIGEgcXVldWUgZ2V0cyBsaW5rZWQgdG8gYSBkb3duc3RyZWFtCgkgIGVsZW1lbnQsIGFzIHF1ZXVlIHN0YXJ0cyBhIHN0cmVhbWluZyB0YXNrIHdoZW4gaXRzIHNvdXJjZSBwYWQKCSAgZ2V0cyBsaW5rZWQuIEhhcHBlbnMgaW4gcmVhbCBsaWZlIHdoZW4gcGxheWluZyBiYWNrIGZsYWMvbXVzZXBhY2sKCSAgZmlsZXMgaW4gcGxheWJpbiAoIzMzMjM5MCkuCgoyMDA2LTA0LTA4IDE4OjA1OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgoyMDA2LTA0LTA3IDE1OjE5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbml0aWFsaXplIHN0YXJ0IGFuZCBzdG9wIHRpbWVzLCB0aGFua3MgdmFsZ3JpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJbml0aWFsaXplIHN0YXJ0IGFuZCBzdG9wIHRpbWVzLCB0aGFua3MgdmFsZ3JpbmQuCgoyMDA2LTA0LTA3IDE0OjUwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZSBhIGJpdCBuaWNlciB0byBiYWRseSBiZWhhdmluZyB1cHN0cmVhbSBlbGVtZW50cyB0aGF0IGV4cGVjdCB1cyB0byBkZWFsIHdpdGggbm9uIFRJTUUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBCZSBhIGJpdCBuaWNlciB0byBiYWRseSBiZWhhdmluZyB1cHN0cmVhbSBlbGVtZW50cyB0aGF0IGV4cGVjdAoJICB1cyB0byBkZWFsIHdpdGggbm9uIFRJTUUgc2VnbWVudHMgYW5kIHRpbWVzdGFtcHMgKHN1Y2ggYXMgZmFrZXNyYwoJICBpbiB0aGUgdGVzdHN1aXRlKS4KCjIwMDYtMDQtMDcgMTQ6MDI6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IFNtYWxsIGRvY3VtZW50YXRpb24gY2xhcmlmaWNhdGlvbiBhYm91dCB0aGUgc2lnbmFsIHdhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xhcmlmaWNhdGlvbiBhYm91dCB0aGUgc2lnbmFsIHdhdGNoLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcmVuZGVyX3N0YXRzKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIENvbnZlcnQgYW5kIHN0b3JlIHRpbWVzdGFtcHMgaW4gc3RyZWFtIHRpbWUgYW5kIHJ1bm5pbmcgdGltZSwgdGhlCgkgIHJhdyB0aW1lc3RhbXBzIGFyZSBub3QgdXNlZnVsbCwgYWxzbyBkb2N1bWVudCB0aGlzIGJldHRlci4KCSAgVXNlIGRpZmZlcmVudCB3aW5kb3cgc2l6ZXMgZm9yIGdvb2QgYW5kIGJhZCBRb1Mgb2JzZXJ2YXRpb25zIHNvCgkgIHdlIHJlYWN0IHRvIGJhZG5lc3MgYSBsaXR0bGUgcXVpY2tlci4KCSAgS2VlcCB0cmFjayBvZiB0aGUgYW1vdW50IG9mIHJlbmRlcmVkIGFuZCBkcm9wcGVkIGJ1ZmZlcnMuCgkgIFNlbmQgUW9TIHRpbWVzdGFtcHMgaW4gcnVubmluZyB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgQ29tcGFyZSBRb1MgdGltZXN0YW1wcyBhZ2FpbnN0IHJ1bm5pbmcgdGltZS4KCjIwMDYtMDQtMDYgMTc6MzY6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ25vbmxpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdub25saW4KCjIwMDYtMDQtMDYgMTU6NDY6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IFR5cG8gZml4ZXMgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBUeXBvIGZpeGVzIGluIGRvY3MuCgoyMDA2LTA0LTA2IDE1OjA3OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBnX3ZhbHVlX2dldF9vYmplY3QoKSBpbnN0ZWFkIG9mIGdfdmFsdWVfZHVwX2dzdF9vYmplY3QoKSwgdG8gYXZvaWQgZG91YmxlLXJlZmZpbmcgdGhlIHBhZCB0ZW1wbGF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcHJvcGVydHkpOgoJICBVc2UgZ192YWx1ZV9nZXRfb2JqZWN0KCkgaW5zdGVhZCBvZiBnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KCksCgkgIHRvIGF2b2lkIGRvdWJsZS1yZWZmaW5nIHRoZSBwYWQgdGVtcGxhdGUgKHdoaWNoIHdlIHRoZW4gc2luaywKCSAgc28gdGhpcyB3b3JrZWQgcHJldmlvdXNseSBpZiAoYW5kIG9ubHkgaWYpIHRoZSBwYWQgdGVtcGxhdGUKCSAgd2FzIGZsb2F0aW5nLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpOgoJICBOZXZlciByZXR1cm4gZmxvYXRpbmcgcmVmZXJlbmNlcyB0byBwYWQgdGVtcGxhdGVzLCBjcmVhdGUKCSAgdGhlbSBhcyBpbml0aWFsbHktc3Vua2VuLgoJICBEb2N1bWVudCBhbiBleHRyYSBmdW5jdGlvbiAoYW5kIG1ha2UgdGhpcyBzdG9wIHNpbmtpbmcgb3VyCgkgIHBhZCB0ZW1wbGF0ZSwgc2luY2UgdGhhdCBpcyBub3cgZ3VhcmFudGVlZCB0byBkbyBub3RoaW5nLAoJICBzaW5jZSB3ZSBjcmVhdGVkIGl0IHN1bmtlbikuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEZpeCBkb2NzIHR5cG8uCgoyMDA2LTA0LTA2IDExOjI3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogQWRkIHNvbWUgbmV3bGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfX2dzdF9pbl92YWxncmluZCk6CgkgIEFkZCBzb21lIG5ld2xpbmVzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBEb24ndCBsZWFrIGJ1ZmZlciBjYXBzLgoKMjAwNi0wNC0wNiAxMDozODo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogRml4IGEgbGVhayBpbiBwYXJzZS1sYXVuY2ggZm9yIGFueSBzb3VyY2Utb3Itc2luayBuYW1lZCBlbGVtZW50IHJlZmVyZW5jZXMgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IGEgbGVhayBpbiBwYXJzZS1sYXVuY2ggZm9yIGFueSBzb3VyY2Utb3Itc2luayBuYW1lZCBlbGVtZW50CgkgIHJlZmVyZW5jZXMgdXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpOgoJICBVbnJlZiB0aGUgcGlwZWxpbmUgaWYgaXQgZXhpc3RzIGFmdGVyIHdlJ3ZlIGZhaWxlZCBwYXJzaW5nLgoKMjAwNi0wNC0wNSAxNTo0NjowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFdoZW4gd2UgY3JlYXRlIGEgcGlwZWxpbmUgYnVzLCBpbml0aWFsbHkgY3JlYXRlIGl0IGluIGZsdXNoaW5nIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICBXaGVuIHdlIGNyZWF0ZSBhIHBpcGVsaW5lIGJ1cywgaW5pdGlhbGx5IGNyZWF0ZSBpdCBpbiBmbHVzaGluZyBtb2RlLgoJICBGaXhlcyBsZWFrcyBpbiBhdCBsZWFzdCBvbmUgdGVzdCwgYW5kIG1ha2VzIGEgbmV3IHBpcGVsaW5lIHdvcmsgdGhlCgkgIHNhbWUgYXMgb25lIHRoYXQgaGFzIGdvbmUgdG8gUkVBRFkgYW5kIHRoZW4gYmFjayB0byBOVUxMLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFR5cG8gZml4IGluIGRvY3MuCgoyMDA2LTA0LTA1IDE1OjEyOjM5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogVW5yZWYgYSBwYWQgd2UgcmVmZmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYSBwYWQgd2UgcmVmZmVkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBiaW5zCgoyMDA2LTA0LTA1IDEzOjE4OjI5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cXVlcnkuYzogRml4IGxlYWtpbmcgR1ZhbHVlcyBpbiBxdWVyaWVzLCBhcyBzaG93biBieSB2YWxncmluZC90ZXN0c3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpOgoJICBGaXggbGVha2luZyBHVmFsdWVzIGluIHF1ZXJpZXMsIGFzIHNob3duIGJ5IHZhbGdyaW5kL3Rlc3RzdWl0ZS4KCjIwMDYtMDQtMDUgMTI6MTE6MjAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogRml4IGEgdmFyaWV0eSBvZiBtZW1sZWFrcyBpbiBzaW5rcyBjaGVjaywgd2hpY2ggYXJlIG9ubHkgc29tZXRpbWVzIHNob3duIGJ5IHJ1bm5pbmcgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhIHZhcmlldHkgb2YgbWVtbGVha3MgaW4gc2lua3MgY2hlY2ssIHdoaWNoIGFyZSBvbmx5IHNvbWV0aW1lcwoJICBzaG93biBieSBydW5uaW5nIHRoZSB0ZXN0cyB1bmRlciB2YWxncmluZCAod2VpcmQ/KS4KCjIwMDYtMDQtMDUgMTE6MDQ6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOiBGaXggdGhlIHN1YnN0aXR1dGVkIGVudGl0eSBuYW1lIGFmdGVyIHRob21hcycgY2hhbmdlcyBvbiB0aGUgd2Vla2VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJICBGaXggdGhlIHN1YnN0aXR1dGVkIGVudGl0eSBuYW1lIGFmdGVyIHRob21hcycgY2hhbmdlcyBvbiB0aGUKCSAgd2Vla2VuZC4KCjIwMDYtMDQtMDUgMTA6MzE6MjAgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvZ3N0aW5mby5jOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX19nc3RfaW5fdmFsZ3JpbmQpOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YKCSAgVkFMR1JJTkRfUFJJTlRGCgoyMDA2LTA0LTA1IDEwOjI2OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOiBNb3JlIGRlYnVnLiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOiBNb3JlIGRlYnVnLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOiBXaGVuIHJlc2V0dGluZyBvdXIgc2VnbWVudCBvbgoJICBGTFVTSF9TVE9QLCBhbHNvIHVwZGF0ZSB0aGUgZmxhZyBzYXlpbmcgd2UgaGF2ZW4ndCBzZWVuIGEKCSAgbmV3c2VnbWVudC4KCjIwMDYtMDQtMDQgMTg6MDI6MDcgKzAwMDAgIFBhb2xvIEJvcmVsbGkgPHBib3JlbGxpQGthdGFtYWlsLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogbWlub3IgY2xlYW4tdXBzOiBHX0RFRklORV9UWVBFIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUgcGFyZW50X2NsYXNzIHN0dWZmLCBubyBuZWVkIHRvIGRvIGl0IHR3aWNlLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBhb2xvIEJvcmVsbGkgIDxwYm9yZWxsaSBhdCBrYXRhbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9wbHVnaW5fY2hlY2tfbGljZW5zZSk6CgkgIG1pbm9yIGNsZWFuLXVwczogR19ERUZJTkVfVFlQRSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgdGhlCgkgIHBhcmVudF9jbGFzcyBzdHVmZiwgbm8gbmVlZCB0byBkbyBpdCB0d2ljZS4gTWFyayBhcnJheSBvZgoJICBsaWNlbnNlIHN0cmluZ3MgYXMgY29uc3RhbnQuICgjMzM3MTAzKQoKMjAwNi0wNC0wNCAxNzo1NDozMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRnJlZSB0aGUgcmlnaHQgcGx1Z2luIGxpc3Q7IGZpeGVzIGEgbWVtb3J5IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2xpc3QpOgoJICBGcmVlIHRoZSByaWdodCBwbHVnaW4gbGlzdDsgZml4ZXMgYSBtZW1vcnkgbGVhay4KCjIwMDYtMDQtMDQgMTU6NDU6MzYgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IGVycm9yIG91dCBvbiBlbXB0eSBidWZmZXJzICgjMzM2OTQ1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzICA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBEb24ndCBlcnJvciBvdXQgb24gZW1wdHkgYnVmZmVycyAoIzMzNjk0NSkuCgoyMDA2LTA0LTA0IDE0OjU4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4gTWFrZSBCYXNlU2luayBhbmQgQmFzZVNyYyBkb2NzIGNvbnRhaW4gdGhlIGNsYXNzIHN0cnVjdHVyZSBzbyB0aGF0IHBlb3BsZSBjYW4gYWN0dWFsbHkgc2VlIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBNYWtlIEJhc2VTaW5rIGFuZCBCYXNlU3JjIGRvY3MgY29udGFpbiB0aGUKCSAgY2xhc3Mgc3RydWN0dXJlIHNvIHRoYXQgcGVvcGxlIGNhbiBhY3R1YWxseSBzZWUgdGhlIHByb3RvdHlwZXMgZm9yCgkgIHZpcnR1YWwgZnVuY3Rpb25zIHRoZXkncmUgc3VwcG9zZWQgdG8gYmUgb3ZlcnJpZGluZy4KCjIwMDYtMDQtMDQgMDg6NTU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBNb3JlIGRlYnVnIGluZm87IHdoZW4gc2tpcHBpbmcgdHlwZWZpbmRpbmcsIHNlbmQgY2FjaGVkIGV2ZW50cyBpbiBhbGwgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNb3JlIGRlYnVnIGluZm87IHdoZW4gc2tpcHBpbmcgdHlwZWZpbmRpbmcsIHNlbmQgY2FjaGVkCgkgIGV2ZW50cyBpbiBhbGwgY2FzZXMuCgoyMDA2LTA0LTAzIDE3OjA1OjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwNi0wNC0wMyAwODo1OTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgY29tbW9uIGRpcjsgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvbW1vbiBkaXI7IHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCjIwMDYtMDQtMDEgMTU6MzA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGRpc2FibGUgdXNlIG9mIEFTX0xJQlRPT0xfVEFHUywgaXQgZG9lc24ndCB3b3JrIGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSB1c2Ugb2YgQVNfTElCVE9PTF9UQUdTLCBpdCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5CgoyMDA2LTA0LTAxIDA5OjQxOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIG5ldyBBU19WRVJTSU9OIGFuZCBBU19OQU5PIG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBuZXcgQVNfVkVSU0lPTiBhbmQgQVNfTkFOTyBtYWNyb3MKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlIGFjY29yZGluZ2x5CgoyMDA2LTAzLTMxIDE1OjI2OjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEbyBub3QgdHlwZWZpbmQgY29udGVudCBpZiB0aGUgYnVmZmVycyBhbHJlYWR5IGhhdmUgY2Fwcy4gYW5kIHRoZSByaWdodCB0aGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIERvIG5vdCB0eXBlZmluZCBjb250ZW50IGlmIHRoZSBidWZmZXJzIGFscmVhZHkgaGF2ZSBjYXBzLgoJICBOZWNjZXNhcnkgZm9yIGljeWRlbXV4ICgjMzMzNjU3KSwgYW5kIHRoZSByaWdodCB0aGluZyB0byBkbyBhbnl3YXkuCgoyMDA2LTAzLTMwIDE2OjM2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNb3JlIFFvUyBtZWFzdXJlbWVudHMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3JlY29yZF9xb3Nfb2JzZXJ2YXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE1vcmUgUW9TIG1lYXN1cmVtZW50cyBhcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MuCgkgIEdldCByaWQgb2YgcmluZ2J1ZmZlciB3aXRoIG9ic2VydmF0aW9ucywgcnVubmluZyBhdmVyYWdlIGlzCgkgIG1vcmUgc2ltcGxlIGFuZCBlcXVhbGx5IGdvb2QuCgkgIENhbGN1bGF0ZXMgdmFsaWQgcHJvcG9ydGlvbiBub3cuCgkgIEFkZGVkIGJlZ2lubmluZyBvZiBmbG9vZCBtZWFzdXJlbWVudC4KCjIwMDYtMDMtMjkgMTM6NDU6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGFkZGl0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGFkZGl0aW9ucy4KCjIwMDYtMDMtMjkgMTM6Mzk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUGVyZm9ybSB0aGUgRU9TIGxvZ2ljIHdoZW4gd2UgcmVhY2ggdGhlIHNlZ21lbnQgc3RvcCBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFBlcmZvcm0gdGhlIEVPUyBsb2dpYyB3aGVuIHdlIHJlYWNoIHRoZSBzZWdtZW50IHN0b3AgcG9zaXRpb24uCgkgIEZpeCBjb21waWxhdGlvbiBvbiBnY2M0LjEKCjIwMDYtMDMtMjkgMTE6MDI6MzMgKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IEluIHF1ZXVlLCB3aGVuIEVPUyBpcyByZWNlaXZlZCwgaWYgbWluaW11bSB0aHJlc2hvbGQgPiBtYXhfc2l6ZSAtIGN1cnJlbnRfbGV2ZWwsIHRoZXJlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5IFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIEluIHF1ZXVlLCB3aGVuIEVPUyBpcyByZWNlaXZlZCwgaWYgbWluaW11bSB0aHJlc2hvbGQgPiBtYXhfc2l6ZSAtCgkgIGN1cnJlbnRfbGV2ZWwsIHRoZXJlIGlzIGNoYW5jZSB0aGF0IHF1ZXVlIGJsb2NrcyBmb3JldmVyIGluIGNvbmRpdGlvbmFsIGl0ZW0KCSAgZGVsIHdhaXQuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcXVldWUgaXMgbm90IGVtcHRpZWQgY29tcGxldGVseSBkdWUgdG8gbWluaW11bQoJICB0aHJlc2hvbGQuCgkgIEhlcmUgaXMgYW5vdGhlciBhcHByb2FjaC4gSW5zdGVhZCBvZiBzZXR0aW5nIGN1cl9sZXZlbHMgdG8gbWF4IGluIEVPUywganVzdAoJICB6ZXJvIGFsbCBtaW5pbXVtIHRocmVzaG9sZCBsZXZlbHMuIFRoaXMgc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHF1ZXVlIGdpdmVzIG91dAoJICBhbGwgZGF0YS4gV2hlbiBnb2luZyB0byBSRUFEWSAoc3RvcCkgc3RhdGUsIGp1c3QgcmVzZXQgdGhlIG9yaWdpbmFsIG1pbmltdW0KCSAgdGhyZXNob2xkIGxldmVscy4KCSAgRml4ZXMgIzMzNjMzNi4KCjIwMDYtMDMtMjkgMTA6MzM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBXaGVuIHR5cGVmaW5kaW5nIGlzIGRvbmUgaW4gcHVzaCBtb2RlLCB3ZSBzaG91bGQgY2FjaGUgZXZlbnRzIHdlIHJlY2VpdmUgZHVyaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFdoZW4gdHlwZWZpbmRpbmcgaXMgZG9uZSBpbiBwdXNoIG1vZGUsIHdlIHNob3VsZCBjYWNoZQoJICBldmVudHMgd2UgcmVjZWl2ZSBkdXJpbmcgdHlwZWZpbmRpbmcgaW5zdGVhZCBvZiBqdXN0CgkgIGRyb3BwaW5nIHRoZW0gKGUuZy4gbmV3c2VnbWVudCwgY3VzdG9tIGV2ZW50cyBmcm9tCgkgIGR2ZHJlYWRzcmMgZXRjLikgYW5kIHRoZW4gc2VuZCB0aGVtIG91dCBvbmNlIHdlJ3ZlCgkgIGRldGVybWluZWQgdGhlIHR5cGUgb2YgdGhlIHN0cmVhbSAoYW5kIGRlY29kZWJpbgoJICBoYXMgaGFkIGEgY2hhbmNlIHRvIHBsdWcgaW4gYSBkZWNvZGVyL2RlbXV4ZXIpLgoKMjAwNi0wMy0yNyAxODozODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRmlyc3QgUW9TIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpcnN0IFFvUyBpZGVhcy4KCjIwMDYtMDMtMjcgMTE6NDg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIGVsZW1lbnQgc2VlayBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgc3RyZWFtaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW5zcGlyZWQgYnkgYSBwYXRjaCBvZjogTHV0eiBNdWVsbGVyIDxsdXR6IGF0IHRvcGZyb3NlIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIGVsZW1lbnQgc2VlayBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgc3RyZWFtaW5nLgoJICBGaXhlcyAjMzI2OTk4LgoKMjAwNi0wMy0yNCAxODozODoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBTZXQgdXAgTERfTElCUkFSWV9QQVRIIHRvIHBvaW50IGF0IGFsbCB0aGUgZ3N0cmVhbWVyIGxpYnMuIFRoaXMgd2lsbCBhbGxvdyB5b3UgdG8gY29ycmVjdGx5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgU2V0IHVwIExEX0xJQlJBUllfUEFUSCB0byBwb2ludCBhdCBhbGwgdGhlIGdzdHJlYW1lciBsaWJzLiBUaGlzIHdpbGwKCSAgYWxsb3cgeW91IHRvIGNvcnJlY3RseSBydW4gaW50YWxsZWQgYXBwbGljYXRpb25zIGJ1aWx0IGFnYWluc3Qgb2xkICAgICAgICAgICBjb3JlLCB1c2luZyBwbHVnaW5zIHRoYXQgcmVxdWlyZSB1cGRhdGVkIGNvcmUgKGUuZy4gcnVubmluZwoJICBpbnN0YWxsZWQgdG90ZW0gYWdhaW5zdCBhIGZ1bGwgdW5pbnN0YWxsZWQgZ3N0cmVhbWVyIHN0YWNrKQoKMjAwNi0wMy0yNCAxNzoyOToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGFkZCBBUEk6IG1hcmtlciBpbiBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBBUEk6IG1hcmtlciBpbiBDaGFuZ2VMb2cKCjIwMDYtMDMtMjQgMTc6MTA6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogbW9yZSBkZWJ1ZyBkZXRhaWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKToKCSAgbW9yZSBkZWJ1ZyBkZXRhaWxzCgoyMDA2LTAzLTI0IDExOjAyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVhcnJhbmdlIHRoZSBvcmRlciBvZiB0aGUgbWV0aG9kcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcyBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlYXJyYW5nZSB0aGUgb3JkZXIgb2YgdGhlIG1ldGhvZHMgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMKCSAgYXJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gc2VjdGlvbnMuCgoyMDA2LTAzLTI0IDEwOjQ0OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBMaXR0bGUgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBMaXR0bGUgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZG9jcwoKMjAwNi0wMy0yNCAxMDozODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IGZvcm1hdHRpbmcgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBmb3JtYXR0aW5nIGZpeAoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBHU1RfRUxFTUVOVF9ERVRBSUxTIGZvcm1hdHRpbmcKCjIwMDYtMDMtMjQgMDk6NDg6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE9ubHkgYWRkIGZpZWxkcywgbm90IGluc2VydCBvciB3ZSBicmVhayBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgT25seSBhZGQgZmllbGRzLCBub3QgaW5zZXJ0IG9yIHdlIGJyZWFrIEFCSS4KCjIwMDYtMDMtMjMgMTg6NTE6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUsIGFkZCByZWNlbnRseSBhZGRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlLCBhZGQgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoKMjAwNi0wMy0yMyAxODo0NTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIHNvbWUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9wZWVyX3Bvc2l0aW9uKSwKCSAgKGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbiksIChnc3RfcGFkX3F1ZXJ5X3BlZXJfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIHNvbWUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zOgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9wb3NpdGlvbgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9jb252ZXJ0CgoyMDA2LTAzLTIzIDE2OjMyOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdG8gbWVudGlvbiB0aGUgcHJldmlvdXMgY29tbWl0IGZpeGVkICMzMjYzMTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBtZW50aW9uIHRoZSBwcmV2aW91cyBjb21taXQgZml4ZWQgIzMyNjMxMQoKMjAwNi0wMy0yMyAxNjoyMDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRGVjb3VwbGUgbWF4LWxhdGVuZXNzIGFuZCB0aGUgZmFjdCB0aGF0IFFvUyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkIHdpdGggYSBuZXcgcHJvcGVydHkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hZGRfcW9zX29ic2VydmF0aW9uKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRGVjb3VwbGUgbWF4LWxhdGVuZXNzIGFuZCB0aGUgZmFjdCB0aGF0IFFvUyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkCgkgIHdpdGggYSBuZXcgcHJvcGVydHkgKHFvcykuCgkgIEFkZCB2bWV0aG9kIHNvIHN1YmNsYXNzZXMgY2FuIGJlIG5vdGlmaWVkIG9mIEFTWU5DIHBsYXlpbmcKCSAgc3RhdGUgY2hhbmdlcy4KCSAgQ29sbGVjdCB0aW1lc3RhbXAgc3RhcnQgYW5kIHN0b3AgdG8gcmVwb3J0IGJldHRlciBjdXJyZW50CgkgIHBvc2l0aW9uIGluIEVPUy9QTEFZSU5HL1BBVVNFRC9SRUFEWS9OVUxMLgoJICBSZWZhY3RvciBRb1MvZnJhbWUgZHJvcHBpbmcgYW5kIG90aGVyIG1lYXN1cmVtZW50cy4KCSAgQVBJOiBHc3RCYXNlU3JjOjpxb3MKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIFByaXZhdGUgc3RydWN0LgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZAoKMjAwNi0wMy0yMyAxMTo1NDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBJZiBjb21waWxpbmcgYWdhaW5zdCBHTGliLTIuOCBvciBuZXdlciwgdHJ5IHRvIHJlYWQgdGhlIHJlZ2lzdHJ5IGZpbGUgdXNpbmcgR01hcHBlZEZpbGUgZmlyc3QgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgIElmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWItMi44IG9yIG5ld2VyLCB0cnkgdG8gcmVhZCB0aGUKCSAgcmVnaXN0cnkgZmlsZSB1c2luZyBHTWFwcGVkRmlsZSBmaXJzdCBiZWZvcmUgZmFsbGluZyBiYWNrCgkgIHRvIGZvcGVuKCkgKyBmcmVhZCgpICgjMzMyMTUxKS4KCjIwMDYtMDMtMjIgMTg6MjU6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5mby5jOiBEaXNhYmxlIGRlYnVnZ2luZyB1bmxlc3MgZXhwbGljaXRseSBhY3RpdmF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfc2V0X2FjdGl2ZSksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCk6CgkgIERpc2FibGUgZGVidWdnaW5nIHVubGVzcyBleHBsaWNpdGx5IGFjdGl2YXRlZC4KCSAgRml4ZXMgIzMzNTQ4MC4KCjIwMDYtMDMtMjIgMTM6MTA6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGVhbnVwIHRoZSBlcnJvciBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgQ2xlYW51cCB0aGUgZXJyb3IgY2FzZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3Bvc2UpOgoJICBwcmludCBhIGNyaXRpY2FsIHdoZW4gc29tZSBvYmplY3Qgd2FzIGRpc3Bvc2VkIHdpdGgKCSAgYSBwYXJlbnQsIGFsc28gcmV2aXZlIHRoZSBvYmplY3Qgc2luY2UgaXQgbWlnaHQKCSAgY3Jhc2ggdGhlIHBhcmVudC4KCjIwMDYtMDMtMjIgMDk6MDM6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZpeCBhbm90aGVyIHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRml4IGFub3RoZXIgdHlwby4KCjIwMDYtMDMtMjEgMTk6Mjc6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZGlzYWJsZSBzb21lIHRlc3RzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSBzb21lIHRlc3RzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHJlZ2lzdHJ5CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbHNfc3VpdGUpOgoJICBkb24ndCBidWlsZCB0aGUgcGFydCB0aGF0IG5lZWRzIHBhcnNpbmcKCjIwMDYtMDMtMjEgMTc6MjU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbQoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBmaXggLS1kaXNhYmxlLXBhcnNlIGJ1aWxkCgoyMDA2LTAzLTIxIDE3OjI0OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgdGhlIC5pbiBmaWxlIGlzIGluIGN2cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlIC5pbiBmaWxlIGlzIGluIGN2cwoKMjAwNi0wMy0yMSAxNTo0MjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOiBGaXggdHlwbzogcy9mZWViYWNrL2ZlZWRiYWNrLyAoIzEzMzQ5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICBGaXggdHlwbzogcy9mZWViYWNrL2ZlZWRiYWNrLyAoIzEzMzQ5NCkuCgoyMDA2LTAzLTIxIDE1OjA0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBBZGQgRklMRVMgc2VjdGlvbiBhbmQgY29ycmVjdCBlbnRyeSBhYm91dCBHU1RfUkVHSVNUUllfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSAoIzEzMzQ5NTsgIzEzMzQ5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQWRkIEZJTEVTIHNlY3Rpb24gYW5kIGNvcnJlY3QgZW50cnkgYWJvdXQgR1NUX1JFR0lTVFJZX1BBVEgKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgKCMxMzM0OTU7ICMxMzM0OTQpLgoKMjAwNi0wMy0yMSAxNDo0MTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogUmVtb3ZlIGdzdC1tZDVzdW0gYW5kIG1hbiBwYWdlICh0aGUgbWQ1c2luayBlbGVtZW50IHJlcXVpcmVkIHdhcyByZW1vdmVkIGFnZXMgYWdvKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLjEuaW46CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJICBSZW1vdmUgZ3N0LW1kNXN1bSBhbmQgbWFuIHBhZ2UgKHRoZSBtZDVzaW5rIGVsZW1lbnQKCSAgcmVxdWlyZWQgd2FzIHJlbW92ZWQgYWdlcyBhZ28pCgoyMDA2LTAzLTIxIDE0OjI0OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBNYWtlIHN1cmUgdGhhdCBzdHJpbmcgZmllbGRzIGluIHN0cnVjdHVyZXMvdGFnbGlzdHMgY29udGFpbiB2YWxpZCBVVEYtOCAtIHdlIGRvbid0IHdhbnQgdG8gcGFzcyByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgTWFrZSBzdXJlIHRoYXQgc3RyaW5nIGZpZWxkcyBpbiBzdHJ1Y3R1cmVzL3RhZ2xpc3RzCgkgIGNvbnRhaW4gdmFsaWQgVVRGLTggLSB3ZSBkb24ndCB3YW50IHRvIHBhc3MgcnViYmlzaCB0bwoJICBhcHBsaWNhdGlvbnMgYmVjYXVzZSBvZiBhIGJ1Z2d5IHBsdWdpbiAoY3AuICMzMzQxNjcpLgoKMjAwNi0wMy0yMSAxNDoxNDo0OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFNlcmllcyBvZiBmaXhlcyBmb3IgZGVyZWZlcmVuY2VkIHBvaW50ZXJzIHRoYXQgZ2NjIDQuMSBjb21wbGFpbnMgYWJvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogPGRlbGV0ZSBpZiBub3QgdXNpbmcgYSBidWRkeT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19kaXNwb3NlKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2J1c19mdW5jKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZGlzcG9zZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3QpLAoJICAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZGlzcG9zZSksCgkgIChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKSwgKGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KToKCSAgU2VyaWVzIG9mIGZpeGVzIGZvciBkZXJlZmVyZW5jZWQgcG9pbnRlcnMgdGhhdCBnY2MgNC4xIGNvbXBsYWlucyBhYm91dC4KCSAgSXQncyBpbiBmYWN0IGFsbCBpc3N1ZXMgd2l0aCBnc3RfKm9iamVjdF9yZXBsYWNlKCkuCgoyMDA2LTAzLTIxIDEzOjU1OjQ0ICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wuZ25vbWVAdmlhLmVjcC5mcj4KCgkgIHBrZ2NvbmZpZy86IFVzZSBAQ0hFQ0tfTElCU0AgaGVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIC1sY2hlY2sgKCMzMzQxMDkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExvw69jIE1pbmllciAgPGxvb2wgKyBnbm9tZSBhdCB2aWEgZG90IGVjcCBkb3QgZnI+CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBVc2UgQENIRUNLX0xJQlNAIGhlcmUgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyAtbGNoZWNrICgjMzM0MTA5KS4KCjIwMDYtMDMtMjEgMTM6NTA6NTIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBnc3RfW2J1ZmZlcnxldmVudHxtZXNzYWdlXV9yZWYoKSBtYWNyb3MgYXJlIHJlcGxhY2VkIGJ5IGEgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgYmVjYXVzZSBnY2MtNC4xIHdpbGwgYWJvdXQgaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGdzdF9bYnVmZmVyfGV2ZW50fG1lc3NhZ2VdX3JlZigpIG1hY3JvcyBhcmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMKCSAgaW5saW5lIGZ1bmN0aW9ucyBiZWNhdXNlIGdjYy00LjEgd2lsbCBhYm91dCBpZiB0aGUgcmV0dXJuIHZhbHVlCgkgIGlzbid0IHVzZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSk6CgkgIGdzdF9ldmVudF9yZWYgbm93IGhhcyB0byBiZSBnaXZlbiBhIEdzdEV2ZW50KiAsIGZpeCBjaGVjayBhY2NvcmRpbmdseS4KCjIwMDYtMDMtMjAgMTY6NDc6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgUmVtb3ZlIGlycml0YXRpbmcgZmlsZSB0aGF0IGtlZXBzIGJyZWFraW5nIG15IGNoZWNrb3V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIGlycml0YXRpbmcgZmlsZSB0aGF0IGtlZXBzIGJyZWFraW5nIG15IGNoZWNrb3V0cwoKMjAwNi0wMy0yMCAxNjo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIEdfVU5MSUtFTFkgdG8gb3VyIGJvaWxlcnBsYXRlIHRvIG9wdGltaXNlIHRoZSAnYWxyZWFkeSByZWdpc3RlcmVkIHRoZSB0eXBlJyBjYXNlLiAoQ2xvc2VzOiAjMzM1MTkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBHX1VOTElLRUxZIHRvIG91ciBib2lsZXJwbGF0ZSB0byBvcHRpbWlzZSB0aGUgJ2FscmVhZHkgcmVnaXN0ZXJlZAoJICB0aGUgdHlwZScgY2FzZS4gKENsb3NlczogIzMzNTE5NSBmb3Igbm93KS4gSW4gdGhlIGZ1dHVyZSwgd2hlbiB3ZQoJICBkZXBlbmQgb24gR0xpYiAyLjEwLCB3ZSBjb3VsZCBhbHNvIGludGVybiB0aGUgdHlwZSBuYW1lIHVzaW5nCgkgIGdfaW50ZXJuX3N0YXRpY19zdHJpbmcoKQoKMjAwNi0wMy0yMCAxMDo1NjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUG9zaXRpb24gcXVlcnkgc2hvdWxkIGFsc28gdGFrZSBtYXggb2YgYWxsIHN0cmVhbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksCgkgIChiaW5fcXVlcnlfbWF4X2luaXQpLCAoYmluX3F1ZXJ5X3Bvc2l0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X3Bvc2l0aW9uX2RvbmUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIFBvc2l0aW9uIHF1ZXJ5IHNob3VsZCBhbHNvIHRha2UgbWF4IG9mIGFsbCBzdHJlYW1zLgoKMjAwNi0wMy0yMCAwOToyODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBGaXggbGVha3MgaW4gZmFrZXNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZmluYWxpemUpOgoJICBGaXggbGVha3MgaW4gZmFrZXNyYy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrcyBpbiB0aGUgdGVzdGNhc2UuCgoyMDA2LTAzLTE5IDIxOjM5OjIxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogYWRkIHdpbjMyIHNwZWNpZmljIGltcG9ydCBkZWNvcmF0aW9uKF9fZGVjbHNwZWMoZGxsaW1wb3J0KSkgZm9yIGFsbCBleHRlcm4gR3N0RGVidWdDYXRlZ29yeSAqIHZhcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGFkZCB3aW4zMiBzcGVjaWZpYyBpbXBvcnQgZGVjb3JhdGlvbihfX2RlY2xzcGVjKGRsbGltcG9ydCkpCgkgIGZvciBhbGwgZXh0ZXJuIEdzdERlYnVnQ2F0ZWdvcnkgKiB2YXJpYWJsZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgc29tZSBleHBvcnRzLCByZW1vdmUgZW1wdHkgbGluZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRzcDoKCSAgbmV3IHByb2plY3QgZmlsZXMgYW5kIGV4cG9ydGF0aW9uIGZpbGVzIGFkZGVkCgoyMDA2LTAzLTE5IDE2OjA1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IFVzZSBwcm9wZXIgcmV0dXJuIHZhbHVlIGZvciBwcm9iZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChlb3NfZXZlbnRfY291bnRlcik6CgkgIFVzZSBwcm9wZXIgcmV0dXJuIHZhbHVlIGZvciBwcm9iZS4KCjIwMDYtMDMtMTcgMTk6Mjc6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGxlYWsgYnVmZmVycywgY2FwcyBhbmQgcGFkcyBvbiBuZWdvdGlhdGlvbiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBEb24ndCBsZWFrIGJ1ZmZlcnMsIGNhcHMgYW5kIHBhZHMgb24gbmVnb3RpYXRpb24gZXJyb3JzLgoKMjAwNi0wMy0xNiAxNTozMzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9mYXEvOiBGYXEgcmV2aWV3IGFuZCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgICogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9mYXEueG1sOgoJICAqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICAqIGRvY3MvZmFxL2xlZ2FsLnhtbDoKCSAgKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgRmFxIHJldmlldyBhbmQgdXBkYXRlLgoKMjAwNi0wMy0xNiAxMDoxODoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IHBvdW5kIHRoZSBjcHUgdG8gcGllY2VzIGJ5IGNoZWNraW5nIGdldF9jYXBzIHdoZW4gYWNjZXB0X2NhcHMgaXMgY2FsbGVkIHdpdGggdGhlIHNhbWUgY2FwcyBhcyB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIERvbid0IHBvdW5kIHRoZSBjcHUgdG8gcGllY2VzIGJ5IGNoZWNraW5nIGdldF9jYXBzIHdoZW4gYWNjZXB0X2NhcHMKCSAgaXMgY2FsbGVkIHdpdGggdGhlIHNhbWUgY2FwcyBhcyB0aGUgcGFkIGFscmVhZHkgaGFzLgoJICBVc2UgR1NUX0RFQlVHX09CSkVDVCB3aGVuIG91dHB1dHRpbmcgY2FwcyBjaGFuZ2UgaW5mb3JtYXRpb24uCgoyMDA2LTAzLTE1IDIwOjE3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgRml4IGRvY3MuCgoyMDA2LTAzLTE1IDE2OjI5OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogRG9jdW1lbnRhdGlvbiBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXguCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpOgoJICBNYWtlIHRoZSBkZWZhdWx0IGFjY2VwdGNhcHMgYmVoYXZpb3VyIGJlIHRvIGNoZWNrIHRoZSByZXF1ZXN0ZWQKCSAgY2FwcyBhZ2FpbnN0IHRoZSBnc3RfcGFkX2dldF9jYXBzIG91dHB1dC4KCSAgRW5zdXJlIHRoYXQgZ3N0X3BhZF9hY2NlcHRfY2FwcyBpcyB1c2VkIHRvIGNoZWNrIGNhcHMgd2hlbiBhIHBhZAoJICBkb2Vzbid0IGhhdmUgYSBzZXRjYXBzIGZ1bmN0aW9uLCBzbyB0aGF0IHBhZHMgYXV0b21hdGljYWxseSByZWZ1c2UKCSAgY2FwcyB0aGF0IHRoZXkgZG9uJ3QgYWxsb3cgaW4gdGhlaXIgcGFkIHRlbXBsYXRlLiAoRml4ZXMgIzMzMjk4NikKCSAgV2hlbiBhIGJ1ZmZlciB3aXRoIGF0dGFjaGVkIGNhcHMgaXMgcHVzaGVkLCBlbnN1cmUgdGhhdCB0aGUgc291cmNlCgkgIHBhZCByZWNlaXZlcyB0aG9zZSBjYXBzIGV2ZW4gaWYgdGhlIGVsZW1lbnQgZGlkbid0IGNhbGwKCSAgZ3N0X3BhZF9zZXRfY2FwcyBmaXJzdC4KCjIwMDYtMDMtMTUgMTY6MjI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogQWRkIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEFkZCBzb21lIGRvY3MuCgoyMDA2LTAzLTE1IDE1OjU3OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIGEgd2hvbGUgYnVuY2ggb2YgbWlzc2luZyBmdW5jdGlvbnMgKCMzMzQ0MzQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgYSB3aG9sZSBidW5jaCBvZiBtaXNzaW5nIGZ1bmN0aW9ucyAoIzMzNDQzNCkuCgoyMDA2LTAzLTE0IDE5OjM2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZXR0ZXIgZGVidWcgaW5mbyB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2RvX3Fvcyk6CgkgIEJldHRlciBkZWJ1ZyBpbmZvIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQuCgkgIFJlb3JnYW5pemUgYSBiaXQgc28gd2UgY2FuIHBhc3MgdGhlIGdldF90aW1lcygpIHJlc3VsdHMgYXJvdW5kLgoJICBVc2UgdGhlIHNlZ21lbnQgZm9ybWF0IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHJ1bm5pbmcgdGltZS4KCSAgRG9uJ3QgZG8gUW9TIGlzIHN5bmMgaXMgZGlzYWJsZWQgb3Igd2UgaGF2ZSBubyBjbG9jayBvciB0aGUKCSAgZWxlbWVudCBkb2VzIG5vdCB3YW50IHVzIHRvIHN5bmMgdG8gdGhlIGNsb2NrLgoJICBEb24ndCBkcm9wIGJ1ZmZlcnMgaWYgUW9TIGlzIGRpc2FibGVkIGZvciBub3cuCgoyMDA2LTAzLTE0IDE5OjI4OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1hcmtlZCB0aGUgc3RhdHMgcHJvcGVydHkgYXMgdW5pbXBsZW1lbnRlZCBzbyBwZW9wbGUgZG9uJ3QgZ2V0IHdpbGQgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICBNYXJrZWQgdGhlIHN0YXRzIHByb3BlcnR5IGFzIHVuaW1wbGVtZW50ZWQgc28gcGVvcGxlIGRvbid0IGdldAoJICB3aWxkIGlkZWFzLgoJICBBZGQgZGVidWcgbWVzc2FnZSB3aGVuIHJlZ3Jlc3Npb24gZ29lcyB3cm9uZy4KCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgoyMDA2LTAzLTE0IDE5OjI2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogUmV0dXJuIGNvcnJlY3QgcmV0dXJuIHR5cGUgaW4gY2FzZSBvZiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSk6CgkgIFJldHVybiBjb3JyZWN0IHJldHVybiB0eXBlIGluIGNhc2Ugb2YgZXJyb3JzLgoKMjAwNi0wMy0xNCAxOToxNjo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogRG9uJ3Qgc2VnZmF1bHQgb24gaW52YWxpZCBmb3JtYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X2dldF9uYW1lKSwgKGdzdF9mb3JtYXRfdG9fcXVhcmspOgoJICBEb24ndCBzZWdmYXVsdCBvbiBpbnZhbGlkIGZvcm1hdHMuCgoyMDA2LTAzLTE0IDE4OjI1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBDYW4ndCB1c2UgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgd2hlbiB0aGUgc2VnbWVudCBpcyBub3QgaW4gR1NUX1RJTUVfRk9STUFUIChsaWtlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBDYW4ndCB1c2UgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgd2hlbiB0aGUgc2VnbWVudAoJICBpcyBub3QgaW4gR1NUX1RJTUVfRk9STUFUIChsaWtlIHdpdGggZmlsZXNpbmssIGZvciBleGFtcGxlKS4KCSAgU3RvcHMgZmxhYyBlbmNvZGluZyBwaXBlbGluZXMgZnJvbSBzcGV3aW5nIGNyaXRpY2FsIHdhcm5pbmdzCgkgIGF0IEVPUyAoIzMzMTI0OCkuCgoyMDA2LTAzLTE0IDE2OjMyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEFkZCAnU2luY2U6IDAuMTAuNScgdG8gZ3RrLWRvYyBibHVyYiBmb3IgYWRkZWQgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICBBZGQgJ1NpbmNlOiAwLjEwLjUnIHRvIGd0ay1kb2MgYmx1cmIgZm9yIGFkZGVkIHByb3BlcnR5LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRG9uJ3QgdHJ5IHRvIHR5cGVmaW5kIGVtcHR5IHN0cmVhbXMuCgoyMDA2LTAzLTE0IDExOjE4OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTZXBhcmF0ZSBRb1MgY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3Fvcyk6CgkgIFNlcGFyYXRlIFFvUyBjYWxjdWxhdGlvbi4KCSAgT25seSBkcm9wIGJ1ZmZlcnMgd2hlbiBsYXRlbmVzcyBpcyBiaWdnZXIgdGhhbiB0aGUKCSAgZHVyYXRpb24gb2YgdGhlIGJ1ZmZlci4KCjIwMDYtMDMtMTMgMTU6MTc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICBEb24ndCBkZWFkbG9jayB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4KCjIwMDYtMDMtMTMgMTE6Mjc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFrZSBiYXNldHJhbnNmb3JtIHZpcnR1YWwgbWV0aG9kIGZvciBzcmMgZXZlbnRzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYWtlIGJhc2V0cmFuc2Zvcm0gdmlydHVhbCBtZXRob2QgZm9yIHNyYyBldmVudHMgdG9vLgoJICBIYW5kbGUgUU9TIGluIGJhc2V0cmFuc2Zvcm0uCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MKCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkCgoyMDA2LTAzLTEzIDExOjE2OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBVc2UgUU9TIGRlYnVnIGNhdGVnb3J5LgoKMjAwNi0wMy0xMyAxMToxMToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVmVyeSBzbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFZlcnkgc21hbGwgZG9jIHVwZGF0ZS4KCjIwMDYtMDMtMTMgMTE6MDg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBRT1MgZGVidWcgY2F0ZWdvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIEFkZGVkIFFPUyBkZWJ1ZyBjYXRlZ29yeQoKMjAwNi0wMy0xMyAxMTowNDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksIChnc3RfcGlwZWxpbmVfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgQWRkZWQgbWV0aG9kcyBmb3Igc2V0dGluZyB0aGUgZGVsYXkuCgkgIEFQSTogZ3N0X3BpcGVsaW5lX3NldF9kZWxheQoJICBBUEk6IGdzdF9waXBlbGluZV9nZXRfZGVsYXkKCSAgQWRkIHBpcGVsaW5lIGRlYnVnIGNhdGVnb3J5CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIFVwZGF0ZWQgZG9jcy4KCSAgRG9uJ3QgcmVzZXQgc3RyZWFtIHRpbWUgd2hlbiBzZWVrIGZhaWxlZC4KCjIwMDYtMDMtMTMgMTA6MzI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wMy0xMiAyMDo0NDo0NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggcnViYmlzaCBkb2NzIHRoYXQgYXJlIGVuY291cmFnaW5nIHVzIHRvIGxlYWsgc3RyaW5ncy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMy0xMiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBydWJiaXNoIGRvY3MgdGhhdCBhcmUgZW5jb3VyYWdpbmcKCSAgdXMgdG8gbGVhayBzdHJpbmdzLi4uCgoyMDA2LTAzLTEyIDIwOjQwOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBmaXggZG9jcwoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlCgoyMDA2LTAzLTEyIDE0OjMyOjM3ICswMDAwICBKdWxpbyBNLiBNZXJpbm8gVmlkYWwgPGptbXZAbmV0YnNkLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgY2hlY2sgZm9yIGxpYmdub21ldWkgKGxlZnRvdmVyIGZyb20gb2xkIGV4YW1wbGVzIHRoYXQgYXJlbid0IGJ1aWx0IG9yIGRpc3RlZCBhbnkgbG9uZ2VyKSAoIzMzNDMwMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSnVsaW8gTS4gTWVyaW5vIFZpZGFsIDxqbW12IGF0IG5ldGJzZCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBjaGVjayBmb3IgbGliZ25vbWV1aSAobGVmdG92ZXIgZnJvbSBvbGQgZXhhbXBsZXMKCSAgdGhhdCBhcmVuJ3QgYnVpbHQgb3IgZGlzdGVkIGFueSBsb25nZXIpICgjMzM0MzAzKS4KCjIwMDYtMDMtMTEgMTM6MDI6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRW1pdCBSRVNPVVJDRV9OT19TUEFDRV9MRUZUIGVycm9yIGhlcmUgYXMgd2VsbCB3aGVuIHRoZXJlJ3Mgbm8gc3BhY2UgbGVmdCBvbiB0aGUgZGV2aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEVtaXQgUkVTT1VSQ0VfTk9fU1BBQ0VfTEVGVCBlcnJvciBoZXJlIGFzIHdlbGwgd2hlbgoJICB0aGVyZSdzIG5vIHNwYWNlIGxlZnQgb24gdGhlIGRldmljZS4KCjIwMDYtMDMtMTAgMjM6NDQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2xvY2suaDogRml4IEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIHNpZ25lZG5lc3MgaXNzdWVzIC0gd2UgbmVlZCB0byBjYXN0IHRoZSBpbnB1dCB0byBHc3RDbG9ja1RpbWUgYmVmb3JlIGNvbXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBzaWduZWRuZXNzIGlzc3VlcyAtIHdlIG5lZWQKCSAgdG8gY2FzdCB0aGUgaW5wdXQgdG8gR3N0Q2xvY2tUaW1lIGJlZm9yZSBjb21wYXJpbmcgd2l0aAoJICBhbm90aGVyIEdzdENsb2NrVGltZSB2YWx1ZS4KCjIwMDYtMDMtMTAgMTk6MTI6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZyB3aGF0IHdlJ3JlIHdhaXRpbmcgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyB3aGF0IHdlJ3JlIHdhaXRpbmcgb24KCjIwMDYtMDMtMTAgMTk6MTE6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC4xMC40ID09PQoKMjAwNi0wMy0xMCAxOTowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9tYW51YWwvUkVBRE1FOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNAoKMjAwNi0wMy0xMCAxNTozMDoyNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZG9jcyBmb3IgZGF0YXByb2NvdG9sIHRvIG5vdCBnZXQgdGhlIHJldHVybiB0eXBlcyBjb21wbGV0ZWx5IHdyb25nIGZvciBhIGZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgRml4IGRvY3MgZm9yIGRhdGFwcm9jb3RvbCB0byBub3QgZ2V0IHRoZSByZXR1cm4gdHlwZXMgY29tcGxldGVseQoJICB3cm9uZyBmb3IgYSBmZXcgZnVuY3Rpb25zLgoKMjAwNi0wMy0wOSAxOTowMDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2luZwoKMjAwNi0wMy0wOSAxNjo1MzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKCkgYW5kIGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMoKSB0byBkaXNhYmxlIGF1dG9tYXRpYyBmbHVzaGluZyBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cyksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMoKSBhbmQKCSAgZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cygpIHRvIGRpc2FibGUgYXV0b21hdGljCgkgIGZsdXNoaW5nIG9mIHRoZSBwaXBlbGluZSdzIEdzdEJ1cyB3aGVuIGdvaW5nIGZyb20gUkVBRFkKCSAgdG8gTlVMTCBzdGF0ZSAoIzMzMjA0NSkuCgoyMDA2LTAzLTA5IDEyOjA4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF91cmlfaGFzX3Byb3RvY29sKCkgKCMzMzM3NzkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFzX3Byb3RvY29sKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfdXJpX2hhc19wcm90b2NvbCgpICgjMzMzNzc5KS4KCjIwMDYtMDMtMDkgMTE6NDU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suKjogUmV2aWV3IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksCgkgIChnc3RfY2xvY2tfaWRfY29tcGFyZV9mdW5jKSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19pZF91bnNjaGVkdWxlKSwKCSAgKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19nZXRfaW50ZXJuYWxfdGltZSksCgkgIChnc3RfY2xvY2tfc2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKSwgKGdzdF9jbG9ja19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBSZXZpZXcgZG9jcy4KCSAgU21hbGwgY2xlYW51cHMuCgkgIEZpeCBhIHBvc3NpYmxlIHNlZ2ZhdWx0IHdoZW4gdGhlIHdpbmRvdy1zaXplIGlzIG1hZGUgc21hbGxlci4KCSAgQ2FsY3VsYXRlIGppdHRlciBiZWZvcmUgcGVyZm9ybWluZyB0aGUgY2xvY2sgd2FpdC4gSWRlYWxseQoJICB0aGUgY2xvY2sgaW1wbGVtZW50YXRpb24gc2hvdWxkIGNhbGN1bGF0ZSBqaXR0ZXIgYnV0IHdlIG5lZWQKCSAgQVBJIGJyZWFrYWdlIGZvciB0aGF0LgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KToKCSAgRG9jcyByZXZpZXcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgUmVtb3ZlIGxlZnRvdmVyIGVsc2UKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgR1NUX0NMT0NLX0RJRkYuCgoyMDA2LTAzLTA5IDEwOjQ2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBJZiB3ZSBhcmUgcHJvdmlkZWQgd2l0aCB0aGUgc2l6ZSwgd2Ugc2hvdWxkIGltcGxlbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSk6CgkgIElmIHdlIGFyZSBwcm92aWRlZCB3aXRoIHRoZSBzaXplLCB3ZSBzaG91bGQgaW1wbGVtZW50CgkgIEdzdFR5cGVGaW5kOjpnZXRfbGVuZ3RoLCBzbyB0aGF0IHR5cGVmaW5kIGZ1bmN0aW9ucyB3aG8KCSAgd2FudCB0byBjYW4gYWN0dWFsbHkgcGVlayBhdCB0aGUgbWlkZGxlIG9mIGEgZmlsZS4KCjIwMDYtMDMtMDggMTQ6MzA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogQWRkIHNvbWUgdmVyeSB2ZXJ5IGJhc2ljIGVycm9yIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgQWRkIHNvbWUgdmVyeSB2ZXJ5IGJhc2ljIGVycm9yIGNoZWNraW5nLgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIFNvbWUgdXBkYXRlcyB0byB0aGUgbGlzdCBvZiB0aGluZ3MgdG8gY2hlY2sgd2hlbiB3cml0aW5nIGFuIGVsZW1lbnQuCgoyMDA2LTAzLTA4IDEzOjQ0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6IEFkZGVkIHNvbWUgZG9jcyBhYm91dCB0aGUgZGVzaWduIG9mIHRyYW5mb3JtIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgQWRkZWQgc29tZSBkb2NzIGFib3V0IHRoZSBkZXNpZ24gb2YgdHJhbmZvcm0gZWxlbWVudHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYXJrIGJ1ZmZlcnMgd2l0aCB0aGUgRElTQ09OVCBmbGFnLgoKMjAwNi0wMy0wOCAxMjo1NzozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogUmV3cml0ZSByZWdpc3RyeS1zYXZpbmcgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGFuZCBjaGVjayBmb3IgZmFpbGVkIHdyaXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZSksCgkgIChnc3RfcmVnaXN0cnlfc2F2ZV9lc2NhcGVkKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9jYXBzKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgUmV3cml0ZSByZWdpc3RyeS1zYXZpbmcgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGFuZCBjaGVjayBmb3IKCSAgZmFpbGVkIHdyaXRlcy4KCjIwMDYtMDMtMDggMTA6MTc6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2xlYW51cHMsIHNlcGFyYXRlIG5vcm1hbCBmbG93IGZyb20gZXJyb3JzLCBhZGQgc2Vuc2libGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW51cHMsIHNlcGFyYXRlIG5vcm1hbCBmbG93IGZyb20gZXJyb3JzLCBhZGQgc2Vuc2libGUKCSAgREVCVUcgbGluZXMuCgkgIERvbid0IHRyeSB0byByZW5lZ290aWF0ZSB3aGVuIGFsbG9jYXRpbmcgYW4gb3V0cHV0IGJ1ZmZlci4KCSAgQWxzbyBjb3B5IERJU0NPTlQgYnVmZmVyIGZsYWcgd2hlbiBjb3B5aW5nIGEgYnVmZmVyLgoJICBSZXNldCB0aGUgdHJhbnNmb3JtIGFmdGVyIHdlIGZpbmlzaCBzdHJlYW1pbmcsIG5vdCBkdXJpbmcuCgoyMDA2LTAzLTA4IDA5OjQ2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVc2UgbGFzdCBidWZmZXIgdGltZXN0YW1wIGluIHFvcyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBVc2UgbGFzdCBidWZmZXIgdGltZXN0YW1wIGluIHFvcyBtZXNzYWdlLgoKMjAwNi0wMy0wNyAxNzowNjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnLzogQXBwbGllZCBwYXRjaCBmcm9tIENocmlzdG9waGUgRmVyZ2VhdSwgZml4ZXMgIzMzMzQxNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgQXBwbGllZCBwYXRjaCBmcm9tIENocmlzdG9waGUgRmVyZ2VhdSwgZml4ZXMgIzMzMzQxNgoKMjAwNi0wMy0wNyAxNjoyMTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZGVkIGJhc2VzaW5rIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGRlZCBiYXNlc2luayBuZXcgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgRG9jcyB1cGRhdGVzLiBGbGVzaCBvdXQgdGhlIFFvUyBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTbWFsbCBkb2MgY2xhcmlmaWNhdGlvbiBhYm91dCBvd25lcnNoaXAgYW5kIGZsdXNoaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luYyksIChnc3RfYmFzZV9zaW5rX3NldF9tYXhfbGF0ZW5lc3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2xhdGVuZXNzKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBuZXcgbWV0aG9kcyB0byBhbGxvdyBzdWJjbGFzcyB0byBjb250cm9sIG1heC1sYXRlbmVzcwoJICBhbmQgc3luYy4KCSAgR2VuZXJhdGUgdmVyeSBiYXNpYyBRb1MgZXZlbnRzIGJhc2VkIG9uIGxhc3Qgc3luYyBvYnNlcnZhdGlvbi4KCSAgVXBkYXRlZCBkb2NzLCBmaXggdHlwbywgYWRkZWQgc29tZSBRb1MgYmx1cmIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJlbW92ZSBvYnNvbGV0ZSBfZ2V0X3N0YXRlKCkgY2FsbHMgZnJvbSBkb2NzLgoKMjAwNi0wMy0wNyAxNToxNDo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCAjMzMzNjY5LCBBZGQgcGFkIGFjY2Vzc29yIGRlZmluZXMgZm9yIEdzdEJhc2VUcmFuc2Zvcm0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4ICMzMzM2NjksIEFkZCBwYWQgYWNjZXNzb3IgZGVmaW5lcyBmb3IgR3N0QmFzZVRyYW5zZm9ybQoJICBGaXggZG9jcyBmb3IgR3N0QmFzZVNyYy4KCjIwMDYtMDMtMDcgMTU6MDg6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDYtMDMtMDcgMTE6NDc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9jdW1lbnQgdGhyZWFkLXVuc2FmZXR5IG9mIGdzdF92YWx1ZV9yZWdpc3Rlcl9mb29fZnVuYygpIHdoZW4gdXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIGdzdF92YWx1ZV9mb28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvY3VtZW50IHRocmVhZC11bnNhZmV0eSBvZiBnc3RfdmFsdWVfcmVnaXN0ZXJfZm9vX2Z1bmMoKQoJICB3aGVuIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBhcyBnc3RfdmFsdWVfZm9vKCkgKCMzMjI2MjgpLgoKMjAwNi0wMy0wNyAxMDoxOToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDYtMDMtMDcgMDk6Mjg6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogUHVzaCBzb3VyY2VzIGRvbid0IHN1cHBvcnQgcHVsbCBtb2RlIGJ5IGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1c2hfc3JjX2NoZWNrX2dldF9yYW5nZSk6CgkgIFB1c2ggc291cmNlcyBkb24ndCBzdXBwb3J0IHB1bGwgbW9kZSBieSBkZWZhdWx0LgoKMjAwNi0wMy0wNiAxOTo1NTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgOjpjaGVja19nZXRfcmFuZ2UoKSB2ZnVuYyB0byBHc3RCYXNlU3JjICgjMzMyNjExKSwgcHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCA6OmNoZWNrX2dldF9yYW5nZSgpIHZmdW5jIHRvIEdzdEJhc2VTcmMgKCMzMzI2MTEpLAoJICBwcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFuZCByZW5hbWUKCSAgZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSgpIHRvCgkgIGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKCkgZm9yIGNsYXJpdHkuCgoyMDA2LTAzLTA2IDE2OjI0OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0eWxlZ3VpZGU6CgkgIHN0eWxlIGd1aWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdHlsZSBndWlkZQoKMjAwNi0wMy0wNiAxNjoxMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBwcm9wZXJ0eSBvdmVycmlkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgTWFrZSBwcm9wZXJ0eSBvdmVycmlkYWJsZS4KCjIwMDYtMDMtMDYgMTY6MDI6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IE1ha2UgbWF4LWxhdGVuZXNzIGEgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE1ha2UgbWF4LWxhdGVuZXNzIGEgcHJvcGVydHkuCgoyMDA2LTAzLTA2IDE1OjE2OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBldmVyIGRyYXcgYSBmcmFtZSB0aGF0IGlzID4xMG1zIGxhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KToKCSAgRG9uJ3QgZXZlciBkcmF3IGEgZnJhbWUgdGhhdCBpcyA+MTBtcyBsYXRlLgoKMjAwNi0wMy0wNiAxNDo1MTozNiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogV2hlbiBjb3B5aW5nIGEgbWVzc2FnZSwgc2V0IHRoZSBwYXJlbnRfcmVmY291bnQgb2YgdGhlIGVuY2xvc2VkIHN0cnVjdHVyZSB0byBwb2ludCBhdCB0aGUgY29weSwgbm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfY29weSk6CgkgIFdoZW4gY29weWluZyBhIG1lc3NhZ2UsIHNldCB0aGUgcGFyZW50X3JlZmNvdW50IG9mIHRoZSBlbmNsb3NlZAoJICBzdHJ1Y3R1cmUgdG8gcG9pbnQgYXQgdGhlIGNvcHksIG5vdCB0aGUgb3JpZ2luYWwgbWVzc2FnZS4KCjIwMDYtMDMtMDYgMTQ6NDY6MzEgKzAwMDAgIENocmlzdG9waGUgRmVyZ2VhdSA8dGV1ZkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogRG8gcHJvcGVyIGNhc3QgaGVyZSB0byBtYWtlIEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRG8gcHJvcGVyIGNhc3QgaGVyZSB0byBtYWtlIEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRQoJICB1c2FibGUgaW4gYysrIGNvZGUgKCMzMzM0MTc7IHBhdGNoIGJ5OiBDaHJpc3RvcGhlIEZlcmdlYXUpCgoyMDA2LTAzLTA2IDE0OjM0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5oOiBTaG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgOTk6OTk6OTkuOTk5OTk5OTk5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTaG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgOTk6OTk6OTkuOTk5OTk5OTk5CgoyMDA2LTAzLTA2IDE0OjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBhbm90aGVyIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW5vdGhlciBxdW90ZQoKMjAwNi0wMy0wNSAyMDo1Njo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgY2FwcyBhcmUgd3JpdGFibGUgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byBnc3RfY2Fwc19hcHBlbmQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBNYWtlIHN1cmUgY2FwcyBhcmUgd3JpdGFibGUgYmVmb3JlIHBhc3NpbmcgdGhlbSB0bwoJICBnc3RfY2Fwc19hcHBlbmQoKS4KCjIwMDYtMDMtMDQgMTQ6NDU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuaDogRml4IHNvbWUgbWlub3IgZG9jcyBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBGaXggc29tZSBtaW5vciBkb2NzIGVycm9ycy4KCjIwMDYtMDMtMDQgMTM6NTQ6MjYgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzQGJ1cnRvbmluaS5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZUIChmb3IgIzMzMzM1MjsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3Jlc291cmNlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZUIChmb3IgIzMzMzM1MjsKCSAgcGF0Y2ggYnk6IFJvc3MgQnVydG9uIDxyb3NzIGF0IGJ1cnRvbmluaSBkb3QgY29tPikuCgoyMDA2LTAzLTAzIDE2OjU4OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogQWRkIGEgY2hlY2sgYW5kIG91dHB1dCBhIGdfd2FybmluZyB3aGVuIEdTdHJlYW1lciBpcyBidWlsdCBhZ2FpbnN0IEdMaWIgMi42IGJ1dCBydW5uaW5nIGFnYWluc3QgMi44IG9yIGhpZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBhIGNoZWNrIGFuZCBvdXRwdXQgYSBnX3dhcm5pbmcgd2hlbiBHU3RyZWFtZXIgaXMgYnVpbHQKCSAgYWdhaW5zdCBHTGliIDIuNiBidXQgcnVubmluZyBhZ2FpbnN0IDIuOCBvciBoaWdoZXIsIGFuZCB2aWNlCgkgIHZlcnNhLiAoQ2xvc2VzOiAjMzIzNTQyKQoKMjAwNi0wMy0wMyAxNTozMjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogQ29tbWl0IHBhdGNoIGZvciBwYXJzZV9sYXVuY2ggc3ludGF4IGZyb20gIzMzMTI1NS4gUmVtb3ZlcyBzdXBwb3J0IGZvciBxdW90ZWQgc3RyaW5ncyBhbmQgbWltZXR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIENvbW1pdCBwYXRjaCBmb3IgcGFyc2VfbGF1bmNoIHN5bnRheCBmcm9tICMzMzEyNTUuIFJlbW92ZXMKCSAgc3VwcG9ydCBmb3IgcXVvdGVkIHN0cmluZ3MgYW5kIG1pbWV0eXBlcyB3aGVuIHdyaXRpbmcgZmlsdGVyZWQKCSAgY2Fwcy4gU2VlIHRoZSBidWcgcmVwb3J0IGZvciBtb3JlIGRldGFpbHMgLSBJJ20gcHJldHR5IHN1cmUgdGhpcwoJICBvYnNjdXJlIGZlYXR1cmUgaXMgbm90IGluIHVzZSBieSBfYW55b25lXyBhbnl3aGVyZS4KCSAgV2l0aCB0aGlzIHNpbXBsZSBjaGFuZ2UsIHRoZSBzaXplIG9mIHRoZSBnc3RyZWFtZXIuc28gaGVyZQoJICBkcm9wcyBmcm9tIDIxOTNLQiB0byAxNTY1S0IuCgoyMDA2LTAzLTAzIDE0OjE4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSBmb3IgY2hhaW4tYmFzZWQgdHlwZWZpbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLCAoc3RhcnRfdHlwZWZpbmRpbmcpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW5fZG9fdHlwZWZpbmRpbmcpOgoJICBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpIGZvciBjaGFpbi1iYXNlZAoJICB0eXBlZmluZGluZy4KCjIwMDYtMDMtMDMgMTE6NDI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEZXByZWNhdGUgIm1heGltdW0iIHByb3BlcnR5IChub3Qgb25seSB3YXMgaXQgb25seSB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9wcm9wZXJ0eSk6CgkgIERlcHJlY2F0ZSAibWF4aW11bSIgcHJvcGVydHkgKG5vdCBvbmx5IHdhcyBpdCBvbmx5IHRha2VuIGludG8KCSAgYWNjb3VudCBmb3IgdHlwZWZpbmRpbmcgaW4gcHVzaC1tb2RlIGFueXdheSwgaXQgYWxzbyB3YXMgbmV2ZXIKCSAgYWN0dWFsbHkgcG9zc2libGUgdG8gc2V0IGl0IGluIHRoZSBmaXJzdCBwbGFjZSBiZWNhdXNlIHRoZQoJICBwcm9wZXJ0eSB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBudW1lcmljIHByb3BlcnR5IElEIGZvciB0aGUKCSAgIm1pbmltdW0iIHByb3BlcnR5KS4gUmVnaXN0ZXIgIm1heGltdW0iIHByb3BlcnR5IGNvcnJlY3RseSwKCSAgZm9yIHRoZSBzYWtlIG9mIGZ1dHVyZSBjb3B5J24ncGFzdGVycy4gUmVtb3ZlIHNvbWUgY3J1ZnQKCSAgZnJvbSBwcm9wZXJ0eSBnZXQvc2V0IGZ1bmN0aW9ucy4KCjIwMDYtMDMtMDMgMTE6Mjc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgaGVyZSwgc28gd2UgY2FuIGhvbm91ciB0aGUgbWluLXByb2JhYmlsaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSBoZXJlLCBzbyB3ZQoJICBjYW4gaG9ub3VyIHRoZSBtaW4tcHJvYmFiaWxpdHkgcHJvcGVydHkgYW5kIGFsc28gZW1pdAoJICB0aGUgc2lnbmFsIHdpdGggdGhlIGNvcnJlY3QgcHJvYmFiaWxpdHkgb2YgdGhlIGZvdW5kIGNhcHMuCgoyMDA2LTAzLTAyIDEzOjQ1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgKCMzMzMwNDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgKCMzMzMwNDIpLgoKMjAwNi0wMy0wMiAxMTowNDo1OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFzc2VydGluZyBvbiBhIGZhaWx1cmUgdG8gcmVhZCBwYXJ0IG9mIHRoZSByZWdpc3RyeSBpcyBOb3QgQ29vbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpOgoJICBBc3NlcnRpbmcgb24gYSBmYWlsdXJlIHRvIHJlYWQgcGFydCBvZiB0aGUgcmVnaXN0cnkgaXMgTm90IENvb2wuCgkgIEp1c3QgbG9nIGEgd2FybmluZyBhbmQgcmV0dXJuIE5VTEwgKHdoaWNoIGlzIGFscmVhZHkgaGFuZGxlZCkKCjIwMDYtMDItMjggMjA6NTc6MTAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogYWRkZWQgZXhwb3J0IG9mIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGRlZCBleHBvcnQgb2YgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkZWQgc29tZSBleHBvcnRzIDogZ3N0X2Jpbl9pdGVyYXRlX2VsZW1lbnRzLCBnc3RfaXRlcmF0b3JfcmVzeW5jLAoJICBnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQKCjIwMDYtMDItMjggMTc6MjQ6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFdlIHVzZSBGaWx0ZXIgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFdlIHVzZSBGaWx0ZXIgbm93LgoJICBBZGRlZCBDb25uZWN0b3IgdG8gbWFyayBlbGVtZW50cyB0aGF0IGFyZSBvbmx5IHVzZWQgdG8KCSAgYWxsb3cgcGlwZWxpbmUgY29ubmVjdGlvbnMuCgkgIE1vdmVkIERlYnVnIHRvIGV4dHJhIGZlYXR1cmUgc2luY2UgbW9zdCBvZiB0aGVtIGFyZQoJICBmdW5jdGlvbmFsbHkgc29tZXRoaW5nIGVsc2UuCgoyMDA2LTAyLTI4IDE3OjAzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBTb21lIHVwZGF0ZXMgYW5kIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFNvbWUgdXBkYXRlcyBhbmQgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTAyLTI4IDE1OjU0OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBQcm9wb3NhbCBmb3Iga2xhc3MgZmllbGQgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFByb3Bvc2FsIGZvciBrbGFzcyBmaWVsZCB2YWx1ZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgU3RhcnQgb2YgYSBkb2MgZGVzY3JpYmluZyBzdHJlYW0gYW5hdG9teS4KCjIwMDYtMDItMjggMTA6NTI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEhlbHAgdGhlIGNvbXBpbGVyIGEgYml0IHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgSGVscCB0aGUgY29tcGlsZXIgYSBiaXQgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgVXNlIGV4aXN0aW5nIGZvcndhcmQgY29kIHBhdGggaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdCB3aGVuCgkgIGhhbmRsaW5nIGEgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZ2V0X3R5cGUpLCAoZ3N0X3N0YXRpY19jYXBzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF90eXBlKSwKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBIZWxwIGNvbXBpbGVyIHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDYtMDItMjcgMjA6MDE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXaGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIGhhdmUgbm90IGZvdW5kIGEgdHlwZSB5ZXQgKG1vc3QgbGlrZWx5IGJlY2F1c2Ugd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBXaGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIGhhdmUgbm90IGZvdW5kIGEgdHlwZSB5ZXQKCSAgKG1vc3QgbGlrZWx5IGJlY2F1c2Ugd2UgaGFkIG5vdCB5ZXQgYWNjdW11bGF0ZWQKCSAgVFlQRV9GSU5EX01JTl9TSVpFIG9mIGRhdGEgeWV0KSwgdHJ5IHRvIGRldGVybWluZSB0aGUKCSAgdHlwZSBnaXZlbiB0aGUgZGF0YSB3ZSBoYXZlIHNvIGZhci4gRml4ZXMgdHlwZWZpbmRpbmcKCSAgZm9yIHZlcnkgc2hvcnQgc3RyZWFtcyBhZ2FpbiwgbW9zdCBub3RhYmx5IHF1aWNrdGltZQoJICByZWRpcmVjdGlvbnMgYXMgdXNlZCBvbiBBcHBsZSdzIHRyYWlsZXIgc2l0ZSAoIzMzMTcwMSkuCgoyMDA2LTAyLTI3IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBUcnkgdHlwZWZpbmRpbmcgZmFjdG9yaWVzIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBmaXJzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAodHlwZV9maW5kX2ZhY3RvcnlfcmFua19jbXApLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBUcnkgdHlwZWZpbmRpbmcgZmFjdG9yaWVzIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBmaXJzdC4KCjIwMDYtMDItMjcgMTk6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgc2VjdGlvbiBmb3IgdHlwZWZpbmQgaGVscGVyIGFuZCBhZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgQWRkIHNlY3Rpb24gZm9yIHR5cGVmaW5kIGhlbHBlciBhbmQgYWRkIGRvY3VtZW50YXRpb24KCSAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgZnVuY3Rpb24uCgoyMDA2LTAyLTI3IDE4OjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci4qOiBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgKCMzMzI3MjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChidWZfaGVscGVyX2ZpbmRfcGVlayksCgkgIChidWZfaGVscGVyX2ZpbmRfc3VnZ2VzdCksICh0eXBlX2ZpbmRfZmFjdG9yeV9yYW5rX2NtcCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSAoIzMzMjcyMykuCgoyMDA2LTAyLTI3IDE1OjQzOjEwICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wuZ25vbWVAdmlhLmVjcC5mcj4KCgkgIFBhdGNoIGZyb20gTG/Dr2MgTWluaWVyIHRvIHByZXZlbnQgQ1ZTIGRpcmVjdG9yaWVzIGdldHRpbmcgZGlzdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3NsaWRlcy9NYWtlZmlsZS5hbToKCSAgUGF0Y2ggZnJvbSBMb8OvYyBNaW5pZXIgdG8gcHJldmVudCBDVlMgZGlyZWN0b3JpZXMgZ2V0dGluZyBkaXN0ZWQuCgoyMDA2LTAyLTI3IDEyOjEwOjQ3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDYtMDItMjcgMTE6MDE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBVc2UgdGhlIFJFRkNPVU5USU5HIGNhdGVnb3J5IGZvciBjYXBzIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVmKSwgKGdzdF9jYXBzX3VucmVmKToKCSAgVXNlIHRoZSBSRUZDT1VOVElORyBjYXRlZ29yeSBmb3IgY2FwcyByZWZjb3VudGluZy4KCjIwMDYtMDItMjYgMTk6MjA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBUaGlzIHNob3VsZCBiZSAwIG5vdCBHU1RfQ0xPQ0tfVElNRV9OT05FIChzZWUgIzMzMTcwMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgVGhpcyBzaG91bGQgYmUgMCBub3QgR1NUX0NMT0NLX1RJTUVfTk9ORSAoc2VlICMzMzE3MDEpLgoKMjAwNi0wMi0yNiAxNDo0MjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UoKSBiZWZvcmUgX2FjdGl2YXRlX3B1bGwoKSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVXNlIGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSgpIGJlZm9yZSBfYWN0aXZhdGVfcHVsbCgpCgkgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG9wZW4vY2xvc2UgKHNlZSAjMzMxNjkwKS4KCjIwMDYtMDItMjQgMTY6NTQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRG9jcyBlbmhhbmNlbWVudDogbWFrZSBpdCBjcnlzdGFsIGNsZWFyIHdoYXQgdGhlIGdzdF9wYWRfYWRkXypfcHJvYmUoKSBjYWxsYmFja3Mgc2hvdWxkIGxvb2sgbGlrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3MgZW5oYW5jZW1lbnQ6IG1ha2UgaXQgY3J5c3RhbCBjbGVhciB3aGF0IHRoZQoJICBnc3RfcGFkX2FkZF8qX3Byb2JlKCkgY2FsbGJhY2tzIHNob3VsZCBsb29rIGxpa2UuCgoyMDA2LTAyLTI0IDEwOjU3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvY3VtZW50IGhvdyBhcHBsaWNhdGlvbnMgY2FuIHN0b3AgcmVjb3JkaW5nIGZyb20gbGl2ZSBzb3VyY2VzIChzZWUgIzMzMDk5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBEb2N1bWVudCBob3cgYXBwbGljYXRpb25zIGNhbiBzdG9wIHJlY29yZGluZyBmcm9tCgkgIGxpdmUgc291cmNlcyAoc2VlICMzMzA5OTYpLgoKMjAwNi0wMi0yMyAxODowNjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIElnbm9yZSBtb3JlIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlIHN0dWZmLgoKMjAwNi0wMi0yMyAxNzozOToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogLi4uIGFuZCBhZGQgc29tZSB0ZXN0cyBmb3IgdGhlIGJhc2Ugc291cmNlIEVPUyBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChlb3NfZXZlbnRfY291bnRlciksCgkgIChiYXNlc3JjX2Vvc19ldmVudHNfcHVsbCksIChiYXNlc3JjX2Vvc19ldmVudHNfcHVzaCksCgkgIChiYXNlc3JjX2Vvc19ldmVudHNfcHVzaF9saXZlX29wKSwgKGJhc2VzcmNfZW9zX2V2ZW50c19wdWxsX2xpdmVfb3ApLAoJICAoZ3N0X2Jhc2VzcmNfc3VpdGUpLCAobWFpbik6CgkgIC4uLiBhbmQgYWRkIHNvbWUgdGVzdHMgZm9yIHRoZSBiYXNlIHNvdXJjZSBFT1Mgc3R1ZmYuCgoyMDA2LTAyLTIzIDE2OjU2OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFRlc3QgY2FzZSBvcmlnaW5hbGx5IHNob3dlZCB0aGUgcHJvYmxlbSBmaXhlZCBiZWxvdywgYnV0IHdhcyB0aGVuIGFtZW5kZWQuIEFkZCBjaGVja3MgYmFjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6CgkgIFRlc3QgY2FzZSBvcmlnaW5hbGx5IHNob3dlZCB0aGUgcHJvYmxlbSBmaXhlZCBiZWxvdywKCSAgYnV0IHdhcyB0aGVuIGFtZW5kZWQuIEFkZCBjaGVja3MgYmFjayBhdCB0aGUgcGxhY2UKCSAgd2hlcmUgdGhleSB1c2VkIHRvIGJlLgoKMjAwNi0wMi0yMyAxNjoyNDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBEb24ndCB1bmNvbmRpdGlvbmFsbHkgc2VuZCBFT1Mgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb24ndCB1bmNvbmRpdGlvbmFsbHkgc2VuZCBFT1Mgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0bwoJICBSRUFEWSBzdGF0ZSwgZXNwLiBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCB0d28gRU9TIGV2ZW50cwoJICBpbiBzb21lIGNhc2VzIChlLmcuIG9uZSB3aGVuIHJlYWNoaW5nIEVPUyBhbmQgb25lIHdoZW4KCSAgZ29pbmcgZnJvbSBQQVVTRUQgdG8gUkVBRFkpLiBBbHNvLCB3ZSBkb24ndCB3YW50IHRvIHNlbmQKCSAgRU9TIGV2ZW50cyB3aGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUuIEhvd2V2ZXIsIHdlIGRvCgkgIHdhbnQgdG8gc2VuZCBhbiBFT1MgZXZlbnQgd2hlbiBzaHV0dGluZyBkb3duIGEgbGl2ZQoJICBzb3VyY2UgZXhwbGljaXRseSwgZm9yIGV4YW1wbGUgKGZpeGVzICMzMzA5OTYpLgoKMjAwNi0wMi0yMyAxMDoyNDoxMyArMDAwMCAgUmVuY2hpIFJhanUgPHJlbmNoaUBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXBkYXRlIHNyYy0+cmVhZF9wb3NpdGlvbiBhZnRlciBhIHNlZWsgd2hlbiBub3QgdXNpbmcgbW1hcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBVcGRhdGUgc3JjLT5yZWFkX3Bvc2l0aW9uIGFmdGVyIGEgc2VlayB3aGVuIG5vdCB1c2luZyBtbWFwLgoJICBGaXhlcyAjMzMyMjc3LCBwYXRjaCBieTogUmVuY2hpIFJhanUgPHJlbmNoaSBnbWFpbCBjb20+CgoyMDA2LTAyLTIwIDIzOjM0OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IE1ha2UgdGhpbmdzIHdvcmsgd2l0aCAtLWRpc2FibGUtcGFyc2UgYXMgdGhleSBkbyB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFrZSB0aGluZ3Mgd29yayB3aXRoIC0tZGlzYWJsZS1wYXJzZSBhcyB0aGV5IGRvIHdpdGgKCSAgLS1kaXNhYmxlLWxvYWQtc2F2ZSAtIHRoZSBzeW1ib2xzIGludm9sdmVkIGRpc2FwcGVhciwgYnV0IHRoZQoJICBoZWFkZXIgaXMgc3RpbGwgaW5zdGFsbGVkIGFuZCBHU1RfRElTQUJMRV9QQVJTRSBpcyBpbmNsdWRlZCB2aWEKCSAgZ3N0Y29uZmlnLmgKCjIwMDYtMDItMjAgMTY6MDc6NDIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhIHN0dXBpZCBidWcuIEkgd2FzIHN1cmUgaSBjb21waWxlZCB0aGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBGaXggYSBzdHVwaWQgYnVnLiBJIHdhcwoJICBzdXJlIGkgY29tcGlsZWQgdGhhdC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDE1OjA3OjMzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC86IE1ha2UgdGhvc2UgZnVuY3Rpb24gYWN0IG9uIHRoZSBnaG9zdHBhZCB0YXJnZXQgd2hlbiBpdCdzIGEgZ2hvc3RwYWQuIChDbG9zZXMgIzMzMTcyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6IE1ha2UgdGhvc2UgZnVuY3Rpb24gYWN0IG9uIHRoZQoJICBnaG9zdHBhZCB0YXJnZXQgd2hlbiBpdCdzIGEgZ2hvc3RwYWQuIChDbG9zZXMgIzMzMTcyNykKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDE1OjAxOjE0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIGJhc2V0cmFuc2Zvcm0gcmV1c2FibGUuIChDbG9zZXMgIzMzMTg5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogTWFrZSBiYXNldHJhbnNmb3JtIHJldXNhYmxlLgoJICAoQ2xvc2VzICMzMzE4OTgpCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxMjoyNjo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBNb3ZlIHRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gb2YgaG93IHRvIGRvIGEgcmVsZWFzZSB0byB0aGUgdG9wIG9mIHRoZSBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBNb3ZlIHRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gb2YgaG93IHRvIGRvIGEgcmVsZWFzZSB0byB0aGUgdG9wCgkgIG9mIHRoZSBmaWxlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBBbGxvdyBtdWx0aXBsZSBzdGF0ZS1yZWNhbGN1bGF0aW9uIHRocmVhZHMuIChDbG9zZXMgIzMyODg3MykKCjIwMDYtMDItMTkgMTI6MjU6MDEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogQWRkIEdTVF9TVFJfTlVMTCB0byB0aGUgc2Vjb25kIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0aW5mby5oOiBBZGQgR1NUX1NUUl9OVUxMIHRvIHRoZSBzZWNvbmQgc3RyaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbik6IEdTVF9ERUJVR19QQURfTkFNRSBldmFsdWF0ZXMgdG8KCSAgMiBzdHJpbmdzLiBZb3UgY2FuJ3QgdXNlIHRoZSBTVFJfTlVMTCBtYWNybyBvbiB0aGF0LgoKMjAwNi0wMi0xOSAxMjowMDozOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKQoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IChnc3RfcGFyc2VfZm91bmRfcGFkKSwgKGdzdF9wYXJzZV9wZXJmb3JtX2RlbGF5ZWRfbGluaykKCSAgRml4ZWQgTlVMTCBwb2ludGVyIHVzZWQgaW4gR1NUX0NBVF9ERUJVRyB1c2luZyBHU1RfU1RSX05VTEwgbWFjcm8KCSAgU28gbm93LCB3ZSBjYW4gdXNlIC0tZ3N0LWRlYnVnLWxldmVsPTUgb24gV2luZG93cwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgQWRkZWQgZXhwb3J0IG9mIGdzdF9jb250cm9sbGVyX2luaXQKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIEZpeGVkIFJlbGVhc2UgcG9zdCBidWlsZCBjb25maWd1cmF0aW9uCgoyMDA2LTAyLTE3IDE1OjI1OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IEFkZGVkIGFub3RoZXIgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBhbm90aGVyIGNoZWNrLgoKMjAwNi0wMi0xNSAxMjoxNzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdlIGNhbiBkbyBwZWVrcyBhdCBub24temVybyBvZmZzZXRzLCBhcyBsb25nIGFzIHRoZXkgZmFsbCB3aXRoaW4gdGhlIGJ1ZmZlciB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKToKCSAgV2UgY2FuIGRvIHBlZWtzIGF0IG5vbi16ZXJvIG9mZnNldHMsIGFzIGxvbmcgYXMgdGhleQoJICBmYWxsIHdpdGhpbiB0aGUgYnVmZmVyIHdlIGhhdmUuCgoyMDA2LTAyLTE1IDAxOjAyOjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHRlc3RzdWl0ZSBmb3IgcGFyc2UgbGF1bmNoIHN5bnRheAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChleHBlY3RlZF9mYWlsX3BpcGUpLCAoY2hlY2tfcGlwZWxpbmVfcnVucyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChwYXJzZV9zdWl0ZSksIChtYWluKToKCSAgQWRkIHRlc3RzdWl0ZSBmb3IgcGFyc2UgbGF1bmNoIHN5bnRheAoKMjAwNi0wMi0xNCAyMDo1NzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBjaGFpbiBmdW5jdGlvbiwgZG9uJ3QgZXJyb3Igb3V0IGltbWVkaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgV2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGNoYWluIGZ1bmN0aW9uLCBkb24ndAoJICBlcnJvciBvdXQgaW1tZWRpYXRlbHkuIE9ubHkgZXJyb3Igb3V0IHdpdGggTk9fQ0FQU19GT1VORCBpZgoJICB0aGUgYW1vdW50IG9mIGRhdGEgaXMgYXQgbGVhc3QgTUFYX1RZUEVGSU5EX1NJWkUgYnl0ZXMsCgkgIG90aGVyd2lzZSBzaW1wbHkgd2FpdCBmb3IgbW9yZSBkYXRhIHNvIHdlIGNhbiB0cnkgdHlwZWZpbmRpbmcKCSAgYWdhaW4gd2l0aCBtb3JlIGRhdGEgbGF0ZXIuIEFsc28sIGRvbid0IGF0dGVtcHQgdG8gdHlwZWZpbmQKCSAgaWYgd2UgaGF2ZSBsZXNzIHRoYW4gTUlOX1RZUEVGSU5EX1NJWkUgZGF0YSBhdmFpbGFibGUuIE92ZXJhbGwsCgkgIHRoaXMgc2hvdWxkIGltcHJvdmUgdHlwZWZpbmRpbmcgZnJvbSBuZXR3b3JrIHNvdXJjZXMgd2hlcmUgdGhlCgkgIHNpemUgb2YgdGhlIGZpcnN0IGJ1ZmZlciBjYW4gYmUgc29tZXdoYXQgcmFuZG9tLgoKMjAwNi0wMi0xNCAxODoyNjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBwYWR0ZW1wbGF0ZSBkb2NzLCBmaXhlcyAjMzI4ODA1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBGaXggcGFkdGVtcGxhdGUgZG9jcywgZml4ZXMgIzMyODgwNS4KCjIwMDYtMDItMTQgMTc6MjU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE5PX1BSRVJPTEwgaXMgbm90IGFuIEVSUk9SIHNvIGRvbid0IHNlbmQgY29uZnVzaW5nIG1lc3NhZ2VzIHRvIHRoZSB1c2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgTk9fUFJFUk9MTCBpcyBub3QgYW4gRVJST1Igc28gZG9uJ3Qgc2VuZCBjb25mdXNpbmcgbWVzc2FnZXMKCSAgdG8gdGhlIHVzZXIuCgoyMDA2LTAyLTE0IDE2OjE1OjA1ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBQcm90ZWN0IGRlZmF1bHQgcmVnaXN0cnkgd2l0aCBsb2NrIGFuZCByZWYvc2luayBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQpLAoJICAoX2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgUHJvdGVjdCBkZWZhdWx0IHJlZ2lzdHJ5IHdpdGggbG9jayBhbmQgcmVmL3NpbmsgaXQuCgkgIEZpeGVzICMzMjQ4MTgsIHBhdGNoIGJ5IFRvcnN0ZW4gU2Nob2VuZmVsZC4KCjIwMDYtMDItMTQgMTM6MDc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbGlzdF9hZGRfZm9ybWF0KSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbGVuZ3RoKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX250aCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIERvY3MgZml4ZXMuCgoyMDA2LTAyLTE0IDEyOjA3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmV3b3JrZWQgcXVlcnkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmV3b3JrZWQgcXVlcnkgZG9jcy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfbGlzdF9hZGRfZm9ybWF0KSwgKGdzdF9xdWVyeV9zZXRfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KSwgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX2xlbmd0aCksCgkgIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19udGgpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBGbGVzaCBvdXQgZm9ybWF0cyBxdWVyeSwgYWRkZWQgc29tZSBuZXcgbWV0aG9kcy4KCSAgRml4IHBhcnQgb2YgIzMyNDM5OC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHF1ZXJ5X3N1aXRlKToKCSAgQWRkZWQgcXVlcnkgY3JlYXRpb24gdGVzdHMuCgoyMDA2LTAyLTE0IDExOjM4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIGEgZGVmYXVsdCBmaXhhdGlvbiBmb3IgZnJhY3Rpb24gbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSk6CgkgIEFkZCBhIGRlZmF1bHQgZml4YXRpb24gZm9yIGZyYWN0aW9uIGxpc3RzLgoKMjAwNi0wMi0xMyAxNzowMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0YXNrLio6IERldGVjdCBhbmQgd2FybiBmb3Igb2J2aW91cyBkZWFkbG9ja3MuIGZpeGVzICMzMjAzNDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2luaXQpLCAoZ3N0X3Rhc2tfZnVuYyksCgkgIChnc3RfdGFza19zZXRfbG9jayksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksCgkgIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBEZXRlY3QgYW5kIHdhcm4gZm9yIG9idmlvdXMgZGVhZGxvY2tzLiBmaXhlcyAjMzIwMzQwCgkgIEZpeCBlcnJvciBjYXNlIHdoZXJlIGxvY2sgd2FzIG5vdCByZWxlYXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiAodGFza19mdW5jMiksIChHU1RfU1RBUlRfVEVTVCksCgkgICh0YXNrX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0YXNrIGNoZWNrLgoKMjAwNi0wMi0xMyAxNDowMDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IGNoYW5nZWxvZwoKMjAwNi0wMi0xMyAxMzo1NzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBkb2NzLgoKMjAwNi0wMi0xMyAxMTo1Mjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZWQgVE9ETyBsaXN0LCBiYXNlc3JjIHN1cHBvcnRzIHNlZWtpbmcgdG8gbm9uLWJ5dGVzIGZvcm1hdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETyBsaXN0LCBiYXNlc3JjIHN1cHBvcnRzIHNlZWtpbmcgdG8gbm9uLWJ5dGVzCgkgIGZvcm1hdHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVzZSBzaGlueSBuZXcgX1RZUEVfTkFNRSBtYWNyb3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgTW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgdXAuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgoyMDA2LTAyLTEzIDExOjE5OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IEFQSTogYWRkIEdTVF9NRVNTQUdFX1RZUEVfTkFNRSBhbmQgR1NUX1FVRVJZX1RZUEVfTkFNRSBtYWNyb3MgKCMzMzA5MDYpLiBBbHNvLCBkb2N1bWVudCB0aGUgYWxyZWFkeSBleGlzdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIE5ldyBBUEk6IGFkZCBHU1RfTUVTU0FHRV9UWVBFX05BTUUgYW5kIEdTVF9RVUVSWV9UWVBFX05BTUUKCSAgbWFjcm9zICgjMzMwOTA2KS4gQWxzbywgZG9jdW1lbnQgdGhlIGFscmVhZHkgZXhpc3RpbmcKCSAgR1NUX1FVRVJZX1RZUEUgbWFjcm8uCgoyMDA2LTAyLTEzIDEwOjU0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE9ubHkgZXZlbnRzIHVwIHRvIHRoZSBwaXBlbGluZSBFT1MgYXJlIGNvdW50ZWQsIHRoZXJlIGFyZSBzb21lIG1vcmUgd2hlbiBnb2luZyB0byBOVUxMIGN1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoZGF0YV9wcm9iZSksIChidWZmZXJfcHJvYmUpLAoJICAoZXZlbnRfcHJvYmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBPbmx5IGV2ZW50cyB1cCB0byB0aGUgcGlwZWxpbmUgRU9TIGFyZSBjb3VudGVkLCB0aGVyZSBhcmUKCSAgc29tZSBtb3JlIHdoZW4gZ29pbmcgdG8gTlVMTCBjdXJyZW50bHkgd2hpY2ggd2UgZG9uJ3QgY2FyZQoJICBhYm91dCBmb3Igbm93LgoKMjAwNi0wMi0xMyAwOTo1OTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ29ycmVjdGx5IGNoZWNrIGZsdXNoaW5nIGFuZCBlbWl0IHByb2Jlcy4gZml4ZXMgIzMzMDEyNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBDb3JyZWN0bHkgY2hlY2sgZmx1c2hpbmcgYW5kIGVtaXQgcHJvYmVzLiBmaXhlcyAjMzMwMTI1CgoyMDA2LTAyLTEyIDEzOjExOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmV2ZXJ0IHdyb25nIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IHdyb25nIGNvbW1pdAoKMjAwNi0wMi0xMCAxNjowNDo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2NsYXNzX2luaXQpOiBEZWNsYXJlIG91ciBwcml2YXRlIGRhdGEgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfY2xhc3NfaW5pdCk6IERlY2xhcmUgb3VyIHByaXZhdGUgZGF0YQoJICBzdHJ1Y3R1cmUuCgkgIChnc3RfYnVzX2luaXQpOiBDYWNoZSB0aGUgbG9jYXRpb24gb2YgdGhlIHByaXZhdGUgZGF0YSBpbiB0aGUKCSAgaW5zdGFuY2Ugc3RydWN0dXJlLgoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKQoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbik6IEltcGxlbWVudCBuZXcgcHVibGljCgkgIGZ1bmN0aW9ucy4KCSAgKGdzdF9idXNfcG9zdCk6IEVtaXQgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgaWYgdGhlIHVzZXIgYXNrZWQgZm9yCgkgIGl0LiBGaXhlcyAjMzMwNjg0LgoJICAqIGdzdC9nc3RidXMuaCAoR3N0QnVzKTogVXNlIGEgcGFkZGluZyBwb2ludGVyIHRvIGNhY2hlIHRoZQoJICBsb2NhdGlvbiBvZiB0aGUgYnVzLXByaXZhdGUgc3RydWN0dXVyZS4KCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbikKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pOiBOZXcgcHVibGljIGZ1bmN0aW9ucy4KCjIwMDYtMDItMDkgMjM6NDA6NDMgKzAwMDAgIFZpbmNlbnQgVG9ycmkgPHZ0b3JyaUB1bml2LWV2cnkuZnI+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBQV0cgcGF0Y2ggZnJvbSAjMzI2ODAwIChQYXRjaCBieSBWaW5jZW50IFRvcnJpKQoKMjAwNi0wMi0wOSAxODozMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGFuZCBhZGQgbWlzc2luZyBuZXcgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgYW5kIGFkZCBtaXNzaW5nIG5ldyBmaWxlCgoyMDA2LTAyLTA5IDE4OjI4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW0KCSAgRGlzdCBkZXNpZ24gZG9jcy4KCjIwMDYtMDItMDggMTc6MzQ6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBiYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgoyMDA2LTAyLTA4IDE3OjMxOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMywgIkxpa2UgYSB2aXJnaW4iCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgkgIDIwMDYtMDItMDggIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMywgIkxpa2UgYSB2aXJnaW4iCgoyMDA2LTAyLTA4IDExOjEyOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMm5kIHByZXJlbGVhc2Ugb2YgMC4xMC4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA4ICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAybmQgcHJlcmVsZWFzZSBvZiAwLjEwLjMKCSAgQnVtcCBsaWJ0b29sIHZlcnNpb25pbmcuCgoyMDA2LTAyLTA3IDE1OjQ5OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBPbmx5IHVwZGF0ZSBsYXN0X3N0b3AgaWYgd2UncmUgaW4gVElNRSBmb3JtYXQgYW5kIHRoZSB0aW1lc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogT25seQoJICB1cGRhdGUgbGFzdF9zdG9wIGlmIHdlJ3JlIGluIFRJTUUgZm9ybWF0IGFuZCB0aGUgdGltZXN0YW1wIGlzCgkgIHZhbGlkLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50ZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KToKCSAgSWYgd2UgZ2V0IGEgbmV3IG5ld3NlZ21lbnQgd2l0aCBhIGRpZmZlcmVudCBmb3JtYXQsIGFkYXB0CgkgIGFjY29yZGluZ2x5LgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKTogQWNjZXB0IGEgbnVtZXJhdG9yCgkgIG9mIDAuIE5vdCBhIHByb2JsZW0sIHJlYWxseS4KCjIwMDYtMDItMDcgMTM6MjA6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6IE9ubHkgd2FybiBpZiBzeW5jPXRydWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6IE9ubHkKCSAgd2FybiBpZiBzeW5jPXRydWUuCgoyMDA2LTAyLTA3IDEwOjUxOjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNi0wMi0wNiAyMjowMToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFByZWxlYXNlIG9mIDAuMTAuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFByZWxlYXNlIG9mIDAuMTAuMwoKMjAwNi0wMi0wNiAyMTo1MzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDItMDYgMjE6Mjk6MDQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogcHJvamVjdCBmaWxlcyB1cGRhdGVkIHRvIHRoZSBkZWZhdWx0IHZzNyBjb25maWd1cmF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNzoKCSAgcHJvamVjdCBmaWxlcyB1cGRhdGVkIHRvIHRoZSBkZWZhdWx0IHZzNyBjb25maWd1cmF0aW9uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGRlZCBuZXcgc3ltYm9scywKCSAgcmVtb3ZlZCBlbXB0eSBsaW5lcywKCSAgc29ydGVkIGFsbCBleHBvcnRlZCBzeW1ib2xzIGFscGhhYmV0aWNhbGx5CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vZ2NoYXIuaDoKCSAgdXNlIHdpbmRvd3MgbGluZSBlbmQuCgoyMDA2LTAyLTA2IDE1OjI1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvYyBzdWI4MCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHN1YjgwIGZpeGVzCgoyMDA2LTAyLTA2IDE0OjU3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNlbmQgRU9TIGV2ZW50IHdoZW4gc3RvcHBpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNlbmQgRU9TIGV2ZW50IHdoZW4gc3RvcHBpbmcuCgoyMDA2LTAyLTA2IDEwOjQyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9SRUFETUU6IFRlbGwgZm9sa3Mgd2hhdCB0byBkbyBpZiB0aGUgcGx1Z2luLWZvb2Jhci54bWwgZmlsZSBoYXNuJ3QgYmVlbiBnZW5lcmF0ZWQgZm9yIGEgbmV3bHktYWRkZWQgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgVGVsbCBmb2xrcyB3aGF0IHRvIGRvIGlmIHRoZSBwbHVnaW4tZm9vYmFyLnhtbCBmaWxlCgkgIGhhc24ndCBiZWVuIGdlbmVyYXRlZCBmb3IgYSBuZXdseS1hZGRlZCBwbHVnaW4uCgoyMDA2LTAyLTA1IDE4OjEzOjI4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQ29sbGVjdHBhZHMgbm93IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBHc3RQYWQgdGhhdCB3YXMgYWRkZWQuIEluZGVlZCB3ZSBkb24ndCB3YW50IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KTogQ29sbGVjdHBhZHMgbm93IGhvbGRzIGEgcmVmZXJlbmNlCgkgIHRvIHRoZSBHc3RQYWQgdGhhdCB3YXMgYWRkZWQuIEluZGVlZCB3ZSBkb24ndCB3YW50IHRvIGxvb2sKCSAgYXQgcGFkcyB0aGF0IG1pZ2h0IGp1c3QgZ28gYXdheSB3aXRoIG5vIHdhcm5pbmcuLi4KCjIwMDYtMDItMDUgMTY6MTg6MzcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgZmx1c2guIEFkYXB0ZWQgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIGZsdXNoLiBBZGFwdGVkIGZyb20KCSAgTWFyayBOYXV3ZWxhZXJ0cydzIHBhdGNoIG9uIGJ1ZyAjMzI4NDkxLgoKMjAwNi0wMi0wNCAxMjo0OTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZCBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHRlc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQKCSAgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCjIwMDYtMDItMDQgMTE6NTY6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENhdGNoIGVycm9ycyBkdXJpbmcgcHJlcm9sbCAoIzMyMDA4NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIENhdGNoIGVycm9ycyBkdXJpbmcgcHJlcm9sbCAoIzMyMDA4NCkuCgoyMDA2LTAyLTAzIDIxOjE0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogUG9zdCBUWVBFX05PVF9GT1VORCBlcnJvciBtZXNzYWdlIHdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBhY3RpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBQb3N0IFRZUEVfTk9UX0ZPVU5EIGVycm9yIG1lc3NhZ2Ugd2hlbiB0eXBlZmluZGluZwoJICBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIGFzIHdlbGwuCgoyMDA2LTAyLTAyIDE2OjE1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBVcGRhdGVkIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGVkIGRvYy4KCjIwMDYtMDItMDIgMTY6MTI6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkga2VlcCB0cmFjayBvZiBwcmVyb2xsYWJsZSBpdGVtcyB3aGVuIHdlIGFyZSBwcmVyb2xsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKToKCSAgT25seSBrZWVwIHRyYWNrIG9mIHByZXJvbGxhYmxlIGl0ZW1zIHdoZW4gd2UgYXJlCgkgIHByZXJvbGxpbmcuCgkgIEJlZm9yZSByZW5kZXJpbmcgYWZ0ZXIgcHJlcm9sbCwgYWx3YXlzIGNoZWNrIGlmIHdlCgkgIGhhdmUgcXVldWVkIGl0ZW1zLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWdnaW5nLgoKMjAwNi0wMi0wMiAxMzo1ODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEZpeGVkICMzMjY1NzYsIGJlZW4gcnVubmluZyB0aGlzIGZvciBxdWl0ZSBzb21lIHRpbWUgd2l0aCBubyByZWdyZXNzaW9ucyBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBGaXhlZCAjMzI2NTc2LCBiZWVuIHJ1bm5pbmcgdGhpcyBmb3IgcXVpdGUgc29tZSB0aW1lIHdpdGgKCSAgbm8gcmVncmVzc2lvbnMgYXQgYWxsLgoKMjAwNi0wMi0wMiAxMzo0NDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9nc3Quc3VwcDogQWRkZWQgbW9yZSBzdXBwcmVzc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBBZGRlZCBtb3JlIHN1cHByZXNzaW9ucwoKMjAwNi0wMi0wMiAxMjowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogVXBkYXRlZCBkb2N1bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGVkIGRvY3VtZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFRvdGFsbHkgcmVmYWN0b3JlZCBtYXRjaGluZyB0aGUgZGVzaWduIGRvYy4KCSAgVXNlIHR3byBzZWdtZW50cywgb25lIHRvIGNsaXAgaW5jb21taW5nIGJ1ZmZlcnMgYW5kIGFub3RoZXIgdG8KCSAgcGVyZm9ybSBzeW5jLgoJICBIYW5kbGUgcXVldWVpbmcgY29ycmVjdGx5LCBieXBhc3MgdGhlIHF1ZXVlIHdoZW4gcGxheWluZy4KCSAgTWFrZSBFT1MgY2FuY2VsYWJsZS4KCSAgSGFuZGxlIGVycm9ycyBjb3JyZWN0bHkgd2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBiYXNlZCBtb2RlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEFkZGVkIG5ldyBjaGVjayBmb3Igc2lua3MuCgoyMDA2LTAyLTAyIDExOjU5OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogTm8gcmVhc29uIHRvIHJlZnVzZSB0byBjbGlwIHdoZW4gc3RhcnQgPT0gLTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NsaXApOgoJICBObyByZWFzb24gdG8gcmVmdXNlIHRvIGNsaXAgd2hlbiBzdGFydCA9PSAtMQoKMjAwNi0wMi0wMiAxMToyNDoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGRlc2NyaWJlIGRwYXJhbXMgKGNvbnRyb2xsZXIpIGZvciBwbHVnaW5zIHVuaWZ5IGRvY3MgYSBsaXR0bGUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkZXNjcmliZSBkcGFyYW1zIChjb250cm9sbGVyKSBmb3IgcGx1Z2lucwoJICB1bmlmeSBkb2NzIGEgbGl0dGxlIG1vcmUKCjIwMDYtMDItMDIgMDk6NTE6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLCAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZAoJICBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoKMjAwNi0wMi0wMSAyMjo0MzoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvUkVBRE1FOiB1bmNvdmVyIGEgbmFzdHkgZGV0YWlsIG9mIHRoZSBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL1JFQURNRToKCSAgdW5jb3ZlciBhIG5hc3R5IGRldGFpbCBvZiB0aGUgZG9jcyBidWlsZAoKMjAwNi0wMi0wMSAwODoyNzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgdXBkYXRlcyBmb3IgcGx1Z2luIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgZm9yIHBsdWdpbiBkb2NzCgoyMDA2LTAxLTMxIDE4OjQ2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBjYWNoZSBkdXJhdGlvbiBtZXNzYWdlcyBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gdXNlIG9yIGZyZWUgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSk6CgkgIERvbid0IGNhY2hlIGR1cmF0aW9uIG1lc3NhZ2VzIGlmIHdlJ3JlIG5vdCBnb2luZyB0byB1c2Ugb3IKCSAgZnJlZSB0aGVtLgoKMjAwNi0wMS0zMSAxNjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IG1vcmUgZHBhcmFtIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1vcmUgZHBhcmFtIGRvY3MKCSAgKiBnc3QvZ3N0aW5kZXguYzoKCSAgZml4IGRvY3MKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOiAoZ3N0X2NvbnRyb2xsZXJfaW5pdCk6CgkgIGluaXQganVzdCBvbmNlCgoyMDA2LTAxLTMxIDEwOjE2OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGFsc28gc2hvdyBmaWxlL2xpbmUvZnVuYyBpZiBubyBhZGRpdGlvbmFsIGRlYnVnIHdhcyBnaXZlbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKToKCSAgYWxzbyBzaG93IGZpbGUvbGluZS9mdW5jIGlmIG5vIGFkZGl0aW9uYWwgZGVidWcgd2FzIGdpdmVuCgoyMDA2LTAxLTMwIDIzOjUyOjUyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czcvZ3JhbW1hci52Y3Byb2o6IGFjdGl2YXRlIGNvcHkgb2YgYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajoKCSAgYWN0aXZhdGUgY29weSBvZiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMzAgMjI6Mjk6MDMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBleHBvcnQgZ3N0X3ZhbHVlX2NvbXBhcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfdmFsdWVfY29tcGFyZQoKMjAwNi0wMS0zMCAyMTo1NzowMCArMDAwMCAgUGhpbGlwcGUgUm91cXVpZXIgPGJvbmZpcmUtYXBwQHdhbmFkb28uZnI+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKF9kb19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksIChnc3RfZmRfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2luaXQpLCAoZ3N0X2ZkX3NpbmtfZGlzcG9zZSksIChnc3RfZmRfc2lua19xdWVyeSksCgkgIChnc3RfZmRfc2lua19yZW5kZXIpLCAoZ3N0X2ZkX3NpbmtfY2hlY2tfZmQpLCAoZ3N0X2ZkX3Npbmtfc3RhcnQpLAoJICAoZ3N0X2ZkX3Npbmtfc3RvcCksIChnc3RfZmRfc2lua191bmxvY2spLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfZmRfc2lua191cmlfZ2V0X3R5cGUpLAoJICAoZ3N0X2ZkX3NpbmtfdXJpX2dldF9wcm90b2NvbHMpLCAoZ3N0X2ZkX3NpbmtfdXJpX2dldF91cmkpLAoJICAoZ3N0X2ZkX3NpbmtfdXJpX3NldF91cmkpLCAoZ3N0X2ZkX3NpbmtfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgUG9ydCBmZHNpbmsgdG8gMC4xMCAocGF0Y2ggYnkgUGhpbGlwcGUgUm91cXVpZXIpIChGaXhlcyAjMzI1NDkwKQoKMjAwNi0wMS0zMCAyMToxMTozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6IGRlc2NyaWJlIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIGRlc2NyaWJlIGNvbnRyb2xsZXIKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9tYW51YWwvdGl0bGVwYWdlLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICAqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIGNsZWFudXAgeG1sIChtb3JlIHRvIGNvbWUpCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGZpeCB0eXBvCgoyMDA2LTAxLTMwIDIwOjM2OjUxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czYvZ3JhbW1hci5kc3A6IGFkZCBhdXRvZ2VuIG9mIGdzdG1hcnNoYWwuYyxoIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBhZGQgYXV0b2dlbiBvZiBnc3RtYXJzaGFsLmMsaCBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTMwIDE2OjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCYXNlc2luayBjbGVhbnVwcywgcmVtb3ZlIHNvbWUgb2xkIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19wcmVyb2xsZWQpLCAoZ3N0X2Jhc2Vfc2lua193YWl0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWFjdGl2YXRlKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBCYXNlc2luayBjbGVhbnVwcywgcmVtb3ZlIHNvbWUgb2xkIGNvZGUuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHN1YmNsYXNzIGNhbiBwcmVyb2xsIGluIHRoZSByZW5kZXIKCSAgbWV0aG9kIChtb3N0bHkgYXVkaW9zaW5rcykuCgkgIEhhbmRsZSBtb3JlIGV2ZW50cy4KCSAgUmVtb3ZlIHNvbWUgbG9ja3MgYXJvdW5kIHZhcmlhYmxlcyB0aGF0IGFyZSBub3cgcHJvdGVjdGVkCgkgIHdpdGggdGhlIFBSRVJPTExfTE9DSyAoY2xvY2tfaWQsIGZsdXNoaW5nLCAuLikuCgkgIE9wdGltaXplIHBvc2l0aW9uIHF1ZXJ5IHNvbWUgbW9yZSwgZG8gY29ycmVjdCBsb2NraW5nLgoJICBSZW1vdmUgb2xkIGNvZGUgdG8gcHVzaCBxdWV1ZSBpbiBzdGF0ZSBjaGFuZ2UsIHRoaXMgaXMgbm90CgkgIG5lZWRlZCBhbnltb3JlIHNpbmNlIHByZXJvbGwgYmxvY2tzIG9uIGFsbCBwcmVyb2xsYWJsZSBpdGVtcwoJICBub3cuCgkgIEFsbW9zdCBpbXBsZW1lbnRlZCBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvYy4KCjIwMDYtMDEtMzAgMTU6NTc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IFdhaXQgZm9yIHJlZmNvdW50IHRvIHNldHRsZSBkb3duIGJlZm9yZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBXYWl0IGZvciByZWZjb3VudCB0byBzZXR0bGUgZG93biBiZWZvcmUgY2hlY2tpbmcuCgoyMDA2LTAxLTMwIDE1OjE1OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBQc2V1ZG8gY29kZSBvdmVydmlldyBvZiBkZXNpcmVkIHNpbmsgYmVoYXZpb3VyIHJlZ2FyZGluZyBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFBzZXVkbyBjb2RlIG92ZXJ2aWV3IG9mIGRlc2lyZWQgc2luayBiZWhhdmlvdXIgcmVnYXJkaW5nCgkgIHByZXJvbGwuCgoyMDA2LTAxLTMwIDE0OjI4OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQmxlaCwgZm9yZ290IHRvIGNvbW1pdCB0aGUgY2hhbmdlbG9nIGVudHJ5IG9uIFNhdHVyZGF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmxlaCwgZm9yZ290IHRvIGNvbW1pdCB0aGUgY2hhbmdlbG9nIGVudHJ5IG9uIFNhdHVyZGF5LgoKMjAwNi0wMS0yOSAyMTo1NjowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM2L2dyYW1tYXIuZHNwOiBmaXggc29tZSBidWdzIGluIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIGZpeCBzb21lIGJ1Z3MgaW4gYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTI5IDE5OjI0OjE4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBleHBvcnQgc29tZSBuZXcgc3ltYm9sczogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQsIGdzdF9pdGVyYXRvcl9uZXh0LCBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgc29tZSBuZXcgc3ltYm9sczogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQsCgkgIGdzdF9pdGVyYXRvcl9uZXh0LCBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QKCjIwMDYtMDEtMjkgMTc6Mzc6MDggKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IFNldCBwYWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseS4gRml4ZXMgIzMyOTEwNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCk6CgkgIFNldCBwYWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseS4gRml4ZXMgIzMyOTEwNS4KCjIwMDYtMDEtMjkgMTY6NTQ6NDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzODogYWRkIHZzOCBwcm9qZWN0IGZpbGVzIGNyZWF0ZWQgYnkgU2VyZ2V5IFNjb2JpY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM4OgoJICBhZGQgdnM4IHByb2plY3QgZmlsZXMgY3JlYXRlZCBieSBTZXJnZXkgU2NvYmljaAoKMjAwNi0wMS0yOCAwMDo1OTozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogRG9uJ3QgbGVhayBwYWQgcmVmZXJlbmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmtfcGFkcyk6CgkgIERvbid0IGxlYWsgcGFkIHJlZmVyZW5jZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYSBidW5jaCBvZiBsZWFrcy4gTWFrZSBnZW5lcmljL3NpbmtzLmMKCSAgdXNlIGEgYml0IGxlc3MgY3B1IGJ5IHNsb3dpbmcgdGhlIGJ1ZmZlciByYXRlCgkgIGJldHdlZW4gZmFrZXNyYyBhbmQgZmFrZXNpbmsuCgoyMDA2LTAxLTI3IDIyOjM0OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2MgZml4ZXMsIHRvIGxpbmsgdG8gZnVuY3Rpb24sIGp1c3Qgd3JpdGUgZ3N0X2Nvb2xfZnVuY3Rpb24oKSwgZG9uJ3QgcHJlZml4IHdpdGggJyMnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2MgZml4ZXMsIHRvIGxpbmsgdG8gZnVuY3Rpb24sIGp1c3Qgd3JpdGUgZ3N0X2Nvb2xfZnVuY3Rpb24oKSwgZG9uJ3QKCSAgcHJlZml4IHdpdGggJyMnCgoyMDA2LTAxLTI3IDE2OjU5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEFsd2F5cyBwcmVmZXIgYW4gYWN0dWFsIHJldHVybiB2YWx1ZSBmcm9tIGEgc3JjIHBhZCBpbiBwbGFjZSBvZiBOT1RfTElOS0VELiBUaGlzIG1lYW5zIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwKCSAgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIEFsd2F5cyBwcmVmZXIgYW4gYWN0dWFsIHJldHVybiB2YWx1ZSBmcm9tIGEgc3JjCgkgIHBhZCBpbiBwbGFjZSBvZiBOT1RfTElOS0VELiBUaGlzIG1lYW5zIHdlIHJldHVybgoJICBXUk9OR19TVEFURSB3aGVuIGFsbCBzcmMgcGFkcyBhcmUgV1JPTkdfU1RBVEUKCSAgaW5zdGVhZCBvZiBOT1RfTElOS0VELgoJICBMb2NrIHdoZW4gcmVwbGFjaW5nIHRoZSBsYXN0IG1lc3NhZ2UgdG8gcHJldmVudAoJICByYWNpbmcgd2l0aCB0aGUgZ2V0X3Byb3BlcnR5IG1ldGhvZC4KCSAgQWRkIGRlYnVnIG91dHB1dAoKMjAwNi0wMS0yNyAxMTo1MzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBhIHZlcnkgc2ltcGxlIGNoZWNrIHRoYXQgc2hvdWxkIGhhdmUgY2F1Z2h0IHRoZSBtZW1sZWFrIEkgZml4ZWQgbGFzdCBuaWdodCAoaWYgbm90IGZvciB0aGUgc2xpY2UgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RxdWVyeV9zdWl0ZSksCgkgIChtYWluKToKCSAgQWRkIGEgdmVyeSBzaW1wbGUgY2hlY2sgdGhhdCBzaG91bGQgaGF2ZSBjYXVnaHQgdGhlIG1lbWxlYWsgSSBmaXhlZAoJICBsYXN0IG5pZ2h0IChpZiBub3QgZm9yIHRoZSBzbGljZSBhbGxvY2F0b3IgaGlkaW5nIGl0KQoKMjAwNi0wMS0yNyAwMTo0ODozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENsZWFuIHVwIHJlZmVyZW5jZXMgdG8gdGhlIGNsb2NrIHByb3ZpZGVyIHdoZW4gZGlzcG9zZWQgb3Igd2hlbiBoYW5kbGluZyBhIGNsb2NrLWxvc3QgbWVzc2FnZSBmcm9tIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCk6CgkgIENsZWFuIHVwIHJlZmVyZW5jZXMgdG8gdGhlIGNsb2NrIHByb3ZpZGVyIHdoZW4gZGlzcG9zZWQgb3Igd2hlbgoJICBoYW5kbGluZyBhIGNsb2NrLWxvc3QgbWVzc2FnZSBmcm9tIGl0LgoJICBVbnJlZiBzaW5rcyB3aGVuIHBlcmZvcm1pbmcgYSBxdWVyeSB2aWEgZ3N0X2l0ZXJhdG9yX2ZvbGQsIGFzIHRoZQoJICBnc3RfYmluX2l0ZXJhdGVfc2lua3MgaXRlcmF0b3IgcmVmcyBlYWNoIGl0ZW0uIChGaXhlcyAjMzIzODc0KQoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLCAoZ3N0X2Nsb2NrX2Rpc3Bvc2UpLAoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOgoJICBEcm9wIG91ciByZWZlcmVuY2UgdG8gdGhlIG1hc3RlciBjbG9jaywgaWYgYW55LCB3aGVuIHdlIGFyZSBkaXNwb3NlZC4KCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSk6CgkgIENoYWluIHVwIGluIGRpc3Bvc2UuCgoyMDA2LTAxLTI3IDAxOjEzOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2kxOG46CgkgIGFkZCBub3RlcyBvbiBpMThuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZXMgb24gaTE4bgoKMjAwNi0wMS0yNiAxMjo1OTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCjIwMDYtMDEtMjYgMTI6NDA6MTcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQXBwbHkgcGF0Y2ggZnJvbSAjMzI4NzE1LiBUZWUgbm93IGhhbmRsZXMgcGFkIGJlaW5nIE5PVF9MSU5LRUQgb3IgaW4gV1JPTkdfU1RBVEUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksCgkgIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOiBBcHBseSBwYXRjaCBmcm9tICMzMjg3MTUuIFRlZSBub3cKCSAgaGFuZGxlcyBwYWQgYmVpbmcgTk9UX0xJTktFRCBvciBpbiBXUk9OR19TVEFURS4KCjIwMDYtMDEtMjYgMDg6NTc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBtb3JlIHVwZGF0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBtb3JlIHVwZGF0aW5nCgoyMDA2LTAxLTI2IDA4OjM5OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogcmVtb3ZlIG9ic29sZXRlIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICByZW1vdmUgb2Jzb2xldGUgZW50cnkKCjIwMDYtMDEtMjYgMDY6NTc6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGNvZGUgZm9yIGRvd25zdHJlYW0gZXZlbnRzLCByZXZpZXdlZCBkb2NzIGluIGdzdGV2ZW50LmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zcmMpLCAoc3JjX2l0ZXJhdG9yX2ZpbHRlciksCgkgIChnc3RfYmluX2l0ZXJhdGVfc291cmNlcyksIChnc3RfYmluX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgYWRkZWQgY29kZSBmb3IgZG93bnN0cmVhbSBldmVudHMsIHJldmlld2VkIGRvY3MgaW4gZ3N0ZXZlbnQuYwoKMjAwNi0wMS0yNSAxODowNzowMiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdlIG9ubHkgcXVlcnkgcG9zaXRpb24gdXNpbmcgdGhlIGNsb2NrIGluIHRoZSBwbGF5aW5nIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgV2Ugb25seSBxdWVyeSBwb3NpdGlvbiB1c2luZyB0aGUgY2xvY2sgaW4gdGhlIHBsYXlpbmcgc3RhdGUuCgkgIFF1ZXJ5IHBlZXIgaW4gdGhlIG90aGVyIGNhc2VzLgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogVXBkYXRlcy4KCjIwMDYtMDEtMjQgMTY6MjM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQSBjbG9jayBlbnRyeSB0aGF0IGlzIHNjaGVkdWxlZCBmb3IgdGhlIGV4YWN0IHRpbWUgb2YgdGhlIGNsb2NrIGlzIHN0aWxsIGluIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQSBjbG9jayBlbnRyeSB0aGF0IGlzIHNjaGVkdWxlZCBmb3IgdGhlIGV4YWN0IHRpbWUgb2YgdGhlCgkgIGNsb2NrIGlzIHN0aWxsIGluIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDYtMDEtMjMgMTI6Mzc6MzMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogQWRkIG5ldyB2czcgcHJvamVjdCBmaWxlcyBhbmQgc29sdXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNyA6CgkgIEFkZCBuZXcgdnM3IHByb2plY3QgZmlsZXMgYW5kIHNvbHV0aW9uLgoKMjAwNi0wMS0yMyAxMjoyMzowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBhbGwgZmlsZXMgcmVtb3ZlZCBhcyB0aGV5IHdlcmUgb3V0LWRhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czc6CgkgIGFsbCBmaWxlcyByZW1vdmVkIGFzIHRoZXkgd2VyZSBvdXQtZGF0ZWQuCgoyMDA2LTAxLTIwIDE5OjAxOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IHVwZGF0ZSBub3RlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGUgbm90ZXMKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfbmV3KToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIHVzZSBnc3RfYnVzX25ldygpLCBpbXByb3ZlIGxvZ2dpbmcsIGZpeCBkb2NzCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZm9yIGN2cyBidWlsZAoKMjAwNi0wMS0yMCAxODo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhdXRvZ2VuLnNoOiB1cCByZXF1aXJlZCB2ZXJzaW9uIG9mIGF1dG9tYWtlIHRvIDEuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICB1cCByZXF1aXJlZCB2ZXJzaW9uIG9mIGF1dG9tYWtlIHRvIDEuNwoKMjAwNi0wMS0yMCAxMjo1Mzo0MCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IGV4cG9ydCBnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZQoKMjAwNi0wMS0yMCAxMTo0NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBnc3RfZXZlbnRfcmVwbGFjZSgpICgjMzI3MDAxKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgZ3N0X2V2ZW50X3JlcGxhY2UoKSAoIzMyNzAwMSkKCjIwMDYtMDEtMjAgMDk6NTY6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IE1ha2UgaXQgYWN0dWFsbHkgY29tcGlsZSB0b28uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIE1ha2UgaXQgYWN0dWFsbHkgY29tcGlsZSB0b28uLgoKMjAwNi0wMS0yMCAwOTo1MzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENsYXJpZnkgYmVoYXZpb3VyIG9mIF9pc19lcXVhbCgpIHdoZW4gcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIENsYXJpZnkgYmVoYXZpb3VyIG9mIF9pc19lcXVhbCgpIHdoZW4gcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIENsZWFudXBzLiBEb24ndCB1bnJlZiBOVUxMIGNhcHMuCgkgIFdoZW4gc2V0dGluZyB0aGUgc2FtZSBjYXBzLCBwcm90ZWN0IGNhcHMgb2YgdGhlIHBhZCB3aXRoCgkgIHByb3BlciBsb2NrLgoJICBVc2UgZnVsbCBmdW5jdGlvbmFsaXR5IG9mIF9pc19lcXVhbCgpIHdoZW4gY29tcGFyaW5nIGNhcHMuCgoyMDA2LTAxLTIwIDA5OjI2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IGlmIHRoZXJlIGFyZSBubyBidWZmZXJzIHRvIHByZXNlbnQuIFBhcnRpYWxseSBmaXhlcyAjMzI3MTk3LCBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCk6CgkgIERvbid0IGxvb3AgaW5maW5pdGVseSBpZiB0aGVyZSBhcmUgbm8gYnVmZmVycyB0byBwcmVzZW50LiBQYXJ0aWFsbHkKCSAgZml4ZXMgIzMyNzE5NywgYnV0IGNvbGxlY3RwYWRzIGlzIGp1c3QgYnJva2VuIGZvciByZXVzaW5nIGVsZW1lbnRzCgkgIHRvIGRvIG11bHRpcGxlIGVuY29kZXMgYXRtLgoKMjAwNi0wMS0yMCAwOToxMjoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy86IFVSTF9IQU5ETEVSIGlzIG5vdCBhIHBsdWdpbiBmZWF0dXJlIHdlIGNhbiBzZWFyY2ggZm9yIGluIHRoZSByZWdpc3RyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfZmVhdHVyZXMpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgVVJMX0hBTkRMRVIgaXMgbm90IGEgcGx1Z2luIGZlYXR1cmUgd2UgY2FuIHNlYXJjaCBmb3IgaW4KCSAgdGhlIHJlZ2lzdHJ5LgoKMjAwNi0wMS0xOSAxODowNjoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdoZW4gYWN0aXZhdGluZywgZG8gc3JjIHBhZHMgZmlyc3QsIHRoZW4gc2luayBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFdoZW4gYWN0aXZhdGluZywgZG8gc3JjIHBhZHMgZmlyc3QsIHRoZW4gc2luayBwYWRzLgoJICBXaGVuIGRlLWFjdGl2YXRpbmcsIGRvIHNpbmsgcGFkcyBmaXJzdCwgdGhlbiBzcmMgcGFkcy4KCjIwMDYtMDEtMTkgMTQ6MDI6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252IHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udiB0byB0aGUgZG9jcwoKMjAwNi0wMS0xOSAxMzozMDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRml4IGRvY3MgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRml4IGRvY3MgdHlwbwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgRG8gc29tZSByZWZhY3RvcmluZy4gRG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgZnVuY3Rpb25hbGl0eSwKCSAgYnV0IG1ha2VzIGxhbmRpbmcgdGhlIERSQUlOIGV2ZW50IGVhc2llciBsYXRlci4KCjIwMDYtMDEtMTkgMTA6Mzk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDogVXBkYXRlIGZyb20gMC45LnggdG8gMC4xMCBBUEkgYW5kIG1ha2UgZXhhbXBsZSBhIGJpdCBjbGVhcmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgVXBkYXRlIGZyb20gMC45LnggdG8gMC4xMCBBUEkgYW5kIG1ha2UgZXhhbXBsZSBhIGJpdAoJICBjbGVhcmVyLgoKMjAwNi0wMS0xOSAwOToyNDowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIG1ldGhvZHMuCgoyMDA2LTAxLTE5IDA5OjA4OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6IFVwZGF0ZSBzcGFyc2Ugc3RyZWFtcyBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgVXBkYXRlIHNwYXJzZSBzdHJlYW1zIGRvYwoKMjAwNi0wMS0xOSAwOTowMjoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgQWRkIERSQUlOIGV2ZW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFdyaXRlIHNvbWUgdGhpbmdzIGFib3V0IHVzaW5nIE5FV1NFR01FTlQgdG8ga2VlcCBzcGFyc2Ugc3RyZWFtcwoJICBmbG93aW5nLgoKMjAwNi0wMS0xOCAxODo1Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogR3VhcmQgZ3N0X29iamVjdF91bnJlZiBjYWxsIGFnYWluc3QgYSBOVUxMIG9iamVjdCAoZGlzcG9zZSBjYW4gdGhlb3JldGljYWxseSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpOgoJICBHdWFyZCBnc3Rfb2JqZWN0X3VucmVmIGNhbGwgYWdhaW5zdCBhIE5VTEwgb2JqZWN0IChkaXNwb3NlCgkgIGNhbiB0aGVvcmV0aWNhbGx5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcykuCgoyMDA2LTAxLTE4IDE4OjA1OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBBZGQgRFJBSU4gZXZlbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgV3JpdGUgc29tZSB0aGluZ3MgYWJvdXQgdXNpbmcgTkVXU0VHTUVOVCB0byBrZWVwIHNwYXJzZSBzdHJlYW1zCgkgIGZsb3dpbmcuCgoyMDA2LTAxLTE4IDE4OjAxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgQWRkZWQgbW9yZSBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbik6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgoyMDA2LTAxLTE4IDE3OjU5OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgSWdub3JlIGZha2VzaW5rIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJZ25vcmUgZmFrZXNpbmsgdGVzdC4KCjIwMDYtMDEtMTggMTc6NTc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIGZha2VzaW5rIHRlc3QgdGhhdCBjaGVja3MgcHJlcm9sbGluZyBhbmQgY2xpcHBpbmcgYmVoYXZpb3VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoY2hhaW5fYXN5bmNfYnVmZmVyKSwKCSAgKGNoYWluX2FzeW5jKSwgKGNoYWluX2FzeW5jX3JldHVybiksIChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgZmFrZXNpbmsgdGVzdCB0aGF0IGNoZWNrcyBwcmVyb2xsaW5nIGFuZCBjbGlwcGluZwoJICBiZWhhdmlvdXIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgY2hlY2sgcnVuIGZhc3RlciBzbyB0aGF0IGJ1aWxkYm90cyBkb24ndCB0aW1lb3V0LgoKMjAwNi0wMS0xOCAxNzoxODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFNvbWUgY2xlYW51cHMuCgkgIFdoZW4gdGhlIHNpbmsgZmluaXNoZXMgYmxvY2tpbmcgb24gdGhlIHByZXJvbGwgYnVmZmVyLCBpdCBjYW4KCSAgaW1tZWRpYXRseSByZW5kZXIgaXQgaW5zdGVhZCBvZiByZW5kZXJpbmcgd2hlbiB0aGUgbmV4dCBidWZmZXIKCSAgYXJyaXZlcy4KCjIwMDYtMDEtMTggMTY6NDA6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBHU1RfRUxFTUVOVF9DTE9DSyBhbmQgc3luYyBhcmUgcHJvdGVjdGVkIHdpdGggTE9DSy4KCSAgRG9uJ3Qgc3RvcmUgX2xhc3Rfc3RvcCBpZiB0aGUgYnVmZmVyIGlzIGRyb3BwZWQuCgoyMDA2LTAxLTE4IDE2OjMxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogJ2hhdmUtdHlwZScgc2lnbmFsIG5lZWRzIHRvIGJlIEdfU0lHTkFMX1JVTl9GSVJTVCwgYXMgaXQgaXMgdGhlIG9iamVjdCBtZXRob2QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICdoYXZlLXR5cGUnIHNpZ25hbCBuZWVkcyB0byBiZSBHX1NJR05BTF9SVU5fRklSU1QsIGFzIGl0IGlzIHRoZQoJICBvYmplY3QgbWV0aG9kIGhhbmRsZXIgdGhhdCBzZXRzIHRoZSBjYXBzIG9uIHRoZSBwYWQgYW5kIHdlIHdhbnQKCSAgdGhhdCB0byBoYXBwZW4gYmVmb3JlIHdlIGVtaXQgdGhlIHNpZ25hbCAoZml4ZXMgZS5nLiBmZWVkaW5nIGEKCSAgcGxhaW4gdGV4dCBmaWxlIHRvIGRlY29kZWJpbikuCgoyMDA2LTAxLTE4IDExOjQ0OjU1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgYWRkIE1QTCBhbmQgUHJvcGVyaWV0YXJ0IHRvIGxpc3Qgb2YgbGljZW5zZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBNUEwgYW5kIFByb3BlcmlldGFydCB0byBsaXN0IG9mIGxpY2Vuc2VzCgoyMDA2LTAxLTE4IDA5OjQyOjEyICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3RpbmRleC5oIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IEFkZCB0byBoZWFkZXIuIFRoZSBzeW1ib2wgd2FzIGV4cG9ydGVkIGJlZm9yZSwgaXQgYXBwZWFycyB0aGlzIHdhcyBqdXN0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBBZGQgdG8gaGVhZGVyLiBUaGUKCSAgc3ltYm9sIHdhcyBleHBvcnRlZCBiZWZvcmUsIGl0IGFwcGVhcnMgdGhpcyB3YXMganVzdCBhbiBvdmVyc2lnaHQuCgkgIEZpeGVzICMxNjg3MDMuCgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteC5kZT4KCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBDaGFuZ2VkIGludCBpbgoJICBwcm90b3R5cGUgdG8gZ2ludC4gT0sgc2luY2UgdGhpcyBwcm90b3R5cGUgd2FzIG5vdCBpbiB0aGUgaGVhZGVyLgoKMjAwNi0wMS0xNyAxNjozOToyMyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSAgc21hbGwgZml4IHRvIHRoZSBwcm9wb3NlZCBsaWNlbnNlIGNsYXVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZml4IHRvIHRoZSBwcm9wb3NlZCBsaWNlbnNlIGNsYXVzZQoKMjAwNi0wMS0xNyAxMjo1MzowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmMgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOiBMb2NrIHRoZSByZWdpc3RyeSB3aGlsZSB3ZSByZW1vdmUgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOiBMb2NrIHRoZQoJICByZWdpc3RyeSB3aGlsZSB3ZSByZW1vdmUgcGx1Z2lucy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9lbGVtZW50X2luZm8pOiBEb24ndCB1bnJlZiB0aGUKCSAgZmFjdG9yeSBhcmcsIHRoYXQgc2hvdWxkIGJlIHRoZSByZXNwb25zaWJpbGl0eSBvZiB3aGF0ZXZlciBjb2RlCgkgIHJlY2VpdmVkIHRoZSByZWYuIEZpeGVzIGEgZG91YmxlLWZyZWUgd2hlbiBjYWxsZWQgZnJvbQoJICBwcmludF9lbGVtZW50X2xpc3QgdmlhIGdzdC1pbnNwZWN0LTAuMTAgLWEuIEZpeGVzICMzMjczMjQuCgkgIChtYWluKTogVW5yZWYgdGhlIGZhY3RvcnkgaWYgd2UgaGF2ZSBvbmUuCgkgIChwcmludF9lbGVtZW50X2xpc3QpOiBObyBjaGFuZ2UgLS0gcmVsaWVzIG9uIHRoZQoJICBwbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUgdG8gZnJlZSB0aGUgbGlzdCBvZiBmZWF0dXJlcy4KCjIwMDYtMDEtMTcgMTI6MTQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVwbGFjZSBnc3RfYnVmZmVyXyhtYWtlfGlzKV9tZXRhZGF0YV93cml0YWJsZSBwYXRjaCBub3cgdGhhdCB0aGUgcmVsZWFzZSBpcyBvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFJlcGxhY2UgZ3N0X2J1ZmZlcl8obWFrZXxpcylfbWV0YWRhdGFfd3JpdGFibGUgcGF0Y2ggbm93CgkgIHRoYXQgdGhlIHJlbGVhc2UgaXMgb3V0LgoKMjAwNi0wMS0xNyAxMjowODo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZmxvdyBkZXNpZ24gY29tbWVudC4gVXBkYXRlIHNvIGFzIHRvIHNwZWFrIGluIHRoZSBwcmVzZW50IHRlbnNlIHdpdGhvdXQgcmVmZXJlbmNlIHRvIHZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogUmVmbG93IGRlc2lnbiBjb21tZW50LiBVcGRhdGUgc28gYXMgdG8gc3BlYWsKCSAgaW4gdGhlIHByZXNlbnQgdGVuc2Ugd2l0aG91dCByZWZlcmVuY2UgdG8gdmVyc2lvbnMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKQoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4sIGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZSkKCSAgKGdzdF9yZWdpc3RyeV9maW5kX2ZlYXR1cmUsIGdzdF9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0KQoJICAoZ3N0X3JlZ2lzdHJ5X2dldF9wbHVnaW5fbGlzdCwgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlKQoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cCwgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCkKCSAgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpCgkgIChnc3RfcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdF9ieV9wbHVnaW4pOiBBZGQgYXJndW1lbnQKCSAgdmFsaWRhdGlvbi4KCjIwMDYtMDEtMTYgMjE6MDA6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4yID09PQoKMjAwNi0wMS0xNiAyMDo1OTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjIKCjIwMDYtMDEtMTYgMTU6NDI6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQmFjayBvdXQgcGF0Y2ggdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChnc3RfdGVzdF9zdWl0ZSk6CgkgIEJhY2sgb3V0IHBhdGNoIHVudGlsIGFmdGVyIHRoZSByZWxlYXNlLgoKMjAwNi0wMS0xNiAxNDozNzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTcGVsbGluZyBmaXggaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgU3BlbGxpbmcgZml4IGluIGRvY3MuCgkgICogQ2hhbmdlTG9nIC0gcmVtb3ZlIGNvbmZsaWN0IGluZGljYXRvcgoKMjAwNi0wMS0xNiAxNDozNzowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAoTWlzc2VkIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIGluIHByZXZpb3VzIGNvbW1pdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIChNaXNzZWQgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgaW4gcHJldmlvdXMgY29tbWl0KQoJICBSZXZpZXdlZCBCeTogQW5keSBXaW5nbwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YKCSAgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVXNlIG5hbWUgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgZnVuY3Rpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgVGVzdCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZQoJICAoQ2xvc2VzOiAjMzI0MTYyKQoKMjAwNi0wMS0xNiAxNDozMjozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBCeTogQW5keSBXaW5nbwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YKCSAgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVXNlIG5hbWUgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgZnVuY3Rpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgVGVzdCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZQoJICAoQ2xvc2VzOiAjMzI0MTYyKQoKMjAwNi0wMS0xNCAyMjo1OTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTAxLTE0IDE0OjEyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYWRkIHVubGluayBhbmQgc29tZSBhc3NlcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdW5saW5rIGFuZCBzb21lIGFzc2VydHMKCjIwMDYtMDEtMTQgMTE6MjA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06IGRvbid0IGRvIHBhcmFsbGVsIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGRvbid0IGRvIHBhcmFsbGVsIG1ha2UKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFDX1NVQlNUIEhPU1RfQ1BVCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGQgZ2VuZXJhdGlvbnMgZm9yIEhPU1RfQ1BVIGFuZCBHU1RfTUFKT1JNSU5PUgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogICAgICAgICAgIGNvbW1pdCBnZW5lcmF0ZWQgcmVzdWx0CgoyMDA2LTAxLTEzIDE5OjUxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZXMgdG8gcmVsZWFzZSBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgdG8gcmVsZWFzZSBkb2MKCjIwMDYtMDEtMTMgMTk6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6IFVwZGF0ZSBHTk9NRSBpbnRlZ3JhdGlvbiBzZWN0aW9uIHRvIHVzZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgaW5zdGVhZCBvZiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBVcGRhdGUgR05PTUUgaW50ZWdyYXRpb24gc2VjdGlvbiB0byB1c2UgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpCgkgIGluc3RlYWQgb2YgdGhlIG9sZCBwb3B0IHN0dWZmICgjMzIyOTExKS4gQWxzbywgR05PTUUgYXBwbGljYXRpb25zCgkgIHNob3VsZCAgbm93IHVzZSBnY29uZipzaW5rIGFuZCBnY29uZipzcmMgaW5zdGVhZCBvZiB0aGUgb2xkIGdjb25mCgkgIGhlbHBlciBsaWIgd2UgaGFkLgoKMjAwNi0wMS0xMyAxNjoxNjoyNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92aW5nIDAxMCBzdWZmaXhpbmcgb2YgcGFja2FnZSBuYW1lIGFzIEZlZG9yYSBvbmx5IHVzZSBpdCBmb3IgMC44LCB3YW50IHRvIGhhdmUgdGhlIHBhY2thZ2VzIGJlIGludGVyY2hhbmdlYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZpbmcgMDEwIHN1ZmZpeGluZyBvZiBwYWNrYWdlIG5hbWUgYXMgRmVkb3JhIG9ubHkgdXNlIGl0IGZvciAwLjgsIHdhbnQKCSAgdG8gaGF2ZSB0aGUgcGFja2FnZXMgYmUgaW50ZXJjaGFuZ2VhYmxlCgoyMDA2LTAxLTEzIDE0OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vTElOR1VBUzoKCSAgcmVhZGQgemhfVFcgYW5kIGZvcmNlIGFuIGF1dG9nZW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlYWRkIHpoX1RXIGFuZCBmb3JjZSBhbiBhdXRvZ2VuCgoyMDA2LTAxLTEzIDE0OjIxOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogYWRkIG5ldyBBUEkgZW50cmllcyB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG5ldyBBUEkgZW50cmllcyB0byB0aGUgZG9jcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIG1vdmUgcHJpdmF0ZSBzdHJ1Y3RzIHRvIHByaXZhdGUgaGVhZGVyCgkgICogcG8vUkVBRE1FOgoJICBnc3RyZWFtZXItMC43IC0+IGdzdHJlYW1lci0wLjEwCgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICByZW1vdmUgcHJpdmF0ZSBzdHJ1Y3RzCgoyMDA2LTAxLTEzIDE0OjE5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCjIwMDYtMDEtMTMgMTQ6MTk6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vTElOR1VBUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgoyMDA2LTAxLTEzIDE0OjEyOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06IEZpeGVzIGFzIHBhcnQgb2YgIzMxNzA0OAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBGaXhlcyBhcyBwYXJ0IG9mICMzMTcwNDgKCjIwMDYtMDEtMTMgMTM6NDE6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbTogZml4ICMzMTYwODYgLSBjb21waWxhdGlvbiB3aGVuIG1tYXAgaXMgbWlzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBmaXggIzMxNjA4NiAtIGNvbXBpbGF0aW9uIHdoZW4gbW1hcCBpcyBtaXNzaW5nCgoyMDA2LTAxLTEyIDIyOjA0OjU4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6ICpjdXIgPSAobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IHJlcGxhY2VkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKmN1ciA9IChub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgcmVwbGFjZWQgYnkKCSAgKmN1ciA9IGdzdF9ndWludDY0X3RvX2dkb3VibGUobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IGZvciB2czYKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZGVkIHNvbWUgZGVmaW5lcyBHU1RfTUFKT1JNSU5PUiBhbmQgSE9TVF9DUFUKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZGVkIHNvbWUgZXhwb3J0ZWQgZnVuY3Rpb25zCgoyMDA2LTAxLTEyIDIxOjU1OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogbWFrZSBHX1RZUEVfU1RSSU5HIGNvbnRyb2xhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgbWFrZSBHX1RZUEVfU1RSSU5HIGNvbnRyb2xhYmxlCgoyMDA2LTAxLTEyIDE2OjMxOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy86IGNsZWFudXAgbWFuLXBhZ2VzLCByZW1vdmUgcmVmZXJlbmNlIHRvIGdzdC1yZWdpc3RlciwgZG9jdW1lbnQgZW52LXZhcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvUkVBRE1FOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uMS5pbjoKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC4xLmluOgoJICAqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgY2xlYW51cCBtYW4tcGFnZXMsIHJlbW92ZSByZWZlcmVuY2UgdG8gZ3N0LXJlZ2lzdGVyLCBkb2N1bWVudCBlbnYtdmFycwoKMjAwNi0wMS0xMiAxNjowNzo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IGdzdF9idWZmZXJfc3BhbiBzaG91bGQgY29weSB0aGUgdGltZXN0YW1wIG9mIHRoZSBmaXJzdCBidWZmZXIgaWYgdGhleSB3ZXJlIGJvdGggb3JpZ2luYWxseSBvdmVybGFwcGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgZ3N0X2J1ZmZlcl9zcGFuIHNob3VsZCBjb3B5IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGZpcnN0IGJ1ZmZlcgoJICBpZiB0aGV5IHdlcmUgYm90aCBvcmlnaW5hbGx5IG92ZXJsYXBwaW5nIHN1YmJ1ZmZlcnMgb2YgdGhlCgkgIHNhbWUgcGFyZW50LCB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyB0aGUgJ3Nsb3cgY29weScgY2FzZS4KCjIwMDYtMDEtMTEgMjE6MzI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBOZWVkIHRvIGF3YWtlbiBBTEwgdGhlIHBhZHMgd2hlbiB3ZSBwb3AgYSBidWZmZXIsIG90aGVyd2lzZSBjb2xsZWN0cGFkcyBvbmx5IHdvcmtzIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcG9wKToKCSAgTmVlZCB0byBhd2FrZW4gQUxMIHRoZSBwYWRzIHdoZW4gd2UgcG9wIGEgYnVmZmVyLCBvdGhlcndpc2UKCSAgY29sbGVjdHBhZHMgb25seSB3b3JrcyB3aGVuIHRoZXJlIGlzIDIgaW5wdXQgc3RyZWFtcy4KCjIwMDYtMDEtMTEgMTk6MTg6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6IG1vcmUgaWRlYXMgKGRidXMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgIG1vcmUgaWRlYXMgKGRidXMpCgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBmaXggZG9jIGV4YW1wbGUsIGFkZCBjbGFyaWZpY2F0aW9uCgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBhZGQgaW5pdGlhbCBpbmZvIGFib3V0IEdTVF9QTFVHSU5fUEFUSCwgbmVlZHMgbW9yZSB3b3JrCgoyMDA2LTAxLTExIDEwOjM4OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIG1vcmUgbWlub3IgZG9jcyBhZGRpdGlvbnMgYW5kIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIFNvbWUgbW9yZSBtaW5vciBkb2NzIGFkZGl0aW9ucyBhbmQgdXBkYXRlcy4KCjIwMDYtMDEtMTEgMTA6MjA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgc21hbGwgZml4ZXMgYXMgcG9pbnRlZCBvdXQgYnkgU2VyLXZlciBvbiBJUkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBTb21lIHNtYWxsIGZpeGVzIGFzIHBvaW50ZWQgb3V0IGJ5IFNlci12ZXIgb24gSVJDLgoKMjAwNi0wMS0xMCAxNTo0MjoyOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogU2V0IHRoZSBidWZmZXIgb2Zmc2V0L29mZnNldF9lbmQgdG8gR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHVzaW5nIHRoZSBzaW5nbGUtc2VnbWVudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgU2V0IHRoZSBidWZmZXIgb2Zmc2V0L29mZnNldF9lbmQgdG8gR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHVzaW5nCgkgIHRoZSBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wMS0xMCAwOToyMzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBOYW1lIChwcml2YXRlKSB1bmlvbjsgbWFrZXMgU3VuJ3MgRm9ydGUgY29tcGlsZXIgaGFwcHkgKCMzMjQ5MDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE5hbWUgKHByaXZhdGUpIHVuaW9uOyBtYWtlcyBTdW4ncyBGb3J0ZSBjb21waWxlciBoYXBweSAoIzMyNDkwMCkuCgoyMDA2LTAxLTA5IDEwOjQ3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUkVBRE1FOiBnc3QtcmVnaXN0ZXIgaXMgZ29uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBnc3QtcmVnaXN0ZXIgaXMgZ29uZS4KCjIwMDYtMDEtMDcgMTE6MDc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vTElOR1VBUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoKMjAwNi0wMS0wNyAxMTowNzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHBvL0xJTkdVQVM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCjIwMDYtMDEtMDcgMTA6MDQ6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IG1ha2UgdGhlIEdfVFlQRV9EQVRFIGluc3RhbnRpYXRpb24gd29yayBpZiBkZWJ1ZyBpcyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIG1ha2UgdGhlIEdfVFlQRV9EQVRFIGluc3RhbnRpYXRpb24gd29yayBpZiBkZWJ1ZyBpcyBkaXNhYmxlZAoKMjAwNi0wMS0wNyAwOTo1NjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDYtMDEtMDYgMTc6MTY6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBEb24ndCBjcmFzaCB3aGVuIHJldHVybiBsb2NhdGlvbiBmb3IgZXJyb3Ivd2FybmluZyBkZWJ1ZyBzdHJpbmcgaXMgTlVMTDsgYWRkIGZhY3QgdGhhdCByZXR1cm4gbG9jYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX3RhZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiByZXR1cm4gbG9jYXRpb24gZm9yIGVycm9yL3dhcm5pbmcgZGVidWcKCSAgc3RyaW5nIGlzIE5VTEw7IGFkZCBmYWN0IHRoYXQgcmV0dXJuIGxvY2F0aW9ucyBjYW4gYmUKCSAgTlVMTCB0byBkb2NzIHdoZXJlIGFwcHJvcHJpYXRlLgoKMjAwNi0wMS0wNSAxMDo0MzowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUmVwbGFjZSBzdHJkdXAgYnkgZ19zdHJkdXAgYXMgc3VnZ2VzdGVkIGJ5IFNlci12ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgUmVwbGFjZSBzdHJkdXAgYnkgZ19zdHJkdXAgYXMgc3VnZ2VzdGVkIGJ5IFNlci12ZXIuCgoyMDA2LTAxLTA0IDIzOjUzOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZyBmb3IgLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBjb25maWcgZm9yIC4xCgoyMDA2LTAxLTA0IDIzOjUyOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogZml4IGRvYyBib3JrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZml4IGRvYyBib3JrYWdlCgoyMDA2LTAxLTA0IDIzOjUwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHN1Ym1pdHRlZCBieTogQWJlbCBDaGV1bmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN1Ym1pdHRlZCBieTogQWJlbCBDaGV1bmcKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL3poX1RXLnBvOgoJICBBZGRlZCBDaGluZXNlICh0cmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCjIwMDYtMDEtMDQgMTI6NDE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCB1cGRhdGVzIHRvIHZhcmlvdXMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU21hbGwgdXBkYXRlcyB0byB2YXJpb3VzIGRvY3MuCgkgIEFkZGVkIGNvcmUgcGx1Z2lucyB0byBkb2NzLgoKMjAwNi0wMS0wMyAxODowODowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBhIHN1cHByZXNzaW9uIGZvciBsaWJvaWwncyB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZm9yIGxpYm9pbCdzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMDYtMDEtMDIgMjA6MjY6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIHByb3RvdHlwZSBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb24gdG8gR1NUX0JPSUxFUlBMQVRFX0ZVTEwgbWFjcm8sIHNvIHRoYXQgZ2NjIGRvZXNuJ3QgY29tcGxhaW4gaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBwcm90b3R5cGUgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRvIEdTVF9CT0lMRVJQTEFURV9GVUxMCgkgIG1hY3JvLCBzbyB0aGF0IGdjYyBkb2Vzbid0IGNvbXBsYWluIGlmIHRoZSAtV21pc3NpbmctcHJvdG90eXBlcwoJICBjb21waWxlciBzd2l0Y2ggaXMgYmVpbmcgdXNlZCAoIzMyNTQyOSkuCgoyMDA1LTEyLTI5IDE2OjQ3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBEaXNhYmxlIGR1cmF0aW9uIHF1ZXJ5IGNhY2hpbmcgaW4gYmlucyB1bnRpbCBpdCBnZXRzIGZpeGVkIChzZWUgIzMyNDgwNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICBEaXNhYmxlIGR1cmF0aW9uIHF1ZXJ5IGNhY2hpbmcgaW4gYmlucyB1bnRpbCBpdCBnZXRzCgkgIGZpeGVkIChzZWUgIzMyNDgwNykuCgoyMDA1LTEyLTI3IDE4OjA0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogSGFuZGxlIHByb3BlcnRpZXMgb2YgUE9JTlRFUiBhbmQgQk9YRUQgdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSGFuZGxlIHByb3BlcnRpZXMgb2YgUE9JTlRFUiBhbmQgQk9YRUQgdHlwZS4KCjIwMDUtMTItMjcgMTI6MTE6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEluaXQgdGFncyBzdHVmZiBhbmQgc29tZSBvdGhlciB0aGluZ3MgYmVmb3JlIGxvYWRpbmcgYW55IHN0YXRpYyBwbHVnaW5zICh0aGVyZSBtYXkgYmUgb3RoZXIgc3RhdGljIHBsdWdpbnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgSW5pdCB0YWdzIHN0dWZmIGFuZCBzb21lIG90aGVyIHRoaW5ncyBiZWZvcmUgbG9hZGluZwoJICBhbnkgc3RhdGljIHBsdWdpbnMgKHRoZXJlIG1heSBiZSBvdGhlciBzdGF0aWMgcGx1Z2lucwoJICB0aGFuIGp1c3QgdGhlIEdTdHJlYW1lciBvbmVzLCBhbmQgdGhleSBtYXkgd2FudCB0bwoJICByZWdpc3RlciB0aGVpciBvd24gdGFncyBvciBmb3JtYXRzIG9yIHdoYXRldmVyLCBhbmQKCSAgcHJlZmVyYWJseSB3aXRob3V0IHNlZ2ZhdWx0aW5nKS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFByaW50IGF0IGxlYXN0IGEgd2FybmluZyBpbiB0aGUgZGVidWcgbG9ncyBpZiB3ZSBkcm9wIGEKCSAgcXVlcnkganVzdCBiZWNhdXNlIHdlIGRvbid0IGtub3cgaG93IHRvIGFkanVzdCB0aGUgdmFsdWUKCSAgaW4gdGhlIHBhcnRpY3VsYXIgZm9ybWF0LgoKMjAwNS0xMi0yNSAwMzo0NTo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogUmVwbGFjZW1lbnQgZm9yIGdzdC1jb21wbGV0ZSB3cml0dGVuIGluIHNoIGFuZCBzZWQuICBPbmx5IGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIFJlcGxhY2VtZW50IGZvciBnc3QtY29tcGxldGUgd3JpdHRlbiBpbiBzaCBhbmQgc2VkLiAgT25seQoJICBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1dCB0aGF0J3MgOTAlIG9mIHdoYXQgSSB3YW50CgkgIGl0IGZvci4gIFByb3BlcnRpZXMgYXJlIG5vdCBhdmFpbGFibGUgaW4gcmVnaXN0cnkueG1sLiAgKE1heWJlCgkgIHRoZXkgc2hvdWxkIGJlLi4uKQoKMjAwNS0xMi0yMyAxODoxNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjEgPT09CgoyMDA1LTEyLTIzIDE4OjA0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjEKCjIwMDUtMTItMjMgMTQ6NTM6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTItMjMgMTM6NDU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTItMjIgMTQ6NDg6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9jdnMueG1sOiBBZGQgbWlzc2luZyBxdW90ZSwgc2hvdWxkIGJlIG1ha2UgRVJST1JfQ0ZMQUdTPSIiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBBZGQgbWlzc2luZyBxdW90ZSwgc2hvdWxkIGJlIG1ha2UgRVJST1JfQ0ZMQUdTPSIiLgoKMjAwNS0xMi0yMCAxNjowMTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNpbmcKCjIwMDUtMTItMjAgMTI6NTA6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OiBNb3JlIGRvY3VtZW50YXRpb24gb24gdHJpY2ttb2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgTW9yZSBkb2N1bWVudGF0aW9uIG9uIHRyaWNrbW9kZXMuCgoyMDA1LTEyLTIwIDExOjEyOjUzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGNhcHMuKjogQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY0NhcHMgc28gd2UgY2FuIHdyYXAgdGhlbSBpbiBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY0NhcHMgc28gd2UgY2FuIHdyYXAgdGhlbSBpbiBiaW5kaW5ncy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4KCSAgYmluZGluZ3MuCgoyMDA1LTEyLTE4IDE2OjA0OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMTItMTggMTQ6Mjg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IFJlbW92ZSBzdXBlcmZsdW91cyBjbG9zaW5nIGJyYWNrZXQgaW4gaGVsbG93b3JsZCBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIFJlbW92ZSBzdXBlcmZsdW91cyBjbG9zaW5nIGJyYWNrZXQgaW4gaGVsbG93b3JsZCBleGFtcGxlLgoKMjAwNS0xMi0xNyAxNDoxOToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogVXBkYXRlIGdzdC1sYXVuY2ggbWFuIHBhZ2U7IGFkZCBhIHNlY3Rpb24gd2l0aCB1c2VmdWwgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBGaXhlcyAjMzIzODgyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVwZGF0ZSBnc3QtbGF1bmNoIG1hbiBwYWdlOyBhZGQgYSBzZWN0aW9uIHdpdGggdXNlZnVsCgkgIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRml4ZXMgIzMyMzg4Mi4KCjIwMDUtMTItMTYgMjE6NTk6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IGNoYW5nZSBzb21lIGNoYXIqIGludG8gY2hhcltdCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgY2hhbmdlIHNvbWUgY2hhciogaW50byBjaGFyW10KCjIwMDUtMTItMTYgMTk6MjQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKToKCSAgQ2xlYW51cHMuCgkgIERvbid0IHVzZSBnX29iamVjdF91bnJlZiBvbiBHc3RPYmplY3RzIHNvIHRoYXQgd2UgYXZvaWQKCSAgbGVha3Mgb24gdW5zYWZlIGdsaWJzLgoKMjAwNS0xMi0xNiAxODoyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgoyMDA1LTEyLTE2IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2NoZWNrLm1hazogQWRkZWQgbWFrZSBmb3JldmVyIHRhcmdldCBmb3IgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIEFkZGVkIG1ha2UgZm9yZXZlciB0YXJnZXQgZm9yIGNoZWNrLgoKMjAwNS0xMi0xNiAxNzozNDoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IG1ha2UgdGhlIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgSE9TVF9DUFUtZGVwZW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIG1ha2UgdGhlIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgSE9TVF9DUFUtZGVwZW5kZW50CgoyMDA1LTEyLTE2IDE0OjQ0OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jCgkgIChnc3RfYnVmZmVyX3N0b3JlX2NsZWFyZWRfZnVuYyk6IFBheSBhdHRlbnRpb24gdG8gZ19saXN0X2FwcGVuZAoJICByZXR1cm4gdmFsdWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jCgkgICh0ZXN0X2Zha2Vfb2JqZWN0X25hbWVfdGhyZWFkZWRfdW5pcXVlKTogUGF5IGF0dGVudGlvbiB0bwoJICBnX2xpc3Rfc29ydCByZXR1cm4gdmFsdWUuCgoyMDA1LTEyLTE2IDExOjUyOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubTogVXBkYXRlIGZvciAwLjkvMC4xMCAoZml4ZXMgIzMyMzg3MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkgIFVwZGF0ZSBmb3IgMC45LzAuMTAgKGZpeGVzICMzMjM4NzApLgoKMjAwNS0xMi0xNSAxMjoyMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEZpeCBsY29weSBmb3IgbWluaSBvYmplY3RzLCB0aGUgbWluaSBvYmplY3QgbmVlZHMgdG8gYmUgcmVmJ2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2xjb3B5KToKCSAgRml4IGxjb3B5IGZvciBtaW5pIG9iamVjdHMsIHRoZSBtaW5pIG9iamVjdCBuZWVkcyB0byBiZSByZWYnZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKG15X2Zvb19pbml0KSwKCSAgKG15X2Zvb19nZXRfcHJvcGVydHkpLCAobXlfZm9vX3NldF9wcm9wZXJ0eSksIChteV9mb29fY2xhc3NfaW5pdCksCgkgICh0ZXN0X3ZhbHVlX2NvbGxlY3Rpb24pLCAoZ3N0X21pbmlfb2JqZWN0X3N1aXRlKToKCSAgQWRkIHRlc3QgdG8gZW5zdXJlIHJlZmNvdW50cyBlbmQgdXAgYXMgZXhwZWN0ZWQgd2hlbiBwYXNzaW5nCgkgIEdzdE1pbmlPYmplY3RzIHRocm91Z2ggZ19vYmplY3RfZ2V0KCkgYW5kIGdfb2JqZWN0X3NldCgpLgoKMjAwNS0xMi0xNCAxNzowODozNiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFJlZmFjdG9yaW5nIG9mIGNvbGxlY3RwYWRzLiBUaGlzIHZlcnNpb24gcmVtb3ZlcyBhIGxvdCBvZiByYWNlcyB3aXRob3V0IHRvdWNoaW5nIEFQSS8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogUmVmYWN0b3JpbmcKCSAgb2YgY29sbGVjdHBhZHMuIFRoaXMgdmVyc2lvbiByZW1vdmVzIGEgbG90IG9mIHJhY2VzIHdpdGhvdXQKCSAgdG91Y2hpbmcgQVBJL0FCSS4gWWF5ICEKCjIwMDUtMTItMTQgMTA6MDk6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBhbGxvdyBhY3RpdmF0aW9uIG9mIGEgc3JjcGFkIGluIHB1bGxfcmFuZ2UgaWYgaXQgaGFzIG5vIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpOgoJICBEb24ndCBhbGxvdyBhY3RpdmF0aW9uIG9mIGEgc3JjcGFkIGluIHB1bGxfcmFuZ2UgaWYgaXQgaGFzIG5vCgkgIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBDaGFuZ2Ugc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIGJlIGEgbGl0dGxlIGNsZWFyZXIKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgcGVlciBiZWZvcmUgZXhlY3V0aW5nIHF1ZXJpZXMgdGhlcmV1cG9uLgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCk6CgkgIFVzZSBnc3RfYnVzX3BvcCBpbnN0ZWFkIG9mIGdzdF9idXNfcG9sbCB3aGVuIHdlIGp1c3Qgd2FudCBpdCB0bwoJICBpbW1lZGlhdGVseSByZXR1cm4gdXMgYW55IGF2YWlsYWJsZSBtZXNzYWdlIHdpdGggMCB0aW1lb3V0LgoKMjAwNS0xMi0xMiAxOTowOTo0OSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBEb24ndCB1bnJlZiBmYWN0b3JpZXMgYWZ0ZXIgY2FsbGluZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgIERvbid0IHVucmVmIGZhY3RvcmllcyBhZnRlciBjYWxsaW5nIHRoZW0uCgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBGcmVlIGxpc3RzIG9mIGZhY3RvcmllcyBhZnRlciB1c2luZyB0aGVtLiBGaXhpbmcgdHlwZWZpbmRpbmcgbWVtb3J5CgkgIGxlYWtzLgoKMjAwNS0xMi0xMiAxODoxMjoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogbW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgbW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dAoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIG1ha2UgbWFrZSBkaXN0Y2hlY2sgaGFwcHkgYWdhaW4KCjIwMDUtMTItMTIgMTc6Mzc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmUgYWxsIHRlc3RzL29sZCBNYWtlZmlsZXMgZnJvbSB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbGwgdGVzdHMvb2xkIE1ha2VmaWxlcyBmcm9tIHRoZSBidWlsZAoKMjAwNS0xMi0xMiAxNzowOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IENhdGNoIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgYXJlIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwgYnV0IHRoZSBkb3duc3RyZWFtIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgIENhdGNoIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgYXJlIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwKCSAgYnV0IHRoZSBkb3duc3RyZWFtIHBlZXIgcGFkIGhhcyBubyBjaGFpbiBmdW5jdGlvbi4gRW1pdCBhCgkgIGN1c3RvbSBlcnJvciBtZXNzYWdlIGluIHRoaXMgY2FzZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlCgkgIGNvcmUgZ2VuZXJhdGUgb25lIGltcGx5aW5nIHRoYXQgdGhpcyBpcyBzb21lIHNvcnQgb2YgY29yZQoJICBidWcuIEl0J3Mgbm90LCBpdCBqdXN0IG1lYW5zIHRoYXQgd2hhdGV2ZXIgZ290IHBsdWdnZWQKCSAgaW50byB0aGUgcGlwZWxpbmUgZG93bnN0cmVhbSB3aGVuIHdlIGFubm91bmNlZCB0aGUgdHlwZQoJICBjYW4gb25seSBvcGVyYXRlIHB1bGwtYmFzZWQsIHdoaWxlIG91ciBzb3VyY2UgY2FuIG9ubHkKCSAgb3BlcmF0ZSBwdXNoLWJhc2VkIChlLmcuIGh0dHA6Ly9mb28vYmFyLm1vdiAhIHF0ZGVtdXggISAuLi4pCgkgIEVycm9yIHN0cmluZyBoYXMgbm90IGJlZW4gbWFya2VkIGZvciB0cmFuc2xhdGlvbiB5ZXQsIGFzCgkgIGl0IHByb2JhYmx5IG5lZWRzIHNvbWUgbW9yZSB3b3JrIGZpcnN0LgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9iZXN0X3Bvc3NpYmlsaXR5KToKCSAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIHRoZSBiZXN0IG9mIGFsbCBhdmFpbGFibGUKCSAgZm91bmQgcG9zc2liaWxpdGllcyB0aGF0IHF1YWxpZnkgZ2l2ZW4gdGhlIG1pbi4gdGhyZXNob2xkLgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIEZpeCB0aGUgY2FzZSB3aGVyZSB3ZSBnZXQgYW4gRU9TIHdoaWxlIHN0aWxsIGluIFRZUEVGSU5ECgkgIG1vZGUgKHdlIHdhbnQgdG8gY2hvc2UgdGhlIGJlc3Qgb2YgYWxsIHBvc3NpYmxlIHR5cGVzLAoJICBub3QganVzdCB0aGUgZmlyc3QgdHlwZSB0aGF0IGhhcHBlbnMgdG8gYmUgaW4gb3VyIHVuc29ydGVkCgkgIGxpc3Qgb2YgcG9zc2libGUgdHlwZXMpLgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTWFrZSBzdXJlIHdlIHJldHVybiBHU1RfRkxPV19FUlJPUiB3aGVuIHdlIGVycm9yZWQgb3V0CgkgIGluIHN0b3BfdHlwZWZpbmRpbmcoKTsgYWxzbywgZG9uJ3QganVzdCBmaW5kIHRoZSBiZXN0IG9mCgkgIGFsbCBmb3VuZCB0eXBlIGVudHJpZXMgYW5kIHRoZW4gdXNlIHRoZSBsYXN0IGV4YW1pbmVkCgkgIHR5cGUgZW50cnksIGJ1dCBhY3R1YWxseSB1c2UgdGhlIGJlc3QgZW50cnkuCgoyMDA1LTEyLTEyIDE3OjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBNb3JlIGdjYzQgZml4ZXMgYW5kIGEgbWVtIGxlYWsgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCk6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOiAoeG1sX2xvYWRlZCk6CgkgIE1vcmUgZ2NjNCBmaXhlcyBhbmQgYSBtZW0gbGVhayBmaXguCgoyMDA1LTEyLTEyIDE2OjIwOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIG1vcmUgZ2NjIDQgd2FybmluZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBnY2MgNCB3YXJuaW5nIGZpeGVzCgoyMDA1LTEyLTEyIDE2OjA0OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgIGFub3RoZXIgZ2NjNCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZ2NjNCBmaXgKCjIwMDUtMTItMTIgMTU6NTk6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogZ2NjIDQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiAob2JqZWN0X3NhdmVkKToKCSAgZ2NjIDQgZml4ZXMKCjIwMDUtMTItMTIgMTU6NDY6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL01ha2VmaWxlLmFtOiBlbmFibGUgdGhlIGV4YW1wbGVzIGV2ZW4gbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgZW5hYmxlIHRoZSBleGFtcGxlcyBldmVuIG1vcmUKCjIwMDUtMTItMTIgMTU6MDI6MDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYyAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQsIGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSAoZ3N0X25ldF90aW1lX3Byb3ZpZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmMKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0LCBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCkKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZ2V0X3Byb3BlcnR5KTogRXhwb3J0ICJhY3RpdmUiIGFzIGEgR09iamVjdAoJICBwcm9wZXJ0eS4KCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpOiBPbmx5IHJlc3BvbmQgdG8gdGltZSBxdWVyaWVzIGlmCgkgIHRoZSB0aW1lIHByb3ZpZGVyIGlzIGFjdGl2ZS4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IEFkZCBhbiAiYWN0aXZlIiBib29sZWFuIHRvCgkgIE5ldFRpbWVQcm92aWRlciwgcHJlc2VydmluZyBiaW5hcnkgY29tcGF0LgoKMjAwNS0xMi0xMiAxNDo0NjowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBjb252ZXJ0IGNvbW1lbnRzIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICBjb252ZXJ0IGNvbW1lbnRzIGFnYWluCgoyMDA1LTEyLTEyIDE0OjQzOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgRml4IHR5cG8uCgoyMDA1LTEyLTEyIDE0OjQyOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdGhlIENoYW5nZWxvZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRoZSBDaGFuZ2Vsb2cuLi4KCjIwMDUtMTItMTIgMTQ6NDE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9sIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIG5ldyBzeW1ib2wgdG8gZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY193YWl0KSwgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBJbXBsZW1lbnQgc2Vla2luZyB0byBvdGhlciBmb3JtYXRzIHRoYW4gX0JZVEVTLgoJICBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIG1ldGhvZHMgY29ycmVjdGx5LgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgcXVlcnkgdm1ldGhvZC4KCSAgQWRkZWQgZG9fc2VlayB2bWV0aG9kIHRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIHN1YmNsYXNzZXMKCSAgd2hlbiBzZWVraW5nLgoJICBBUEkgYWRkaXRpb246IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KCkKCjIwMDUtMTItMTIgMTQ6MDg6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOiBhZGRlZCB0aGF0IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgYWRkZWQgdGhhdCB0b28KCjIwMDUtMTItMTIgMTQ6MDI6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFwcGxpZWQgc29tZSBzaW1wbGUgZml4aW5nIHRvIHNvbWUgZXhhbXBsZXMgcmUtZW5hYmxlZCB0aGUgd29ya2luZyBleGFtcGxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKG1ha2VfcGlwZWxpbmUpLCAocHJpbnRfdGFnKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCksIChldmVudF9sb29wKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IChvYmplY3Rfc2F2ZWQpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOiAoeG1sX2xvYWRlZCksIChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvVE9ETzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9tcDNwbGF5OgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIGFwcGxpZWQgc29tZSBzaW1wbGUgZml4aW5nIHRvIHNvbWUgZXhhbXBsZXMKCSAgcmUtZW5hYmxlZCB0aGUgd29ya2luZyBleGFtcGxlcwoKMjAwNS0xMi0xMiAxMjo0ODozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE1ha2Ugc3VyZSB0aGUgbGFzdF9wb3MgdmFsdWUgaXMgdXBkYXRlZCBwcm9wZXJseS4KCSAgTWFrZSBzdXJlIHRvX3N0cmVhbV90aW1lIGFuZCB0b19ydW5uaW5nX3RpbWUgZG9uJ3QKCSAgb3BlcmF0ZSBvbiB3cm9uZyB2YWx1ZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlIGNoZWNrLgoKMjAwNS0xMi0xMiAxMjozMjowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTm93IHRoYXQgd2UncmUgbm90IGxlYWtpbmcgZmFjdG9yaWVzLCBtYWtlIHN1cmUgd2Uga2VlcCByZWZlcmVuY2VzIHRvIHRoZW0gd2hpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmcmVlX2VudHJ5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE5vdyB0aGF0IHdlJ3JlIG5vdCBsZWFraW5nIGZhY3RvcmllcywgbWFrZSBzdXJlIHdlIGtlZXAgcmVmZXJlbmNlcwoJICB0byB0aGVtIHdoaWxlIHdlIG5lZWQgdGhlbS4KCjIwMDUtMTItMTIgMTE6NDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6IGlmZGVmIG91dCB0aGUgWE1MIHN0cnVjdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgIGlmZGVmIG91dCB0aGUgWE1MIHN0cnVjdHMKCjIwMDUtMTItMTIgMTA6NTk6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGZsb29yIGlzIG5vdCBuZWVkZWQsIEYgaXMgYWx3YXlzIHBvc2l0aXZlOyB0aGlzIG9idmlhdGVzIHRoZSBuZWVkIGZvciBhZGRpbmcgLWxtIHdoZW4gYnVpbGRpbmcgd2l0aG91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9kb3VibGVfZnJhY3Rpb24pOgoJICBmbG9vciBpcyBub3QgbmVlZGVkLCBGIGlzIGFsd2F5cyBwb3NpdGl2ZTsgdGhpcyBvYnZpYXRlcyB0aGUKCSAgbmVlZCBmb3IgYWRkaW5nIC1sbSB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgbGlieG1sCgoyMDA1LTEyLTEyIDEwOjU3OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2FzcGVjdHJhdGlvOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGFkZCBhIDsgYW5kIGFuIGV4YW1wbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIDsgYW5kIGFuIGV4YW1wbGUKCjIwMDUtMTItMTIgMTA6MTY6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFRha2UgY3VycmVudCBwbGF5YmFjayByYXRlIGludG8gYWNjb3VudCB3aGVuIHJlcG9ydGluZyB0aGUgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgVGFrZSBjdXJyZW50IHBsYXliYWNrIHJhdGUgaW50byBhY2NvdW50IHdoZW4gcmVwb3J0aW5nCgkgIHRoZSBwb3NpdGlvbi4KCjIwMDUtMTItMTEgMTk6MzU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzogTGV0J3MgdHJ5IHRoaXMgYWdhaW4sIHRoaXMgdGltZSB3aXRoIGEgZmlsZSB0aGF0IGlzIGFjdHVhbGx5IGluIFhGaWcgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgTGV0J3MgdHJ5IHRoaXMgYWdhaW4sIHRoaXMgdGltZSB3aXRoIGEgZmlsZSB0aGF0IGlzCgkgIGFjdHVhbGx5IGluIFhGaWcgZm9ybWF0LgoKMjAwNS0xMi0xMSAxOToxOTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOiBBZGQgYXVkaW9jb252ZXJ0IGVsZW1lbnQgdG8gZGlhZ3JhbSBzbyB0aGF0IGl0IG1hdGNoZXMgdGhlIHRleHQgYW5kIHRoZSBjb2RlIChmaXhlcyAjMzE5NS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgQWRkIGF1ZGlvY29udmVydCBlbGVtZW50IHRvIGRpYWdyYW0gc28gdGhhdCBpdAoJICBtYXRjaGVzIHRoZSB0ZXh0IGFuZCB0aGUgY29kZSAoZml4ZXMgIzMxOTUyNikuCgoyMDA1LTEyLTExIDE4OjI0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBVcGRhdGUgc3RhdGUgY2hhbmdlIHN0dWZmIGZvciAwLjEwIChmaXhlcyAjMzIyOTY5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkgIFVwZGF0ZSBzdGF0ZSBjaGFuZ2Ugc3R1ZmYgZm9yIDAuMTAgKGZpeGVzICMzMjI5NjkpLgoKMjAwNS0xMi0xMSAxNzo0OToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVXBkYXRlIGZvciAwLjEwOiBzLzAuOS8wLjEwLzsgcy9hdWRpb3NjYWxlL2F1ZGlvcnNhbXBsZS87IGFkZCBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHBpcGVsaW5lczsgcmVtb3ZlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIFVwZGF0ZSBmb3IgMC4xMDogcy8wLjkvMC4xMC87IHMvYXVkaW9zY2FsZS9hdWRpb3JzYW1wbGUvOwoJICBhZGQgY29udmVydGVycyBpbiBmcm9udCBvZiBwaXBlbGluZXM7IHJlbW92ZSBjdXJseQoJICBicmFja2V0cyBmb3IgdGhyZWFkcyBzdHVmZiwgdGhleSBubyBsb25nZXIgZXhpc3Q7IHVzZQoJICBHU1RfVFlQRV9GUkFDVElPTiBmb3IgZnJhbWVyYXRlczsgdXBkYXRlIHNvbWUgcGllY2VzIG9mCgkgIGNvZGUgdG8gMC4xMCwgYnV0IHRoZXJlJ3MgcGxlbnR5IG1vcmUgdG8gZG8uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIEV4cGFuZCBvbiBhc3luY2hyb25lb3VzIHN0YXRlIGNoYW5nZXM7IHMvMC45LzAuMTAvOwoJICBtZW50aW9uIGRpc2FwcGVhcmFuY2Ugb2YgZ3N0X2luaXRfZ2V0X3BvcHRfdGFibGUoKQoJICAoZml4ZXMgIzMyMjkxNikuCgoyMDA1LTEyLTExIDExOjUzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvdXNpbmcueG1sOiBTcGlkZXIgbm8gbG9uZ2VyIGV4aXN0cywgYW5kIG5laXRoZXIgZG9lcyBnc3QtbGF1bmNoLWV4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBTcGlkZXIgbm8gbG9uZ2VyIGV4aXN0cywgYW5kIG5laXRoZXIgZG9lcyBnc3QtbGF1bmNoLWV4dC4KCSAgVXBkYXRlIGV4YW1wbGVzIHRvIHVzZSBkZWNvZGViaW4gYW5kIHBsYXliaW4gYW5kIHB1dAoJICBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHNpbmtzIChmaXhlcyAjMzIzNzI2KS4KCjIwMDUtMTItMDkgMTc6MjY6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZpeCBsZWFraW5nIGVsZW1lbnQgZmFjdG9yaWVzIGluIHR5cGVmaW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIEZpeCBsZWFraW5nIGVsZW1lbnQgZmFjdG9yaWVzIGluIHR5cGVmaW5kaW5nLgoJICBGaXggcHJvYmxlbSB3aGVyZSB3ZSBmb3Jnb3QgYWJvdXQgYSBwcm9iYWJsZSB0eXBlIG9uIG5vbi1zZWVrYWJsZQoJICBmaWxlcywgYW5kIHRodXMgbGF0ZXIgbWlzLXR5cGVmb3VuZCBpdC4KCjIwMDUtMTItMDkgMTU6MDk6NDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIFJlbW92ZSBtYWtlY29udGV4dCBzdHVmZjsgbm90IHVzZWQgaW4gMC4xMCBhbmQgY2F1c2VzIHByb2JsZW1zIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9tNC9nc3QtbWFrZWNvbnRleHQubTQ6CgkgICogY29tbW9uL200L2dzdC1tY3NjLm00OgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBSZW1vdmUgbWFrZWNvbnRleHQgc3R1ZmY7IG5vdCB1c2VkIGluIDAuMTAgYW5kIGNhdXNlcyBwcm9ibGVtcyBvbgoJICBIUFVYIGFjY29yZGluZyB0byBidWcgIzMyMjQ0MQoKMjAwNS0xMi0wNyAxOTowMzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzLCB0aGlzIHRpbWUgZm9yIHJlYWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMsIHRoaXMgdGltZSBmb3IgcmVhbAoKMjAwNS0xMi0wNyAxOTowMzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzCgoyMDA1LTEyLTA3IDE3OjU5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IEFuZCBhZGQgdGhlIHN0cnVjdF9pMzg2LmggdG8gZGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEFuZCBhZGQgdGhlIHN0cnVjdF9pMzg2LmggdG8gZGlzdC4KCjIwMDUtMTItMDcgMTc6MzY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIGNoZWNrIGZvciBBQkkgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBjaGVjayBmb3IgQUJJIGNvbXBhdGliaWxpdHkuCgoyMDA1LTEyLTA3IDE1OjMzOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IEZpeCBicm9rZW4gc3luYyBvcHRpb24sIGZpeGVzICMzMjMyNTkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBGaXggYnJva2VuIHN5bmMgb3B0aW9uLCBmaXhlcyAjMzIzMjU5CgoyMDA1LTEyLTA3IDE1OjE2OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTbWFsbCBkb2NzIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBTbWFsbCBkb2NzIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBEb24ndCBhc3NlcnQgb24gTlVMTCA8LS0+IFguIEZpeGVzICMzMjMyNjAKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpOgoJICBJZiB3ZSdyZSBkb2luZyBhdG9taWMgb3BlcmF0aW9ucywgd2UgbWlnaHQganVzdCBhcyB3ZWxsIHVzZQoJICB0aGUgcHJvcGVyIHdheSB0byBnZXQgYW4gYXRvbWljIHBvaW50ZXIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBDbGVhbiB1cCBkZWJ1Z2dpbmcuCgoyMDA1LTEyLTA3IDExOjUyOjA1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgaGFuZGxpbmcgb2YgeyB9IGZvciB0aHJlYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgaGFuZGxpbmcgb2YgeyB9IGZvciB0aHJlYWRzLgoKMjAwNS0xMi0wNiAyMzozMjowMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogc3BlbGluZyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBzcGVsaW5nIGZpeC4KCjIwMDUtMTItMDYgMTk6Mjk6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9yYW5kb20vb21lZ2EvdGVzdGluZy9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJICBleHBhbmQgdGFicwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZXhwYW5kIHRhYnMKCjIwMDUtMTItMDYgMTk6MDQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIGN2cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBjdnMKCjIwMDUtMTItMDUgMTg6MTM6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4wID09PQoKMjAwNS0xMi0wNSAxODowNTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4wCgoyMDA1LTEyLTA1IDE1OjU3OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTEyLTA1IDE0OjM2OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogYWRkZWQgQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdWJtaXR0ZWQgYnk6IEZ1bmRhIFdhbmcgPGZ1bmRhd2FuZ0BsaW51eC5uZXQuY24+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby96aF9DTi5wbzoKCSAgYWRkZWQgQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgoyMDA1LTEyLTA1IDE0OjE0OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJICB1cGRhdGVkIEFmcmlrYWFucyB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCBBZnJpa2FhbnMgdHJhbnNsYXRpb24KCjIwMDUtMTItMDUgMTQ6MTQ6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICByZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmQgZnJvbSBkb2NzdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkZXByZWNhdGlvbiBndWFyZCBmcm9tIGRvY3N0cmluZwoKMjAwNS0xMi0wNSAxMzoxMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA1LTEyLTA1IDEzOjA2OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvVE9ETzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMTItMDUgMTM6MDE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpOiBDYWxsCgkgIGFsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6IENoYW5nZWQgdG8gbm90IGNhbGwKCSAgc2V0X2NhcHMgb24gdGhlIHNvdXJjZSBwYWQuCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMpOiBOZXcgZnVuY3Rpb24sIGRvZXMgd2hhdAoJICBhbGxvY19idWZmZXIgdXNlZCB0byBkby4gRml4ZXMgIzMyMjg3NC4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDogVXBkYXRlIGZvciB0aGUgYWxsb2NfYnVmZmVyCgkgIGNoYW5nZXMuCgoyMDA1LTEyLTA1IDEyOjMzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICByZWFsbHkgYWRkIHRoZSB0ZXN0cyBmb3IgdGhlIDY0L2RvdWJsZSBjb252ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWFsbHkgYWRkIHRoZSB0ZXN0cyBmb3IgdGhlIDY0L2RvdWJsZSBjb252ZXJzaW9uCgoyMDA1LTEyLTA1IDEyOjA5OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgYWRkIGRlZiBmb3IgY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRlZiBmb3IgY29udHJvbGxlcgoKMjAwNS0xMi0wNSAxMjowOTowMSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi86IHdpbjMyIGJ1aWxkIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZQoJICAqIHdpbjMyL01BTklGRVNUOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIHdpbjMyIGJ1aWxkIGZpeGVzCgoyMDA1LTEyLTA1IDEwOjU5OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQmFjayBvdXQgcHJldmlvdXMgY29kZSBjaGFuZ2VzLCBsZWF2ZSBkb2MgdXBkYXRlcywgZmlsZSBidWdzIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgQmFjayBvdXQgcHJldmlvdXMgY29kZSBjaGFuZ2VzLCBsZWF2ZSBkb2MgdXBkYXRlcywgZmlsZSBidWdzCgkgIGluc3RlYWQuCgoyMDA1LTEyLTA1IDEwOjI3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLio6IEZpeCBicm9rZW4gc3luYyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfdGltZXMpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIEZpeCBicm9rZW4gc3luYyBjb2RlLgoKMjAwNS0xMi0wNSAxMDoyMjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENvbXBhcmluZyBOVUxMIGFnYWluc3QgIU5VTEwgeWllbGRzIGRpZmZlcmVudCBjYXBzLCBub3QgYSBmYWlsdXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBDb21wYXJpbmcgTlVMTCBhZ2FpbnN0ICFOVUxMIHlpZWxkcyBkaWZmZXJlbnQgY2Fwcywgbm90IGEKCSAgZmFpbHVyZS4KCjIwMDUtMTItMDUgMTA6MTg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRml4IHNtYWxsIHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEZpeCBzbWFsbCB0eXBvIGluIGRvY3MuCgoyMDA1LTEyLTA1IDA5OjUzOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogcmVtb3ZlIGhhcmQtY29kZWQgMC45IGxvY2F0aW9uIGZvciByZWdpc3RyaWVzL3BsdWdpbnMgd2l0aCBhIE1BSk9STUlOT1Igb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiByZW1vdmUgaGFyZC1jb2RlZCAwLjkgbG9jYXRpb24gZm9yCgkgIHJlZ2lzdHJpZXMvcGx1Z2lucyB3aXRoIGEgTUFKT1JNSU5PUiBvbmUuCgkgIChwbHVnaW5fZGVzYyk6IFJlbmFtZSBsaWJyYXJ5IGZyb20gZ3N0Y29yZWxlZW1lbnRzIHRvCgkgIHN0YXRpY2VsZW1lbnRzLiBGaXhlcyAjMzIzMjIyLgoKMjAwNS0xMi0wNSAwOTo0NToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQ2hhbmdlIGRlYnVnIGNhdGVnb3J5IHRvICdjb2xsZWN0cGFkcycgZnJvbSAnY29sbGVjdF9wYWRzJyAoZml4ZXMgIzMyMzI1MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KToKCSAgQ2hhbmdlIGRlYnVnIGNhdGVnb3J5IHRvICdjb2xsZWN0cGFkcycgZnJvbSAnY29sbGVjdF9wYWRzJwoJICAoZml4ZXMgIzMyMzI1MCkuCgoyMDA1LTEyLTA0IDE5OjU3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW5hbWUgdHdvIGV4cG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbmFtZSB0d28gZXhwb3J0cwoKMjAwNS0xMi0wNCAxODo1NDoxOSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogdXNlIGNvbnZlcnQgZnVuY3Rpb24gZm9yIHVpbnQ2NC9kb3VibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIHVzZSBjb252ZXJ0IGZ1bmN0aW9uIGZvciB1aW50NjQvZG91YmxlCgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBsaW5rIHRvIEdMaWIKCjIwMDUtMTItMDQgMDk6NTc6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIHRlc3RzIHRoYXQgc2VlbSB0byBzaG93IHRoYXQgdGhlIGd1aW50NjQvZ2RvdWJsZSBjb252ZXJzaW9ucyBhcmUgY29ycmVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUpLAoJICAoZ3N0X3V0aWxfZ2RvdWJsZV90b19ndWludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBhZGQgdGVzdHMgdGhhdCBzZWVtIHRvIHNob3cgdGhhdCB0aGUgZ3VpbnQ2NC9nZG91YmxlIGNvbnZlcnNpb25zCgkgIGFyZSBjb3JyZWN0LgoKMjAwNS0xMi0wMiAxMjo0NDo1MyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIG1ha2UgdmVyc2lvbiBudW1iZXIgYSBsaXR0bGUgbGVzcyBob3BlZnVsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSB2ZXJzaW9uIG51bWJlciBhIGxpdHRsZSBsZXNzIGhvcGVmdWxsCgoyMDA1LTEyLTAyIDEyOjM0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGRvY3MgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgRml4IGRvY3MgYWdhaW4uCgkgIFJlbW92ZWQgb2xkIGNvZGUgZnJvbSBnc3RyZWdpc3RyeXhtbC5jCgoyMDA1LTEyLTAyIDEyOjE5OjU1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwZGF0aW5nIGdzdHJlYW1lciBzcGVjIGZpbGUgbWFraW5nIGl0IDAuMTAgcmVhZHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cGRhdGluZyBnc3RyZWFtZXIgc3BlYyBmaWxlIG1ha2luZyBpdCAwLjEwIHJlYWR5CgoyMDA1LTEyLTAyIDExOjM2OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFNtYWxsIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBTbWFsbCBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIEFkZCBkZWJ1ZyBsb2cgbGluZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIEFkZCBGSVhNRS4KCjIwMDUtMTItMDIgMDk6NDg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvOiByZW5hbWVkIGNvcmUgZWxlbWVudHMgcGx1Z2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICByZW5hbWVkIGNvcmUgZWxlbWVudHMgcGx1Z2luCgoyMDA1LTEyLTAyIDAxOjM1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzL2dzdC1ydW4uYzogZG8gcGllY2Utd2lzZSBtYWpvci9taW5vciBjb21wYXJpc29uIHNvIDAuOSA8IDAuMTAgYWxzbyBhbGxvdyAuZXhlIGV4dGVuc2lvbnMgZm9yIHRvb2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKGNvbXBhcmVfbWFqb3JfbWlub3IpLCAoZmluZF9oaWdoZXN0X3ZlcnNpb24pLAoJICAoZ2V0X2NhbmRpZGF0ZXMpOgoJICBkbyBwaWVjZS13aXNlIG1ham9yL21pbm9yIGNvbXBhcmlzb24gc28gMC45IDwgMC4xMAoJICBhbHNvIGFsbG93IC5leGUgZXh0ZW5zaW9ucyBmb3IgdG9vbHMKCjIwMDUtMTItMDEgMjM6NTc6MDcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3QuYzogRXNjYXBlIGEgJSB0byBtYWtlIGd0a2RvYyBoYXBwaWVyOyBidWcgMzIyOTU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEVzY2FwZSBhICUgdG8gbWFrZSBndGtkb2MgaGFwcGllcjsgYnVnIDMyMjk1OC4KCjIwMDUtMTItMDEgMTk6MTg6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjcgPT09CgoyMDA1LTEyLTAxIDE5OjExOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENIQU5HRVMtMC45OgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS43CgoyMDA1LTEyLTAxIDE2OjUxOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJKiB3aW4zMi92czcvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkgIGJ1bXAgR1NUX01BSk9STUlOT1IgdG8gMC4xMCByZXNldCBsaWJ0b29sIHZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJ1bXAgR1NUX01BSk9STUlOT1IgdG8gMC4xMAoJICByZXNldCBsaWJ0b29sIHZlcnNpb24KCjIwMDUtMTItMDEgMTU6Mjg6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLTAuNzoKCSAgcmVtb3ZlIG9sZCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIGZpbGUKCjIwMDUtMTItMDEgMTU6MTg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMi0wMSAxNTowODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2JnLnBvOgoJICBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gYnkgKEFsZXhhbmRlciBTaG9wb3YpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gYnkgKEFsZXhhbmRlciBTaG9wb3YpCgoyMDA1LTEyLTAxIDE1OjA0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LWJ1aWxkLnN0YW1wOgoJICBjb21taXQgZmluYWwgc3RhbXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IGZpbmFsIHN0YW1wIGZpbGUKCjIwMDUtMTItMDEgMTQ6NTE6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZCBtb3JlIGZpbGVzIGZvciBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGZpbGVzIGZvciBkaXN0Y2hlY2sKCjIwMDUtMTItMDEgMTQ6NDA6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJICBhZGQgc2lnbmFscyBhbmQgYXJncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNpZ25hbHMgYW5kIGFyZ3MKCjIwMDUtMTItMDEgMTI6MzY6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGVzdAoKMjAwNS0xMi0wMSAxMjoyOTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnR5cGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvc2Nhbm9iai1idWlsZC5zdGFtcDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkgIGRvY3VtZW50IGNvcmUgcGx1Z2lucyBpbiBhIHNlcGFyYXRlIGRvY3VtZW50IGp1c3QgbGlrZSBhbGwgdGhlIG90aGVycyByZW5hbWUgdGhlc2UgcGx1Z2lucyB0byBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgY29yZSBwbHVnaW5zIGluIGEgc2VwYXJhdGUgZG9jdW1lbnQganVzdCBsaWtlIGFsbCB0aGUKCSAgb3RoZXJzCgkgIHJlbmFtZSB0aGVzZSBwbHVnaW5zIHRvIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIGNvcmUKCjIwMDUtMTItMDEgMTI6MDA6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogTWVhbnQgdG8gcmVtb3ZlIHRoZSBleHRyYSBwYWRkaW5nIGhlcmUgYmVmb3JlLCBidXQgaXQgbWlzc2VkIHRoZSBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTAxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogTWVhbnQgdG8gcmVtb3ZlIHRoZSBleHRyYQoJICBwYWRkaW5nIGhlcmUgYmVmb3JlLCBidXQgaXQgbWlzc2VkIHRoZSBjb21taXQuCgoyMDA1LTEyLTAxIDEwOjA3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBhZGQgbGliZ3N0Y29udHJvbGxlciB0byB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsaWJnc3Rjb250cm9sbGVyIHRvIHRoZSBidWlsZAoKMjAwNS0xMi0wMSAwOTo1NDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogd2hpdGVzcGFjZSBwcmljZXMgaGF2ZSBjcmFzaGVkLCB3ZSBzaG91bGQgZmVlbCBmcmVlIHRvIHVzZSBzb21lIG5vdyB1c2UgZ3N0X2cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIHdoaXRlc3BhY2UgcHJpY2VzIGhhdmUgY3Jhc2hlZCwgd2Ugc2hvdWxkIGZlZWwgZnJlZSB0byB1c2Ugc29tZSBub3cKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUKCjIwMDUtMTItMDEgMDk6MzI6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZml4IHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0eXBvCgoyMDA1LTEyLTAxIDA5OjIzOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICB3cmFwIGNvbmZpZy5oIGluY2x1ZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdyYXAgY29uZmlnLmggaW5jbHVkZQoKMjAwNS0xMi0wMSAwMjowODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVwZGF0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZG9jcwoKMjAwNS0xMi0wMSAwMDo1NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogbW9yZSBhbmFsIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19fYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX19jbGFzc19pbml0KSwgKGdzdF9mZF9zaW5rX19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX19jaGFpbiksIChnc3RfZmRfc2lua19fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zaW5rX19nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoX2RvX2luaXQpLCAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX2Rpc3Bvc2UpLAoJICAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLCAoZ3N0X2ZkX3NyY19zdGFydCksIChnc3RfZmRfc3JjX3N0b3ApLAoJICAoZ3N0X2ZkX3NyY191bmxvY2spLCAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NyY19jcmVhdGUpLAoJICAoZ3N0X2ZkX3NyY19pc19zZWVrYWJsZSksIChnc3RfZmRfc3JjX2dldF9zaXplKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2dldF90eXBlKSwgKGdzdF9mZF9zcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2ZkX3NyY191cmlfZ2V0X3VyaSksIChnc3RfZmRfc3JjX3VyaV9zZXRfdXJpKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSk6CgkgIG1vcmUgYW5hbCBjbGVhbnVwCgoyMDA1LTExLTMwIDE5OjM2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGZpeCB0aGUgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRoZSBkb2NzIGJ1aWxkCgoyMDA1LTExLTMwIDE5OjAzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgYWRkIG5ldyBpbnB1dCB0eXBlcyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbmV3IGlucHV0IHR5cGVzIGZpbGUKCjIwMDUtMTEtMzAgMTk6MDE6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdmFyaW91cyBmaXhlcyB0byBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHZhcmlvdXMgZml4ZXMgdG8gbWFrZQoJICAtLWRpc2FibGUtbmxzIC0tZGlzYWJsZS1yZWdpc3RyeSAtLWRpc2FibGUtbG9hZHNhdmUgICAgICAgICAgIC0tZGlzYWJsZS1wYXJzZSAtLWRpc2FibGUtZ3N0LWRlYnVnCgkgIHdvcmsgYW5kIGdldCB0aGUgY29yZSAuc28gZG93biB0byAzNjA0NDQgYnl0ZXMgYWZ0ZXIgc3RyaXBwaW5nCgoyMDA1LTExLTMwIDE3OjA1OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbW92ZSBsb2NhdGlvbiBvZiB0ZXN0IHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGxvY2F0aW9uIG9mIHRlc3QgcmVnaXN0cnkKCjIwMDUtMTEtMzAgMTY6NDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0zMCAxNjo0NToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9taXNjL01ha2VmaWxlLmFtOgoJICBtaXNzaW5nIG1ha2VmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtaXNzaW5nIG1ha2VmaWxlCgoyMDA1LTExLTMwIDE2OjQzOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgcHJ1bmUgZW1wdHkgZGlycyB3aGVuIHVwZGF0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcnVuZSBlbXB0eSBkaXJzIHdoZW4gdXBkYXRpbmcKCjIwMDUtMTEtMzAgMTY6NDI6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogRE9DQlVJTERJTkc6CgkqIGRvY3MvUkVBRE1FOgoJICByZW1vdmUgZW1wdHkgZGlyczsgbW92ZSBkb2NidWlsZGluZyBub3RlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGVtcHR5IGRpcnM7IG1vdmUgZG9jYnVpbGRpbmcgbm90ZXMKCjIwMDUtMTEtMzAgMTY6Mzk6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZGVzY2VuZCBpbnRvIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZGVzY2VuZCBpbnRvIHRlc3RzCgkgICogZG9jcy9yYW5kb20vdGhvbWFzdnMvVE9ETzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9SRUFETUU6CgkgIGFkZCBhIFJFQURNRQoKMjAwNS0xMS0zMCAxNjozMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMzAgMTY6MzA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjI5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IGZhaWwgb24gbWlzc2luZyByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZmFpbCBvbiBtaXNzaW5nIHJlZ2lzdHJ5CgoyMDA1LTExLTMwIDE2OjI4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL1JFQURNRS50eHQ6CgkgIGFkZCBhIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjI2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL01ha2VmaWxlOgoJKiB3aW4zMi9NYWtlZmlsZS5pbnNwZWN0OgoJKiB3aW4zMi9NYWtlZmlsZS5sYXVuY2g6CgkqIHdpbjMyL01ha2VmaWxlLnJlZ2lzdGVyOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi9nc3QtcmVnaXN0ZXIudmNwcm9qOgoJKiB3aW4zMi9nc3RlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL2dzdGdldGJpdHMuZGVmOgoJKiB3aW4zMi9nc3RnZXRiaXRzLnZjcHJvajoKCSogd2luMzIvZ3N0cmVhbWVyLWRiZy5kZWY6CgkqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvbGlua19vbGRydW50aW1lLmM6CgkqIHdpbjMyL21tYW4uYzoKCSogd2luMzIvbW1hbi5oOgoJKiB3aW4zMi9tbWFuLmlubDoKCSogd2luMzIvbXN2YzcxLnNsbjoKCSAgbW92ZSBldmVuIG1vcmUgc3R1ZmYsIHdpbjMyLyBpcyBuaWNlIGFuZCBjbGVhbiBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgZXZlbiBtb3JlIHN0dWZmLCB3aW4zMi8gaXMgbmljZSBhbmQgY2xlYW4gbm93CgoyMDA1LTExLTMwIDE2OjE3OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9jb25maWcuaDoKCSogd2luMzIvZGlyZW50LmM6CgkqIHdpbjMyL2RpcmVudC5oOgoJKiB3aW4zMi9nc3RieXRlc3RyZWFtLmRlZjoKCSogd2luMzIvZ3N0Ynl0ZXN0cmVhbS52Y3Byb2o6CgkqIHdpbjMyL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2dzdG9wdGltYWxzY2hlZHVsZXIudmNwcm9qOgoJKiB3aW4zMi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2d0Y2hhci5oOgoJKiB3aW4zMi90ZXN0c3VpdGUvYmlucy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2NhcHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2xlYW51cC52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jbG9jay52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9kZWJ1Zy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9kbG9wZW4udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZHlucGFyYW1zLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2VsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2dob3N0cGFkcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9pbmRleGVycy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9wYXJzZS52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9wbHVnaW4udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcmVmY291bnRpbmcudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvc2NoZWR1bGVycy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9zdGF0ZXMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvdGFncy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS90aHJlYWRzLnZjcHJvajoKCSAgcmVtb3ZlIG9sZCB3aW4zMiBzdHVmZiB0aGF0IGlzbid0IG1haW50YWluZWQgYW5kIHNob3VsZCBiZSByZW9yZ2FuaXplZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCB3aW4zMiBzdHVmZiB0aGF0IGlzbid0IG1haW50YWluZWQgYW5kIHNob3VsZCBiZQoJICByZW9yZ2FuaXplZAoKMjAwNS0xMS0zMCAxNjoxMjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBnZXRiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZ2V0Yml0cwoKMjAwNS0xMS0zMCAxNjoxMDo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2gsIG1ha2VzIGxvYWRpbmcgdGhlIGdzdC5pbnRlcmZhY2VzIHB5dGhvbiBtb2R1bGUgYm9yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2gsIG1ha2VzCgkgIGxvYWRpbmcgdGhlIGdzdC5pbnRlcmZhY2VzIHB5dGhvbiBtb2R1bGUgYm9yay4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsCgkgIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCjIwMDUtMTEtMzAgMTY6MDg6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svLmdpdGlnbm9yZToKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiBjaGVjay9nc3QtbGlicy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9uZXQvLmdpdGlnbm9yZToKCSogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSogY2hlY2svc3RhdGVzLy5naXRpZ25vcmU6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvYXBwcmVhZGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGV4YW1wbGVzL2N1dHRlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jdXR0ZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiBleGFtcGxlcy9ldmVudHMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2V2ZW50cy9zZWVrLmM6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi9oZWxsb3dvcmxkMi5jOgoJKiBleGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogZXhhbXBsZXMvbGF1bmNoL21wM3BsYXk6CgkqIGV4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJKiBleGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiBleGFtcGxlcy9taXhlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9taXhlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogZXhhbXBsZXMvcGluZ3BvbmcvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcGluZ3BvbmcvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3Bpbmdwb25nL3Bpbmdwb25nLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSogZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIGV4YW1wbGVzL3F1ZXVlMi8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzoKCSogZXhhbXBsZXMvcXVldWUzLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlMy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUzL3F1ZXVlMy5jOgoJKiBleGFtcGxlcy9xdWV1ZTQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWU0L01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTQvcXVldWU0LmM6CgkqIGV4YW1wbGVzL3JldGFnLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3JldGFnL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiBleGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogZXhhbXBsZXMvdGhyZWFkLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3RocmVhZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiBleGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSogZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJKiBleGFtcGxlcy94bWwvcnVueG1sLmM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL1J1bGVzOgoJKiB0ZXN0c3VpdGUvY2Fwcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvYXBwX2ZpeGF0ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwcy5oOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzX3N0cmluZ3M6CgkqIHRlc3RzdWl0ZS9jYXBzL2NvbXBhdGliaWxpdHkuYzoKCSogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZXJhdG9zdGhlbmVzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZml4ZWQuYzoKCSogdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tY29udmVydC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1tdWx0aXBseS1hbmQtemVyby5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N0cmluZy1jb252ZXJzaW9ucy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdHJ1Y3R1cmUuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzoKCSogdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHN1aXRlL2RlYnVnLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2RlYnVnL2NhdGVnb3J5LmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9jb21tYW5kbGluZS5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9vdXRwdXQuYzoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2Rsb3Blbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL2Rsb3Blbl9nc3QuYzoKCSogdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9nc3QtaW5zcGVjdC1jaGVjay5pbjoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3Rfc2l6ZS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHN1aXRlL3BhcnNlLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9wYXJzZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0ZXN0c3VpdGUvcGFyc2UvcGFyc2UyLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3BsdWdpbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BsdWdpbi9SRUFETUU6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vZHluYW1pYy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2xpbmtlZC5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9yZWdpc3RyeS5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYzIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMl9zLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbl9zLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tYWlubG9vcC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uaDoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL29iamVjdC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvdGhyZWFkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3N0YXRlcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3RocmVhZHMvMTU5NTY2LmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLzE1OTg1Mi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RocmVhZHMvcXVldWUuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9zdGF0aWNyZWMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGIuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRkLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGUuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRnLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGguYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaS5jOgoJICBtb3ZlIGFsbCBvZiB0aGVzZSB1bmRlciB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBhbGwgb2YgdGhlc2UgdW5kZXIgdGVzdHMKCjIwMDUtMTEtMzAgMTU6Mzc6MzYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgYWZ0ZXIgdGhvbWFzJ3MgQ1ZTIHN1cmdlcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBhZnRlciB0aG9tYXMncyBDVlMgc3VyZ2VyeQoKMjAwNS0xMS0zMCAxNTozNDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgIGFkZCBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIE1ha2VmaWxlLmFtCgoyMDA1LTExLTMwIDE1OjI5OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTExLTMwIDE1OjIwOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSAgY29tcGlsZSB3YXJuaW5nIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21waWxlIHdhcm5pbmcgZml4ZXMKCjIwMDUtMTEtMzAgMTM6Mjg6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9nc3QtY29tcHByZXAtY2hlY2suaW46CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1jb21wcHJlcC1jaGVjay5pbjoKCSAgcmVtb3ZlIGNvbXBwcmVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29tcHByZXAKCjIwMDUtMTEtMzAgMTM6MjU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsCgkgIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCjIwMDUtMTEtMzAgMTM6MDg6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRmlyc3QgcGFzcyBhdCBjbGVhbmluZyB1cCB0ZXN0cy8gZGlyIGJlZm9yZSBtb3ZpbmcgdGhlIHJlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2JlbmNoLWNvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2JlbmNoLW1hc3NfZWxlbWVudHMuc2NtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmdudXBsb3Q6CgkgICogdGVzdHMvaW5zdGFudGlhdGUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jYXBzLmM6CgkgICogdGVzdHMvbWFzc19lbGVtZW50cy5jOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOgoJICAqIHRlc3RzL3Bsb3QtZGF0YToKCSAgRmlyc3QgcGFzcyBhdCBjbGVhbmluZyB1cCB0ZXN0cy8gZGlyIGJlZm9yZSBtb3ZpbmcgdGhlIHJlc3QKCSAgQ29tYmluZWQgd2l0aCBDVlMgc3VyZ2VyeQoKMjAwNS0xMS0zMCAxMzowNzoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3ZlIGluY2x1ZGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGluY2x1ZGVzCgoyMDA1LTExLTMwIDExOjU1OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgcmVtb3ZlIG5vcndlZ2lhbmlzbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG5vcndlZ2lhbmlzbQoKMjAwNS0xMS0zMCAxMDo1MDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgbWFrZSBub3QgaGF2aW5nIGNoZWNrIG5vbi1mYXRhbCBmb3IgZXh0cmEgdGFyZ2V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBub3QgaGF2aW5nIGNoZWNrIG5vbi1mYXRhbCBmb3IgZXh0cmEgdGFyZ2V0cwoKMjAwNS0xMS0zMCAxMDoxNTowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby9QT1RGSUxFUy5pbjogcXVldWUgaGFzIG1vdmVkLCB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgIHF1ZXVlIGhhcyBtb3ZlZCwgdXBkYXRlCgoyMDA1LTExLTMwIDEwOjEzOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgYWRkIHNvbWUgZXhwbGljaXQgY2FzdHMgdXBkYXRlIGRzcCBmaWxlczsgYWxzbyBpbnN0YWxscyB0aGUgZGVidWcgYnVpbGQgaW4gXGdzdHJlYW1lclxkZWJ1ZyB0byBzZXBhcmF0ZSBpdCBmcm9tIHRoZSBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc29tZSBleHBsaWNpdCBjYXN0cwoJICB1cGRhdGUgZHNwIGZpbGVzOyBhbHNvIGluc3RhbGxzIHRoZSBkZWJ1ZyBidWlsZCBpbiBcZ3N0cmVhbWVyXGRlYnVnIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIG5vbi1kZWJ1ZyBidWlsZAoKMjAwNS0xMS0zMCAxMDowMzo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOTo1OTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiByZW1vdmUgZG91YmxlIGVudHJpZXMgZnJvbSB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgZG91YmxlIGVudHJpZXMgZnJvbSB0aGUgZG9jcwoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICByZW1vdmUgdGhlIFRIUkVBRCBkZWJ1ZyBjYXRlZ29yeQoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cXVldWUuYzoKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgY29tcGxldGVseSBtb3ZlIHF1ZXVlIGFuZCBmaXggdXAgZGVidWdnaW5nIGNhdGVnb3JpZXMKCjIwMDUtMTEtMzAgMDk6Mzg6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBtYWtlIGluaXRpYWxpemF0aW9uIHBvcnRhYmxlLCB1c2luZyBMTCBpcyBub3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIG1ha2UgaW5pdGlhbGl6YXRpb24gcG9ydGFibGUsIHVzaW5nIExMIGlzIG5vdAoKMjAwNS0xMS0zMCAwOTozNjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOTozMDo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOToyNzo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IGFkZCBsYXJnZSBwYWRkaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgYWRkIGxhcmdlIHBhZGRpbmcKCjIwMDUtMTEtMzAgMDk6MjI6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IHJlbmFtZSBzeW1ib2xzOyBzb3J0IGJhc2Ugc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVuYW1lIHN5bWJvbHM7IHNvcnQgYmFzZSBzZWN0aW9uCgoyMDA1LTExLTMwIDA5OjE4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiByZW1vdmUgY3JhY2sgbm9uLXBvcnRhYmxlIGhhbmRyb2xsZWQgREVCVUcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIHJlbW92ZSBjcmFjayBub24tcG9ydGFibGUgaGFuZHJvbGxlZCBERUJVRyBtYWNybwoKMjAwNS0xMS0zMCAwOToxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGUgdmlzdWFsIHN0dWRpbyBnZW5lcmF0ZWQgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB2aXN1YWwgc3R1ZGlvIGdlbmVyYXRlZCBmaWxlcwoKMjAwNS0xMS0zMCAwODo1Njo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi92czYvOiB1cGRhdGUgcHJvamVjdCBmaWxlcyBmb3IgbmV3IGxvY2F0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgdXBkYXRlIHByb2plY3QgZmlsZXMgZm9yIG5ldyBsb2NhdGlvbnMKCjIwMDUtMTEtMzAgMDg6NTI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHJlbW92ZSBzb21lIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICByZW1vdmUgc29tZSBmaWxlcwoJICAqIFJFQURNRToKCSAgcmVpbnN0YXRlIGFuZCB1cGRhdGUKCSAgKiBERVZFTDoKCSAgKiBSRVFVSVJFTUVOVFM6CgkgIHJlbW92ZWQKCSAgKiBMSUNFTlNFOgoJICAqIGRvY3MvcmFuZG9tL0xJQ0VOU0U6CgkgIG1vdmVkIHRvIHJhbmRvbQoKMjAwNS0xMS0zMCAwODozNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHB1dCB0aGUgUkVBRE1FIGJhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHB1dCB0aGUgUkVBRE1FIGJhY2sKCjIwMDUtMTEtMzAgMDg6MzM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogVE9ETzoKCSAgY2xlYW4gdXAgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgVE9ETwoKMjAwNS0xMS0zMCAwODoyOToxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2V4dC9NYWtlZmlsZS5hbToKCSAgcmVtb3ZpbmcgZXh0LCB3YXMgbm90IHVzZWQgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZpbmcgZXh0LCB3YXMgbm90IHVzZWQgYW55bW9yZQoKMjAwNS0xMS0yOSAyMzo1NjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IEZpeCBtZW1vcnkgbGVhayBpbiBHc3RUeXBlRmluZEZhY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgRml4IG1lbW9yeSBsZWFrIGluIEdzdFR5cGVGaW5kRmFjdG9yeS4KCjIwMDUtMTEtMjkgMjA6MTY6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDUtMTEtMjkgMTk6NDc6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSBxdWV1ZSBmcm9tIGNvcmUgdG8gdGhlIGVsZW1lbnRzIHBsdWdpbiDDpwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBtb3ZlIHF1ZXVlIGZyb20gY29yZSB0byB0aGUgZWxlbWVudHMgcGx1Z2luCgkgIMOnCgoyMDA1LTExLTI5IDE5OjQ0OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHBjIGZpbGVzCgoyMDA1LTExLTI5IDE5OjM3OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogZW4tTEFSR0UgdGhlIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogZW4tTEFSR0UgdGhlIHBhZGRpbmcuCgkgICogZ3N0L2dzdGNvbmZpZy5oLmluIChHU1RfUEFERElOR19MQVJHRSk6IE5ldyBkZWZpbmUsIHRoZSBudW1iZXIKCSAgb2YgcG9pbnRlcnMgYnkgd2hpY2ggdG8gcGFkIHZlcnkgZXh0ZW5zaWJsZSBiYXNlIGNsYXNzZXMgKGxpa2UgdGhlCgkgIG9uZXMgaW4gbGlicy9nc3QvYmFzZSkuCgoyMDA1LTExLTI5IDE5OjM0OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBtb3ZpbmcgZG9jdW1lbnRhdGlvbiBmcm9tIGNvcmUgdG8gbGliCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIG1vdmluZyBkb2N1bWVudGF0aW9uIGZyb20gY29yZSB0byBsaWIKCjIwMDUtMTEtMjkgMTk6MTI6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBvL1BPVEZJTEVTLmluOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQ1ZTIHN1cmdlcnkgKyBzdXBwb3J0IHRvIG1vdmUgYmFzZSwgY2hlY2ssIGFuZCBuZXQgb3V0IG9mIGdzdCBhbmQgaW50byBsaWJzL2dzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ1ZTIHN1cmdlcnkgKyBzdXBwb3J0IHRvIG1vdmUgYmFzZSwgY2hlY2ssIGFuZCBuZXQgb3V0IG9mIGdzdAoJICBhbmQgaW50byBsaWJzL2dzdAoKMjAwNS0xMS0yOSAxODo1Nzo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaCAoc3RydWN0IF9Hc3RTdHJ1Y3R1cmUpOiBPbmx5IG9uZSBwb2ludGVyIG9mCgkgIHBhZGRpbmcuCgkgICogZ3N0L2dzdHF1ZXJ5LmggKHN0cnVjdCBfR3N0UXVlcnkpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogUmVtb3ZlIGEgY29tbWVudCBpbiBQbHVnaW5GZWF0dXJlLgoJICAqIGdzdC9nc3RwbHVnaW4uaCAoc3RydWN0IF9Hc3RQbHVnaW5DbGFzcyk6IEFkZCBzb21lIHBhZGRpbmcuCgkgICogZ3N0L2dzdG9iamVjdC5oOiAoc3RydWN0IF9Hc3RPYmplY3QpOiBPbmx5IG9uZSBwb2ludGVyIG9mCgkgIHBhZGRpbmc7IHJlZHVjZXMgb2JqZWN0IHNpemUgYnkgYWJvdXQgMzAlLiBXZSBkb24ndCBleHBlY3QKCSAgYW55dGhpbmcgZWxzZSB0byBnbyBpbnRvIGdzdG9iamVjdC4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oIChzdHJ1Y3QgX0dzdE1pbmlPYmplY3QpCgkgIChzdHJ1Y3QgX0dzdE1pbmlPYmplY3RDbGFzcyk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZzsgdGhlCgkgIHBheWxvYWQgaXMgb25seSBhIHBvaW50ZXIgYW5kIHR3byBpbnRzIGFueXdheS4gRm9yIHRoZSBjbGFzcyB0aGVyZQoJICBhcmUgb25seSB0d28gbWV0aG9kcyBhcyB3ZWxsLgoJICAqIGdzdC9nc3RlbGVtZW50LmggKHN0cnVjdCBfR3N0RWxlbWVudENsYXNzKTogUmVtb3ZlZAoJICB0aGUgc3RhdGVfY2hhbmdlZCBzaWduYWwgY2FsbGJhY2ssIGl0IGlzIG5vdCB1c2VkLgoKMjAwNS0xMS0yOSAxODo0OToxOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5Ly5naXRpZ25vcmU6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9NYWtlZmlsZS5hbToKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2Jvbm9iby1nc3RtZWRpYXBsYXktdWkueG1sOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvYm9ub2JvLWdzdG1lZGlhcGxheS5jOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvZ3N0bWVkaWFwbGF5Lm9hZmluZm86CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL01ha2VmaWxlLmFtOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLWZhY3RvcnkuYzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci5nb2I6CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXIub2FmaW5mbzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lcnZpZGVvLmdvYjoKCSAgd2hhY2sgYSBtb2xlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGFjayBhIG1vbGUKCjIwMDUtMTEtMjkgMTg6Mzg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHRoZXNlIGZpbGVzIHdlcmUgbW92ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZXNlIGZpbGVzIHdlcmUgbW92ZWQKCjIwMDUtMTEtMjkgMTg6MjE6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBmaXggaW5jbHVkZXMsIHRob3VnaCB0aGV5IGFyZSBhIGxpdHRsZSBkaW5reQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGZpeCBpbmNsdWRlcywgdGhvdWdoIHRoZXkgYXJlIGEgbGl0dGxlIGRpbmt5CgoyMDA1LTExLTI5IDE4OjE0OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBsb29rIGluIHRoZSByaWdodCBwbGFjZSBmb3IgZWxlbWVudHMsIGEgbG90IG1vcmUgY2hhbmNlIG9mIHN1Y2Nlc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGxvb2sgaW4gdGhlIHJpZ2h0IHBsYWNlIGZvciBlbGVtZW50cywgYSBsb3QgbW9yZSBjaGFuY2Ugb2YKCSAgc3VjY2VzcwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGluZGV4ZXJzIGFuZCBlbGVtZW50cyBzdWJkaXJzCgkgICogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgbWFrZSBpbmRleGVycyBjb25kaXRpb25hbAoKMjAwNS0xMS0yOSAxODowODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICBhZGQgbWlzc2luZyBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCjIwMDUtMTEtMjkgMTg6MDQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGZpeCBkb2MgYnVpbGQgZm9yIHN0dWZmIG1vdmVkIGFyb3VuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvYyBidWlsZCBmb3Igc3R1ZmYgbW92ZWQgYXJvdW5kCgoyMDA1LTExLTI5IDE4OjAzOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHJlbW92ZSBtb3ZlZCBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbW92ZWQgZGlycwoKMjAwNS0xMS0yOSAxODowMjo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZW1wdHkgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGVtcHR5IGRpcnMKCjIwMDUtMTEtMjkgMTg6MDA6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG8gQ1ZTIHN1cmdlcnkgYW5kIHJlbGF0ZWQgYnVpbGQgZml4ZXJ5IHRvIG1vdmUgZWxlbWVudHMgYW5kIGluZGV4ZXJzIGluIGEgbmV3IGdzdHJlYW1lci9wbHVnaW5zIGRpcmVjdG9yeSwgb3V0IG9mIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgZG8gQ1ZTIHN1cmdlcnkgYW5kIHJlbGF0ZWQgYnVpbGQgZml4ZXJ5IHRvIG1vdmUgZWxlbWVudHMKCSAgYW5kIGluZGV4ZXJzIGluIGEgbmV3IGdzdHJlYW1lci9wbHVnaW5zIGRpcmVjdG9yeSwgb3V0IG9mIHRoZQoJICBnc3QvIGRpcmVjdG9yeQoKMjAwNS0xMS0yOSAxNzo0NzowNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgUmVuYW1lIGdzdG5ldC10ZW1wbmFtZSB0byBnc3RuZXQuIEZpeGVzICMzMjIyNTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06IFJlbmFtZSBnc3RuZXQtdGVtcG5hbWUgdG8gZ3N0bmV0LiBGaXhlcwoJICAjMzIyMjU3LgoKMjAwNS0xMS0yOSAxNzozNTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMjkgMTc6MzM6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92ZSBzb21lIG1vcmUgY29tcGxldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzb21lIG1vcmUgY29tcGxldGUKCjIwMDUtMTEtMjkgMTc6MzI6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvOiByZW1vdmluZyAtY29tcHByZXAgYW5kIC1jb21wbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtY29tcGxldGUuMS5pbjoKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuMS5pbjoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSAgcmVtb3ZpbmcgLWNvbXBwcmVwIGFuZCAtY29tcGxldGUKCjIwMDUtMTEtMjkgMTc6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IGZpeCAjMzIwNTI5IC0gY2xlYW4gdXAgbmV3X3NlZ21lbnQgQVBJIGFuZCBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBmaXggIzMyMDUyOSAtIGNsZWFuIHVwIG5ld19zZWdtZW50IEFQSSBhbmQgc3RydWN0dXJlLgoJICBMZXQncyBob3BlIGV2ZXJ5b25lIHdhcyB1c2luZyB0aGUgbWV0aG9kcywgYW5kIG5vdCB0aGUgc3RydWN0dXJlLgoKMjAwNS0xMS0yOSAxNzoxMzo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFRoaXMgZnVuY3Rpb24gaXMgdmFsaWQgaWYgdGhlIGFjY3VtdWxhdG9yIGlzIDAgYW5kIHRoZSBmb3JtYXQKCSAgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgoyMDA1LTExLTI5IDE1OjUwOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfcXVlcnlfbmV3X3NlZWtpbmcgYW5kIGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nIHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X3F1ZXJ5X25ld19zZWVraW5nIGFuZCBnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyB0byB0aGUKCSAgZG9jcy4KCjIwMDUtMTEtMjkgMTU6MTU6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggY29uZmxpY3QgbWFya2VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggY29uZmxpY3QgbWFya2VyCgoyMDA1LTExLTI5IDE1OjEyOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVHJlYXQgYSBwYWQgYWxsb2Mgd2l0aCBuZXcgY2FwcyB0aGUgc2FtZSBhcyBpZiB3ZSB3ZXJlIG5vdCBuZWdvdGlhdGVkLCBpbiBvcmRlciB0byBhbGxvdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgVHJlYXQgYSBwYWQgYWxsb2Mgd2l0aCBuZXcgY2FwcyB0aGUgc2FtZSBhcyBpZiB3ZSB3ZXJlIG5vdAoJICBuZWdvdGlhdGVkLCBpbiBvcmRlciB0byBhbGxvdyBhIGNoYW5naW5nIHVwc3RyZWFtIG91dHB1dAoJICB0byBwcm9kdWNlIGEgbmV3IGZvcm1hdCBvZiBkYXRhLgoKMjAwNS0xMS0yOSAxNDo0NzowNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVGhlIGV2ZW50IHZpcnR1YWwgbWV0aG9kIGlzIG5vdyBwcm9wZXJseSBpbXBsZW1lbnRlZCwgd2l0aCBhIGRlZmF1bHQgaGFuZGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50ZnVuYyk6CgkgIFRoZSBldmVudCB2aXJ0dWFsIG1ldGhvZCBpcyBub3cgcHJvcGVybHkgaW1wbGVtZW50ZWQsIHdpdGggYSBkZWZhdWx0CgkgIGhhbmRsZXIKCSAgU3ViIGNsYXNzZXMgc2hvdWxkIGNhbGwgdGhlIHBhcmVudF9jbGFzcyBldmVudCBtZXRob2QuIFRoZXkgc2hvdWxkCgkgIHJldHVybiBGQUxTRSBpZiB0aGV5IGhhZCBhIHByb2JsZW0gaGFuZGxpbmcgdGhlIGdpdmVuIGV2ZW50LCBvciBkb24ndAoJICB3YW50IEdzdEJhc2VUcmFuc2Zvcm0gdG8gc2VuZCB0aGF0IGV2ZW4gZG93bnN0cmVhbQoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLCAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgQWRkZWQgdGhlIHNpbmdsZS1zZWdtZW50IGJvb2xlYW4gcHJvcGVydHkuCgkgIElmIHNldCB0byBUUlVFLCBpdCB3aWxsIG91dHB1dCBhIHNpbmdsZSBzZWdtZW50IG9mIGRhdGEsIHN0YXJ0aW5nIGZyb20KCSAgMCwgd2lsbCBlYXQgdXAgYWxsIGluY29taW5nIG5ld3NlZ21lbnQsIGFuZCBtb2RpZnkgdGhlIHRpbWVzdGFtcCBvZiB0aGUKCSAgYnVmZmVycyBhY2NvcmRpbmdseQoKMjAwNS0xMS0yOSAxNDo0Mzo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy8wLjEwOgoJICBmdXJ0aGVyIHJldmlldwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZnVydGhlciByZXZpZXcKCjIwMDUtMTEtMjkgMTM6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRG9uJ3QgcmVmIE5VTEwgdGFyZ2V0IHBhZCAoIzMyMjc1MSkuIEltcHJvdmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpOgoJICBEb24ndCByZWYgTlVMTCB0YXJnZXQgcGFkICgjMzIyNzUxKS4gSW1wcm92ZSBkb2NzLgoKMjAwNS0xMS0yOSAxMTowNzo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IERvbid0IGNyYXNoIGlmIHdlIGZhaWxlZCB0byBsb2FkIGEgZmVhdHVyZSBmcm9tIGEgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgRG9uJ3QgY3Jhc2ggaWYgd2UgZmFpbGVkIHRvIGxvYWQgYSBmZWF0dXJlIGZyb20gYSBwbHVnaW4uCgoyMDA1LTExLTI5IDAwOjUxOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzLzAuMTA6CgkgIGFkZCBteSB0b2RvcyBmb3IgMC4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG15IHRvZG9zIGZvciAwLjEwCgoyMDA1LTExLTI4IDIxOjUxOjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IHVzZSBtb3JlIGNoZWNrIEFQSSBhbmQgbGVzcyBHTGliIEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB1c2UgbW9yZSBjaGVjayBBUEkgYW5kIGxlc3MgR0xpYiBBUEkKCjIwMDUtMTEtMjggMjE6NDg6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgY29zbWV0aWMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWMgY2hhbmdlcwoKMjAwNS0xMS0yOCAxOTo1ODo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogZG9uJ3QgcnVuIGNoZWNrcyBpZiB3ZSBkb24ndCBoYXZlIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBkb24ndCBydW4gY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgY2hlY2sKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICByZW1vdmUgdGhlIHJlZ2lzdHJ5IHdoZW4gcnVubmluZyBtYWtlIHRvcnR1cmUKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgc2Vjb25kIG11bHRpcGx5CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIGZpeCBhIGNvbXBpbGUgd2FybmluZyB3aGVuIGRpc2FibGluZyBkZWJ1ZwoKMjAwNS0xMS0yOCAxOTo0MzoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0aW5mby5oOiBIZXkhIExldCdzIHByaW50IHRoZSBwYWQgbmFtZSBpZiB0aGUgcG9pbnRlciAhPSBOVUxMIGluc3RlYWQgb2Ygd2hlbiBpdCA9PSBOVUxMIDotKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBIZXkhIExldCdzIHByaW50IHRoZSBwYWQgbmFtZSBpZiB0aGUgcG9pbnRlciAhPSBOVUxMIGluc3RlYWQKCSAgb2Ygd2hlbiBpdCA9PSBOVUxMIDotKQoKMjAwNS0xMS0yOCAxODo0NDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBVcGRhdGVkIGNoZWNrLCBhZGQgc29tZSBzY2FsaW5nIGFjY3VyYWN5IGNoZWNraW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGVkIGNoZWNrLCBhZGQgc29tZSBzY2FsaW5nIGFjY3VyYWN5IGNoZWNraW5nIGNvZGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kaXYxMjhfNjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgRml4IDYgdGltZXMgZmFzdGVyIGRpdmlzaW9uIGNvZGUuIE9wdGltaXplIGZvciBjb21tb24KCSAgMS8xIGFuZCBsZXNzIGNvbW1vbiBYLzEgY2FzZXMuCgoyMDA1LTExLTI4IDE3OjU5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMTEtMjggMTY6MDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTW9yZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgTW9yZSBjaGVja3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZmluYWxpemUpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLCAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6CgkgIENsZWFudXBzLgoJICBSZWxlYXNlIGxvY2sgd2hlbiB0aGUgY2xvY2sgY2Fubm90IGJlIHNsYXZlZC4KCSAgQ2F0Y2ggdGhlIGNhc2Ugd2hlcmUgdGhlIHJlZ3Jlc3Npb24gcmV0dXJuZWQgYW4gaW52YWxpZCBkZW5vbWluYXRvci4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2RpdjEyOF82NF9pdGVyYXRlKSwKCSAgKGdzdF91dGlsX2RpdjEyOF82NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBBZGQgcHJvdGVudGlhbGx5IG1vcmUgcGVyZm9ybWFudCBub24taXRlcmF0aXZlIDEyOC82NCBkaXZpZGUgZnVuY3Rpb24KCSAgdGhhdCB1bmZvcnR1bmF0bHkgZG9lcyBub3Qgd29yayB5ZXQuCgkgIFNob3J0Y3V0IHRoZSB0cml2aWFsIDAvWCA9IDAgY2FzZS4KCSAgUmVtb3ZlIHRoZSB3YXJuaW5ncyBvbiBvdmVyZmxvdy4KCjIwMDUtMTEtMjggMTQ6MTg6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBldmVyeXRoaW5nIGNhdXNpbmcgYSBwbHVnaW4gbm90IHRvIGxvYWQgc2hvdWxkIGJlIGF0IGxlYXN0IGEgV0FSTklORwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMpOgoJICBldmVyeXRoaW5nIGNhdXNpbmcgYSBwbHVnaW4gbm90IHRvIGxvYWQgc2hvdWxkIGJlIGF0IGxlYXN0IGEgV0FSTklORwoKMjAwNS0xMS0yOCAxNDowMjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgbG9nIGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyBjYXBzCgoyMDA1LTExLTI4IDE0OjAxOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0xMS0yOCAxMzoyNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9kcGFyYW1zLnR4dDogc29tZSBUT0RPcyBmb3IgdGhlIG5leHQgZGV2IGN5Y2xlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHBhcmFtcy50eHQ6CgkgIHNvbWUgVE9ET3MgZm9yIHRoZSBuZXh0IGRldiBjeWNsZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICB1c2UgYmFzZSB0eXBlIHRvIGFzc2lnbiBhY2NjZXNzb3IgZnVuY3Rpb25zCgoyMDA1LTExLTI4IDExOjMxOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBPb3BzLCB0aGF0IHNob3VsZCBoYXZlIGJlZW4gdG9wX3NyY2RpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgT29wcywgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHRvcF9zcmNkaXIKCjIwMDUtMTEtMjggMTA6Mjk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRpc2FibGUgcGlwZWxpbmUgdGVzdCB1bnRpbCBzb21lb25lIGZpeGVzIHRoZSB1bnJlbGlhYmxlIGVycm9ycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBwaXBlbGluZSB0ZXN0IHVudGlsIHNvbWVvbmUgZml4ZXMgdGhlIHVucmVsaWFibGUgZXJyb3JzCgoyMDA1LTExLTI4IDEwOjA3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogVXNlIGEgY21kbGluZSBkZWZpbmUgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBmaWxlIHRvIHVzZSBmb3IgdGVzdGluZywgdG8gYXZvaWQgYnJlYWtpbmcgZGlzdGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgYSBjbWRsaW5lIGRlZmluZSB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGZpbGUgdG8gdXNlIGZvcgoJICB0ZXN0aW5nLCB0byBhdm9pZCBicmVha2luZyBkaXN0Y2hlY2suCgoyMDA1LTExLTI4IDEwOjA0OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGZpeGF0ZV92YWx1ZSk6IFVzZSBhcnJheSBmdW5jdGlvbnMgZm9yIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChmaXhhdGVfdmFsdWUpOiBVc2UgYXJyYXkgZnVuY3Rpb25zIGZvciBhcnJheXMuCgoyMDA1LTExLTI4IDA5OjU1OjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDbGFyaWZ5IHRoZSBvdXRwdXQgc3RyaW5ncywgbWFrZXMgaXQgZWFzaWVyIHRvIHRyYW5zbGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIENsYXJpZnkgdGhlIG91dHB1dCBzdHJpbmdzLCBtYWtlcyBpdCBlYXNpZXIgdG8gdHJhbnNsYXRlLgoJICBGaXhlcyAjMzIyNjI2CgoyMDA1LTExLTI4IDA4OjIwOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogZG9uJ3QgdHJ5IGFuZCBidWlsZCBuZXQgaWYgd2UgZG9uJ3QgZXZlbiBoYXZlIDxzeXMvc29ja2V0Lmg+CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdHJ5IGFuZCBidWlsZCBuZXQgaWYgd2UgZG9uJ3QgZXZlbiBoYXZlIDxzeXMvc29ja2V0Lmg+CgoyMDA1LTExLTI3IDIyOjUwOjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogQWRkIHRlc3RzIGZvciBmZHNyYyBzZWVrYWJpbGl0eQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoZXZlbnRfZnVuYyksIChzZXR1cF9mZHNyYyksCgkgIChjbGVhbnVwX2Zkc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZkc3JjX3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGVzdHMgZm9yIGZkc3JjIHNlZWthYmlsaXR5CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfdXBkYXRlX2ZkKSwgKGdzdF9mZHNyY19zdGFydCksCgkgIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZHNyY19pc19zZWVrYWJsZSksCgkgIChnc3RfZmRzcmNfZ2V0X3NpemUpLCAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZmRzcmMgc2hvdWxkIG5vdCBiZSBhICdsaXZlJyBzb3VyY2UuCgkgIEltcGxlbWVudCBzZWVraW5nIG9uIHNlZWthYmxlIGZkJ3MuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZWtpbmcpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBJbXBsZW1lbnQgU0VFS0lORyBxdWVyeSBmdW5jdGlvbnM6CgkgICpfbmV3X3NlZWtpbmcgYW5kICpfcGFyc2Vfc2Vla2luZwoKMjAwNS0xMS0yNyAyMjo0MzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogZG9uJ3QgbG9vcCBmb3JldmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgZG9uJ3QgbG9vcCBmb3JldmVyCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2MgZml4ZXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSk6CgkgIHN1cHBvcnQgY29udHJvbGxpbmcgZW51bXMKCjIwMDUtMTEtMjcgMTk6NTI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogSW1wcm92ZSBkb2N1bWVudGF0aW9uIGZvciBnc3RfdmFsdWVfdW5pb24oKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3ZhbHVlX3VuaW9uKCkuCgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIENoYW5nZSByZXR1cm4gdmFsdWUgZm9yIHVuaW9uLCBpbnRlcnNlY3QgYW5kIHN1YnRyYWN0IGZ1bmN0aW9ucwoJICBmcm9tIGdpbnQgdG8gZ2Jvb2xlYW4uCgoyMDA1LTExLTI3IDE4OjExOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFVzZSBnaW50LCBnZG91YmxlIGFuZCBnY2hhciBpbiBvdXIgQVBJIGluc3RlYWQgb2YgaW50LCBkb3VibGUgYW5kIGNoYXIgKGFuZCBtYWtlIHVzYWdlIGluIGdzdHZhbHVlLmMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hbnlfbGlzdCksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FueV9saXN0X3N0cmluZyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfbGlzdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX3NldF9pbnRfcmFuZ2UpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2RvdWJsZV9yYW5nZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2VfZnVsbCksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2NhcHMpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYm9vbGVhbiksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlciksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZG91YmxlKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxvYXQpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2Zsb2F0KSwKCSAgKGdzdF9zdHJpbmdfd3JhcCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksCgkgIChnc3RfdmFsdWVfdW5pb25faW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jcmVhdGVfbmV3X3JhbmdlKSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50KSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSBnaW50LCBnZG91YmxlIGFuZCBnY2hhciBpbiBvdXIgQVBJIGluc3RlYWQgb2YgaW50LCBkb3VibGUgYW5kCgkgIGNoYXIgKGFuZCBtYWtlIHVzYWdlIGluIGdzdHZhbHVlLmMgbW9yZSBjb25zaXN0ZW50KS4KCjIwMDUtMTEtMjcgMTc6MDU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBhZGQgdW5kZWZpbmVkIGZvciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdW5kZWZpbmVkIGZvciBjb3JlCgoyMDA1LTExLTI3IDE2OjQ2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCB1cCBNYWtlZmlsZS5hbSBhbmQgcmVtb3ZlIEdTVF9FTkFCTEVfTkVXCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgTWFrZWZpbGUuYW0gYW5kIHJlbW92ZSBHU1RfRU5BQkxFX05FVwoKMjAwNS0xMS0yNyAxNToxNTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB1cGRhdGUgTERGTEFHUyB1c2Ugc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICB1cGRhdGUgTERGTEFHUyB1c2Ugc29tZSBtb3JlCgoyMDA1LTExLTI3IDE0OjE5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBGaXhlcyAjMzEyNTg5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlcyAjMzEyNTg5CgoyMDA1LTExLTI3IDE0OjAzOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIHNvbWUgYWRkaXRpb25hbCBmYWlsX2lmJ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGFkZGl0aW9uYWwgZmFpbF9pZidzCgoyMDA1LTExLTI2IDExOjI4OjMyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogVGhpcyBzaG91bGRuJ3QgaXNzdWUgYSBnX3dhcm5pbmcgc2luY2UgaXQgcmV0dXJucyBOVUxMIGlmIGl0IGNvdWxkbid0IGZpbmQgdGhlIHBsdWdpbiwgYW5kIGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIFRoaXMgc2hvdWxkbid0IGlzc3VlIGEgZ193YXJuaW5nIHNpbmNlIGl0IHJldHVybnMgTlVMTCBpZiBpdAoJICBjb3VsZG4ndCBmaW5kIHRoZSBwbHVnaW4sIGFuZCBhbGwgZnVuY3Rpb25zIHVzaW5nIHRoaXMgYmVoYXZlCgkgIHByb3Blcmx5IG9uIGEgTlVMTCByZXR1cm4uIFN3aXRjaGluZyB0byBhIEdTVF9XQVJOSU5HLgoKMjAwNS0xMS0yNSAxNzowNjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGxlYWsgY2xvY2sgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIERvbid0IGxlYWsgY2xvY2sgbWVzc2FnZXMuCgoyMDA1LTExLTI1IDExOjM4OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE9wdGltaXNhdGlvbnMsIHJlbW92ZSB1bm5lZWRlZCB2YXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgT3B0aW1pc2F0aW9ucywgcmVtb3ZlIHVubmVlZGVkIHZhcnMuCgoyMDA1LTExLTI1IDAwOjAyOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIG1vcmUgY2hlY2tzIGZvciB0aGUgaGlnaCBwcmVjaXNpb24gdWludDY0IGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIG1vcmUgY2hlY2tzIGZvciB0aGUgaGlnaCBwcmVjaXNpb24gdWludDY0IGNhc2VzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgSW1wbGVtZW50IGhpZ2ggcHJlY2lzc2lvbiAoZ3VpbnQ2NCAqIGd1aW50NjQpIC8gZ3VpbnQ2NC4KCjIwMDUtMTEtMjQgMTk6MDY6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCB3cm9uZyBwZXJjZW50YWdlIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBGaXggd3JvbmcgcGVyY2VudGFnZSBxdWVyeS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQWRkIHNvbWUgbW9yZSBjb21tb24gY2FzZXMgdGhhdCBjYW4gYmUgaGFuZGxlZAoJICBlZmZpY2llbnRseSB0byBfc2NhbGUuCgoyMDA1LTExLTI0IDE4OjQ0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHJlbW92ZSB3cm9uZ2x5IGNvbW1pdGVkIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgd3JvbmdseSBjb21taXRlZCBjb21tZW50cwoKMjAwNS0xMS0yNCAxODo0MDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiBkb24ndCB1c2UgY2hlY2sgY2FsbHMgZnJvbSB0aHJlYWRzOyBjaGVjayBwcm9iYWJseSBpc24ndCB0aHJlYWRzYWZlIGFuZCB1c2luZyBhIGxvY2sgdG8gbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKHRocmVhZF9yZWYpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3N1aXRlKToKCSAgZG9uJ3QgdXNlIGNoZWNrIGNhbGxzIGZyb20gdGhyZWFkczsgY2hlY2sgcHJvYmFibHkgaXNuJ3QKCSAgdGhyZWFkc2FmZSBhbmQgdXNpbmcgYSBsb2NrIHRvIG1ha2UgaXQgdGhyZWFkc2FmZSB3b3VsZAoJICBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGVjawoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICB1c2UgR1NUX0RFQlVHIHNvbWUgbW9yZQoKMjAwNS0xMS0yNCAxODowMzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGFpbiB0cml2aWFsIGNhc2UgdG8gX3NjYWxlX2ludC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIENoYWluIHRyaXZpYWwgY2FzZSB0byBfc2NhbGVfaW50LgoKMjAwNS0xMS0yNCAxNzo0NDo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGRlZCB0ZXN0IGZvciBzY2FsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIHNjYWxpbmcuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNtYWxsIGRvYyBmaXguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgSW1wbGVtZW50ZWQgaGlnaCBwcmVjaXNpb24gc2NhbGluZyBjb2RlLgoKMjAwNS0xMS0yNCAxNjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogZG8gbm90IGNyYXNoIG9uIHBhZD09TlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBkbyBub3QgY3Jhc2ggb24gcGFkPT1OVUxMCgoyMDA1LTExLTI0IDE2OjMyOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBGaXggZGlzdGNoZWNrIGlzc3VlcyBmb3IgdGhlIGxpYnJhcmllcyBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QKCSAgKiBjb21tb24vZ3RrLWRvYy5tYWs6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggZGlzdGNoZWNrIGlzc3VlcyBmb3IgdGhlIGxpYnJhcmllcyBkb2NzIGJ1aWxkCgkgIENsb3NlcyAjMzE5NTk5CgoyMDA1LTExLTI0IDE0OjM5OjU5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IEZpeCBidWcgIzMxNTAyNzogbWVtb3J5IGxlYWsgaW4gZXhhbXBsZSBjb2RlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgRml4IGJ1ZyAjMzE1MDI3OiBtZW1vcnkgbGVhayBpbiBleGFtcGxlIGNvZGUgaW4gZG9jcy4KCjIwMDUtMTEtMjQgMTI6NDQ6MjUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVubG9jayB0aGUgUFJFUk9MTF9MT0NLIGluIGEgZmFpbHVyZSBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yNCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQGZsdWVuZG8uY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBVbmxvY2sgdGhlIFBSRVJPTExfTE9DSyBpbiBhIGZhaWx1cmUgY2FzZS4KCjIwMDUtMTEtMjQgMTE6MTY6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL25ldC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTI0IDA5OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgRG9jIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0yMyAyMjo1NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZWQgZGlyZWN0b3JpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZGlyZWN0b3JpZXMKCjIwMDUtMTEtMjMgMjI6MjE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdAoKMjAwNS0xMS0yMyAyMToyNDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGQgYSB0b3J0dXJlIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgdG9ydHVyZSB0YXJnZXQKCjIwMDUtMTEtMjMgMjE6MTg6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvY3JlYXRlLmM6CgkqIHRlc3RzL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi9jYXBzbmVnbzEuYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCjIwMDUtMTEtMjMgMjE6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2xhdC5jOgoJKiB0ZXN0cy9tdXhpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvbXV4aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9tdXhpbmcvY2FzZTEuYzoKCSogdGVzdHMvcHJvYmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL3Byb2Jlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvcHJvYmVzL3Byb2JldGVzdC5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoKMjAwNS0xMS0yMyAyMToxMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRToKCSogdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOgoJICByZW1vdmUgdHJpZ2dlciBzdWJkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0cmlnZ2VyIHN1YmRpcgoKMjAwNS0xMS0yMyAyMToxMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2Zha2UuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9uYW1lLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9mYWtlLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9uYW1lLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJICByZW1vdmUgdGVzdHMgcmVwbGFjZWQgYnkgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVzdHMgcmVwbGFjZWQgYnkgY2hlY2tzCgoyMDA1LTExLTIzIDIwOjA0OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjYgPT09CgoyMDA1LTExLTIzIDE5OjU1OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNgoKMjAwNS0xMS0yMyAxODowNzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTEtMjMgMTc6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy91cGxvYWQubWFrOgoJICBDaHJpc3RpYW4sIGxlYXJuIHRvIGNvbmZpZ3VyZSB5b3VyIC5zc2gvY29uZmlnIGZpbGUsIGFuZCBTVE9QIGNvbW1pdHRpbmcgdG8gdGhpc2ZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENocmlzdGlhbiwgbGVhcm4gdG8gY29uZmlndXJlIHlvdXIgLnNzaC9jb25maWcgZmlsZSwgYW5kIFNUT1AgY29tbWl0dGluZyB0byB0aGlzZmlsZQoKMjAwNS0xMS0yMyAxNjoxMDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgIERvYyB1cGRhdGVzLgoKMjAwNS0xMS0yMyAxNTo0OTowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIGdzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICByZW1vdmUgbWVudGlvbnMgb2Ygc2luZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1lbnRpb25zIG9mIHNpbmVzcmMKCjIwMDUtMTEtMjMgMTQ6NTI6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZSBmb3IgbmV3IEFQSSBhbmQgQVBJIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFVwZGF0ZSBmb3IgbmV3IEFQSSBhbmQgQVBJIGNoYW5nZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2N1bWVudGF0aW9uIGZpeDogR1NUX1RSWUxPQ0sgLT4gR1NUX09CSkVDVF9UUllMT0NLCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvY3VtZW50YXRpb24gdHlwbyBmaXguCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIERvY3VtZW50YXRpb24gZml4ZXMgZm9yIGFyZ3VtZW50cy4KCjIwMDUtMTEtMjMgMTM6MjI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQVBJIENoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICBBUEkgQ2hhbmdlcy4KCSAgUmVuYW1lIGdzdF91dGlsX2Nsb2NrX3RpbWVfc2NhbGUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludAoJICBNYWtlIGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24gdGFrZSBhIG51bWVyYXRvcgoJICBhbmQgZGVub21pbmF0b3IgYXJndW1lbnQgaW5zdGVhZCBvZiBhIEdWYWx1ZQoJICBhZGQgZ3N0X3N0cnVjdHVyZV9nZXRfZnJhY3Rpb24gaGVscGVyIGZ1bmN0aW9uLgoKMjAwNS0xMS0yMyAxMzoxNDo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgVXNlIHBhcmVudCBmaWVsZHMgZm9yIHRpbWVvdXQgYW5kIHdpbmRvd19zaXplLgoKMjAwNS0xMS0yMyAxMjozOTozNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy91cGxvYWQubWFrOgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgYWRkIG1pc3NpbmcgY3ZzaWdub3JlcyBzbyBDVlMgc2h1dHMgdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIGN2c2lnbm9yZXMgc28gQ1ZTIHNodXRzIHVwCgoyMDA1LTExLTIzIDEyOjM2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkanVzdCB0byByYXRlX251bS9yYXRlX2Rlbm9tIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGp1c3QgdG8KCSAgcmF0ZV9udW0vcmF0ZV9kZW5vbSBjaGFuZ2UuCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogVGFrZSB0aGUgU0xBVkVfTE9DSyBub3QgdGhlCgkgIE9CSkVDVF9MT0NLLiBEb24ndCBjYWxsIGFkZF9vYnNlcnZhdGlvbiB3aXRoIHRoZSBsb2NrLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfaW5pdCk6IEluaXRpYWxpemUgdGhlIHJhdGUgYXMgYQoJICBmcmFjdGlvbi4KCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBBZGp1c3QgdXNpbmcgdWludDY0X3NjYWxlIGFuZCB0aGUKCSAgcmF0ZSBmcmFjdGlvbi4KCSAgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24sIGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pOiBDaGFuZ2UgdG8KCSAgZGVhbCB3aXRoIHJhdGUgYXMgYSBmcmFjdGlvbiB3aG9zZSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGFyZQoJICBHc3RDbG9ja1RpbWUgdmFsdWVzLgoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOiBPbmx5IHVzZSB0aGUgT0JKRUNUX0xPQ0sgdG8gc2V0IHRoZQoJICBtYXN0ZXI7IHRoZSBvdGhlciBmaWVsZHMgYXJlIHByb3RlY3RlZCBieSB0aGUgU0xBVkVfTE9DSy4KCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogTm90ZSB0aGF0IHRoaXMgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUKCSAgU0xBVkVfTE9DSy4KCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOiBUYWtlIHRoZSBTTEFWRV9MT0NLLCBub3QgdGhlCgkgIE9CSkVDVF9MT0NLLiBDYWxsIHNldF9jYWxpYnJhdGlvbiBpbnN0ZWFkIG9mIHRvdWNoaW5nIHRoZQoJICB2YXJpYWJsZXMgZGlyZWN0bHkuCgkgIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5LCBnc3RfY2xvY2tfZ2V0X3Byb3BlcnR5KTogUHJvdGVjdAoJICBtYXN0ZXIvc2xhdmUgcGFyYW1ldGVycyB3aXRoIHRoZSBTTEFWRV9MT0NLLgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSByYXRlLCBhZGQgcmF0ZV9udW1lcmF0b3IgYW5kCgkgIHJhdGVfZGVub21pbmF0b3IuIFBSM0MxUzMuIEFkZCBhIG5ldyBsb2NrLCB0aGUgU0xBVkVfTE9DSywgYW5kCgkgIG5vdGUgdGhhdCBhbGwgb2YgdGhlIGluc3RhbmNlIHZhcmlhYmxlcyB0aGF0IGFkZF9vYnNlcnZhdGlvbiBhbmQKCSAgdGhlIHNldF9tYXN0ZXIgZnVuY3Rpb25zIHVzZSBhcmUgcHJvdGVjdGVkIGJ5IHRoYXQgbG9jayBhbmQgbm90CgkgIHRoZSBPQkpFQ1RfTE9DSy4KCSAgKEdTVF9DTE9DS19TTEFWRV9MT0NLLCBHU1RfQ0xPQ0tfU0xBVkVfVU5MT0NLKTogTmV3IG1hY3Jvcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6IE5vIGxvbmdlciByZXF1aXJlcwoJICB0aGUgY2FsbGVyIHRvIHRha2UgdGhlIG9iamVjdCBsb2NrLgoKMjAwNS0xMS0yMyAxMToyMjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgZXJyb3IgZm9yIGNsb2NrIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCBlcnJvciBmb3IgY2xvY2sgc3R1ZmYuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfY2xvY2spOgoJICBQb3N0IGNsb2NrIGVycm9yIHdoZW4gY2xvY2sgY2Fubm90IGJlIHVzZWQgaW4gYSBwaXBlbGluZS4KCjIwMDUtMTEtMjMgMTE6MDU6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1ha2UgdHdvIHN5bWJvbHMgZnJvbSBnc3RpbmZvIHByaXZhdGUgZm9yIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1ha2UgdHdvIHN5bWJvbHMgZnJvbSBnc3RpbmZvIHByaXZhdGUgZm9yIHRoZSBkb2NzCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZml4IGRvYyB0eXBvcywgdXBkYXRlIGRvY3MKCjIwMDUtMTEtMjIgMTg6Mjg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBObyBuZWVkIHRvIHN0b3JlIHRoZSBjbG9jaywgdGhlIHBhcmVudCBlbGVtZW50IGNsYXNzIGFscmVhZHkgaGFzIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE5vIG5lZWQgdG8gc3RvcmUgdGhlIGNsb2NrLCB0aGUgcGFyZW50IGVsZW1lbnQgY2xhc3MgYWxyZWFkeQoJICBoYXMgaXQuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKToKCSAgVXBkYXRlcyBmb3IgY2xvY2tfc2V0IHJldHVybmluZyBhIGdib29sZWFuCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfY2xvY2tfZ2V0X2ludGVybmFsX3RpbWUpLCAoZ3N0X2Nsb2NrX2dldF90aW1lKSwKCSAgKGdzdF9jbG9ja19zbGF2ZV9jYWxsYmFjayksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChnc3RfY2xvY2tfZ2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKSwgKGdzdF9jbG9ja19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Nsb2NrX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEltcGxlbWVudCBtYXN0ZXIvc2xhdmUuIFdoZW4gc2V0dGluZyBhIGNsb2NrIGFzIGEgc2xhdmUsIGEKCSAgcGVyaW9kaWMgdGltZW91dCBpcyBzY2hlZHVsZWQgdG8gc2FtcGxlIG1hc3RlciBhbmQgc2xhdmUgdGltZXMuCgkgIFRoZW4gdGhlIHNsYXZlIGNsb2NrIGlzIHJlY2FsaWJyYXRlZCB0byBtYXRjaCBvZmZzZXQgYW5kIHJhdGUKCSAgb2YgdGhlIG1hc3RlciBjbG9jay4KCSAgVXBkYXRlIGxvZ2dpbmcgYSBiaXQuCgkgIEFkZCBmbGFnIHNvIHRoYXQgYSBjbG9jayBjYW4gc3RhdGUgdGhhdCBpcyBjYW5ub3QgYmUgc2xhdmVkIHRvCgkgIGFub3RoZXIgY2xvY2suCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVGhlIHNldF9jbG9jayByZXR1cm5zIGEgZ2Jvb2xlYW4gZm9yIHdoZW4gYW4gZWxlbWVudCBjYW5ub3QKCSAgZGVhbCB3aXRoIHRoZSBzZWxlY3RlZCBjbG9jayBpbiB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfY2xvY2spOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHNlbGVjdGVkIGNsb2NrIGNhbm5vdCBiZSBzZXQgb24KCSAgdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgVXNlIHJlZ3Jlc3Npb24gY29kZSBpbiBHc3RDbG9jayBwYXJlbnQsIHJlbW92ZSBkdXBsaWNhdGVkCgkgIGZ1bmN0aW9uYWxpdHkuCgoyMDA1LTExLTIyIDE2OjMxOjA4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHVuZGVyc2NvcmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgdW5kZXJzY29yZXMKCjIwMDUtMTEtMjIgMTU6NTI6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogY29ycmVjdGx5IGZpeCBHRW51bVZhbHVlcyBzbyB0aGF0IG5pY2sgaXMgdGhlIHNob3J0IGxvd2VyY2FzZSBkYXNoZWQgdGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3Npbmtfc3RhdGVfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZGF0YV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfc2l6ZXR5cGVfZ2V0X3R5cGUpLCAoZ3N0X2Zha2Vfc3JjX2ZpbGx0eXBlX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19pbml0KSwgKGdzdF9mYWtlX3NyY19wcmVwYXJlX2J1ZmZlciksCgkgIChnc3RfZmFrZV9zcmNfYWxsb2NfYnVmZmVyKSwgKGdzdF9mYWtlX3NyY19nZXRfc2l6ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgY29ycmVjdGx5IGZpeCBHRW51bVZhbHVlcyBzbyB0aGF0IG5pY2sgaXMgdGhlIHNob3J0IGxvd2VyY2FzZQoJICBkYXNoZWQgdGFnCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgYWxzbyBzaG93IHRoZSBuaWNrLCBzaW5jZSBpdCdzIHVzZWZ1bCB0byB1c2UgZnJvbSBwYXJzZV9sYXVuY2gKCSAgc3ludGF4CgkgIEZpeGVzICMzMjIxMzkKCjIwMDUtMTEtMjIgMTU6MTU6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIEFkZCB1dGlsIG1ldGhvZCBmb3Igc2NhbGluZyBhIGNsb2NrdGltZSBieSBhIGZyYWN0aW9uLiBVc2VmdWwgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBhcyBhbiBleGVyY2lzZSBmb3IgdGhlIHJlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9jbG9ja3RpbWVfc2NhbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCB1dGlsIG1ldGhvZCBmb3Igc2NhbGluZyBhIGNsb2NrdGltZSBieSBhIGZyYWN0aW9uLiBVc2VmdWwKCSAgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBhcyBhbiBleGVyY2lzZSBmb3IgdGhlIHJlYWRlci4KCjIwMDUtMTEtMjIgMTQ6Mjk6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IElmIG5lZWRlZCwgYWxsb2NhdGUgc3RvcmFnZSBpbiB0aGUgZGVzdGluYXRpb24gdmFsdWUgZHVyaW5nIGNvbGxlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb25fcmFuZ2UpOgoJICBJZiBuZWVkZWQsIGFsbG9jYXRlIHN0b3JhZ2UgaW4gdGhlIGRlc3RpbmF0aW9uIHZhbHVlIGR1cmluZwoJICBjb2xsZWN0aW9uLgoKMjAwNS0xMS0yMiAxMzo1ODowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFJlbW92ZWQgR3N0VVJJICwgY2xvc2VzIGJ1ZyAjMzIxMDYxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5jOgoJICAqIGdzdC9nc3R1cml0eXBlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBSZW1vdmVkIEdzdFVSSSAsIGNsb3NlcyBidWcgIzMyMTA2MQoKMjAwNS0xMS0yMiAxMzoxNDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBPb3BzLCBicm9rZSBhdXRvbWF0aWMgc3RyaW5nIHR5cGUgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBPb3BzLCBicm9rZSBhdXRvbWF0aWMgc3RyaW5nIHR5cGUgcGFyc2luZy4KCSAgQWRkIGEgdGVzdCB0byBjYXRjaCBpdCBpbiBmdXR1cmUuCgoyMDA1LTExLTIyIDEzOjAyOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jIChnc3RfdGFnX3NldHRlcl9nZXRfdGFnX21lcmdlX21vZGUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYyAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19tZXJnZV9tb2RlKQoJICAoZ3N0X3RhZ19zZXR0ZXJfc2V0X3RhZ19tZXJnZV9tb2RlLCBnc3RfdGFnX3NldHRlcl9nZXRfdGFnX2xpc3QpOgoJICBBY3R1YWxseSByZW5hbWUgdGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9ucy4gR3JyLgoKMjAwNS0xMS0yMiAxMjo1MToxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICBmaXggYm9ya2VkIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJvcmtlZCBjb21taXQKCjIwMDUtMTEtMjIgMTI6MzU6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2NhcHNsaXN0Lmg6IENvbW1lbnQgdGVzdCBjYXNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgQ29tbWVudCB0ZXN0IGNhc2VzCgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFRlc3QgYXV0b21hdGljIHZhbHVlIHR5cGUgZGV0ZWN0aW9uIGluIGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIEFkZCBmcmFjdGlvbiBhcyBhIHR5cGUgd2UgdHJ5IGFuZCBndWVzcyBhdXRvbWF0aWNhbGx5IGluCgkgIGNhcHMvc3RydWN0dXJlIHN0cmluZ3MuCgoyMDA1LTExLTIyIDEyOjM1OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIHVwZGF0ZSB1cGRhdGUtZnVuY3MgZm9yIHRhZ3NldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVwZGF0ZS1mdW5jcyBmb3IgdGFnc2V0dGVyCgoyMDA1LTExLTIyIDEyOjIwOjA0ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuKjogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpIChnc3RfdGFnX3NldHRlcl9hZGRfdGFncywgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZXMpIChnc3RfdGFnX3NldC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggZ214IGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ3MsIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWVzKQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWxpc3QpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbGlzdF92YWx1ZXMpOiBSZW5hbWVkIGZyb20gX21lcmdlLCBfYWRkLAoJICBfYWRkX3ZhbHVlcywgX2FkZF92YWxpc3QsIGFuZCBfYWRkX3ZhbGlzdF92YWx1ZXMuIFNpbmNlIHRoaXMgaXMgYW4KCSAgaW50ZXJmYWNlIHRoZSBmdW5jdGlvbiBzdWZmaXhlcyBzaG91bGQgYmUgbW9yZSBleHBsaWNpdCBzbwoJICBsYW5ndWFnZSBiaW5kaW5nIGRvbid0IGVuZCB1cCB3aXRoIGVsZW1lbnQuYWRkX3ZhbGlzdCAtPgoJICBnc3RfdGFnX3NldHRlcl9hZGRfdmFsaXN0LCBmb3IgZXhhbXBsZS4gRml4ZXMgIzMyMjA2OS4KCjIwMDUtMTEtMjIgMTI6MTU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCB0aGUgc3RyZXNzIHRlc3QsIHRha2VzIHRvbyBsb25nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB2YWxncmluZCB0aGUgc3RyZXNzIHRlc3QsIHRha2VzIHRvbyBsb25nCgoyMDA1LTExLTIyIDExOjU2OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IEV4dGVuZCBjYXBzIHN0cmluZyB0ZXN0cyB0byBjaGVjayB0aGF0IGEgY2FwcyB0byBzdHJpbmcgY29udmVyc2lvbiBpcyByZXZlcnNpYmxlIGFuZCBwcm9kdWNlcyB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFeHRlbmQgY2FwcyBzdHJpbmcgdGVzdHMgdG8gY2hlY2sgdGhhdCBhIGNhcHMgdG8gc3RyaW5nCgkgIGNvbnZlcnNpb24gaXMgcmV2ZXJzaWJsZSBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgY2Fwcy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbHVlX2dldF9nZW5lcmljX3R5cGUpOgoJICBPdXRwdXQgImZyYWN0aW9uIiBhcyB0aGUgZ2VuZXJpYyB0eXBlIGZyYWN0aW9uIHJhbmdlLCBzbyBjYXBzCgkgIHNlcmlhbGlzYXRpb24gYW5kIGRlc2VyaWFsaXNhdGlvbiB3b3Jrcy4KCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIFN1cHBvcnQgJ01JTicgYW5kICdNQVgnIGZvciBkZXNlcmlhbGlzaW5nIGZyYWN0aW9ucy4KCjIwMDUtMTEtMjIgMTE6NTA6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgTWlub3IgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1pbm9yIGRvYyBmaXguCgoyMDA1LTExLTIyIDExOjQ4OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCkgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCwgZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQsIGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUsIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCk6CgkgIFJlbmFtZWQgZnJvbSAqX25ld3NlZ21lbnQsICpfYnVmZmVyc2l6ZSwgKl9ub3RhcmdldC4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6IE5ldyBzY3JpcHQsIHBlcmZvcm1zIHRoZSBjaGFuZ2VzCgkgIGxpc3RlZCBhYm92ZS4KCjIwMDUtMTEtMjIgMTE6MjU6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN1cmUgdGhlIEdzdEZsb3dSZXR1cm4gaXMgcmV0dXJuZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBNYWtlIHN1cmUgdGhlIEdzdEZsb3dSZXR1cm4gaXMgcmV0dXJuZWQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIGFkZCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbC4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFNtYWxsIHN0eWxlIGNsZWFudXAuCgoyMDA1LTExLTIyIDEwOjI0OjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jOiBCbG9jayB0aGUgZmFrZXNyYyBzcmNwYWQgd2hlbiB3ZSBzZW5kIGFuIGV2ZW50LCB0byBhdm9pZCBjb250ZW50aW9uIG9uIHRoZSBzdHJlYW1fbG9jayBjYXVzaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBCbG9jayB0aGUgZmFrZXNyYyBzcmNwYWQgd2hlbiB3ZSBzZW5kIGFuIGV2ZW50LCB0byBhdm9pZAoJICBjb250ZW50aW9uIG9uIHRoZSBzdHJlYW1fbG9jayBjYXVzaW5nIHJhbmRvbSB0ZXN0IGZhaWx1cmVzLgoKMjAwNS0xMS0yMiAwOTo0MjoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc3VidHJhY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX3N1YnRyYWN0KToKCSAgRml4IHN1YnRyYWN0aW9uLgoKMjAwNS0xMS0yMiAwOTozNToyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5oOiBpbmNsdWRlICJnc3RjaGlsZHByb3h5LmgiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuaDoKCSAgaW5jbHVkZSAiZ3N0Y2hpbGRwcm94eS5oIgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVECgoyMDA1LTExLTIxIDIzOjU0OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEltcGxlbWVudCBmcmFjdGlvbiByYW5nZXMgYW5kIGV4dGVuZCBHc3RGcmFjdGlvbiB0byBzdXBwb3J0IGFyaXRobWV0aWMgc3VidHJhY3Rpb24sIGFzIHdlbGwgYXMgZGVzZXJpYWxpemF0aW9uIGZyb20gaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3JhbmdlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbml0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9mcmVlX2ZyYWN0aW9uX3JhbmdlKSwgKGdzdF92YWx1ZV9jb3B5X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9sY29weV9mcmFjdGlvbl9yYW5nZSksIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2VfZnVsbCksCgkgIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX3JhbmdlX21pbiksCgkgIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX3JhbmdlX21heCksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fZnJhY3Rpb25fcmFuZ2Vfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb24pLCAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX211bHRpcGx5KSwKCSAgKGdzdF92YWx1ZV9mcmFjdGlvbl9zdWJ0cmFjdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZnJhY3Rpb24pLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgSW1wbGVtZW50IGZyYWN0aW9uIHJhbmdlcyBhbmQgZXh0ZW5kIEdzdEZyYWN0aW9uIHRvIHN1cHBvcnQKCSAgYXJpdGhtZXRpYyBzdWJ0cmFjdGlvbiwgYXMgd2VsbCBhcyBkZXNlcmlhbGl6YXRpb24gZnJvbSBpbnRlZ2VyCgkgIHN0cmluZ3Mgc3VjaCBhcyAiMTAwIgoJICBBZGQgYSB0ZXN0c3VpdGUgYXMgZm9yIGludCBhbmQgZG91YmxlIHJhbmdlIHNldCBvcGVyYXRpb25zCgoyMDA1LTExLTIxIDE5OjU4OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBBZGQgZ2xpYi1jb21wYXQuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDogQWRkIGdsaWItY29tcGF0LmguCgoyMDA1LTExLTIxIDE5OjEzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggZm9yICMzMjE1OTUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCBmb3IgIzMyMTU5NQoKMjAwNS0xMS0yMSAxOTowMDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IEFuZCBhZGQgYSBuaWNlIGRlZmluZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFuZCBhZGQgYSBuaWNlIGRlZmluZSB0b28uCgoyMDA1LTExLTIxIDE4OjUzOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuKjogTWFrZSBiaW5kaW5nIGZyaWVuZGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSksIChnc3Rfc2VnbWVudF9nZXRfdHlwZSksCgkgIChnc3Rfc2VnbWVudF9uZXcpLCAoZ3N0X3NlZ21lbnRfZnJlZSksIChnc3Rfc2VnbWVudF9pbml0KSwKCSAgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksCgkgIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNYWtlIGJpbmRpbmcgZnJpZW5kbHkuCgoyMDA1LTExLTIxIDE4OjQxOjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBTcHJpbmtsZSBOVUxMX1RFUk1JTkFURUQgdG8gdGFzdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3R1dGlscy5oOiBTcHJpbmtsZSBOVUxMX1RFUk1JTkFURUQgdG8gdGFzdGUuCgoyMDA1LTExLTIxIDE4OjI3OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogTmV3IGVycm9yIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaCAoR1NUX0NPUkVfRVJST1JfTUlTU0lOR19QTFVHSU4pOiBOZXcgZXJyb3IKCSAgY2F0ZWdvcnkuCgoyMDA1LTExLTIxIDE4OjE2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW0gKGdzdF9oZWFkZXJzKTogQWRkIGdsaWItY29tcGF0LmguIG5vaW5zdCB0aGUgLXByaXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbSAoZ3N0X2hlYWRlcnMpOiBBZGQgZ2xpYi1jb21wYXQuaC4KCSAgKG5vaW5zdF9IRUFERVJTKTogbm9pbnN0IHRoZSAtcHJpdmF0ZS4KCjIwMDUtMTEtMjEgMTg6MTA6MTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IFJlbW92ZSB1bmltcGxlbWVudGVkIGRlY2xhcmF0aW9ucyBmb3Igd2hpY2ggd2UgY2FuIHNlZSBubyBzZW5zaWJsZSB1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmVtb3ZlIHVuaW1wbGVtZW50ZWQgZGVjbGFyYXRpb25zIGZvciB3aGljaCB3ZSBjYW4gc2VlIG5vIHNlbnNpYmxlCgkgIHVzZS4KCjIwMDUtMTEtMjEgMTg6MDM6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuaDogSW5jbHVkZSBnbGliLWNvbXBhdC5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ2xpYi1jb21wYXQuaC4KCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDogQWRkIEdfR05VQ19OVUxMX1RFUk1JTkFURUQuCgkgICogZ3N0L2dsaWItY29tcGF0LmM6IEluY2x1ZGUgdGhlIHB1YmxpYyBhbmQgdGhlIHByaXZhdGUgaGVhZGVyLgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6IENvcGllZCBoZXJlIGZyb20gZ2xpYi1jb21wYXQuaC4KCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IHMvZ2xpYi1jb21wYXQvZ2xpYi1jb21wYXQtcHJpdmF0ZS8uCgoyMDA1LTExLTIxIDE3OjIxOjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYyAoY3JlYXRlX2N1c3RvbV9ldmVudHMpOiBDaGVjayB0aGF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jIChjcmVhdGVfY3VzdG9tX2V2ZW50cyk6IENoZWNrIHRoYXQKCSAgRkxVU0hfU1RPUCBpcyBzZXJpYWxpemVkLgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmMgKGV2ZW50X2Z1bmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAoZXZlbnRfZnVuYyk6IE5vIHN0cmVhbSBsb2NrLCB0aGUgY29yZQoJICB0YWtlcyBpdC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6IE5vIG1vcmUKCSAgc3RyZWFtIGxvY2sgdGFraW5nLCB5YXkuCgkgICogZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GTFVTSF9TVE9QKTogTWFya2VkIGFzIHNlcmlhbGl6ZWQgdG8KCSAgZW5zdXJlIHRoYXQgY29yZSB0YWtlcyB0aGUgc3RyZWFtIGxvY2suCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZG9fc2Vlayk6IFVwZGF0ZSBmb3Igc3RyZWFtCgkgIGxvY2sgbmFtZSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6IE5vIG5lZWQgdG8gdGFrZQoJICB0aGUgc3RyZWFtIGxvY2sgZm9yIEVPUywgTkVXU0VHTUVOVCwgb3IgRkxVU0hfU1RPUCwgdGhlIGNvcmUgZG9lcwoJICBpdCBhbHJlYWR5LiBGb3IgdGhlIGZsdXNoIHN0YXJ0IHdlIGRvIHRha2UgaXQgdGhvdWdoIHNvIHdlIGdldCB0aGUKCSAgcmlnaHQgcHJlcm9sbCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMuCgkgICogZ3N0L2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpOiBObyBuZWVkIHRvIHRha2UKCSAgdGhlIHN0cmVhbSBsb2NrIGhlcmUsIHRoZSBjb3JlIGRvZXMgaXQgZm9yIHVzLgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9HRVRfU1RSRUFNX0xPQ0spOiBSZW5hbWVkIGZyb20KCSAgR1NUX1NUUkVBTV9HRVRfTE9DSy4KCSAgKEdTVF9QQURfU1RSRUFNX0xPQ0ssIEdTVF9QQURfU1RSRUFNX1RSWUxPQ0spCgkgIChHU1RfUEFEX1NUUkVBTV9VTkxPQ0ssIEdTVF9QQURfU1RSRUFNX1VOTE9DS19GVUxMKQoJICAoR1NUX1BBRF9TVFJFQU1fTE9DS19GVUxMKTogUmVuYW1lZCBmcm9tIEdTVF9TVFJFQU1fKi4KCSAgKEdTVF9QQURfR0VUX1BSRVJPTExfTE9DSyk6IFJlbmFtZWQgZnJvbSBHU1RfUFJFUk9MTF9HRVRfTE9DSy4KCSAgKEdTVF9QQURfUFJFUk9MTF9MT0NLLCBHU1RfUEFEX1BSRVJPTExfVFJZTE9DSykKCSAgKEdTVF9QQURfUFJFUk9MTF9VTkxPQ0spOiBSZW5hbWVkIGZyb20gR1NUX1BSRVJPTExfKi4KCSAgKiBnc3QvZ3N0cGFkLmM6IFVwZGF0ZSBmb3Igc3RyZWFtIGxvY2sgbmFtZSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXBkYXRlIGZvciBwcmVyb2xsIGxvY2sgbmFtZSBjaGFuZ2UuCgoyMDA1LTExLTIxIDE3OjEyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ29udmVydCBDbG9jayBmbGFncyB0byBvYmplY3QgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZ3N0X2Nsb2NrX2dldF9tYXN0ZXIpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KToKCSAgQ29udmVydCBDbG9jayBmbGFncyB0byBvYmplY3QgZmxhZ3MuCgkgIEFkZGVkIG1ldGhvZHMgdG8gbWFuYWdlIG1hc3Rlci9zbGF2ZSBjbG9ja3MuCgoyMDA1LTExLTIxIDE3OjA5OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMsIHJlcGxhY2UgY29kZSBpbiBwbHVnaW5zIHdpdGggc2VnbWVudCBoZWxwZXIgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcywgcmVwbGFjZSBjb2RlIGluIHBsdWdpbnMgd2l0aCBzZWdtZW50CgkgIGhlbHBlciBmdW5jdGlvbnMuCgoyMDA1LTExLTIxIDE2OjQ2OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiBEb24ndCBpZ25vcmUgc3NjYW5mIHJlc3VsdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfdXJpX3NldF91cmkpOgoJICBEb24ndCBpZ25vcmUgc3NjYW5mIHJlc3VsdHMKCjIwMDUtMTEtMjEgMTY6NDE6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuaCAoR1NUX0lTX1BBRF9GQVNUKTogUmVtb3ZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfSVNfUEFEX0ZBU1QpOiBSZW1vdmVkLgoKMjAwNS0xMS0yMSAxNjozNDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgKi4qOiBSYW4gc2NyaXB0cy91cGRhdGUtbWFjcm9zLiBPaCB5ZXMuIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9HRVRfTE9DSywgR1NUX09CSkVDVF9MT0NLKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiAqLmg6CgkgICogKi5jOiBSYW4gc2NyaXB0cy91cGRhdGUtbWFjcm9zLiBPaCB5ZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX0dFVF9MT0NLLCBHU1RfT0JKRUNUX0xPQ0spCgkgIChHU1RfT0JKRUNUX1RSWUxPQ0ssIEdTVF9PQkpFQ1RfVU5MT0NLKTogUmVuYW1lZCBmcm9tCgkgIEdTVF9HRVRfTE9DSywgZXRjLgoJICAqIHNjcmlwdHMvdXBkYXRlLW1hY3JvczogTmV3IHNjcmlwdC4gUnVuIGl0IG9uIHlvdXIgZmlsZXMgdG8KCSAgY2hhbmdlIEdTVF9MT0NLIHRvIEdTVF9PQkpFQ1RfTE9DSywgYW5kIHRoZSBzYW1lIGZvciBVTkxPQ0sgYXMKCSAgd2VsbC4KCjIwMDUtMTEtMjEgMTU6NDc6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBmaXhlcywgYWRkIG5ldyBhcGkgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBtb3JlIGRvY3MgZml4ZXMsIGFkZCBuZXcgYXBpIHRvIHRoZSBkb2NzCgoyMDA1LTExLTIxIDE1OjAxOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOiBXaW0gY2xhaW1zIEkgY2FuIHJlbW92ZSB0aGlzIHN0YXRlX2Jyb2FkY2FzdCBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOiBXaW0gY2xhaW1zIEkgY2FuIHJlbW92ZSB0aGlzCgkgIHN0YXRlX2Jyb2FkY2FzdCBjYWxsLgoKMjAwNS0xMS0yMSAxNDo1MzozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYyAoZ3N0X3NlZ21lbnRfaW5pdCk6IEluaXRpYWxpemUgYWJzX3JhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RzZWdtZW50LmMgKGdzdF9zZWdtZW50X2luaXQpOiBJbml0aWFsaXplIGFic19yYXRlLgoKMjAwNS0xMS0yMSAxNDo1Mjo1NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IHdyb25nIGZ1bmN0aW9uIGNhbGxzIGZvciBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW50ZXJzZWN0X2FycmF5KTogRml4IHdyb25nCgkgIGZ1bmN0aW9uIGNhbGxzIGZvciBhcnJheXMuCgoyMDA1LTExLTIxIDE0OjUwOjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OiB3aWxkIGlkZWEsIGNhbiB0aGlzIGJlIGRvbmU/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgIHdpbGQgaWRlYSwgY2FuIHRoaXMgYmUgZG9uZT8KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyBmaXhlcyBhbmQgYWRkaXRpb25zCgoyMDA1LTExLTIxIDE0OjQxOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR1NUX0xJVkVfQlJPQURDQVNULCBHU1RfTElWRV9TSUdOQUwpIChHU1RfTElWRV9USU1FRF9XQUlULCBHU1RfTElWRV9XQUlULCBHU1RfTElWRV9HRVRfQ09ORCkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdTVF9MSVZFX0JST0FEQ0FTVCwgR1NUX0xJVkVfU0lHTkFMKQoJICAoR1NUX0xJVkVfVElNRURfV0FJVCwgR1NUX0xJVkVfV0FJVCwgR1NUX0xJVkVfR0VUX0NPTkQpCgkgIChHU1RfTElWRV9VTkxPQ0ssIEdTVF9MSVZFX1RSWUxPQ0ssIEdTVF9MSVZFX0xPQ0spCgkgIChHU1RfTElWRV9HRVRfTE9DSyk6IE1vdmVkIGhlcmUgZnJvbSBnc3RiYXNlc3JjLmguIFRoZXkgYXJlCgkgIHByaXZhdGUgdG8gdGhlIGJhc2VzcmMgaW1wbGVtZW50YXRpb24uCgoyMDA1LTExLTIxIDE0OjM0OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2VuZF9ldmVudCk6IERvYyBtb3JlLiBUYWtlIHN0cmVhbSBsb2NrIG9uIGJlaGFsZiBvZiBldmVudCBmdW5jdGlvbiBpZiBuZWNlc3NhcnkuIEl0IHNob3VsZCBubyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NlbmRfZXZlbnQpOiBEb2MgbW9yZS4gVGFrZSBzdHJlYW0gbG9jayBvbgoJICBiZWhhbGYgb2YgZXZlbnQgZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LiBJdCBzaG91bGQgbm8gbG9uZ2VyIGJlCgkgIG5lY2Vzc2FyeSB0byB0YWtlIHRoZSBzdHJlYW0gbG9jayBpbiBwYWQncyBldmVudCBmdW5jdGlvbnMuIEZpeGVzCgkgICMzMjAyOTkuCgoyMDA1LTExLTIxIDE0OjI4OjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKiAoIzMyMjAyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ludCksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2RvdWJsZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9ib29sZWFuKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSAgUmVuYW1lIGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfKiB0byBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qCgkgICgjMzIyMDI3KQoKMjAwNS0xMS0yMSAxNDoyNToyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuKjogUG9ydCBmZDovLyBVUkkgaGFuZGxlciBmcm9tIDAuOCB0byBmZHNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKF9kb19pbml0KSwgKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19kaXNwb3NlKSwgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zkc3JjX3VyaV9nZXRfdHlwZSksIChnc3RfZmRzcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2Zkc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9mZHNyY191cmlfc2V0X3VyaSksCgkgIChnc3RfZmRzcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFBvcnQgZmQ6Ly8gVVJJIGhhbmRsZXIgZnJvbSAwLjggdG8gZmRzcmMKCjIwMDUtMTEtMjEgMTM6MjY6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcyBhbmQgbW9yZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RzZWdtZW50c19zdWl0ZSksCgkgIChtYWluKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMgYW5kIG1vcmUgY2hlY2tzLgoKMjAwNS0xMS0yMSAxMzoyNjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBEcm9wIGxlYWRpbmcgJyUnIGZyb20gR1NUX0ZPVVJDQ19GT1JNQVQsIHRodXMgbWFraW5nIGl0IGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgZm9ybWF0IGRlZmluZXMgKCMzMi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fZm91cmNjX3N0cmluZyksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZvdXJjYyk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIERyb3AgbGVhZGluZyAnJScgZnJvbSBHU1RfRk9VUkNDX0ZPUk1BVCwgdGh1cyBtYWtpbmcgaXQKCSAgY29uc2lzdGVudCB3aXRoIG91ciBvdGhlciBmb3JtYXQgZGVmaW5lcyAoIzMyMDMyNCkuCgoyMDA1LTExLTIxIDEzOjEyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJldmVydCBwcmV2aW91cyBjb21taXQuIFZhbHVlIGxpc3RzIGFyZSBieSBkZWZpbml0aW9uIG5vdCBmaXhlZCwgYXMgdGhleSBhcmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0LiBWYWx1ZSBsaXN0cyBhcmUgYnkgZGVmaW5pdGlvbgoJICBub3QgZml4ZWQsIGFzIHRoZXkgYXJlIGEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuCgoyMDA1LTExLTIxIDEzOjAzOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZJTExFUik6IFJlbW92ZWQuIENhbiBiZSBhZGRlZCBiYWNrIGR1cmluZyB0aGUgc3RhYmxlIHNlcmllcyBpZiB3ZSBuZWVkIGl0LiBGaXhlcyAjMzE5MTc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZJTExFUik6IFJlbW92ZWQuIENhbiBiZSBhZGRlZCBiYWNrCgkgIGR1cmluZyB0aGUgc3RhYmxlIHNlcmllcyBpZiB3ZSBuZWVkIGl0LiBGaXhlcyAjMzE5MTc4LgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfbmV3X2ZpbGxlcik6IFJlbW92ZWQuCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBjb21tZW50IGFib3V0IGZpbGxlciBldmVudHMuCgoyMDA1LTExLTIxIDEyOjQyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFNob3VsZCBoYW5kbGUgYm90aCB2YWx1ZSBhcnJheXMgYW5kIHZhbHVlIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFNob3VsZCBoYW5kbGUgYm90aCB2YWx1ZSBhcnJheXMgYW5kIHZhbHVlIGxpc3RzLgoKMjAwNS0xMS0yMSAxMjoyNzowMSArMDAwMCAgQWxlc3NhbmRybyBEZXNzaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pc19maXhlZCk6IFVzZSBnc3RfdmFsdWVfYXJyYXkgZnVuY3Rpb25zIHRvIGFjY2VzcyBhcnJheXMuIEZpeGVzICMzMjE5NjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogQWxlc3NhbmRybyBEZXNzaW5hIDxhbGVzc2FuZHJvIG5udmEgb3JnPgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaXNfZml4ZWQpOiBVc2UgZ3N0X3ZhbHVlX2FycmF5CgkgIGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXJyYXlzLiBGaXhlcyAjMzIxOTYyLgoKMjAwNS0xMS0yMSAxMToyNjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlID0+IGdzdF9jb2xsZWN0X3BhZHNfZ2V0X3R5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlID0+IGdzdF9jb2xsZWN0X3BhZHNfZ2V0X3R5cGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZW1vdmUgdW51c2VkIFNJR05BTF9IQU5ET0ZGIGVudW0uCgoyMDA1LTExLTIxIDExOjA2OjQyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoR3N0RXZlbnRUeXBlRmxhZ3MpOiBOZXcgZGF0YSB0eXBlLCB0aGUgZmxhZ3Mgb2YgdGhlIGV2ZW50IHR5cGUgKHVwc3RyZWFtLCBkb3duc3RyZWFtLCBzZXJpYWxpemVkKS4gUmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKEdzdEV2ZW50VHlwZUZsYWdzKTogTmV3IGRhdGEgdHlwZSwgdGhlIGZsYWdzIG9mCgkgIHRoZSBldmVudCB0eXBlICh1cHN0cmVhbSwgZG93bnN0cmVhbSwgc2VyaWFsaXplZCkuIFJlbmFtZWQKCSAgR1NUX0VWRElSXyogYW5kIEdTVF9FVlNFUiB0byBHU1RfRVZFTlRfVFlQRV8qLgoJICAoR3N0RXZlbnRUeXBlKTogVXNlIEdzdEV2ZW50VHlwZUZsYWdzLiBSZW5hbWUgQ1VTVE9NX1VQIHRvCgkgIENVU1RPTV9VUFNUUkVBTSwgQ1VTVE9NX0RTIHRvIENVU1RPTV9ET1dOU1RSRUFNLCBldGMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBmb3IgbmV3IENVU1RPTSBldmVudCBuYW1lcy4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGNoZWNrIGZvciBuZXcgQ1VTVE9NIGV2ZW50IG5hbWVzLgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfdHlwZV9nZXRfZmxhZ3MpOiBOZXcgZnVuY3Rpb24uIEZpeGVzCgkgIGJ1ZyAjMzE5MzkyLgoKMjAwNS0xMS0yMSAxMTowMDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJlbmFtZSBnc3RfY29sbGVjcGFkc19mb28oKSA9PiBnc3RfY29sbGVjdF9wYWRzX2ZvbygpLiBEb2N1bWVudCB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucyBhcyB1bmltcGxlbWVudGVkICgjMzIwNzY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdF9wYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdF9wYWRzX25ldyksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mdW5jdGlvbiksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfaXNfYWN0aXZlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCksIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3RfcmFuZ2UpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgUmVuYW1lIGdzdF9jb2xsZWNwYWRzX2ZvbygpID0+IGdzdF9jb2xsZWN0X3BhZHNfZm9vKCkuIERvY3VtZW50CgkgIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zIGFzIHVuaW1wbGVtZW50ZWQgKCMzMjA3NjYpLgoKMjAwNS0xMS0yMSAxMDo0MTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEltcHJvdmUgZG9jcyBmb3IgRFVSQVRJT04gbWVzc2FnZSAodXNhZ2Ugb2YgZHVyYXRpb24gcGFyYW1ldGVyKSAoIzMyMDExMykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgSW1wcm92ZSBkb2NzIGZvciBEVVJBVElPTiBtZXNzYWdlICh1c2FnZSBvZiBkdXJhdGlvbiBwYXJhbWV0ZXIpCgkgICgjMzIwMTEzKQoKMjAwNS0xMS0yMSAxMDowNDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDUtMTEtMjEgMDk6NDQ6NDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IC5wYyBmaWxlIHRvIHNwZWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgLnBjIGZpbGUgdG8gc3BlYwoKMjAwNS0xMS0yMCAxOToxMTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIHNlZ21lbnQgaGVscGVyIHN0cnVjdHVyZSBhbmQgbWV0aG9kcy4gTm90IGZ1bGx5IGltcGxlbWVudGVkIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGV2ZW50c19zdWl0ZSksCgkgIChtYWluKToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQWRkZWQgc2VnbWVudCBoZWxwZXIgc3RydWN0dXJlIGFuZCBtZXRob2RzLiBOb3QgZnVsbHkgaW1wbGVtZW50ZWQKCSAgeWV0LgoJICBBZGRlZCBzZWdtZW50IGNoZWNrLgoKMjAwNS0xMS0yMCAxNzoxMjo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIGEgZGVzZXJpYWxpc2F0aW9uIHRlc3QgZm9yIGZyYWN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCBhIGRlc2VyaWFsaXNhdGlvbiB0ZXN0IGZvciBmcmFjdGlvbnMKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAobWFrZV9waXBlbGluZSksIChtYWluKToKCSAgRml4IHVwIG1ldGFkYXRhIHJlYWRpbmcgc2FtcGxlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBEZWJ1ZyBmb3JtYXQgZml4CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgRG9uJ3QgdHJ5IGFuZCBmaXhhdGUgZW1wdHkgY2FwcwoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBXcmFwIGluIEdfQkVHSU5fREVDTFMvR19FTkRfREVDTFMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb24pLCAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5vbWluYXRvciksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIEFkZCBzb21lIGV4dHJhIGd1YXJkcyB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBlbmQgdXAKCSAgd2l0aCBhbiBpbnZhbGlkIGRlbm9taW5hdG9yIG9mIDAgaW4gYSBnc3RmcmFjdGlvbiBhbmQKCSAgdGhhdCBmcmFjdGlvbnMgYWx3YXlzIGdldCByZWR1Y2VkLgoKMjAwNS0xMS0yMCAxNDo1NjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBjaGFuZ2Vsb2cgaW4gbGFzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggY2hhbmdlbG9nIGluIGxhc3QgY29tbWl0CgoyMDA1LTExLTIwIDE0OjUwOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMjAgMTM6Mjg6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIGEgcHJvcGVyIGVudW0gb2YgdGhlIGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgTWFrZSBhIHByb3BlciBlbnVtIG9mIHRoZSBmbGFnLgoKMjAwNS0xMS0xOSAxODo1NzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCB0eXBlIHRvIHF1YXJrIGFuZCB0eXBlIHRvIHN0cmluZyBjb252ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKSwgKGdzdF9mb3JtYXRfZ2V0X25hbWUpLAoJICAoZ3N0X2Zvcm1hdF90b19xdWFyayksIChnc3RfZm9ybWF0X3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpLAoJICAoZ3N0X3F1ZXJ5X3R5cGVfZ2V0X25hbWUpLCAoZ3N0X3F1ZXJ5X3R5cGVfdG9fcXVhcmspLAoJICAoZ3N0X3F1ZXJ5X3R5cGVfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgdHlwZSB0byBxdWFyayBhbmQgdHlwZSB0byBzdHJpbmcgY29udmVyc2lvbnMuCgoyMDA1LTExLTE5IDE4OjMyOjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRkxBR19PUklHSU5BTCk6IFJlbW92ZWQuIEZpeGVzICMzMjAwOTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GTEFHX09SSUdJTkFMKTogUmVtb3ZlZC4gRml4ZXMKCSAgIzMyMDA5Ny4KCjIwMDUtMTEtMTkgMTg6Mjg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIG1lc3NhZ2UgaGFuZGxpbmcgb3ZlcnJpZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIE1ha2UgbWVzc2FnZSBoYW5kbGluZyBvdmVycmlkYWJsZS4KCjIwMDUtMTEtMTkgMTg6MjY6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9JU19VU0FCTEUpOiBSZW1vdmVkLiBGaXhlcyAjMzIxMjM1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfSVNfVVNBQkxFKTogUmVtb3ZlZC4gRml4ZXMgIzMyMTIzNS4KCjIwMDUtMTEtMTkgMTg6MTc6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay4qOiBDaGFuZ2UgcmVzb2x1dGlvbiB0byBiZSBhIEdzdENsb2NrVGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGNsb2NrLmMgKEdzdENsb2NrLCBHc3RDbG9ja0NsYXNzKTogQ2hhbmdlIHJlc29sdXRpb24gdG8KCSAgYmUgYSBHc3RDbG9ja1RpbWUuCgkgIChnc3RfY2xvY2tfc2V0X3Jlc29sdXRpb24sIGdzdF9jbG9ja19nZXRfcmVzb2x1dGlvbik6IFJlc29sdXRpb24KCSAgaXMgYSBHc3RDbG9ja1RpbWUuIEZpeGVzICMzMjE3MTAuCgoyMDA1LTExLTE5IDE4OjA2OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgb2Zmc2V0IHByb3BlcnR5LiBBZGQgaW50ZXJuYWxfY2FsaWJyYXRpb24gYW5kIGV4dGVybmFsX2NhbGlicmF0aW9uLiBGaXggcGFkZGluZy4gUGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIG9mZnNldCBwcm9wZXJ0eS4gQWRkCgkgIGludGVybmFsX2NhbGlicmF0aW9uIGFuZCBleHRlcm5hbF9jYWxpYnJhdGlvbi4gRml4IHBhZGRpbmcuIFBhZAoJICBhbHNvIGJ5IEdzdENsb2NrVGltZSBzbyB3ZSBkb24ndCBydW4gaW50byBwcm9ibGVtcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCk6IFJlbW92ZS4KCSAgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOiBSZW1vdmUuCgkgIChnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0KTogUmVtb3ZlLiBGaXhlcyAjMzIxNzEyLgoKMjAwNS0xMS0xOSAxNzo1MDo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF93YWl0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCkKCSAgKGdfc3RhdGljX3JlY19jb25kX3RpbWVkX3dhaXQpOiBSZW1vdmVkLCBubyBsb25nZXIgbmVlZGVkLgoJICAqIGdzdC9nc3RiaW4uYzogUmVtb3ZlIHRlcnJpYmxlIGNvbnRpbnVlX3N0YXRlIHByb3RvdHlwZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSk6IE1ha2UgcHVibGljLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKTogUmVtb3ZlZCwgcmVwbGFjZWQKCSAgYnkgY29udGludWVfc3RhdGUuIEZpeGVzICMzMTkzODkuCgoyMDA1LTExLTE5IDE3OjI4OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXhGaWx0ZXIpOiBBY3R1YWxseSBwYXNzIG9uIHRoZSB1c2VyX2RhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleEZpbHRlcik6IEFjdHVhbGx5IHBhc3Mgb24gdGhlIHVzZXJfZGF0YS4KCSAgUmVhbGx5IGZpeGVzICMxNjg0MzguIEhvd2V2ZXIgSSBkb24ndCBzZWUgYW55d2hlcmUgd2hlcmUgdGhlCgkgIGZpbHRlciBmdW5jdGlvbiBpcyBjYWxsZWQuLi4gc3R1cGlkIEdTdHJlYW1lci4uLgoKMjAwNS0xMS0xOSAxNzoyNjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4KTogQWRkIGZpZWxkIGZvciB1c2VyX2RhdGFfZGVzdHJveS4gV2UgZG9uJ3QgaGF2ZSBhIGRpc3Bvc2UgZnVuY3Rpb24sIHNvIGl0IHdvbid0IGdldCBjYWxsZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleCk6IEFkZCBmaWVsZCBmb3IgdXNlcl9kYXRhX2Rlc3Ryb3kuIFdlCgkgIGRvbid0IGhhdmUgYSBkaXNwb3NlIGZ1bmN0aW9uLCBzbyBpdCB3b24ndCBnZXQgY2FsbGVkIHdoZW4gdGhlCgkgIG9iamVjdCBpcyB1bnJlZmZlZCwgYnV0IG9oIHdlbGwhCgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9zZXRfZmlsdGVyX2Z1bGwpOiBOZXcgQVBJIGZ1bmN0aW9uLAoJICBhbGxvd3MgYSBkZXN0cm95IGZ1bmN0aW9uIHRvIGJlIHNldCBzbyB1c2VyX2RhdGEgY2FuIGJlIGZyZWVkLgoJICBGaXhlcyAjMTY4NDM4LgoJICAoZ3N0X2luZGV4X3NldF9maWx0ZXIpOiBDYWxsIGdzdF9pbmRleF9zZXRfZmlsdGVyX2Z1bGwuCgoyMDA1LTExLTE5IDE3OjA4OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYyAodGVzdF9zdHJpbmcpOiBBZGQgdGVzdCBmb3IgYnVnICMxNjU2NTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jICh0ZXN0X3N0cmluZyk6IEFkZCB0ZXN0IGZvciBidWcgIzE2NTY1MC4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3N0cmluZ193cmFwKTogVHJ5aW5nIHRvIHNlcmlhbGl6ZSBhIE5VTEwKCSAgc3RyaW5nIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yLCBnaXZlbiB0aGUgbGFjayBvZiBhIHdheSB0bwoJICByZXByZXNlbnQgTlVMTCBzdHJpbmdzLiBGaXhlcyAjMTY1NjUwLgoKMjAwNS0xMS0xOSAxNjo0NjozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmg6IGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX3ZhbHVlKSAoZ3N0X3ZhbHVlX2FycmF5X3ByZXBlbmRfdmFsdWUsIGdzdF92YWx1ZV9hcnJheV9nZXRfc2l6ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfdmFsdWUpCgkgIChnc3RfdmFsdWVfYXJyYXlfcHJlcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2FycmF5X2dldF9zaXplKQoJICAoZ3N0X3ZhbHVlX2FycmF5X2dldF92YWx1ZSk6IE5ldyBBUEksIGNvcGllZCBmcm9tCgkgIGdzdF92YWx1ZV9saXN0XyosIG9ubHkgb3BlcmF0ZXMgb24gYXJyYXlzLgoJICAoZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfbGlzdF9wcmVwZW5kX3ZhbHVlKQoJICAoZ3N0X3ZhbHVlX2xpc3RfY29uY2F0LCBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSkKCSAgKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSk6IE9ubHkgb3BlcmF0ZSBvbiBsaXN0cy4gRml4ZXMgIzE1NjYzMy4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2luaXRfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbQoJICBpbml0X2xpc3QsIGJlY2F1c2UgaXQgd29ya3Mgb24gYm90aC4KCSAgKGNvcHlfZ2FycmF5X29mX2dzdHZhbHVlKTogUmVuYW1lZCBmcm9tIGdzdF92YWx1ZV9saXN0X2NvcHlfYXJyYXkuCgkgIChnc3RfdmFsdWVfY29weV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvcHlfbGlzdC4KCSAgKGdzdF92YWx1ZV9mcmVlX2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gZnJlZV9saXN0LgoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb2xsZWN0X2xpc3QuCgkgIChnc3RfdmFsdWVfbGNvcHlfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBsY29weV9saXN0LgoJICAoZ3N0X3ZhbHVlX2xpc3Rfb3JfYXJyYXlfcGVla19wb2ludGVyKTogUmVuYW1lZCBmcm9tCgkgIGxpc3RfcGVla19wb2ludGVyLgoJICAoX2dzdF92YWx1ZV9hcnJheV92YWx1ZV90YWJsZSwgX2dzdF92YWx1ZV9saXN0X3ZhbHVlX3RhYmxlKToKCSAgVXBkYXRlIHZhbHVlIHRhYmxlIGZ1bmN0aW9ucy4KCSAgKGdzdF92YWx1ZV9jb21wYXJlX2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29tcGFyZV9saXN0LgoKMjAwNS0xMS0xOSAxNjowNToxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0dGFnbGlzdC5oOiBXaG9vcHMsIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJucyB2b2lkLiBBbHNvIGZpeCBzb21lIGNvbnN0bmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0dGFnbGlzdC5oOiBXaG9vcHMsIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJucyB2b2lkLiBBbHNvIGZpeAoJICBzb21lIGNvbnN0bmVzcy4KCjIwMDUtMTEtMTkgMTU6NTE6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IE9wZXJhdGVzIG9uIGEgY29uc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oIChnc3RfdGFnX2xpc3RfZm9yZWFjaCk6IE9wZXJhdGVzIG9uIGEgY29uc3QKCSAgR3N0VGFnTGlzdCouIEZpeGVzICMxNDM0NzIuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOiBDbGFyaWZ5IHdoYXQgdGhlIGZvcmVhY2gvbWFwIGZ1bmN0aW9ucyBjYW4KCSAgb3IgY2FuJ3QgZG8gdG8gdGhlaXIgYXJndW1lbnRzLgoKMjAwNS0xMS0xOCAxOToyMTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBEb2MgYW5kIEFQSSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKSwKCSAgKGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pOgoJICBEb2MgYW5kIEFQSSBmaXhlcy4KCSAgQ2FsbGlicmF0aW9uIGNhbiBiZSBzZXQgd2l0aCBpbnRlcm5hbCB0aW1lIGVxdWFsIHRvIGN1cnJlbnQKCSAgaW50ZXJuYWwgdGltZSB0b28uCgoyMDA1LTExLTE4IDE4OjU1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlcnJvci4qOiBkb2N1bWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZG9jdW1lbnQKCjIwMDUtMTEtMTggMTg6Mzg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IG9uIHJlcXVpcmVtZW50cyBmb3IgbW92aW5nIHBsdWdpbnMgdG8gZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgb24gcmVxdWlyZW1lbnRzIGZvciBtb3ZpbmcgcGx1Z2lucyB0byBnb29kCgoyMDA1LTExLTE4IDE2OjI0OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBBZGQgbmV0IHBrZ2NvbmZpZyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbTogQWRkIG5ldCBwa2djb25maWcgZmlsZXMuCgoyMDA1LTExLTE4IDE2OjA0OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBkb2NzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3MgZml4ZXMKCjIwMDUtMTEtMTggMTU6NTI6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogVHVybiBvZmYgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFR1cm4gb2ZmIGRlYnVnZ2luZy4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFzc2VydCB0aGF0IHRoZQoJICB0aW1lcyBjb25udmVyZ2Ugc29tZXdoYXQuIENhbid0IG1ha2UgYSByZWFsIHRlc3QuCgoyMDA1LTExLTE4IDE1OjMwOjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogVXNlIGFsbCBpbnRlZ2VyIGFyaXRobWV0aWMuIFJldHVybiB0aGUgbWluaW11bSBvZiB0aGUgZG9tYWluLCB3aGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChkb19saW5lYXJfcmVncmVzc2lvbik6IFVzZSBhbGwKCSAgaW50ZWdlciBhcml0aG1ldGljLiBSZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGRvbWFpbiwgd2hpY2ggY2FuIGJlCgkgIHNldCBhcyAiaW50ZXJuYWwiIGZvciBnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IENhbGwgX3NldF9jYWxpYnJhdGlvbi4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IENhbGwgX3NldF9jYWxpYnJhdGlvbiBpbnN0ZWFkIG9mCgkgIHJhdGVfb2Zmc2V0LgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogVXNlIHRoZSByaWdodAoJICBhZGp1c3RtZW50IGFwaS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbikKCSAgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOiBOZXcgZnVuY3Rpb25zLCBvYnNvbGV0ZSB0aGUgb25lcyBJCgkgIGFkZGVkIHllc3RlcmRheS4gRG9oLiBQcmVjaXNpb24gaXNzdWVzIG1lYW4gd2UgaGF2ZSB0byBleHRyYXBvbGF0ZQoJICBmcm9tIGEgcG9pbnQgaW4gdGhlIG1vcmUgcmVjZW50IHBhc3QgdGhhbiAxOTcwLgoJICAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCwgZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCk6IE1hcmsgYXMKCSAgb2Jzb2xldGUuCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogVXNlIHRoZSByaWdodCBjYWxpYnJhdGlvbiBkYXRhLgoKMjAwNS0xMS0xOCAxNDo0OToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFsc28gcmVzZXQgdGhlIC0+Y3VycmVudF8qIHZhbHVlcyBpbiBSRUFEWS0+UEFVU0VECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEFsc28gcmVzZXQgdGhlIC0+Y3VycmVudF8qIHZhbHVlcyBpbiBSRUFEWS0+UEFVU0VECgoyMDA1LTExLTE4IDE0OjEzOjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6IFdob29wcywgY2hlY2sgdGhlIHJpZ2h0IGZkLiBBbHNvIGFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBXaG9vcHMsIGNoZWNrIHRoZSByaWdodCBmZC4gQWxzbyBhZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogQWRqdXN0IGZvciBpbnQ2NCBvZmZzZXQuCgkgIChkb19saW5lYXJfcmVncmVzc2lvbik6IEFkZCBhIGNyYXBsb2FkIG9mIGRlYnVnZ2luZy4gU3VidHJhY3Qgb2ZmCgkgIHRoZSBtaW5pbXVtIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBzZXJpZXMgdG8gZGlzY2FyZCB1bm5lZWRlZCBiaXRzLgoJICBVc2Ugb25seSBpbnQgYXJpdGhtZXRpYy4gVGhlcmUgaXMgc3RpbGwgZG91YmxlIGFyaXRobWV0aWMgd2hlbgoJICBjYWxjdWxhdGluZyB0aGUgaW50ZXJjZXB0IHRoYXQgbmVlZHMgZml4aW5nLiBSZXR1cm4gYm9vbGVhbiB0bwoJICBpbmRpY2F0ZSBzdWNjZXNzOyBGQUxTRSB3b3VsZCBtZWFuIHRoZSBkb21haW4gb3IgcmFuZ2UgaXMgdG9vCgkgIGdyZWF0LiBTdGlsbCBuZWVkcyBmaXhlcy4KCjIwMDUtMTEtMTggMTM6MTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gc3RyZWFtIHRpbWUsIHdlIG5lZWQgdG8gc3VidHJhY3QgYWNjdW11bGF0ZWQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHN0cmVhbSB0aW1lLCB3ZSBuZWVkIHRvIHN1YnRyYWN0CgkgIGFjY3VtdWxhdGVkIHRpbWUuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCk6CgkgIFJlbGVhc2UgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb2YgYXN5bmMKCSAgZW50cmllcy4KCjIwMDUtMTEtMTggMTE6NTc6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6IFBvcnQgZ29lcyBhbGwgdGhlIHdheSB0byBNQVhVSU5UMTYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgIFBvcnQgZ29lcyBhbGwgdGhlIHdheSB0byBNQVhVSU5UMTYuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogTWFrZSB0aGUgcG9ydCByYW5nZSB0aGUgc2FtZSBhcwoJICBmb3IgdGhlIGtlcm5lbDogMCBhc3NpZ25zLCBvdGhlcndpc2UgcG9ydHMgYXJlIGxlc3MgdGhhbgoJICBNQVhVSU5UMTYuCgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBBZGFwdCBmb3IgMCA9PSBrZXJuZWwgYXNzaWducwoJICBwb3J0IGNoYW5nZS4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkZCB0aGUgc3RhcnQKCSAgb2YgYW5vdGhlciB0ZXN0LgoKMjAwNS0xMS0xOCAxMTowMzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogUmVtb3ZpbmcgYSBjbG9jayBwcm92aWRlciBmcm9tIGEgYmluLCB0cmlnZ2VycyBhIGNsb2NrIGxvc3QgbWVzc2FnZSBzbyB0aGF0IGEgbmV3IGNsb2NrIHdpbGwgYmUgc2VsZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUmVtb3ZpbmcgYSBjbG9jayBwcm92aWRlciBmcm9tIGEgYmluLCB0cmlnZ2VycyBhIGNsb2NrIGxvc3QgbWVzc2FnZQoJICBzbyB0aGF0IGEgbmV3IGNsb2NrIHdpbGwgYmUgc2VsZWN0ZWQuCgkgIEFkZGluZyBhIGNsb2NrIHRvIGEgYmluIHRyaWdnZXJzIGEgY2xvY2sgcHJvdmlkZXIgbWVzc2FnZS4KCSAgTWFrZSBzdXJlIHdlIHJlc2VsZWN0IGEgY2xvY2sgd2hlbiB3ZSByZWNlaXZlZCBhIGNsb2NrIGxvc3QgbWVzc2FnZS4KCSAgS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgZWxlbWVudCB0aGF0IHByb3ZpZGVkIHRoZSBjbG9jay4KCjIwMDUtMTEtMTggMTA6NTQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQWRqdXN0IHRoZSBjbG9jayBpbml0aWFsbHkgc28gaXQgcHJvZHVjZXMgdmFsdWVzIGFyb3VuZCB0aGUgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IEFkanVzdAoJICB0aGUgY2xvY2sgaW5pdGlhbGx5IHNvIGl0IHByb2R1Y2VzIHZhbHVlcyBhcm91bmQgdGhlIGJhc2UgdGltZS4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOiBUeXBvIGZpeC4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6IEFkZCBub3RlIG9uIHdoZW4gdGhlIHNvY2tldCBnZXRzCgkgIGNsb3NlZC4KCjIwMDUtMTEtMTcgMTg6NTA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEZyZWUgcmVtb3RlIGFuZCBsb2NhbCB0aW1lIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpOgoJICBGcmVlIHJlbW90ZSBhbmQgbG9jYWwgdGltZSBhcnJheXMuCgoyMDA1LTExLTE3IDE4OjE4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBGaXggY29tcGlsYXRpb24sIHVuaW5pdGlhbGl6ZWQgdmFycyBhbmQgYSBmb3Jnb3R0ZW4gY29udGludWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBGaXggY29tcGlsYXRpb24sIHVuaW5pdGlhbGl6ZWQgdmFycyBhbmQgYSBmb3Jnb3R0ZW4gY29udGludWUuCgoyMDA1LTExLTE3IDE3OjU1OjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay86IEFkZCBhIG1vc3QgbWluaW1hbCB0ZXN0IGZvciB0aGUgbmV0IGNsaWVudCBjbG9jay4gTW9yZSB0byBjb21lIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2hlY2tfUFJPR1JBTVMpOgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBBZGQgYSBtb3N0IG1pbmltYWwgdGVzdCBmb3IgdGhlCgkgIG5ldCBjbGllbnQgY2xvY2suIE1vcmUgdG8gY29tZSBsYXRlci4KCSAgKiBnc3QvbmV0L2dzdG5ldC5oOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06IEFkZCBuZXRjbGllbnRjbG9jay4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBOZXcgZmlsZXMsIGltcGxlbWVudCBhbiB1bnRlc3RlZAoJICBHc3RDbG9jayB0aGF0IHRha2VzIGl0cyB0aW1lIGZyb20gYSBuZXR3b3JrIHRpbWUgcHJvdmlkZXIuCgkgIEltcGxlbWVudHMgdGhlIGFsZ29yaXRobSBpbiBuZXR3b3JrLWNsb2NrLnNjbS4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKndpbmRvdy1zaXplKik6IFJlbmFtZSBmcm9tCgkgICpxdWV1ZS1sZW5ndGgqLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChuZXR3b3JrLXRpbWUpOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChxLXB1c2gpOiBVcGRhdGUgY2FsbGVycy4KCjIwMDUtMTEtMTcgMTY6MDI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFuZCB1bnJlZiB0aGUgY2hpbGQgdG9vLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyk6CgkgIEFuZCB1bnJlZiB0aGUgY2hpbGQgdG9vLi4KCjIwMDUtMTEtMTcgMTQ6NTE6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFJlZmFjdG9yIHRoZSBzb3J0IGl0ZXJhdG9yIHNvIGl0IGNhbiBiZSB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KSwgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICBSZWZhY3RvciB0aGUgc29ydCBpdGVyYXRvciBzbyBpdCBjYW4gYmUgdXNlZCB3aGlsZSBob2xkaW5nIHRoZQoJICBMT0NLIHRvby4KCSAgTWFrZSBjbG9jayBzZWxlY3Rpb24gc2VsZWN0IGEgY2xvY2sgY2xvc2VzdCB0byB0aGUgc291cmNlLgoKMjAwNS0xMS0xNyAxMjozNjozMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLio6IEFub255bW91cyBzdHJ1Y3RzIGFyZSBhIGdjYyAoYW5kIHNvbWUgb3RoZXIgY29tcGlsZXJzKSBleHRlbnNpb24sIHNvIGRvbid0IHVzZSB0aGVtLiBTaW5jZSB0aGlzIGlzIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksCgkgIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KSwgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBBbm9ueW1vdXMgc3RydWN0cyBhcmUgYSBnY2MgKGFuZCBzb21lIG90aGVyIGNvbXBpbGVycykgZXh0ZW5zaW9uLCBzbwoJICBkb24ndCB1c2UgdGhlbS4gU2luY2UgdGhpcyBpcyBvbmx5IGZvciBBQkktY29tcGF0aWJpbGl0eSwgYW5kIG91cgoJICBBUEkvQUJJIGZyZWV6ZSBpcyBvdmVyIGluIGEgZmV3IGRheXMsIHRoaXMgd2hvbGUgdGhpbmcgd2lsbCBvbmx5CgkgIGxhc3QgYSBmZXcgZGF5cywgc28gZG9uJ3QgYm90aGVyIHRyeWluZyB0byB0aGluayB1cCBhIG1lYW5pbmdmdWwKCSAgbmFtZSBmb3IgdGhlIHN0cnVjdC4KCjIwMDUtMTEtMTcgMTE6NTE6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IEFkZCByYXRlIGFuZCBvZmZzZXQgcHJvcGVydGllcywgcHJlc2VydmluZyBBQkkgc3RhYmlsaXR5LiBBZGQgcmF0ZS9vZmZzZXQgYWNjZXNzb3JzLiBXaWxsIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBBZGQgcmF0ZSBhbmQgb2Zmc2V0IHByb3BlcnRpZXMsCgkgIHByZXNlcnZpbmcgQUJJIHN0YWJpbGl0eS4gQWRkIHJhdGUvb2Zmc2V0IGFjY2Vzc29ycy4gV2lsbCBmaWxlIGJ1ZwoJICBmb3IgdGhlIGZyZWV6ZSBicmVhay4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IEltcGxlbWVudCB1c2luZyByYXRlCgkgIGFuZCBvZmZzZXQsIHRyeWluZyB0byBrZWVwIHByZWNpc2lvbiBhbmQgYXZvaWRpbmcKCSAgdW5kZXJmbG93L292ZXJmbG93LgoJICAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCwgZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6IE5ldwoJICBmdW5jdGlvbnMuIE1ha2UgZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCBvYnNvbGV0ZS4KCSAgKGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3QpOiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZS4KCSAgV2lsbCBmaWxlIGJ1ZyBzb29uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDogTWFrZSB0aGUgQUJJLXN0YWJpbGl0eSBoYWNrCgkgIGdyZXBwYWJsZSBieSB1c2luZyBHU1RfUEFERElORy0xKzEuCgoyMDA1LTExLTE3IDExOjI1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL05PVEVTLTAuMS4xOgoJKiBkb2NzL3JhbmRvbS9OT1RFUy0wLjIuMDoKCSogZG9jcy9yYW5kb20vVE9ETy1wb3N0LTAuMS4wOgoJKiBkb2NzL3JhbmRvbS9hcmNoOgoJKiBkb2NzL3JhbmRvbS9jb3JvdXRpbmVzOgoJKiBkb2NzL3JhbmRvbS9kZXNpZ246CgkqIGRvY3MvcmFuZG9tL2ZhY3RvcnlpbmZvOgoJKiBkb2NzL3JhbmRvbS9nYm9vbGVhbjoKCSogZG9jcy9yYW5kb20vcGFkYXJjaDoKCSogZG9jcy9yYW5kb20vc2VxdWVuY2U6CgkqIGRvY3MvcmFuZG9tL3N0YXRlLXRyYW5zaXRpb25zOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXM6CgkqIGRvY3MvcmFuZG9tL3N0YXRlcy5uZXc6CgkqIGRvY3MvcmFuZG9tL3N0YXRlcy5vbGQ6CgkqIGRvY3MvcmFuZG9tL3dhbGt0aHJvdWdoOgoJICByZW1vdmUgY29tcGxldGVseSBvdXRkYXRlZCByYW5kb20gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbXBsZXRlbHkgb3V0ZGF0ZWQgcmFuZG9tIGRvY3MKCjIwMDUtMTEtMTcgMDk6Mzc6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBBc3NlcnRpb24gc2hvdWxkIGNoZWNrIGZvciBDTE9DS19MT1NULCBub3QgTkVXX0NMT0NLICgjMzIxNjQ4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpOgoJICBBc3NlcnRpb24gc2hvdWxkIGNoZWNrIGZvciBDTE9DS19MT1NULCBub3QgTkVXX0NMT0NLICgjMzIxNjQ4KS4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBEb24ndCB1c2UgYysrIHN0eWxlIGNvbW1lbnRzIGluIGhlYWRlcnMgKCMzMjE2MzgpLgoKMjAwNS0xMS0xNiAxODozNzo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmMgKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6IEZyZWUgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYyAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKTogRnJlZQoJICBidWZmZXIuCgoyMDA1LTExLTE2IDE4OjE2OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENoZWNrIHRvIHNlZSB0aGF0IHRoZSB0aW1lIHByb3ZpZGVyIGFjdHVhbGx5IHByb3ZpZGVzIHRpbWVzLiBXb3JrcywgeW8hCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHRpbWUKCSAgcHJvdmlkZXIgYWN0dWFsbHkgcHJvdmlkZXMgdGltZXMuIFdvcmtzLCB5byEKCjIwMDUtMTEtMTYgMTg6MDk6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIG1vcmUgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgbW9yZSB0ZXN0cy4KCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFNldCBlbGVtZW50IHRvIE5VTEwgYmVmb3JlIGRpc3Bvc2luZyBpdC4KCjIwMDUtMTEtMTYgMTc6NTM6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXgKCjIwMDUtMTEtMTYgMTc6NTI6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvOiBVc2UgdGhlIHRpbWVwYWNrZXQgc3R1ZmYgaW4gdGhlIHByb3ZpZGVyLCBpbmNsdWRlIGl0IGZyb20gZ3N0bmV0LmgsIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBVc2UgdGhlIHRpbWVwYWNrZXQgc3R1ZmYgaW4gdGhlCgkgIHByb3ZpZGVyLCBpbmNsdWRlIGl0IGZyb20gZ3N0bmV0LmgsIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkLgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiBOZXcgZmlsZXMsIGFic3RyYWN0cyBvdXQgdGhlIHBhY2tldAoJICBzZW5kaW5nIGFuZCByZWNlaXZpbmcuCgoyMDA1LTExLTE2IDE3OjM1OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSB2YWxncmluZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSB2YWxncmluZCBjaGVjay4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2FsbG9jX3BhcmVudCksCgkgIChnc3RfZmFrZV9zcmNfYWxsb2NfYnVmZmVyKToKCSAgRml4IG1lbWxlYWsuCgoyMDA1LTExLTE2IDE3OjIyOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2FsbCBwYXJlbnQgZmluYWxpemUgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKToKCSAgQ2FsbCBwYXJlbnQgZmluYWxpemUgdG9vLgoKMjAwNS0xMS0xNiAxNzoxODozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgdmFsZ3JpbmQgY2hlY2sgdGhhdCBzaG91bGQgd29yayBmaW5lIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSB2YWxncmluZCBjaGVjayB0aGF0IHNob3VsZCB3b3JrIGZpbmUgbm93LgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgRml4IG1lbWxlYWtzIGluIHBhZCBhbGxvY2F0aW9uLgoKMjAwNS0xMS0xNiAxNjo0OTo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC86IE5ldyBwYXJ0IG9mIGNvcmUgdG8gaG9sZCBuZXR3b3JrIGVsZW1lbnRzIGFuZCBvYmplY3RzLiBQdXQgaW4gY29yZSBiZWNhdXNlIGl0IGV4cG9zZXMgQVBJIHRoYXQgYXBwbGljYXRpb25zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9nc3RuZXQuaDogTmV3IHBhcnQgb2YgY29yZSB0byBob2xkIG5ldHdvcmsgZWxlbWVudHMgYW5kCgkgIG9iamVjdHMuIFB1dCBpbiBjb3JlIGJlY2F1c2UgaXQgZXhwb3NlcyBBUEkgdGhhdCBhcHBsaWNhdGlvbnMgd2FudAoJICB0byB1c2UuIFRoZSBsaWJyYXJ5IGlzIG5hbWVkIGxpYmdzdG5ldC10ZW1wbmFtZSByaWdodCBub3cgYmVjYXVzZQoJICBvZiB0aGUgZXhpc3RpbmcgbGliZ3N0bmV0IGluIGdzdC1wbHVnaW5zLWJhc2UuIFNvbHV0aW9uIGlzCgkgIHByb2JhYmx5IHRvIHJlbmFtZSB0aGUgb25lIGluIHBsdWdpbnMtYmFzZTsgd2lsbCBmaWxlIGEgYnVnIGZvcgoJICB0aGUgZnJlZXplIGJyZWFrLgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogTmV3IG9iamVjdCB0byBleHBvcnQgYSBHc3RDbG9jaydzCgkgIGdldF90aW1lIGNhbGwgb3ZlciB0aGUgbmV0d29yay4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtIChsaWJfTFRMSUJSQVJJRVMpOiBBZGQgZ3N0bmV0IHRvIHRoZSBidWlsZC4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IEEgbW9zdCBtaW5pbWFsIHRlc3Qgc3VpdGUuIFdpbGwKCSAgZ2V0IGFkZGl0aW9ucyBzaG9ydGx5LgoKMjAwNS0xMS0xNiAxNjowOTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLio6IGFkZCBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgYWRkIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGZ1bmN0aW9ucwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2luaXQpOgoJICBhbmQgdXNlIHRoZW0KCjIwMDUtMTEtMTYgMTY6MDY6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZWQgd2FybmluZywgaXQncyBub3QgcmVhbHkgYW4gZXJyb3IgZWl0aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BhdXNlX3Rhc2spOgoJICBSZW1vdmVkIHdhcm5pbmcsIGl0J3Mgbm90IHJlYWx5IGFuIGVycm9yIGVpdGhlci4KCjIwMDUtMTEtMTYgMTQ6Mjc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIGlmIHRoZSBjYXBzIGFyZSBOVUxMLCB0aGlzIGNhbiBoYXBwZW4gaWYgdGhlIGVsZW1lbnQgaXMgc2h1dHRpbmcgZG93biBhbmQgdGhlIHBhZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBDaGVjayBpZiB0aGUgY2FwcyBhcmUgTlVMTCwgdGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBlbGVtZW50CgkgIGlzIHNodXR0aW5nIGRvd24gYW5kIHRoZSBwYWQgY2FwcyBhcmUgc2V0IHRvIE5VTEwuCgoyMDA1LTExLTE2IDEyOjU3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBmaXggcGFkIHRlbXBhbHRlIGxlYWsgaW4gdGVlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcGFkIHRlbXBhbHRlIGxlYWsgaW4gdGVlCgoyMDA1LTExLTE2IDEyOjQwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHVzZSBnc3Rfb2JqZWN0X3JlZiB3aGVuIHNldHRpbmcgdGhlIHBhZCB0ZW1wbGF0ZTsgdGhpcyB3aWxsIHRyaWdnZXIgdGhlIHBhZCB0ZW1wbGF0ZSBsZWFrcyBvbiBHTGliIDIuNiBhbmQgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfdmFsdWVfZHVwX2dzdF9vYmplY3QpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3Byb3BlcnR5KToKCSAgdXNlIGdzdF9vYmplY3RfcmVmIHdoZW4gc2V0dGluZyB0aGUgcGFkIHRlbXBsYXRlOyB0aGlzIHdpbGwKCSAgdHJpZ2dlciB0aGUgcGFkIHRlbXBsYXRlIGxlYWtzIG9uIEdMaWIgMi42IGFuZCB0aGUgc2xhdmVzCgoyMDA1LTExLTE2IDEyOjI1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBmdW5jdGlvbnMgY29waWVkIGZyb20gR0xpYiAyLjYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnc3RfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlKToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgcmVtb3ZlIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBHTGliIDIuNgoKMjAwNS0xMS0xNiAxMToyOTo1NyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBEb24ndCBsaW5rIGFnYWluc3QgVkFMR1JJTkRfTElCUy4gVGhhdCB3YXMgYWx3YXlzIHRoZSB3cm9uZyB0aGluZyB0byBkbywgYnV0IG9ubHkgYnJlYWtzIHdpdGggbmV3ZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgbGluayBhZ2FpbnN0IFZBTEdSSU5EX0xJQlMuIFRoYXQgd2FzIGFsd2F5cyB0aGUgd3JvbmcgdGhpbmcgdG8KCSAgZG8sIGJ1dCBvbmx5IGJyZWFrcyB3aXRoIG5ld2VyIHZhbGdyaW5kIHZlcnNpb25zLiBXZSdyZSBub3QgYQoJICB2YWxncmluZCB0b29sLCB3ZSBoYXZlIG5vIGxpbmstdGltZSBkZXBlbmRlbmNpZXMgb24gbGliY29yZWdyaW5kLgoKMjAwNS0xMS0xNiAxMTowNjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHNvbWUgZGVidWcgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBzb21lIGRlYnVnIGNoYW5nZXMKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICB0eXBvIGZpeGVzCgoyMDA1LTExLTE1IDIzOjUzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmV2ZXJ0IGFsbCB0aGVzZSB1bnJlZnMsIHRoZXkgZG9uJ3QgZXZlbiBwYXNzIG1ha2UgY2hlY2sgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2ZXJ0IGFsbCB0aGVzZSB1bnJlZnMsIHRoZXkgZG9uJ3QgZXZlbiBwYXNzIG1ha2UgY2hlY2sgIQoKMjAwNS0xMS0xNSAxOTo0ODo0MCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBBbmQgZ3N0X29iamVjdF91bnJlZiBoZXJlIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQW5kIGdzdF9vYmplY3RfdW5yZWYgaGVyZSB0b28KCjIwMDUtMTEtMTUgMTk6MzE6MDUgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0LzogRnJlZSBwYWQgdGVtcGxhdGVzLCBmaXhlcyBhIGNvdXBsZSBvZiBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgRnJlZSBwYWQgdGVtcGxhdGVzLCBmaXhlcyBhIGNvdXBsZSBvZiBsZWFrcy4KCjIwMDUtMTEtMTUgMTk6MjQ6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEdTVF9QQURfUEFEX1RFTVBMQVRFKHBhZCkgZ2V0cyB0aGUgcGFkIHRlbXBsYXRlLCB3aGlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9wcm9wZXJ0eSk6CgkgIEdTVF9QQURfUEFEX1RFTVBMQVRFKHBhZCkgZ2V0cyB0aGUgcGFkIHRlbXBsYXRlLCB3aGlsZQoJICBHU1RfUEFEX1RFTVBMQVRFKHBhZCkgZG9lcyBhIGNhc3QuIFdlIHdhbnQgdGhlIGZvcm1lciBoZXJlLgoJICAoIzMyMTQ1MikKCjIwMDUtMTEtMTUgMTg6MzQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA1LTExLTE1IDE3OjU3OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKTogQWRkIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6IEFkZCBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKTogRG9jdW1lbnQKCSAgdXNpbmcgR1NUX0NMT0NLX1RJTUVfTk9ORSB0byBkaXNhYmxlIGJhc2UgdGltZSBtYW5hZ2VtZW50LgoJICAoZG9fcGlwZWxpbmVfc2VlaywgZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IERvbid0IHJlc2V0IHN0cmVhbQoJICB0aW1lIGlmIGl0IHdhcyBOT05FIGJlZm9yZS4KCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBPbmx5IG11bmdlIHRoZSBiYXNlIHRpbWUgaWYKCSAgc3RyZWFtX3RpbWUgIT0gR1NUX0NMT0NLX1RJTUVfTk9ORS4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUKCSAgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHRoZQoJICBpc3N1ZSBJJ20gbG9va2luZyBhdC4gQWRkIGEgY2hlY2sgdGhhdCBzZXR0aW5nIHN0cmVhbV90aW1lIHRvIE5PTkUKCSAgZGlzYWJsZXMgYmFzZSB0aW1lIG1hbmFnZW1lbnQuCgoyMDA1LTExLTE1IDE3OjE4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogc2VnbWVudF9zdG9wID09IC0xIGF0IHN0YXJ0dXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIHNlZ21lbnRfc3RvcCA9PSAtMSBhdCBzdGFydHVwLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgSW5pdCBzZWdtZW50IHZhbHVlcyBhdCBzdGFydC4KCjIwMDUtMTEtMTUgMTY6NTI6NDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZSBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUKCSAgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHRoZQoJICBpc3N1ZSBJJ20gbG9va2luZyBhdC4uLgoKMjAwNS0xMS0xNSAxNjo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IDAgc2VnbWVudCB2YWx1ZXMgYXJlIDAgaW4gYW55IGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIDAgc2VnbWVudCB2YWx1ZXMgYXJlIDAgaW4gYW55IGZvcm1hdC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUGFyc2UgbmV3c2VnbWVudCBjb3JyZWN0bHkgaW4gYmFzZXRyYW5zZm9ybQoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFN5bmMgdG8gY2xvY2sgdXNpbmcgdXBkYXRlZCBzZWdtZW50IHZhbHVlcy4KCjIwMDUtMTEtMTUgMTY6Mjc6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IEFkZCBjaGVjayB0aGF0IHRoZSBiYXNlIHRpbWUgYW5kIHN0cmVhbSB0aW1lIGFyZSByZXNldCBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IEFkZCBjaGVjayB0aGF0IHRoZQoJICBiYXNlIHRpbWUgYW5kIHN0cmVhbSB0aW1lIGFyZSByZXNldCBjb3JyZWN0bHkuCgoyMDA1LTExLTE1IDE1OjQ0OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogU29tZSBtb3JlIFRPRE8gaXRlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFNvbWUgbW9yZSBUT0RPIGl0ZW1zLgoKMjAwNS0xMS0xNSAxMjozNTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IEl0J3Mgbm90IGFuIGVycm9yIGlmIHRoZSB1c2VyIHNlbGVjdGVkICJubyBjbG9jayIgYXMgdGhlIGNsb2NraW5nIG1lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJdCdzIG5vdCBhbgoJICBlcnJvciBpZiB0aGUgdXNlciBzZWxlY3RlZCAibm8gY2xvY2siIGFzIHRoZSBjbG9ja2luZyBtZXRob2QuCgoyMDA1LTExLTE1IDEyOjI5OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBOZXcgdGVzdCBmb3IgYnVmZmVyIHRpbWVzdGFtcHMgd2l0aCBsaXZlIGNhcHR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IE5ldyB0ZXN0IGZvciBidWZmZXIKCSAgdGltZXN0YW1wcyB3aXRoIGxpdmUgY2FwdHVyZS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSWYgdGhlIGRhdGFyYXRlCgkgIGlzIDAgYnV0IHdlIGFyZSBhIGxpdmUgc291cmNlLCB0aW1lc3RhbXAgdGhlIGJ1ZmZlcnMgdXNpbmcgdGhlCgkgIGVsZW1lbnQncyBjbG9jay4KCjIwMDUtMTEtMTQgMTU6MTU6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgc2VjdGlvbiBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgbW9yZSBzZWN0aW9uIGRvY3MKCjIwMDUtMTEtMTQgMTQ6NDU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBXaW0ncyBEZWJpYW4gbWFjaGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBXaW0ncyBEZWJpYW4gbWFjaGluZQoKMjAwNS0xMS0xNCAxNDozNjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBBbmR5J3MgQU1ENjQgVWJ1bnR1IG1hY2hpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgc3VwcHJlc3Npb25zIGZyb20gQW5keSdzIEFNRDY0IFVidW50dSBtYWNoaW5lCgoyMDA1LTExLTE0IDEyOjQzOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENoYW5nZSBkb2NzOyBwYXJlbnQncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENoYW5nZSBkb2NzOyBwYXJlbnQncwoJICBTVEFURV9MT0NLIG5vdCBuZWNlc3NhcnkuIEZpeGVzICMzMTE0ODkuCgoyMDA1LTExLTE0IDEyOjE3OjQ2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuYyAoRklMRV9BX0JVRyk6IEJlIHBvbGl0ZSAqYW5kKiBoZWxwZnVsLiBGaXhlcyAjMzA1MjkxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoRklMRV9BX0JVRyk6IEJlIHBvbGl0ZSAqYW5kKiBoZWxwZnVsLiBGaXhlcwoJICAjMzA1MjkxLgoKMjAwNS0xMS0xNCAxMTo1ODo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfb2JqZWN0KTogTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9vYmplY3QpOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQKCSAgdGhpcyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCgoyMDA1LTExLTE0IDEwOjQ5OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmVmIHRoZSBzb3VyY2UgcGFkIGNhcHMgd2hpbGUgd2UgbmVlZCB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICBSZWYgdGhlIHNvdXJjZSBwYWQgY2FwcyB3aGlsZSB3ZSBuZWVkIHRoZW0uCgkgIEZpeGVzICgjMzIxMzg2KQoKMjAwNS0xMS0xMiAxMDoyMzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0xMiAxMDowNDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBmaWxlcyBmb3IgSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGZpbGVzIGZvciBIRUFECgoyMDA1LTExLTEyIDEwOjAzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRlYnVnIHRhc2sgam9pbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgdGFzayBqb2luCgoyMDA1LTExLTEyIDEwOjAwOjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGZvdW5kIGFub3RoZXIgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvdW5kIGFub3RoZXIgcXVvdGUKCjIwMDUtMTEtMTEgMjA6MTI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGRlZCBzb21lIGRvY3MgZm9yIEdzdENvbGxlY3REYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGRlZCBzb21lIGRvY3MgZm9yIEdzdENvbGxlY3REYXRhLgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU29tZSBzbWFsbCBjb2RlIGV4YW1wbGUgZml4LgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9jdW1lbnQgc29tZSBtb3JlLgoKMjAwNS0xMS0xMSAxOToyNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS41ID09PQoKMjAwNS0xMS0xMSAxOToyNDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNQoKMjAwNS0xMS0xMSAxODoyNTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBtb3JlIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9jb3B5KToKCSAgQ29weSBtb3JlIGZsYWdzLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIEZpeCBzb21lIGRvY3MuCgkgIE1ha2UgX2lzX2VxdWFsIGZhc3QgaW4gdGhlIHRyaXZpYWwgY2FzZXMuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBNb3JlIGRvY3MuIFNwaWZpZnkgLmggZmlsZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDUtMTEtMTEgMTc6MTY6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTExLTExIDE2OjM3OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBJZiB3ZSdyZSBwcm9jZXNzaW5nIGEgYnVmZmVyIGFuZCBuZWVkIHRvIGFsbG9jYXRlIGFuIG91dHB1dAoJICBidWZmZXIsIHdlIGNhbm5vdCBhY2NlcHQgYSBmb3JtYXQgY2hhbmdlLiBJZiB3ZSBkaWQgZ2V0IGEKCSAgZm9ybWF0IGNoYW5nZSwgd2UgaGF2ZSB0byBhbGxvYyBhIGJ1ZmZlciBvdXJzZWx2ZXMgb2YgdGhlCgkgIHJpZ2h0IHNpemUuCgoyMDA1LTExLTExIDE2OjM0OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBXaGlsZSBjaGVja2luZyB0aGUgZmxhZyBmb3IgcmVlbnRyYW5jeSBpbiB0aGUgZ3N0Y2FwcyBmdW5jdGlvbiBpcyBuaWNlIHRvIGRldGVjdCByZWN1cnNpdmUgaW52b2NhdGlvbnMsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKToKCSAgV2hpbGUgY2hlY2tpbmcgdGhlIGZsYWcgZm9yIHJlZW50cmFuY3kgaW4gdGhlIGdzdGNhcHMgZnVuY3Rpb24KCSAgaXMgbmljZSB0byBkZXRlY3QgcmVjdXJzaXZlIGludm9jYXRpb25zLCBpdCBhbHNvIG1ha2VzIGl0CgkgIGltcG9zc2libGUgdG8gY2FsbCBnZXRjYXBzIGZyb20gbXVsdGlwbGUgdGhyZWFkcywgd2hpY2ggbXVzdCBiZQoJICBwb3NzaWJsZS4gU28sIGNoZWNraW5nIGZvciByZWN1cnNpdmUgY2FsbHMgaGFzIHRvIGdvLgoKMjAwNS0xMS0xMSAxNToxOTozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3Qgc3luYyBvbiBidWZmZXJzIHRoYXQgZmFsbCBwYXJ0aWFsbHkgb3V0c2lkZSBvdXIgY3VycmVudCBzZWdtZW50LiBQcmV2ZW50cyBhbiBhc3NlcnRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBEb24ndCBzeW5jIG9uIGJ1ZmZlcnMgdGhhdCBmYWxsIHBhcnRpYWxseSBvdXRzaWRlIG91ciBjdXJyZW50CgkgIHNlZ21lbnQuIFByZXZlbnRzIGFuIGFzc2VydGlvbiBmYWlsdXJlL2Fib3J0IHBsYXlpbmcgc29tZSBmaWxlcy4KCjIwMDUtMTEtMTAgMTg6MTU6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9tZXNzYWdlX3N0YXRlX2NoYW5nZWRfY2hpbGRyZW4pOiBTdHlsZSBmaXguLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfbWVzc2FnZV9zdGF0ZV9jaGFuZ2VkX2NoaWxkcmVuKTogU3R5bGUKCSAgZml4Li4KCSAgKiBnc3QvZ3N0YnVzLmMgKHBvbGxfZGVzdHJveSwgcG9sbF9mdW5jLCBnc3RfYnVzX3BvbGwpOiBJbXBsZW1lbnQKCSAgZ3N0X2J1c19wb2xsIHdpdGggdGhlIHNpZ25hbCB3YXRjaC4gRW5zdXJlcyB0aGF0IHBvbGwgYW5kIGEgc2lnbmFsCgkgIHdhdGNoIHNlZSB0aGUgc2FtZSBtZXNzYWdlcy4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmMgKHRlc3Rfd2F0Y2hfd2l0aF9wb2xsKTogTmV3IHRlc3QsIGNoZWNrcyB0aGF0CgkgIGEgcG9sbCBhbmQgYSB3YXRjaCBhdCB0aGUgc2FtZSB0aW1lIGdldCB0aGUgc2FtZSBtZXNzYWdlcy4KCjIwMDUtMTEtMTAgMTc6Mzc6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogRG9uJ3QgY2FsbCBnc3RfY2Fwc19kb19zaW1wbGlmeSAtIGl0IGRvZXNuJ3QgcmVzcGVjdCBvcmRlciBvZiBjYXBzIGFuZCBpdCdzIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIERvbid0IGNhbGwgZ3N0X2NhcHNfZG9fc2ltcGxpZnkgLSBpdCBkb2Vzbid0IHJlc3BlY3Qgb3JkZXIgb2YgY2FwcwoJICBhbmQgaXQncyBub3QgbmVlZGVkLgoKMjAwNS0xMS0xMCAxNTowNzo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZWQgdG9kby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCB0b2RvLgoKMjAwNS0xMS0xMCAxNDo0NToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogSW1wbGVtZW50IGNsb2NrIHN5bmMgaW4gYmFzZSBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEltcGxlbWVudCBjbG9jayBzeW5jIGluIGJhc2UgY2xhc3MuCgoyMDA1LTExLTEwIDEyOjMyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGb3J3YXJkLXBvcnQgYSAwLjggcGF0Y2ggdG8gaGFuZGxlIGVzY2FwZWQgc3BhY2VzIGluIHN0cnVjdHVyZSBzdHJpbmcsICAgICAgICAgIHNvIHRoYXQgZ3N0X3BhcnNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogVGltLVBoaWxpcHAgTcO8bGxlciA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9maWVsZCksCgkgIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgRm9yd2FyZC1wb3J0IGEgMC44IHBhdGNoIHRvIGhhbmRsZSBlc2NhcGVkIHNwYWNlcyBpbiBzdHJ1Y3R1cmUgc3RyaW5nLCAgICAgICAgICBzbyB0aGF0IGdzdF9wYXJzZV9sYXVuY2goKSBjYW4gZGVhbCB3aXRoIHNwYWNlcyBpbiBmaWx0ZXJlZCBsaW5rCgkgIGNhcHMgKGZpeGVzICMxNjQ0NzkpCgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgdW5pdCB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2UKCjIwMDUtMTEtMTAgMTE6MTc6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggZG9jcywgbW92ZSBzb21lIFNUQVRFIG1hY3JvcyB0byBwcml2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IGRvY3MsIG1vdmUgc29tZSBTVEFURSBtYWNyb3MgdG8gcHJpdmF0ZS4KCjIwMDUtMTEtMTAgMTA6MTc6MDEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRnVydGhlciBpbXByb3ZlIHF1ZXJ5IGRvY3MuIFN0aWxsIG5vdCBoYXBweSB3aXRoIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGdXJ0aGVyIGltcHJvdmUgcXVlcnkgZG9jcy4gU3RpbGwgbm90IGhhcHB5IHdpdGggdGhpcy4KCjIwMDUtMTEtMTAgMDk6MTk6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgY2hlY2sgZm9yIGJ1ZyAjMzE3MzQxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBidWcgIzMxNzM0MQoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFNvbWUgbW9yZSBzcGlmZmlmeWluZy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fbGluayk6CgkgIENhbGwgcGVlciBsaW5rZnVuY3Rpb24gaWYgd2UgYXJlIGEgc291cmNlIHBhZC4gVG90YWxseSBmaXhlcwoJICAjMzE3MzQxCgkgICogZ3N0L2dzdHBhZC5jOgoJICBVcGRhdGUgZG9jcywgc291cmNlIHBhZHMgc2hvdWxkIGNhbGwgdGhlIHBlZXIgbGlua2Z1bmN0aW9uCgkgIHNvIHRoZXkgY2FuIGF0b21pY2FsbHkgcGVyZm9ybSB0aGUgcGFkIGxpbmsuCgoyMDA1LTExLTA5IDE5OjMyOjMyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgSW1wcm92ZS9maXggZG9jdW1lbnRhdGlvbiBmb3IgR3N0UXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXByb3ZlL2ZpeCBkb2N1bWVudGF0aW9uIGZvciBHc3RRdWVyeS4KCSAgVGhpcyBzdGlsbCBuZWVkcyBzb21lIG1vcmUgd29yayB0byBleHBsYWluIHdoYXQgdGhlIHF1ZXJpZXMgYWN0dWFsbHkgbWVhbi4KCjIwMDUtMTEtMDkgMTg6NDE6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNsaWdodGx5IHBvbGlzaCBkb2NzIGZvciBHc3RBZGFwdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU2xpZ2h0bHkgcG9saXNoIGRvY3MgZm9yIEdzdEFkYXB0ZXIuCgoyMDA1LTExLTA5IDE4OjEwOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBVYmVyLXNwaWZmeS1zcGlmZmlmeSBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFViZXItc3BpZmZ5LXNwaWZmaWZ5IHNvbWUgbW9yZS4KCjIwMDUtMTEtMDkgMTc6NTU6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgR1NUX0RFQlVHX0ZVTkNQVFIoKSBtb3JlIGV4dGVuc2l2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFVzZSBHU1RfREVCVUdfRlVOQ1BUUigpIG1vcmUgZXh0ZW5zaXZlbHkuCgoyMDA1LTExLTA5IDE3OjMyOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC4qOiBEb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDUtMTEtMDkgMTc6MDY6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjo0NDo0MCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgoyMDA1LTExLTA5IDE2OjMyOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEZpeCByZXZpc2lvbiBkYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgRml4IHJldmlzaW9uIGRhdGEuCgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6MTY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6MDA6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNb3ZlZCB0aGUgbWVzc2FnZSBhc3luYyBkZWxpdmVyeSBwcml2YXRlIGxvY2sgYW5kIGNvbmQgdG8gdGhlIHByaXZhdGUgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTW92ZWQgdGhlIG1lc3NhZ2UgYXN5bmMgZGVsaXZlcnkgcHJpdmF0ZSBsb2NrIGFuZCBjb25kCgkgIHRvIHRoZSBwcml2YXRlIHNlY3Rpb24uCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXhlZCBkb2NzLgoKMjAwNS0xMS0wOSAxNTozNDo0NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIERvY3VtZW50IEdzdFVSSUhhbmRsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBEb2N1bWVudCBHc3RVUklIYW5kbGVyCgoyMDA1LTExLTA5IDE1OjMxOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEZpeCBpdGVyYXRvciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9mb2xkKSwgKGdzdF9pdGVyYXRvcl9mb3JlYWNoKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEZpeCBpdGVyYXRvciBkb2NzLgoKMjAwNS0xMS0wOSAxNToxMDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uaDogRG9jdW1lbnQgYW5vdGhlciBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBEb2N1bWVudCBhbm90aGVyIGZpZWxkLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIERvY3VtZW50LgoKMjAwNS0xMS0wOSAxMzoxNDoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uaDogRG9jdW1lbnRlZCBzdHJ1Y3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIERvY3VtZW50ZWQgc3RydWN0cy4KCjIwMDUtMTEtMDkgMTI6MzY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIHNvbWUgbmV3IG1hY3Jvcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3MgdXBkYXRlcy4KCjIwMDUtMTEtMDkgMTI6MDE6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBTb21lIG1vcmUgaXRlbXMgZm9yIHRoZSBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFNvbWUgbW9yZSBpdGVtcyBmb3IgdGhlIFRPRE8KCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIERvY3VtZW50IEdzdENhcHMuCgoyMDA1LTExLTA5IDEwOjA2OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdGhlIGJlZ2lubmluZyBvZiBkb2NzIGhlcmUgLS0gaGF2ZSB0byB3b3JrIG9uIHNvbWV0aGluZyBlbHNlIG5vdyB0aG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHRoZSBiZWdpbm5pbmcgb2YgZG9jcyBoZXJlIC0tIGhhdmUKCSAgdG8gd29yayBvbiBzb21ldGhpbmcgZWxzZSBub3cgdGhvLi4uCgoyMDA1LTExLTA5IDA5OjQ4OjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgKGdzdF9maWxlX3Npbmtfc3RvcCk6IE5ldyBmdW5jdGlvbnMsIHJlcGxhY2UgdGhlIHN0YXRlIGNoYW5nZQoJICBoYW5kbGVyLgoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KTogSG9vayB1cCB0aGUgc3RhcnQgYW5kIHN0b3AgZnVuY3Rpb25zLgoJICAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOiBEb24ndCBzZXQgdGhlIHN0YXRlIGNoYW5nZSBoYW5kbGVyIGFueQoJICBtb3JlLiBJdCB3YXMgYSBiaXQgdWdseSB0b28sIGJlaW5nIHNldCBmcm9tIGhlcmUuLi4KCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5LCBnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSk6CgkgIENsZWFudXBzLi4uCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbik6IE1vcmUgcm9idXN0IGNoZWNrIHRoYXQgZG9lc24ndCBjYWxsCgkgIEdTVF9TVEFURS4gVWdnZ2dnZy4KCjIwMDUtMTEtMDkgMDk6NDc6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICAoZ3N0X2ZpbGVfc2lua19zdG9wKTogTmV3IGZ1bmN0aW9ucywgcmVwbGFjZSB0aGUgc3RhdGUgY2hhbmdlCgkgIGhhbmRsZXIuCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOiBIb29rIHVwIHRoZSBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMuCgkgIChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6IERvbid0IHNldCB0aGUgc3RhdGUgY2hhbmdlIGhhbmRsZXIgYW55CgkgIG1vcmUuIEl0IHdhcyBhIGJpdCB1Z2x5IHRvbywgYmVpbmcgc2V0IGZyb20gaGVyZS4uLgoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHksIGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KToKCSAgQ2xlYW51cHMuLi4KCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKTogTW9yZSByb2J1c3QgY2hlY2sgdGhhdCBkb2Vzbid0IGNhbGwKCSAgR1NUX1NUQVRFLiBVZ2dnZ2dnLgoKMjAwNS0xMS0wOCAxMjozMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSG9sZCBTVFJFQU1fTE9DSyB3aGlsZSBwdXNoaW5nIG5ld3NlZ21lbnQgb3IgdGFnIGV2ZW50cyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBIb2xkIFNUUkVBTV9MT0NLIHdoaWxlIHB1c2hpbmcgbmV3c2VnbWVudCBvciB0YWcgZXZlbnRzIGFzIHdlbGwuCgoyMDA1LTExLTA4IDExOjUyOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgcmV2ZXJ0IHBhcnQgb2YgdGhlIHBhdGNoIHNvIHRoYXQgcGF0aHMgYXJlIGNvcnJlY3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBwYXJ0IG9mIHRoZSBwYXRjaCBzbyB0aGF0IHBhdGhzIGFyZSBjb3JyZWN0CgoyMDA1LTExLTA4IDExOjEzOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQXZvaWQgZXhjZXNzaXZlIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEF2b2lkIGV4Y2Vzc2l2ZSB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2luaXQpLCAoZ3N0X21pbmlfb2JqZWN0X25ldyksCgkgIChnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9vYmplY3RfaW5pdCksCgkgIChnc3Rfb2JqZWN0X2ZpbmFsaXplKToKCSAgUmVtb3ZlIGNydWZ0IGNvZGUsIG9wdGltaXplIGFsbG9jX3RyYWNlLgoKMjAwNS0xMS0wNyAxODoxNjoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGZpeCB1cCBQUzEgZm9yIHN5c3RlbXMgdGhhdCB0cnkgdG8gcmVzZXQgaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBmaXggdXAgUFMxIGZvciBzeXN0ZW1zIHRoYXQgdHJ5IHRvIHJlc2V0IGl0CgoyMDA1LTExLTA3IDEwOjMzOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZXQgdGhlIHNlZ21lbnRfZW5kIHRvIC0xIGluaXRpYWxseS4gRml4ZWQgdHlwZWZpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBTZXQgdGhlIHNlZ21lbnRfZW5kIHRvIC0xIGluaXRpYWxseS4gRml4ZWQgdHlwZWZpbmQuCgoyMDA1LTExLTA3IDEwOjEzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBEZWJ1ZyBjYXRlZ29yeSBzaG91bGQgYmUgJ2FkYXB0ZXInLCBub3QgJ0dzdEFkYXB0ZXInLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIERlYnVnIGNhdGVnb3J5IHNob3VsZCBiZSAnYWRhcHRlcicsIG5vdCAnR3N0QWRhcHRlcicuCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgQWRkIGRlYnVnIGNhdGVnb3J5IGFuZCBzb21lIGRlYnVnZ2luZyBvdXRwdXQuIFVzZSBib2lsZXJwbGF0ZQoJICBtYWNyb3MuIFJlbW92ZSBzb21lIGV4dHJhbmVvdXMgd29yZHMgZnJvbSBkb2NzLgoKMjAwNS0xMS0wNSAxNToxNDozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBTaG9ydGVuIGJ5IDMwJSB2aWEgdXNlIG9mIGJvaWxlcnBsYXRlIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFNob3J0ZW4gYnkgMzAlIHZpYSB1c2Ugb2YgYm9pbGVycGxhdGUKCSAgbWFjcm8uCgoyMDA1LTExLTA0IDIwOjEyOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgYWRkZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIG1vcmUgZG9jcyBhZGRlZAoKMjAwNS0xMS0wNCAxNTozMzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU21hbGwgdXBkYXRlIHRvIHN0b3AgYXQgdGhlIGNvbmZpZ3VyZWQgc2VnbWVudF9lbmQgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBTbWFsbCB1cGRhdGUgdG8gc3RvcCBhdCB0aGUgY29uZmlndXJlZCBzZWdtZW50X2VuZAoJICBwb3NpdGlvbi4KCjIwMDUtMTEtMDQgMTU6MDI6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS4qOiBhZGRlZCBtaXNzaW5nIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIGFkZGVkIG1pc3NpbmcgZG9jcwoKMjAwNS0xMS0wNCAxNDozNToxMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2hlY2sgaWYgd2UgYXJlIGRvaW5nIGEgc2VnbWVudCBzZWVrIGFuZCBoYXZlIGFycml2ZWQgYXQgdGhlIGVuZCBvZiB0aGF0IHNlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBDaGVjayBpZiB3ZSBhcmUgZG9pbmcgYSBzZWdtZW50IHNlZWsgYW5kIGhhdmUgYXJyaXZlZCBhdCB0aGUKCSAgZW5kIG9mIHRoYXQgc2VnbWVudC4KCjIwMDUtMTEtMDQgMTI6MDg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IERvbid0IGxlYWsgYSBtdXRleCB1bmxvY2sgaW4gY2FzZSBvZiBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcik6CgkgIERvbid0IGxlYWsgYSBtdXRleCB1bmxvY2sgaW4gY2FzZSBvZiBhbiBlcnJvci4KCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMDQgMTE6NDM6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEdldCB0aGUgY29udGV4dCB0byB3YWtlIHVwIG9ubHkgb25jZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfaW5pdCksCgkgIChnc3RfYnVzX3Bvc3QpOgoJICBHZXQgdGhlIGNvbnRleHQgdG8gd2FrZSB1cCBvbmx5IG9uY2UuCgoyMDA1LTExLTAzIDIwOjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIElmIHdlIGFyZSBnb2luZyB0byBQTEFZSU5HLCBwb3N0IHRoZSByaWdodCBwZW5kaW5nIHN0YXRlCgkgIHdoZW4gd2UgcG9zdCB0aGUgaW50ZXJtZWRpYXRlIHBhdXNlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBwb3N0IHN0YXRlIGNoYW5nZXMgdGhhdCB3ZXJlIGJldHdlZW4gdGhlIHNhbWUgc3RhdGUKCSAgYW5kIHdlcmUgbm90IEFTWU5DLgoKMjAwNS0xMS0wMyAyMDoxNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSWYgd2UgYXJlIGdvaW5nIHRvIFBMQVlJTkcsIHBvc3QgdGhlIHJpZ2h0IHBlbmRpbmcgc3RhdGUKCSAgd2hlbiB3ZSBwb3N0IHRoZSBpbnRlcm1lZGlhdGUgcGF1c2VkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHBvc3Qgc3RhdGUgY2hhbmdlcyB0aGF0IHdlcmUgYmV0d2VlbiB0aGUgc2FtZSBzdGF0ZQoJICBhbmQgd2VyZSBub3QgQVNZTkMuCgoyMDA1LTExLTAzIDE5OjM4OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGRvYyBmaXhlcwoKMjAwNS0xMS0wMyAxNzo1MzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3RfbGl2ZXNyY19zaW5rKTogQWRkIGNoZWNrcyB0aGF0IHRoZSBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2VzIGFjdHVhbGx5IGhhdmUgdGhlIHJpZ2h0IG9yZGVyIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X2xpdmVzcmNfc2luayk6IEFkZCBjaGVja3MgdGhhdCB0aGUKCSAgc3RhdGUtY2hhbmdlZCBtZXNzYWdlcyBhY3R1YWxseSBoYXZlIHRoZSByaWdodCBvcmRlciBhbmQgdGhlIHJpZ2h0CgkgIHZhbHVlcy4KCjIwMDUtMTEtMDMgMTc6MTI6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogQWRkZWQgc29tZSBtb3JlIGNoZWNrcy4gU3BlY2lmaWNhbGx5IHRoZSBjYXNlIHdoZXJlIE5PX1BSRVJPTEwgZWxlbWVudHMgYXJlIGluIHRoZSBwaXBlbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIGNoZWNrcy4gU3BlY2lmaWNhbGx5IHRoZSBjYXNlIHdoZXJlIE5PX1BSRVJPTEwKCSAgZWxlbWVudHMgYXJlIGluIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFBvc3QgUkVBRFktPlBBVVNFRCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMgdG9vLgoJICBGaXggYnVnIHdoZXJlIFZPSUQgd2FzIHBvc3RlZCBhcyBwZW5kaW5nIHN0YXRlLi4uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICB1c2UgX2VsZW1lbnRfY29udGludWVfc3RhdGUoKSB0byBjb250aW51ZSB0aGUgc3RhdGUgY2hhbmdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgTG90cyBvZiBzdGF0ZSBjaGFuZ2UgY2xlYW51cHMsIGFzc2lnbiB0aGUgU1RBVEVfUkVUVVJOIGluCgkgIGEgbmV3IGNvbnRpbnVlX3N0YXRlKCkgZnVuY3Rpb24gdGhhdCBhbHNvIHByb3BhZ2F0ZXMgdGhlCgkgIGxhc3QgcmV0dXJuIHZhbHVlIGZyb20gYSBzdGF0ZSBjaGFuZ2UgdG8gdGhlIGFwcC4KCSAgVXBkYXRlIHNvbWUgZGVidWcgc3RhdGVtZW50cyB3aXRoIHByb3BlciBjYXRlZ29yeS4KCjIwMDUtMTEtMDMgMTQ6MjI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzLzogU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIFBlb3BsZSB0aGluayAhISBpcyB1Z2x5LCB0aGlzIGxvb2tzIGJldHRlci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgUmVtb3ZlICEhIHNpbmNlIGl0J3MgZml4ZWQgZWxzZXdoZXJlIG5vdy4KCjIwMDUtMTEtMDMgMTM6NTI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgISEgdG8gX0ZMQUdfSVNfU0VUIG1hY3JvcyB0byBtYWtlIHRoZSByZXN1bHQgYm9vbGVhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIEFkZCAhISB0byBfRkxBR19JU19TRVQgbWFjcm9zIHRvIG1ha2UgdGhlIHJlc3VsdCBib29sZWFuLgoKMjAwNS0xMS0wMyAxMjo0ODozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogY29tcGFyaW5nIGEgZmxhZyBhbmQgYSBnYm9vbGVhbiByYXJlbHkgcmV0dXJucyBjb2hlcmVudCByZXN1bHRzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBjb21wYXJpbmcgYSBmbGFnIGFuZCBhIGdib29sZWFuIHJhcmVseSByZXR1cm5zIGNvaGVyZW50IHJlc3VsdHMuLi4KCSAgQWRkZWQgdHdvIGNoYXJhY3RlcnMgKCEhKSB0byBtYWtlIHRoYXQgd29yayBjb3JyZWN0bHkuCgoyMDA1LTExLTAzIDEyOjE2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgRml4IHNvbWUgdHlwb3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIERvbid0IGFzc3VtZSBhIG1pbmlvYmplY3QgdGhhdCBpc24ndCBhIGJ1ZmZlciBpcyBhbgoJICBldmVudCAoaXQgY291bGQgYmUgdGhhdCB0aGVyZSBpcyBhIHJlZmNvdW50aW5nCgkgIHByb2JsZW0gc29tZXdoZXJlIGFuZCB0aGUgcG9pbnRlciBpcyBzdGFsZSBhbmQKCSAgcmVmZXJzIHRvIGFuIGFscmVhZHkgZGVzdHJveWVkIG1pbmlvYmplY3QpLgoKMjAwNS0xMS0wMyAxMDo1NjoyMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wMyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKTogRml4IHNvbWUgdHlwb3MuCgoyMDA1LTExLTAzIDA5OjE4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOiBVcGRhdGUgc2VlayBleGFtcGxlIGFuZCBleHBsYW5hdGlvbnMgdG8gY3VycmVudCAwLjkgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIFVwZGF0ZSBzZWVrIGV4YW1wbGUgYW5kIGV4cGxhbmF0aW9ucyB0byBjdXJyZW50IDAuOSBBUEkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUmVtb3ZlIEZJWE1FIGNvbW1lbnQgbm93IHRoYXQgdGhlIGZvdW5kIGNhcHMKCSAgYXJlIHVucmVmZmVkLgoKMjAwNS0xMS0wMyAwMDozOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBBZGQgYW5vdGhlciBHU1RfU1RSX05VTEwgaW5zdGFuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBhbm90aGVyIEdTVF9TVFJfTlVMTCBpbnN0YW5jZQoKMjAwNS0xMS0wMiAxOTowNDoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRm9sbG93LXVwIHRvIFdpbSdzIHBhdGNoLCBzb2x2ZXMgZGVhZGxvY2sgZm9yIGJsb2NrZWQgYW5kIGZsdXNoaW5nIHBhZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoaGFuZGxlX3BhZF9ibG9jayk6CgkgIEZvbGxvdy11cCB0byBXaW0ncyBwYXRjaCwgc29sdmVzIGRlYWRsb2NrIGZvciBibG9ja2VkIGFuZCBmbHVzaGluZyBwYWRzCgoyMDA1LTExLTAyIDE4OjQ0OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6CgkgIFJlbW92ZSB1bnVzZWQgdmFsdWUuCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIE1lbnRpb24gdGhhdCB0aGUgcmV0dXJuZWQgZWxlbWVudCBpcyByZWZmZWQgaW4gdGhlIGRvY3MuCgoyMDA1LTExLTAyIDE4OjMzOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVbmxvY2sgYmxvY2tlZCBwYWRzIHdoZW4gdGhleSBhcmUgZmx1c2hlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgVW5sb2NrIGJsb2NrZWQgcGFkcyB3aGVuIHRoZXkgYXJlIGZsdXNoZWQuCgoyMDA1LTExLTAyIDE1OjM0OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBkb2MgdXBkYXRlcwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIGZpeCBmb3IgYSBuYXN0eSBsaXR0bGUgbWlzc2VkIHNpdHVhdGlvbiB3aGVyZSBhbiBpbnN0YWxsZWQgcGx1Zy1pbgoJICB3aGljaCB3YXMgaW4gdGhlIGNhY2hlIGRpZCBub3QgZ2V0IG92ZXJyaWRkZW4gYnkgYW4gdW5pbnN0YWxsZWQgb25lCgkgIHdoaWNoIHdhcyBlYXJsaWVyIGluIHRoZSBwbHVnaW4gcGF0aCBiZWNhdXNlIHRoZSBuZXdseSBjcmVhdGVkIHBsdWdpbgoJICBmb3IgdGhlIHVuaW5zdGFsbGVkIG9uZSAobm90IGluIHRoZSByZWdpc3RyeSkgZGlkbid0IGdldCBpdHMKCSAgLT5yZWdpc3RlcmVkIHNldCB0byBUUlVFCgoyMDA1LTExLTAyIDE1OjA4OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogR3VhcmQgcHVibGljIEFQSSB3aXRoIGFzc2VydGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfc2V0X2Z1bmN0aW9uKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19pc19hY3RpdmUpLCAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RwYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wb3ApLCAoZ3N0X2NvbGxlY3RwYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdHBhZHNfcmVhZCksIChnc3RfY29sbGVjdHBhZHNfZmx1c2gpOgoJICBHdWFyZCBwdWJsaWMgQVBJIHdpdGggYXNzZXJ0aW9ucy4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2NzIGZvciBnc3RfcGFkX3NldF9saW5rX2Z1bmN0aW9uKCkuCgoyMDA1LTExLTAyIDE0OjI4OjAyICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKTogVW5yZWYgZm91bmRfY2FwcyBhZnRlciB3ZSB1c2VkIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVucmVmIGZvdW5kX2NhcHMgYWZ0ZXIgd2UgdXNlZCBpdC4KCjIwMDUtMTEtMDIgMTI6MjA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCB0cnkgdG8gcmVmIE5VTEwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfcGVlayk6CgkgIERvbid0IHRyeSB0byByZWYgTlVMTC4KCjIwMDUtMTEtMDIgMDk6MzE6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCjIwMDUtMTEtMDIgMDk6Mjc6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCjIwMDUtMTEtMDIgMDk6MjQ6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZ2VuZXJhdGVkIGNvbmZpZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGdlbmVyYXRlZCBjb25maWcKCjIwMDUtMTEtMDIgMDk6MjQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHByb3ZpZGUgYSBHU1RfRlVOQ1RJT04gdGhhdCBqdXN0IGdpdmVzIGEgc3RyaW5nIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByb3ZpZGUgYSBHU1RfRlVOQ1RJT04gdGhhdCBqdXN0IGdpdmVzIGEgc3RyaW5nIGZvciBub3cKCjIwMDUtMTEtMDIgMDg6NTY6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb3BpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb3BpZXMKCjIwMDUtMTEtMDEgMTk6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBtb3JlIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRvYyB1cGRhdGVzCgoyMDA1LTExLTAxIDE3OjQ1OjQ2ICswMDAwICBMdWNhIE9nbmliZW5lIDxsdW9nbmlAdGluLml0PgoKCSAgZ3N0L2dzdC5jOiBmaXggZG9jcy4gcG9wdCBpcyBkZWF0aCwgbG9uZyBsaXZlIEdPcHRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgZml4IGRvY3MuIHBvcHQgaXMgZGVhdGgsIGxvbmcgbGl2ZSBHT3B0aW9uLgoKMjAwNS0xMC0zMSAxMTo0NDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogU21hbGwgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBTbWFsbCBkb2MgZml4LgoKMjAwNS0xMC0zMSAwOTo1MjoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQm9vIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0zMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBCb28hCgkgICogZ3N0L2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9jaGFpbik6IEZpeCBkb3duc3RyZWFtIGxlYWt5IG1vZGUuCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6IE5vCgkgIG5lZWQgdG8gc2VyaWFsaXplIHByb3BlcnR5IG5vdGlmaWNhdGlvbnMgb24gR0xpYiAyLjguIEdMaWIgMi42IGhhcwoJICB0aGUgcG9zc2liaWxpdHkgb2YgZGVhZGxvY2tzIGhlcmUgaWYgY29kZSBjYWxsaW5nIG5vdGlmeSgpIG9yCgkgIHNldCgpIGhhcyBhIGxvY2sgdGhhdCBjYW4gYmUgdGFrZW4gaW4gYW5vdGhlciBub3RpZnkgaGFuZGxlciAoQUJCQQoJICB3aXRoIGNsYXNzIGxvY2sgYW5kIGUuZy4gcHl0aG9uIEdJTCBzdGF0ZSBsb2NrKS4KCjIwMDUtMTAtMjggMTg6MTg6MjMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjggIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IERvYyB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxODoxNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCjIwMDUtMTAtMjggMTg6MTA6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2dzdC86IHRoZSBHc3RVUklUeXBlIGRvY3VtZW50YXRpb24gcGFnZSBpcyBwcml2YXRlLCBpdCBvbmx5IGRlZmluZXMgR3N0VVJJVHlwZSB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBpbiB0aGUgR3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB0aGUgR3N0VVJJVHlwZSBkb2N1bWVudGF0aW9uIHBhZ2UgaXMgcHJpdmF0ZSwgaXQgb25seSBkZWZpbmVzIEdzdFVSSVR5cGUKCSAgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIEdzdFVSSUhhbmRsZXIgcGFnZQoKMjAwNS0xMC0yOCAxNzozNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxNzozNTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50ZWQgdGhlIGNsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG9jdW1lbnRlZCB0aGUgY2xvY2tzLgoKMjAwNS0xMC0yOCAxNzozNDozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlZCBjb25maWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgY29uZmlnCgoyMDA1LTEwLTI4IDE3OjIwOjQ1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFdvcmsgYXJvdW5kIGd0a2RvYyBkZWZpY2llbmNpZXMsIGRvY3VtZW50IGEgbWFjcm8gZGlmZmVyZW50bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBXb3JrIGFyb3VuZCBndGtkb2MgZGVmaWNpZW5jaWVzLCBkb2N1bWVudCBhIG1hY3JvIGRpZmZlcmVudGx5LgoKMjAwNS0xMC0yOCAxNzowMToxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBJbXByb3ZlIEdzdEJ1ZmZlciBkb2N1bWVudGF0aW9uLiBJdCdzIG5vdyAxMDAlIFNwaWZmaWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wcm92ZSBHc3RCdWZmZXIgZG9jdW1lbnRhdGlvbi4gSXQncyBub3cgMTAwJSBTcGlmZmllci4KCjIwMDUtMTAtMjggMTY6NTQ6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIHNvbWUgc3R5bGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgc3R5bGUgZml4ZXMKCjIwMDUtMTAtMjggMTY6NDY6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1vdmUgc29tZSBtYWNyb3MgdG8gcHJpdmF0ZSBzZWN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3ZlIHNvbWUgbWFjcm9zIHRvIHByaXZhdGUgc2VjdGlvbnMKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGFkZCBkZXNjcmlwdGlvbnMgcHJvdmlkZWQgYnkgZHMgYW5kIHNvbWUgbW9yZQoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbWFyayBtYWNybyBhcyB0byBiZSByZW1vdmVkCgoyMDA1LTEwLTI4IDE2OjIxOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIGFuIGl0ZW0gdG8gVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIGFuIGl0ZW0gdG8gVE9ETy4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9mb2xkKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZCBpdGVyYXRvciBkb2NzLgoKMjAwNS0xMC0yOCAxNjowODo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgYWRkIHN0eWxlIGd1aWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3R5bGUgZ3VpZGUKCjIwMDUtMTAtMjggMTA6NDU6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IGxlYWsgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KToKCSAgRG9uJ3QgbGVhayBjbGFzcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfbG9vcCk6CgkgIEFuIEVPUyBldmVudCBtYXJrcyB0aGUgcXVldWUgYXMgY29tcGxldGVseSBmaWxsZWQuCgoyMDA1LTEwLTI3IDIwOjU5OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBTb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCBkZWJ1Z2dpbmcsCgkgIFByb3RlY3QgdHJhbnNmb3JtIGFuZCBjb25jdXJyZW50IGJ1ZmZlciBhbGxvYyB3aXRoIGEgbmV3IGxvY2suCgkgIFRyeSBub3QgdG8gYnJlYWsgQUJJL0FQSS4KCjIwMDUtMTAtMjcgMTk6Mzc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1vdmUgc29tZSBzdHVmZiBhcm91bmQgYW5kIGNsZWFudXAgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3VubG9jayksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19kZWFjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNb3ZlIHNvbWUgc3R1ZmYgYXJvdW5kIGFuZCBjbGVhbnVwIHRoaW5ncy4KCjIwMDUtMTAtMjcgMTU6NDg6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFkZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIEFkZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCgoyMDA1LTEwLTI3IDEzOjQ3OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBbiBleHRyYSByZWZjb3VudCBpcyB0YWtlbiBpbiBiYXNlc3JjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFuIGV4dHJhIHJlZmNvdW50IGlzIHRha2VuIGluIGJhc2VzcmMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBTbWFsbCBjbGVhbnVwcywgY2hlY2sgZm9yIGZsdXNoaW5nIGFmdGVyIGJlaW5nIHVubG9ja2VkIGZyb20gdGhlCgkgIExJVkVfTE9DSy4gdGFrZSByZWZjb3VudHMgY29ycmVjdGx5IChub3QgeWV0IGV2ZXJ5d2hlcmUpLgoJICBEb24ndCBzZW5kIG91dCBFT1Mgd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDUtMTAtMjcgMDg6NTU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIG1vcmUgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBTb21lIG1vcmUgZGVidWcuCgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgUmVtb3ZlIG9sZCBvcHRpb24uCgoyMDA1LTEwLTI2IDE4OjU3OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXhpbmcgZXhhbXBsZXMgZml4aW5nIGRvY3MgdHlwb3MgY2hhbmdpbmcgbG9nIHByaW9yaXR5IGluIGVycm9yIHNpdHVhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBmaXhpbmcgZXhhbXBsZXMKCSAgZml4aW5nIGRvY3MgdHlwb3MKCSAgY2hhbmdpbmcgbG9nIHByaW9yaXR5IGluIGVycm9yIHNpdHVhdGlvbnMKCjIwMDUtMTAtMjYgMTA6MTE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBtYWtlIHN1cmUgZGlycyBnZXQgY2hlY2tlZCBvdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugc3VyZSBkaXJzIGdldCBjaGVja2VkIG91dAoKMjAwNS0xMC0yNiAwOTo1Njo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgZml4IGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0CgoyMDA1LTEwLTI1IDE3OjQxOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIGRvYyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgU29tZSBkb2MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIENhY2hlIHByZXZpb3VzbHkgcmVxdWVzdGVkIHF1ZXJ5IERVUkFUSU9OIGZvciBzcGVlZC4gaW52YWxpZGF0ZQoJICBjYWNoZWQgZHVyYXRpb24gaWYgZWxlbWVudCBwb3N0cyBhIERVUkFUSU9OIG1lc3NhZ2UuCgoyMDA1LTEwLTI1IDE1OjM5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEhhbmRsZSBTRUdNRU5UX1NUQVJUL0RPTkUgbWVzc2FnZXMgY29ycmVjdGx5LgoJICBNb3JlIGV2b2x2ZWQgcXVlcnkgYWxnb3JpdGhtIHRoYXQgaGFuZGxlcyBkdXJhdGlvbiBxdWVyaWVzCgkgIGNvcnJlY3RseS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9xdWVyeSksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgZG9jLgoKMjAwNS0xMC0yNSAxMDoxNTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHVzZSBpbnZhbGlkIHN0cmVhbV90aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCB1c2UgaW52YWxpZCBzdHJlYW1fdGltZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgIHN0cmVhbV90aW1lIGluIG5ld3NlZ21lbnQgY2Fubm90IGJlIHVuZGVmaW5lZC4KCjIwMDUtMTAtMjUgMTA6MTI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0aGUgY2hhbmdlbG9nIGxhc3QgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRoZSBjaGFuZ2Vsb2cgbGFzdCB0aW1lCgoyMDA1LTEwLTI0IDE1OjQxOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIERvYyBmaXguCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKToKCSAgRml4IHBvdGVudGlhbCBkZWFkbG9jayB3aGVuIFFVRVVFX0xPQ0sgaXMgdGFrZW4gYmVmb3JlIFNUUkVBTV9MT0NLLgoKMjAwNS0xMC0yNCAxMTo1NjowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL3RtcGwvOiB0aGVzZSBhcmUgb2Jzb2xldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBhcmFtLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBsaW5pbnQuc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcG1hbi5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwc21vb3RoLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0dW5pdGNvbnZlcnQuc2dtbDoKCSAgdGhlc2UgYXJlIG9ic29sZXRlCgoyMDA1LTEwLTI0IDA5OjEzOjI3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRml4IHNvbWUgbWlub3IgZG9jdW1lbnRhdGlvbiB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHNvbWUgbWlub3IgZG9jdW1lbnRhdGlvbiB0eXBvcwoKMjAwNS0xMC0yMyAyMzowNDozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS40ID09PQoKMjAwNS0xMC0yMyAyMjozMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHRpbWUgdG8gcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGltZSB0byByZWxlYXNlCgoyMDA1LTEwLTIzIDEwOjQ5OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBhZGQgbW9yZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgZmlsZXMKCjIwMDUtMTAtMjMgMTA6Mjk6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogVXNlIGZzZWVrbygpIGFuZCBmdGVsbG8oKSBpZiBhdmFpbGFibGUuIFdoZW4gZmFsbGluZyBiYWNrIG9uIGxzZWVrKCkgdG8gZ2V0IHRoZSBjdXJyZW50IG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpOgoJICBVc2UgZnNlZWtvKCkgYW5kIGZ0ZWxsbygpIGlmIGF2YWlsYWJsZS4gV2hlbiBmYWxsaW5nIGJhY2sgb24KCSAgbHNlZWsoKSB0byBnZXQgdGhlIGN1cnJlbnQgb2Zmc2V0LCBmZmx1c2goKSBmaXJzdCB0byBtYWtlIHN1cmUKCSAgZXZlcnl0aGluZyBpcyB1cC10by1kYXRlIGFuZCB3ZSBnZXQgdGhlIHJpZ2h0IG9mZnNldC4KCjIwMDUtMTAtMjMgMDk6MDg6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcG8vUE9URklMRVMuaW46CgkgIHJlbW92ZSBwcmVtYXR1cmVseSBhZGRlZCBlcnJvciBjYXRlZ29yeSBhbmQgY2xlYW4gdXAgdGhlIGluc3RhbmNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHByZW1hdHVyZWx5IGFkZGVkIGVycm9yIGNhdGVnb3J5IGFuZCBjbGVhbiB1cCB0aGUgaW5zdGFuY2VzCgoyMDA1LTEwLTIxIDE3OjUzOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2ltcGx5IHNldCB0aGUgcmlnaHQgZmxhZyB3aGVuIGdvaW5nIHRvIHBsYXlpbmcsIHRoYXQncyBhbGwgd2UgbmVlZCB0byBkbyBpbnN0ZWFkIG9mIGNhbGxpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2ltcGx5IHNldCB0aGUgcmlnaHQgZmxhZyB3aGVuIGdvaW5nIHRvIHBsYXlpbmcsIHRoYXQncyBhbGwKCSAgd2UgbmVlZCB0byBkbyBpbnN0ZWFkIG9mIGNhbGxpbmcgYSBmdW5jdGlvbiBpbnNpZGUgdGhlIG9iamVjdAoJICBsb2NrICh0aGF0IGNvdWxkIHRha2UgdGhlIGxvY2sgYXMgd2VsbCBhbmQgZGVhZGxvY2spCgoyMDA1LTEwLTIxIDE2OjE4OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB3YXJuLCB0aGUgcGVlciBlbGVtZW50IGtub3dzIHdoYXQgdG8gZG8gYmVzdCB3aGVuIHRoZSBzZWVrIGZhaWxlZCwgaXQgbWlnaHQgdHJ5IHNvbWV0aGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgRG9uJ3Qgd2FybiwgdGhlIHBlZXIgZWxlbWVudCBrbm93cyB3aGF0IHRvIGRvIGJlc3Qgd2hlbgoJICB0aGUgc2VlayBmYWlsZWQsIGl0IG1pZ2h0IHRyeSBzb21ldGhpbmcgZWxzZS4KCjIwMDUtMTAtMjEgMTY6MTQ6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBGaXggc2Vla2luZy4KCjIwMDUtMTAtMjEgMTU6MTM6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgTW9yZSBkb2NzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIENvcnJlY3RseSBzZXQgY2FwcywgZXZlbiBvbiB0aGUgc3ViYnVmZXIuCgoyMDA1LTEwLTIxIDExOjM2OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQW5kIDIlIG1vcmUgZG9jIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZmluYWxpemUpLCAoZ3N0X3Rhc2tfZnVuYyk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQW5kIDIlIG1vcmUgZG9jIGNvdmVyYWdlLgoKMjAwNS0xMC0yMSAwOToyNDoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfcXVlcnkpOiBDbGVhbiB1cCBwZXJjZW50IHBvc2l0aW9uIHJlcG9ydGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfcXVlcnkpOiBDbGVhbiB1cCBwZXJjZW50CgkgIHBvc2l0aW9uIHJlcG9ydGluZy4KCjIwMDUtMTAtMjAgMjE6MDg6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoZ3N0X2Vycm9yX2dldF9tZXNzYWdlKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1vcmUgZG9jcy4KCjIwMDUtMTAtMjAgMjA6NDY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBbm90aGVyIDElIG1vcmUgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgIEFub3RoZXIgMSUgbW9yZSBjb3ZlcmFnZS4KCjIwMDUtMTAtMjAgMjA6MjU6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBZYXkhIDElIG1vcmUgZG9jcyBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgWWF5ISAxJSBtb3JlIGRvY3MgY292ZXJhZ2UuCgoyMDA1LTEwLTIwIDE5OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRG9jcyBhbmQgY29uc2lzdGVuY3kgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRG9jcyBhbmQgY29uc2lzdGVuY3kgZml4ZXMuCgoyMDA1LTEwLTIwIDE5OjMwOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRhc2suKjogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIE1vcmUgZG9jcy4KCjIwMDUtMTAtMjAgMTc6MjI6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFJld29ya2VkIHRoZSBtZXNzYWdlIGhhbmRsaW5nIGEgYml0LCBjYWNoZSB0aGUgbWVzc2FnZXMgaW5zdGVhZCBvZiBvbmx5IHRoZSBzZW5kZXJzLiBhbG93cyB1cyB0byBkbyBtb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBSZXdvcmtlZCB0aGUgbWVzc2FnZSBoYW5kbGluZyBhIGJpdCwgY2FjaGUgdGhlIG1lc3NhZ2VzIGluc3RlYWQgb2YKCSAgb25seSB0aGUgc2VuZGVycy4gYWxvd3MgdXMgdG8gZG8gbW9yZSBpbiB0aGUgZnV0dXJlLgoKMjAwNS0xMC0yMCAxNzoxODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBEb24ndCB1c2UgY2xvY2sgdGltZSB0byByZXBvcnQgcG9zaXRpb24gd2hlbiBpbiBFT1MuCgoyMDA1LTEwLTIwIDEzOjEwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGludGVyZmFjZSBvdXRwdXQgd2l0aCBnc3QtaW5zcGVjdCAtYTsgZG9uJ3QgcHJpbnQgbmV3bGluZXMgYWZ0ZXIgZG91YmxlL2Zsb2F0IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBpbnRlcmZhY2Ugb3V0cHV0IHdpdGggZ3N0LWluc3BlY3QgLWE7IGRvbid0IHByaW50CgkgIG5ld2xpbmVzIGFmdGVyIGRvdWJsZS9mbG9hdCBwcm9wZXJ0aWVzLgoKMjAwNS0xMC0yMCAxMTo0ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNwZWVkIHVwIGN1cnJlbnQgcG9zaXRpb24gY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgU3BlZWQgdXAgY3VycmVudCBwb3NpdGlvbiBjYWxjdWxhdGlvbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCk6CgkgIENvcnJlY3RseSBzZXQgc3RyZWFtIHBvc2l0aW9uIGluIG5ld3NlZ21lbnQuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChhZGRfdG9fcXVldWUpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgIENsZWFuIHVwIGRlYnVnZ2luZyBpbmZvCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUGF1c2UgdGFzayBmYXN0ZXIuCgoyMDA1LTEwLTE5IDE3OjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IHF1ZXJ5IGhhbmRsaW5nIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZG9fcGxheWluZyk6CgkgIEZpeCBxdWVyeSBoYW5kbGluZyBhZ2Fpbi4KCjIwMDUtMTAtMTkgMTU6NTA6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBUEkgY2hhbmdlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGRvX3BsYXlpbmcpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3F1ZXJ5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLCAoZmluZF9lbGVtZW50X2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgQVBJIGNoYW5nZSBmaXguCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9uZXdfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQnVuZGxpbmcgcXVlcnkgcG9zaXRpb24vZHVyYXRpb24gaXMgbm90IGEgZ29vZCBpZGVhIHNpbmNlIGR1cmF0aW9uCgkgIGRvZXMgbm90IGNoYW5nZSBtdWNoIGFuZCB3ZSBkb24ndCB3YW50IHRvIHJlY2FsY3VsYXRlIGl0IGZvciBldmVyeQoJICBwb3NpdGlvbiBxdWVyeSwgc28gdGhleSBhcmUgc2VwYXJhdGVkIGFnYWluLi4KCSAgQmFzZSB2YWx1ZSBpbiBzZWdtZW50IHF1ZXJ5IGlzIG5vdCBuZWVkZWQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbiksIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9wYWRfcXVlcnlfZHVyYXRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBVcGRhdGVzIGZvciBxdWVyeSBBUEkgY2hhbmdlLgoJICBBZGRlZCBzb21lIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgoyMDA1LTEwLTE5IDExOjQzOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogd2FpdCBvbiB0aHJlYWQgdG8gZGllIHNvIHdlIGNhbiBjaGVjayByZWZjb3VudCBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHdhaXQgb24gdGhyZWFkIHRvIGRpZSBzbyB3ZSBjYW4gY2hlY2sgcmVmY291bnQgY29ycmVjdGx5CgoyMDA1LTEwLTE5IDExOjQzOjE4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHRvb2xzIHBhY2thZ2UgbmFtaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdG9vbHMgcGFja2FnZSBuYW1pbmcKCjIwMDUtMTAtMTkgMTE6NDI6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBsb2cgYW4gaWYgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgYW4gaWYgYnJhbmNoCgoyMDA1LTEwLTE4IDE3OjMwOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiBNYWtlIGNoZWNrIGEgbGl0dGxlIG1vcmUgdGltZSBjb25zdW1pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBjaGVjayBhIGxpdHRsZSBtb3JlIHRpbWUgY29uc3VtaW5nLgoKMjAwNS0xMC0xOCAxNzowNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogU21hbGwgc3RhdGUgY2hhbmdlIHRvcnR1cmUgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSksIChtYWluKToKCSAgU21hbGwgc3RhdGUgY2hhbmdlIHRvcnR1cmUgdGVzdC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGRvX3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBOZXZlciB0YWtlIHN0YXRlIGxvY2sgZnJvbSBzdHJlYW1pbmcgdGhyZWFkLCBjbGVhbiB1cCB1Z2x5CgkgIGhhY2tzLiBVbmZvcnR1bmF0bHkgY29yZSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBuaWNlIHdheXMgdG8KCSAgYXN5bmMgY29tbWl0IHN0YXRlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgU3RhcnQgc3RhdGUgcmVjYWxjIGlmIGEgU1RBVEVfRElSVFkgbWVzc2FnZSBpcyBwb3N0ZWQsIGJ1dCBvbmx5CgkgIG9uIHRoZSB0b3BsZXZlbCBiaW4uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBTdGF0ZSB2YXJpYWJsZXMgYXJlIG5vdyBwcm90ZWN0ZWQgd2l0aCB0aGUgTE9DSywgdGhlIHN0YXRlCgkgIGxvY2sgaXMgb25seSB1c2VkIHRvIHNlcmlhbGl6ZSBfc2V0X3N0YXRlKCkuCgoyMDA1LTEwLTE4IDE2OjI1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU2VyaW91c2x5LCB0aGlzIGlzIGJldHRlciB0aGFuIGEgcHJldmlvdXMgY29tbWl0IGFzIHdlIG9ubHkgbmVlZCB0byBub3RpZnkgdGhlIGZhY3QgdGhhdCBhbiBlbGVtZW50IGNoYW5nZWQgc3RhdGUgaW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcmVjYWxjX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfZGlydHkpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgU2VyaW91c2x5LCB0aGlzIGlzIGJldHRlciB0aGFuIGEgcHJldmlvdXMgY29tbWl0IGFzIHdlIG9ubHkgbmVlZAoJICB0byBub3RpZnkgdGhlIGZhY3QgdGhhdCBhbiBlbGVtZW50IGNoYW5nZWQgc3RhdGUgaW4gYSBzdHJlYW1pbmcKCSAgdGhyZWFkLCBtYXJraW5nIHRoZSBzdGF0ZSBvZiB0aGUgcGFyZW50cyBkaXJ0eSwgaGVuY2UgdGhlCgkgIFNUQVRFX0RJUlRZIG1lc3NhZ2UgaW5zdGVhZCBvZiBhYnVzaW5nIGEgYm9vbGVhbiBpbiBhIFNUQVRFX0NIQU5HRQoJICBtZXNzYWdlLgoKMjAwNS0xMC0xOCAxNToxNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENsZWFudXBzLCBwcmVwYXJlIGZvciBzdGF0ZSBjaGFuZ2UgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgIENsZWFudXBzLCBwcmVwYXJlIGZvciBzdGF0ZSBjaGFuZ2UgZml4ZXMuCgoyMDA1LTEwLTE4IDE0OjI5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUGVuZGluZyBBQkkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgUGVuZGluZyBBQkkgY2hhbmdlcy4KCSAgR1RocmVhZFBvb2wgaW4gR3N0QmluQ2xhc3MgdG8gbW9uaXRvciBhc3luYyBzdGF0ZSBjaGFuZ2VzLgoJICBzdGF0ZV9jb29raWUgaW4gR3N0RWxlbWVudCB0byBkZXRlY3QgY29uY3VycmVudCBnc3Qvc2V0IHN0YXRlLgoJICBzZXRfc3RhdGUgaXMgbm93IHZpcnR1YWwgdG9vIGluIGNhc2UgYSB2ZXJ5IGNvbXBsaWNhdGVkIGVsZW1lbnQKCSAgaGFzIHRvIGJlIGNvbnN0cnVjdGVkLgoKMjAwNS0xMC0xOCAxMzoxOToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgbWVzc2FnZXMgZnV0dXJlIHByb29mLiBzdGF0ZS1jaGFuZ2UgZ2V0cyBhIGZsYWcgaWYgaXQgd2FzIGEgbWVzc2FnZSBjb21taW5nIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwKCSAgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIG1lc3NhZ2VzIGZ1dHVyZSBwcm9vZi4KCSAgc3RhdGUtY2hhbmdlIGdldHMgYSBmbGFnIGlmIGl0IHdhcyBhIG1lc3NhZ2UgY29tbWluZyBmcm9tIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLgoJICBzZWdtZW50LXN0YXJ0L3N0b3AgY2FuIGFsc28gYmUgc3BlY2lmaWVkIGluIG90aGVyIGZvcm1hdHMuCgkgIEEgbWVzc2FnZSB0byBub3RpZnkgYW4gYXBwIHRoYXQgYSBwaXBlbGluZSBjaGFuZ2VkIHBsYXliYWNrCgkgIGR1cmF0aW9uLgoJICBBbHNvIGZpeCBhIEdzdE1lc3NhZ2UgbGVhayBpbiAtbGF1bmNoCgoyMDA1LTEwLTE4IDEwOjMyOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9kaXNwb3NlKTogTW9yZSBoZWxwZnVsIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOiBNb3JlIGhlbHBmdWwgbWVzc2FnZS4KCjIwMDUtMTAtMTggMDg6MjA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBpbmZvIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaW5mbyBtZXNzYWdlcwoKMjAwNS0xMC0xOCAwNzoxMzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogdW5yZWYgYSBwbHVnLWluIHdlIGdldCB0aGF0IHdhcyBhbHJlYWR5IGluaXRpYWxpemVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIHVucmVmIGEgcGx1Zy1pbiB3ZSBnZXQgdGhhdCB3YXMgYWxyZWFkeSBpbml0aWFsaXplZAoKMjAwNS0xMC0xNyAyMDoxNjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkIG5ldyBhcGkgZW50cmllcyBoaWRlIGludGVybmFsIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBhZGQgbmV3IGFwaSBlbnRyaWVzCgkgIGhpZGUgaW50ZXJuYWwgbWFjcm8KCjIwMDUtMTAtMTcgMTg6MDk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6IFNsaWdodCBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOiBTbGlnaHQKCSAgY2xlYW51cC4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGdzdGVudW10eXBlcy5jKTogVGhyZWFkc2FmZSBub3cuCgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF9uZXcsIGdzdF9ldmVudF9maW5hbGl6ZSk6IExPRy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IHMvSU5GTy9ERUJVRy8uCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IEJldHRlciBkZWJ1ZyBtZXNzYWdlLgoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKTogcy9JTkZPL0RFQlVHLy4KCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUsIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfaW5pdCk6IHMvSU5GTy9MT0cvLgoJICAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6IHMvSU5GTy9MT0cvLgoKMjAwNS0xMC0xNyAxNzo0NjozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIENoZWNrIHZhbGlkaXR5IG9mIGVuZCB0aW1lIGJhc2VkIG9uIGVuZCB0aW1lIHZhcmlhYmxlLCBub3Qgc3RhcnQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoZWNrIHZhbGlkaXR5IG9mIGVuZCB0aW1lIGJhc2VkIG9uIGVuZCB0aW1lIHZhcmlhYmxlLCBub3Qgc3RhcnQgdGltZS4KCjIwMDUtMTAtMTcgMTc6MDU6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1lcmdlIGNvbnRyb2xsZXIgdGVzdHN1aXRlcyBmaXggYnJva2VuIHRlc3RzIHJlbW92ZSBtZW0tY2h1bmsgZnJvbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkgIG1lcmdlIGNvbnRyb2xsZXIgdGVzdHN1aXRlcwoJICBmaXggYnJva2VuIHRlc3RzCgkgIHJlbW92ZSBtZW0tY2h1bmsgZnJvbSBkb2NzCgoyMDA1LTEwLTE3IDE0OjQyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IG91dC4gIGdldCBvdXQuICB5b3UncmUgZmlyZWQuICB0byB0aGUgQXR0aWMgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5jOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIG91dC4gIGdldCBvdXQuICB5b3UncmUgZmlyZWQuICB0byB0aGUgQXR0aWMgIQoKMjAwNS0xMC0xNyAxNDozNzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBmaXggc2lnbmVkbmVzcyBpc3N1ZXMgaW4gYSAoaG9wZWZ1bGx5KSBjb3JyZWN0IHdheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgZml4IHNpZ25lZG5lc3MgaXNzdWVzIGluIGEgKGhvcGVmdWxseSkgY29ycmVjdCB3YXkKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgc29tZSBkZWJ1Z2dpbmcKCjIwMDUtMTAtMTcgMTA6Mzc6MTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRml4IGEgZG9jIHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggYSBkb2MgdHlwby4KCjIwMDUtMTAtMTcgMDk6Mjg6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmg6IEZpeCBwcm90b3R5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5oOiBGaXggcHJvdG90eXBlcy4KCjIwMDUtMTAtMTYgMTQ6MzI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBnc3RfdmVyc2lvbl9zdHJpbmcgKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnc3RfdmVyc2lvbl9zdHJpbmcgKCkKCjIwMDUtMTAtMTYgMTM6NTU6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGNvbW1lbnQ7IHVwZGF0ZSB3aW4zMiBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWVudDsgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgoyMDA1LTEwLTE2IDEyOjM3OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgRGVhciBBbmR5OiBoZXJlJ3MgYSBzY3JpcHQgdG8gdXBkYXRlIHN0dWZmIGZyb20gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEZWFyIEFuZHk6CgkgIGhlcmUncyBhIHNjcmlwdCB0byB1cGRhdGUgc3R1ZmYgZnJvbSBDVlMKCSAgTG92ZSwKCSAgVGhvbWFzCgoyMDA1LTEwLTE2IDEyOjI4OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2xlYW4gdXAgZnVydGhlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNsZWFuIHVwIGZ1cnRoZXIKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgaXQncyBQTFVHSU5ESVIgbm93CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIHVzZSBnaW50NjQsIHRoZSByYW5nZSBjb3VsZCBiZSBiaWdnZXIgdGhhbiBhIGd1aW50CgoyMDA1LTEwLTE2IDExOjQ4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgR1N0cmVhbWVyIGNvbnN1bHRhbnRzIHdpbGwgbWFrZSBhIGxvdCBvZiBtb25leSBpbiAyMDM4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHU3RyZWFtZXIgY29uc3VsdGFudHMgd2lsbCBtYWtlIGEgbG90IG9mIG1vbmV5IGluIDIwMzgKCjIwMDUtMTAtMTYgMTA6NTg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGd1aW50IGogZGl2aW5nIHVuZGVyIDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIEZpeCBndWludCBqIGRpdmluZyB1bmRlciAwCgoyMDA1LTEwLTE2IDEwOjM4OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrIGZvciBwcm9jZXNzLmgsIGRlY2xhcmVzIGdldHBpZCgpIG9uIFdpbmRvd3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGNoZWNrIGZvciBwcm9jZXNzLmgsIGRlY2xhcmVzIGdldHBpZCgpIG9uIFdpbmRvd3MKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBpbmNsdWRlIHByb2Nlc3MuaCBpZiB3ZSBoYXZlIGl0CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6IChwb3B1bGF0ZSksIChnc3RfbWVtX2NodW5rX25ldyk6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgIGZpeCBzaWduZWRuZXNzIGlzc3VlcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBmaXggZ2V0X3R5cGUncwoKMjAwNS0xMC0xNiAxMDoyMjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBmaXggc2lnbmVkbmVzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHNpZ25lZG5lc3MKCjIwMDUtMTAtMTYgMTA6MTg6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGZpeCBHU1RfVkVSU0lPTgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IEdTVF9WRVJTSU9OCgoyMDA1LTEwLTE2IDEwOjE1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBmaXggaW5saW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggaW5saW5lCgoyMDA1LTEwLTE2IDEwOjEyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBkZWZpbmUgUEFDS0FHRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVmaW5lIFBBQ0tBR0UKCjIwMDUtMTAtMTYgMTA6MTA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZSBhdmFpbGFibGUgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGF2YWlsYWJsZSBoZWFkZXJzCgoyMDA1LTEwLTE2IDA5OjU2OjMzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBhIGJhZCBidWcgd2l0aCBhIHNpbXBsZSBmaXguIEJlY2F1c2Ugb2YgdW5zaWduZWQgaW50cywgY2FwcyBpbnRlcnNlY3Rpb24gd2FzIGdvaW5nIG51dHMgYW5kIHRyeWluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOiBGaXggYSBiYWQgYnVnIHdpdGggYQoJICBzaW1wbGUKCSAgZml4LiBCZWNhdXNlIG9mIHVuc2lnbmVkIGludHMsIGNhcHMgaW50ZXJzZWN0aW9uIHdhcyBnb2luZyBudXRzCgkgIGFuZAoJICB0cnlpbmcgdG8gYWNjZXNzIHN0cnVjdHVyZXMgd2l0aCBHX01BWFVJTlQgaW5kZXguIFRoYXQgZml4ZXMKCSAgdmlkZW90ZXN0c3JjICEgZmZtcGVnY29sb3JzcGFjZSAhIGZha2VzaW5rCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOiBsb2dzCgkgIGNvbnNpc3RlbmN5LgoKMjAwNS0xMC0xNiAwOTo1NToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA1LTEwLTE2IDA5OjU0OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHlwbwoKMjAwNS0xMC0xNiAwOTo1MToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlcyBmb3IgMmluMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgZm9yIDJpbjMyCgoyMDA1LTEwLTE2IDA5OjQ0OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIG1vcmUgZGVmaW5lIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRlZmluZSBmaXhlcwoKMjAwNS0xMC0xNiAwOToyMDo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSB0aGUgZ2V0dGV4dCBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSB0aGUgZ2V0dGV4dCBtYWNybwoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSAgdXBkYXRlIGZvciBHU1RfUEFDS0FHRV9OQU1FLCBHU1RfUEFDS0FHRV9PUklHSU4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZWQgY29uZmlnLmgKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZCB0aGUgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgY29uZmlnLmgKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlZCBjb3BpZXMKCjIwMDUtMTAtMTYgMDk6MTE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICByZW1vdmUgbW9yZSBQS0dfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbW9yZSBQS0dfQ0ZMQUdTCgoyMDA1LTEwLTE2IDA5OjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGFkZCB0aGUgbmFubwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfdmVyc2lvbik6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgYWRkIHRoZSBuYW5vCgoyMDA1LTEwLTE2IDA4OjU5OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHJlbW92ZSBHU1RfUEtHX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIEdTVF9QS0dfQ0ZMQUdTCgoyMDA1LTEwLTE1IDIyOjI0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IE9vcHMsIGFkZCBtaXNzaW5nIGNsb3NpbmcgYnJhY2tldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE9vcHMsIGFkZCBtaXNzaW5nIGNsb3NpbmcgYnJhY2tldC4KCjIwMDUtMTAtMTUgMjE6NDE6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgY29tbW9uIG00J3MgZm9yIGFyZ3VtZW50IGNoZWNraW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIGNvbW1vbiBtNCdzIGZvciBhcmd1bWVudCBjaGVja2luZwoKMjAwNS0xMC0xNSAyMDozMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfRVZFTlRfVFlQRV9OQU1FKCkgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBHU1RfRVZFTlRfVFlQRV9OQU1FKCkgbWFjcm8uCgoyMDA1LTEwLTE1IDIwOjAwOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMKCjIwMDUtMTAtMTUgMTk6NTc6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcHJpdmF0aXplIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgcHJpdmF0aXplIG1vcmUgc3ltYm9scwoKMjAwNS0xMC0xNSAxODoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGFkZCBzcmNkaXIsIGJ1aWxkZGlyIGluY2x1ZGVzIHRvIEdTVF9BTExfQ0ZMQUdTLCBzaW5jZSBldmVyeXRoaW5nIHRoYXQgdXNlcyBHU3RyZWFtZXIgQVBJIHNob3VsZCBoYXZlIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBhZGQgc3JjZGlyLCBidWlsZGRpciBpbmNsdWRlcyB0byBHU1RfQUxMX0NGTEFHUywgc2luY2UKCSAgZXZlcnl0aGluZyB0aGF0IHVzZXMgR1N0cmVhbWVyIEFQSSBzaG91bGQgaGF2ZSB0aGUgaW5jbHVkZXMKCjIwMDUtMTAtMTUgMTc6NTk6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ2l2ZSBlYWNoIHZhbHVlIGEgX2dldF90eXBlLCByZW1vdmVzIHRoZSBEQVRBIGV4cG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGdpdmUgZWFjaCB2YWx1ZSBhIF9nZXRfdHlwZSwgcmVtb3ZlcyB0aGUgREFUQSBleHBvcnRzCgoyMDA1LTEwLTE1IDE3OjIyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBmaXggbGluayBmbGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxpbmsgZmxhZ3MKCjIwMDUtMTAtMTUgMTY6Mzk6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzIGZpbGUKCjIwMDUtMTAtMTUgMTY6Mzc6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcwoKMjAwNS0xMC0xNSAxNjozMzowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Lio6IHJlbW92ZSBfZ3N0X3JlZ2lzdHJ5X2F1dG9fbG9hZCwgbm90IHVzZWQgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICByZW1vdmUgX2dzdF9yZWdpc3RyeV9hdXRvX2xvYWQsIG5vdCB1c2VkIGFueW1vcmUKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1ha2UgX2dldF90eXBlIGZ1bmN0aW9ucyBzaW1pbGFyLCBmaXhlcyBkYXRhIGV4cG9ydCBmcm9tIGxpYnJhcnkKCjIwMDUtMTAtMTUgMTY6MTY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBJJ20gdG9vIGxhenkgdG8gY29tbWVudCB0aGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBndGstZG9jIGluc2lzdHMgb24gaW5zZXJ0aW5nIDxQQVJBPiBhdCBldmVyeSBlbXB0eSBsaW5lLCBzaWdoCgoyMDA1LTEwLTE1IDE2OjAxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpdHlwZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHZhcmlvdXMgc3R5bGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgc3R5bGUgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIGV4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIGV4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2RpcmVudC5jOgoJKiB3aW4zMi9nc3Rjb25maWcuaDoKCSogd2luMzIvZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9ndGNoYXIuaDoKCSogd2luMzIvbW1hbi5oOgoJKiB3aW4zMi92czcvbW1hbi5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vZ3N0YnN0ZXN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0MS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdGZpbGUxOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uL3BhZF9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9jaGFpbm5vcHVsbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9nZXRub3B1c2guYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVnaXN0cnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVnaXN0cnkvZ3N0LXByaW50LWZvcm1hdHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMtMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzctMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc3MTMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzgxOS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9ncm91cF9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9xdWV1ZV9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9yZWxpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VubGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5yZWYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VzZWxlc3NfaXRlcmF0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9nc3Ric3Rlc3QuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdDEuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdGZpbGUxOgoJKiB0ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDEuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDIuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDMuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDQuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDUuYzoKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uL3BhZF9saW5rLmM6CgkqIHRlc3RzdWl0ZS9wYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wYWQvY2hhaW5ub3B1bGwuYzoKCSogdGVzdHN1aXRlL3BhZC9nZXRub3B1c2guYzoKCSogdGVzdHN1aXRlL3BhZC9saW5rLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0c3VpdGUvcmVnaXN0cnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9yZWdpc3RyeS9nc3QtcHJpbnQtZm9ybWF0cy5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMtMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzcxMy5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4MTkuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9ncm91cF9saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3F1ZXVlX2xpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvcmVsaW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VubGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91bnJlZi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91c2VsZXNzX2l0ZXJhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTI6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjb3JyZWN0bHkgbWFrZSBjb25kaXRpb25hbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjb3JyZWN0bHkgbWFrZSBjb25kaXRpb25hbHMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGZpeCB0eXBvIGNhdXNpbmcgZmRzcmMgbm90IHRvIGJ1aWxkCgoyMDA1LTEwLTE1IDE1OjMwOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjAxOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2hlY2sgZm9yIHNvbWUgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrIGZvciBzb21lIGhlYWRlcnMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGRvbid0IGNvbXBpbGUgZmRzcmMgd2l0aG91dCBzeXMvc29ja2V0LmgKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIGRvbid0IGNvbXBpbGUgZmlsZWluZGV4IHdpdGhvdXQgbW1hcAoKMjAwNS0xMC0xNSAxMzo1ODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHJlb3JnYW5pemUgY2xlYW4gdXAgZG9jdW1lbnQgbW9yZSByZW1vdmUgY3J1ZnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICByZW9yZ2FuaXplCgkgIGNsZWFuIHVwCgkgIGRvY3VtZW50IG1vcmUKCSAgcmVtb3ZlIGNydWZ0CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCk6CgkgIGNvbXBpbGUgZml4ZXMsIHRob3VnaCBpdCdzIG5vdCBiZWluZyBjb21waWxlZCBjdXJyZW50bHkKCjIwMDUtMTAtMTUgMTM6MjQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBjbGVhbiB1cCBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgcGMgZmlsZXMKCjIwMDUtMTAtMTUgMTI6MDM6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGlyCgoyMDA1LTEwLTE1IDEwOjM0OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGRpcmVjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRpcmVjdG9yeQoKMjAwNS0xMC0xNSAwMDoyMjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoKMjAwNS0xMC0xNSAwMDoyMDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MTU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MTI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgc2lnbmVkbmVzcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoKMjAwNS0xMC0xNCAxNzowMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3R0YWcuYzogQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciB0aGUgbmV3IHRhZ2xpc3QgZGF0ZSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R0YWcuYzogKHRlc3RfZGF0ZV90YWdzKSwgKGdzdF90YWdfc3VpdGUpOgoJICBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIHRoZSBuZXcgdGFnbGlzdCBkYXRlIEFQSS4KCjIwMDUtMTAtMTQgMTQ6MTA6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvOiBCZWF1dGlmeSAnbGFzdC1tZXNzYWdlJyBvdXRwdXQ6IHByaW50ICdub25lJyBmb3IgYnVmZmVyIHRpbWVzdGFtcHMgYW5kIGR1cmF0aW9ucyBpZiBub25lIGlzIHNldDsgaW1wcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBCZWF1dGlmeSAnbGFzdC1tZXNzYWdlJyBvdXRwdXQ6IHByaW50ICdub25lJyBmb3IgYnVmZmVyIHRpbWVzdGFtcHMKCSAgYW5kIGR1cmF0aW9ucyBpZiBub25lIGlzIHNldDsgaW1wcm92ZSBhbGlnbm1lbnQgd2l0aCBuZXh0IG1lc3NhZ2VzLgoKMjAwNS0xMC0xNCAxMTowOToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJIHRvIGNoZWNrIHBsdWdpbiBmZWF0dXJlIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2NoZWNrX3ZlcnNpb24pOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfZGVmYXVsdF9yZWdpc3RyeV9jaGVja19mZWF0dXJlX3ZlcnNpb24pOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGNoZWNrIHBsdWdpbiBmZWF0dXJlIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKHRlc3RfdmVyc2lvbl9jaGVja3MpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIFNvbWUgYmFzaWMgdGVzdHMgZm9yIHRoZSBhYm92ZS4KCjIwMDUtMTAtMTMgMjE6Mjc6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBndWFyZCBhZ2FpbnN0IE5VTEwgcHJpbnRmIC0gaGFwcGVucyB3aGVuIGZvciBleGFtcGxlIGEgbWVzc2FnZSBzdHJ1Y3R1cmUgd2l0aCBHc3RDbG9jayBnZXRzIHNlcmlhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKToKCSAgZ3VhcmQgYWdhaW5zdCBOVUxMIHByaW50ZiAtIGhhcHBlbnMgd2hlbiBmb3IgZXhhbXBsZQoJICBhIG1lc3NhZ2Ugc3RydWN0dXJlIHdpdGggR3N0Q2xvY2sgZ2V0cyBzZXJpYWxpemVkCgoyMDA1LTEwLTEzIDE4OjMzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRml4IHByZXN1bWFibGUgY29weSduJ3Bhc3RvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KToKCSAgRml4IHByZXN1bWFibGUgY29weSduJ3Bhc3RvLgoKMjAwNS0xMC0xMyAxNzo1MTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYWRkIGNvcnJlY3QgaGVhZGVyIGZvciBXSU4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGNvcnJlY3QgaGVhZGVyIGZvciBXSU4zMgoKMjAwNS0xMC0xMyAxNzo0MzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZWxlbWVudHMvOiBmaXggc29tZSBzaWduZWRuZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBmaXggc29tZSBzaWduZWRuZXNzCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEkgd29uZGVyIGlmIHRoaXMgY291bGQgYWN0dWFsbHkgd3JpdGUgKzJHQiBmaWxlcyBiZWZvcmUKCjIwMDUtMTAtMTMgMTc6MjQ6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBhbiBleHBvcnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbiBleHBvcnQKCjIwMDUtMTAtMTMgMTc6MjA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgaW5jbHVkZSBoZWFkZXIgY29ycmVjdGx5OyBzaG93IG1lIHRoZSBuYW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmNsdWRlIGhlYWRlciBjb3JyZWN0bHk7IHNob3cgbWUgdGhlIG5hbWUKCjIwMDUtMTAtMTMgMTY6MzQ6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgZm9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb28KCjIwMDUtMTAtMTMgMTY6MjY6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpOiBGaXggVGltbWVrZSBXYXltYW5zIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwcyk6CgkgIEZpeCBUaW1tZWtlIFdheW1hbnMgYnVnLgoJICAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpOiBNYWtlIHN1cmUgd2UgcGFzcyBhIE5VTC10ZXJtaW5hdGVkCgkgIHN0cmluZyBvZiB0aGUgcHJvcGVyIGxlbmd0aCB0byBnc3RfY2Fwc19mcm9tX3N0cmluZy4gVGhlcmUncyBhCgkgIHBvdGVudGlhbCBmb3IsIGJlZm9yZSB0aGlzIGZpeCwgdGhhdCB0aGlzIGNvdWxkIGNhdXNlIHNvbWVvbmUKCSAgY29ubmVjdGluZyBvdmVyIHRoZSBuZXR3b3JrIHRvIGNhdXNlIGEgc2VnZmF1bHQgaWYgdGhlIHBheWxvYWQgaXMKCSAgbm90IE5VTC10ZXJtaW5hdGVkLgoKMjAwNS0xMC0xMyAxNToyNzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4ZWQgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9UT0RPLXByZS0wLjk6CgkgICogZG9jcy9yYW5kb20vb2xkL0NoYW5nZUxvZy5nc3RyZWFtZXI6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBmaXhlZCB0eXBvcwoKMjAwNS0xMC0xMyAxNToyMzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBHTGliIDIuNiBnX2ZsYWdzX2dldF9maXJzdF92YWx1ZSBoYXMgYSBidWcgdGhhdCB0cmlnZ2VycyBhbiBpbmZpbml0ZSBsb29wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ3N0X2ZsYWdzX2dldF9maXJzdF92YWx1ZSk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlciksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9kb3VibGUpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIEdMaWIgMi42IGdfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlIGhhcyBhIGJ1ZyB0aGF0IHRyaWdnZXJzIGFuCgkgIGluZmluaXRlIGxvb3AKCjIwMDUtMTAtMTMgMTU6MjI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggdXAgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBmaXggdXAgZGVidWdnaW5nCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIHByaW50IG91dCBjbG9jayBuaWNlbHkKCjIwMDUtMTAtMTMgMTU6MTM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGRlZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUoKSBhbmQgZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSksIChnc3RfdGFnX2xpc3RfZ2V0X2RhdGUpLAoJICAoZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KToKCSAgQWRkZWQgZ3N0X3RhZ19saXN0X2dldF9kYXRlKCkgYW5kIGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCgpLgoJICBHU1RfVEFHX0RBVEUgbm93IGhhcyBhIHRhZyB0eXBlIG9mIEdTVF9UWVBFX0RBVEUgKCMxNzA3NzcpLgoKMjAwNS0xMC0xMyAxNDo1NToxNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgbmV3c2VnbWVudCBhbmQgc3RvcmUgaW5mb3JtYXRpb25zIGluIENvbGxlY3REYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgbmV3c2VnbWVudCBhbmQgc3RvcmUKCSAgaW5mb3JtYXRpb25zCgkgIGluIENvbGxlY3REYXRhLgoKMjAwNS0xMC0xMyAwOTo1NzoxNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4IEdPcHRpb24gY29udGV4dCBsZWFrcyBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgZml4IEdPcHRpb24gY29udGV4dCBsZWFrcwoJICBkb2MgZml4ZXMKCjIwMDUtMTAtMTIgMjI6MzQ6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGJ1cy5jOiB1c2UgSEFWRV9VTklTVERfSAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIHVzZSBIQVZFX1VOSVNURF9ICgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnCgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIHVwZGF0ZSB2czYgZmlsZXMKCjIwMDUtMTAtMTIgMjI6MDA6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBoYWQgYSBmZXcgdG9vIG1hbnkgMEQgYnl0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhZCBhIGZldyB0b28gbWFueSAwRCBieXRlcwoKMjAwNS0xMC0xMiAyMTo1Njo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCBtb3JlIGd1aW50NjQ8LT5nZG91YmxlIGNvbnZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIGZpeCBtb3JlIGd1aW50NjQ8LT5nZG91YmxlIGNvbnZlcnNpb25zCgoyMDA1LTEwLTEyIDIwOjIzOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBhZGQgd2luMzItdXBkYXRlIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgYWRkIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBhZGQgZmlsZXMgdGhhdCB2aXN1YWwgc3R1ZGlvIGNhbid0IGdlbmVyYXRlCgoyMDA1LTEwLTEyIDE5OjM4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUHJvdGVjdCBmbGFncyB3aXRoIHByb3BlciBsb2NrLiB1bnJlZiBwcm92aWRlZCBjYWNoZWQgY2xvY2sgaW4gZGlzcG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKHJlc2V0X2RlZ3JlZSksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFByb3RlY3QgZmxhZ3Mgd2l0aCBwcm9wZXIgbG9jay4KCSAgdW5yZWYgcHJvdmlkZWQgY2FjaGVkIGNsb2NrIGluIGRpc3Bvc2UuCgoyMDA1LTEwLTEyIDE5OjE0OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgbGF5b3V0IGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxheW91dCBjbGVhbnVwCgoyMDA1LTEwLTEyIDE5OjEwOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW1vdmVkIHVudXNlZCBmbGFncyBmcm9tIG1pbmlvYmplY3QgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzogKGdzdF9taW5pX29iamVjdF9mbGFnc19nZXRfdHlwZSk6CgkgIHJlbW92ZWQgdW51c2VkIGZsYWdzIGZyb20gbWluaW9iamVjdAoJICBkb2MgZml4ZXMKCjIwMDUtMTAtMTIgMTg6MDM6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBjb252ZXJ0IHRvIHVuaXggbGluZSBlbmRzOyBzaW5jZSB0aGUgc291cmNlIGlzIGFsc28gdW5peC1zdHlsZSBsaW5lIGVuZHMsIGRldmVsb3BlcnMgZG9uJ3QgbmVlZCB0byBmaWRkbGUgYW5kIHNwZWNpYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbnZlcnQgdG8gdW5peCBsaW5lIGVuZHM7IHNpbmNlIHRoZSBzb3VyY2UgaXMgYWxzbyB1bml4LXN0eWxlIGxpbmUgZW5kcywgZGV2ZWxvcGVycyBkb24ndCBuZWVkIHRvIGZpZGRsZSBhbmQgc3BlY2lhbC1jYXNlLCBidXQgY2FuIGp1c3QgYWxsb3cgdHJhbnNsYXRpb24gb24gdGhlIGZseQoKMjAwNS0xMC0xMiAxNjowMzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBGbHVzaCBiZWZvcmUgc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19ldmVudCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEZsdXNoIGJlZm9yZSBzZWVraW5nLgoKMjAwNS0xMC0xMiAxNTo1ODoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChnc3RfaW5pdF9jaGVjayk6IElnbm9yZSB1bmtub3duIG9wdGlvbnMsIGFzIGhhcyBhbHdheXMgYmVlbiB0aGUgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChnc3RfaW5pdF9jaGVjayk6IElnbm9yZSB1bmtub3duIG9wdGlvbnMsIGFzIGhhcwoJICBhbHdheXMgYmVlbiB0aGUgY2FzZS4KCjIwMDUtMTAtMTIgMTQ6Mjg6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX3N0b3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAocmVzZXRfZGVncmVlKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pc19sb2NrZWRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3Rfc2luayksCgkgIChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwgKGdzdF9wYWRfaXNfYmxvY2tlZCksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayksIChnc3RfcGlwZWxpbmVfYXV0b19jbG9jayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICAqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6IChnc3RfZnBfc2lua19pbml0KToKCSAgKiB0ZXN0c3VpdGUvcGFkL2xpbmsuYzogKGdzdF90ZXN0X3NyY19pbml0KSwKCSAgKGdzdF90ZXN0X2ZpbHRlcl9pbml0KSwgKGdzdF90ZXN0X3NpbmtfaW5pdCk6CgkgICogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzogKG1haW4pOgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUwoJICBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoKMjAwNS0xMC0xMiAxNDoxMjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0xMC0xMiAxMjo1ODo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgU29tZSBkb2MgdXBkYXRlcy4KCSAgUmV2ZXJ0IG5vbi1pbnRlbnRpb25hbCBjaGFuZ2UuCgoyMDA1LTEwLTEyIDEyOjE4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXNlIEdzdENsb2NrVGltZSBpbiBfZ2V0X3N0YXRlKCkgaW5zdGVhZCBvZiBHVGltZVZhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCksICh0ZXN0X2V2ZW50KToKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZSksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIFVzZSBHc3RDbG9ja1RpbWUgaW4gX2dldF9zdGF0ZSgpIGluc3RlYWQgb2YgR1RpbWVWYWwuCgkgIFJlbW92ZSBvbGQgY29kZSBpbiBnc3R1dGlscy5jCgoyMDA1LTEwLTEyIDExOjQ5OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcGF1c2VfdGFzayk6IEFjdHVhbGx5IHJldHVybiBGQUxTRSBpZiB0aGVyZSBpcyBubyB0YXNrLiBTaG91bGRuJ3QgYWZmZWN0IGFueSBjb2RlLCBhcyBub3RoaW5nIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3BhdXNlX3Rhc2spOiBBY3R1YWxseSByZXR1cm4gRkFMU0UgaWYKCSAgdGhlcmUgaXMgbm8gdGFzay4gU2hvdWxkbid0IGFmZmVjdCBhbnkgY29kZSwgYXMgbm90aGluZyBpbiBvdXIKCSAgcGx1Z2lucyBjaGVja3MgdGhpcyByZXR1cm4gdmFsdWUuCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6IEFsc28gdGFrZSB0aGUgc3RyZWFtIGxvY2sgaWYgdGhlIHBhZCBoYXMgbm8KCSAgdGFzay4gRG9jcyB1cGRhdGVkLgoKMjAwNS0xMC0xMiAxMDowNTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ2xlYW51cCBhY3RpdmF0aW9uIGNvZGUuIFJlc2V0IG9sZCBzdGF0ZSBpZiBhY3RpdmF0aW9uIGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKSwgKHBvc3RfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6CgkgIENsZWFudXAgYWN0aXZhdGlvbiBjb2RlLiBSZXNldCBvbGQgc3RhdGUgaWYKCSAgYWN0aXZhdGlvbiBmYWlsZWQuCgoyMDA1LTEwLTEyIDA5OjAyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTm8gbmVlZCB0byBwcmVyb2wgYWZ0ZXIgcmVjZWl2aW5nIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE5vIG5lZWQgdG8gcHJlcm9sIGFmdGVyIHJlY2VpdmluZyBFT1MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2V2ZW50X2hhbmRsZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KToKCSAgUHJpbnQgZXZlbnRzIG1vcmUgdmVyYm9zZWx5LgoKMjAwNS0xMC0xMiAwODozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogTW92ZWQgc2lua3MyIHRlc3Rjb2RlIGluIHNpbmtzIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rczIuYzoKCSAgTW92ZWQgc2lua3MyIHRlc3Rjb2RlIGluIHNpbmtzIGNoZWNrLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gd2hlbiBfZ2V0X3N0YXRlKCkgaXRlcmF0ZWQgb3ZlciBhbgoJICBBU1lOQyBlbGVtZW50IHJpZ2h0IGJlZm9yZSBpdCBwb3N0ZWQgYSBzdGF0ZSBjb21wbGV0aW9uLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEbyBwcm9wZXIgY2FzdCBoZXJlLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgQSBwbGF5YmFjayByYXRlIG9mIDAuMCBpcyBub3QgYWxsb3dlZC4KCjIwMDUtMTAtMTIgMDI6MjY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjI1OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoyMzoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjE2OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMSAxODowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi86IFZpc3VhbCBTdHVkaW8gNiBwcm9qZWN0IGZpbGVzLCBhbmQgYSBuZXcgY29tbW9uIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzogKF90b3BlbmRpciksIChfdHJlYWRkaXIpLCAoX3RjbG9zZWRpciksCgkgIChfdHJld2luZGRpciksIChfdHRlbGxkaXIpLCAoX3RzZWVrZGlyKToKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2d0Y2hhci5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFZpc3VhbCBTdHVkaW8gNiBwcm9qZWN0IGZpbGVzLCBhbmQgYSBuZXcgY29tbW9uIGRpcmVjdG9yeS4KCSAgUGhlYXIuCgoyMDA1LTEwLTExIDE3OjMzOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBmb3Jnb3QgdGhpcyBvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvcmdvdCB0aGlzIG9uZQoKMjAwNS0xMC0xMSAxNzozMjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IENvcnJlY3RseSBwYXJzZSBuZXdzZWdtZW50IGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIENvcnJlY3RseSBwYXJzZSBuZXdzZWdtZW50IGluZm8uCgoyMDA1LTEwLTExIDE2OjU0OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogc3BsaXQgcGx1Z2luIHBhdGhzIGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBzcGxpdCBwbHVnaW4gcGF0aHMgY29ycmVjdGx5CgoyMDA1LTEwLTExIDE2OjI4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZXh0cmEgZmxhZyB0byBuZXdzZWdtZW50IGZvciBmdXR1cmUgQVBJIGZyZWV6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkZWQgZXh0cmEgZmxhZyB0byBuZXdzZWdtZW50IGZvciBmdXR1cmUgQVBJIGZyZWV6ZS4KCSAgVXBkYXRlZCBjaGVjayBhbmQgYmFzZSBlbGVtZW50cy4KCjIwMDUtMTAtMTEgMTY6MjU6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgoyMDA1LTEwLTExIDE2OjIxOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBtb3JlIHN0ciBudWxsIHByb3RlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgc3RyIG51bGwgcHJvdGVjdGlvbgoKMjAwNS0xMC0xMSAxNjowNToxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LWkxOG4tbGliLmg6IGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6CgkgIHByb3RlY3QgcG9zc2libHkgTlVMTCBzdHJpbmdzCgkgICogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGNvbmZpZy5oIGFscmVhZHkgaW5jbHVkZWQgYmVmb3JlCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICBzeXMvd2FpdC5oIGFsc28gZG9lc260dCBleGlzdCBvbiBtaW5ndywgc28gY2hhbmdlIHRoZSBpZmRlZiBjaGVjawoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICBUaGlzIGNvbW1pdCBicm91Z2h0IHRvIHlvdSBmcm9tIG1zeXMvbWluZ3cKCjIwMDUtMTAtMTEgMTU6MjY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBpZiB3ZSBkb24ndCBoYXZlIGdsaWIsIGZhaWwgYmVmb3JlIHRlc3RpbmcgMi44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgaWYgd2UgZG9uJ3QgaGF2ZSBnbGliLCBmYWlsIGJlZm9yZSB0ZXN0aW5nIDIuOAoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBmaXggYSBsZWFrLCBzaG91bGQgZml4IHBsdWdpbnMtYmFzZSB0ZXN0c3VpdGUKCjIwMDUtMTAtMTEgMTU6MjM6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAocHJlX2FjdGl2YXRlKTogUmVuYW1lZCBmcm9tIHByZV9hY3RpdmF0ZV9zd2l0Y2gsIHRha2UgdGhlIG1vZGUgd2UncmUgZ29pbmcgdG8gYXMgYW4gYXJnLiBHbyBoZWFkIGFuZCBzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKHByZV9hY3RpdmF0ZSk6IFJlbmFtZWQgZnJvbSBwcmVfYWN0aXZhdGVfc3dpdGNoLAoJICB0YWtlIHRoZSBtb2RlIHdlJ3JlIGdvaW5nIHRvIGFzIGFuIGFyZy4gR28gaGVhZCBhbmQgc2V0IHRoZSBtb2RlCgkgIGFuZCBmbHVzaGluZyBmbGFncyBub3csIHNvIHRoYXQgaWYgdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIHN0YXJ0cyBhCgkgIHRocmVhZCBhbGwgdGhlIGZsYWdzIHdpbGwgYmUgaW4gdGhlIHJpZ2h0IHN0YXRlLgoJICAocG9zdF9hY3RpdmF0ZSk6IFJlbmFtZWQgYWxzby4gSnVzdCBoYW5kbGUgbWFraW5nIHN1cmUgc3RyZWFtaW5nCgkgIGZpbmlzaGVzIGZvciB0aGUgZGVhY3RpdmF0aW9uIGNhc2UsIGFuZCBzZXR0aW5nIHRoZSBkZWFjdGl2YXRlZAoJICBtb2RlLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ29tcGxhaW4gbG91ZGx5IGlmIGRlYWN0aXZhdGlvbiBmYWlscy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IEFkYXB0IHRvIHByZS9wb3N0X2FjdGl2YXRlIGNoYW5nZXMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBBZGFwdCB0byBwcmUvcG9zdF9hY3RpdmF0ZSBjaGFuZ2VzLAoJICByZW1vdmUgdGhlIHRlcnJpYmxlIGhhY2suCgoyMDA1LTEwLTExIDE1OjA1OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBQcmVwYXJlIHRvIG1ha2UgY3VycmVudCBFT1MgbWVzc2FnZSBxdWV1ZSBtb3JlIGdlbmVyaWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBQcmVwYXJlIHRvIG1ha2UgY3VycmVudCBFT1MgbWVzc2FnZSBxdWV1ZSBtb3JlIGdlbmVyaWMuCgkgIEZpeCBzb21lIHR5cG9zLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgUmVuYW1lIGJhc2UgdG8gc3RyZWFtX3RpbWUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDUtMTAtMTEgMTI6NTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFdvcmsgb24gcHJvcGVyIGNsb2NrIHNlbGVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBXb3JrIG9uIHByb3BlciBjbG9jayBzZWxlY3Rpb24uCgoyMDA1LTEwLTExIDEyOjQyOjIzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLio6IEFkZGVkIEdMaXN0KiB2ZXJzaW9uIG9mIF9yZW1vdmVfcHJvcGVydGllcygpIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gd3JhcCBpdCBpbiBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIEFkZGVkIEdMaXN0KiB2ZXJzaW9uIG9mIF9yZW1vdmVfcHJvcGVydGllcygpIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gd3JhcAoJICBpdCBpbiBiaW5kaW5ncy4KCjIwMDUtMTAtMTEgMTE6MDg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IFNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBEb2MgdXBkYXRlcy4gRG9uJ3QgZGlzdHJpYnV0ZSB0aGUgc2FtZSBjbG9jayBvdmVyIGFuZCBvdmVyIGFnYWluLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfZmxvd19nZXRfbmFtZSksIChnc3RfZmxvd190b19xdWFyayksCgkgIChnc3RfcGFkX2dldF90eXBlKSwgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIE1ha2UgcHJvYmUgZW1pc3Npb24gdGhyZWFkc2FmZSBhZ2Fpbi4KCSAgUmVnaXN0ZXIgcXVhcmtzIGFuZCBtb3ZlIF9nZXRfbmFtZSgpIGZyb20gdXRpbHMuCgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgT25seSByZWRpc3RyaWJ1dGUgdGhlIGNsb2NrIG9mIGl0IGNoYW5nZWQuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNb3ZlZCB0aGUgX2Zsb3dfZ2V0X25hbWUoKSB0byBHc3RQYWQuCgoyMDA1LTEwLTExIDA5OjE0OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBpZiB3ZSBsb2cgb3VyIGluaXQsIHNob3VsZCBhbHNvIGxvZyBmaW5hbGl6ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWYgd2UgbG9nIG91ciBpbml0LCBzaG91bGQgYWxzbyBsb2cgZmluYWxpemUKCjIwMDUtMTAtMTAgMjM6NTU6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGZpeCBtb3JlIHZhbGdyaW5kIHdhcm5pbmdzIGJlZm9yZSB0dXJuaW5nIHVwIHRoZSBoZWF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbW9yZSB2YWxncmluZCB3YXJuaW5ncyBiZWZvcmUgdHVybmluZyB1cCB0aGUgaGVhdAoKMjAwNS0xMC0xMCAyMzoxMTozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBkb24ndCBkZWNsYXJlIG9uIHRoZSBwcm9wZXIgZGVmaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBkZWNsYXJlIG9uIHRoZSBwcm9wZXIgZGVmaW5lCgoyMDA1LTEwLTEwIDIyOjU5OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHVubWFuZ2xlIHRoZSBuZXN0aW5nIGEgbGl0dGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bm1hbmdsZSB0aGUgbmVzdGluZyBhIGxpdHRsZQoKMjAwNS0xMC0xMCAyMjo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBzb21lIGNsZWFudXAgYmVmb3JlIHRoZSBoYWNraW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHNvbWUgY2xlYW51cCBiZWZvcmUgdGhlIGhhY2tpbmcKCjIwMDUtMTAtMTAgMTg6MTY6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiB1c2UgY29udmVyc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgdXNlIGNvbnZlcnNpb25zCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZ3VpbnQ2NF90b19nZG91YmxlKSwKCSAgKGdzdF9nZG91YmxlX3RvX2d1aW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXh0ZXJuYWxpemUsIGJhc2VzcmMgdXNlcyBpdAoJICBvYnZpb3VzbHkgdGhlIGltcGxlbWVudGF0aW9uIG5lZWRzIHRlc3RpbmcKCjIwMDUtMTAtMTAgMTc6MDU6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgoyMDA1LTEwLTEwIDE2OjQ1OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoKMjAwNS0xMC0xMCAxNjo0MzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL3NjaGVkLzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvc2NoZWQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvc2NoZWQvc29ydC5jOiAobWFrZV9waXBlbGluZTEpLCAobWFrZV9waXBlbGluZTIpLAoJICAobWFrZV9waXBlbGluZTMpLCAobWFrZV9waXBlbGluZTQpLCAocHJpbnRfZWxlbSksIChtYWluKToKCjIwMDUtMTAtMTAgMTY6Mzg6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGFwcGFyZW50bHkgY29udmVydGluZyBmcm9tIGd1aW50NjQgdG8gZG91YmxlIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBNU1ZDCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3VpbnQ2NF90b19nZG91YmxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6CgkgIGFwcGFyZW50bHkgY29udmVydGluZyBmcm9tIGd1aW50NjQgdG8gZG91YmxlIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBvbiBNU1ZDCgoyMDA1LTEwLTEwIDE2OjM4OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBDaGVjayBmaXhlcywgdXNlIEFQSSBhcyBzdGF0ZWQgaW4gZGVzaWduIGRvY3MsIHJlbW92ZSBoYWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rczIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpLAoJICAobWFpbik6CgkgIENoZWNrIGZpeGVzLCB1c2UgQVBJIGFzIHN0YXRlZCBpbiBkZXNpZ24gZG9jcywgcmVtb3ZlIGhhY2tzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBDYXRjaCBzdG9wcGluZyBvdXIgdGFzayB3aGlsZSB3ZSdyZSBzaHV0dGluZyBkb3duLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE5ldyBzdGF0ZSBjaGFuZ2UgYWxnb3JpdGhtIChzZWUgIzMxODExNikKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIFJlbW92ZSBjcnVkZSBzdGF0ZSBjaGFuZ2UgaGFja3MuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBjcnVkZSBoYWNrcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgRml4ZXMgZm9yIHN0YXRlIGNoYW5nZS4gTmVlZHMgc29tZSBtb3JlIHdvcmsgdG8gZnVsbHkgdXNlIHRoZQoJICBuZXcgc3R1ZmYuCgoyMDA1LTEwLTEwIDE2OjIwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9NYWtlZmlsZS5hbSAobm9pbnN0X1BST0dSQU1TKTogTm8gbW9yZSBpbml0LmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL01ha2VmaWxlLmFtIChub2luc3RfUFJPR1JBTVMpOiBObyBtb3JlIGluaXQuYy4KCjIwMDUtMTAtMTAgMTY6MDQ6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAoR19PUFRJT05fRkxBR19OT19BUkcpOiBBcHBhcmVudGx5IEdMaWIgMi44IHJlcXVpcmVzIHRoaXMgZmxhZywgYnV0IGl0J3Mgbm90IGV2ZW4gaW4gR0xpYiAyLjYuIE9kZC4gSGFjayBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKEdfT1BUSU9OX0ZMQUdfTk9fQVJHKTogQXBwYXJlbnRseSBHTGliIDIuOCByZXF1aXJlcwoJICB0aGlzIGZsYWcsIGJ1dCBpdCdzIG5vdCBldmVuIGluIEdMaWIgMi42LiBPZGQuIEhhY2sgYXJvdW5kIHRoZQoJICBpc3N1ZS4KCjIwMDUtMTAtMTAgMTU6NTg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogRml4IG15IHByZXZpb3VzIGNvbW1pdDogR1R5cGVzIHBhc3NlZCB0byBnc3RfaXRlcmF0b3JfbmV3KCkgY2FuIGJlIGZ1bmRhbWVudGFsIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9uZXcpOgoJICBGaXggbXkgcHJldmlvdXMgY29tbWl0OiBHVHlwZXMgcGFzc2VkIHRvIGdzdF9pdGVyYXRvcl9uZXcoKQoJICBjYW4gYmUgZnVuZGFtZW50YWwgdHlwZXMuCgoyMDA1LTEwLTEwIDE1OjU1OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIHNyYy9zaW5rIHBhZHMgbGlzdHMgZm9yIHRoZSByZXNwZWN0aXZlIGl0ZXJhdG9ycyBpbnN0ZWFkIG9mIGZpbHRlcmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkX2xpc3QpLAoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRzKSwgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMpOgoJICBVc2Ugc3JjL3NpbmsgcGFkcyBsaXN0cyBmb3IgdGhlIHJlc3BlY3RpdmUgaXRlcmF0b3JzIGluc3RlYWQKCSAgb2YgZmlsdGVyaW5nLgoKMjAwNS0xMC0xMCAxNTo1Mzo1OSArMDAwMCAgUm9uYWxkIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBNZXJnZWQgaW4gcG9wdCByZW1vdmFsICsgR09wdGlvbiBhZGRpdGlvbiBwYXRjaCBmcm9tIFJvbmFsZCwgYnVnICMxNjk3NzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBNZXJnZWQgaW4gcG9wdCByZW1vdmFsICsgR09wdGlvbiBhZGRpdGlvbiBwYXRjaCBmcm9tIFJvbmFsZCwgYnVnCgkgICMxNjk3NzIuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIFNUQVRFXyhVTilMT0NLX0ZVTEwsIG1vdmUKCSAgR3N0RWxlbWVudCBtYWNyb3MgYXJvdW5kLCByZW1vdmUgcG9wdC1yZWxhdGVkIHN5bWJvbHMsIGFkZCBnb3B0aW9uCgkgIHN0dWZmLgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIHBvcHQgY2hlY2tzLCByZXF1aXJlIEdMaWIgMi42IGZvciBHT3B0aW9uLgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogTm8gUE9QVF9DRkxBR1MuCgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDogRG9jIHVwZGF0ZXMgd2l0aCBhbiBleGFtcGxlLgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoZ3N0X2luaXQpLCAocGFyc2Vfb25lX29wdGlvbiksIChwYXJzZV9nb3B0aW9uX2FyZyk6CgkgICogZ3N0L2dzdC5oOiBSZW1vdmVkIGdzdF9pbml0X3dpdGhfcG9wdF90YWJsZSBhbmQgZnJpZW5kcy4gVG9vayBhCgkgIGJpdCBvZiBoYW5kIG1lcmdpbmcgYW5kIGRlYnVnZ2luZyB0byBnZXQgdGhlIEdPcHRpb24gc3R1ZmYgd29ya2luZwoJICB0aG8uCgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKTogVGhhbmtzIFJvbmFsZCEKCjIwMDUtMTAtMTAgMTU6MzA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHBhc3NlZCBHVHlwZSBpcyBsaWtlbHkgdG8gcmVhbGx5IGJlIGEgR1R5cGUgKGFzIHRoZSBjb21waWxlciB3b24ndCBjYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfbmV3KToKCSAgQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHBhc3NlZCBHVHlwZSBpcyBsaWtlbHkgdG8gcmVhbGx5CgkgIGJlIGEgR1R5cGUgKGFzIHRoZSBjb21waWxlciB3b24ndCBjYXRjaCBpdCBpZiB0aGUgc2l6ZSBhbmQKCSAgR1R5cGUgYXJndW1lbnRzIGdldCBtaXhlZCB1cCwgc2VlICMzMTg0NDcpLgoKMjAwNS0xMC0xMCAxNToyNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogUGFzcyBHVHlwZSBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGluIHRoZSByaWdodCBvcmRlciAobWF5YmUgd2Ugc2hvdWxkIG1ha2UgX25ldygpIHRhay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgUGFzcyBHVHlwZSBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGluIHRoZSByaWdodAoJICBvcmRlciAobWF5YmUgd2Ugc2hvdWxkIG1ha2UgX25ldygpIHRha2UgdGhlIEdUeXBlIGFzIGZpcnN0IGFyZ3VtZW50CgkgIGp1c3QgbGlrZSBfbmV3X2xpc3QoKT8pICgjMzE4NDQ3KS4KCjIwMDUtMTAtMTAgMTU6MTc6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBBbmQgZnJlZSB0aGUgR1N0YXRpY1JlY011dGV4IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZmluYWxpemUpOgoJICBBbmQgZnJlZSB0aGUgR1N0YXRpY1JlY011dGV4IHRvbwoKMjAwNS0xMC0xMCAxNDozMzozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czcvR1N0cmVhbWVyLnZjcHJvajoKCSAgZG9uJ3QgZWNobyBwYXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBlY2hvIHBhdGgKCjIwMDUtMTAtMTAgMTQ6MzM6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2luaXQsIGdzdF9lbGVtZW50X2ZpbmFsaXplKTogQWxsb2NhdGUgYW5kIGZyZWUgdGhlIG11dGV4IHByb3Blcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pbml0LCBnc3RfZWxlbWVudF9maW5hbGl6ZSk6CgkgIEFsbG9jYXRlIGFuZCBmcmVlIHRoZSBtdXRleCBwcm9wZXJseS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChHU1RfU1RBVEVfVU5MT0NLX0ZVTEwsIEdTVF9TVEFURV9MT0NLX0ZVTEwpOgoJICBOZXcgbWFjcm9zLgoJICAoR3N0RWxlbWVudCk6IFRoZSBzdGF0ZV9sb2NrIGlzIG5vdyByZWN1cnNpdmUuIFJlYnVpbGQgeW91cgoJICBwbHVnaW5zLCBzdWNrZXJzLiBPbGQgbWFjcm9zIGFkYXB0ZWQuCgoyMDA1LTEwLTEwIDE0OjIzOjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTEwLTEwIDE0OjIzOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3RpbWVkX3dhaXQpCgkgIChnX3N0YXRpY19yZWNfY29uZF93YWl0KTogUG9ydGVkIGZyb20gc3RhdGUgY2hhbmdlcyBwYXRjaCwgd2hpbGUKCSAgd2Ugd2FpdCBvbiBidWcgIzMxNzgwMiB0byBiZSBzb2x2ZWQgaW4gYSB3ZWxsLWRpc3RyaWJ1dGVkIEdMaWIuCgoyMDA1LTEwLTEwIDE0OjE1OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL2xpbmtfb2xkcnVudGltZS5jOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM3L2xpbmtfb2xkcnVudGltZS5jOgoJICBhZGQgbW9yZSB3aW4zMiBidWlsZCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgd2luMzIgYnVpbGQgZmlsZXMKCjIwMDUtMTAtMTAgMTQ6MDM6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSwgdmFyaWFibGUgbmFtZSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbQoJICBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUsIHZhcmlhYmxlIG5hbWUgY2hhbmdlcy4KCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6IFNwbGl0IG91dCBvZiBnc3RfZWxlbWVudF9zZXRfc3RhdGUgaW4KCSAgcHJlcGFyYXRpb24gZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgbWVyZ2UuIERvZXNuJ3QgcGF5IGF0dGVudGlvbiB0bwoJICB0aGUgJ3RyYW5zaXRpb24nIGFyZ3VtZW50LgoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKTogVXBkYXRlcywgaG9wZWZ1bGx5IHB1cmVseSBjb3NtZXRpYy4KCSAgKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOiBNVC1zYWZldHkuIFBvcnRlZCBmcm9tIHRoZQoJICBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnZXRfc3RhdGUsIGNvc21ldGljCgkgIGNoYW5nZXMuCgoyMDA1LTEwLTEwIDEzOjUyOjE4ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHVwZGF0ZXMgZm9yIHRoZSB3aW4zMiBidWlsZCAocGF0Y2ggZnJvbSBTZWJhc3RpZW4gTW91dHRlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL2NvbmZpZy5oOgoJICAqIHdpbjMyL2RpcmVudC5jOiAoX3RzZWVrZGlyKToKCSAgKiB3aW4zMi9nc3QtaW5zcGVjdC52Y3Byb2o6CgkgICogd2luMzIvZ3N0LWxhdW5jaC52Y3Byb2o6CgkgICogd2luMzIvZ3N0Y29uZmlnLmg6CgkgICogd2luMzIvZ3N0ZWxlbWVudHMudmNwcm9qOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOiAoZ3N0X29iamVjdF9mbGFnc19nZXRfdHlwZSk6CgkgICogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi9tc3ZjNzEuc2xuOgoJICB1cGRhdGVzIGZvciB0aGUgd2luMzIgYnVpbGQgKHBhdGNoIGZyb20gU2ViYXN0aWVuIE1vdXR0ZSkKCjIwMDUtMTAtMTAgMTE6NTI6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfYmluX2dldF9zdGF0ZSwgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20KCSAgZ3N0X2Jpbl9nZXRfc3RhdGUsIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspOiBDb21tZW50IHVwZGF0ZXMuCgkgIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IFJlbW92ZSBuZWVkbGVzcyBjYXN0LgoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogRG9jIHVwZGF0ZS4KCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUsCgkgIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCjIwMDUtMTAtMTAgMTE6MDQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NyY19zaW5rKTogQ2xlYW51cHMgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zcmNfc2luayk6IENsZWFudXBzIGZyb20gdGhlIHN0YXRlCgkgIGNoYW5nZSBwYXRjaC4KCSAgKHRlc3RfbGl2ZXNyY19zaW5rKTogU3luYyBvbiB0aGUgc3RhdGUuCgoyMDA1LTEwLTEwIDEwOjU5OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IE1lcmdlIGZyb20KCSAgdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NTc6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZQoJICBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjUwOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE1lcmdlIGluIHNvbWUgc3R5bGUgZml4ZXMgYW5kIGFkZGl0aW9uYWwgY2hlY2tzIGZyb20gV2ltJ3Mgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IE1lcmdlIGluIHNvbWUgc3R5bGUgZml4ZXMgYW5kIGFkZGl0aW9uYWwKCSAgY2hlY2tzIGZyb20gV2ltJ3Mgc3RhdGUgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo0MzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgYWxyZWFkeSBpbiBvdXIgbGlzdCBvZiBjYWNoZWQgYnVmZmVycyBiZWZvcmUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgYWxyZWFkeSBpbiBvdXIgbGlzdCBvZgoJICBjYWNoZWQgYnVmZmVycyBiZWZvcmUgcHVsbGluZyBhIG5ldyBidWZmZXI7IGFsc28gbWFrZSB0aGUgYnVmZmVyCgkgIGxpc3QgYSBHU0xpc3QuIFNwZWVkcyB1cCB0eXBlZmluZGluZyBieSBjYS4gNS0xMCUgYWx0b2dldGhlci4KCjIwMDUtMTAtMTAgMDk6NDg6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgZG9uJ3QgdXNlIGxvbmcgbG9uZywgaXQncyBub3QgcG9ydGFibGUuICBSZXBsYWNpbmcgd2l0aAoJICBnaW50NjQgc2VlbXMgdG8gd29yazsgbGV0J3MgaG9wZSBubyBza2VsZXRvbnMgZmFsbCBvdXQgb2YgdGhlIGNsb3NldC4KCjIwMDUtMTAtMTAgMDg6NTE6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGF1dG9nZW4uc2ggKENPTkZJR1VSRV9ERUZfT1BUKTogTm8gbW9yZSAtLXBsdWdpbi1idWlkZGlyLCB5YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogYXV0b2dlbi5zaCAoQ09ORklHVVJFX0RFRl9PUFQpOiBObyBtb3JlIC0tcGx1Z2luLWJ1aWRkaXIsIHlheQoKMjAwNS0xMC0wOSAyMDo0OTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzLCBmaXggY29tcGlsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1vcmUgZG9jcywgZml4IGNvbXBpbGF0aW9uCgoyMDA1LTEwLTA5IDIwOjE5OjQ4ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRml4ZWQgYSBmZXcgZm9yZ290dGVuIHZhcmlhYmxlcyBvbiBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDkgIFBoaWxpcHBlIEtoYWxhZiA8YnVyZ2VyQHNwZWVkeS5vcmc+CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRml4ZWQgYSBmZXcgZm9yZ290dGVuIHZhcmlhYmxlcyBvbiBwcmV2aW91cyBjb21taXQKCjIwMDUtMTAtMDkgMTc6NTk6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBGaXggZXZpbCB0eXBlZmluZCBjcmFzaGVyOiBnZXRyYW5nZSgpIG1pZ2h0IHJldHVybiBhIHNob3J0IGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgZmlsZSwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBGaXggZXZpbCB0eXBlZmluZCBjcmFzaGVyOiBnZXRyYW5nZSgpIG1pZ2h0IHJldHVybiBhIHNob3J0CgkgIGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgZmlsZSwgYnV0IGdzdF90eXBlX2ZpbmRfcGVlaygpIG11c3QKCSAgZWl0aGVyIHJldHVybiB0aGUgZnVsbCBkYXRhIGFzIHJlcXVlc3RlZCBvciBOVUxMLCBidXQKCSAgbmV2ZXIgYSBzaG9ydCBidWZmZXIuCgoyMDA1LTEwLTA5IDE3OjUzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IGRvbid0IHVzZSBuZXcsIGl0J3MgYSBDKysga2V5d29yZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9uJ3QgdXNlIG5ldywgaXQncyBhIEMrKyBrZXl3b3JkCgoyMDA1LTEwLTA5IDE3OjIyOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG9uY2UgaXMgZW5vdWdoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmNlIGlzIGVub3VnaAoKMjAwNS0xMC0wOCAxODoyMToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGRvY3MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fcXVlcnkpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGRvY3MgYW5kIGRlYnVnIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDE4OjA3OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtb3JlIGRvY3MKCjIwMDUtMTAtMDggMTg6MDE6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCB0eXBvcywgYWRkIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IHR5cG9zLCBhZGQgY29tbWVudHMuCgkgIENsZWFyIEVPUyBsaXN0IHdoZW4gZ29pbmcgdG8gUEFVU0VEIGZyb20gYW55IGRpcmVjdGlvbiBhbmQgZG8gaXQKCSAgaW4gYSB0aHJlYWRzYWZlIHdheS4KCSAgR2V0IGJhc2UgdGltZSBpbiBhIHRocmVhZHNhZmUgd2F5IHRvby4KCSAgRml4IGNvbmZ1c2luZyBkZWJ1ZyBpbiB0aGUgY2hhbmdlX3N0YXRlIGZ1bmN0aW9uLgoJICBWYXJpb3VzIG90aGVyIG1hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6CgkgIEZpeCB2ZXJ5IHZlcmJvc2UgYnVzIHBvc3RpbmcgY29kZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgQVJHXyAtPiBQUk9QXyBjbGVhbnVwCgoyMDA1LTEwLTA4IDE3OjMwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEbyBhIGxlc3MgQ1BVIGRlbWFuZGluZyBFT1MgY2hlY2sgYmVjYXVzZSB3ZSBjYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBEbyBhIGxlc3MgQ1BVIGRlbWFuZGluZyBFT1MgY2hlY2sgYmVjYXVzZSB3ZSBjYW4uCgoyMDA1LTEwLTA4IDE3OjE3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sLzogSXQncyBhYm91dCB0aW1lIHdlIGJ1bXAgdGhlIHZlcnNpb24gbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkgIEl0J3MgYWJvdXQgdGltZSB3ZSBidW1wIHRoZSB2ZXJzaW9uIG51bWJlci4KCSAgU2luY2UgZXZlbnQgdHlwZXMgZG9uJ3QgZml0IGluIHRoZSBndWludDggYW55bW9yZSBkZXNjcmliaW5nCgkgIHRoZSBwYXlsb2FkIHR5cGUsIG1ha2UgcGF5bG9hZCB0eXBlIDE2IGJpdHMgd2lkZS4KCjIwMDUtMTAtMDggMTY6NDk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IE1hbnkgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIE1hbnkgZG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDE2OjEzOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IEZpeCBldmVudCBxdWFyayByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBGaXggZXZlbnQgcXVhcmsgcmVnaXN0cmF0aW9uLgoJICBBZGQgc29tZSBzcGFjZSBiZXR3ZWVuIGV2ZW50cyBzbyB3ZSBjYW4gaW5zZXJ0IHRoZW0gaW4gdGhlCgkgIHJpZ2h0IGdyb3Vwcy4KCjIwMDUtMTAtMDggMTQ6NTc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZXR0ZXIgbG9nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgQmV0dGVyIGxvZyBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNb3JlIGRvY3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBSZW1vdmUgb2xkIHVudXNlZCBwcm9wZXJ0aWVzLgoKMjAwNS0xMC0wOCAxNDo0ODoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbG90cyBvZiBuZXcgZG9jcyBhbmQgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBsb3RzIG9mIG5ldyBkb2NzIGFuZCBkb2MgZml4ZXMKCjIwMDUtMTAtMDggMTQ6NDE6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGZpeCBhIGxlYWsgSSBpbnRyb2R1Y2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBsZWFrIEkgaW50cm9kdWNlZAoKMjAwNS0xMC0wOCAxMzo1NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBPbmx5IGV2ZXIgbG9hZCBvbmUgcGx1Z2luIGZvciBhIGdpdmVuIHBsdWdpbiBiYXNlbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgIE9ubHkgZXZlciBsb2FkIG9uZSBwbHVnaW4gZm9yIGEgZ2l2ZW4gcGx1Z2luIGJhc2VuYW1lLgoJICBUaGlzIGVuc3VyZXMgY29ycmVjdCBvdmVycmlkaW5nIG9mIEdTVF9QTFVHSU5fUEFUSCBvdmVyCgkgIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEggYW5kIG9mIGhvbWUgZGlyIHBsdWdpbnMgb3ZlcgoJICBzeXN0ZW0gaW5zdGFsbGVkIHBsdWdpbnMuCgoyMDA1LTEwLTA4IDEzOjM5OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJlcGFyZSBmb3IgZG9pbmcgUU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICBQcmVwYXJlIGZvciBkb2luZyBRT1MuCgoyMDA1LTEwLTA4IDEzOjEwOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBBbGxvdyBuZXcgY2xvY2sgbWVzc2FnZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFsbG93IG5ldyBjbG9jayBtZXNzYWdlIHRvby4KCjIwMDUtMTAtMDggMTI6NTY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBbHNvIGNhcnJ5IHRoZSBjbG9jayBpbiBxdWVzdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwKCSAgKGdzdF9tZXNzYWdlX25ld19jbG9ja19sb3N0KSwgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFsc28gY2FycnkgdGhlIGNsb2NrIGluIHF1ZXN0aW9uLgoKMjAwNS0xMC0wOCAxMjozNjozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IENsZWFuIHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSksCgkgIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwKCSAgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBDbGVhbiB1cC4KCSAgQWRkZWQgY2xvY2sgcmVsYXRlZCBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBQb3N0IG1lc3NhZ2Ugd2hlbiB0aGUgY2xvY2sgY2hhbmdlZC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgbmV3IGNsb2NrLgoKMjAwNS0xMC0wOCAxMToxNjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IENhbid0IHBhc3MgTlVMTCBzdHJpbmdzIHRvIGdfcHJpbnQoKSBvbiB3aW5kb3dzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBDYW4ndCBwYXNzIE5VTEwgc3RyaW5ncyB0byBnX3ByaW50KCkgb24gd2luZG93cy4KCjIwMDUtMTAtMDggMTE6MTI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIGNoYXB0ZXIgb24gcnVubmluZyBHU3RyZWFtZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkgIGFkZCBhIGNoYXB0ZXIgb24gcnVubmluZyBHU3RyZWFtZXIuCgkgIGRvY3VtZW50IEdTVF9ERUJVRyBhbmQgR1NUX1BMVUdJTiogZW52IHZhcnMKCjIwMDUtMTAtMDggMTE6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHJlbW92ZSBpbmNsdWRlIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGluY2x1ZGUgZGlyCgkgICogY29uZmlndXJlLmFjOgoJICByZW1vdmUgUExVR0lOU19CVUlMRERJUiBzdHVmZgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHJlb3JkZXIgcGFyc2luZyBvZiBHU1RfUExVR0lOX1BBVEggYW5kIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEgKCSAgKiBpZGlvdHRlc3QubWFrOgoJICByZW1vdmUsIGl0IHdhcyBjb25kZXNjZW5kaW5nIGFuZCBub3QgbmVlZGVkCgoyMDA1LTEwLTA4IDA5OjU4OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogUmVwb3N0IEVPUyBtZXNzYWdlIHdoaWxlIGdvaW5nIHRvIFBMQVlJTkcgaWYgc3RpbGwgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgUmVwb3N0IEVPUyBtZXNzYWdlIHdoaWxlIGdvaW5nIHRvIFBMQVlJTkcgaWYgc3RpbGwgRU9TLgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIHJlY2VpdmluZyBhIEZMVVNIX1NUQVJUIHdlIGRvbid0IGF0dGVtcHQKCSAgdG8gc3luYyBvbiB0aGUgY2xvY2sgYW55bW9yZS4KCjIwMDUtMTAtMDggMDk6Mzg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEJldHRlciBtZXNzYWdlIHByaW50b3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgQmV0dGVyIG1lc3NhZ2UgcHJpbnRvdXQuCgoyMDA1LTEwLTA4IDA5OjI0OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBDaGlsZFByb3h5IHRocmVhZHNhZmUgYW5kIGZpeCBtZW0gbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9uYW1lKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9sb29rdXApLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X3ZhbGlzdCksIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfdmFsaXN0KToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIENoaWxkUHJveHkgdGhyZWFkc2FmZSBhbmQgZml4IG1lbSBsZWFrcy4KCjIwMDUtMTAtMDggMDk6MDk6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBkZWJ1ZyB0aGUgR1NUX1BMVUdJTl8gZW52IHZhcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgZGVidWcgdGhlIEdTVF9QTFVHSU5fIGVudiB2YXJzCgoyMDA1LTEwLTA4IDA4OjU4OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZXh0cmEgZmllbGQgdG8gU1RBVEVfQ0hBTkdFIG1lc3NhZ2Ugd2l0aCB0aGUgcGVuZGluZyBzdGF0ZSwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3IHN0YXRlIHNvb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgQWRkZWQgZXh0cmEgZmllbGQgdG8gU1RBVEVfQ0hBTkdFIG1lc3NhZ2Ugd2l0aCB0aGUgcGVuZGluZwoJICBzdGF0ZSwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3IHN0YXRlIHNvb24uCgoyMDA1LTEwLTA4IDA4OjAwOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY2xlYW51cHMgYW5kIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCk6CgkgIFNtYWxsIGNsZWFudXBzIGFuZCBkb2MgdXBkYXRlcy4KCjIwMDUtMTAtMDggMDY6NDk6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogbG9nIGRpc3RyaWJ1dGluZyBjbG9ja3MgYW5kIGJhc2UgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIGxvZyBkaXN0cmlidXRpbmcgY2xvY2tzIGFuZCBiYXNlIHRpbWUKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgIGNsZWFuIHVwIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGEgbGl0dGxlCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIHdhcm4gYWJvdXQgYSBtZW1sZWFrIChJJ3ZlIGFjdHVhbGx5IHNlZW4gdGhpcyBiZSB1c2VkLCB0aG91Z2gKCSAgaXQgd2FzIHByb2JhYmx5IGEgYnVnKQoKMjAwNS0xMC0wOCAwNjo0MjozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBhZGQgdHdvIG5ldyBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB0d28gbmV3IGZ1bmN0aW9ucwoKMjAwNS0xMC0wNyAxODoxNzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuKjogTWFrZSB0aGUgbmV3c2VnbWVudCBldmVudCBjdXN0b21pemFibGUgYnkgc3ViY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfbmV3c2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWFrZSB0aGUgbmV3c2VnbWVudCBldmVudCBjdXN0b21pemFibGUgYnkgc3ViY2xhc3Nlcy4KCjIwMDUtMTAtMDcgMTg6MDI6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogTmV3IGV2ZW50IGZvciBmdXR1cmUgaWRlYS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2J1ZmZlcnNpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcnNpemUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBOZXcgZXZlbnQgZm9yIGZ1dHVyZSBpZGVhLgoKMjAwNS0xMC0wNyAxNjoyODo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogRG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogRG9jIHVwZGF0ZS4KCjIwMDUtMTAtMDcgMTY6MTM6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6IE1hZGUgaW50byBhCgkgIGZ1bmN0aW9uIGxpa2UgaG9uZXN0IEFQSSBjYWxscy4KCSAgKGdzdF9tZXNzYWdlX25ld19lbGVtZW50KTogTmV3IG1lc3NhZ2UgdHlwZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oIChlbnVtKTogQWRkIEdTVF9NRVNTQUdFX0VMRU1FTlQgdHlwZS4KCjIwMDUtMTAtMDcgMTU6MjU6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZmRzcmMgZG9lcyBub3QgYnVpbGQgY3VycmVudGx5IG9uIHdpbjMyIGR1ZSB0byBzb2NrZXRwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmZHNyYyBkb2VzIG5vdCBidWlsZCBjdXJyZW50bHkgb24gd2luMzIgZHVlIHRvIHNvY2tldHBhaXIKCjIwMDUtMTAtMDcgMTU6MjI6MzggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAodGVzdF9ub19wcmVyb2xsKTogTmV3IGNoZWNrLCBjaGVja3MgdGhhdCBzZXR0aW5nIGEgbGl2ZSBmYWtlc3JjIHRvIFBBVVNFRCByZXR1cm5zIE5PX1BSRVJPTC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKHRlc3Rfbm9fcHJlcm9sbCk6IE5ldyBjaGVjaywgY2hlY2tzCgkgIHRoYXQgc2V0dGluZyBhIGxpdmUgZmFrZXNyYyB0byBQQVVTRUQgcmV0dXJucyBOT19QUkVST0xMIGJvdGgKCSAgdGltZXMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKTogQWxsb3cgYQoJICBOT19QUkVST0xMIGZyb20gZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlIHRvIGZhbGwgdGhyb3VnaC4KCjIwMDUtMTAtMDcgMTU6MTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBkb24ndCB1c2UgaWYgbm90IGRlY2xhcmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB1c2UgaWYgbm90IGRlY2xhcmVkCgoyMDA1LTEwLTA3IDEyOjUyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFjdGl2YXRpbmcgYSBnaG9zdHBhZCB3aXRoIG5vIGludGVybmFsIHBhZCBpbiBwdXNoIG1vZGUgaXMgb2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9nZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgQWN0aXZhdGluZyBhIGdob3N0cGFkIHdpdGggbm8gaW50ZXJuYWwgcGFkIGluIHB1c2ggbW9kZQoJICBpcyBvay4KCjIwMDUtMTAtMDcgMTI6NDU6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5oOiB0aGVyZSdzIG5vIHBvaW50IGluIHdyYXBwaW5nIEZMQUdfU0VUL19VTlNFVCBpbiBTVE1UIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICB0aGVyZSdzIG5vIHBvaW50IGluIHdyYXBwaW5nIEZMQUdfU0VUL19VTlNFVCBpbiBTVE1UIG1hY3Jvcy4KCSAgRml4ZXMgY29tcGlsYXRpb24gb24gV2luZG93cy4KCjIwMDUtMTAtMDcgMTA6MzI6MjQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBQcmludCBvdXQgZmVhdHVyZSBhbmQgcGx1Z2luIGNvdW50IGF0IHRoZSBlbmQgd2hlbiBwcmludGluZyBvdXQgYWxsIGZlYXR1cmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUHJpbnQgb3V0IGZlYXR1cmUgYW5kIHBsdWdpbiBjb3VudCBhdCB0aGUgZW5kIHdoZW4gcHJpbnRpbmcgb3V0CgkgIGFsbCBmZWF0dXJlcy4KCSAgQWxzbyBhZGQgYSBjaGFuZ2Vsb2cgZW50cnkgd2hpY2ggSSdkIHdyaXR0ZW4gYnV0IG5vdCBjb21taXR0ZWQ/CgoyMDA1LTEwLTA3IDAwOjE0OjQ1ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIEFkZCBhIEdUeXBlIHRvIEdzdEl0ZXJhdG9yLCB1cGRhdGUgY2FsbHNpdGVzIGFuZCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pdGVyYXRlX2VsZW1lbnRzKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlKSwgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZHMpOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfaXRlcmF0ZV9kZWZpbml0aW9ucyk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfaW5pdCksIChnc3RfaXRlcmF0b3JfbmV3KSwKCSAgKGdzdF9pdGVyYXRvcl9uZXdfbGlzdCksIChnc3RfaXRlcmF0b3JfZmlsdGVyKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV90eXBlX2l0ZXJhdGVfZGVmaW5pdGlvbnMpOgoJICBBZGQgYSBHVHlwZSB0byBHc3RJdGVyYXRvciwgdXBkYXRlIGNhbGxzaXRlcyBhbmQgdGVzdHMuCgoyMDA1LTEwLTA2IDIxOjA5OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9oLiAgdXNlIGNvcnJlY3QgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvaC4gIHVzZSBjb3JyZWN0IHZhcmlhYmxlCgoyMDA1LTEwLTA2IDE3OjAwOjUwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdmVyc2lvbiBnc3RyZWFtZXItdG9vbHMgcGFja2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmVyc2lvbiBnc3RyZWFtZXItdG9vbHMgcGFja2FnZQoKMjAwNS0xMC0wNiAxNDoyMDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgaW5pdGlhbGl6ZSBxdWFya3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluaXRpYWxpemUgcXVhcmtzCgoyMDA1LTEwLTA2IDE0OjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogZ2l2ZSBldmVudHMgYSBjaGFuY2UgdG8gYmUgaGFuZGxlZCBieSBldmVudCBwcm9iZXMgd2hlbiB0aGUgcGFkIGlzIG5vdCBsaW5rZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKToKCSAgZ2l2ZSBldmVudHMgYSBjaGFuY2UgdG8gYmUgaGFuZGxlZCBieSBldmVudCBwcm9iZXMgd2hlbiB0aGUgcGFkCgkgIGlzIG5vdCBsaW5rZWQKCjIwMDUtMTAtMDYgMTM6NTU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IGFkZCBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBldmVudCB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF90eXBlX2dldF9uYW1lKSwKCSAgKGdzdF9ldmVudF90eXBlX3RvX3F1YXJrKSwgKGdzdF9ldmVudF9maW5hbGl6ZSksIChnc3RfZXZlbnRfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgYWRkIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIGV2ZW50IHR5cGVzCgoyMDA1LTEwLTA2IDEzOjQyOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTA2IDEzOjI0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IHVzZSBOVUxMIHBvaW50ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSk6CgkgIERvbid0IHVzZSBOVUxMIHBvaW50ZXJzLgoKMjAwNS0xMC0wNiAwOTo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiB3aWRlbiB0aGUgZGVidWcgY2F0ZWdvcnkgaW4gb3V0cHV0IHRvIGZpdCB0aGUgYmlnZ2VzdCBvbmUgd2UgaGF2ZSBhZGQgYSBidXMgY2F0ZWdvcnkgYW5kIHVzZSBpdCBwbGF5IHdpdGggdGhlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICB3aWRlbiB0aGUgZGVidWcgY2F0ZWdvcnkgaW4gb3V0cHV0IHRvIGZpdCB0aGUgYmlnZ2VzdCBvbmUgd2UgaGF2ZQoJICBhZGQgYSBidXMgY2F0ZWdvcnkgYW5kIHVzZSBpdAoJICBwbGF5IHdpdGggdGhlIGNvbG9ycwoJICBmaXggdXAgc29tZSBjYXRlZ29yaWVzCgoyMDA1LTEwLTA2IDA3OjQyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGZpcnN0IHN0YWIgYXQgcmVvcmdhbml6aW5nIGRvY3MgZm9yIHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlyc3Qgc3RhYiBhdCByZW9yZ2FuaXppbmcgZG9jcyBmb3IgcGFkCgoyMDA1LTEwLTA2IDA3OjEzOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBhZGQgcHVzaCBhY3RpdmF0aW9uIG9mIHNpbmsgZ2hvc3QgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDYgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBhZGQgcHVzaCBhY3RpdmF0aW9uIG9mIHNpbmsgZ2hvc3QgcGFkcy4KCSAgQW5keWUsIHBsZWFzZSB2ZXJpZnkKCjIwMDUtMTAtMDUgMjI6MzU6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMTAtMDUgMjE6MzQ6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGZpeCBhIGJ1ZyBpbiB0aGUgY2FzZSB3aGVyZSBuZWl0aGVyIGVsZW1lbnQgaGFzIGEgcGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKToKCSAgZml4IGEgYnVnIGluIHRoZSBjYXNlIHdoZXJlIG5laXRoZXIgZWxlbWVudCBoYXMgYSBwYWQKCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciB0aGF0IGNhc2UKCjIwMDUtMTAtMDUgMTc6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHVucmVmIG91ciB0ZXN0IGJ1ZmZlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVucmVmIG91ciB0ZXN0IGJ1ZmZlcnMKCjIwMDUtMTAtMDUgMTY6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBlbWl0IGhhdmUtZGF0YSBiZWZvcmUgY2hlY2tpbmcgZm9yIHBlZXJzLiAgVGhpcyBhbGxvd3MgZm9yIHByb2JlIGhhbmRsZXJzIHRvIGNvbm5lY3QgZWxlbWVudHMuICBUaGlzIGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBlbWl0IGhhdmUtZGF0YSBiZWZvcmUgY2hlY2tpbmcgZm9yIHBlZXJzLiAgVGhpcyBhbGxvd3MKCSAgZm9yIHByb2JlIGhhbmRsZXJzIHRvIGNvbm5lY3QgZWxlbWVudHMuICBUaGlzIGhlbHBzIGF1dG9wbHVnZ2Vycy4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChfcHJvYmVfaGFuZGxlciksCgkgIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHNpeCBjaGVja3MsIGxpbmtlZC91bmxpbmtlZCB3aXRoIG5vL3RydWUvZmFsc2UgcHJvYmUKCjIwMDUtMTAtMDUgMTE6NTA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBpbmRlbnQgaWZkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmRlbnQgaWZkZWZzCgoyMDA1LTEwLTA0IDE4OjQ2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzLzogUHJvdGVjdCBsYXN0X21lc3NhZ2Ugd2l0aCBsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NpbmtfZXZlbnQpLCAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKSwKCSAgKGdzdF9mYWtlX3NpbmtfcmVuZGVyKSwgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mYWtlX3NyY19zdG9wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9zdG9wKToKCSAgUHJvdGVjdCBsYXN0X21lc3NhZ2Ugd2l0aCBsb2NrLgoKMjAwNS0xMC0wNCAxNTowNDo1MCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3Rmb3JtYXQuaDogQWRkZWQgcHJlY2lzaW9uIGluIHRoZSBjb21tZW50cyBmb3IgR1NUX0ZPUk1BVF9ERUZBVUxUCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgQWRkZWQgcHJlY2lzaW9uIGluIHRoZSBjb21tZW50cyBmb3IgR1NUX0ZPUk1BVF9ERUZBVUxUCgoyMDA1LTEwLTA0IDEzOjE5OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoKMjAwNS0xMC0wNCAxMjowMjozNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92ZSBzb21lIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciB0aGVyZSBmcm9tIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNvbWUgZmlsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIHRoZXJlIGZyb20gc3BlYyBmaWxlCgoyMDA1LTEwLTA0IDExOjUxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb24ndCB0cnkgdG8gcnVuIGVycm9uZW91cyBwaXBlbGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBEb24ndCB0cnkgdG8gcnVuIGVycm9uZW91cyBwaXBlbGluZXMuCgoyMDA1LTEwLTA0IDExOjEwOjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuYzogQWRkIGFub3RoZXIgZXJyb3Igc3RyaW5nIHVzZWQgaW4gYSBmZXcgZXhpc3RpbmcgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEFkZCBhbm90aGVyIGVycm9yIHN0cmluZyB1c2VkIGluIGEgZmV3IGV4aXN0aW5nIHBsdWdpbnMuCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFdoZW4gYSBmZWF0dXJlIGRpc2FwcGVhcnMgZnJvbSBhIHBsdWdpbiAoYW5kIHRoZSBmZWF0dXJlIGV4aXN0cyBpbgoJICB0aGUgY2FjaGVkIHJlZ2lzdHJ5IGZpbGUpLCB0aGluZ3Mgd2VudCBob3JyaWJseSB3cm9uZy4gVGhpcyBpc24ndCBhCgkgIGNvbXBsZXRlIGZpeCwgd2Ugc2hvdWxkIGFjdHVhbGx5IGJlIHJlbW92aW5nIHRoZSAnbWlzc2luZycgZmVhdHVyZXMKCSAgZnJvbSB0aGUgZmVhdHVyZXMgbGlzdCB3aGVuIHdlIGxvYWQgdGhlIGFjdHVhbCBwbHVnaW4uIFRoYXQncyBub3QKCSAgeWV0IGltcGxlbWVudGVkLgoKMjAwNS0xMC0wNCAxMTowOTo0MSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IFdlIGRvbid0IG5lZWQgdGhpcyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiBXZSBkb24ndCBuZWVkIHRoaXMgaGVhZGVyLgoKMjAwNS0xMC0wMyAxNzo1NzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS4zID09PQoKMjAwNS0xMC0wMyAxNzo0NzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFQURNRToKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHJlbGVhc2UgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzZSB0aW1lCgoyMDA1LTEwLTAyIDIzOjI0OjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IFRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24gd2hlcmVieSBjYWxsaW5nIGEgcGFkJ3MgYWN0aXZhdGVwdXNoKCkgZnVuY3Rpb24gY2FuIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uCgkgIHdoZXJlYnkgY2FsbGluZyBhIHBhZCdzIGFjdGl2YXRlcHVzaCgpIGZ1bmN0aW9uIGNhbiBzdGFydCBhIHRocmVhZAoJICB0aGF0IHN0YXJ0cyB0byBwdXNoIG9yIHB1bGwgYmVmb3JlIHRoZSBwYWQgZ2V0cyB0aGUgRkxVU0hJTkcgZmxhZwoJICB1bnNldC4gSGFjayBhcm91bmQgaXQgYnkgaG9sZGluZyB0aGUgc3RyZWFtIGxvY2sgdW50aWwgdGhlIGZsYWcgaXMKCSAgc2V0LiBOZWVkIHRvIHJlcGxhY2UgdGhpcyB3aXRoIGEgcHJvcGVyIHNvbHV0aW9uLiBUb2dldGhlciB3aXRoCgkgIHRoZSBnaG9zdCBwYWQgZml4ZXMsIHRoaXMgZml4ZXMgbXAzIHBsYXlpbmcvdGFncmVhZGluZy4KCjIwMDUtMTAtMDIgMjM6MjE6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMTAtMDIgMjM6MjA6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBBZGQgYSBub3RlIGFib3V0IGFjdGl2YXRpb24gb2YgcHJveHkgcGFkcyBvdXRzaWRlIG9mIGdob3N0IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBBZGQgYSBub3RlIGFib3V0IGFjdGl2YXRpb24gb2YKCSAgcHJveHkgcGFkcyBvdXRzaWRlIG9mIGdob3N0IHBhZHMuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IEltcGxlbWVudCB0aGUgZ2hvc3QgcGFkIGFjdGl2YXRpb24gZGVzaWduLgoKMjAwNS0xMC0wMiAxODo1NzowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogSnVzdCB1c2UgdGhlIGludC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogSnVzdCB1c2UgdGhlIGludC4KCSAgSXQgaXMgdm9sYXRpbGUsIGFmdGVyIGFsbC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogRmxlc2ggb3V0IGFjdGl2YXRpb24gd2l0aAoJICBnaG9zdCBwYWRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2luaXQpOiBVc2UKCSAgR1NUX0RFQlVHX0ZVTkNQVFIuCgoyMDA1LTEwLTAyIDE4OjMwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggKHVudXNlZCkgQU1fQ09ORElUSU9OQUwgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4ICh1bnVzZWQpIEFNX0NPTkRJVElPTkFMIHRlc3RzLgoKMjAwNS0xMC0wMSAxNzoxMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgYXNzZXJ0aW9uIHRoYXQgbWFrZXMgc3VyZSBzcmNfdmFsIGlzID49MCwganVzdCBsaWtlIGdzdF9xdWVyeV9uZXdfY29udmVydCgpIGhhcy4gKCMzMTU4OTUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgQWRkIGFzc2VydGlvbiB0aGF0IG1ha2VzIHN1cmUgc3JjX3ZhbCBpcyA+PTAsIGp1c3QgbGlrZQoJICBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKSBoYXMuICgjMzE1ODk1KQoKMjAwNS0wOS0zMCAxNTo0MzowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogTGV0J3Mgbm90IGl0ZXJhdGUgcGFkcyB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiwgaXQgYXZvaWRzIGdldHRpbmcgc2t5LWhpZ2ggcmVmY291bnRzIG9uIHNpbmtwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBMZXQncyBub3QgaXRlcmF0ZSBwYWRzIHdlJ3JlIG5vdCBpbnRlcmVzdGVkIGluLCBpdCBhdm9pZHMgZ2V0dGluZwoJICBza3ktaGlnaCByZWZjb3VudHMgb24gc2lua3BhZC4KCjIwMDUtMDktMzAgMDg6Mjk6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCB0d2VhaywgZWxlbWVudCBpbiBBU1lOQyByZW1haW5zIEFTWU5DLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIHR3ZWFrLCBlbGVtZW50IGluIEFTWU5DIHJlbWFpbnMgQVNZTkMuCgoyMDA1LTA5LTMwIDA4OjAwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBlcnJvciBpcyBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgT25seSBlcnJvciBpcyBhbiBlcnJvci4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9jaGFpbik6CgkgIEFsc28gY2FsbCBwYWRfYmxvY2sgaW4gcGFkIGFsbG9jLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoKMjAwNS0wOS0yOSAyMDoyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IGRvY3VtZW50YXRpb24gdHlwb3MuIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zLiBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgoyMDA1LTA5LTI5IDIwOjE2OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZGlzYWJsZSByZWZjb3VudCBjaGVja3MgdW50aWwgd2UgdHJhY2sgdGhlIGRhbmdsaW5nIHJlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSByZWZjb3VudCBjaGVja3MgdW50aWwgd2UgdHJhY2sgdGhlIGRhbmdsaW5nIHJlZgoKMjAwNS0wOS0yOSAxOTo0NToyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IE1ha2Ugc29tZSBlcnJvciBtZXNzYWdlcyBtb3JlIGVuZC11c2VyIGZyaWVuZGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IE1ha2Ugc29tZSBlcnJvciBtZXNzYWdlcwoJICBtb3JlIGVuZC11c2VyIGZyaWVuZGx5LgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKTogQ2hlY2sgaWYgY29tbWFuZC1saW5lIGFyZ3VtZW50IGlzCgkgIGEgZmlsZSBhbmQgYXR0ZW1wdCB0byBsb2FkIHRoYXQgZmlsZSBhcyBhIHBsdWdpbi4KCjIwMDUtMDktMjkgMTg6Mzc6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBmaXggdGVzdHMgZm9yIHRoZSBuZXcgd2FybmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkgIGZpeCB0ZXN0cyBmb3IgdGhlIG5ldyB3YXJuaW5nCgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBhIHRlc3QgZm9yIHBpcGVsaW5lIGFuZCBidXMgaW50ZXJhY3Rpb24KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50cyBzaG91bGQgYmUgTlVMTCBpZiB0aGV5IGdldCBkaXNwb3NlZDsgYWRkIGEgd2FybmluZyBpZiBub3QKCjIwMDUtMDktMjkgMTg6MzU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBmb3IgMi42IHJlZmNvdW50aW5nLCBtYWtlIGRlYnVnIGxvZyBtb3JlIGNvcnJlY3QgYnkgcHJpbnRpbmcgdGhlIGFjdHVhbCByZWZjb3VudHMgYXQgdGhlIHRpbWUgb2Ygc3dhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgZm9yIDIuNiByZWZjb3VudGluZywgbWFrZSBkZWJ1ZyBsb2cgbW9yZSBjb3JyZWN0IGJ5IHByaW50aW5nCgkgIHRoZSBhY3R1YWwgcmVmY291bnRzIGF0IHRoZSB0aW1lIG9mIHN3YXAgKFdpbSkKCjIwMDUtMDktMjkgMTg6MjU6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgdXNlIG1lc3NhZ2UgdHlwZSBuYW1lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXNlIG1lc3NhZ2UgdHlwZSBuYW1lcwoKMjAwNS0wOS0yOSAxNjowNjoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wOS0yOSAxNjowNDozMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOiBOZXcgZnVuY3Rpb24sIHJlbW92ZXMgc2lnbmFsIHdhdGNoZXMgcHJldmlvdXNseSBhZGRlZCB2aWEgZ3N0X2J1c19hZGRfc2lnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKTogTmV3IGZ1bmN0aW9uLAoJICByZW1vdmVzIHNpZ25hbCB3YXRjaGVzIHByZXZpb3VzbHkgYWRkZWQgdmlhCgkgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaC4KCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6IERvbid0IHJldHVybiB0aGUgc291cmNlIGlkLCBqdXN0IHN0b3JlCgkgIGl0IG9uIHRoZSBidXMgaWYgdGhlcmUgd2Fzbid0IGFuIGlkIGFscmVhZHkuCgkgICogZ3N0L2dzdGJ1cy5oIChHc3RCdXMpOiBBZGQgYSBjb3VwbGUgbmV3IGZpZWxkcy4gQVBJIGNoYW5nZXMgZm9yCgkgIGFkZF9zaWduYWxfd2F0Y2ggYW5kIHJlbW92ZV9zaWduYWxfd2F0Y2guCgoyMDA1LTA5LTI5IDE1OjM5OjIyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEJldHRlciBpZiB3ZSBhY3R1YWxseSBpdGVyYXRlIHRoZSBsaXN0IDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBCZXR0ZXIgaWYgd2UgYWN0dWFsbHkgaXRlcmF0ZSB0aGUgbGlzdCA6KQoKMjAwNS0wOS0yOSAxMzowNzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQ2hhbmdlIGZvciBuZXcgYnVzIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGFuZ2UgZm9yIG5ldyBidXMgQVBJLgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgIChzZW5kX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSk6CgkgIENoYW5nZSBmb3IgbmV3IGJ1cyBzaWduYWwgQVBJLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX2hhdmVfcGVuZGluZyksCgkgIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2NoZWNrKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2gpLCAoZ3N0X2J1c19wb2xsKSwgKGdzdF9idXNfYXN5bmNfc2lnbmFsX2Z1bmMpLAoJICAoZ3N0X2J1c19zeW5jX3NpZ25hbF9oYW5kbGVyKSwgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBSZW1vdmUgc3VwcG9ydCBmb3IgbXVsdGlwbGUgR1NvdXJjZXMgb3BlcmF0aW5nIG9uIGRpZmZlcmVudAoJICBtZXNzYWdlIHR5cGVzIGFzIGl0IGlzIHRvbyBjb21wbGV4IGFuZCB1bm5lZWRlZCB3aGVuIHVzaW5nCgkgIHNpZ25hbHMuCgkgIEFkZGVkIHN1cHBvcnQgZm9yIHJlY2VpdmluZyBzaWduYWxzIGZyb20gdGhlIGJ1cy4KCjIwMDUtMDktMjkgMTI6Mzc6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVuYW1lIGZpbHRlci1jYXBzIHRvIGNhcHMgcHJvcGVydHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcmVuYW1lIGZpbHRlci1jYXBzIHRvIGNhcHMgcHJvcGVydHkKCjIwMDUtMDktMjkgMTI6MDU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogTW9yZSByb2J1c3QgZnJhY3Rpb24gc3RyaW5nIHBhcnNpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgTW9yZSByb2J1c3QgZnJhY3Rpb24gc3RyaW5nIHBhcnNpbmcuCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIE1lbnRpb24gZ3N0X3BhZF91c2VfZXhwbGljaXRfY2FwcygpID0+IGdzdF9wYWRfdXNlX2ZpeGVkX2NhcHMoKQoKMjAwNS0wOS0yOSAxMDo1Njo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IFRob3Ugc2hhbHQgbm90IGZyZWUgYSBzdHJ1Y3R1cmUgYW5kIHRoZW4gY29udGludWUgdXNpbmcgaXQgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSk6CgkgIFRob3Ugc2hhbHQgbm90IGZyZWUgYSBzdHJ1Y3R1cmUgYW5kIHRoZW4gY29udGludWUgdXNpbmcgaXQKCSAgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24uCgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKGNoZWNrX2ZvdXJjY19saXN0KSwgKHRlc3Rfc2ltcGxpZnkpLAoJICAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBjYXBzIHNpbXBsaWZpY2F0aW9uLgoKMjAwNS0wOS0yOSAwOTo0NDozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgdHdvIHJlbW92ZWQgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdHdvIHJlbW92ZWQgZnVuY3Rpb25zCgoyMDA1LTA5LTI5IDA5OjQyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBPb3BzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE9vcHMuCgoyMDA1LTA5LTI5IDA5OjM5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGQgYnVzIHRvIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYnVzIHRvIGJpbi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9kZWdyZWUpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgQSBiaW4gZG9lcyBub3QgaGF2ZSBhIGJ1cywgaXQgZ2V0cyB0aGUgYnVzIGZyb20gdGhlIHBhcmVudC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2spLCAoZ3N0X2VsZW1lbnRfaXNfaW5kZXhhYmxlKSwKCSAgKGdzdF9lbGVtZW50X2lzX2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2J1c19mdW5jKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgVGhlIHBpcGVsaW5lIHByb3ZpZGVzIGEgYnVzLgoKMjAwNS0wOS0yOSAwMjozMjozNyArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKTogVXNlIGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0gaW5zdGVhZCBvZiBnc3Rfc3RydWN0dXJlX2dldF9pbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBnc3Rfc3RydWN0dXJlX2dldF9lbnVtIGluc3RlYWQgb2YgZ3N0X3N0cnVjdHVyZV9nZXRfaW50CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX2dldF9lbnVtKTogSW1wbC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmggKGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0pOiBBZGQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEaXR0bwoKMjAwNS0wOS0yOSAwMTo1NzowMCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBHU1RfVFlQRV9TVEFURSBpbnN0ZWFkIG9mIEdfVFlQRV9JTlQsIG1haW5seSBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCSAgd2hpY2ggZG9lcyBpbnRyb3NwZWN0aW9uLgoJICBSZXZpZXdlZCBieSBDaHJpc3RpYW4gU2NoYWxsZXIKCjIwMDUtMDktMjggMTg6MTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgZml4ZWQgdW1sYXV0cyBpbiBDaGFuZ2VMb2cgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIHVtbGF1dHMgaW4gQ2hhbmdlTG9nIGFnYWluCgoyMDA1LTA5LTI4IDE3OjMwOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBkb24ndCBkbyBkdW1teSBnX3N0cmR1cCgpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgZG9uJ3QgZG8gZHVtbXkgZ19zdHJkdXAoKXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKG9uX29iamVjdF9jb250cm9sbGVkX3Byb3BlcnR5X2NoYW5nZWQpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX3NldCksCgkgIChnc3RfY29udHJvbGxlcl9nZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfdGltZWRfdmFsdWVfbm9kZSk6CgkgIGNvbnZlcnQgLy8gdG8gLyoqLyBjb21tZW50cwoKMjAwNS0wOS0yOCAxNjo0MzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuKjogQWRkZWQgYXN5bmMtbWVzc2FnZSBhbmQgc3luYy1tZXNzYWdlIHNpZ25hbHMgdG8gdGhlIGJ1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKSwgKGdzdF9idXNfY2xhc3NfaW5pdCksCgkgIChnc3RfYnVzX3Bvc3QpLCAocG9sbF9mdW5jKSwgKGdzdF9idXNfYXN5bmNfc2lnbmFsX2Z1bmMpLAoJICAoZ3N0X2J1c19zeW5jX3NpZ25hbF9oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFkZGVkIGFzeW5jLW1lc3NhZ2UgYW5kIHN5bmMtbWVzc2FnZSBzaWduYWxzIHRvIHRoZSBidXMuCgkgIEFkZGVkIGhlbHBlciBCdXNGdW5jIHRvIGVtaXQgc2lnbmFscyBmb3IgYWxsIHBvc3RlZCBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfdHlwZV9nZXRfbmFtZSksCgkgIChnc3RfbWVzc2FnZV90eXBlX3RvX3F1YXJrKSwgKGdzdF9tZXNzYWdlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZWdpc3RlciBxdWFya3MgZm9yIG1lc3NhZ2UgbmFtZXMuCgoyMDA1LTA5LTI4IDE2OjM5OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBhbm90aGVyIGNvbnN0cnVjdG9yIGZvciBsYW5ndWFnZSBiaW5kaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIGFkZGVkIGFub3RoZXIgY29uc3RydWN0b3IgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgoyMDA1LTA5LTI4IDE1OjQ1OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBhZGQgYW5vdGhlciBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgIGFkZCBhbm90aGVyIGNoZWNrCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBhZGQgc29tZSBkb2MKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgc2xpZ2h0bHkgbW9yZSByZWFkYWJsZSBjb2xvciBmb3IgcmVmY291bnQgZGVidWdnaW5nCgoyMDA1LTA5LTI4IDEzOjQxOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTbWFsbCBkb2MgZml4ZXMuIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X2RlZ3JlZSksICh1cGRhdGVfZGVncmVlKSwKCSAgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBTbWFsbCBkb2MgZml4ZXMuIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrKSwgKGdzdF9lbGVtZW50X3Byb3ZpZGVfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2Nsb2NrKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNYWtlIGdldC9zZXRfY2xvY2soKSBzeW1ldHJpYy4gQWRkIHByb3ZpZGVfY2xvY2sgdm1ldGhvZCBzaW5jZQoJICB0aGF0IGlzIGFjdHVhbGx5IHdoYXQgdGhpcyBmdW5jdGlvbiBkb2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfY2xvY2spOgoJICBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCjIwMDUtMDktMjggMTM6MDU6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3VubG9jayk6IENvbW1lbnQgYSBiaXQgaW4gbGlldSBvZiByZWFsIGRvY3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfdW5sb2NrKTogQ29tbWVudCBhIGJpdCBpbgoJICBsaWV1IG9mIHJlYWwgZG9jcy4uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiBDbGVhbmVkIHVwIGEgYml0LgoKMjAwNS0wOS0yOCAxMjo1Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy86IE1ha2UgZWxlbWVudCBkZXRhaWxzIHN0YXRpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIE1ha2UgZWxlbWVudCBkZXRhaWxzIHN0YXRpYy4KCjIwMDUtMDktMjggMTE6MDM6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBDbGVhbiB1cCBkaXNwb3NlIGhhbmRsZXJzLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfcmVmKSwgKGdzdF9vYmplY3RfdW5yZWYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIENsZWFuIHVwIGRpc3Bvc2UgaGFuZGxlci4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBSZW1vdmVkIHNwdXJpb3VzIFVOTE9DSy4KCjIwMDUtMDktMjcgMjA6NDA6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIHR3byBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzIGRvY3VtZW50cyBhbGwgdW5kb2N1bWVudGVkIEdzdFhYWEZsYWdzIGNvbXBsZXRlZCBzb21lIGluY29tcGxldGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICBhZGRlZCB0d28gbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoJICBkb2N1bWVudHMgYWxsIHVuZG9jdW1lbnRlZCBHc3RYWFhGbGFncwoJICBjb21wbGV0ZWQgc29tZSBpbmNvbXBsZXRlIGRvY3MKCjIwMDUtMDktMjcgMTg6MzM6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIG5vdyB1c2VsZXNzIGFuZCBsZWFreSByZXN1cnJlY3Rpb24gY29kZSBpbiBkaXNwb3NlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICByZW1vdmUgbm93IHVzZWxlc3MgYW5kIGxlYWt5IHJlc3VycmVjdGlvbiBjb2RlIGluIGRpc3Bvc2UKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgYWRkIHNvbWUgZGVidWdnaW5nCgoyMDA1LTA5LTI3IDE3OjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFJlbW92ZSBlbGVtZW50IHZhcmlhYmxlLCB3ZSBrZWVwIGVsZW1lbnQgaW5mbyBpbiB0aGUgaXRlcmF0b3Igbm93LgoKMjAwNS0wOS0yNyAxNjozMDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZXJyb3ItY2hlY2tpbmcgcmV0dXJuIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZXJyb3ItY2hlY2tpbmcgcmV0dXJuCgkgIHZhbHVlcy4KCjIwMDUtMDktMjcgMTY6MTY6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEVuYWJsZSBjaGVjayB0aGF0IHdvcmtzIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFbmFibGUgY2hlY2sgdGhhdCB3b3JrcyBub3cuCgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBSZWRpZCB0aGUgc3RhdGUgY2hhbmdlIGFsZ29yaXRobSB1c2luZyBhIHRvcG9sb2dpY2FsIHNvcnQgYWxnby4KCSAgSGFuZGxlcyBhbGwgY2FzZXMgY29ycmVjdGx5LgoJICBFeHBvc2VkIGl0ZXJhdG9yIGZvciBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVGVtcCBzdG9yYWdlIGZvciBzdGF0ZSBjaGFuZ2VzLiBOZWVkIHRvIGdldCByaWQgb2YgdGhpcyBzb29uLgoKMjAwNS0wOS0yNyAxNTozNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IExlYWsgZml4ZXMsIHRoZSBmb2xkIGZ1bmN0aW9ucyBuZWVkIHRvIHVucmVmIHRoZSBwYXNzZWQgb2JqZWN0IGFuZCBfZ2V0X3BhcmVudF8qKCkgcmV0dXJucyByZWYgdG8gcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2luaXQpLCAoZ3N0X3RlZV9kb19wdXNoKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGludGVyc2VjdF9jYXBzX2Z1bmMpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwKCSAgKGxpbmtfZm9sZF9mdW5jKSwgKGdzdF9wYWRfcHJveHlfc2V0Y2Fwcyk6CgkgIExlYWsgZml4ZXMsIHRoZSBmb2xkIGZ1bmN0aW9ucyBuZWVkIHRvIHVucmVmIHRoZSBwYXNzZWQgb2JqZWN0IGFuZAoJICBfZ2V0X3BhcmVudF8qKCkgcmV0dXJucyByZWYgdG8gcGFyZW50LgoKMjAwNS0wOS0yNyAxMzoyNToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogUGx1ZyBsZWFrIGluIHRlc3QgY2FzZSBhbmQgZml4ICdtYWtlIGNoZWNrLXZhbGdyaW5kJwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6ICh0ZXN0X21ha2Vfd3JpdGFibGUpOgoJICBQbHVnIGxlYWsgaW4gdGVzdCBjYXNlIGFuZCBmaXggJ21ha2UgY2hlY2stdmFsZ3JpbmQnCgoyMDA1LTA5LTI3IDEzOjA3OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTZXQgUkVBRE9OTFkgZmxhZyBvbiBzdWJidWZmZXJzLCBzbyB0aGF0IGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvcmtzIGNvcnJlY3RseSBpbiBhbGwgY2lyY3Vtc3RhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfaW5pdCk6CgkgIFNldCBSRUFET05MWSBmbGFnIG9uIHN1YmJ1ZmZlcnMsIHNvIHRoYXQgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkKCSAgd29ya3MgY29ycmVjdGx5IGluIGFsbCBjaXJjdW1zdGFuY2VzICh3ZSBjb3VsZCBoYXZlIGp1c3QgY29waWVkCgkgIHRoZSBwYXJlbnQgYnVmZmVyJ3MgcmVhZG9ubHkgZmxhZywgYnV0IGNvbmNlcHR1YWxseSBpdCBzZWVtcwoJICBjbGVhbmVyIHRvIG1hcmsgYWxsIHN1YmJ1ZmZlcnMgYXMgcmVhZC1vbmx5KS4gKGJhc2VkIG9uIHBhdGNoCgkgIGJ5IEFsZXNzYW5kcm8gRGVjaW5hLCAjMzE0NzEwKS4KCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChjcmVhdGVfcmVhZF9vbmx5X2J1ZmZlciksCgkgICh0ZXN0X21ha2Vfd3JpdGFibGUpLCAodGVzdF9zdWJidWZmZXJfbWFrZV93cml0YWJsZSksCgkgIChnc3RfdGVzdF9zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3RzIGZvciBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKS4KCjIwMDUtMDktMjcgMDk6NTc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IHVzZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICB1c2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2hhc19hbmNlc3Rvcik6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpIGNvcGllZCBmcm9tIGdzdGJpbi5jIGFzIGl0IGlzIGEKCSAgdXNlZnVsbCBmdW5jdGlvbi4KCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jcmVhdGUuYzogKGNyZWF0ZV9hbGxfZWxlbWVudHMpOgoJICAqIHRlc3RzL2xhdC5jOiAoaGFuZG9mZl9zcmMpLCAoaGFuZG9mZl9zaW5rKToKCSAgKiB0ZXN0cy9zY2hlZC9ydW54bWwuYzogKG1haW4pOgoJICAqIHRlc3RzL3NlZWtpbmcvc2Vla2luZzEuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOiAoYnVzX2hhbmRsZXIpLCAodGltZW91dF9mdW5jKSwKCSAgKG1haW4pOgoJICBGaXggY29tcGlsYXRpb24gb2Ygc29tZSB0ZXN0cy4KCjIwMDUtMDktMjcgMDk6Mjk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuaDogUmVtb3ZlIGNvbW1lbnQuIEdTVF9UWVBFX0dfRVJST1IgaXMgaGVyZSB0byBzdGF5LAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgUmVtb3ZlIGNvbW1lbnQuIEdTVF9UWVBFX0dfRVJST1IgaXMgaGVyZSB0byBzdGF5LAoJICBHX1RZUEVfRVJST1IgaGFzIGJlZW4gV09OVEZJWCdlZCBieSB0aGUgR0xpYiBmb2xrcwoJICAoIzMxNjk2MSwgIzMwMDYxMCkuCgoyMDA1LTA5LTI2IDE4OjIyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCBjaGVjayB0aGF0IHNob3dzIGVycm9yIGluIHN0YXRlIGNoYW5nZSBvcmRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRoYXQgc2hvd3MgZXJyb3IgaW4gc3RhdGUgY2hhbmdlIG9yZGVyLgoKMjAwNS0wOS0yNiAxNzo0NjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdXNlIDMgcXVldWVzIGFnYWluLCB3ZSB3ZXJlIGFkZGluZyBlbGVtZW50cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdXNlIDMgcXVldWVzIGFnYWluLCB3ZSB3ZXJlCgkgIGFkZGluZyBlbGVtZW50cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayk6CgkgIFNvbWUgZGVidWcgaW5mbywKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBBZGRlZCBzb21lIGRlYnVnIGluZm8gZmlyc3QuCgoyMDA1LTA5LTI2IDE3OjQwOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vOiBSZXBsYWNlIGFsbCBfcHVsbF9yZWdpb24oKSB3aXRoIF9wdWxsX3JhbmdlKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgUmVwbGFjZSBhbGwgX3B1bGxfcmVnaW9uKCkgd2l0aCBfcHVsbF9yYW5nZSgpCgoyMDA1LTA5LTI2IDE2OjE5OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdHJ5IHRoZSBmb3VydGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyeSB0aGUgZm91cnRoCgoyMDA1LTA5LTI2IDE2OjEyOjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZm9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb28KCjIwMDUtMDktMjYgMTY6MDc6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBCZXR0ZXIgZmFrZW91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEJldHRlciBmYWtlb3V0LgoKMjAwNS0wOS0yNiAxNTo0OToyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBVcGRhdGUgZm9yIGNvbnRyb2xsZXIgYXBpIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBVcGRhdGUgZm9yIGNvbnRyb2xsZXIgYXBpIGNoYW5nZS4KCjIwMDUtMDktMjYgMTU6NDM6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIFJlbW92ZSBtZW1jaHVuayBiZW5jaG1hcmsgc3R1ZmYsIHRoaXMgaXMgdGFrZW4gb3ZlciBieSBHTGliIGJ1ZyAxMTg0MzkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9tZW1jaHVuazogUmVtb3ZlIG1lbWNodW5rIGJlbmNobWFyayBzdHVmZiwgdGhpcyBpcyB0YWtlbgoJICBvdmVyIGJ5IEdMaWIgYnVnIDExODQzOS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3dhaXQpOiBGYWN0b3Igb3V0IHRoZSB3YWl0CgkgIHJvdXRpbmVzIHRvIGEgZnVuY3Rpb24uCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogSSBhbSBhIGdvb2QgcGVyc29uIHRvZGF5LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmggKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKQoJICAoZ3N0X29iamVjdF9zeW5jX3ZhbHVlcyk6IFJlbmFtZWQgZnJvbSBzaW5rX3ZhbHVlcy4gVWdoLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IFVwZGF0ZSBmb3IgX19nc3RfY29udHJvbGxlcl9rZXkuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmMgKF9fZ3N0X2NvbnRyb2xsZXJfa2V5KToKCSAgUmVuYW1lZCBmcm9tIGNvbnRyb2xsZXJfa2V5LCBhcyBpdCBpcyBleHBvcnRlZC4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogRmFrZSBvdXQgdGhlIGNvbXBpbGVyLgoKMjAwNS0wOS0yNiAxNTowMzo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmg6CgkgIHJlbW92ZSBxdWVyeXV0aWxzIGhlYWRlcnMgYWZ0ZXIgbW92aW5nIHRoZSB0d28gdXNlZCBmdW5jdGlvbnMgdG8gZ3N0cXVlcnkuICBhbHNvIGZpeGVzIGJ1aWxkIHByb2JsZW0gZm9yIGdzdHNpZGRlYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHF1ZXJ5dXRpbHMgaGVhZGVycyBhZnRlciBtb3ZpbmcgdGhlIHR3byB1c2VkIGZ1bmN0aW9ucwoJICB0byBnc3RxdWVyeS4gIGFsc28gZml4ZXMgYnVpbGQgcHJvYmxlbSBmb3IgZ3N0c2lkZGVjCgoyMDA1LTA5LTI2IDEzOjQwOjIxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQ29ycmVjdCBzeW50YXggZm9yIGRlYnVnIG9wdGlvbiBpbiBnc3QtbGF1bmNoIG1hbnBhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvcnJlY3Qgc3ludGF4IGZvciBkZWJ1ZyBvcHRpb24gaW4gZ3N0LWxhdW5jaCBtYW5wYWdlCgoyMDA1LTA5LTI2IDExOjIxOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2lzX3NlZWthYmxlKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTA5LTI1IDE4OjM0OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIGFkZGVkIG1vcmUgZG9jcwoKMjAwNS0wOS0yNSAxMjoxMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCB0aGUgbGFzdCB0d28gZG9jcyBmaWxlcyByZW1vdmVkIHRoZSB0bXBsIGRpcmVjdG9yeSBmcm9tIGN2cyAobm8gbW9yZSBjb25mbGljdHMgaGVyZSEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0Ly5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGlubGluZWQgdGhlIGxhc3QgdHdvIGRvY3MgZmlsZXMKCSAgcmVtb3ZlZCB0aGUgdG1wbCBkaXJlY3RvcnkgZnJvbSBjdnMgKG5vIG1vcmUgY29uZmxpY3RzIGhlcmUhKQoKMjAwNS0wOS0yNSAxMToxOToyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCB0d28gbW9yZSBkb2NzIGZhY3RvcmVkIGdzdHBhZHRlbXBsYXRlIG91dCBvZiBnc3RwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9maW5hbGl6ZSksIChnc3RfcGFkX3NldF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KSwgKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX2Rpc3Bvc2UpLCAobmFtZV9pc192YWxpZCksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgaW5saW5lZCB0d28gbW9yZSBkb2NzCgkgIGZhY3RvcmVkIGdzdHBhZHRlbXBsYXRlIG91dCBvZiBnc3RwYWQKCjIwMDUtMDktMjQgMTQ6MzU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEZpeCB0ZXN0IGNhc2U6IHdlIGNhbid0IHJlbHkgb24gYSBmaXhlZCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbiBnb2luZyBmcm9tIFJFQURZID0+IFBBVVNFRCBiZWNhdXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfZmxhZ2dlZF9zaW5rKSwKCSAgKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX3NlbWlfc2luayk6CgkgIEZpeCB0ZXN0IGNhc2U6IHdlIGNhbid0IHJlbHkgb24gYSBmaXhlZCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbgoJICBnb2luZyBmcm9tIFJFQURZID0+IFBBVVNFRCBiZWNhdXNlIHRoZSBzaW5rIG1pZ2h0IGNvbW1pdCBpdHMKCSAgbmV3IHN0YXRlIGZpcnN0IHdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBjcmVhdGVkIGJ5IHRoZSBzb3VyY2UKCSAgcmVhY2hlcyB0aGUgc2luayBiZWZvcmUgdGhlIHNvdXJjZSBoYXMgZmluaXNoZWQgaXRzIGNoYW5nZSBzdGF0ZS4KCSAgKFRlc3QgY2FzZSBzdGlsbCBmYWlscyBhdCB0aW1lcywgc2VlICMzMTY4NTYsIGNvbW1lbnQgNSBvbndhcmRzKQoKMjAwNS0wOS0yNCAxNDoxNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIFZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0wOS0yNCAxMTo0MTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suaDogV2VsbCwgdGhhdCdzIGVtYmFyYXNzaW5nLiAgTHVja2lseSB3ZSB3ZXJlbid0IHVzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBXZWxsLCB0aGF0J3MgZW1iYXJhc3NpbmcuICBMdWNraWx5IHdlIHdlcmVuJ3QgdXNpbmcKCSAgR1NUX0NMT0NLX0RJRkYgYW55d2hlcmUuCgoyMDA1LTA5LTIzIDE4OjA4OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9ndGstZG9jLm1hazogZG9uJ3QgZmFpbCBvbiBidWlsZGluZyBYTUwsIEZDNCBzbGF2ZSBzaG93cyBhIGJ1bmNoIG9mIGRvYyBtaXNzaW5nIGJpdHMgdGhhdCBJIGRvbid0IGdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3RrLWRvYy5tYWs6CgkgIGRvbid0IGZhaWwgb24gYnVpbGRpbmcgWE1MLCBGQzQgc2xhdmUgc2hvd3MgYSBidW5jaCBvZiBkb2MKCSAgbWlzc2luZyBiaXRzIHRoYXQgSSBkb24ndCBnZXQKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzb21lIGRvYyB1cGRhdGVzCgoyMDA1LTA5LTIzIDE4OjAyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIGJsdXJiIGFib3V0IGhvdyB0aGUgYnVzIGdvZXMgaW50byBmbHVzaGluZyBtb2RlIGFuZCBkcm9wcyBhbGwgbWVzc2FnZXMgd2hlbiBpdHMgYmluIGdvZXMgZnJvbSBSRUFEWSBpbnRvIE5VTEwgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBBZGQgYmx1cmIgYWJvdXQgaG93IHRoZSBidXMgZ29lcyBpbnRvIGZsdXNoaW5nIG1vZGUgYW5kCgkgIGRyb3BzIGFsbCBtZXNzYWdlcyB3aGVuIGl0cyBiaW4gZ29lcyBmcm9tIFJFQURZIGludG8gTlVMTAoJICBzdGF0ZS4KCjIwMDUtMDktMjMgMTc6NDY6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGEgbWV0aG9kIHRvIGdldCBhIEdzdENsb2NrVGltZSBvdXQgb2YgYSBzdHJ1Y3R1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9jbG9ja190aW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIG1ldGhvZCB0byBnZXQgYSBHc3RDbG9ja1RpbWUgb3V0IG9mIGEgc3RydWN0dXJlCgoyMDA1LTA5LTIzIDE3OjE3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCB0ZXN0IHRvIGNoZWNrIHN0YXRlIGNoYW5nZSBvcmRlciBpbiBiaW5zIChjYW4gc3RpbGwgYmUgbWFkZSB0byBmYWlsIGhlcmUgdW5kZXIgaGVhdnkgZGlzayBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX2ZsYWdnZWRfc2luayksCgkgICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9zZW1pX3NpbmspLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgdG8gY2hlY2sgc3RhdGUgY2hhbmdlIG9yZGVyIGluIGJpbnMgKGNhbiBzdGlsbCBiZSBtYWRlCgkgIHRvIGZhaWwgaGVyZSB1bmRlciBoZWF2eSBkaXNrIGxvYWQ7IGJhaWxzIG91dCB3aXRoICdQdXNoIG9uIHBhZAoJICBmYWtlc2luazpzaW5rMCwgYnV0IGl0IHdhcyBub3QgYWN0aXZhdGVkIGluIHB1c2ggbW9kZScpLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEZpeCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbiB0aGVyZSBpcyBvbmx5IGEgc2VtaSBzaW5rICgjMzE2ODU2KQoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIFVzZSBfY2xhc3NfcGVla19wYXJlbnQoKSwgbm90IF9jbGFzc19yZWYoKTsgZml4IGRvY3MgdG8gc2F5CgkgICdkZWZhdWx0IG1haW4gY29udGV4dCcgaW5zdGVhZCBvZiAnbWFpbmxvb3AnIHdoZXJlIHRoYXQgaXMKCSAgd2hhdCdzIG1lYW50LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgRml4IHR5cG9zIGluIGRlYnVnIG1lc3NhZ2VzCgoyMDA1LTA5LTIzIDE2OjM1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTA5LTIzIDE1OjQ4OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvbid0IGJyZWFrIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGJyZWFrIGRvY3MgYnVpbGQKCjIwMDUtMDktMjMgMTU6MzY6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdmFyaW91cyBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9jaGFpbik6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdmFyaW91cyBkb2MgdXBkYXRlcwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBjaGFuZ2UgYW4gYXNzZXJ0IGludG8gYW4gZXJyb3IgdW50aWwgaXQgZ2V0cyBmaXhlZCBwcm9wZXJseQoKMjAwNS0wOS0yMyAxNDozMToyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCAzIG1vcmUgYmlpaWlnIGRvYyBmaWxlcyBhbmQgYWRkZWQgc29tZSBtaXNzaW5nIGRvY3Mgb24gdGhlIGZseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGlubGluZWQgMyBtb3JlIGJpaWlpZyBkb2MgZmlsZXMgYW5kIGFkZGVkIHNvbWUgbWlzc2luZyBkb2NzIG9uIHRoZSBmbHkKCjIwMDUtMDktMjMgMTE6NDE6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcHV0IGJhY2sgc291cmNlIGluIHJlZ2lzdHJ5LiAgYWRkIGNoZWNrcyBmb3IgZmluZF9wbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbik6CgkgIHB1dCBiYWNrIHNvdXJjZSBpbiByZWdpc3RyeS4gIGFkZCBjaGVja3MgZm9yIGZpbmRfcGx1Z2luLgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6IChhc3NlcnRfc3RhdGUpLCAoZW1wdHlfYmluKSwKCSAgKHRlc3RfYWRkaW5nX29uZV9lbGVtZW50KSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6IChtYWluKToKCSAgc29tZSBjb21waWxlL3J1biBmaXhlcwoKMjAwNS0wOS0yMiAyMDowMjoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZml4IGxlYWsgaW4gdGhlIHRlc3QgaXRzZWxmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGVhayBpbiB0aGUgdGVzdCBpdHNlbGYKCjIwMDUtMDktMjIgMTg6MDc6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcmVwYXJlIGZvciBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBhbmQgcXVlcnkgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcGVlcl9xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUHJlcGFyZSBmb3IgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgYW5kIHF1ZXJ5CgkgIGhhbmRsaW5nLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFkZCBzb21lIGNvbW1lbnQuCgoyMDA1LTA5LTIyIDE3OjQwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IE1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgTW9yZSBkb2N1bWVudGF0aW9uLgoJICBBZGQgc2VnbWVudCBxdWVyeSBmb3IgZnV0dXJlIHVzZS4KCjIwMDUtMDktMjIgMTY6NTE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgU29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICBTaW1wbGlmeSBzZW5kX2V2ZW50CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRG9uJ3Qga25vdyBob3cgZmxhZ3MgZ290IGJyb2tlbi4KCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkZWQgbmV3IHF1ZXJ5LgoKMjAwNS0wOS0yMiAxNTozODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgc2ltcGxpc3RpYyB0ZXN0IHN1aXRlIGZvciBHU1RfVFlQRV9EQVRFIHNlcmlhbGlzYXRpb24gYW5kIGRlc2VyaWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6ICh0ZXN0X2RhdGUpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHNpbXBsaXN0aWMgdGVzdCBzdWl0ZSBmb3IgR1NUX1RZUEVfREFURSBzZXJpYWxpc2F0aW9uIGFuZAoJICBkZXNlcmlhbGlzYXRpb24uCgoyMDA1LTA5LTIyIDE1OjA4OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9UWVBFX0RBVEUsIGEgYm94ZWQgdHlwZSB0aGF0IHdyYXBzIEdEYXRlLCBhbmQgdGhlIHVzdWFsIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFsb25nIHdpdGggYSBoYWNrIHRoYXQgY2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfZGF0ZSksIChnc3RfdmFsdWVfZ2V0X2RhdGUpLAoJICAoZ3N0X2RhdGVfY29weSksIChnc3RfdmFsdWVfY29tcGFyZV9kYXRlKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZGF0ZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZGF0ZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2RhdGVfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2RhdGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQWRkIEdTVF9UWVBFX0RBVEUsIGEgYm94ZWQgdHlwZSB0aGF0IHdyYXBzIEdEYXRlLCBhbmQgdGhlIHVzdWFsCgkgIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFsb25nIHdpdGggYSBoYWNrIHRoYXQgY2hlY2tzIHRoYXQKCSAgZGV2ZWxvcGVycyBkb24ndCBhY2NpZGVudGFsbHkgdXNlIEdfVFlQRV9EQVRFIHdoZXJlIEdTVF9UWVBFX0RBVEUKCSAgaXMgcmVxdWlyZWQuIFBhcnQgb2YgdGhlIGdyYW5kIHNjaGVtZSBpbiAjMTcwNzc3LgoKMjAwNS0wOS0yMiAxMjowNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBQc3ljaCBvdXQgZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOiBQc3ljaCBvdXQgZ3RrLWRvYy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0hBVkVfR0xJQl8yXzguCgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNoZWNrX1BST0dSQU1TKTogQWRkIGdzdHBsdWdpbiB0byB0aGUgdGVzdHMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfZWxlbWVudF9saXN0KTogUGx1ZyBzb21lCgkgIGluY29uc2VxdWVudGlhbCBsZWFrcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KTogRG9jLgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYyAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jIChnc3RfaW5kZXhfZmFjdG9yeV9jcmVhdGUpOiBVcGRhdGUgZm9yCgkgIHJlZmNvdW50IGNoYW5nZXMuCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYyAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSk6IERvYy4KCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKTogRG9jLCBkb24ndCBlYXQgcmVmcy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZCk6IERvYywgZG9uJ3QgZWF0IHJlZnMuCgkgIChnc3RfcGx1Z2luX2xpc3RfZnJlZSk6IERvYy4KCSAgKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogRG9jIHVwZGF0ZXMuCgoyMDA1LTA5LTIyIDA5OjMwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZ2V0X2NhcHMpOiBMaWtlIGFsbCBvdXIgX2dldCBhY2Nlc3NvcnMgcmV0dXJuaW5nIHJlZmNvdW50ZWQgb2JqZWN0cywgcmV0dXJuIGEgcmVmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZ2V0X2NhcHMpOiBMaWtlIGFsbCBvdXIgX2dldAoJICBhY2Nlc3NvcnMgcmV0dXJuaW5nIHJlZmNvdW50ZWQgb2JqZWN0cywgcmV0dXJuIGEgcmVmLgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYyAoR1NUX1NUQVJUX1RFU1QpOiBVc2UgcmVmY291bnQtaWRlbXBvdGVudAoJICBhY2Nlc3NvciBmb3IgY2Fwcy4gSURFTVBPVEVOQ0UuIE9oIHllcy4KCjIwMDUtMDktMjEgMjE6Mzk6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBBZGQgbXV0ZXggdG8gc2VyaWFsaXNlIGFjY2VzcyB0byB0aGUgaGFzaCB0YWJsZSB3aXRoIHRoZSBmdW5jdGlvbiBwb2ludGVyID0+IGZ1bmN0aW9uIG5hbWUgc3RyaW5nIG1hcHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpLAoJICAoX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyKToKCSAgQWRkIG11dGV4IHRvIHNlcmlhbGlzZSBhY2Nlc3MgdG8gdGhlIGhhc2ggdGFibGUgd2l0aAoJICB0aGUgZnVuY3Rpb24gcG9pbnRlciA9PiBmdW5jdGlvbiBuYW1lIHN0cmluZyBtYXBwaW5nOwoJICBtYWtlIHRoYXQgaGFzaCB0YWJsZSBzdGF0aWMgc2NvcGUgKCMzMTY4MDkpLgoJICAqIGdzdC9yZWdpc3RyaWVzLy5jdnNpZ25vcmU6CgkgIFJlbW92ZSBsZWZ0LW92ZXIgZmlsZS4KCjIwMDUtMDktMjEgMTU6NTU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDogQW5kIHNvbWV0aGluZyBhYm91dCBuZXdzZWdtZW50IGV2ZW50cyBhbmQgY2Fwcy1vbi1idWZmZXJzIHRvIHRoZSBwb3J0aW5nIGd1aWRlIChmZWVsIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIEFuZCBzb21ldGhpbmcgYWJvdXQgbmV3c2VnbWVudCBldmVudHMgYW5kIGNhcHMtb24tYnVmZmVycyB0bwoJICB0aGUgcG9ydGluZyBndWlkZSAoZmVlbCBmcmVlIHRvIGltcHJvdmUpLgoKMjAwNS0wOS0yMSAxMzoyNDozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIFRlc3QgdGhhdCByZW1vdmluZyBwcm9iZXMgZnJvbSB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9ucyB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICh0ZXN0X2J1ZmZlcl9wcm9iZV9vbmNlKTogVGVzdCB0aGF0IHJlbW92aW5nIHByb2JlcyBmcm9tIHdpdGhpbgoJICB0aGUgcHJvYmUgZnVuY3Rpb25zIHdvcmtzLgoKMjAwNS0wOS0yMSAxMzoxMToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmMgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBZGQgdGVzdHMgZm9yIGRhdGEgYW5kIGV2ZW50IHByb2JlcyBvbiB0aGUgc2FtZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQWRkIHRlc3RzIGZvcgoJICBkYXRhIGFuZCBldmVudCBwcm9iZXMgb24gdGhlIHNhbWUgcGFkLgoKMjAwNS0wOS0yMSAxMjoyMToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE5ldyBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTmV3IGZpbGUuCgkgICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQSBzaW1wbGUgYnVmZmVyIHByb2JlIHRlc3QuIE1vcmUgdG8KCSAgY29tZSwgZm9vbGlvcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKTogQ29ubmVjdCB0bwoJICBoYXZlLWRhdGE6OmJ1ZmZlciwgbm90IGhhdmUtZGF0YS4KCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKTogTGlrZXdpc2UgZm9yIGhhdmUtZGF0YTo6ZXZlbnQuCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKTogTW9yZSBkb2NzLiBUaGUgcGFydCBhYm91dCAncmVzb2x2aW5nIHRoZQoJICBwZWVyJyBpc24ndCBxdWl0ZSByaWdodCB5ZXQgdGhvdWdoLgoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlLCBnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSkKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpOiBDaGFuZ2UgdG8gdGFrZSB0aGUgZ3VpbnQgaGFuZGxlcl9pZAoJICBhcyB0aGVpciBhcmcsIG5vdCB0aGUgZnVuY3Rpb24rZGF0YSwgd2hpY2ggaXMgbW9yZSBnbGliLWxpa2UuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCk6IEFkZCBhIGRldGFpbCB0bwoJICB0aGUgc2lnbmFsIGVtaXNzaW9uIHRvIGluZGljYXRlIGlmIHRoZSBkYXRhIGlzIGEgYnVmZmVyIG9yIGFuCgkgIGV2ZW50LgoJICAoZ3N0X3BhZF9nZXRfdHlwZSk6IEluaXRpYWxpemUgYnVmZmVyIGFuZCBldmVudCBxdWFya3MuCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpOiBoYXZlLWRhdGEgaXMgbm93IGEgZGV0YWlsZWQgc2lnbmFsLCB5ZXMgaXQKCSAgaXMuCgoyMDA1LTA5LTIxIDExOjUyOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRG9uJ3QgcHV0IGZ1bmN0aW9uYWwgY29kZSBpbiBnX3JldHVybl9pZl9mYWlsKCkgb3IgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBzdGF0ZW1lbnRzLCBvdGhlcndpc2UgdGhpbmdzIHdpbGwgYnJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpLAoJICAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICBEb24ndCBwdXQgZnVuY3Rpb25hbCBjb2RlIGluIGdfcmV0dXJuX2lmX2ZhaWwoKSBvcgoJICBnX3JldHVybl92YWxfaWZfZmFpbCgpIHN0YXRlbWVudHMsIG90aGVyd2lzZSB0aGluZ3Mgd2lsbAoJICBicmVhayB3aGVuIEdfRElTQUJMRV9DSEVDS1MgaXMgZGVmaW5lZCBkdXJpbmcgY29tcGlsYXRpb24uCgoyMDA1LTA5LTIxIDA5OjQ4OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpZWQgYW5vdGhlciBvbmUgYW5kIGFkZGVkICBzb21lIG9idmlvdXMgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBpbmxpZWQgYW5vdGhlciBvbmUgYW5kIGFkZGVkICBzb21lIG9idmlvdXMgZG9jcwoKMjAwNS0wOS0yMSAwOToxMzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy4qOiBQcm9wZXJseSBpbXBsZW1lbnQgZmRzcmMuIFJlbW92ZWQgc2lnbmFsIGFuZCB0aW1lb3V0LCBiZXR0ZXIgaW1wbGVtZW50ZWQgc29tZXdoZXJlIGVsc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX3N0YXJ0KSwgKGdzdF9mZHNyY19zdG9wKSwKCSAgKGdzdF9mZHNyY191bmxvY2spLCAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQcm9wZXJseSBpbXBsZW1lbnQgZmRzcmMuIFJlbW92ZWQgc2lnbmFsIGFuZCB0aW1lb3V0LAoJICBiZXR0ZXIgaW1wbGVtZW50ZWQgc29tZXdoZXJlIGVsc2UuCgoyMDA1LTA5LTIxIDA4OjU4OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkgICogZ3N0L2dzdGludGVyZmFjZS5jOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOS0yMSAwODo0MDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvOiByZW1vdmUgb2Jzb2xldGUgZG9jIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSAgcmVtb3ZlIG9ic29sZXRlIGRvYyBmaWxlCgoyMDA1LTA5LTIxIDA3OjM3OjAyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBEcmluayBhIGxpdHRsZSBiZWVyLCBmaXggYSBsaXR0bGUgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOiBEcmluayBhCgkgIGxpdHRsZSBiZWVyLCBmaXggYSBsaXR0bGUgbGVhay4KCjIwMDUtMDktMjAgMjA6NTQ6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgcmVtb3ZlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZmlsZXMKCjIwMDUtMDktMjAgMjA6NDA6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBpbmxpbmVkLCBzcGxpdHRlZCBnc3RpbmRleC57YyxofQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfY2xhc3NfaW5pdCksIChnc3RfaW5kZXhfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9mYWN0b3J5X25ldyksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9kZXN0cm95KSwgKGdzdF9pbmRleF9mYWN0b3J5X2ZpbmQpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfY3JlYXRlKSwgKGdzdF9pbmRleF9mYWN0b3J5X21ha2UpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KToKCSAgbW9yZSBkb2NzIGlubGluZWQsIHNwbGl0dGVkIGdzdGluZGV4LntjLGh9CgoyMDA1LTA5LTIwIDIwOjE5OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGZpeCBhIGxlYWsgaW4gY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgbGVhayBpbiBjb250cm9sbGVyCgoyMDA1LTA5LTIwIDE5OjE2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KToKCSAgU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCjIwMDUtMDktMjAgMTc6Mzg6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN5bmMgcHJvcGVydHkgc2V0dGFibGUgZnJvbSBzdWJjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpOgoJICBNYWtlIHN5bmMgcHJvcGVydHkgc2V0dGFibGUgZnJvbSBzdWJjbGFzcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgoyMDA1LTA5LTIwIDE3OjMwOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVGhlIHRpbWVvdXQgaGFuZGxlciBzaG91bGQgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBzb3VyY2Ugc28gd2UgZG9uJ3QgdGltZW91dCBiZWZvcmUgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aCAwIHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKHBvbGxfZnVuYyksIChwb2xsX3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgVGhlIHRpbWVvdXQgaGFuZGxlciBzaG91bGQgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBzb3VyY2UKCSAgc28gd2UgZG9uJ3QgdGltZW91dCBiZWZvcmUgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aCAwIHRpbWVvdXQuCgkgIER1bXAgZXJyb3IgbWVzc2FnZXMgYWZ0ZXIgZmFpbGVkIHN0YXRlIGNoYW5nZS4KCjIwMDUtMDktMjAgMTc6MjE6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBGaXggdHdvIHR5cG9zLgoKMjAwNS0wOS0yMCAxNTo0NTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmUgdGhlIHN5bmMgcHJvcGVydHkgZnJvbSBmYWtlc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIHJlbW92ZSB0aGUgc3luYyBwcm9wZXJ0eSBmcm9tIGZha2VzaW5rLgoJICBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIHNldHRpbmcgc3luYyBUUlVFCgkgIGZvciBmYWtlc2luaywgd2hpY2ggaXMgYSBjaGFuZ2UuICBBbnlvbmUgd2hvIGtub3dzIGhvdwoJICB0byBmaXggdGhpcyBuaWNlbHkgaW4gYSBHT2JqZWN0LXkgd2F5LCBmZWVsIGZyZWUuCgoyMDA1LTA5LTIwIDE1OjE5OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiByZW1vdmUgcHJvYmUgcmVmc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICByZW1vdmUgcHJvYmUgcmVmc2VjdGlvbgoKMjAwNS0wOS0yMCAxMjo1MDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGRpc2FibGUgdmFsZ3JpbmRpbmcgdGhlIGNvbnRyb2xsZXIgdGVzdCBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB2YWxncmluZGluZyB0aGUgY29udHJvbGxlciB0ZXN0IGFnYWluCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdXBkYXRlIGZvciBhcGktY2hhbmdlcwoKMjAwNS0wOS0yMCAxMjowNTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZGVkIHN5bmMgcHJvcGVydHkgdG8gYmFzZXNpbmsgdG8gZGlzYWJsZSBjbG9jayBzeW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgc3luYyBwcm9wZXJ0eSB0byBiYXNlc2luayB0byBkaXNhYmxlIGNsb2NrIHN5bmMuCgoyMDA1LTA5LTIwIDExOjA5OjUwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOiBBdm9pZCBlYXRpbmcgdGhlIGNhbGxlcidzIHJlZmNvdW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOiBBdm9pZAoJICBlYXRpbmcgdGhlIGNhbGxlcidzIHJlZmNvdW50LgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVCkKCSAgKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBDb25kaXRpb25hbGx5IGZvbmRsZSB0aGUgcmlnaHQKCSAgcmVmY291bnQuCgkgICogZ3N0L2dzdGNvbmZpZy5oLmluIChHU1RfSEFWRV9HTElCXzJfOCk6CgkgICogY29uZmlndXJlLmFjIChHU1RfSEFWRV9HTElCXzJfOF9ERUZJTkUpOiBNYWtlIHRoZSBhdmFpbGFiaWxpdHkKCSAgb2YgR0xpYiAyLjggcHVibGljLCBzbyB3ZSBjYW4ga25vdyB3aGljaCByZWZjb3VudCB0byBjaGVjayBpbgoJICB0ZXN0cy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IFVzZSB0aGUgR1NUX0hBVkVfR0xJQl8yXzggZGVmaW5lLgoJICAoZ3N0X29iamVjdF9pbml0KTogT25seSBzZXQgdGhlIGdzdCByZWZjb3VudCBpZiB3ZSdyZSBnb2luZyBhaGVhZAoJICB3aXRoIHRoZSByZWZjb3VudCBoYWNrLgoKMjAwNS0wOS0yMCAxMDo0MTowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBsZWFrcyBwbHVtYmVkLCBhZGRlZCBtb3JlIGRlYnVnLWxvZ2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAocGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCk6CgkgIG1vcmUgbGVha3MgcGx1bWJlZCwgYWRkZWQgbW9yZSBkZWJ1Zy1sb2dnaW5nCgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICB3aGl0ZXNwYWNlIGZpeAoKMjAwNS0wOS0yMCAwOTo0NzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIHJlbW92ZSBpbmNsdWRlIG9mIHJlbW92ZWQgaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaW5jbHVkZSBvZiByZW1vdmVkIGhlYWRlcgoKMjAwNS0wOS0yMCAwOToyODo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogQ29tbWl0IGZyb20gdGhlIFBvbGl0aWNhbCBQYXJ0eSBGb3IgTW9yZSBBdG9taWMgQ1ZTIENvbW1pdHMsIHNvIHRoYXQgcGVvcGxlIGRvbid0IHdhc3RlIHRvbyBtdWNoIG9mIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBDb21taXQgZnJvbSB0aGUgUG9saXRpY2FsIFBhcnR5IEZvciBNb3JlIEF0b21pYyBDVlMgQ29tbWl0cywKCSAgc28gdGhhdCBwZW9wbGUgZG9uJ3Qgd2FzdGUgdG9vIG11Y2ggb2YgdGhlaXIgZGF5IGZpc2hpbmcKCSAgb3V0IG9idmlvdXMgbGVha3Mgb3V0IG9mIG1hc3NpdmUgY29tbWl0cy4KCSAgT2gsIGFuZCBmaXggYSBwcmV0dHkgZGFtbiBvYnZpb3VzIGxlYWsgaW4gdGhlIG1lbWNodW5rCgkgIHJlbW92YWwgY29kZS4KCjIwMDUtMDktMjAgMDk6MjM6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrLzogcGx1ZyBtZW0tbGVhaywgcmUtYWRkIHRvIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChwbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIHBsdWcgbWVtLWxlYWssIHJlLWFkZCB0byB2YWxncmluZGFibGUgdGVzdHMKCjIwMDUtMDktMjAgMDk6MDg6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHVuYnJlYWsgdGhlIGJ1aWxkIGZvciB0aG9zZSB3aG8gaGF2ZSBjaHJvbmljIGFydGhyaXRpcyBhbmQgdHlwaW5nICJtYWtlIGNoZWNrIiBpcyBqdXN0IHRvbyB0YXhpbmcgb24gdGhlIGhhbmRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bmJyZWFrIHRoZSBidWlsZCBmb3IgdGhvc2Ugd2hvIGhhdmUgY2hyb25pYyBhcnRocml0aXMKCSAgYW5kIHR5cGluZyAibWFrZSBjaGVjayIgaXMganVzdCB0b28gdGF4aW5nIG9uIHRoZSBoYW5kcwoKMjAwNS0wOS0yMCAwODoyNTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5oOiBSZS1hZGQgbWFyc2hhbCB0byBnc3QuaCdzIGluY2x1ZGUgbGlzdCAtLSBpZiB3ZSByZWFsbHkgd2FudCBpdCBvdXQsIHlvdSBzaG91bGQgZml4IHBsdWdpbnMgYXQgdGhlIHNhbWUgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5oOiBSZS1hZGQgbWFyc2hhbCB0byBnc3QuaCdzIGluY2x1ZGUgbGlzdCAtLSBpZiB3ZQoJICByZWFsbHkgd2FudCBpdCBvdXQsIHlvdSBzaG91bGQgZml4IHBsdWdpbnMgYXQgdGhlIHNhbWUgdGltZS4KCjIwMDUtMDktMjAgMDc6MzI6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1pc3Npbmcgc3ltYm9scyB0byBhcGkgZG9jcyBkaXNhYmxlIHJlZi1jb3VudCBoYWNrIGlmIHdlIGhhdmUgZ2xpYiA+PSAyLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBhZGRlZCBtaXNzaW5nIHN5bWJvbHMgdG8gYXBpIGRvY3MKCSAgZGlzYWJsZSByZWYtY291bnQgaGFjayBpZiB3ZSBoYXZlIGdsaWIgPj0gMi44CgoyMDA1LTA5LTIwIDA2OjI4OjMzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBJZ25vcmUgYSBmZXcgbW9yZSBpbnRlcm5hbCBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBJZ25vcmUgYSBmZXcgbW9yZSBpbnRlcm5hbCBoZWFkZXJzCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIG9sZCBzZWN0aW9ucwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZSBvbGQgc2VjdGlvbnMKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDogdXBkYXRlCgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOiB1cGRhdGUuCgkgICogZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgbWVtY2h1bmsgYW5kIHRyYXNoc3RhY2ssIHNpbmNlIHRoZXkncmUKCSAgbm90IHVzZWQuCgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlaW5pdCk6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZGVpbml0IHRvIF9jbGVhbnVwCgkgICogZ3N0L2dzdC5oOiBkb24ndCBpbmNsdWRlIHNvbWUgaGVhZGVycwoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IGFkZCBnc3RtYXJzaGFsLmgKCSAgKiBnc3QvZ3N0Y2xvY2suYzogRG9uJ3QgdXNlIG1lbWNodW5rcwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEFkZCBzb21lIGRvY3MKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IHJlbW92ZSBERVNUUk9ZRUQgZmxhZywgc2luY2UgaXQncyByZWR1bmRhbnQKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6IHNhbWUKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IGluY2x1ZGUgZ3N0bWFjcm9zLmgKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IGRvbid0IGluY2x1ZGUgZ3N0bWFjcm9zLmgsIHNpbmNlIGl0J3MgcHJpdmF0ZQoJICAqIGdzdC9nc3RxdWVyeS5jOiBkb24ndCB1c2UgbWVtY2h1bmtzCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZGVpbml0KCkKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDogc2FtZQoKMjAwNS0wOS0yMCAwNToxMzozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiBSZW1vdmUgZG9jcyBmb3IgZ2V0Yml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiBSZW1vdmUgZG9jcyBmb3IgZ2V0Yml0cwoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdHB1dGJpdHMuc2dtbDoKCjIwMDUtMDktMjAgMDA6Mjc6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQWRkIGEgc2xlZXAgdG8gZW5zdXJlIGVsZW1lbnRzIGhhdmUgYSBjaGFuY2UgdG8gc3RhcnQgdGhlaXIgcGFkIHRhc2tzIGJlZm9yZSBzaHV0ZG93bi4gUmVkdWNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBBZGQgYSBzbGVlcCB0byBlbnN1cmUgZWxlbWVudHMgaGF2ZSBhIGNoYW5jZSB0byBzdGFydCB0aGVpcgoJICBwYWQgdGFza3MgYmVmb3JlIHNodXRkb3duLiBSZWR1Y2VzIHJhY3kgdGVzdCByZXN1bHRzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgIFRpbWUgb3V0IHRoZSBzZWxlY3QgZXZlcnkgbm93IGFuZCB0aGVuIHRvIGNoZWNrIGZvciBzaHV0ZG93bi4KCjIwMDUtMDktMTkgMjA6MDE6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlLgoKMjAwNS0wOS0xOSAxNjozMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBBdXRvbWF0aWNhbGx5IFBBVVNFIGFuZCBSRVNVTUUgYSBwaXBlbGluZSB3aGVuIGEgZmx1c2hpbmcgc2VlayBpcyBwZXJmb3JtZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZG9fcGlwZWxpbmVfc2VlayksIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIEF1dG9tYXRpY2FsbHkgUEFVU0UgYW5kIFJFU1VNRSBhIHBpcGVsaW5lIHdoZW4gYSBmbHVzaGluZyBzZWVrCgkgIGlzIHBlcmZvcm1lZC4KCSAgUmVtb3ZlZCBvbGQgZmlsZXMuCgoyMDA1LTA5LTE5IDE2OjI4OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgd2hpdGVzcGFjZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4CgoyMDA1LTA5LTE5IDE1OjEyOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuaDogU3BhY2luZyBmaXhlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6IFNwYWNpbmcgZml4ZW4uCgoyMDA1LTA5LTE5IDE0OjU1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgc3RhdGUgY2hhbmdlIGZhaWx1cmUgbW9yZSBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgc3RhdGUgY2hhbmdlIGZhaWx1cmUgbW9yZSBjb3JyZWN0bHkuCgoyMDA1LTA5LTE5IDE0OjQxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogZW5hYmxlIGNsZWFudXAgYWdhaW4gYWZ0ZXIgZml4aW5nIHRoZSBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBlbmFibGUgY2xlYW51cCBhZ2FpbiBhZnRlciBmaXhpbmcgdGhlIGxlYWsKCSAgKiBkb2NzL1JFQURNRToKCSAgc29tZSBtb3JlIGluZm8gb24gZG9jcwoKMjAwNS0wOS0xOSAxNDoyMDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGRvbid0IGNvbXBsYWluIGFib3V0IG15IEFSTSAuc28gZmlsZXMuICBBbm90aGVyIHJlYXNvbiB3aHkgaXQgZG9lcyBtYWtlIHNlbnNlIHRvIGhhdmUgcGx1Z2lucyBmb2xsb3cgYSBzdGFuZGFyZCBmaWxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgY29tcGxhaW4gYWJvdXQgbXkgQVJNIC5zbyBmaWxlcy4gIEFub3RoZXIgcmVhc29uIHdoeSBpdCBkb2VzIG1ha2Ugc2Vuc2UKCSAgdG8gaGF2ZSBwbHVnaW5zIGZvbGxvdyBhIHN0YW5kYXJkIGZpbGUgbmFtZSBwYXR0ZXJuIGxpa2UgbGliZ3N0KHdoYXRldmVyKS5zbwoKMjAwNS0wOS0xOSAxNDowOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogcmUtZW5hYmxlIHRlc3RzIG5vdyB0aGF0IGxlYWtzIGFyZSBwbHVnZ2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICByZS1lbmFibGUgdGVzdHMgbm93IHRoYXQgbGVha3MgYXJlIHBsdWdnZWQKCSAgKiBjaGVjay9nc3QvZ3N0LmM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgc29tZSBtb3JlIHRlc3RzIHdoaWxlIGZpeGluZyBsZWFrcwoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIG1ha2Ugc3VyZSBiaW5hcmllcyBhcmUgdXB0b2RhdGUgd2hlbiB2YWxncmluZGluZy9nZGJpbmcKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHJlbW92ZSBhIHJlZiB0b28gbWFueSwgYW5kIGFkZCBhIEZJWE1FIGZvciB3aGVuIHdlIGdldAoJICByb3VuZCB0byBkaXNwb3Npbmcgb2YgY2xhc3NlcwoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZml4IHRoZSByZWZjb3VudGluZyB3aGVuIGxvYWRpbmcgYSBwbHVnaW4gZnJvbSBhIGZpbGUgYW5kCgkgIHRoZSBjb2RlIHByZXRlbmRzIHRoYXQgdGhlIHBvaW50ZXIgaXMgdGhlIHNhbWUgZXZlbiB0aG91Z2gKCSAgb2YgY291cnNlIGl0IGNhbiBjaGFuZ2UKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICB1bnJlZiBwbHVnaW5zIG1hcmtlZCBjYWNoZWQgKGEgYml0IGNvbmZ1c2luZyBhcyBhIG5hbWUpCgkgIGFzIHRoZSBkb2NzIHN0YXRlIHNob3VsZCBiZSBkb25lCgkgIHZhcmlvdXMgZG9jIGFkZGl0aW9ucyB0byBleHBsYWluIHJlZmNvdW50aW5nCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIGRlYnVnZ2luZwoKMjAwNS0wOS0xOSAxNDowOTozNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDktMTkgMTE6MTg6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBHc3RCdXNIYW5kbGVyIC0+IEdzdEJ1c0Z1bmMsIHJldHVybiB2YWx1ZSBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcyBhbnkgb3RoZXIgR1NvdXJjZSAoRkFMU0UgPT0gcmVtb3ZlIHNvdXJjZSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHNlbmRfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2hhdmVfcGVuZGluZyksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwKCSAgKGdzdF9idXNfc291cmNlX2NoZWNrKSwgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2gpLCAocG9sbF9mdW5jKSwgKHBvbGxfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgR3N0QnVzSGFuZGxlciAtPiBHc3RCdXNGdW5jLCByZXR1cm4gdmFsdWUgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMKCSAgYW55IG90aGVyIEdTb3VyY2UgKEZBTFNFID09IHJlbW92ZSBzb3VyY2UpLgoJICBfYWRkX3dhdGNoKCkgYW5kIF9hZGRfd2F0Y2hfZnVsbCgpIG5vdyB0YWtlIGEgTWVzc2FnZVR5cGUgbWFzayB0bwoJICBvbmx5IGhhbmRsZSBzcGVjaWZpYyB0eXBlcyBvZiBtZXNzYWdlcy4KCSAgX3BvbGwoKSByZXR1cm5zIHRoZSBHc3RNZXNzYWdlIGluc3RlYWQgb2YgdGhlIG1lc3NhZ2UgdHlwZSB0byBhdm9pZAoJICByYWNlIGNvbmRpdGlvbnMuCgkgIF9oYXZlX3BlbmRpbmcoKSB0YWtlcyBhIE1lc3NhZ2VUeXBlIG1hc2sgbm93IHRvby4KCSAgQWRkZWQgdGVzdHN1aXRlIGZvciBtdWx0aXBsZSBidXMgd2F0Y2hlcy4KCSAgRml4IHRlc3RzdWl0ZXMgYW5kIGFwcGxpY2F0aW9ucyBmb3IgbmV3IGJ1cyBBUEkuCgoyMDA1LTA5LTE4IDIyOjE1OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtYXJrIGEgYnVuY2ggb2YgdGhlIHRlc3RzIGFzIHRvIGZpeCB1bnRpbCB3ZSBmaXggdGhlbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFyayBhIGJ1bmNoIG9mIHRoZSB0ZXN0cyBhcyB0byBmaXggdW50aWwgd2UgZml4IHRoZW0KCjIwMDUtMDktMTggMjE6NDA6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2NoZWNrLm1hazogdXNlIEdTVF9QTFVHSU4gc2V0dGluZ3MgZm9yIHZhbGdyaW5kIHRlc3RzIGFzIHdlbGwsIHNvIHdlJ3JlIHZhbGdyaW5kaW5nIHRoZSBjb3JyZWN0IHRoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIHVzZSBHU1RfUExVR0lOIHNldHRpbmdzIGZvciB2YWxncmluZCB0ZXN0cyBhcyB3ZWxsLCBzbyB3ZSdyZQoJICB2YWxncmluZGluZyB0aGUgY29ycmVjdCB0aGluZwoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHBsdWcgYW5vdGhlciBsZWFrCgoyMDA1LTA5LTE4IDIxOjI0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgdmFyaW91cyBjbGVhbnVwcyBhbmQgbWVtbGVhayBwbHVnZ2luZy4gIG1ha2UgdmFsZ3JpbmQgaXMgaGFwcHkgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBjbGVhbnVwcyBhbmQgbWVtbGVhayBwbHVnZ2luZy4gIG1ha2UgdmFsZ3JpbmQgaXMgaGFwcHkgbm93LgoKMjAwNS0wOS0xOCAyMToyMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgoyMDA1LTA5LTE4IDA5OjE1OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBsb2FkaW5nIGEgcGx1Z2luIGNhbiByZXR1cm4gTlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9hZGluZyBhIHBsdWdpbiBjYW4gcmV0dXJuIE5VTEwKCjIwMDUtMDktMTggMDc6NDE6MjggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHRoZSBHT3B0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCB0aGUgR09wdGlvbiBjb2RlLgoKMjAwNS0wOS0xOCAwNjo1OToyNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRml4IGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06IEZpeCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICBDaGFuZ2UgcmVnaXN0cnkgdG8ga2VlcCB0cmFjayBvZiBib3RoIHBsdWdpbnMgYW5kIGZlYXR1cmVzLAoJICByZW1vdmluZyB0aGUgZmVhdHVyZSB0cmFja2luZyBmcm9tIHBsdWdpbnMgdGhlbXNlbHZlcy4KCjIwMDUtMDktMTcgMTg6MTQ6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoKMjAwNS0wOS0xNyAxODoxMToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgoyMDA1LTA5LTE2IDExOjI0OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgYWRkIG1pc2luZyBpbmNsdWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzaW5nIGluY2x1ZGUKCjIwMDUtMDktMTYgMDg6MTc6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzZXQgdGhlIHJpZ2h0IHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2V0IHRoZSByaWdodCB2YXIKCjIwMDUtMDktMTYgMDg6MTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1yZWdpc3Rlci4xLmluOgoJICByZW1vdmUgZ3N0LXJlZ2lzdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZ3N0LXJlZ2lzdGVyCgoyMDA1LTA5LTE2IDA0OjU0OjI0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEdldHRpbmcgdGlyZWQgb2YgZGVidWdnaW5nLiAgRGlzYWJsZWQgYWxsIHRoZSB1bnJlZmZpbmcgb2YgcGx1Z2lucyBhbmQgZmVhdHVyZXMsIHdoaWNoIGZpeGVzIHRoZSBzZWdmYXVsdHMsIGJ1dCBvZiBjby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEdldHRpbmcgdGlyZWQgb2YgZGVidWdnaW5nLiAgRGlzYWJsZWQgYWxsIHRoZSB1bnJlZmZpbmcgb2YKCSAgcGx1Z2lucyBhbmQgZmVhdHVyZXMsIHdoaWNoIGZpeGVzIHRoZSBzZWdmYXVsdHMsIGJ1dCBvZgoJICBjb3Vyc2UgbGVha3MgbGlrZSBjcmF6eS4gIEF0IGxlYXN0IHBsYXliaW4gd29ya3MuCgoyMDA1LTA5LTE2IDAzOjQ2OjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogTW9yZSB0ZXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKHJlZ2lzdGVyX2NoZWNrX2VsZW1lbnRzKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHBlZWspLCAoc3VnZ2VzdCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgTW9yZSB0ZXN0aW5nCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGaXggcmVmY291bnRpbmcuCgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCjIwMDUtMDktMTYgMDA6Mzc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHVudmVyYm9zaWZ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bnZlcmJvc2lmeQoKMjAwNS0wOS0xNiAwMDowODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBzb21lIHdoaXRlc3BhY2UgdG8gdHJpZ2dlciBhIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHdoaXRlc3BhY2UgdG8gdHJpZ2dlciBhIGJ1aWxkCgoyMDA1LTA5LTE2IDAwOjAyOjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmRleC5jOiBnZXQgcmVmY291bnRpbmcgY29ycmVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IGdldCByZWZjb3VudGluZyBjb3JyZWN0LgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBmZWF0dXJlL3BsdWdpbiBpcwoJICBub3QgZm91bmQuCgoyMDA1LTA5LTE1IDIzOjUxOjI0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrLzogQWRkIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBBZGQgdGVzdAoJICAqIGdzdC9nc3RwbHVnaW4uYzogRml4IHByb2JsZW1zIG5vdGljZWQgYnkgdGVzdHN1aXRlCgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoKMjAwNS0wOS0xNSAyMDo1NjozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEltcGxlbWVudCBzZW1pLWRlY2VudCByZWNvdW50aW5nIGFuZCBsb2NraW5nIGluIHBsdWdpbnMgYW5kIHBsdWdpbiBmZWF0dXJlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBJbXBsZW1lbnQgc2VtaS1kZWNlbnQgcmVjb3VudGluZyBhbmQgbG9ja2luZwoJICBpbiBwbHVnaW5zIGFuZCBwbHVnaW4gZmVhdHVyZXMuCgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCjIwMDUtMDktMTUgMTQ6MjE6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgSW1wbGVtZW50IG1pc3NpbmcgZnVuY3Rpb24uIFRoaXMgaXMgZW5vdWdoIHRvIGdldCB0aGUgYmFzaWNzIG9mIHR5cGVmaW5kaW5nIHdvcmtpbmcgLSBvZ2dkZW11eCBzdWNjZWVkcyBub3cuIGRlY29kZWJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbi4gVGhpcyBpcyBlbm91Z2ggdG8gZ2V0IHRoZSBiYXNpY3Mgb2YKCSAgdHlwZWZpbmRpbmcgd29ya2luZyAtIG9nZ2RlbXV4IHN1Y2NlZWRzIG5vdy4gZGVjb2RlYmluIGlzIHN0aWxsIGJyb2tlbi4KCjIwMDUtMDktMTUgMDU6NTg6MzcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBHU1RfUExVR0lOX0xERkxBR1MgKGJ1ZyAjMzE2MDc2KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IEFkZCAtbm8tdW5kZWZpbmVkIHRvIEdTVF9QTFVHSU5fTERGTEFHUyAoYnVnCgkgICMzMTYwNzYpCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IEFkZCAtbm8tdW5kZWZpbmVkIHRvIExERkxBR1MgZm9yIGxpYnMKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgoyMDA1LTA5LTE1IDA1OjQ4OjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdldGJpdHMgbGlicmFyeS4gIE5vdGhpbmcgdXNlcyBpdCwgYW5kIGl0IHNob3VsZCBiZSBpbiBzb21ldGhpbmcgbGlrZSBsaWJvaWwgaWYgc29tZW9uZSBkaWQgd2FudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBnZXRiaXRzIGxpYnJhcnkuICBOb3RoaW5nIHVzZXMgaXQsIGFuZAoJICBpdCBzaG91bGQgYmUgaW4gc29tZXRoaW5nIGxpa2UgbGlib2lsIGlmIHNvbWVvbmUgZGlkIHdhbnQKCSAgdG8gdXNlIGl0LgoJICAqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nYnRlc3QuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dldGJpdHMuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dldGJpdHMuaDoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfZ2VuZXJpYy5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19pMzg2LnM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2lubC5oOgoKMjAwNS0wOS0xNSAwNTo0MjoxMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IERpc3QgZ2xpYi1jb21wYXQuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IERpc3QgZ2xpYi1jb21wYXQuaAoKMjAwNS0wOS0xNSAwMzoyMDo0OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBnc3QvcmVnaXN0cmllcywgc2luY2UgaXQncyBubyBsb25nZXIgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgZ3N0L3JlZ2lzdHJpZXMsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgkgICogZ3N0L3JlZ2lzdHJpZXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9yZWdpc3RyeXRlc3QuYzoKCjIwMDUtMDktMTUgMDE6Mzg6MzMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0LzogQ29udmVyZ2VuY2UgaXMgbmVhci4gIFNlcmlvdXNseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIENvbnZlcmdlbmNlIGlzIG5lYXIuICBTZXJpb3VzbHkuCgoyMDA1LTA5LTE1IDAxOjM0OjUyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC4qOiBBdHRlbXB0ICM0IHRvIGFwcGVhc2UgdGhlIGJ1aWxkYm90cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgIEF0dGVtcHQgIzQgdG8gYXBwZWFzZSB0aGUgYnVpbGRib3RzLgoKMjAwNS0wOS0xNSAwMToyNjo0MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuYzogQXR0ZW1wdCAjMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgIEF0dGVtcHQgIzMuCgoyMDA1LTA5LTE1IDAxOjIwOjIyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC5jOiBBdHRlbXB0ICMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgQXR0ZW1wdCAjMi4KCjIwMDUtMDktMTUgMDE6MTQ6MTcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBPaCB5ZWFoLCBsaWJnc3RyZWFtZXIuc28gbmVlZHMgdG8gY29udGFpbiB0aGUgbmV3IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBPaCB5ZWFoLCBsaWJnc3RyZWFtZXIuc28gbmVlZHMgdG8gY29udGFpbgoJICB0aGUgbmV3IGZ1bmN0aW9ucy4KCjIwMDUtMDktMTUgMDE6MTA6NTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0Lio6IEFkZCBzb21lIGZ1bmN0aW9ucyB0aGF0IGFyZSBpbiBuZXdlciB2ZXJzaW9ucyBvZiBnbGliIHRoYW4gd2UgY2FyZSB0byByZXF1aXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDogQWRkIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIGluIG5ld2VyIHZlcnNpb25zCgkgIG9mIGdsaWIgdGhhbiB3ZSBjYXJlIHRvIHJlcXVpcmUuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFVzZSB0aGVtLgoKMjAwNS0wOS0xNSAwMDo0ODo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBwby9QT1RGSUxFUy5pbjogcmVtb3ZlIGdzdC1yZWdpc3Rlci5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOiByZW1vdmUgZ3N0LXJlZ2lzdGVyLmMKCjIwMDUtMDktMTUgMDA6NDI6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgZm9yIHJlZ2lzdHJ5IGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZvciByZWdpc3RyeSBjaGFuZ2VzLgoKMjAwNS0wOS0xNSAwMDozNToxMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ29weSBnX21rZGlyX3dpdGhfcGFyZW50KCkgZnJvbSBnbGliLCBiZWNhdXNlIHdlIGRvbid0IHJlcXVpcmUgZ2xpYi0yLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDb3B5IGdfbWtkaXJfd2l0aF9wYXJlbnQoKSBmcm9tIGdsaWIsCgkgIGJlY2F1c2Ugd2UgZG9uJ3QgcmVxdWlyZSBnbGliLTIuOC4KCjIwMDUtMDktMTUgMDA6MjA6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFkZGVkLiAgRXNzZW50aWFsbHkgbW92ZWQgb3V0IG9mIHRoZSByZWdpc3RyaWVzIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFkZGVkLiAgRXNzZW50aWFsbHkgbW92ZWQgb3V0IG9mIHRoZQoJICByZWdpc3RyaWVzIGRpcmVjdG9yeS4KCjIwMDUtMDktMTUgMDA6MTM6MjYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcmVtb3ZlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGluZGV4LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6IHJlbW92ZQoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuaDogcmVtb3ZlCgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1yZWdpc3Rlci5jOiByZW1vdmUKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZWdpc3RyeSByZXdyaXRlLiAgQ2hhbmdlcyByZWdpc3RyeSBmcm9tIGJlaW5nIGEgZmlsZSBjcmVhdGVkCgkgIGJ5IGEgdG9vbCBpbnRvIGEgc2ltcGxlIGNhY2hlIGZpbGUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGJ5CgkgIGxpYmdzdHJlYW1lci4gIFJlbW92ZWQgZ3N0LXJlZ2lzdGVyIChiZWNhdXNlIGl0J3Mgbm8gbG9uZ2VyCgkgIG5lZWRlZCkuICBSZW1vdmUgcmVnaXN0cnkgcG9vbHMsIGJlY2F1c2Ugd2Ugb25seSBoYXZlIG9uZQoJICByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbiAoWE1MKS4gIEZpeCB1cCBvdGhlciBzdWJzeXN0ZW1zIGFzCgkgIG5lY2Vzc2FyeS4KCjIwMDUtMDktMTQgMjI6MDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgIHdob29wcywgd3JvbmcgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aG9vcHMsIHdyb25nIGNvbW1pdAoKMjAwNS0wOS0xNCAyMjowMTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgIG5vdGVzIG9uIGRvY3VtZW50aW5nIGVsZW1lbnRzIGFuZCBwbHVnaW5zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBub3RlcyBvbiBkb2N1bWVudGluZyBlbGVtZW50cyBhbmQgcGx1Z2lucwoKMjAwNS0wOS0xNCAxNToxNjozMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJlc3Qgb2YgdGhlIGZpeCBmb3IgMzE2MTU1OiBkb24ndCBjb25mdXNlIE1pbkdXIHdoZW4gcnVubmluZyBnbGliLW1rZW51bXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlc3Qgb2YgdGhlIGZpeCBmb3IgMzE2MTU1OiBkb24ndCBjb25mdXNlIE1pbkdXIHdoZW4gcnVubmluZyBnbGliLW1rZW51bXMKCjIwMDUtMDktMTMgMTU6MDM6MDUgKzAwMDAgIFN0ZXZlIExob21tZSA8c3RldmUubGhvbW1lQGZyZWUuZnI+CgoJICBmaWxlIGdzdC10eXBlZmluZC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdC10eXBlZmluZC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA5LTEzIDE0OjQ5OjIzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgRG9uJ3QgdXNlIHdpbmRvd3MgbGlua2luZyBhdHRyaWJ1dGVzIGluIE1pbkdXCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb24ndCB1c2Ugd2luZG93cyBsaW5raW5nIGF0dHJpYnV0ZXMgaW4gTWluR1cKCjIwMDUtMDktMTMgMTE6MDA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFwcGFyZW50bHkgcGVvcGxlIHRoaW5rIGl0J3MgYmV0dGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndCB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byB3aGF0ZXZlciBzdGF0ZSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoc2V0X3N0YXRlX2FzeW5jX3RocmVhZF9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyk6CgkgIEFwcGFyZW50bHkgcGVvcGxlIHRoaW5rIGl0J3MgYmV0dGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndAoJICB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byB3aGF0ZXZlciBzdGF0ZSB3YXMgYXNrZWQgZm9yIG9uIHRoZSBmaXJzdAoJICBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gZm9yIGFueSBvYmplY3QuICBTZXJpb3VzbHkuCgoyMDA1LTA5LTEyIDE4OjE0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBhIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyBtZXRob2QgdGhhdCBzZXRzIHRoZSBzdGF0ZSBhbmQgc3RhcnRzIGEgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGUgY2hhbmdlIGNvbXBsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoc2V0X3N0YXRlX2FzeW5jX3RocmVhZF9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGFkZCBhIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyBtZXRob2QgdGhhdAoJICBzZXRzIHRoZSBzdGF0ZSBhbmQgc3RhcnRzIGEgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGUKCSAgY2hhbmdlIGNvbXBsZXRlcyBhcyBiZXN0IGFzIGl0IGNhbgoKMjAwNS0wOS0xMiAxNzowMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgY29kaWZ5IGRlc2lnbitiZWhhdmlvdXIgaW4gdGVzdHN1aXRlIGFmdGVyIGRpc2N1c3Npb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvZGlmeSBkZXNpZ24rYmVoYXZpb3VyIGluIHRlc3RzdWl0ZSBhZnRlciBkaXNjdXNzaW9uCgoyMDA1LTA5LTEyIDE2OjEwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgYSBxdW90ZQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBhZGQgc29tZSBkZWJ1ZwoKMjAwNS0wOS0xMiAxMzo0NTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IGZvciBzdWItY2xhc3NlcyB0byBjYWxsIHRoZSBwYXJlbnQgaW1wbGVtZW50YXRpb24gb2YgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHdpdGggYSB3cmFwcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgZm9yIHN1Yi1jbGFzc2VzIHRvIGNhbGwgdGhlIHBhcmVudAoJICBpbXBsZW1lbnRhdGlvbiBvZiBwcmVwYXJlX291dHB1dF9idWZmZXIgd2l0aCBhIHdyYXBwZXIgZnVuY3Rpb24uCgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIEZpeCAjZGVmaW5lIHdyYXBwZXIKCjIwMDUtMDktMTEgMTk6MjI6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1vcmUgZG9jIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vcmUgZG9jIGNsZWFudXBzCgoyMDA1LTA5LTExIDEzOjA3OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgYnVpbGQgY2xlYW4sIGh1cnJheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGJ1aWxkIGNsZWFuLCBodXJyYXkKCjIwMDUtMDktMTEgMTI6NTc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICB2YXJpb3VzIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBkb2MgZml4ZXMKCjIwMDUtMDktMTEgMTI6MDI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBmaXggc2lsbHkgYnVnIHRoYXQgY2F1c2VkIGJ1aWxkIHRvIGZhaWwgd2hlbiBjaGVjayBpcyBtaXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggc2lsbHkgYnVnIHRoYXQgY2F1c2VkIGJ1aWxkIHRvIGZhaWwgd2hlbiBjaGVjayBpcyBtaXNzaW5nCgoyMDA1LTA5LTExIDEyOjAxOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0LzogcmVhcnJhbmdlIGdzdHZhbHVlIHNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgIHJlYXJyYW5nZSBnc3R2YWx1ZSBzZWN0aW9uCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIE5PTkUgLT4gVk9JRAoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMDktMTEgMTE6NTc6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkZWJ1ZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgZml4ZXMKCjIwMDUtMDktMDkgMjM6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBIZWFkZXIgaW5jbHVkZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSAgSGVhZGVyIGluY2x1ZGUgZml4LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9kZWZhdWx0X3ByZXBhcmVfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFNvbWUgbW9yZSBiYXNldHJhbnNmb3JtIGNoYW5nZXMgYW5kIGZpeGVzIHRvIGVuYWJsZSBzdWItY2xhc3NlcwoJICB0aGF0IG1vZGlmeSBidWZmZXIgbWV0YWRhdGEgb25seS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9pbml0KSwgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIElmIHRoZSBvdXRwdXQgcGFkIGhhcyBmaXhlZCBhbGxvd2VkIGNhcHMgYW5kIGlucHV0IGJ1ZmZlcnMKCSAgZG9uJ3QgaGF2ZSBhbnksIHNldCB0aGUgZml4ZWQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLgoKMjAwNS0wOS0wOSAxODowNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIG9iamVjdCBkZWJ1Z2dpbmcgaXMgZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb2JqZWN0IGRlYnVnZ2luZyBpcyBnb29kCgoyMDA1LTA5LTA5IDE3OjQyOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IE1ha2UgdGhlIGVycm9yIGEgbGl0dGxlIGNsZWFyZXIgd2hlbiB0aGUgdGVzdCBmYWlscyBiZWNhdXNlIGlkZW50aXR5IG1hZGUgYSBjb3B5IG9mIHRoZSBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSBlcnJvciBhIGxpdHRsZSBjbGVhcmVyIHdoZW4gdGhlIHRlc3QgZmFpbHMgYmVjYXVzZQoJICBpZGVudGl0eSBtYWRlIGEgY29weSBvZiB0aGUgYnVmZmVyLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE5ldyBzeW1ib2xzIGluIGdzdGJhc2V0cmFuc2Zvcm0uaAoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2RlZmF1bHRfcHJlcGFyZV9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfaW5fcGxhY2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX2luX3BsYWNlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENoYW5nZSBCYXNlVHJhbnNmb3JtIHRvIHNlcGFyYXRlIGluX3BsYWNlIG9wZXJhdGUgZnJvbSBzYW1lX2NhcHMKCSAgb3V0cHV0LiBpbl9wbGFjZSBpbXBsaWVzIHRoYXQgdGhlIGVsZW1lbnQgY2FuIHBlcmZvcm0gdGhlIHRyYW5zZm9ybQoJICBvbiBpbmNvbWluZyBidWZmZXJzIGluLXBsYWNlLCBldmVuIGlmIHRoZSBjYXBzIG9uIHRoZSBvdXRwdXQgYXJlCgkgIGRpZmZlcmVudC4KCSAgU3ViLWNsYXNzIGVsZW1lbnRzIGNhbiBub3cgaW1wbGVtZW50IHNwZWNpYWwgYnVmZmVyIGFsbG9jYXRpb24KCSAgbWV0aG9kcyBmb3Igb3V0Z29pbmcgYnVmZmVycyBpZiB0aGV5IHdpc2ggdG8uCgkgIEJpZyBkb2N1bWVudGF0aW9uIGFkZGl0aW9uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBDaGFuZ2VzIGZvciBiYXNldHJhbnNmb3JtIG1vZGlmaWNhdGlvbnMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgIENvbXBpbGUgZml4LiBFeHRyYSBkZWJ1ZyBvdXRwdXQuCgoyMDA1LTA5LTA5IDE1OjE5OjI0ICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSAgZmlsZSBnc3Rjb250cm9sLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0Y29udHJvbC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA5LTA5IDE0OjM0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogYWRkIHRlc3RzIGZvciB2YWxpZCBwYWQgbmFtaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKG5hbWVfaXNfdmFsaWQpLAoJICAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3IgdmFsaWQgcGFkIG5hbWluZwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKToKCSAgYWRkIEFTU0VSVF9XQVJOSU5HCgkgIHJlbW92ZSBwcmludGluZyBvZiBjb2RlLCBpdCBpcyBmcmFnaWxlIHdoZW4gdGhlIGNvZGUgY29udGFpbnMKCSAgJSBhbmQgdGhlIGxpbmUgbnVtYmVyIGlzIGVub3VnaCBpbmZvCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpOgoJICBmaXggbWVtbGVha3MKCjIwMDUtMDktMDkgMTM6Mjg6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBhbmQgdGhlIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5kIHRoZSBjaGFuZ2Vsb2cKCjIwMDUtMDktMDkgMTM6MjY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBzYXkgd2hhdCBDSEVDSyBmbGFncyB3ZSB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBzYXkgd2hhdCBDSEVDSyBmbGFncyB3ZSB1c2UKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5faW5mbyk6CgkgIHdlIGRvbid0IHVzZSBkYXNoZXMgaW4gaGVhZGVyIG5hbWVzCgoyMDA1LTA5LTA5IDEyOjAyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogYWRkaW5nIGEgdGVzdCBmb3IgcGlwZWxpbmVzIGFuZCBzdGF0ZSBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9waXBlbGluZV9zdWl0ZSksIChtYWluKToKCSAgYWRkaW5nIGEgdGVzdCBmb3IgcGlwZWxpbmVzIGFuZCBzdGF0ZSBjaGFuZ2VzCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnZXRfc3RhdGVfZnVuYyk6CgkgIGFkZCBzb21lIGRlYnVnZ2luZwoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmaWxlCgoyMDA1LTA5LTA4IDE3OjIzOjU3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIFZhcmlvdXMgZml4ZXMgZm9yIHVuc2Vla2FibGUsIHVubW1hcGFibGUsIGFuZCBub24tbm9ybWFsIGZpbGVzLCBzbyB0aGF0IGZhbGxiYWNrIHRvIHJlYWQoKSByYXRoZXIgdGhhbiBtbWFwKCkgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBWYXJpb3VzIGZpeGVzIGZvciB1bnNlZWthYmxlLCB1bm1tYXBhYmxlLCBhbmQgbm9uLW5vcm1hbCBmaWxlcywgc28gdGhhdAoJICBmYWxsYmFjayB0byByZWFkKCkgcmF0aGVyIHRoYW4gbW1hcCgpIHdvcmtzLgoJICBBbGxvdyBuZXdzZWdtZW50IGV2ZW50cyB3aXRoIHN0YXJ0ID09IGVuZCwgc28gdGhhdCBjYXNlcyB3aGVyZSB0aGF0J3MKCSAgY29ycmVjdCB3b3JrIChlLmcuIGZpbGVzcmMgb24gYSB6ZXJvLXNpemUgZmlsZSkuCgoyMDA1LTA5LTA4IDExOjQ1OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgIFVwZGF0ZSB0aGUgbWFudWFsIHNlY3Rpb24gb24gc3RhdGUgY2hhbmdlcyBmb3Igd2luZ28ncyBuZXcgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgdGhlIG1hbnVhbCBzZWN0aW9uIG9uIHN0YXRlIGNoYW5nZXMgZm9yIHdpbmdvJ3MgbmV3IEFQSQoKMjAwNS0wOS0wNyAxNToyMjoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IENhbGwgZ19tb2R1bGVfY2xvc2Ugd2hlbiB3ZSBkb24ndCBsb2FkIHRoZSBtb2R1bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBDYWxsIGdfbW9kdWxlX2Nsb3NlIHdoZW4gd2UgZG9uJ3QgbG9hZCB0aGUgbW9kdWxlCgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Byb3BlcnR5KToKCSAgUG9ydCBsZWFrIGZpeCBmcm9tIDAuOAoKMjAwNS0wOS0wNyAxNDowODo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcG8vUE9URklMRVMuaW46CgkgIG1vcmUgcmVuYW1lIGZpeGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgcmVuYW1lIGZpeGluZyAuLi4KCjIwMDUtMDktMDcgMTM6MjI6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbmFtZWQgZ3N0dGFnIC0+IGdzdHRhZ2xpc3QsIGdzdHRhZ2ludGVyZmFjZSAtPiBnc3R0YWdzZXR0ZXIgaW5saW5lZCBkb2NzIGZvciBnc3R0cmFjZSwgZ3N0dHJhc2hzdGFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmg6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suYzoKCSAgcmVuYW1lZCBnc3R0YWcgLT4gZ3N0dGFnbGlzdCwgZ3N0dGFnaW50ZXJmYWNlIC0+IGdzdHRhZ3NldHRlcgoJICBpbmxpbmVkIGRvY3MgZm9yIGdzdHRyYWNlLCBnc3R0cmFzaHN0YWNrCgoyMDA1LTA5LTA3IDEyOjM1OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBzcGxpdHRlZCBnc3R0eXBlZmluZCBpbnRvIGdzdHR5cGVmaW5kLCBnc3R0eXBlZmluZGZhY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2xhc3NfaW5pdCksIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfdW5sb2FkX3RoeXNlbGYpLAoJICAoZ3N0X3R5cGVfZmluZF9sb2FkX3BsdWdpbiksIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2xpc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9jYXBzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfZXh0ZW5zaW9ucyksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgc3BsaXR0ZWQgZ3N0dHlwZWZpbmQgaW50byBnc3R0eXBlZmluZCwgZ3N0dHlwZWZpbmRmYWN0b3J5CgoyMDA1LTA5LTA3IDEwOjA2OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBGaXggYSByYWNlIGNvbmRpdGlvbiB3aGVyZWJ5IHRoZSBwYWQncyB0YXNrIGZ1bmN0aW9uIGlzIGVudGVyZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogRml4IGEgcmFjZQoJICBjb25kaXRpb24gd2hlcmVieSB0aGUgcGFkJ3MgdGFzayBmdW5jdGlvbiBpcyBlbnRlcmVkIGJlZm9yZSB0aGUKCSAgcGFkX21vZGUgdmFyaWFibGUgd2FzIHNldC4KCjIwMDUtMDktMDYgMjI6NTc6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDYXRjaCBtaXNiZWhhdmluZyBwYWRfYWxsb2MgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qgc2V0IHVwIGNhcHMgYW5kIGRvIGl0IGZvciB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIENhdGNoIG1pc2JlaGF2aW5nIHBhZF9hbGxvYyBmdW5jdGlvbnMgdGhhdCBkb24ndAoJICBzZXQgdXAgY2FwcyBhbmQgZG8gaXQgZm9yIHRoZW0uCgoyMDA1LTA5LTA2IDIyOjAzOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiB0ZXN0IGZvciBwaXBlIT1OVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICB0ZXN0IGZvciBwaXBlIT1OVUxMCgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOS0wNiAxODoxODo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGFkZCBhIGNoZWNrIGZvciBhIGdob3N0cGFkIHRoYXQgZG9lc24ndCBoYXZlIGEgdGFyZ2V0IGJlaW5nIGxpbmtlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgY2hlY2sgZm9yIGEgZ2hvc3RwYWQgdGhhdCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQgYmVpbmcgbGlua2VkCgoyMDA1LTA5LTA2IDE0OjExOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS4yID09PQoKMjAwNS0wOS0wNiAxNDowMjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFQURNRToKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC45LjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuMgoKMjAwNS0wOS0wNiAxMTo0NTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgdXBkYXRlIHJlYWRtZSB3aXRoIGV4cGxhbmF0aW9uIG9mIG1vZHVsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSByZWFkbWUgd2l0aCBleHBsYW5hdGlvbiBvZiBtb2R1bGVzCgoyMDA1LTA5LTA2IDA5OjUyOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL3JhbmRvbS9DaGFuZ2VMb2ctMC44OgoJICBjaGFuZ2Vsb2cgc3BsaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZyBzcGxpdAoKMjAwNS0wOS0wNSAxNzo1NToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgoyMDA1LTA5LTA1IDE3OjUzOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkaW5nIC1iYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyAtYmFkCgoyMDA1LTA5LTA1IDE2OjU0OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBhbmQgdXBkYXRlIHRvIG5ld2VyIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBhbmQgdXBkYXRlIHRvIG5ld2VyIEFQSS4KCSAgSW5jaWRlbnRhbGx5IHRoZXkgc2hvdWxkIGJlIGEgYml0IGZhc3RlciBub3cgdGhhdCB0aGV5IGRvbid0IGhhdmUKCSAgdG8gcGFyc2UgdGhlIGNhcHMuCgoyMDA1LTA5LTA1IDE2OjUyOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBVbS4uLiByZXN1cnJlY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBVbS4uLiByZXN1cnJlY3QuLi4KCjIwMDUtMDktMDUgMTY6MzY6NDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IFJlbW92ZSBmcm9tIENWUywgdGhleSB3ZXJlIHJlcGxhY2VkIGJ5IHRoZSBsaWJ4bWwgcmVnaXN0cnkgYSB3aGlsZSBiYWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogUmVtb3ZlIGZyb20gQ1ZTLCB0aGV5IHdlcmUKCSAgcmVwbGFjZWQgYnkgdGhlIGxpYnhtbCByZWdpc3RyeSBhIHdoaWxlIGJhY2sKCjIwMDUtMDktMDUgMTE6NTQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9SRUFETUU6CgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCjIwMDUtMDktMDUgMDk6Mzg6MzggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJldmVyIHRvIDEuODAgdmVyc2lvbiBvZiB0aGlzIGZpbGUgYXMgR3N0VXRpbHMgaXMgbm90IGFzIGRlYWQgYXMgaXQgc2VlbWVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZlciB0byAxLjgwIHZlcnNpb24gb2YgdGhpcyBmaWxlIGFzIEdzdFV0aWxzIGlzIG5vdCBhcyBkZWFkIGFzIGl0IHNlZW1lZAoKMjAwNS0wOS0wNSAwOToyMzo0NCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICByZW1vdmUgR3N0VXRpbHMgbWVudGlvbiBhcyBpdCBpcyBub3cgZ29uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIEdzdFV0aWxzIG1lbnRpb24gYXMgaXQgaXMgbm93IGdvbmUKCjIwMDUtMDktMDQgMTE6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIG5lZWQgdG8gYWRkIC1sY2hlY2sgdG8gdGhlIHBrZ2NvbmZpZyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBuZWVkIHRvIGFkZCAtbGNoZWNrIHRvIHRoZSBwa2djb25maWcgZmlsZQoKMjAwNS0wOS0wMyAxNzozNjoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCBmb3IgYSBjcml0aWNhbCB3aGVuIGEgbW9kdWxlIHJldHVybnMgTlVMTCBvbiBvcGVuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZm9yIGEgY3JpdGljYWwgd2hlbiBhIG1vZHVsZSByZXR1cm5zIE5VTEwgb24gb3BlbmluZwoKMjAwNS0wOS0wMyAxNzowMDo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGFkZCBhIHNvdXJjZSBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGQsIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG1vZHVsZSB0aGlzIHBsdWdpbiBpcyBhIHBhcnQgb2YuICBCeSBkZWZhdWx0IEdTVF9QTFVHSS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgc291cmNlIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZCwgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UKCSAgbW9kdWxlIHRoaXMgcGx1Z2luIGlzIGEgcGFydCBvZi4gIEJ5IGRlZmF1bHQgR1NUX1BMVUdJTl9ERUZJTkUKCSAgd2lsbCBzZXQgaXQgdG8gUEFDS0FHRSwgd2hpY2ggaXMgYXV0b21ha2UncyBpZGVhIG9mIHRoZSBuYW1lIG9mCgkgIHRoZSBzb3VyY2UgcHJvamVjdC4KCjIwMDUtMDktMDMgMTY6MTY6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0wOS0wMyAxNDoyMDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkgIGVuYWJsZSBkb2NzIGJ1aWxkIGZvciBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGVuYWJsZSBkb2NzIGJ1aWxkIGZvciBkaXN0Y2hlY2sKCjIwMDUtMDktMDMgMTM6NTQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1ta2RiOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLW1rdG1wbDoKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1zY2Fub2JqOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy90bXBsL2FjM2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hYzNwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hdWRpb3NjYWxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2NvYmluLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2R2ZHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9leGFtcGxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGF2aWVuY29kZXIuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWdlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzFlbmNvZGVyLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcyZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcycGxheS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnX3BsYXkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZ2F1ZGlvLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZzEyMy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZWF1LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNlYXZpLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNld2F2LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHJlYW1lci1wbHVnaW5zLXVudXNlZC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RzcGVjdHJ1bS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R2NGxzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luY29kZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmVuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R4YS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R4aW5nLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21lZGlhbi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDF2aWRlb3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wMnZpZGVvcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAzcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzFwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMnBhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcyc3VidC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9ydGpwZWdkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvcnRqcGVnZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Ntb290aC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zbW9vdGh3YXZlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3NwaW5kZW50aXR5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N0ZXJlby5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zeW5hZXN0aGVzaWEuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3lzdGVtX2VuY29kZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92Y2RzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmlkZW9zY2FsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92aWRlb3Npbmsuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9sdW1lLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvcmJpc2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b3JiaXNlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdnVtZXRlci5zZ21sOgoJICByZW1vdmUgb2xkIHBsdWdpbnMgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBwbHVnaW5zIGRvY3MKCjIwMDUtMDktMDMgMTM6NDk6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBjbGVhbiB1cCBkb2NzIGJ1aWxkIGEgbGl0dGxlOyBoYXZlIGRvY2RpciBiZSBhbiBvdmVycmlkYWJsZSBpbnN0YWxsIGxvY2F0aW9uOyBzZXBhcmF0ZSBndGstZG9jIGFuZCBkb2Nib29rIGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIGRvY3MgYnVpbGQgYSBsaXR0bGU7IGhhdmUgZG9jZGlyIGJlIGFuIG92ZXJyaWRhYmxlIGluc3RhbGwgbG9jYXRpb247IHNlcGFyYXRlIGd0ay1kb2MgYW5kIGRvY2Jvb2sgYml0cwoKMjAwNS0wOS0wMiAyMzozNjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHdoaXRlc3BhY2UgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgY2xlYW51cHMKCjIwMDUtMDktMDIgMjM6MTc6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2J1ZmZlcl9hbGxvYyk6CgkgIEFkZCBjb21tZW50LgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdGhyZWFkLXNhZmUuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBTZXQgb2Zmc2V0IG9uIGdlbmVyaWMgYnVmZmVyIGFsbG9jYXRlZCBieSBmYWxsYmFjay4KCjIwMDUtMDktMDIgMjM6MDM6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0wOS0wMiAyMTozNzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcnVuIHRoZSB3aW5nby1tYWdpYyBzY3JpcHQgYWdhaW5zdCB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksCgkgIChnc3RfY29udHJvbGxlcl9maW5kX2NvbnRyb2xsZWRfcHJvcGVydHkpOgoJICBydW4gdGhlIHdpbmdvLW1hZ2ljIHNjcmlwdCBhZ2FpbnN0IHRoZSBkb2NzCgoyMDA1LTA5LTAyIDE4OjM2OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkgIHJlbW92ZWQgZmlsZSBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBmaWxlIGFnYWluCgoyMDA1LTA5LTAyIDE3OjIzOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtZXJnZWQgZWxlbWVudGRldGFpbHMgZG9jcyBpbnRvIGVsZW1lbnRmYWN0b3J5IGRvY3MgaW5saW5lZCBib3RoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBtZXJnZWQgZWxlbWVudGRldGFpbHMgZG9jcyBpbnRvIGVsZW1lbnRmYWN0b3J5IGRvY3MKCSAgaW5saW5lZCBib3RoCgoyMDA1LTA5LTAyIDE2OjQ0OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgbWFnaWNhbCBwaXhpZSBkdXN0IHRvIG1ha2UgZ2xpYi1ta2VudW1zIGNvbnNpZGVyIHRoaXMgZW51bSBhbiBlbnVtIGFuZCBub3QgYSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuaDogQWRkIG1hZ2ljYWwgcGl4aWUgZHVzdCB0byBtYWtlIGdsaWItbWtlbnVtcwoJICBjb25zaWRlciB0aGlzIGVudW0gYW4gZW51bSBhbmQgbm90IGEgZmxhZ3MuCgoyMDA1LTA5LTAyIDE2OjE3OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgaW5saW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWFscGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBtb3JlIGRvY3MgaW5saW5lZAoKMjAwNS0wOS0wMiAxNTo0MjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaCAoR3N0U3RhdGUpOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlLCBjaGFuZ2VkIHRvIGJlIGEgbm9ybWFsIGVudW0gaW5zdGVhZCBvZiBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoR3N0U3RhdGUpOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlLAoJICBjaGFuZ2VkIHRvIGJlIGEgbm9ybWFsIGVudW0gaW5zdGVhZCBvZiBmbGFncy4KCSAgKEdzdFN0YXRlQ2hhbmdlUmV0dXJuKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZVJldHVybiwgbmFtZXMKCSAgbXVuZ2VkIHRvIGJlIEdTVF9TVEFURV9DSEFOR0VfKi4KCSAgKEdTVF9TVEFURV9DSEFOR0UpOiBSZW5hbWVkIGZyb20gR1NUX1NUQVRFX1RSQU5TSVRJT04sIHVwZGF0ZWQgdG8KCSAgd29yayB3aXRoIHRoZSBuZXcgc3RhdGUgcmVwcmVzZW50YXRpb24uCgkgIChHc3RTdGF0ZUNoYW5nZSk6IE5ldyBlbnVtZXJhdGlvbiBvZiBwb3NzaWJsZSBzdGF0ZSB0cmFuc2l0aW9ucy4KCSAgUmVwbGFjZXMgR1NUX1NUQVRFX0ZPT19UT19CQVIgd2l0aCBHU1RfU1RBVEVfQ0hBTkdFX0ZPT19UT19CQVIuCgkgIChHc3RFbGVtZW50Q2xhc3M6OmNoYW5nZV9zdGF0ZSk6IFBhc3MgdGhlIEdzdFN0YXRlQ2hhbmdlIGFsb25nIGFzCgkgIGFuIGFyZ3VtZW50LiBIZWxwcyBsYW5ndWFnZSBiaW5kaW5ncywgc28gdGhleSBkb24ndCBoYXZlIHRvIHVzZQoJICB0cmlja3kgbG9jay1uZWVkaW5nIG1hY3JvcyBsaWtlIEdTVF9TVEFURV9DSEFOR0UgKCkuCgkgICogc2NyaXB0cy91cGRhdGUtc3RhdGVzIChmaWxlKTogTmV3IHNjcmlwdC4gUnVuIGl0IG9uIGEgZmlsZSB0bwoJICB1cGRhdGUgaXQgZm9yIHN0YXRlIG5hbWluZyBhbmQgQVBJIGNoYW5nZXMuIFVwZGF0ZXMgZmlsZXMgaW4KCSAgcGxhY2UuCgkgICogQWxsIGZpbGVzIHVwZGF0ZWQgZm9yIHRoZSBuZXcgQVBJLgoKMjAwNS0wOS0wMiAxMjoxMTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAgc3BlYyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIHNwZWMgc29tZSBtb3JlCgoyMDA1LTA5LTAyIDEyOjA4OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGZpeCBhIGJ1bmNoIG9mIHVuY2hlY2tlZCByZXR1cm4gdmFsdWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoZ3N0X3RyYWNlX2ZsdXNoKSwgKGdzdF90cmFjZV90ZXh0X2ZsdXNoKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyksCgkgIChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgIGZpeCBhIGJ1bmNoIG9mIHVuY2hlY2tlZCByZXR1cm4gdmFsdWVzCgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6IChtYWluKToKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAgYSBsaXR0bGUKCjIwMDUtMDktMDEgMTk6MDY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgIHVwZGF0ZWQgLmN2c2lnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCAuY3ZzaWdub3JlCgoyMDA1LTA5LTAxIDE4OjEyOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogSGFuZGxlIG5ld3NlZ21lbnRzIG1vcmUgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBIYW5kbGUgbmV3c2VnbWVudHMgbW9yZSBjb3JyZWN0bHkuCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgIEEgbmV3c2VnbWVudCBjYW5ub3QgaGF2ZSBhIHN0YXJ0X3RpbWUgb2YgLTEKCjIwMDUtMDktMDEgMTY6NTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUKCjIwMDUtMDgtMzEgMjE6MDE6MzUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFJlbW92ZSBleHRyYW5lb3VzICdjbycgZnJvbSBjdnMgY29tbWFuZCBpbiBQV0csIGFzIHJlcG9ydGVkIG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBleHRyYW5lb3VzICdjbycgZnJvbSBjdnMgY29tbWFuZCBpbiBQV0csIGFzIHJlcG9ydGVkIG9uIGlyYy4KCjIwMDUtMDgtMzEgMTg6NDU6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzogZml4ZWQgYm9vbGVhbiBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIGZpeGVkIGJvb2xlYW4gYWdhaW4KCjIwMDUtMDgtMzEgMTU6Mjc6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBhZGQgLWdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgLWdvb2QKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgcmVtb3ZlIHdyb25nIGRvY3MKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfZmlsdGVyZWQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBhZGQgZ3N0X2VsZW1lbnRfbGlua19maWx0ZXJlZAoKMjAwNS0wOC0zMSAxNDowODo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvY3MsIGZpeGVkIGRvdWJsZSBpZC1yZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cml0eXBlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBpbmxpbmVkIG1vcmUgZG9jcywgZml4ZWQgZG91YmxlIGlkLXJlZgoKMjAwNS0wOC0zMSAxMzo1MzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUGFzc3Rocm91Z2ggZWxlbWVudHMgZG9uJ3QgbmVlZCB0aGUgY2FwcyBhcyB0aGV5IGRvbid0IGNhcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgUGFzc3Rocm91Z2ggZWxlbWVudHMgZG9uJ3QgbmVlZCB0aGUgY2FwcyBhcyB0aGV5IGRvbid0IGNhcmUuCgoyMDA1LTA4LTMxIDEzOjUwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBsZWFrIHJlZmNvdW50cyBvbiBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBEb24ndCBsZWFrIHJlZmNvdW50cyBvbiBidWZmZXJzLgoKMjAwNS0wOC0zMSAxMzo0MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBub3QgbmVnb3RpYXRlZCBtb3JlIGdyYWNlZnVsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIG5vdCBuZWdvdGlhdGVkIG1vcmUgZ3JhY2VmdWxseS4KCjIwMDUtMDgtMzEgMTI6NTU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBTZXQgUkVBRE9OTFkgZmxhZyBvbiBtbWFwJ2VkIGJ1ZmZlcnMsIG90aGVyd2lzZSBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b24ndCB3b3JrIHByb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgU2V0IFJFQURPTkxZIGZsYWcgb24gbW1hcCdlZCBidWZmZXJzLCBvdGhlcndpc2UKCSAgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29uJ3Qgd29yayBwcm9wZXJseSAoIzMxNDcwOCkuCgoyMDA1LTA4LTMxIDEwOjA3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBwYXNzdGhyb3VnaCBlbGVtZW50cyBjYW4gZXZlbiBkbyBpbnBsYWNlIG9uIG5vbiB3cml0YWJsZSBidWZmZXJzIChhcyB0aGV5IGRvbid0IHRvdWNoIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgcGFzc3Rocm91Z2ggZWxlbWVudHMgY2FuIGV2ZW4gZG8gaW5wbGFjZSBvbiBub24gd3JpdGFibGUKCSAgYnVmZmVycyAoYXMgdGhleSBkb24ndCB0b3VjaCB0aGVtKS4KCjIwMDUtMDgtMzEgMTA6MDA6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogbW9yZSB0ZXN0cyAoaGVoZSBJIGhhdmUgdGhlIG1vc3QpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKGdzdF90ZXN0X21vbm9fc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfY2xhc3NfaW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIG1vcmUgdGVzdHMgKGhlaGUgSSBoYXZlIHRoZSBtb3N0KQoJICAqIGdzdC9nc3RidXMuYzoKCSAgZGVzY3JpYmUgcG9wcGluZyBtZXNzYWdlcyB3aGVudXNpbmcgbXVsbHRpcGxlIHNvdXJjZXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSAgaW1wbGVtZW50IGJvb2xlYW4gcHJvcGVydGllcwoKMjAwNS0wOC0zMSAwODo1NzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IENhbm5vdCBhc3NlcnQgdGhhdCB0aGUgcmVmY291bnQgaGFzIHRvIGJlIHBvc2l0aXZlIHNpbmNlIGEgZGlzcG9zZWQgb2JqZWN0IGNhbiBiZSByZXN1cmVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZik6CgkgIENhbm5vdCBhc3NlcnQgdGhhdCB0aGUgcmVmY291bnQgaGFzIHRvIGJlIHBvc2l0aXZlCgkgIHNpbmNlIGEgZGlzcG9zZWQgb2JqZWN0IGNhbiBiZSByZXN1cmVjdGVkLgoKMjAwNS0wOC0zMSAwODozODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGNoYW5nZSwgbmVlZCB0byBmaXJzdCBmaXggYmFkbHkgYmVoYXZpbmcgYXBwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgUmV2ZXJ0IGNoYW5nZSwgbmVlZCB0byBmaXJzdCBmaXggYmFkbHkgYmVoYXZpbmcKCSAgYXBwcy4KCjIwMDUtMDgtMzAgMTk6NDU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9lbGVtZW50cy86IEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA1LTA4LTMwIDE5OjI5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBGbHVzaGluZyBvdXQgMCBieXRlcyBpcyBvayBmb3IgdGhpcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfZmx1c2gpOgoJICBGbHVzaGluZyBvdXQgMCBieXRlcyBpcyBvayBmb3IgdGhpcyBmdW5jdGlvbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgbm8gbmV3c2VnbWVudCBnaXZlcyBhIHdhcm5pbmcgYW5kIHNldHMgdGhlIHN0YXJ0L3N0b3AgdG8KCSAgaW52YWxpZC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpOgoJICBTb21lIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpOgoJICBDaGVjayByZWZjb3VudCBoZXJlIHRvby4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBQYWRzIGFyZSBpbml0aWFsbHkgZmx1c2hpbmcgYW5kIHJlZnVzaW5nIGRhdGEuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICBXaGVuIGFkZGluZyBhIGNhcHNmaWx0ZXIgZWxlbWVudCBtYWtlIHN1cmUgaXQgaGFzIHRoZQoJICBzYW1lIHN0YXRlIGFzIHRoZSBwYXJlbnQgYmluLgoKMjAwNS0wOC0zMCAxNzoyMzoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGFuZCB0d28gbW9yZSBpbmxpbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIG1vcmUgZG9jcyBhbmQgdHdvIG1vcmUgaW5saW5lZAoKMjAwNS0wOC0zMCAxNzoxMjozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCBzeW5jIHRvIGNsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIERvbid0IHN5bmMgdG8gY2xvY2suCgoyMDA1LTA4LTMwIDA4OjE3OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiB1bHRyYWwzM3QgZnVuYzEwbnMgZGVzZXJ2ZSB0byBhcHBlYXIgaW4gdGhlIGRvY3MgYWN0dWFseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1bHRyYWwzM3QgZnVuYzEwbnMgZGVzZXJ2ZSB0byBhcHBlYXIgaW4gdGhlIGRvY3MgYWN0dWFseQoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2dzdGNvbXBhdC5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDgtMjkgMjE6NDE6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgYW5kIGV4dGVuZGVkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGlubGluZWQgYW5kIGV4dGVuZGVkIGRvY3MKCjIwMDUtMDgtMjkgMTk6NTk6NTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogbW9yZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIG1vcmUgdGVzdHMKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgaW5jbHVkZSBwYXRoIGZpeGVzCgkgICogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgY29udHJvbGxlciBleGFtcGxlIHdvcmtzIG5vdwoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBkb2MgZml4ZXMKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBzaG93IHBhcmFtIHNwZWMgZmxhZ3MKCjIwMDUtMDgtMjkgMTY6MTA6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOiBOZXcgMzczM3QgZnVuY3QxMG4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOiBOZXcgMzczM3QgZnVuY3QxMG4uCgoyMDA1LTA4LTI5IDA5OjUyOjQ0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBNaW5vciB1cGRhdGVzIHRvIGRldmVsb3BlciBjdnMgaW5zdHJ1Y3Rpb25zLCB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggd2hhdCB0aGUgZnJlZWRlc2t0b3AgcGVvcGxlIHdhbnQuIEFsc28sIHRlc3QgbXkgY3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1pbm9yIHVwZGF0ZXMgdG8gZGV2ZWxvcGVyIGN2cyBpbnN0cnVjdGlvbnMsIHRvIG1vcmUgY2xvc2VseSBtYXRjaCB3aGF0CgkgIHRoZSBmcmVlZGVza3RvcCBwZW9wbGUgd2FudC4gQWxzbywgdGVzdCBteSBjdnMgY29tbWl0IGFjY2Vzcy4uLgoKMjAwNS0wOC0yOCAxNzo0NTo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9GVUxMKTogUHJvdG90eXBlIGluc3RhbmNlX2luaXQgYXMgaGF2aW5nIHR3byBhcmd1bWVudHMgaW5zdGVhZCBvZiBqdXN0IG9uZS4gQWxsb3dzIHN1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfRlVMTCk6IFByb3RvdHlwZSBpbnN0YW5jZV9pbml0CgkgIGFzIGhhdmluZyB0d28gYXJndW1lbnRzIGluc3RlYWQgb2YganVzdCBvbmUuIEFsbG93cyBzdXBlcmNsYXNzZXMKCSAgdG8gYWNjZXNzIGluZm9ybWF0aW9uIG9uIHN1YmNsYXNzZXMgLS0gc2VlIHRoZSB0ZXJyaWJsZSBmb3IoKSBsb29wCgkgIGluIGd0eXBlLmM6Z190eXBlX2NyZWF0ZV9pbnN0YW5jZSBmb3IgdGhlIHJlYXNvbiB3aHkuIEFsbCBjYWxsZXJzCgkgIGNoYW5nZWQuCgoyMDA1LTA4LTI3IDEwOjU3OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDogdXBkYXRlIGluZm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIHVwZGF0ZSBpbmZvCgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGFkZGVkIGRlc2NyaXB0aW9ucyBmb3IgYnVzIGFuZCBtZXNzYWdlCgkgIGlubGluZSBjYXBzIGFuZCBjbG9jayBkb2NzCgoyMDA1LTA4LTI2IDIyOjMyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2MgZml4ZXMKCjIwMDUtMDgtMjYgMjE6MjM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogZml4IGRpdi1ieS16ZXJvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgIGZpeCBkaXYtYnktemVybwoKMjAwNS0wOC0yNiAxNDoyMTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogQ2hlY2sgZWxlbWVudF9zZXRfc3RhdGUncyByZXR1cm4gdmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBDaGVjawoJICBlbGVtZW50X3NldF9zdGF0ZSdzIHJldHVybiB2YWwuCgkgICh0ZXN0XzJfZWxlbWVudHMpOiBBZGQgdGVzdCB0aGF0J3MgYmVlbiBkaXNhYmxlZCBmb3IgbW9udGhzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiBDbGVhbnVwcy4gQWRkIGNhbi1hY3RpdmF0ZS1wdXNoIGFuZAoJICBjYW4tYWN0aXZhdGUtcHVsbCBwcm9wZXJ0aWVzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IENsZWFudXBzLiBBZGQgY2FuLWFjdGl2YXRlLXB1c2ggYW5kCgkgIGNhbi1hY3RpdmF0ZS1wdWxsIHByb3BlcnRpZXMuIEltcGxlbWVudCBpc19zZWVrYWJsZSBzbyBmYWtlc3JjIGNhbgoJICBvcGVyYXRlIGluIHB1bGwgbW9kZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChHc3RCYXNlU2luayk6IFJlbW92ZSBoYXMtbG9vcCwgaGFzLWNoYWluCgkgIHByb3BlcnRpZXMuCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlLCBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpOiBNYWtlIGFjdGl2YXRpb24gbW9kZSBjaG9vc2luZyB3b3JrLgoJICBDbGVhbnVwcy4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4sIGdzdF9iYXNlX3NpbmtfbG9vcCk6IEFzc2VydCBhY3RpdmF0aW9uIG1vZGUKCSAgaXMgcmlnaHQuIE1ha2UgcHVsbCBtb2RlIHdvcmsuIFBvc3QgYW4gZW9zIGJlZm9yZSBwYXVzaW5nIGluIHB1bGwKCSAgbW9kZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogUGF5IGF0dGVudGlvbiB0byB0aGUgY29yZSdzCgkgIGNoYW5nZV9zdGF0ZSgpIHJldHVybiB2YWwuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHc3RCYXNlU3JjKTogUmVtb3ZlIGhhcy1sb29wLAoJICBoYXMtZ2V0cmFuZ2UgcHJvcGVydGllcy4gQ2xlYW51cHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oIChHc3RCYXNlU3JjKTogUmVtb3ZlIGhhc19sb29wLAoJICBoYXNfZ2V0cmFuZ2UgYW5kIHJlcGxhY2Ugd2l0aCBjYW5fYWN0aXZhdGVfcHVsbCBhbmQKCSAgY2FuX2FjdGl2YXRlX3B1c2guCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaCAoR3N0QmFzZVNpbmspOiBSZWFycmFuZ2UgZmllbGRzLCBhZGQKCSAgbG9ja2luZyBjb21tZW50cy4gUmVtb3ZlIGhhc19sb29wLCBoYXNfY2hhaW4gYW5kIHJlcGxhY2Ugd2l0aAoJICBjYW5fYWN0aXZhdGVfcHVsbCBhbmQgY2FuX2FjdGl2YXRlX3B1c2guCgoyMDA1LTA4LTI2IDEzOjI4OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBtZXRhZGF0YSByZWFkaW5nIGV4YW1wbGUgdGhhdCBsb29wcyBvdmVyIGEgbGlzdCBvZiBmaWxlbmFtZXMsIGR1bXBpbmcgYW55IHRhZ3MgZm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAoaGF2ZV9wYWRfaGFuZGxlciksIChtYWtlX3BpcGVsaW5lKSwgKHByaW50X3RhZyksIChtYWluKToKCSAgQWRkIG1ldGFkYXRhIHJlYWRpbmcgZXhhbXBsZSB0aGF0IGxvb3BzIG92ZXIgYSBsaXN0IG9mIGZpbGVuYW1lcywKCSAgZHVtcGluZyBhbnkgdGFncyBmb3VuZC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgUmVsZWFzZSBhIGZldyBwb3RlbnRpYWxseS1oZWxkIHJlZmVyZW5jZXMgaW4gZGlzcG9zZS4KCjIwMDUtMDgtMjYgMTM6MjE6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOiBkbyAqbm90KiBhZGQgdG1wbC8qLnNnbWwgZmlsZXMgdG8gQ1ZTIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgZG8gKm5vdCogYWRkIHRtcGwvKi5zZ21sIGZpbGVzIHRvIENWUyEKCjIwMDUtMDgtMjYgMTM6MTc6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2J5dGVzdHJlYW0vOiByZW1vdmluZyBvYnNvbGV0ZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtLy5jdnNpZ25vcmU6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2FkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2FkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uaDoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuaDoKCSAgcmVtb3Zpbmcgb2Jzb2xldGUgZmlsZXMKCjIwMDUtMDgtMjYgMTI6NDg6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBkaXNhYmVkIGFkZGl0aW9uYWwgaW5kZXggZW50cmllcyBhZ2FpbiwgYXMgdGhpcyBtYWtlcyBkb2NzLWdlbiBqdXN0IHNsb3cgYW5kIHRoZXkgYXJlbid0IHVzZWZ1bCB5ZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkaXNhYmVkIGFkZGl0aW9uYWwgaW5kZXggZW50cmllcyBhZ2FpbiwgYXMgdGhpcyBtYWtlcyBkb2NzLWdlbiBqdXN0CgkgIHNsb3cgYW5kIHRoZXkgYXJlbid0IHVzZWZ1bCB5ZXQKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBsaXR0bGUgLXNlY3Rpb24udHh0IGNsZWFudXAgZm9yIGxpYnMKCjIwMDUtMDgtMjYgMTE6NTY6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggdXAgc29tZSBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgZml4IHVwIHNvbWUgZGVidWdnaW5nCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBoYW5kbGUgYW5kIHN0b3JlIHRpbWVkIE5FV1NFR01FTlQgZXZlbnRzIHNvIHRoYXQgc3ViY2xhc3NlcyB0aGF0CgkgIGNhbGN1bGF0ZSB0aW1lIGJ5IGNvdW50aW5nIHNhbXBsZXMgaGF2ZSBhIHNlZ21lbnRfc3RhcnQgdGltZSB0aGV5CgkgIG5lZWQgdG8gYWRkIHRvIHRoZWlyIHRpbWVzdGFtcHMgLSBzZWUgYXVkaW9yZXNhbXBsZQoKMjAwNS0wOC0yNiAxMToxOToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB3aGl0ZXNwYWNlLCBkb2MgYW5kIGRlYnVnIGZpeGluZy9hZGRpdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UsIGRvYyBhbmQgZGVidWcgZml4aW5nL2FkZGl0aW9ucwoKMjAwNS0wOC0yNSAyMzoxNzoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiByZW1vdmVkICc7JyBmcm9tIHRoZSBlbmQgb2YgbWFjcm8gZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIHJlbW92ZWQgJzsnIGZyb20gdGhlIGVuZCBvZiBtYWNybyBkZWZzCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGFjdGl2YXRlX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3Rwcm9iZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZml4ZWQgcGFyYW1ldGVyIG5hbWUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHNvdXJjZSwgaGVhZGVyIGFuZCBkb2NzCgkgIGFkZGVkIHNvbWUgbW9yZSBkb2NzLCByZXNvbHZlZCB0aGUgbGFzdCBiYXRjaCBvZiB1bnVzZWQgZWxlbWVudHMgaW4KCSAgZG9jcyAobm93IHNvbWVvbmUgbmVlZHMgdG8gZG9jIHRoZW0pCgoyMDA1LTA4LTI1IDIwOjUyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgcmVzcGVjdCBvcmRlciBvZiBwbHVnaW4gZGlycyB3aGVuIGxvYWRpbmcgcGxsdWdpbnMgYW5kIHJlYnVpbGRpbmcgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlc3BlY3Qgb3JkZXIgb2YgcGx1Z2luIGRpcnMgd2hlbiBsb2FkaW5nIHBsbHVnaW5zIGFuZCByZWJ1aWxkaW5nIHJlZ2lzdHJ5CgoyMDA1LTA4LTI1IDE5OjM2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBDYWNoZSBjYXBzIHVuaXRfc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2FjaGUgY2FwcyB1bml0X3NpemUuCgkgIE1ha2Ugc3VyZSB3ZSBjYW5ub3QgbmVnb3RpYXRlIHVwIGFuZCBkb3duc3RyZWFtIGF0IHRoZQoJICBzYW1lIHRpbWUuCgoyMDA1LTA4LTI1IDE4OjU1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICBtYWtlIHJlZ2lzdHJ5IHJlc3BlY3Qgb3JkZXIgb2YgR1NUX1BMVUdJTl9QQVRIOyBtYWtlIHRoZSBpbnN0YWxsZWQgbG9jYXRpb24gZ28gbGFzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSByZWdpc3RyeSByZXNwZWN0IG9yZGVyIG9mIEdTVF9QTFVHSU5fUEFUSDsgbWFrZSB0aGUgaW5zdGFsbGVkIGxvY2F0aW9uIGdvIGxhc3QKCjIwMDUtMDgtMjUgMTg6NTQ6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGFkZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZG9jcwoKMjAwNS0wOC0yNSAxNjoyNzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIHVpbnQ2NCBjaGVja2luZyBtZXRob2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHVpbnQ2NCBjaGVja2luZyBtZXRob2QKCjIwMDUtMDgtMjUgMTM6NTI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIGFib3V0IHRoZSBwb3N0ZWQgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgQmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgYWJvdXQgdGhlIHBvc3RlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIFNvbWUgY2xlYW51cHMsIHdhcm4gd3JvbmcgcmV0dXJuIHZhbHVlcy4KCjIwMDUtMDgtMjUgMTA6NTE6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmV2ZXJ0IHVucG9wdWxhciBjaGFuZ2UgZm9yIEdTVF9NRVNTQUdFX1NSQyB0byBHT2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBSZXZlcnQgdW5wb3B1bGFyIGNoYW5nZSBmb3IgR1NUX01FU1NBR0VfU1JDIHRvIEdPYmplY3QuCgoyMDA1LTA4LTI1IDEwOjM1OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZml4IGRvY3MgYnkgZml4aW5nIGVudW0gdHlwZWRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MgYnkgZml4aW5nIGVudW0gdHlwZWRlZgoKMjAwNS0wOC0yNSAxMDoxNjoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHdpbSBmaXhlZCB0aGUgdGFzaywgeWF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aW0gZml4ZWQgdGhlIHRhc2ssIHlheQoKMjAwNS0wOC0yNSAxMDowMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IENsZWFudXAgY2FuIGJlIGRvbmUgYXQgdGhlIGVuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2xlYW51cCBjYW4gYmUgZG9uZSBhdCB0aGUgZW5kLgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19maW5hbGl6ZSksCgkgIChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX2NsZWFudXBfYWxsKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSk6CgkgIE9oIGJveS4uIFRoYW5rcyBmb3IgZmluZGluZyB0aGlzLCBUaG9tYXMuCgoyMDA1LTA4LTI0IDIyOjAxOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGdybXBmLCBhbm90aGVyIHRyeSB0byBmaXggaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdybXBmLCBhbm90aGVyIHRyeSB0byBmaXggaXQKCjIwMDUtMDgtMjQgMjE6NTc6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgYW5vdGhlciBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZml4CgoyMDA1LTA4LTI0IDIxOjQ1OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGFkZGVkIG1pc3NpbmcgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBhZGRlZCBtaXNzaW5nIHR5cGVzCgoyMDA1LTA4LTI0IDIxOjM1OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtaWlzc2luZyBjbGFzc2VzIGFuZCBzeW1ib2xzICgxMjMgbW9yZSB0byBnbykgcmVtb3ZlZCByZW1vdmVkIHN5bWJvbHMgZnJvbSBzZWN0aW9uIGZpbGUgZml4ZWQgbWFueSBkb2MtY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgYWRkZWQgbWlpc3NpbmcgY2xhc3NlcyBhbmQgc3ltYm9scyAoMTIzIG1vcmUgdG8gZ28pCgkgIHJlbW92ZWQgcmVtb3ZlZCBzeW1ib2xzIGZyb20gc2VjdGlvbiBmaWxlCgkgIGZpeGVkIG1hbnkgZG9jLWNvbW1lbnRzCgoyMDA1LTA4LTI0IDIwOjQ5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogTWFrZSBzdXJlIGFsbCB0YXNrcyBhcmUgc3RvcHBlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBzdXJlIGFsbCB0YXNrcyBhcmUgc3RvcHBlZC4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGFmdGVyIHVzYWdlIGZvciBwcm9wZXIgdmFsZ3JpbmRpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maW5hbGl6ZSksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIFJlYWxseSB3YWl0IGZvciB0aGUgdGFzayB0byBzdG9wIGJlZm9yZSBkZXN0cm95aW5nIHRoZQoJICBtdXRleC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgU21hbGwgY2xlYW51cHMuIERvbid0IHN0b3AgdGhlIHRhc2sgd2hlbiB3ZSBkaWQgbm90IHN0YXJ0CgkgIGl0LgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19pbml0KSwKCSAgKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfY2xlYW51cF9hbGwpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwKCSAgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFByb3RlY3QgdGhlIHN0cmVhbSBsb2NrIHdpdGggdGhlIG9iamVjdCBsb2NrLgoJICBEaXNhbGxvdyBzZXR0aW5nIHRoZSBzdHJlYW0gbG9jayB3aGVuIHJ1bm5pbmcuCgkgIEFkZCBjbGVhbnVwX2FsbCB0byB3YWl0IGZvciB0aGUgdGhyZWFkcG9vbCB0byBmaW5pc2guCgkgIFJlbW92ZSBjb2RlIHRvIGF1dG9hbGxvY2F0ZSBhIG11dGV4IGlmIG5vbmUgd2FzIHByb3ZpZGVkLgoJICBBZGQgX2pvaW4oKSB0byB3YWl0IGZvciBhIHRhc2sgdG8gc3RvcC4KCSAgUHJvdGVjdCB0aGUgdGhyZWFkIHBvb2wgd2l0aCBhIGdsb2JhbCBsb2NrLgoKMjAwNS0wOC0yNCAxNzo1NzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEhhbmRsZSBuZXdzZWdtZW50IGV2ZW50cyBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgSGFuZGxlIG5ld3NlZ21lbnQgZXZlbnRzIGNvcnJlY3RseS4KCSAgRHJvcCBidWZmZXJzIG91dCBvZiB0aGUgc2VnbWVudCByYW5nZS4KCjIwMDUtMDgtMjQgMTc6MjQ6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHRlc3Qgd2hpbGUgd2ltIGlzIGZpeGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSB0ZXN0IHdoaWxlIHdpbSBpcyBmaXhpbmcKCjIwMDUtMDgtMjQgMTY6NDY6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYWRkIHBsdWdpbnNkaXIgdG8gcGtnY29uZmlnIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcGx1Z2luc2RpciB0byBwa2djb25maWcgZmlsZXMKCjIwMDUtMDgtMjQgMTY6NDE6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDgtMjQgMTY6MDk6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBhZGQgYSB0ZXN0IHRoYXQgZG9lcyBhIGJ1bmNoIG9mIHN0YXRlIGNoYW5nZXMgb24gZWxlbWVudHMgbmVlZHMgc29tZSBmaXhpbmcgZm9yIHZhbGdyaW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpLCAobWFpbik6CgkgIGFkZCBhIHRlc3QgdGhhdCBkb2VzIGEgYnVuY2ggb2Ygc3RhdGUgY2hhbmdlcyBvbiBlbGVtZW50cwoJICBuZWVkcyBzb21lIGZpeGluZyBmb3IgdmFsZ3JpbmQKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKGdzdF9vYmplY3Rfc3VpdGUpOgoJICB3aGl0ZXNwYWNlCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgYWRkIHByb3RvdHlwZSBmb3IgZ3N0X2NhcHNfaXNfZXF1YWxfZml4ZWQKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOgoJICBkb2MgZml4ZXMKCjIwMDUtMDgtMjQgMTU6NDk6MDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOiBTcGV3IGlmIHdlIHRyeSB0byBjb252ZXJ0IGEgbmVnYXRpdmUgdmFsdWUuIERvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLiBNb3N0bHkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cXVlcnkuYyAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KTogU3BldyBpZiB3ZSB0cnkgdG8KCSAgY29udmVydCBhIG5lZ2F0aXZlIHZhbHVlLiBEb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4gTW9zdGx5IHRoaXMgaXMKCSAgaGVyZSB0byBmb3JjZSBjYWxsZXJzIHRvIGVuc3VyZSAtMSBtYXBzIHRvIC0xLgoKMjAwNS0wOC0yNCAxNToxMDo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IFdlbGwgZG9uZSB0byBNaWNoYWVsIGZvciBjYXRjaGluZyBteSBkZWxpYmVyYXRlIGludHJvZHVjdGlvbiBvZiB0aGlzIHNwZWxsaW5nIG1pc3Rha2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgV2VsbCBkb25lIHRvIE1pY2hhZWwgZm9yIGNhdGNoaW5nIG15IGRlbGliZXJhdGUgaW50cm9kdWN0aW9uCgkgIG9mIHRoaXMgc3BlbGxpbmcgbWlzdGFrZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkIEdTVF9FTEVNRU5UX1VOUEFSRU5USU5HIHRvIHByZXZlbnQgcmFjZXMgc28gdGhhdCB3ZSBjYW4KCSAgdW5saW5rIHBhZHMgYmVmb3JlIHJlbW92aW5nIHRoZSBlbGVtZW50IGZyb20gdGhlIGJpbi4KCjIwMDUtMDgtMjQgMTM6NDk6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAocGFyc2VfZGVidWdfbGlzdCk6IEFjY2VwdCBlLmcuIEdTVF9ERUJVRz00IHRvIG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgR1NUX0RFQlVHPSo6NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChwYXJzZV9kZWJ1Z19saXN0KTogQWNjZXB0IGUuZy4gR1NUX0RFQlVHPTQgdG8gbWVhbgoJICB0aGUgc2FtZSB0aGluZyBhcyBHU1RfREVCVUc9Kjo0LgoJICAocGFyc2VfZGVidWdfbGV2ZWwsIHBhcnNlX2RlYnVnX2NhdGVnb3J5KTogTmV3IGhlbHBlciBwYXJzZXJzLgoKMjAwNS0wOC0yNCAxMzozMzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHVzZSBnYm9vbGVhbiByZXR1cm4gdmFsdWVzIGFuZCBwb2ludGVycyB0byBzaXplIHNvIHdlIGNhbiB1c2UgdGhlIGZ1bGwgR1NUX0JVRkZFUl9TSVpFIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgdXNlIGdib29sZWFuIHJldHVybiB2YWx1ZXMgYW5kIHBvaW50ZXJzIHRvIHNpemUgc28gd2UgY2FuIHVzZSB0aGUKCSAgZnVsbCBHU1RfQlVGRkVSX1NJWkUgcmFuZ2UgKGd1aW50KSBmb3IgYnVmZmVyIHNpemVzCgkgIHVzZSBHc3RQYWREaXJlY3Rpb24gZm9yIHRyYW5zZm9ybV9jYXBzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICByZW5hbWUgZ2V0X3NpemUgdG8gZ2V0X3VuaXRfc2l6ZSBzaW5jZSB0aGF0J3Mgd2hhdCBpdCBpcwoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fY2Fwcyk6CgkgIHVzZSBHc3RQYWREaXJlY3Rpb24gZm9yIHRyYW5zZm9ybV9jYXBzCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgY2xlYW51cCBhbmQgZGVidWdnaW5nCgoyMDA1LTA4LTI0IDEzOjA0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXhlZCBsb25nIHN0YW5kaW5nIG1lbS1sZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChhY3RpdmF0ZV9wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXMpOgoJICBGaXhlZCBsb25nIHN0YW5kaW5nIG1lbS1sZWFrCgoyMDA1LTA4LTI0IDExOjU0OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIENoYW5nZSBHU1RfTUVTU0FHRV9TUkMgdG8gYmUgYSBHT2JqZWN0IHJhdGhlciB0aGFuIGEgR3N0T2JqZWN0LCBzbyB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gc2Vuc2libHkgcG9zdCBjdXN0b20gbWVzc2FnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBDaGFuZ2UgR1NUX01FU1NBR0VfU1JDIHRvIGJlIGEgR09iamVjdCByYXRoZXIgdGhhbiBhIEdzdE9iamVjdCwgc28KCSAgdGhhdCBhcHBsaWNhdGlvbnMgY2FuIHNlbnNpYmx5IHBvc3QgY3VzdG9tIG1lc3NhZ2VzIHdpdGggcmVmZXJlbmNlcwoJICB0byB0aGVpciBvd24gb2JqZWN0cy4KCjIwMDUtMDgtMjQgMTE6NDQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1hbnkgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcyBhZGRlZCBieSBUaG9tYXMuIENhbiBub3cgYWxzbyBkbyB0cmFuc2Zvcm1zIHdpdGggdmFyaWFibGUgc2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFueSBmaXhlcyBhbmQgbmV3IGZlYXR1cmVzIGFkZGVkIGJ5IFRob21hcy4gQ2FuIG5vdyBhbHNvIGRvCgkgIHRyYW5zZm9ybXMgd2l0aCB2YXJpYWJsZSBzaXplcyBhbmQgYSBjdXN0b20gZml4YXRlX2NhcHMgZnVuY3Rpb24uCgoyMDA1LTA4LTI0IDExOjM2OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGVjayBpZiB0aGUgY2FwcyBpcyBmaXhlZCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGVjayBpZiB0aGUgY2FwcyBpcyBmaXhlZAoJICBhbHJlYWR5LgoKMjAwNS0wOC0yNCAxMToyMjozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogU29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgIFNvbWUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBDYXN0IHRvIENsb2NrVGltZSBiZWZvcmUgZm9ybWF0dGluZyB0byB0aW1lLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBDbGVhbnVwcy4KCjIwMDUtMDgtMjMgMjE6MzI6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdyYWNlZnVsbHkgaGFuZGxlIGhlbHBlciBtZXRob2QgY2FsbHMgdG8gb2JqZWN0cyB0aGF0IGFyZSBub3QgYmVlaW5nIGNvbnRyb2xsZWQsIGFkZGVkIHRlc3QgY2FzZSBmb3IgdGhhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6IChnc3Rfb2JqZWN0X3NldF9jb250cm9sbGVyKSwKCSAgKGdzdF9vYmplY3Rfc2lua192YWx1ZXMpLCAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5KToKCSAgZ3JhY2VmdWxseSBoYW5kbGUgaGVscGVyIG1ldGhvZCBjYWxscyB0byBvYmplY3RzIHRoYXQgYXJlIG5vdCBiZWVpbmcKCSAgY29udHJvbGxlZCwgYWRkZWQgdGVzdCBjYXNlIGZvciB0aGF0CgoyMDA1LTA4LTIzIDE4OjE3OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0IGFuZCBkb2MgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9jb3B5KSwgKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwKCSAgKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfbmV3X3RhZyksIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQgYW5kIGRvYyBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpeCBwb3NzaWJsZSBkZWFkbG9jay4KCjIwMDUtMDgtMjMgMTQ6MjU6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGFib3V0IDEwMCBzeW1ib2xzIGZyb20gZ3N0cmVhbWVyLXVudXNlZC50eHQgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zIGZpeGVkIG1vcmUgYnJva2VuIGNvbW1lbnRzIGFkZGVkIEdzdEJ1cyB0byBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgYWRkZWQgYWJvdXQgMTAwIHN5bWJvbHMgZnJvbSBnc3RyZWFtZXItdW51c2VkLnR4dCB0byB0aGUgcmlnaHQgc2VjdGlvbnMKCSAgZml4ZWQgbW9yZSBicm9rZW4gY29tbWVudHMKCSAgYWRkZWQgR3N0QnVzIHRvIGRvY3MKCjIwMDUtMDgtMjMgMTE6NTM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2MgY29tbWVudHMsIGFkZGVkIG1pc3NpbmcgY29tbWVudHMgYW5kIGZpeGVkIGNvbW1lbnRzIGZpeGVkIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBpbmxpbmVkIG1vcmUgZG9jIGNvbW1lbnRzLCBhZGRlZCBtaXNzaW5nIGNvbW1lbnRzIGFuZCBmaXhlZCBjb21tZW50cwoJICBmaXhlZCB0eXBvcwoKMjAwNS0wOC0yMyAxMTozODoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IHNvbWUgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIG1vcmUgZGVidWdnaW5nCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9ib29sZWFuKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIGZpeGF0ZSBmdW5jdGlvbiBmb3IgYm9vbGVhbnM7IGFkZCBhIEZJWE1FIHRoYXQgdGhlc2UgZnVuYwoJICBuYW1lcyBzaG91bGQgcHJvYmFibHkgYmUgZ3N0X3N0cnVjdHVyZV9maXhhdGVfKgoKMjAwNS0wOC0yMiAyMTowMzozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG9ydGVkIGdzdGNoaWxkcHJveHkgb3ZlciBmcm9tIDAuOCBwb3J0ZWQgZ3N0LWluc3BlY3QgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvdmVyIGZyb20gMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2luaXQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X25hbWUpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwgKGdzdF9jaGlsZF9wcm94eV9sb29rdXApLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3ZhbGlzdCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF92YWxpc3QpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldCksCgkgIChnc3RfY2hpbGRfcHJveHlfY2hpbGRfYWRkZWQpLCAoZ3N0X2NoaWxkX3Byb3h5X2NoaWxkX3JlbW92ZWQpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBwb3J0ZWQgZ3N0Y2hpbGRwcm94eSBvdmVyIGZyb20gMC44CgkgIHBvcnRlZCBnc3QtaW5zcGVjdCBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIG92ZXIgZnJvbSAwLjgKCjIwMDUtMDgtMjIgMTk6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFsc28gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIGlmIHdlIGhhdmUgQU5ZIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIEFsc28gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIGlmIHdlIGhhdmUgQU5ZIGNhcHMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIEZpeCBkZWJ1ZyBpbmZvLgoKMjAwNS0wOC0yMiAxOToyMjozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlcikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpCgkgIERvbid0IHByZXRlbmQgdG8gaGFuZGxlIHNlZWsgZXZlbnRzIGlmIHRoZSBzb3VyY2UgaXMgbm90IHNlZWthYmxlCgoyMDA1LTA4LTIyIDE4OjQ4OjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbW92ZSBleHRyYSBwYXJhbWV0ZXIgdG8gZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBSZW1vdmUgZXh0cmEgcGFyYW1ldGVyIHRvIGRlYnVnIG91dHB1dAoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBGaXggc2VlayBldmVudCBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIERvbid0IHN0YXJ0IHRoZSBzcmMgcGFkIHRhc2sgb24gRkxVU0hfU1RPUCBpZiB0aGUgcGFkCgkgIGlzbid0IGxpbmtlZC4KCSAgRGVidWcgY2hhbmdlcy4KCjIwMDUtMDgtMjIgMTU6MTI6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UpOiBOZXcgZ2hldHRvIG1hY3JvLCBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSBhbmQgZ3N0aW1wbGVtZW50c2ludGVyZmFjZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFKTogTmV3IGdoZXR0bwoJICBtYWNybywgaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgYW5kIGdzdGltcGxlbWVudHNpbnRlcmZhY2UgZm9yIGEKCSAgbmV3IHR5cGUuCgoyMDA1LTA4LTIyIDE1OjA4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkZWQgY2hlY2sgZm9yIGdzdF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIGdzdF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZy4KCjIwMDUtMDgtMjIgMTQ6MzU6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBNYWtlIF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZyBzYW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCksIChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBNYWtlIF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZyBzYW5lLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBZGQgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSB0byBwcm90ZWN0IGFnYWluc3Qgc2VnZmF1bHRzLgoKMjAwNS0wOC0yMiAxMDozNzowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCByZW1haW5pbmcgZG9jcywgYWRkZWQgbWlzc2luZyBkb2MgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBpbmxpbmVkIHJlbWFpbmluZyBkb2NzLCBhZGRlZCBtaXNzaW5nIGRvYyBjb21tZW50cwoKMjAwNS0wOC0yMiAwOToyNTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IHNpbmNlIHdlIGRvbid0IGtub3cgd2hlbiBwcmVyb2xsIGlzIGRvbmUsIHVzZSByZWZjb3VudCByYW5nZSBjaGVjayBmb3IgdGhlIHNpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBzaW5jZSB3ZSBkb24ndCBrbm93IHdoZW4gcHJlcm9sbCBpcyBkb25lLCB1c2UgcmVmY291bnQgcmFuZ2UKCSAgY2hlY2sgZm9yIHRoZSBzaW5rCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBtYWNybyBmb3IgY2hlY2tpbmcgcmVmY291bnQgcmFuZ2UKCjIwMDUtMDgtMjEgMTY6NTM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGZpZ3VyZSB0aGlzIG91dCBmb3IgSFQgbWFjaGluZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpZ3VyZSB0aGlzIG91dCBmb3IgSFQgbWFjaGluZXMKCjIwMDUtMDgtMjEgMTU6MjE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHNvbWUgZnVua3kgSFQvbXVsdGljcHUgdnMgc2luZ2xlIGRpZmZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgZnVua3kgSFQvbXVsdGljcHUgdnMgc2luZ2xlIGRpZmZlcmVuY2UKCjIwMDUtMDgtMjEgMTU6MDE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGNsZWFuIHVwIGVudmlyb25tZW50IGZvciB3aGVuIHJlZ2lzdHJ5IGdldHMgYnVpbHQgdmVyc3VzIHdoZW4gYWN0dWFsIHRlc3RzIGFyZSBydW47IHZhbGdyaW5kIHNlZW1zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBjbGVhbiB1cCBlbnZpcm9ubWVudCBmb3Igd2hlbiByZWdpc3RyeSBnZXRzIGJ1aWx0IHZlcnN1cwoJICB3aGVuIGFjdHVhbCB0ZXN0cyBhcmUgcnVuOyB2YWxncmluZCBzZWVtcyB0byBub3QgcmVwb3J0CgkgIGxlYWtzIGlmIEdTVF9QTFVHSU5fUEFUSCBpcyBzZXQgdG8gc29tZSBzcGVjaWZpYyB2YWx1ZXMKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBtb3JlIHJlZmNvdW50aW5nIGNoZWNrczsgbWF5YmUgdGhpcyBleHBvc2VzIGEKCSAgcHJlcm9sbCBsb2NrIGJ1ZyA/CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2NoYWluKToKCSAgYWRkL2ZpeCBkZWJ1Z2dpbmcvd2hpdGVzcGFjZQoKMjAwNS0wOC0yMSAxMTo0MDo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogRXIsIGRvbid0IGNhbGwgZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlIHlvdSBpZGlvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgRXIsIGRvbid0IGNhbGwgZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlIHlvdSBpZGlvdC4KCjIwMDUtMDgtMjEgMTE6MTU6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJ1biB2YWxncmluZCB3aXRoIHByb3BlciBlbnYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJ1biB2YWxncmluZCB3aXRoIHByb3BlciBlbnYKCjIwMDUtMDgtMjEgMTA6NTQ6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IFVzZSBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIGV2ZW50cy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU3ByaW5rbGUgZ3N0X2Jhc2Vfc3JjX3N0b3AgbGliZXJhbGx5IGFyb3VuZCBlcnJvciBwYXRocyB0byBmaXgKCSAgcHJvYmxlbXMgcmV1c2luZyBhIHNvdXJjZSBhZnRlciBmYWlsZWQgc3RhdGUgY2hhbmdlcy4KCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgRXh0cmEgZGVidWcgb3V0cHV0LiBEb24ndCBzZWdmYXVsdCBvbiBHU1RfUEFEX0dFVFJBTkdFRlVOQyA9IE5VTEwKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgIE1pZ3JhdGUgcGFydCBvZiB0aGUgZG9jcyBmcm9tIHRoZSBTR01MIGZpbGUuIFdhaXQgZm9yIGVuc29uaWMgdG8KCSAgdGVsbCBtZSBob3cgSSBkaWQgaXQgd3JvbmcgOykKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBFeHRyYSByb2J1c3RuZXNzIHRvIHN0YXRlIGNoYW5nZXMgYmV0d2VlbiBmaWxlcy4KCjIwMDUtMDgtMjEgMTA6Mzk6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGRvbid0IHZhbGdyaW5kIHRoZSBjb250cm9sbGVyIHRlc3QgLSBpdCdzIGxlYWtpbmcgLSBTdGVmYW4sIEhFTFAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBjb250cm9sbGVyIHRlc3QgLSBpdCdzIGxlYWtpbmcgLSBTdGVmYW4sIEhFTFAKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKSwKCSAgKGdzdF9jaGVja19jaGFpbl9mdW5jKSwgKGdzdF9jaGVja19zZXR1cF9lbGVtZW50KSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9lbGVtZW50KSwgKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSBidW5jaCBvZiBtZXRob2RzIHRvIHNldCB1cCBlbGVtZW50cywgYW5kIHNyYyBhbmQgc2luayBwYWRzCgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyksIChjbGVhbnVwX2Zha2VzcmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSksIChjbGVhbnVwX2lkZW50aXR5KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdXNlIHRoZW0KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCjIwMDUtMDgtMjAgMjA6MzA6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBtYWtlIEdTVF9FTEVNRU5UX0VSUk9SIG5vdCBkbyBHU1RfRVJST1JfT0JKRUNUIC0gdGhlc2UgZXJyb3JzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBhbmQgbm90IGFsd2F5cyBwcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgR1NUX0VMRU1FTlRfRVJST1Igbm90IGRvIEdTVF9FUlJPUl9PQkpFQ1QgLSB0aGVzZSBlcnJvcnMgc2hvdWxkCgkgIGJlIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFuZCBub3QgYWx3YXlzIHByaW50ZWQgYXMgd2VsbAoKMjAwNS0wOC0yMCAyMDoxNTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogc2V0IEdTVF9UT09MU19ESVIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIHNldCBHU1RfVE9PTFNfRElSCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvcik6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQKCSAgYWRkIGZhaWxfdW5sZXNzIGZvciBlcnJvciBtZXNzYWdlcwoKMjAwNS0wOC0yMCAxNDowMDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIGZhY3RvciBvdXQgdGhlIGNvbW1vbiBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmFjdG9yIG91dCB0aGUgY29tbW9uIHN0dWZmCgoyMDA1LTA4LTIwIDEzOjE3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgd29yayBvbiBidWlsZHMgd2l0aG91dCBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayBvbiBidWlsZHMgd2l0aG91dCBjaGVjawoKMjAwNS0wOC0yMCAxMjo0NzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbmFtZWQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVuYW1lZCB0ZXN0CgoyMDA1LTA4LTIwIDEyOjQzOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudHMuYzoKCSAgcHV0IHNvbWUgbWFrZS11cCBvbiB0aGUgZ3N0ZXZlbnQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHV0IHNvbWUgbWFrZS11cCBvbiB0aGUgZ3N0ZXZlbnQgdGVzdAoKMjAwNS0wOC0yMCAxMjozOTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHZhbGdyaW5kIG1vcmUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhbGdyaW5kIG1vcmUgdGVzdHMKCjIwMDUtMDgtMjAgMTI6MTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svZ3N0Y2hlY2suYzoKCSogY2hlY2svZ3N0Y2hlY2suaDoKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIG1vdmUgY2hlY2sgc3R1ZmYgdG8gaXRzIG93biBsaWJyYXJ5IHRvIGJlIHVzZWQgYnkgb3RoZXIgbW9kdWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBjaGVjayBzdHVmZiB0byBpdHMgb3duIGxpYnJhcnkgdG8gYmUgdXNlZCBieSBvdGhlciBtb2R1bGVzCgoyMDA1LTA4LTE5IDA5OjU4OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBlbGltaW5hdGUgYW5vdGhlciB0bXBsIGZpbGUsIGZpeCBzcGVsbGluZyBpbiB0aGUgbG9uZy1kZXNjcmlwdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJICAqIGdzdC9nc3QuYzoKCSAgZWxpbWluYXRlIGFub3RoZXIgdG1wbCBmaWxlLCBmaXggc3BlbGxpbmcgaW4gdGhlIGxvbmctZGVzY3JpcHRpb24KCjIwMDUtMDgtMTggMTY6NDI6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBTaG91bGQgZml4IGJ1aWxkIG9uIDY0LWJpdCBhcmNoJ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBTaG91bGQgZml4IGJ1aWxkIG9uIDY0LWJpdCBhcmNoJ3MKCjIwMDUtMDgtMTggMTY6MjA6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gYSBwaXBlbGluZSBnb2VzIHRvIFBMQVlJTkcsIHRoYXQgZGF0YSBoYXMgYWN0dWFsbHkgaGl0IHRoZSBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiBhIHBpcGVsaW5lIGdvZXMgdG8gUExBWUlORywgdGhhdCBkYXRhIGhhcwoJICBhY3R1YWxseSBoaXQgdGhlIHNpbmsuCgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3Rfc2luayk6IEEgc2luayB0aGF0IGRvZXNuJ3QgZ2V0IGFueQoJICBkYXRhIHNob3VsZG4ndCByZXR1cm4gU1VDQ0VTUyBmb3IgZ29pbmcgdG8gZWl0aGVyIFBMQVlJTkcgb3IKCSAgUEFVU0VELiBUZXN0IGFsc28gdGhlIHJldHVybiB2YWx1ZXMgb24gdGhlIHdheSBiYWNrIGRvd24uCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKTogV2hlbiBjaGFuZ2luZyB0aGUKCSAgc3RhdGUgb2YgYW4gZWxlbWVudCBjdXJyZW50bHkgY2hhbmdpbmcgc3RhdGUgYXN5bmNocm9ub3VzbHksIGdvIHRvCgkgIGxvc3Qtc3RhdGUgYWZ0ZXIgY29tbWl0aW5nIHRoZSBwZW5kaW5nIHN0YXRlLiBNYWtlcyBmdXR1cmUgY2FsbHMKCSAgdG8gZ2V0X3N0YXRlIGNvbnRpbnVlIHRvIHJldHVybiBBU1lOQy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IFJldHVybgoJICBBU1lOQyB3aGVuIGdvaW5nIHRvIFBMQVlJTkcgaWYgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBwcmVyb2xsLCBhcyBjYW4KCSAgaGFwcGVuIHdpdGggbGl2ZSBzb3VyY2VzLgoKMjAwNS0wOC0xOCAxNjoxNToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEhhY2sgbG9uZyBwYXJhZ3JhcGggaW50byAyIGNodW5rcyBhcyBhIHdvcmthcm91bmQgZm9yIGJ1Z2d5IGphZGV0ZXggdmVyc2lvbiBpbiBzaWQgYW5kIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBIYWNrIGxvbmcgcGFyYWdyYXBoIGludG8gMiBjaHVua3MgYXMgYSB3b3JrYXJvdW5kIGZvciBidWdneQoJICBqYWRldGV4IHZlcnNpb24gaW4gc2lkIGFuZCBicmVlenkgdGhhdCBsb29wcyBpbmZpbml0ZWx5IGFuZAoJICBlYXRzIGFsbCBSQU0uCgoyMDA1LTA4LTE4IDE2OjAwOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogUHJvdmlkZSBtb3JlIGVycm9yIG1hcmdpbiBpbiBjbG9jayBtZWFzdXJlbWVudHMgdG8gYWxsb3cgZm9yIGdfZ2V0X2N1cnJlbnRfdGltZSBpbmFjY3VyYWNpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgUHJvdmlkZSBtb3JlIGVycm9yIG1hcmdpbiBpbiBjbG9jayBtZWFzdXJlbWVudHMgdG8gYWxsb3cgZm9yCgkgIGdfZ2V0X2N1cnJlbnRfdGltZSBpbmFjY3VyYWNpZXMuCgoyMDA1LTA4LTE4IDE1OjQ3OjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogRml4IGVycm9yIG1lc3NhZ2Ugb3V0cHV0IHNvIEkgbWlnaHQgYmUgYWJsZSB0byB0ZWxsIHdoeSB0aGUgdGVzdCB3b3JrcyBoZXJlIGJ1dCBmYWlscyBvbiB0aGUgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIEZpeCBlcnJvciBtZXNzYWdlIG91dHB1dCBzbyBJIG1pZ2h0IGJlIGFibGUgdG8gdGVsbCB3aHkgdGhlCgkgIHRlc3Qgd29ya3MgaGVyZSBidXQgZmFpbHMgb24gdGhlIGJ1aWxkIGZhcm0uCgoyMDA1LTA4LTE4IDE1OjMxOjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogSSB3cm90ZSBhIHRlc3QhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKSwgKG1haW4pOgoJICBJIHdyb3RlIGEgdGVzdCEKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTcGVsbGluZyBjb3JyZWN0aW9uCgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICBEb2NzIHVwZGF0ZXMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFRyZWF0IGEgYnVmZmVyLXdpdGhvdXQtbmV3c2VnbWVudCB0aGUgc2FtZSBhcyBhIHJlY2VpdmluZwoJICBhIG5ld3NlZ21lbnQgbm90IGluIHRpbWUgZm9ybWF0LCBhbmQgZGlzYWJsZSBzeW5jaW5nIHRvIHRoZSBjbG9jawoJICB3aXRoIGEgd2FybmluZy4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9zeW5jX2hhbmRsZXIpOgoJICBBc3NlcnQgaWYgYW55b25lIHRyaWVzIHRvIHJlcGxhY2UgdGhlIGV4aXN0aW5nIHN5bmNfaGFuZGxlciBmb3IgYnVzLAoJICBhcyBvbmx5IHRoZSBvd25lciBzaG91bGQgYmUgc2V0dGluZyBpdC4KCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgSGF2ZSBhIGZpeGVkIHNldCBvZiBjdXN0b20gZXZlbnQgZW51bXMgd2l0aCBldmVudHMgaWRlbnRpZmllZCBieQoJICB0aGVpciBzdHJ1Y3R1cmUgbmFtZSAoYXMgaW4gMC44KSwgcmF0aGVyIHRoYW4gYSBmcmVlLWZvci1hbGwKCSAgYWxsb3dpbmcgY29sbGlzaW9ucyBiZXR3ZWVuIGVudW0gdmFsdWVzIGZyb20gZGlmZmVyZW50IHBsdWdpbnMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgRG9jcyBjaGFuZ2UuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBIYW5kbGUgb3V0LW9mLWJhbmQgZG93bnN0cmVhbSBldmVudHMgZnJvbSB0aGUgc2VuZGluZyB0aHJlYWQuCgoyMDA1LTA4LTE3IDE2OjU3OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IEludGVycHJldCBwbGF5LXRpbWVvdXQ9PTAgdG8gbWVhbiBubyB0aW1lb3V0IGF0IGFsbC4gSW4gdGhhdCBjYXNlLCBkb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBJbnRlcnByZXQKCSAgcGxheS10aW1lb3V0PT0wIHRvIG1lYW4gbm8gdGltZW91dCBhdCBhbGwuIEluIHRoYXQgY2FzZSwgZG9uJ3QKCSAgYm90aGVyIHdpdGggYSBnZXRfc3RhdGUgb3IgYSB3YXJuaW5nLCBqdXN0IHJldHVybiBkaXJlY3RseSwgZXZlbgoJICBpZiBpdCdzIEFTWU5DLgoKMjAwNS0wOC0xNyAxNjozMzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEZWJ1ZyBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERlYnVnIGNoYW5nZXMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF9iaW5fd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSk6IEFkZCBmdW5jdGlvbiB0bwoJICBlbnN1cmUgYmlucyBwb3N0IHN0YXRlIGNoYW5nZSBtZXNzYWdlcy4gQSBiaXQgb2YgYSBoYWNrIGJ1dCBJIGNhbid0CgkgIHRoaW5rIG9mIGEgd2F5IHRvIGF2b2lkIGl0LgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlKTogQWRkZWQgdGVzdC4KCjIwMDUtMDgtMTYgMTc6MjM6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuKjogTmV3IGZ1bmN0aW9uLCBsaWtlIHBlZWsoKSBidXQgeW91IG93biB0aGUgZGF0YS4gTm90IHRlcnJpYmx5IGVmZmljaWVudCBhdG0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmMgKGdzdF9hZGFwdGVyX3Rha2UpOiBOZXcgZnVuY3Rpb24sIGxpa2UKCSAgcGVlaygpIGJ1dCB5b3Ugb3duIHRoZSBkYXRhLiBOb3QgdGVycmlibHkgZWZmaWNpZW50IGF0bS4KCjIwMDUtMDgtMTYgMTY6Mjk6MDQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R1dGlscy4qOiBBZGQgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0YWcgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKSwgKHB1c2hfYW5kX3JlZiksCgkgIChnc3RfZWxlbWVudF9mb3VuZF90YWdzKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGFnIGhhbmRsaW5nLgoKMjAwNS0wOC0xNiAxMjoxNTo0NiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggZG9jcyB0byB1c2UgX2Jpbl9hZGQoKSBiZWZvcmUgX2xpbmsoKSwgd2hpY2ggZml4ZXMgdGhlIGV4YW1wbGVzIHdpdGggcmVjZW50IGNvcmUgdmVyc2lvbnMgKHJlcG9ydGVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgRml4IGRvY3MgdG8gdXNlIF9iaW5fYWRkKCkgYmVmb3JlIF9saW5rKCksIHdoaWNoIGZpeGVzIHRoZSBleGFtcGxlcwoJICB3aXRoIHJlY2VudCBjb3JlIHZlcnNpb25zIChyZXBvcnRlZCBieSBNYWRoYW4gUmFqIE0KCSAgPHJhal9tYWRhbkByZWRpZmZtYWlsLmNvbT4sICMzMTMxOTkpLgoKMjAwNS0wOC0xNiAwOTo0Mjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGRlZCBzdWJ0cmFjdCBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkZWQgc3VidHJhY3QgY2hlY2tzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU29tZSBtb3JlIGRvY3MgYWJvdXQgbmV3c2VnbWVudAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCBGSVhNRQoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBBZGQgY29tbWVudHMsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpOgoJICBjbGVhbnVwcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfaW50X3JhbmdlKSwKCSAgKGdzdF9zdHJpbmdfdW53cmFwKSwgKGdzdF92YWx1ZV91bmlvbl9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV91bmlvbl9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2xpc3QpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9yYW5nZV9pbnQpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9yYW5nZV9kb3VibGUpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2Zyb21fbGlzdCksIChnc3RfdmFsdWVfc3VidHJhY3RfbGlzdCksCgkgIChnc3RfdmFsdWVfY2FuX2NvbXBhcmUpLCAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb24pOgoJICBDbGVhbnVwcywgYWRkIGNvbW1lbnRzLCByZW1vdmUgdW5uZWVkZWQgYXNzZXJ0cy4KCjIwMDUtMDgtMTUgMTg6MTU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZG9uJ3QgY29udmVydCBOVUxMIHN0cnVjdHVyZXMgdG8gc3RyaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgY29udmVydCBOVUxMIHN0cnVjdHVyZXMgdG8gc3RyaW5ncwoKMjAwNS0wOC0xNSAxNjo1NzozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbWFkZSBzb21lIGRlZmluZXMgcHJpdmF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtYWRlIHNvbWUgZGVmaW5lcyBwcml2YXRlCgkgICogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9jbGFzc19pbml0KToKCSAgZG9jdW1lbnRlZCBhbGwgdW5kb2N1bWVudGVkIHNpZ25hbCBpbmxpbmUKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkgIGFkZGVkIHBhZGRpbmcKCjIwMDUtMDgtMTUgMDk6NTY6MTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBEb2N1bWVudCBfc2V0X2xpbmtfZnVuY3Rpb24gLT4gX3NldF9zZXRjYXBzX2Z1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRG9jdW1lbnQgX3NldF9saW5rX2Z1bmN0aW9uIC0+IF9zZXRfc2V0Y2Fwc19mdW5jdGlvbi4KCjIwMDUtMDgtMTQgMjI6Mjk6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBhIC5jaGVjayB0YXJnZXQgZm9yIHJ1bm5pbmcgdGhlIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSAuY2hlY2sgdGFyZ2V0IGZvciBydW5uaW5nIHRoZSBjaGVjawoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgY29zbWV0aWMgZml4dXBzCgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBjb21wbGV0ZSBjaGVja3MgZm9yIGdzdGJ1ZmZlcjsgd291bGQgYmUgbmljZSBpZiBJIGNvdWxkIGdldCB0aGUKCSAgZ2NvdiBzdHVmZiB0byB3b3JrIHNvIEkgY2FuIHNlZSBpZiBJIGFjdHVhbGx5IGNvbXBsZXRlZCBnc3RidWZmZXIuYwoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBBU1NFUlRfQlVGRkVSX1JFRkNPVU5UCgoyMDA1LTA4LTEzIDExOjQ1OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICByZW1vdmUgc3BpZGVyIGZyb20gZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNwaWRlciBmcm9tIGRpc3QKCjIwMDUtMDgtMTMgMTE6NDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvZ3N0c3BpZGVyLnZjcHJvajoKCSAgcmVtb3ZlZCBmcm9tIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZnJvbSBIRUFECgoyMDA1LTA4LTEzIDEwOjMzOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSBhcyB3ZSBoYXZlIGluIDAuOCwgYW5kIGRvbid0IHNwZXcgb3V0IGEgd2FybmluZyBpZiBhIHRhZyB0aGF0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBpcyByZS1yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZy5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSksIChnc3RfdGFnX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIEFkZCBHU1RfVEFHX0xBTkdVQUdFX0NPREUgYXMgd2UgaGF2ZSBpbiAwLjgsIGFuZCBkb24ndAoJICBzcGV3IG91dCBhIHdhcm5pbmcgaWYgYSB0YWcgdGhhdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQKCSAgaXMgcmUtcmVnaXN0ZXJlZCwgdW5sZXNzIGl0IGlzIHJlLXJlZ2lzdGVyZWQgd2l0aCBhCgkgIGRpZmZlcmVudCB0eXBlICgjMzA4NDM4KS4KCjIwMDUtMDgtMTIgMTQ6MzA6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IEFkZCBzb21lIHBhcmFncmFwaHMgYWJvdXQgc3RhdGUgY2hhbmdlcyBpbiAwLjkgdG8gdGhlIFBXRyBhbmQgdGhlIHBvcnRpbmcgZ3VpZGUsIGluIHBhcnRpY3VsYXIgYWJvdXQgdGhlIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICBBZGQgc29tZSBwYXJhZ3JhcGhzIGFib3V0IHN0YXRlIGNoYW5nZXMgaW4gMC45IHRvIHRoZSBQV0cKCSAgYW5kIHRoZSBwb3J0aW5nIGd1aWRlLCBpbiBwYXJ0aWN1bGFyIGFib3V0IHRoZSBuZXcgbWVhbmluZwoJICBvZiBHU1RfU1RBVEVfUEFVU0VEIGFuZCBob3cgdG8gd3JpdGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9ucwoJICB3aXRoIGNvbmN1cnJlbnQgYWNjZXNzIGJ5IG11bHRpcGxlIHRocmVhZHMgaW4gbWluZC4KCjIwMDUtMDgtMTEgMTc6Mzk6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGFkZGVkIGRlcHJlY2F0aW9uIGFuZCBzaW5jZSBpbmRleGVzIGFkZGVkIHNpbmNlIHRhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGRlcHJlY2F0aW9uIGFuZCBzaW5jZSBpbmRleGVzCgkgIGFkZGVkIHNpbmNlIHRhZ3MKCjIwMDUtMDgtMTEgMTQ6MjQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWN0dWFsbHkgaW1wbGVtZW50IChyZSlzZXR0aW5nIHRoZSB0YXJnZXQgb24gYSBnaG9zdHBhZCBhcyBkZXNjcmliZWQgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIEFjdHVhbGx5IGltcGxlbWVudCAocmUpc2V0dGluZyB0aGUgdGFyZ2V0IG9uIGEgZ2hvc3RwYWQKCSAgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzLgoKMjAwNS0wOC0xMCAyMToxOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2hlY2sgd2hldGhlciBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IGFuZCBkaXNhYmxlIGNvbG91cmVkIGRlYnVnIG91dHB1dCBpZiB0aGF0IGlzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9jaGVja193aXRoX3BvcHRfdGFibGUpLCAoaW5pdF9wcmUpOgoJICBDaGVjayB3aGV0aGVyIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcwoJICBzZXQgYW5kIGRpc2FibGUgY29sb3VyZWQgZGVidWcgb3V0cHV0IGlmIHRoYXQgaXMgdGhlIGNhc2UuCgoyMDA1LTA4LTEwIDE1OjA4OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogVGhlIG1lbW9yeSByZXR1cm5lZCBieSBnc3RfdHlwZV9maW5kX3BlZWsoKSBuZWVkcyB0byBzdGF5IHZhbGlkIHVudGlsIHRoZSBlbmQgb2YgYSB0eXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgVGhlIG1lbW9yeSByZXR1cm5lZCBieSBnc3RfdHlwZV9maW5kX3BlZWsoKSBuZWVkcyB0bwoJICBzdGF5IHZhbGlkIHVudGlsIHRoZSBlbmQgb2YgYSB0eXBlZmluZCBmdW5jdGlvbiwgYW5kCgkgIHR5cGVmaW5kIGZ1bmN0aW9ucyBtYXkga2VlcCByZXN1bHRzIGZyb20gZGlmZmVyZW50CgkgIG9mZnNldHMgYXJvdW5kLCBzbyB3ZSBjYW4ndCBqdXN0IHVucmVmIHRoZSBidWZmZXIgZnJvbQoJICB0aGUgcHJldmlvdXMgX3BlZWsoKSwgYnV0IGhhdmUgdG8gc2F2ZSBhbGwgYnVmZmVycwoJICByZXR1cm5lZCBieSBfcGVlaygpIHVudGlsIHR5cGVmaW5kaW5nIGlzIGRvbmUgYW5kIG9ubHkKCSAgZnJlZSB0aGVtIHRoZW4uCgoyMDA1LTA4LTA5IDE2OjI1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IG1hY3JvczogR1NUX1JPVU5EX1VQXzIoKSB0aHJvdWdoIEdTVF9ST1VORF9VUF82NCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBOZXcgbWFjcm9zOiBHU1RfUk9VTkRfVVBfMigpIHRocm91Z2ggR1NUX1JPVU5EX1VQXzY0KCkuCgoyMDA1LTA4LTA4IDE2OjAxOjEyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZm9yIGxhdGVzdCBDVlMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIHNwZWMgZm9yIGxhdGVzdCBDVlMgY2hhbmdlcwoKMjAwNS0wOC0wOCAxNTowODoxNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggYSBwcmV0dHkgZ29vZCBtZW1sZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRml4IGEgcHJldHR5IGdvb2QgbWVtbGVhay4KCjIwMDUtMDgtMDggMTM6NTU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuaDogRml4IHdyb25nIGluY2x1ZGUgYW5kICdtYWtlIGRpc3RjaGVjaycuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBGaXggd3JvbmcgaW5jbHVkZSBhbmQgJ21ha2UgZGlzdGNoZWNrJy4KCjIwMDUtMDgtMDggMTM6Mzg6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSgpIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIFVzZSBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoKSBpbnN0ZWFkLgoKMjAwNS0wOC0wOCAxMzozMTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEFkZCBwYWRkaW5nIHRvIG91ciBiYXNlIGVsZW1lbnRzJyBjbGFzcyBhbmQgaW5zdGFuY2Ugc3RydWN0cyBhbmQgdG8gR3N0SXRlcmF0b3IgKHlvdSB3aWxsIG5lZWQgdG8gcmVidWlsZCBhbGwgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZGQgcGFkZGluZyB0byBvdXIgYmFzZSBlbGVtZW50cycgY2xhc3MgYW5kIGluc3RhbmNlIHN0cnVjdHMgYW5kCgkgIHRvIEdzdEl0ZXJhdG9yICh5b3Ugd2lsbCBuZWVkIHRvIHJlYnVpbGQgYWxsIHBsdWdpbnMgYW5kIGFwcHMhKQoKMjAwNS0wOC0wOCAxMzoxNzowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIGRlZmF1bHQgbWVzc2FnZSBmb3J3YXJkaW5nIGZyb20gY2hpbGQtPmJ1cyB0byBiaW4tPmJ1cyB0aHJlYWRzYWZlIGFuZCBtYWtlIGl0IG5vdCBlbWl0IHdhcm5pbmdzIGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIE1ha2UgZGVmYXVsdCBtZXNzYWdlIGZvcndhcmRpbmcgZnJvbSBjaGlsZC0+YnVzIHRvIGJpbi0+YnVzCgkgIHRocmVhZHNhZmUgYW5kIG1ha2UgaXQgbm90IGVtaXQgd2FybmluZ3MgaWYgdGhlIHBhcmVudCBoYXMgbm8gYnVzLgoKMjAwNS0wOC0wOCAxMjoxNDoyMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogT24gcGF1c2VkLT5yZWFkeSwgc2V0IHBhZC0+Y2FwcyB0byBOVUxMLCBhcyBpcyB0aGUgZG9jdW1lbnRlZCBiZWhhdmlvdXIgaW4gdGhpcyBzdGF0ZSBjaGFuZ2UuIEZpeGVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChhY3RpdmF0ZV9wYWRzKToKCSAgT24gcGF1c2VkLT5yZWFkeSwgc2V0IHBhZC0+Y2FwcyB0byBOVUxMLCBhcyBpcyB0aGUgZG9jdW1lbnRlZAoJICBiZWhhdmlvdXIgaW4gdGhpcyBzdGF0ZSBjaGFuZ2UuIEZpeGVzIHBsYXliYWNrIG9mIHNlcmllcyBvZgoJICBtZWRpYSBmaWxlcyB3aGVuIHZpc3VhbGl6YXRpb24gaXMgZW5hYmxlZCBpbiBUb3RlbS4KCjIwMDUtMDgtMDcgMTM6Mzc6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEFsbG93IE5VTEwgYXMgZmlsdGVyLWNhcHMgKHdoaWNoIG1lYW5zICJhbnkiKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIEFsbG93IE5VTEwgYXMgZmlsdGVyLWNhcHMgKHdoaWNoIG1lYW5zICJhbnkiKS4KCjIwMDUtMDgtMDUgMTc6Mjg6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgYWRkaW5nIG1vcmUgZW50cmllcyB0byB0aGUgZG9jcyBhbmQgZml4IHNtYWxsIGRvYy1idWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbW9yZSBlbnRyaWVzIHRvIHRoZSBkb2NzIGFuZCBmaXggc21hbGwgZG9jLWJ1Z3MKCjIwMDUtMDgtMDUgMTM6NDI6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNoZWNrL2dzdC1saWJzLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIG1pZ3JhdGVkIHNvbWUgbW9yZSBkb2NzIHRvIGJlIGlubGluZWQgaW4gdGhlIHNvdXJjZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1pZ3JhdGVkIHNvbWUgbW9yZSBkb2NzIHRvIGJlIGlubGluZWQgaW4gdGhlIHNvdXJjZXMKCjIwMDUtMDgtMDUgMTI6NTk6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBhZGRlZCBsb25nL3Nob3J0IGRlc2MgZm9yIGNvbnRyb2xsZXIgZG9jcyBhZGRlZCBjb2xsZWN0cGFkcyBiYXNlIGNsYXNzIGRvY3MgYWRkZWQgY29ycmVjdCBpbmNsdWRlcyB0byBiYXNlLWNsYXNzIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGxvbmcvc2hvcnQgZGVzYyBmb3IgY29udHJvbGxlciBkb2NzCgkgIGFkZGVkIGNvbGxlY3RwYWRzIGJhc2UgY2xhc3MgZG9jcwoJICBhZGRlZCBjb3JyZWN0IGluY2x1ZGVzIHRvIGJhc2UtY2xhc3MgZG9jcwoKMjAwNS0wOC0wNSAxMDowMjo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBtb3JlIHRlc3RzIChhbmQgZml4ZXMpIGZvciB0aGUgY29udHJvbGxlciBtb3JlIGRvY3MgZm9yIHRoZSBjb250cm9sbGVyIGludGVncmF0ZWQgY29tcGFuaWVzIGRvY3MgZm9yIHRoZSBhZGFwdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHRlc3RzIChhbmQgZml4ZXMpIGZvciB0aGUgY29udHJvbGxlcgoJICBtb3JlIGRvY3MgZm9yIHRoZSBjb250cm9sbGVyCgkgIGludGVncmF0ZWQgY29tcGFuaWVzIGRvY3MgZm9yIHRoZSBhZGFwdGVyCgoyMDA1LTA4LTA1IDA2OjU3OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvc21ldGljIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpYyBmaXhlcwoKMjAwNS0wOC0wNSAwNjo1NTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGQgc2l6ZXR5cGUgdGVzdHMgZm9yIGZha2VzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaXpldHlwZSB0ZXN0cyBmb3IgZmFrZXNyYwoKMjAwNS0wOC0wNCAxOTo0MDo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogUmVpbXBsZW1lbnQgdXNpbmcgYmFzZXRyYW5zZm9ybSwgZml4ZXMgYnVmZmVyX2FsbG9jIHByb3h5aW5nIGFtb25nIG90aGVyIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogUmVpbXBsZW1lbnQgdXNpbmcgYmFzZXRyYW5zZm9ybSwKCSAgZml4ZXMgYnVmZmVyX2FsbG9jIHByb3h5aW5nIGFtb25nIG90aGVyIHRoaW5ncy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZXZlcnQgcGF0Y2ggdG8gZ3N0YmFzZXRyYW5zZm9ybSBmcm9tIDctMjggcmVtb3ZpbmcKCSAgZGVsYXlfY29uZmlndXJlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaCAoR3N0QmFzZVRyYW5zZm9ybUNsYXNzLmdldF9zaXplKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSk6CgkgIFNlbWFudGljcyBjaGFuZ2VkLCBzaG91bGQgcmV0dXJuIG5vdCB0aGUgc2l6ZSBvZiB0aGUgb3V0cHV0IGJ1ZmZlcgoJICBidXQgdGhlIGJ5dGUgc2l6ZSBvZiBhIGJ1ZmZlciB3aXRoIGEgZ2l2ZW4gY2Fwcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKTogQmV0dGVyCgkgIGRlYnVnIG9iamVjdC4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2Fwcyk6IERvbid0IHNldCBvdXRfc2l6ZSBoZXJlOiAoaW4sCgkgIG91dCkgYXJlIG5vdCB0aGUgcGFkIGNhcHMgdW50aWwgc2V0Y2FwcyBmaW5pc2hlcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOiBQcm94eSB0aGUgYnVmZmVyX2FsbG9jIGZvciB0aGUKCSAgbm90LWluLXBsYWNlIGNhc2UgYXMgd2VsbC4gRGVhbCB3aXRoIGNoYW5naW5nIGZyb20gaW4tcGxhY2UgdG8KCSAgbm90LWluLXBsYWNlIHdpdGhpbiBjYWxsaW5nIHBhZF9hbGxvY19idWZmZXIuIFN0aWxsIGEgYml0CgkgIGNvbmNlcm5lZCBhYm91dCB0aGUgb3ZlcmhlYWQgaGVyZS4uLgoKMjAwNS0wOC0wNCAxMTo1Njo1NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDogQWRkZWQgZ3N0X2FkYXB0ZXJfZ2V0X3R5cGUoKSB0byB0aGUgaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgQWRkZWQgZ3N0X2FkYXB0ZXJfZ2V0X3R5cGUoKSB0byB0aGUgaGVhZGVyCgoyMDA1LTA4LTAzIDE2OjEwOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeGVkIGRpc3RjaGVjayBicmVha2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgZGlzdGNoZWNrIGJyZWFrYWdlCgoyMDA1LTA4LTAzIDE1OjU5OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgYWRkZWQgY2hlY2sgdGVzdCBzdWl0ZSBmb3IgdGhlIGNvbnRyb2xsZXIgZml4ZWQgYSBkb2MgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgY2hlY2sgdGVzdCBzdWl0ZSBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgZml4ZWQgYSBkb2MgdHlwbwoKMjAwNS0wOC0wMyAxMzozMDoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9SRUFETUU6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGFkZCBzaG9ydC9sb25nIGRlc2NyaXB0aW9uIGRvY3MgdG8gYmFzZSBjbGFzc2VzIGFkZCBwdXNoc3JjIHRvIHRoZSBkb2NzIHJlbW92ZSBjb25zb2xpZGF0ZWQgZG9jIGZyYWdtZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNob3J0L2xvbmcgZGVzY3JpcHRpb24gZG9jcyB0byBiYXNlIGNsYXNzZXMKCSAgYWRkIHB1c2hzcmMgdG8gdGhlIGRvY3MKCSAgcmVtb3ZlIGNvbnNvbGlkYXRlZCBkb2MgZnJhZ21lbnRzCgoyMDA1LTA4LTAyIDIxOjM5OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHRoYXQgb25lIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhhdCBvbmUgdG9vCgoyMDA1LTA4LTAyIDIxOjM4OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXIucGMuaW46CgkgIGFkZGVkIG1pc3NpbmcgcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIG1pc3NpbmcgcGMgZmlsZXMKCjIwMDUtMDgtMDIgMjE6MzU6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sLnBjLmluOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkgIGFkZGVkIGNvbnRyb2xsZXIgY29kZSByZW1vdmVkIGRwYXJhbSBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgY29udHJvbGxlciBjb2RlCgkgIHJlbW92ZWQgZHBhcmFtIHBjIGZpbGVzCgoyMDA1LTA4LTAxIDIxOjE3OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEJyb2FkY2FzdCB0aGUgY29uZGl0aW9uIHdoZW4gc2h1dHRpbmcgZG93biwgdG8gbWFrZSBzdXJlIHdlIHdha2UgYWxsIHRocmVhZHMgdXAuIFNodXQgZG93bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2ZpbmFsaXplKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKToKCSAgQnJvYWRjYXN0IHRoZSBjb25kaXRpb24gd2hlbiBzaHV0dGluZyBkb3duLCB0byBtYWtlIHN1cmUgd2Ugd2FrZSBhbGwKCSAgdGhyZWFkcyB1cC4gU2h1dCBkb3duIHBhZHMgb24gZmluYWxpemUsIGZvciBzYWZldHkuCgoyMDA1LTA4LTAxIDE3OjI2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSGFuZGxlIFBBVVNFRC0+UkVBRFktPlBBVVNFRCB0cmFuc2l0aW9uIGFmdGVyIG5lZ290aWF0aW9uIG9jY3VycmVkIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTAxICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBQQVVTRUQtPlJFQURZLT5QQVVTRUQgdHJhbnNpdGlvbiBhZnRlciBuZWdvdGlhdGlvbgoJICBvY2N1cnJlZCBhbHJlYWR5LgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KToKCSAgRXh0cmEgcGllY2Ugb2YgZGVidWcgZm9yIG5ldyBtZXNzYWdlcy4KCjIwMDUtMDgtMDEgMTY6NDM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGRwYXJhbXMgZGVwcyBmcm9tIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZHBhcmFtcyBkZXBzIGZyb20gdGhlIGRvY3MKCjIwMDUtMDgtMDEgMTY6MTc6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2wvY29udHJvbC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2NvbnRyb2wuaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW0uYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW0uaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1fc21vb3RoLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtX3Ntb290aC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbWNvbW1vbi5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBsaW5lYXJpbnRlcnAuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGxpbmVhcmludGVycC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL3VuaXRjb252ZXJ0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvdW5pdGNvbnZlcnQuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zL2RwYXJhbXN0ZXN0LmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zL2RwYXJhbXN0ZXN0LmM6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBkZWFjdGl2YXRlIGFuZCByZW1vdmUgZHBhcmFtcyAobGliZ3N0Y29udHJvbCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYWN0aXZhdGUgYW5kIHJlbW92ZSBkcGFyYW1zIChsaWJnc3Rjb250cm9sKQoKMjAwNS0wOC0wMSAxMToxNTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogU2V0IGNhcHMgb24gYWxsIG91dGdvaW5nIGJ1ZmZlcnMsIG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU2V0IGNhcHMgb24gYWxsIG91dGdvaW5nIGJ1ZmZlcnMsIG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUuCgoyMDA1LTA4LTAxIDA5OjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIgd2hlbiB3ZSd2ZSBmb3VuZCB0aGUgdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tfc2V0X2J1ZmZlcl9jYXBzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwgKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNldCBjYXBzIG9uIGZpcnN0IG91dGdvaW5nIGJ1ZmZlciB3aGVuIHdlJ3ZlIGZvdW5kIHRoZSB0eXBlLgoKMjAwNS0wOC0wMSAwODo1MjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0LzogUmVtb3ZlIHNvbWUgb2xkIGNydWZ0IGZyb20gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkgIFJlbW92ZSBzb21lIG9sZCBjcnVmdCBmcm9tIGRvY3MuCgoyMDA1LTA3LTMxIDExOjU5OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5oOiBGaXggaW5saW5lIGRvY3MgZm9yIEdzdFBhZExpbmtSZXR1cm4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgRml4IGlubGluZSBkb2NzIGZvciBHc3RQYWRMaW5rUmV0dXJuLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBOZXcgQVBJOiBnc3Rfc3RydWN0dXJlX2hhc19uYW1lKCkuCgoyMDA1LTA3LTMwIDE1OjAwOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQUNfU1lTX0xBUkdFRklMRSwgd2hpY2ggd2lsbCBzZXQgX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgYW5kIF9MQVJHRUZJTEVfU09VUkNFIGluIGNvbmZpZy5oIGFzIHJlcXVpcmVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFDX1NZU19MQVJHRUZJTEUsIHdoaWNoIHdpbGwgc2V0IF9GSUxFX09GRlNFVF9CSVRTPTY0CgkgIGFuZCBfTEFSR0VGSUxFX1NPVVJDRSBpbiBjb25maWcuaCBhcyByZXF1aXJlZC4gRG8gbm90CgkgIGV4cG9ydCB0aG9zZSBmbGFncyBpbiBvdXIgLnBjIGZpbGVzIGFueSBsb25nZXIgKCMxNDIyMDkpLgoJICBSZW1vdmUgdW51c2VkIEdTVF9ESVNBQkxFX09NRUdBX0NPVEhSRUFEUyBzdHVmZi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFJlZG8gc2Vlay90ZWxsIGNhbGxzIHdpdGggbGFyZ2UgZmlsZSBzdXBwb3J0IGluIG1pbmQ7IGFkZCBzb21lCgkgIGRlYnVnZ2luZyBtZXNzYWdlczsgYWRkIGxvZyBtZXNzYWdlIHRoYXQgdGVsbHMgdXMgd2hlbiBsYXJnZQoJICBmaWxlIHN1cHBvcnQgaXMgdW5hdmFpbGFibGUgb3Igbm90IGVuYWJsZWQgZm9yIHNvbWUgcmVhc29uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgIEFkZCBsb2cgbWVzc2FnZSB0aGF0IHRlbGxzIHVzIHdoZW4gbGFyZ2UgZmlsZSBzdXBwb3J0CgkgIGlzIHVuYXZhaWxhYmxlIG9yIG5vdCBlbmFibGVkIGZvciBzb21lIHJlYXNvbi4KCjIwMDUtMDctMjkgMTk6MjI6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgdGVzdCBmb3IgcmVtb3ZpbmcgYW4gZWxlbWVudCB3aXRoIGdob3N0cGFkIGZyb20gYSBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIHJlbW92aW5nIGFuIGVsZW1lbnQgd2l0aCBnaG9zdHBhZCBmcm9tIGEgYmluLgoJICBGaXhlZCB0ZXN0IGFzIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyB0aGUgcmlnaHQgdGhpbmcuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeV90eXBlKSwgKGdzdF9wcm94eV9wYWRfZG9fZXZlbnQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeSksIChnc3RfcHJveHlfcGFkX2RvX2ludGVybmFsX2xpbmspLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdWxsKSwgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdXNoKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksCgkgIChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfcHJveHlfcGFkX2ZpbmFsaXplKSwKCSAgKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX25ldyksCgkgIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgQ2xlYW4gdXAgZ2hvc3RwYWRzLCByZW1vdmUgcHJvcGVydGllcyBmb3IgaW50ZXJuYWwgc3R1ZmYuCgkgIE1ha2UgdGhyZWFkc2FmZS4KCSAgRml4IHJlZmNvdW50aW5nLgoJICBQcmVwYXJlIGZvciBzd2l0Y2hpbmcgdGFyZ2V0cywgbm90IGFsbCB1c2UgY2FzZXMgd29yayB5ZXQuCgoyMDA1LTA3LTI5IDE5OjE5OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0YmluLmM6ICh1bmxpbmtfcGFkcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOgoJICBVbmxpbmtpbmcgcGFkcyB3aGlsZSBob2xkaW5nIHRoZSBiaW4gTE9DSyBpcyBub3QgYSBnb29kCgkgIGlkZWEuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLCAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgTm8gcHJvYiBzZXR0aW5nIHRlbXBsYXRlIGFmdGVyIGNyZWF0aW5nIHRoZSBwYWQuCgoyMDA1LTA3LTI5IDE1OjM0OjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidXMuYzogZ3N0X2J1c19wb2xsIG1heSBiZSBjYWxsZWQgZnJvbSBvdGhlciB0aHJlYWRzLiBIYW5kbGUgdGhpcyBuaWNlbHkgYnkgbm90IG1ha2luZyBwb2xsX2RhdGEgZGlzYXBwZWFyIG9mZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9mbHVzaGluZyksIChnc3RfYnVzX3BvcCksCgkgIChnc3RfYnVzX3BlZWspLCAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksIChwb2xsX2hhbmRsZXIpLCAocG9sbF90aW1lb3V0KSwKCSAgKHBvbGxfZGVzdHJveSksIChwb2xsX2Rlc3Ryb3lfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICBnc3RfYnVzX3BvbGwgbWF5IGJlIGNhbGxlZCBmcm9tIG90aGVyIHRocmVhZHMuIEhhbmRsZQoJICB0aGlzIG5pY2VseSBieSBub3QgbWFraW5nIHBvbGxfZGF0YSBkaXNhcHBlYXIgb2ZmIHRoZQoJICBzdGFjayBvbmNlIGdzdF9idXNfcG9sbCByZXR1cm5zLgoJICBnc3RfYnVzX3BlZWsgbm93IGluY3JlbWVudHMgdGhlIHJlZmNvdW50IG9uIHRoZSByZXR1cm5lZAoJICBtZXNzYWdlLgoKMjAwNS0wNy0yOSAxMToyOTo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBPdmVydmlldyBvZiBjdXJyZW50IEdob3N0UGFkIGRhdGFzdHJ1Y3R1cmVzIGFuZCB1c2UgY2FzZXMgZm9yIGNoYW5naW5nIHRoZSB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBPdmVydmlldyBvZiBjdXJyZW50IEdob3N0UGFkIGRhdGFzdHJ1Y3R1cmVzIGFuZCB1c2UKCSAgY2FzZXMgZm9yIGNoYW5naW5nIHRoZSB0YXJnZXQuCgoyMDA1LTA3LTI4IDE1OjM4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCBjaGVja3MgZm9yIGhpZXJhcmNoeSBjb25zaXN0ZW5jeSB3aGFuIGFkZGluZyBsaW5rZWQgZWxlbWVudHMgdG8gYmlucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrcyBmb3IgaGllcmFyY2h5IGNvbnNpc3RlbmN5IHdoYW4gYWRkaW5nIGxpbmtlZAoJICBlbGVtZW50cyB0byBiaW5zLgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgZWxlbWVudCBzY2hlZHVsaW5nIHdpdGhvdXQgYmluL3BpcGVsaW5lLgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpcnN0IGFkZCBlbGVtZW50cyB0byBiaW4sIHRoZW4gbGluay4KCSAgKiBnc3QvZ3N0YmluLmM6ICh1bmxpbmtfcGFkcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOgoJICBVbmxpbmsgcGFkcyBmcm9tIGVsZW1lbnRzIGFkZGVkL3JlbW92ZWQgZnJvbSBiaW4gdG8gbWFpbnRhaW4KCSAgaGllcmFyY2h5IGNvbnNpc3RlbmN5LgoKMjAwNS0wNy0yOCAxMTo0OTo1NiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBSZW1vdmUgYnJva2VuIGRlbGF5X2NvbmZpZ3VyZSAoZml4ZXMgcmVuZWdvdGlhdGlvbiBvZiBzb2Z0d2FyZSBzY2FsaW5nIHBpcGVsaW5lcyk7IHJlbW92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJlbW92ZSBicm9rZW4gZGVsYXlfY29uZmlndXJlIChmaXhlcyByZW5lZ290aWF0aW9uIG9mIHNvZnR3YXJlCgkgIHNjYWxpbmcgcGlwZWxpbmVzKTsgcmVtb3ZlIHNvbWUgbGVmdG92ZXIgcHJpbnRmKClzLgoKMjAwNS0wNy0yOCAxMToyNDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCBzb21lIG1vcmUgdGVzdHMgZm9yIHdyb25nIGhpZXJhcmNoeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBzb21lIG1vcmUgdGVzdHMgZm9yIHdyb25nIGhpZXJhcmNoeQoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBTb21lIHVwZGF0ZXMuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBDbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCksIChnc3RfZWxlbWVudF9zZWVrKSwKCSAgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBTb21lIG1vcmUgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBDaGVjayBmb3IgY29ycmVjdCBoaWVyYXJjaHkgd2hlbiBsaW5raW5nIHBhZHMuIE1vdmluZyB0bwoJICBzdHJpY3QgcmVxdWlyZW1lbnQgZm9yIGdob3N0cGFkcyB3aGVuIGxpbmtpbmcgZWxlbWVudHMgaW4KCSAgZGlmZmVyZW50IGJpbnMuCgkgICogZ3N0L2dzdHBhZC5oOgoJICBDbGVhbiB1cHMuIEFkZGVkIFdST05HX0hJRVJBUkNIWSByZXR1cm4gdmFsdWUuCgoyMDA1LTA3LTI4IDEwOjM4OjAyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEJldHRlciBkZWJ1ZyBpZiBubyB0cmFuc2Zvcm0gaXMgcG9zc2libGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgQmV0dGVyIGRlYnVnIGlmIG5vIHRyYW5zZm9ybSBpcyBwb3NzaWJsZS4KCjIwMDUtMDctMjcgMjA6MjI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L25ldHdvcmstdHJhbnNwOiBTb21lIG9sZCBkb2MgSSBoYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvbmV0d29yay10cmFuc3A6CgkgIFNvbWUgb2xkIGRvYyBJIGhhZC4KCjIwMDUtMDctMjcgMTk6MDA6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBzZXJpYWxpemF0aW9uIG9mIHNlZWsgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KToKCSAgRml4IHNlcmlhbGl6YXRpb24gb2Ygc2VlayBldmVudHMuCgoyMDA1LTA3LTI3IDE4OjQ3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IGNvbXBpbGF0aW9uIGFuZCBmaXggZXZlbnQgc2VyaWFsaXphdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgRml4IGNvbXBpbGF0aW9uIGFuZCBmaXggZXZlbnQgc2VyaWFsaXphdGlvbi4KCjIwMDUtMDctMjcgMTg6MzM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIGRvY3MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDSEFOR0VTLTAuOToKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU29tZSBkb2NzIHVwZGF0ZXMKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCk6CgkgIEV2ZW50IHVwZGF0ZXMuCgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBVc2UgZmFzdGVyIGNhc3RzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZWVrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBVcGRhdGUgZ3N0X2VsZW1lbnRfc2Vlay4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSksIChfZ3N0X2V2ZW50X2NvcHkpLAoJICAoZ3N0X2V2ZW50X25ldyksIChnc3RfZXZlbnRfbmV3X2N1c3RvbSksIChnc3RfZXZlbnRfZ2V0X3N0cnVjdHVyZSksCgkgIChnc3RfZXZlbnRfbmV3X2ZsdXNoX3N0YXJ0KSwgKGdzdF9ldmVudF9uZXdfZmx1c2hfc3RvcCksCgkgIChnc3RfZXZlbnRfbmV3X2VvcyksIChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2ZpbGxlciksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBNYWtlIEdzdEV2ZW50IHVzZSBHc3RTdHJ1Y3R1cmUuIEFkZCBwYXJzaW5nIGNvZGUsIG1ha2Ugc3VyZSB0aGUKCSAgQVBJIGlzIHN1ZmZpY2llbnRseSBnZW5lcmljLgoJICBNYXJrIHBvc3NpYmxlIGRpcmVjdGlvbnMgb2YgZXZlbnRzIGFuZCBzZXJpYWxpemF0aW9uLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwKCSAgKF9nc3RfbWVzc2FnZV9jb3B5KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVwZGF0ZSBmb3IgbmV3IGV2ZW50cy4KCSAgQ2F0Y2ggZXZlbnRzIHNlbnQgaW4gd3JvbmcgZGlyZWN0aW9ucy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9saW5rX3NyYyksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgRXZlbnQgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICBSZW1vdmUgZXZlbnQgY29kZSBmcm9tIHRoaXMgZmlsZS4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KToKCSAgRXZlbnQgdXBkYXRlcy4KCjIwMDUtMDctMjcgMTU6MDU6NDUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBkZWJ1Z2dpbmcgYWN0dWFsbHkgdXNlZnVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgTWFrZSBkZWJ1Z2dpbmcgYWN0dWFsbHkgdXNlZnVsLgoKMjAwNS0wNy0yNSAxMjozMTowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgZGVmYXVsdCBmaXhhdGlvbiBvbmNlIGFnYWluLCBzbyB0aGF0IGdzdF9wYWRfZml4YXRlKCkgYWN0dWFsbHkgZG9lcyBhbnl0aGluZyBhdCBhbGwuIFRoaXMgcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSksIChnc3RfcGFkX2RlZmF1bHRfZml4YXRlKSwKCSAgKGdzdF9wYWRfZml4YXRlX2NhcHMpOgoJICBJbXBsZW1lbnQgZGVmYXVsdCBmaXhhdGlvbiBvbmNlIGFnYWluLCBzbyB0aGF0IGdzdF9wYWRfZml4YXRlKCkKCSAgYWN0dWFsbHkgZG9lcyBhbnl0aGluZyBhdCBhbGwuIFRoaXMgcHJvYmFibHkgbmVlZHMgdG8gYmUgc29tZQoJICBzb3J0IG9mIGEgbGFzdCByZXNvcnQsIGFuZCB1c2UgcHJvZmlsZS1iYXNlZCBmaXhhdGlvbiBmaXJzdCwgYnV0CgkgIHNpbmNlIHRoYXQgZG9lc24ndCBleGlzdCB5ZXQsIHRoaXMgaXMgdGhlIGJlc3Qgd2UgaGF2ZS4gRml4ZXMKCSAgdmlzdWFsaXphdGlvbiBpbiBUb3RlbS4KCjIwMDUtMDctMjIgMTE6NDc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgIFNvbWUgbW9yZSBjb21tZW50cy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEZpeCBoYW5kb2ZmIG1hcnNoYWxsLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFdlJ3JlIGEgcmVhbCBpbnBsYWNlIGVsZW1lbnQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgQWRkZWQgc29tZSBjb21tZW50cy4KCSAgKiB0ZXN0cy9sYXQuYzogKGZha2VzcmMpLCAoZmFrZXNpbmspLCAoc2ltcGxlKSwgKHF1ZXVlKSwgKG1haW4pOgoJICAqIHRlc3RzL211eGluZy9jYXNlMS5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvZHluYW1pYy1waXBlbGluZS5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvaW50ZXJydXB0MS5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvaW50ZXJydXB0Mi5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvaW50ZXJydXB0My5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvcnVueG1sLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9zY2hlZC1zdHJlc3MuYzogKG1haW4pOgoJICAqIHRlc3RzL3NlZWtpbmcvc2Vla2luZzEuYzogKGV2ZW50X3JlY2VpdmVkKSwgKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOiAoYnVzX2hhbmRsZXIpLCAodGltZW91dF9mdW5jKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMy5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGU0LmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTUuYzogKG1haW4pOgoJICBGaXggdGhlIHRlc3RzLgoKMjAwNS0wNy0yMSAxNzoyMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6IFNvbWUgc21hbGwgYWRkaXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIHNtYWxsIGFkZGl0aW9ucy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBkaXNjb250IHZhbHVlcyBhcmUgZ2ludDY0LCBoYW5kbGUgdGhlIG1hdGggY29ycmVjdGx5LgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgTWFrZSB0aGUgYmFzZXNyYyByZXBvcnQgZXJyb3IgaWYgdGhlIHNvdXJjZSBwYWQgaXMgbm90IGxpbmtlZC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9saW5rX3NyYyksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBxdWV1ZSBjb2xsZWN0IGRhdGEgZXZlbiBpZiB0aGUgc3JjcGFkIGlzIG5vdCBsaW5rZWQuCgkgIFN0YXJ0IHB1c2hpbmcgb3V0IGRhdGEgYXMgc29vbiBhcyBpdCBpcyBsaW5rZWQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspLCAoZ3N0X2Zsb3dfZ2V0X25hbWUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGRlZCBnc3RfZmxvd19nZXRfbmFtZSgpIHRvIGVhc2UgZXJyb3IgcmVwb3J0aW5nLgoKMjAwNS0wNy0yMCAxODowMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFkZGVkIGEgYnVuY2ggb2YgbWVzc2FnZXMgZm9yIGFkdmFuY2VkIHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBhIGJ1bmNoIG9mIG1lc3NhZ2VzIGZvciBhZHZhbmNlZCBzZWVraW5nLgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmM6IChnc3RfZHBtYW5fc2V0X3BhcmVudCksCgkgIChnc3RfZHBtYW5fc3RhdGVfY2hhbmdlZCk6CgkgIEZpeCBzb21lIG5ldy1wYWQgLT4gcGFkLWFkZGVkIHNpZ25hbHMKCjIwMDUtMDctMjAgMTc6MjI6MjcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvOiBEb2N1bWVudCBuZXctcGFkL3N0YXRlLWNoYW5nZSBzaWduYWwgcmVuYW1lcyBhbmQgdGhlIEZpeGVkTGlzdCB0eXBlIHJlbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIERvY3VtZW50IG5ldy1wYWQvc3RhdGUtY2hhbmdlIHNpZ25hbCByZW5hbWVzIGFuZCB0aGUgRml4ZWRMaXN0CgkgIHR5cGUgcmVuYW1lLgoKMjAwNS0wNy0yMCAxNzoxNjo0NCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgR3N0RWxlbWVudDo6bmV3LXBhZCAtPiBwYWQtYWRkZWQsIEdzdEVsZW1lbnQ6OnN0YXRlLWNoYW5nZSAtPiBzdGF0ZS1jaGFuZ2VkLCBHc3RWYWx1ZUZpeGVkTGlzdCAtPiBHc3RWYWx1ZUFycmF5LCBhZGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL3JhbmRvbS9kcy8wLjktc3VnZ2VzdGVkLWNoYW5nZXM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLCAoZ3N0X2VsZW1lbnRfc2Vlayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV92YWx1ZV9nZXRfZ2VuZXJpY190eXBlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfYXJyYXkpLCAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksCgkgIChnc3RfdmFsdWVfbGlzdF9wcmVwZW5kX3ZhbHVlKSwgKGdzdF92YWx1ZV9saXN0X2FwcGVuZF92YWx1ZSksCgkgIChnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSksIChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9hcnJheV9zdHJpbmcpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hcnJheSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYXJyYXkpLCAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9hcnJheSksCgkgIChnc3RfdmFsdWVfaXNfZml4ZWQpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgR3N0RWxlbWVudDo6bmV3LXBhZCAtPiBwYWQtYWRkZWQsIEdzdEVsZW1lbnQ6OnN0YXRlLWNoYW5nZSAtPgoJICBzdGF0ZS1jaGFuZ2VkLCBHc3RWYWx1ZUZpeGVkTGlzdCAtPiBHc3RWYWx1ZUFycmF5LCBhZGQgZm9ybWF0IGFuZAoJICBmbGFncyBhcyB0aGVpciBvd24gYXJndW1lbnRzIGluIGdzdF9lbGVtZW50X3NlZWsoKSAoc2hvdWxkIGltcHJvdmUKCSAgImJpbmRlYWJpbGl0eSIpLCByZW1vdmUgZnVuY3Rpb24gZ2VuZXJhdG9ycyBzaW5jZSB0aGV5IGRvbid0IHdvcmsKCSAgdW5kZXIgYSB3aG9sZSBidW5jaCBvZiBjb21waWxlcnMgKHRoZXkgd2VyZSBkZXByZWNhdGVkIGFscmVhZHkKCSAgYW55d2F5KS4KCjIwMDUtMDctMjAgMTc6MTU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIHBhdGNoIGZyb20gRWRnYXJkIHRvIHByb3Blcmx5IHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBmcm9tIEVkZ2FyZCB0byBwcm9wZXJseSBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncwoKMjAwNS0wNy0yMCAxNjoyMDozOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGluZm8uKjogRml4IGlsbGVnYWwgY2FzdCBvbiBzb21lIHBsYXRmb3JtcyAoIzMwOTI1MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKSwKCSAgKF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0cik6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgRml4IGlsbGVnYWwgY2FzdCBvbiBzb21lIHBsYXRmb3JtcyAoIzMwOTI1MykuCgoyMDA1LTA3LTIwIDExOjM1OjE4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBZGQgX25ld19jdXN0b20sIG1ha2UgX25ld19hcHBsaWNhdGlvbiBhIG1hY3JvIHRvIF9uZXdfY3VzdG9tLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIF9uZXdfY3VzdG9tLCBtYWtlIF9uZXdfYXBwbGljYXRpb24gYSBtYWNybyB0byBfbmV3X2N1c3RvbS4KCjIwMDUtMDctMjAgMTA6NTg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLio6IEFkZCBhIGdib29sZWFuIHRvIGRlY2lkZSB3aGVuIHRvIHB1c2ggb3V0IGEgZGlzY29udC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCBhIGdib29sZWFuIHRvIGRlY2lkZSB3aGVuIHRvIHB1c2ggb3V0IGEgZGlzY29udC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgU29tZSBjbGVhbnVwcy4KCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTEuYzogKG1haW4pOgoJICBNYWtlIGEgdGhyZWFkIHRlc3QgY29tcGlsZSBhbmQgcnVuLi4uIHZlcnkgc2lsbHkuLgoKMjAwNS0wNy0yMCAxMDoxMzo0NiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6IE1lbnRpb24gcmVtb3ZhbCBvZiBsaWJnc3RnY29uZi0wLjkubGEgYW5kIGV4aXN0ZW5jZSBvZiBnY29uZiBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIE1lbnRpb24gcmVtb3ZhbCBvZiBsaWJnc3RnY29uZi0wLjkubGEgYW5kIGV4aXN0ZW5jZSBvZiBnY29uZgoJICBlbGVtZW50cy4KCjIwMDUtMDctMjAgMDg6Mjk6MDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogRG9jdW1lbnQgYmFzZSBjbGFzc2VzLCB1cGRhdGUgc2VjdGlvbnMgb2Ygbi10by0xIGFuZCAxLXRvLW4gKG11eGVyLCBmaXggc29tZSBjb2RlIGV4YW1wbGVzIGFuZCBsaW5rcyBhbmQgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbWFuYWdlci54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvbi54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1vbmV0b24ueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIERvY3VtZW50IGJhc2UgY2xhc3NlcywgdXBkYXRlIHNlY3Rpb25zIG9mIG4tdG8tMSBhbmQgMS10by1uIChtdXhlciwKCSAgZGVtdXhlciksIHJlbW92ZSBuLXRvLW4gKHdhcyBuZXZlciB3cml0dGVuKSwgZml4IHNvbWUgY29kZSBleGFtcGxlcwoJICBhbmQgbGlua3MgYW5kIHVwZGF0ZSB0aGUgcG9ydGluZyBzZWN0aW9uIHRvIGluY2x1ZGUgYWxsIHRoaXMuCgoyMDA1LTA3LTE5IDE3OjQ2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLio6IFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIG1vcmUgaW50ZWxsaWdlbnRseSB1cHN0cmVhbSBhbmQgb3V0cHV0IGFuIEVSUk9SL0VPUyB3aGVuIHN0cmVhbWluZyBzdG9wcGVkIGR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBtb3JlIGludGVsbGlnZW50bHkgdXBzdHJlYW0gYW5kIG91dHB1dAoJICBhbiBFUlJPUi9FT1Mgd2hlbiBzdHJlYW1pbmcgc3RvcHBlZCBkdWUgdG8gZmF0YWwgZXJyb3IuCgoyMDA1LTA3LTE5IDE0OjUyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb24ndCBibG9jayBmb3JldmVyIGZvciB0aGUgc3RhdGUgY2hhbmdlIHRvIGNvbXBsZXRlLCB0aGUgcGlwZWxpbmUgYWxyZWFkeSBkaWQgd2l0aCBhIHNlbnNpYmxlIHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgRG9uJ3QgYmxvY2sgZm9yZXZlciBmb3IgdGhlIHN0YXRlIGNoYW5nZSB0byBjb21wbGV0ZSwgdGhlCgkgIHBpcGVsaW5lIGFscmVhZHkgZGlkIHdpdGggYSBzZW5zaWJsZSB0aW1lb3V0LgoKMjAwNS0wNy0xOSAxMzo0Mzo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzdXJlIHdlIG5ldmVyIGNhbGwgdGhlIGNyZWF0ZSBmdW5jdGlvbiBpcyB3ZSBnb3QgZGVhY3RpdmF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBNYWtlIHN1cmUgd2UgbmV2ZXIgY2FsbCB0aGUgY3JlYXRlIGZ1bmN0aW9uIGlzIHdlCgkgIGdvdCBkZWFjdGl2YXRlZC4KCjIwMDUtMDctMTkgMTE6Mjc6MDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBjaGFuZ2VzCgoyMDA1LTA3LTE5IDEwOjQwOjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogQXR0ZW1wdCB0byBzb2x2ZSBidWcgIzE3MjgxNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6IEF0dGVtcHQgdG8gc29sdmUgYnVnICMxNzI4MTUuCgoyMDA1LTA3LTE5IDA5OjE5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zZWVrKToKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPbmx5IHVwZGF0ZSB0aGUgc2Vla2luZyB2YWx1ZXMgd2hlbiB3ZSBhcmUgbm90CgkgIGJ1c3kgc3RyZWFtaW5nLgoKMjAwNS0wNy0xOCAxNzo0Mzo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIE9vcHMsIGlnbm9yZSB0aGUgcmVzdWx0IG9mIGdzdF9wYWRfcHVzaF9ldmVudCBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgT29wcywgaWdub3JlIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50IGhlcmUuCgoyMDA1LTA3LTE4IDE3OjEyOjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU2VuZCBkaXNjb250IGV2ZW50IGZyb20gdGhlIGxvb3AgZnVuY3Rpb24sIGFzIHBhZHMgYXJlbid0IGFjdGl2YXRlZCB5ZXQgaW4gdGhlIGFjdGl2YXRlX3B1c2ggaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIFNlbmQgZGlzY29udCBldmVudCBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uLCBhcyBwYWRzCgkgIGFyZW4ndCBhY3RpdmF0ZWQgeWV0IGluIHRoZSBhY3RpdmF0ZV9wdXNoIGhhbmRsZXIuCgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgRG9uJ3QgbGVhayBlbGVtZW50IG5hbWUuCgoyMDA1LTA3LTE4IDE0OjQ3OjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBU19MSUJUT09MX1RBR1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzogVXNlIEFTX0xJQlRPT0xfVEFHUy4KCjIwMDUtMDctMTggMTI6NTg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IFJlbW92ZSBkZWxldGVkIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIFJlbW92ZSBkZWxldGVkIHR5cGVzLgoKMjAwNS0wNy0xOCAxMjo0OTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHNjaGVkdWxlci5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlbW92ZWQgcGx1Z2FibGUgc2NoZWR1bGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZWQgcGx1Z2FibGUgc2NoZWR1bGVycy4KCSAgUmVtb3ZlZCBTY2hlZHVsZXIvTWFuYWdlciBmcm9tIGVsZW1lbnRzLgoJICBSZW1vdmVkIGdzdHR5cGVzLmgsIHJlYXJyYW5nZWQgaW5jbHVkZXMuCgkgIFJlbW92ZWQgZGVwZW5kZW5jeSBwYWQ8LT5lbGVtZW50LCBlbGVtZW50PD5waXBlbGluZSwgYW5kCgkgIHZhcmlvdXMgb3RoZXJzLCAgZml4IGluY2x1ZGVzLgoJICBpbXBsZW1lbnQgZ3N0X3BhZF9nZXRfcGFyZW50KCkgd2l0aCBnc3Rfb2JqZWN0X2dldF9wYXJlbnQoKQoJICBNYWtlIEdzdFRhc2sgc2VmY29udGFpbmVkLgoJICBGaXggX2dldF9zdGF0ZSgpIG9uIEdzdEJpbiwgaXQgZGlkIG5vdCByZXR1cm4gQVNZTkMgd2l0aCBhIDAKCSAgdGltZW91dC4KCSAgRml4IGVuZGxlc3MgbG9vcCBpbiBpdGVyYXRvcl9mb2xkX3dpdGhfcmVzeW5jLgoKMjAwNS0wNy0xOCAwOToyMjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBvbGQgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RhcmNoLmg6CgkgIFJlbW92ZSBvbGQgZmlsZS4KCjIwMDUtMDctMTggMDg6NTE6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IE5vIG1vcmUgY290aHJlYWRzLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBObyBtb3JlIGNvdGhyZWFkcy5oCgoyMDA1LTA3LTE4IDA4OjQzOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2NvdGhyZWFkcy4qOiBMZXQncyByZW1vdmUgdGhlc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9jb3RocmVhZHMuYzoKCSAgKiBnc3QvY290aHJlYWRzLmg6CgkgIExldCdzIHJlbW92ZSB0aGVzZS4KCjIwMDUtMDctMTggMDg6Mjg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSBkb2NzIGluIHRoZSB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBtb3JlIGRvY3MgaW4gdGhlIHdvcmtzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKToKCSAgUmVmY291bnRpbmcgZml4ZXMuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLCAoZ3N0X2J1c19wb2xsKToKCSAgQ2xlYW51cHMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpOgoJICBTZXQgU1JDIHRvIE5VTEwuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspLAoJICAoZ3N0X3BhZF9nZXRfcGFyZW50X2VsZW1lbnQpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwKCSAgKGdzdF9wYWRfcHJveHlfc2V0Y2Fwcyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBfZ2V0X3BhcmVudF9lbGVtZW50KCkgdG8gZ2V0IGEgcGFkcyBwYXJlbnQgYXMgYW4gZWxlbWVudC4KCjIwMDUtMDctMTcgMjI6NDQ6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IFJlbW92ZSBib2d1cyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJlbW92ZSBib2d1cyB0ZXN0LgoKMjAwNS0wNy0xNyAyMjoyNjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlZmNvdW50aW5nIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9zZXRjYXBzKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLCAoZ3N0X2Jhc2Vfc2lua19sb29wKSwKCSAgKGdzdF9iYXNlX3NpbmtfZGVhY3RpdmF0ZSksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmVmY291bnRpbmcgZml4ZXMuCgkgIEZpeCBsb2dpYyBmb3IgcmV0dXJuaW5nIEFTWU5DIHdoZW4gbm90IHByZXJvbGxlZC4KCjIwMDUtMDctMTcgMjI6MjI6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuYzogRml4IG5hc3R5IHJlZmNvdW50IGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBGaXggbmFzdHkgcmVmY291bnQgYnVnLgoKMjAwNS0wNy0xNiAxOToyNTo0MSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgTW92ZWQgZmRzcmMgdG8gZ3N0LXBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNb3ZlZCBmZHNyYyB0byBnc3QtcGx1Z2lucy4KCjIwMDUtMDctMTYgMTU6NDM6MTAgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cgZW50cnkKCjIwMDUtMDctMTYgMTU6NDE6MDQgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNiBQaGlsaXBwZSBLaGFsYWYgPGJ1cmdlckBzcGVlZHkub3JnPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmgKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYwoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbQoJICBQb3J0ZWQgZmRzcmMgdG8gMC45LgoKMjAwNS0wNy0xNiAxNDo1MjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBjb21waWxlIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIEZpeCBjb21waWxlIGVycm9yLgoKMjAwNS0wNy0xNiAxNDo0MToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IFN0b3JlIGFuZCB1c2UgZGlzY29udCB2YWx1ZXMgd2hlbiBzeW5jaW5nIGJ1ZmZlcnMgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBTdG9yZSBhbmQgdXNlIGRpc2NvbnQgdmFsdWVzIHdoZW4gc3luY2luZyBidWZmZXJzIGFzIGRlc2NyaWJlZAoJICBpbiBkZXNpZ24gZG9jcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIFB1c2ggZGlzY29udCBldmVudCB3aGVuIHN0YXJ0aW5nLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgY2xlYW51cHMgaW4gYmFzZV90aW1lICBkaXN0cmlidXRpb24uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2Jhc2VfdGltZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEFkZGVkIG1ldGhvZHMgZm9yIHRoZSBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgkgIFNvbWUgTVQgZml4ZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfbGFzdF9zdHJlYW1fdGltZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIE1UIGZpeGVzLgoJICBIYW5kbGUgc2Vla2luZyBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvYywgcmVtb3ZlIHN0cmVhbV90aW1lCgkgIGhhY2suCgkgIENsZWFudXBzIGNsb2NrIGFuZCBzdHJlYW1fdGltZSBzZWxlY3Rpb24gY29kZS4gQWRkZWQgYWNjZXNzb3JzCgkgIGZvciB0aGUgc3RyZWFtX3RpbWUuCgoyMDA1LTA3LTE2IDE0OjA2OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KTogVXNlIHRoZSBtYWdpYyB3b3JkLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6IFVzZSB0aGUgbWFnaWMgd29yZC4uCgoyMDA1LTA3LTE2IDEzOjUwOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBNYWtlIGVsZW1lbnRzIHNpbGVudCBhcyB0aGUgZGVlcF9ub3RpZnkgcmVmcyB0aGUgcGFyZW50LCB3aGljaCBtaWdodCBtYWtlIHRoZSB0ZXN0IGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBlbGVtZW50cyBzaWxlbnQgYXMgdGhlIGRlZXBfbm90aWZ5IHJlZnMgdGhlCgkgIHBhcmVudCwgd2hpY2ggbWlnaHQgbWFrZSB0aGUgdGVzdCBmYWlsLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgRG9uJ3QgaG9sZCB0aGUgbG9jayBmb3IgdG9vIGxvbmcuCgoyMDA1LTA3LTE2IDEyOjMzOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1bnJlZiB0aGUgY2FwcyB3ZSBwYXNzZWQgdG8gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIGFmdGVyIHBhc3NpbmcgdGhlbS4gZ3N0X2NhcHNfbWFrZV93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIERvbid0IHVucmVmIHRoZSBjYXBzIHdlIHBhc3NlZCB0byBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgYWZ0ZXIKCSAgcGFzc2luZyB0aGVtLiBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgd2lsbCBkbyB0aGF0IGZvciB1cy4KCjIwMDUtMDctMTUgMTY6MTA6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjYXBzLmggKGdzdF9jYXBzX2lzX3NpbXBsZSk6IFJlbW92ZWQgZGVwcmVjYXRlZCBtYWNybyAoIzE1NzMxMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjYXBzLmggKGdzdF9jYXBzX2lzX3NpbXBsZSk6IFJlbW92ZWQgZGVwcmVjYXRlZCBtYWNybwoJICAoIzE1NzMxMSkuCgoyMDA1LTA3LTE1IDE0OjU5OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKTogV3JpdGUgb3VyIG93biBtYXJzaGFsbGluZyBmdW5jdGlvbiBmb3IgdGhlIGhhbmRvZmYgc2lnbmFsLiBQcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCk6IFdyaXRlIG91cgoJICBvd24gbWFyc2hhbGxpbmcgZnVuY3Rpb24gZm9yIHRoZSBoYW5kb2ZmIHNpZ25hbC4gUHJvcGVybHkgdHlwZSB0aGUKCSAgYnVmZmVyIGFzIGEgYnVmZmVyLiBGaXhlcyBzb21lIHdhcm5pbmdzLiBTaG91bGQgZG8gYSBtb3JlIGdlbmVyYWwKCSAgc29sdXRpb24uCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6IFBsdWcgaW50byB0aGUgcmlnaHQgbWFyc2hhbGxlci4KCjIwMDUtMDctMTUgMTM6NDQ6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZWQgZG9jcywgbW9zdGx5IERJU0NPTlQgcmVsYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgVXBkYXRlZCBkb2NzLCBtb3N0bHkgRElTQ09OVCByZWxhdGVkLgoKMjAwNS0wNy0xNSAxMjo1NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOiBzL0dTVF9QQURfTElOS19SRUZVU0VEL0ZBTFNFLyBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgcy9HU1RfUEFEX0xJTktfUkVGVVNFRC9GQUxTRS8gaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkKCjIwMDUtMDctMTUgMTE6MDU6NTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICByZW1vdmUgaXJyZWxldmFudCBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaXJyZWxldmFudCBjb2RlCgoyMDA1LTA3LTE1IDExOjA0OjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0b29scy9nc3QtdHlwZWZpbmQuYzogVXBkYXRlLCBhZGQgY29weXJpZ2h0IGJsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogVXBkYXRlLCBhZGQgY29weXJpZ2h0IGJsb2NrLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgTm9ybWFsaXplIGFuZCB0cnVuY2F0ZSBjYXBzIGJlZm9yZSBmaXhhdGlvbi4KCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjYXBzLmMgKGdzdF9jYXBzX3RydW5jYXRlKTogTmV3IGZ1bmN0aW9uLCBkZXN0cnVjdGl2ZWx5CgkgIGRpc2NhcmRzIGFsbCBidXQgdGhlIGZpcnN0IHN0cnVjdHVyZSBmcm9tIGl0cyBhcmd1bWVudC4KCjIwMDUtMDctMTUgMTA6NDE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1ha2UgcGFzc3Rocm91Z2ggd29yayB1c2luZyB0aGUgYnVmZmVycG9vbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1ha2UgcGFzc3Rocm91Z2ggd29yayB1c2luZyB0aGUgYnVmZmVycG9vbHMuCgkgIENoYW5nZWQgQVBJIGEgYml0LCBzdWJjbGFzc2VzIGhhdmUgdG8gd3JpdGUgaW50byBhIGJ1ZmZlcgoJICBwcm92aWRlZCBieSB0aGUgYmFzZSBjbGFzcy4KCSAgTW9yZSBkZWJ1ZyBpbmZvIGluIG5lZ28gZnVuY3Rpb25zLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSk6CgkgIFBvcnQgdG8gbmV3IGJhc2UgY2xhc3MuCgoyMDA1LTA3LTE1IDEwOjMwOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVG90YWxseSBkdW1wIG1lc3NhZ2VzIGluIC1sYXVuY2ggd2l0aCB0aGUgLW0gb3B0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIFRvdGFsbHkgZHVtcCBtZXNzYWdlcyBpbiAtbGF1bmNoIHdpdGggdGhlIC1tIG9wdGlvbi4KCSAgRml4IG1lc3NhZ2UgbmFtZSBmb3IgU3RhdGUgbWVzc2FnZXMsCgoyMDA1LTA3LTE0IDE4OjQ1OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQb3N0IGVycm9yIG1lc3NhZ2VzIG9uIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBQb3N0IGVycm9yIG1lc3NhZ2VzIG9uIGVycm9ycy4KCjIwMDUtMDctMTQgMTg6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBSZW1vdmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KToKCSAgUmVtb3ZlIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIERlZmluZSBlcnJvciBmb3Igc3RyZWFtIHN0b3BwZWQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSk6CgkgIERvIHByb3BlciByZXR1cm4gdmFsdWVzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfZ2V0X3JhbmdlKToKCSAgQmV0dGVyIHJldHVybiB2YWx1ZXMuCgkgICogZ3N0L2dzdHBhZC5oOgoJICBSZW9yZ2FuaXNlIHJldHVybiB2YWx1ZXMsIGFkZCBtYWNybyB0byBjaGVjayBmb3IgZmF0YWwgZXJyb3JzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgUmV0dXJuIHByb3BlciBHc3RGbG93UmV0dXJuIHZhbHVlcywKCjIwMDUtMDctMTQgMDk6MzU6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3Rjb250cm9sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGFyYW0uc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBsaW5pbnQuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBtYW4uc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBzbW9vdGguc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3R1bml0Y29udmVydC5zZ21sOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgbW9yZSBhdXRpc3RpYyBjbGVhbmxpbmVzcyBpbiBmdW5jdGlvbnMvbmFtZXMvZGVmaW5lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBhdXRpc3RpYyBjbGVhbmxpbmVzcyBpbiBmdW5jdGlvbnMvbmFtZXMvZGVmaW5lcwoKMjAwNS0wNy0xMyAxODoyOTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBmaXggZGVidWcgaWZkZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkZWJ1ZyBpZmRlZgoKMjAwNS0wNy0xMyAxNjoyNjowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfc3RhcnQpOiBQb3N0IGFuIGVycm9yIGlmIHRoZSBzb3VyY2UgY291bGRuJ3QgbmVnb3RpYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19zdGFydCk6IFBvc3QgYW4gZXJyb3IgaWYgdGhlCgkgIHNvdXJjZSBjb3VsZG4ndCBuZWdvdGlhdGUuCgoyMDA1LTA3LTEzIDEzOjE0OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC5zdXBwOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZnJvbSBFZGdhcmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZyb20gRWRnYXJkCgoyMDA1LTA3LTEzIDEzOjEwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgdHdvIHRlc3RzdWl0ZSBhcHBzIG92ZXIgdG8gdGhlIGNoZWNrIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9jb21wYXJlLmM6CgkgICogdGVzdHN1aXRlL2NhcHMvdmFsdWVfaW50ZXJzZWN0LmM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBtb3ZlIHR3byB0ZXN0c3VpdGUgYXBwcyBvdmVyIHRvIHRoZSBjaGVjayBkaXIKCjIwMDUtMDctMTIgMTc6MTc6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFkZGVkIG1vcmUgZGVidWcgaW5mbyBpbiB0aGUgbmVnb3RpYXRlIHByb2Nlc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgQWRkZWQgbW9yZSBkZWJ1ZyBpbmZvIGluIHRoZSBuZWdvdGlhdGUgcHJvY2Vzcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBQcmVwYXJlIGZvciBzZWdtZW50IHBsYXliYWNrLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNvbWUgbW9yZSBkb2NzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBOVUxMIHBpcGVsaW5lIG9uIGVycm9ycy4KCjIwMDUtMDctMTIgMTc6MDQ6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfY29weSk6IENvcHkgdGhlIGJ1ZmZlciB3aGV0aGVyIG9yIG5vdCBpdCBjb21lcyBmcm9tIGEgbWFsbG9jIHJlZ2lvbi4gTWFrZSBzdXJlIG91ciBjb3B5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2NvcHkpOiBDb3B5IHRoZSBidWZmZXIgd2hldGhlciBvcgoJICBub3QgaXQgY29tZXMgZnJvbSBhIG1hbGxvYyByZWdpb24uIE1ha2Ugc3VyZSBvdXIgY29weSBnZXRzIGZyZWVkLgoKMjAwNS0wNy0xMiAxNjoyODozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBmaXggcmVmY291bnRpbmcgb2Ygd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCByZWZjb3VudGluZyBvZiB3YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcwoKMjAwNS0wNy0xMiAxMzoyNjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlLWVuYWJsZSBsZWFrIGNoZWNraW5nIDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZS1lbmFibGUgbGVhayBjaGVja2luZyA6KQoKMjAwNS0wNy0xMiAxMjoyMDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIHBlci10ZXN0IHZhbGdyaW5kIHRhcmdldHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBwZXItdGVzdCB2YWxncmluZCB0YXJnZXRzCgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZGF0YV9wcm90b2NvbF9zdWl0ZSksIChtYWluKToKCSAgY2xlYW4gdXAKCjIwMDUtMDctMTIgMDk6NDE6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGluc3RhdGUgbW9yZSB2YWxncmluZGFibGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTIgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGluc3RhdGUgbW9yZSB2YWxncmluZGFibGUgdGVzdHMKCSAgKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChjaGFpbl9mdW5jKSwgKGV2ZW50X2Z1bmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZmFrZXNyY19zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgZml4IHRlc3QgbGVha3MKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpbmFsaXplKToKCSAgZml4IHRoZSBzdGF0aWMgbXV0ZXggbGVhawoKMjAwNS0wNy0xMSAxODo0MTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIHR3byBtb3JlIHRlc3RzIGZvciB2YWxncmluZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHR3byBtb3JlIHRlc3RzIGZvciB2YWxncmluZGluZwoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB0ZXN0IHJlZmNvdW50IG9mIGRlc2VyaWFsaXplZCBidWZmZXIsIGZvdW5kIGEgbGVhawoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgIGFkZCBtaW5pb2JqZWN0IHRvIGRvY3MKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBhZGQgc29tZSBkb2NzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF9zdHJpbmdfdW53cmFwKToKCSAgZml4IGEgaGFyZC10by1maW5kIGludmFsaWQgd3JpdGUgZm9yIG9uZSBvZiB0aGUgdGVzdHMKCSAgZml4IGEgbGVhayBmb3IgZGVzZXJpYWxpemVkIGJ1ZmZlcnMKCjIwMDUtMDctMTEgMTU6NDE6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCBhcyBwYXJ0IG9mIG1ha2UgY2hlY2sgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgdmFsZ3JpbmQgYXMgcGFydCBvZiBtYWtlIGNoZWNrIGZvciBub3cKCjIwMDUtMDctMTEgMTU6MjI6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzcGVjaWZ5IHRvb2wKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNwZWNpZnkgdG9vbAoKMjAwNS0wNy0xMSAxNToxODozMiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBSZXdyaXRlIHNjaGVkdWxpbmctY2hhcHRlciBmb3Igc2NoZWR1bGluZyBtb2RlbCBpbiAwLjkuIEFkZCBsb3RzIG9mIGV4YW1wbGUgY29kZSBhbmQgZXhwbGFuYXRpb24gZm9yIHBhZCBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICBSZXdyaXRlIHNjaGVkdWxpbmctY2hhcHRlciBmb3Igc2NoZWR1bGluZyBtb2RlbCBpbiAwLjkuIEFkZCBsb3RzCgkgIG9mIGV4YW1wbGUgY29kZSBhbmQgZXhwbGFuYXRpb24gZm9yIHBhZCBhY3RpdmF0aW9uLCBsb29wKCkgYW5kCgkgIGdldHJhbmdlKCkgZnVuY3Rpb25zIGFuZCBhIGJpdCBtb3JlLiBSZW1vdmUgb2xkIGNvbW1lbnRzIHBvaW50aW5nCgkgIHRvIGxvb3AtZnVuY3Rpb25zLgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgQWRkIGxvb3AvZ2V0cmFuZ2UgZXhhbXBsZXMuCgoyMDA1LTA3LTExIDE1OjEwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB2YWxncmluZCB1bml0IHRlc3RzIGFzIGNoZWNrLWxvY2FsOyBhZGQgZ3N0X2RlaW5pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFsZ3JpbmQgdW5pdCB0ZXN0cyBhcyBjaGVjay1sb2NhbDsgYWRkIGdzdF9kZWluaXQKCjIwMDUtMDctMTEgMTU6MDY6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gYmFzZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIGJhc2VzcmMKCjIwMDUtMDctMTAgMTI6MDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgbW9yZSBtYWNybyBzcGxpdHRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbWFjcm8gc3BsaXR0aW5nCgoyMDA1LTA3LTEwIDAwOjA3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGFkZCBkZWJ1ZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgIGFkZCBkZWJ1ZwoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCk6CgkgIGZpeCBidXMgbGVha3MKCjIwMDUtMDctMDkgMjM6NTI6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaXggY2FwcyBsZWFrIGluIGJvdGggY2FzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBjYXBzIGxlYWsgaW4gYm90aCBjYXNlcwoKMjAwNS0wNy0wOSAyMzo0ODo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGR1aCwgcmVtb3ZlIHVudXNlZCB2YXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGR1aCwgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMDctMDkgMjM6NDc6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpeCBhIGNhcHMgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgY2FwcyBsZWFrCgoyMDA1LTA3LTA5IDIzOjMzOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogYWRkIGZpbmFsaXplIG1ldGhvZCBhbmQgY2xlYW4gdXAgcHJvcGVybHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2ZpbmFsaXplKToKCSAgYWRkIGZpbmFsaXplIG1ldGhvZCBhbmQgY2xlYW4gdXAgcHJvcGVybHkKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9kaXNwb3NlKToKCSAgYWRkIGRlYnVnCgoyMDA1LTA3LTA5IDIzOjE1OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZG9uJ3QgZ2V0IHNyYyBmb3IgYWxsIG1lc3NhZ2VzOyBvbmx5IGZvciBlb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGdldCBzcmMgZm9yIGFsbCBtZXNzYWdlczsgb25seSBmb3IgZW9zCgoyMDA1LTA3LTA5IDIyOjU0OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogYWRkIG1vcmUgdGhpbmdzIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYmluX3N1aXRlKToKCSAgYWRkIG1vcmUgdGhpbmdzIHRvIGNoZWNrCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBtb3JlIGRlYnVnCgoyMDA1LTA3LTA5IDE2OjM2OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9nc3RjaGVjay5jOgoJKiBjaGVjay9nc3RjaGVjay5oOgoJKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeSB1c2UgR1NUX1NUQVJUX1RFU1Qgbm93LCBzbyB3ZSBhZGQgYSBkZWJ1ZyBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZGVidWdnaW5nIGNhdGVnb3J5CgkgIHVzZSBHU1RfU1RBUlRfVEVTVCBub3csIHNvIHdlIGFkZCBhIGRlYnVnIGxpbmUKCjIwMDUtMDctMDkgMTU6MTg6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgdGVzdCBmb3Igc3RhdGUgY2hhbmdlIG1lc3NhZ2Ugb24gYSBiaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgYWRkIHRlc3QgZm9yIHN0YXRlIGNoYW5nZSBtZXNzYWdlIG9uIGEgYmluCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBhZGQgYW5vdGhlciB0ZXN0CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19wb3N0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ldyk6CgkgICogZ3N0L2dzdHNjaGVkdWxlci5jOgoJICB2YXJpb3VzIGRlYnVnZ2luZyBhZGRpdGlvbnMgYW5kIGNsZWFudXBzCgoyMDA1LTA3LTA4IDE2OjQxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBhZGRpbmcgdGVzdHMgZm9yIGVsZW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgdGVzdHMgZm9yIGVsZW1lbnRzCgoyMDA1LTA3LTA4IDE2OjE2OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IHBsdWcgbW9yZSBsZWFrcy4gIEEgc2ltcGxlIGdzdF9pbml0KCkgbm93IGlzIGxlYWtmcmVlLCB5YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChsb2FkX2ZlYXR1cmUpOgoJICBwbHVnIG1vcmUgbGVha3MuICBBIHNpbXBsZSBnc3RfaW5pdCgpIG5vdyBpcyBsZWFrZnJlZSwgeWF5LgoKMjAwNS0wNy0wOCAxNjowODoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIHBsdWcgYW5vdGhlciBtZW1sZWFrIGluIHJlZ2lzdHJ5IGxvYWRpbmcgLSBJIGhhdmUgTk8gaWRlYSB3aHkgdGhpcyB3YXMgcmV0dXJuaW5nIGEgR3N0UGx1Z2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbHVnIGFub3RoZXIgbWVtbGVhayBpbiByZWdpc3RyeSBsb2FkaW5nIC0gSSBoYXZlIE5PIGlkZWEgd2h5IHRoaXMgd2FzIHJldHVybmluZyBhIEdzdFBsdWdpbgoKMjAwNS0wNy0wOCAxNDo1MDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICBJIG5lZWQgdG8gbGVhcm4gdG8gc3RvcCBkb2luZyB0aGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJIG5lZWQgdG8gbGVhcm4gdG8gc3RvcCBkb2luZyB0aGlzCgoyMDA1LTA3LTA4IDE0OjM5OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYWRkIHJpZ2h0IHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcmlnaHQgdmFyaWFibGUKCjIwMDUtMDctMDggMTQ6MzU6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgR1NUX1NFVF9FUlJPUl9DRkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgR1NUX1NFVF9FUlJPUl9DRkxBR1MKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBjaGFuZ2UgdG8gRVJST1JfQ0ZMQUdTCgoyMDA1LTA3LTA4IDE0OjAxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogbWFrZSBHU1RfRVJST1JfQ0ZMQUdTIG92ZXJyaWRhYmxlIGFuZCByZS1lbmFibGUgV2Vycm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgbWFrZSBHU1RfRVJST1JfQ0ZMQUdTIG92ZXJyaWRhYmxlIGFuZCByZS1lbmFibGUgV2Vycm9yCgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgYWRkIGEgbm90ZSBhYm91dCBlcnJvciBDRkxBR1MKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBjb21tZW50IG91dCBzb21lIHVudXNlZCBjb2RlCgkgICogZ3N0L2dzdC5jOiAoc3BsaXRfYW5kX2l0ZXJhdGUpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChsb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChsb2FkX2ZlYXR1cmUpOgoJICBwbHVnIHNvbWUgbWVtbGVha3MKCjIwMDUtMDctMDcgMTU6MDc6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBtYWtlIGxpYnMgdXNlIHNhbWUgZ3RrLWRvYy5tYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgbGlicyB1c2Ugc2FtZSBndGstZG9jLm1hawoKMjAwNS0wNy0wNyAxNDoxNjo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgZmFjdG9yIG91dCBndGstZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmYWN0b3Igb3V0IGd0ay1kb2MKCjIwMDUtMDctMDcgMTQ6MDE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogVW5sb2NrIHRoZSBTVFJFQU1fTE9DSyBjb21wbGV0ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZGlzcG9zZSk6CgkgIFVubG9jayB0aGUgU1RSRUFNX0xPQ0sgY29tcGxldGVseS4KCjIwMDUtMDctMDcgMTM6MTQ6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA3LTA3IDEzOjEyOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2luc3RhbnRpYXRlLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNy0wNyAxMTo1OTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkaW5nIGFuIGVsZW1lbnQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIGFuIGVsZW1lbnQgdGVzdAoKMjAwNS0wNy0wNyAxMTowOTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2hhdmVfcGVuZGluZyk6IFJlbW92ZSBpbnRlbnNlbHkgaXJyaXRhdGluZyBkZWJ1ZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKTogUmVtb3ZlIGludGVuc2VseSBpcnJpdGF0aW5nCgkgIGRlYnVnIG1lc3NhZ2UuCgoyMDA1LTA3LTA3IDEwOjAzOjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBhbm90aGVyIGRvYyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZG9jIGZpeAoKMjAwNS0wNy0wNyAwOToxMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9CVUlMRDoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1vcmUgbWFjb3N4IG1hZG5lc3MgZml4aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIG1hY29zeCBtYWRuZXNzIGZpeGluZwoKMjAwNS0wNy0wNyAwODo0MzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS4qOiBSZW1vdmUgb2xkIHR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW1vdmUgb2xkIHR5cGVzCgoyMDA1LTA3LTA3IDA4OjE2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbGxvdyBzdWJjbGFzc2VzIHRvIGltcGxlbWVudCB0aGVpciBvd24gbmVnb3RpYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19uZWdvdGlhdGUpOgoJICBBbGxvdyBzdWJjbGFzc2VzIHRvIGltcGxlbWVudCB0aGVpciBvd24gbmVnb3RpYXRpb24uCgoyMDA1LTA3LTA2IDE3OjE3OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlIGRlc2lnbiBub3RlcyB0byByZWZsZWN0IHRoZSBtb3ZlbWVudCBvZiByZXNwb25zaWJpbGl0eSBmb3IgYnVzIGhhbmRsaW5nIGZyb20gR3N0UGlwZWxpbmUgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBVcGRhdGUgZGVzaWduIG5vdGVzIHRvIHJlZmxlY3QgdGhlIG1vdmVtZW50IG9mCgkgIHJlc3BvbnNpYmlsaXR5IGZvciBidXMgaGFuZGxpbmcgZnJvbSBHc3RQaXBlbGluZSB0bwoJICBHc3RCaW4KCjIwMDUtMDctMDYgMTY6NDU6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgdW5uZWNlc3NhcnkgcXVldWUyLzMvNCBleGFtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgcXVldWUyLzMvNCBleGFtcGxlcy4KCjIwMDUtMDctMDYgMTY6MjI6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXhhbXBsZXMvOiBVcGRhdGUgYSBjb3VwbGUgb2YgdGhlIGV4YW1wbGVzIHRvIHdvcmsgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZTIvcXVldWUyLmM6IChtYWluKToKCSAgVXBkYXRlIGEgY291cGxlIG9mIHRoZSBleGFtcGxlcyB0byB3b3JrIGFnYWluLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgU3BlbGxpbmcgY29ycmVjdGlvbnMgYW5kIGV4dHJhIGRlYnVnLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLCAoaXNfZW9zKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoYmluX2VsZW1lbnRfaXNfc2luayksIChnc3RfYmluX2dldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfZGlzcG9zZSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgTW92ZSB0aGUgYnVzIGhhbmRsZXIgZm9yIGNoaWxkcmVuIHRvIHRoZSBHc3RCaW4sIGFuZCBjcmVhdGUgYQoJICBzZXBhcmF0ZSBidXMgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBmcm9tIGNoaWxkcmVuIHRvIHRoZSBvbmUgdGhlCgkgIGJ1cyBzZW5kcyAndXB3YXJkcycgb24uCgoyMDA1LTA3LTA2IDEzOjI1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBNYWtlIGJhc2VzcmMgbmVnb3RpYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19sb29wKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRjYXBzKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfbmVnb3RpYXRlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE1ha2UgYmFzZXNyYyBuZWdvdGlhdGUuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBwcmVyb2xsIGZhaWxzIGluIGJhc2VzaW5rLgoJICBVcGRhdGUgUkVBRE1FLgoKMjAwNS0wNy0wNiAxMzoyMDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IHRoZSBmaXhhdGUgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZml4YXRlX2NhcHMpLCAoZ3N0X3BhZF9hY2NlcHRfY2Fwcyk6CgkgIEltcGxlbWVudCB0aGUgZml4YXRlIGZ1bmN0aW9uLgoJICBDbGVhbiB1cCBhY2NlcHRjYXBzLgoKMjAwNS0wNy0wNiAxMjoyNDo1MCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBSZW1vdmUgbmV2ZXItd3JpdHRlbiBmaWx0ZXItZmFjdG9yeSBjaGFwdGVyOyBJJ2xsIGFkZCB0aGUgdmFyaW91cyBiYXNlIGNsYXNzZXMgdG8gcGFydCA0ICgib3RoZXIgZWxlbWVudCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWZpbHRlcmZhY3RvcnkueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIFJlbW92ZSBuZXZlci13cml0dGVuIGZpbHRlci1mYWN0b3J5IGNoYXB0ZXI7IEknbGwgYWRkIHRoZSB2YXJpb3VzCgkgIGJhc2UgY2xhc3NlcyB0byBwYXJ0IDQgKCJvdGhlciBlbGVtZW50IHR5cGVzIikgbGF0ZXIgb24uCgoyMDA1LTA3LTA2IDEyOjE4OjAwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBBZGQgYSBjaGFwdGVyIG9uIGNhcHMgbmVnb3RpYXRpb24sIHNpbXBsaWZ5IHRoZSBvcmlnaW5hbCBjb2RlIHNhbXBsZXMgYSBiaXQgdy5yLnQuIGNhcHMgbmVnb3RpYXRpb24sIGFkZCBsaW5rIHRvIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEFkZCBhIGNoYXB0ZXIgb24gY2FwcyBuZWdvdGlhdGlvbiwgc2ltcGxpZnkgdGhlIG9yaWdpbmFsIGNvZGUKCSAgc2FtcGxlcyBhIGJpdCB3LnIudC4gY2FwcyBuZWdvdGlhdGlvbiwgYWRkIGxpbmsgdG8gdGhlIGFkdmFuY2VkCgkgIHNlY3Rpb24uIEFkZCBhIGJ1bmNoIG9mIGV4YW1wbGVzIHNob3dpbmcgZGlmZmVyZW50IHVzZSBjYXNlcyBvZgoJICBkaWZmZXJlbnQgdHlwZXMgb2YgY2FwcyBuZWdvdGlhdGlvbi4gVXBzdHJlYW0gcmVuZWdvdGlhdGlvbiBpc24ndAoJICBmdWxseSBkb2N1bWVudGVkIHlldCBzaW5jZSBub2JvZHkga25vd3MgaG93IHRoYXQgd29ya3MuCgoyMDA1LTA3LTA2IDExOjM0OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgcGMgZmlsZSBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGMgZmlsZSBjbGVhbnVwcwoKMjAwNS0wNy0wNiAxMTozMTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBpZiBwYWQgaGFzIG5vIHBhcmVudCwgcmV0dXJuIE5VTEwgYXMgbGlzdCBvZiBpbnRlcm5hbCBsaW5rcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgaWYgcGFkIGhhcyBubyBwYXJlbnQsIHJldHVybiBOVUxMIGFzIGxpc3Qgb2YgaW50ZXJuYWwgbGlua3MKCjIwMDUtMDctMDUgMTY6Mzg6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC86IHMvQkFTRVNSQy9CQVNFX1NSQy9nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHMvQkFTRVNSQy9CQVNFX1NSQy9nLgoKMjAwNS0wNy0wNSAxNToyODoxOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA3LTA1IDEyOjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJICBiZXR0ZXIgcmVwb3J0IGdlbnJhdGlvbiB0YXJnZXQgKGxjb3YgbmVlZHMgYSBwYXRjaCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJldHRlciByZXBvcnQgZ2VucmF0aW9uIHRhcmdldCAobGNvdiBuZWVkcyBhIHBhdGNoKQoKMjAwNS0wNy0wNSAxMDo1ODoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzLCB0ZXN0c3VpdGU6IE51bGwgaWYgd2UgZ290IGl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cywgdGVzdHN1aXRlOiBOdWxsIGlmIHdlIGdvdCBpdC4uLgoKMjAwNS0wNy0wNSAxMDoyMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFBvcnRlZCBkYXRhcHJvdG9sIHRvIDAuOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfdmFsaWRhdGVfcGFja2V0KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICBQb3J0ZWQgZGF0YXByb3RvbCB0byAwLjkuCgkgIEFkZGVkIHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMDctMDUgMDk6MzU6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBEZWZhdWx0IHRvIHJldHVybmluZyBUUlVFIGZvciB0aGUgY2FzZSB3aGVuIHRyYW5mb3JtX2NhcHMgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgRGVmYXVsdCB0byByZXR1cm5pbmcgVFJVRSBmb3IgdGhlIGNhc2Ugd2hlbiB0cmFuZm9ybV9jYXBzIHJldHVybnMKCSAgYSBmaXhlZCBjYXBzLCBsaWtlIGZvciBpZGVudGl0eSBvciB2b2x1bWUuCgoyMDA1LTA3LTA1IDA4OjQ3OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay86IEFwcGxpY2F0aW9uIG1lc3NhZ2UgQVBJIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jIChwb3VuZF9idXNfd2l0aF9tZXNzYWdlcyk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYyAoU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAoZ290X2hhbmRvZmYpOiBBcHBsaWNhdGlvbgoJICBtZXNzYWdlIEFQSSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IE1vcmUKCSAgbG9naWMgd2Vha3MgaGVyZTogYWx3YXlzIHJ1biB0cmFuc2Zvcm1fY2FwcywgdHJ5aW5nIHBhc3N0aHJvdWdoCgkgIG9wZXJhdGlvbiBvbmx5IGlmIHRoZSBvcmlnaW5hbCBjYXBzIGludGVyc2VjdHMgd2l0aCB0aGUgdHJhbnNmb3JtLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOiBEZWJ1ZwoJICBzb3VyY2UgYW5kIHNpbmsgY2Fwcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKToKCSAgSW50ZXJzZWN0IHRoZSBwZWVyIGNhcHMgd2l0aCB0aGUgcGFkIHRlbXBsYXRlIGJlZm9yZSBnb2luZyBpbnRvCgkgIHRyYW5zZm9ybV9jYXBzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKTogTW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKTogVGFrZSBhIEdzdE9iamVjdAoJICBzcmMgYXJndW1lbnQuCgoyMDA1LTA3LTA0IDE1OjA4OjMwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLio6IG5vdyByZXR1cm5zIHRoZSBzaWduYWwgaWQgZm9yIGJldHRlciB3cmFwcGluZyBpbiBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIChnc3RfcGFkX2FkZF8qX3Byb2JlKTogbm93IHJldHVybnMgdGhlIHNpZ25hbCBpZCBmb3IgYmV0dGVyIHdyYXBwaW5nCgkgIGluIGJpbmRpbmdzLgoKMjAwNS0wNy0wNCAwOToyMjo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBPbmx5IHNldCBleHBsaWNpdCBjYXBzIG9uIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogT25seSBzZXQgZXhwbGljaXQgY2FwcyBvbiBwYWRzLgoKMjAwNS0wNy0wMSAxNjo0Njo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY206IENvbW1lbnRhcnkgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogQ29tbWVudGFyeSB1cGRhdGUuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKFBST1BfRFVQTElDQVRFKTogR29uZSBkYWRkeSBnb25lLgoJICBEaWRuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UsIG5vdCBpbXBsZW1lbnRhYmxlIHdpdGggYmFzZXRyYW5zZm9ybSwKCSAgZXRjLgoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSk6IFVucmVmIGluYnVmIHZpYSBtYWtlX3dyaXRhYmxlLiBGZWVibGUKCSAgYXR0ZW1wdCBhdCBpbXBsZW1lbnRpbmcgdGhlIHN5bmMgcHJvcGVydHksIG5lZWRzIGFuIHVubG9jayBtZXRob2QuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBOZXcgZnVuYywgYnkgZGVmYXVsdCByZXR1cm5zIHRoZSBzYW1lIGNhcHMgKHRoZSBpZGVudGl0eQoJICB0cmFuc2Zvcm1hdGlvbikuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6IFVzZXMgdHJhbnNmb3JtX2NhcHMgdG8gcmV0dXJuCgkgIHNvbWV0aGluZyBzZW5zaWJsZS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogQ29tcGxpY2F0ZWQgbG9naWMgdG8gZ2V0IGNhcHMgb24KCSAgYm90aCBwYWRzLCBldmVuIGlmIHRoZXkgYXJlIGRpZmZlcmVudCwgYW5kIHRvIGNhbGwgc2V0X2NhcHMgb25jZQoJICBmb3IgZXZlcnkgdGltZSBib3RoIHBhZHMgZ2V0IHRoZWlyIGNhcHMgc2V0LgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOiBHaXZlIHRoZSByZWYgdG8gdGhlIHRyYW5zZm9ybQoJICBmdW5jdGlvbi4gQWxsb3dzIGluLXBsYWNlIG1vZGlmaWNhdGlvbiBvZiB0aGUgYnVmZmVyLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaCAodHJhbnNmb3JtX2NhcHMpOiBOZXcgY2xhc3MgbWV0aG9kLgoJICBHaXZlbiBjYXBzIG9uIG9uZSBzaWRlLCB3aGF0IGNhbiBJIGRvIG9uIHRoZSBvdGhlci4KCSAgKHNldF9jYXBzKTogVGFrZSB0d28gY2Fwcywgb25lIGZvciBlYWNoIHNpZGUgb2YgdGhlIGVsZW1lbnQuCgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6IENoYW5nZSBwcm90b3R5cGUgdG8gbW9kaWZ5CgkgIGNhcHMgaW4gcGxhY2UuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHdlIGNhbiBjaGVjayB0aGUgbXV0YWJpbGl0eSBvZgoJICB0aGUgY2FwcywgYW5kIGEgZ29vZCBpZGVhIGJlY2F1c2UgZml4YXRlIGZ1bmN0aW9ucyBhcmUganVzdCBjYWxsZWQKCSAgYXMgYSBtYXR0ZXIgb2YgbGFzdCByZXNvcnQuIChOb3QgYWN0dWFsbHkgaW1wbGVtZW50ZWQuKQoJICAoZ3N0X3BhZF9zZXRfY2Fwcyk6IElmIHRoZSBjYXBzIHdlJ3JlIHNldHRpbmcgaXMgYWN0dWFsbHkgdGhlIHNhbWUKCSAgYXMgdGhlIGV4aXN0aW5nIHBhZCBjYXBzLCBqdXN0IHVwZGF0ZSB0aGUgcG9pbnRlciB3aXRob3V0IGNhbGxpbmcKCSAgc2V0Y2Fwcy4gQXNzZXJ0IHRoYXQgY2FwcyBpcyBlaXRoZXIgTlVMTCBvciBmaXhlZCwgYXMgcGVyIHRoZQoJICBkb2NzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBVcGRhdGUgZm9yIGZpeGF0ZSBjaGFuZ2VzLgoKMjAwNS0wNy0wMSAxNDozNjoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFB1dCB0aGUgbWluaV9vYmplY3QgaW50byBHVmFsdWUgYXMgYSBtaW5pX29iamVjdCwgbm90IGEgZ3BvaW50ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTAyICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpOgoJICBQdXQgdGhlIG1pbmlfb2JqZWN0IGludG8gR1ZhbHVlIGFzIGEgbWluaV9vYmplY3QsCgkgIG5vdCBhIGdwb2ludGVyLgoKMjAwNS0wNy0wMSAxNDoyMDoxOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOiBGaXggYnVpbGRib3QgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkYm90IGFnYWluLgoKMjAwNS0wNy0wMSAxMzowMTo0NyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IEFkZCBleHRyYSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIEFkZCBleHRyYSBjaGVjay4KCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZGJvdC4KCjIwMDUtMDctMDEgMTI6NDM6MDMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEVuYWJsZSBidWlsZGluZyB0aGUgUFdHIGV4YW1wbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL3B3Zy9leHRyYWN0LnBsOgoJICBFbmFibGUgYnVpbGRpbmcgdGhlIFBXRyBleGFtcGxlcy4KCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgQWRkIFVSSSBpbnRlcmZhY2Ugc3R1Yi4KCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItYXV0b3BsdWdnZXIueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIEFkZCBwb3J0aW5nIGd1aWRlIChtb3N0bHkgc3R1YnMpLCByZW1vdmUgYXV0b3BsdWdnaW5nIChzZWUgQURNKS4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIFVwZGF0ZSB0aGUgYnVpbGRpbmctKi54bWwgcGFydHMgZm9yIDAuOSBjaGFuZ2VzLiBBbGwgZXhhbXBsZXMKCSAgY29kZSBibG9ja3MgY29tcGlsZSBpbiBleGFtcGxlcy9wd2cvKi4KCjIwMDUtMDYtMzAgMTI6MzI6MTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IHBsYXliaW4vZGVjb2RlYmluIGV4YW1wbGVzLCB1cGRhdGUgZG9jcyBhIGJpdCwgbWVudGlvbiBidXMgaW5zdGVhZCBvZiBzaWduYWxzIGluIHZhcmlvdXMgcGxhY2VzLCBtZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgRml4IHBsYXliaW4vZGVjb2RlYmluIGV4YW1wbGVzLCB1cGRhdGUgZG9jcyBhIGJpdCwgbWVudGlvbiBidXMKCSAgaW5zdGVhZCBvZiBzaWduYWxzIGluIHZhcmlvdXMgcGxhY2VzLCBtZW50aW9uIGttcGxheWVyIGFuZAoJICBrYWZmZWluZSBzaW5jZSB0aGV5IGhhdmUgYSB3b3JraW5nIEdTdHJlYW1lciBiYWNrZW5kIGluIHRoZSBLREUKCSAgc2VjdGlvbi4KCjIwMDUtMDYtMzAgMTI6MjY6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZGVidWcgZGlzYWJsZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgZGlzYWJsZSBmaXhlcwoKMjAwNS0wNi0zMCAxMjoxODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIENIQU5HRVMtMC45IGRvYywgdXBkYXRlZCBzdGF0dXMgb2Ygb3RoZXIgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ0hBTkdFUy0wLjk6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICBBZGRlZCBDSEFOR0VTLTAuOSBkb2MsIHVwZGF0ZWQgc3RhdHVzIG9mIG90aGVyIGRvY3MuCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbW92ZSAiaG1tIiBtYWNybwoKMjAwNS0wNi0zMCAxMjoxNDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IFNvbWUgdHdlYWtzLCBvbmx5IEVPUyBhbmQgYSBidWZmZXIgY29tcGxldGUgYSBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFNvbWUgdHdlYWtzLCBvbmx5IEVPUyBhbmQgYSBidWZmZXIgY29tcGxldGUgYSBwcmVyb2xsLgoKMjAwNS0wNi0zMCAxMTozOTozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6IFByb3h5IGFjdGl2YXRlX3B1c2ggZG93biB0byB0aGUgaW50ZXJuYWwgcGFkIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOiBQcm94eQoJICBhY3RpdmF0ZV9wdXNoIGRvd24gdG8gdGhlIGludGVybmFsIHBhZCBhcyB3ZWxsLgoKMjAwNS0wNi0zMCAxMDo1OTozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOiBTb21lIGRvY3VtZW50YXRpb24gZml4ZXMgKCMzMDczOTQgYW5kICMzMDczOTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6ICBSb25hbGQgUy4gQnVsdGplICA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgU29tZSBkb2N1bWVudGF0aW9uIGZpeGVzICgjMzA3Mzk0IGFuZCAjMzA3Mzk3KS4KCjIwMDUtMDYtMzAgMTA6MjM6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTMwIDEwOjIyOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ28gYmFjayB0byB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBnbyBiYWNrIHRvIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBub3cKCjIwMDUtMDYtMzAgMTA6MTA6MDAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggbWVtbGVhayAoIzMwOTEyNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogIFJvbmFsZCBTLiBCdWx0amUgIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW50ZXJzZWN0X2xpc3QpOgoJICBGaXggbWVtbGVhayAoIzMwOTEyNSkuCgoyMDA1LTA2LTMwIDA5OjU5OjI3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IGZha2VzcmMgZXhhbXBsZSB0byBjb21waWxlOyBkb2Vzbid0IHdvcmssIGJ1ZyBzb21ld2hlcmUuLi4/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggZmFrZXNyYyBleGFtcGxlIHRvIGNvbXBpbGU7IGRvZXNuJ3Qgd29yaywgYnVnIHNvbWV3aGVyZS4uLj8KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEFkZCByZWZlcmVuY2UgZm9yIGZpbHRlcmVkIGNhcHMgdG8gYWJvdmUgY2hhcHRlci4KCjIwMDUtMDYtMzAgMDk6NDE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IExhbWUgYXR0ZW1wdCBhdCBtYWtpbmcgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhIGJpdCBtb3JlIHJlYWRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChjbGVhcl9xdWV1ZSksIChyZW1vdmVfYWxsX2Zyb21fcXVldWUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBMYW1lIGF0dGVtcHQgYXQgbWFraW5nIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYSBiaXQKCSAgbW9yZSByZWFkYWJsZS4KCjIwMDUtMDYtMzAgMDk6MzM6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSB0d2Vla3MgYW5kIGFkZGl0aW9ucyB0byB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFNvbWUgbW9yZSB0d2Vla3MgYW5kIGFkZGl0aW9ucyB0byB0aGUgZG9jcy4KCjIwMDUtMDYtMzAgMDk6MjM6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmVkIGF0b21pYyBvcGVyYXRpb25zLCB1c2UgZXhpc3RpbmcgTE9DSy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoZGVmYXVsdF9oYXZlX2RhdGEpLCAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfaW5pdCksCgkgIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9hdG9taWNfaW50X3NldCksIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIFJlbW92ZWQgYXRvbWljIG9wZXJhdGlvbnMsIHVzZSBleGlzdGluZyBMT0NLLgoJICBNb3ZlIGV4Y2VwdGlvbiBoYW5kbGluZyBvdXQgb2YgbWFpbiBjb2RlIHBhdGguCgoyMDA1LTA2LTMwIDA3OjQ1OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZHJvcCBjaXJjdWxhciByZWZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRyb3AgY2lyY3VsYXIgcmVmZXJlbmNlCgoyMDA1LTA2LTI5IDE5OjIwOjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBhY2N1bXVsYXRvciwgYWRkIGRlZmF1bHQgdmFsdWUgYnkgdXNpbmcgX2VtaXR2KCkgaW5zdGVhZCBvZiBfZW1pdCgpIGZvciBzaWduYWwgZW1pc3Npb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKHNpbGx5X3JldHVybl90cnVlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIEZpeCBhY2N1bXVsYXRvciwgYWRkIGRlZmF1bHQgdmFsdWUgYnkgdXNpbmcgX2VtaXR2KCkgaW5zdGVhZAoJICBvZiBfZW1pdCgpIGZvciBzaWduYWwgZW1pc3Npb24uCgoyMDA1LTA2LTI5IDE2OjU3OjU5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBBZGQgcHJvYmUgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBBZGQgcHJvYmUgZXhhbXBsZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvcik6CgkgIE1ha2Ugd29yayAoPz8pLgoKMjAwNS0wNi0yOSAxNjo0NTo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBmaXggZm9yIHBwYywgaG9wZWZ1bGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZm9yIHBwYywgaG9wZWZ1bGx5CgoyMDA1LTA2LTI5IDE2OjExOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNpbXBsaWZ5IGNvZGUgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGhhbmRsZSBzaG9ydCB3cml0ZXMgYW5kIHJldHVybiBHU1RfRkxPV19FUlJPUiBpZiBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVzaW5rX3JlbmRlcik6CgkgIFNpbXBsaWZ5IGNvZGUgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGhhbmRsZSBzaG9ydAoJICB3cml0ZXMgYW5kIHJldHVybiBHU1RfRkxPV19FUlJPUiBpZiBhbiBlcnJvciBvY2N1cmVkLgoKMjAwNS0wNi0yOSAxNjowNToyNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIHByb2JlcyBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZW1vdmUgcHJvYmVzIG1vcmUuCgoyMDA1LTA2LTI5IDE1OjUxOjI1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBSZW1vdmUgb2xkIHByb2JlcywgYWRkIG5ldyBnLXNpZ25hbC1iYXNlZCBwcm9iZXMgYW5kIHNvbWUgdXRpbGl0eSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHByb2JlLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmVtb3ZlIG9sZCBwcm9iZXMsIGFkZCBuZXcgZy1zaWduYWwtYmFzZWQgcHJvYmVzIGFuZCBzb21lIHV0aWxpdHkKCSAgZnVuY3Rpb25zLgoKMjAwNS0wNi0yOSAxNToxNzoyNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IE1vdmVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX1tzaW5rfHNyY11fY2FwcygpIHRvIGdzdHV0aWxzIGFuZCBhZGRlZCB0aGUgZGVmaW5pdGlvbiB0byB0aGUgaGVhZGVyIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNb3ZlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9bc2lua3xzcmNdX2NhcHMoKSB0byBnc3R1dGlscyBhbmQgYWRkZWQKCSAgdGhlIGRlZmluaXRpb24gdG8gdGhlIGhlYWRlciBmaWxlLgoKMjAwNS0wNi0yOSAxNDo1NjowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvTWFrZWZpbGUuYW0gKHNjYW4tYnVpbGQuc3RhbXApOiBUb3RhbGx5IG9ubHkgY2hlY2sgcGx1Z2lucyBmcm9tIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbSAoc2Nhbi1idWlsZC5zdGFtcCk6IFRvdGFsbHkgb25seSBjaGVjawoJICBwbHVnaW5zIGZyb20gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgoyMDA1LTA2LTI5IDE0OjUyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvdG1wbC86IFNvbWUgZml4aW5ncyBmb3IgYmxhbnRlbnRseSB3cm9uZyB0ZXh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSAgU29tZSBmaXhpbmdzIGZvciBibGFudGVudGx5IHdyb25nIHRleHQuCgoyMDA1LTA2LTI5IDEyOjQwOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgbG9naWMgd2FzIHJldmVyc2VkLCBkdWgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZ2ljIHdhcyByZXZlcnNlZCwgZHVoCgoyMDA1LTA2LTI5IDEyOjI1OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBBIEdTVF9QTFVHSU5fUEFUSF9PTkxZIGVudiB2YXI7IGlmIGl0IGlzIHNldCwgaXQgd2lsbCBvbmx5IHNjYW4gdGhlIEdTVF9QTFVHSU5fUEFUSCBsb2NhdGlvbnMsIGFuZCBub3QgYWRkIHN5c3RlbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6IChhZGRfcGF0aF9mdW5jKSwgKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGF0aCk6CgkgIGFkZCBBIEdTVF9QTFVHSU5fUEFUSF9PTkxZIGVudiB2YXI7IGlmIGl0IGlzIHNldCwgaXQgd2lsbAoJICBvbmx5IHNjYW4gdGhlIEdTVF9QTFVHSU5fUEFUSCBsb2NhdGlvbnMsIGFuZCBub3QgYWRkCgkgIHN5c3RlbSBsb2NhdGlvbnMKCjIwMDUtMDYtMjkgMTI6MjM6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgZml4ZXMKCjIwMDUtMDYtMjkgMTI6MDI6MTMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IEZpeCBhdXRvcGx1Z2dpbmcgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgRml4IGF1dG9wbHVnZ2luZyBleGFtcGxlLgoKMjAwNS0wNi0yOSAxMTo0NjoxNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBUcnkgdG8gZ2V0IGF1dG9wbHVnZ2luZyB3b3JraW5nLCBmaXggdHlwZSBkZXRlY3Rpb24uIEZpeCB0ZXh0IGluIGhlbGxvLXdvcmxkIGltYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICBUcnkgdG8gZ2V0IGF1dG9wbHVnZ2luZyB3b3JraW5nLCBmaXggdHlwZSBkZXRlY3Rpb24uIEZpeCB0ZXh0CgkgIGluIGhlbGxvLXdvcmxkIGltYWdlLgoKMjAwNS0wNi0yOSAxMToxMDo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGRlYnVnIGxpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBkZWJ1ZyBsaW5lLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBtYXAgU0lHTkFMIGFuZCBCUk9BRENBU1QgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgUmVtb3ZlIHJlZHVuZGFudCBicmFjZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIERvbid0IGNhbGwgc2V0Y2FwcyBmdW5jdGlvbiB3aGVuIHJlc2V0aW5nIGNhcHMgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZGlzcG9zZSksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF91bnNjaGVkdWxlKToKCSAgVXNlIEJST0FEQ0FTVCBhcyB0aGlzIGlzIHdoYXQgd2UgZG8uCgoyMDA1LTA2LTI5IDEwOjI0OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2UgYXJlIGFjdHVhbGx5IHByZXJvbGxpbmcgYmVmb3JlIGNvbW1pdGluZyB0aGUgc3RhdGUgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgV2UgYXJlIGFjdHVhbGx5IHByZXJvbGxpbmcgYmVmb3JlIGNvbW1pdGluZyB0aGUgc3RhdGUKCSAgY2hhbmdlLgoKMjAwNS0wNi0yOSAwOToyNTo1MSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBVcGRhdGUgKHVudGlsIHRocmVhZHMvc2NoZWR1bGluZykgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOyByZW1vdmUgR3N0VGhyZWFkLCBhZGQgR3N0QnVzLCBhZGQgc2ltLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1zY2hlZHVsZXJzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC5maWc6CgkgIFVwZGF0ZSAodW50aWwgdGhyZWFkcy9zY2hlZHVsaW5nKSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7CgkgIHJlbW92ZSBHc3RUaHJlYWQsIGFkZCBHc3RCdXMsIGFkZCBzaW1wbGUgcG9ydGluZyBjaGVja2xpc3QsIGFkZAoJICBkb2N1bWVudGF0aW9uIGZvciB0YWcgd3JpdGluZywgY2xvY2tzLCBtYWtlIGFsbCBleGFtcGxlcyB1bnRpbCB0aGlzCgkgIHBhcnQgY29tcGlsZSBhbmQgcnVuLgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgVXBkYXRlIGZyb20gY2hhbmdlcyB0byBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7IGFkZCBidXMKCSAgZXhhbXBsZSwgcmVtb3ZlIHRocmVhZCBleGFtcGxlLgoKMjAwNS0wNi0yOCAxOTo0NToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogQWRkIGRlYnVnZ2luZyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKSwKCSAgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9idXNfcG9wKSwgKGdzdF9idXNfcGVlayksCgkgIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCk6CgkgIEFkZCBkZWJ1Z2dpbmcgbWVzc2FnZXMuCgkgIE1ha2UgaW50ZXJuYWwgbWV0aG9kcyBzdGF0aWMuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgYnVzIGlzIGZsdXNoZWQgaW4gdGhlIGhhbmRsZXIuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICBGaXggcmVmY291bnQgaW4gX2dldF9idXMoKTsKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9jbG9ja19mdW5jKToKCSAgQ2xvY2sgcmVmY291bnRpbmcgZml4ZXMuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBwcmVyb2xsIHRpbWVkIG91dCBtb3JlIGdyYWNlZnVsbHkuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2Rpc3Bvc2UpOgoJICBDbGVhbiB1cCB0aGUgaW50ZXJuYWwgdGhyZWFkIGluIGRpc3Bvc2UuIFRoaXMgaXMgbmVlZGVkCgkgIGZvciBzdWJjbGFzc2VzIHRoYXQgYWN0dWFsbHkgZ2V0IGRpc3Bvc2VkLgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfY2xhc3NfaW5pdCksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Rpc3Bvc2UpOgoJICBGcmVlIHRocmVhZCBwb29sIGluIGRpc3Bvc2UuCgoyMDA1LTA2LTI4IDE2OjU3OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVidWcsIHByaW50LWV2ZW50KTogTmV3IHV0aWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVidWcsIHByaW50LWV2ZW50KTogTmV3IHV0aWxzLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqZGVidWcqLCAqd2l0aC1ncmFwaCopOiBOZXcgcGFyYW1ldGVycy4KCSAgKCpwYWNrZXQtbG9zcyopOiBVbmlmaWVkIGxvc3MgcHJvYmFiaWxpdHkuCgkgIChuZXR3b3JrLXRpbWUpOiBSZXBvcnQgb3V0LW9mLWJhbmQgZXZlbnRzLgoJICAqIHRlc3RzL3Bsb3QtZGF0YTogQWRkIHN1cHBvcnQgZm9yIG91dC1vZi1iYW5kIGV2ZW50cy4gSGFjayBpdAoJICBpbnRvIHRoaXMgc2NyaXB0IGluc3RlYWQgb2YgcGFzc2luZyBpdCBkb3duIHRoZSBwaXBlOyBzaG91bGQgZml4CgkgIHRoaXMgbGF0ZXIuCgoyMDA1LTA2LTI4IDE1OjM2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvOiBEb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgRG9jcyBmaXhlcy4KCjIwMDUtMDYtMjggMTM6NDA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQ29ycmVjdGx5IHByb3h5IHRoZSBjaGVja19wdWxsX3JhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpOgoJICBDb3JyZWN0bHkgcHJveHkgdGhlIGNoZWNrX3B1bGxfcmFuZ2UgZnVuY3Rpb24uCgoyMDA1LTA2LTI4IDEyOjQ1OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmaXggZmFrZSBlbGVtZW50cyB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmYWtlIGVsZW1lbnRzIHRvbwoKMjAwNS0wNi0yOCAxMjowMTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZGlkIHMvYmFzZXMocmMvaW5rKV8vYmFzZV9zKHJjL2luaylfLzsgd2ltIHdhbnRzIHRvIHJlbW92ZSBiYXNlIGNvbXBsZXRlbHksIGJ1dCB0aGF0J3MgZm9yIGxhdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaWQgcy9iYXNlcyhyYy9pbmspXy9iYXNlX3MocmMvaW5rKV8vOyB3aW0gd2FudHMgdG8gcmVtb3ZlIGJhc2UgY29tcGxldGVseSwgYnV0IHRoYXQncyBmb3IgbGF0ZXIKCjIwMDUtMDYtMjggMTE6NDg6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBSZW1vdmVkIG5lZWQgZm9yIHNsaWIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBSZW1vdmVkIG5lZWQgZm9yIHNsaWIuCgoyMDA1LTA2LTI4IDExOjM2OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVGhlIGRlcHJlY2F0ZWQgcGFkIGxvb3AgZnVuY3Rpb24gaXMgcmVtb3ZlZCBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfc2V0X3BhZF9mdW5jdGlvbnMpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV91cGRhdGVfcGFkX2Z1bmN0aW9ucyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCk6CgkgIFRoZSBkZXByZWNhdGVkIHBhZCBsb29wIGZ1bmN0aW9uIGlzIHJlbW92ZWQgbm93LgoKMjAwNS0wNi0yOCAxMTozMzoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp0aW1lb3V0KiwgKnNlbmQtbG9zcyosICpyZWN2LWxvc3MqKTogTmV3IHBhcmFtZXRlcnMsIHNpbXVsYXRlIG5ldHdvcmsgcGFja2V0IGxvc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqdGltZW91dCosICpzZW5kLWxvc3MqLCAqcmVjdi1sb3NzKik6CgkgIE5ldyBwYXJhbWV0ZXJzLCBzaW11bGF0ZSBuZXR3b3JrIHBhY2tldCBsb3NzLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOiBJbml0aWFsaXplIHRoZSBSTkcuCgoyMDA1LTA2LTI4IDExOjAyOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRmx1c2hpbmcgdGhlIHByZXJvbGwgcXVldWUgYWx3YXlzIG5lZWRzIHRvIHVubG9jayB0aGUgd2FpdGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfZGVhY3RpdmF0ZSk6CgkgIEZsdXNoaW5nIHRoZSBwcmVyb2xsIHF1ZXVlIGFsd2F5cyBuZWVkcyB0byB1bmxvY2sgdGhlIHdhaXRlcnMuCgoyMDA1LTA2LTI4IDEwOjQ1OjQ4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFdoZWVuIGEgc2VlayB3YXMgc3VjY2Vzc2Z1bCBvbiBhIHBpcGVsaW5lLCBzZXQgdGhlIHN0cmVhbV90aW1lIHRvIHRoZSBzZWVrIG9mZnNldCBpbiBvcmRlciB0byBoYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBXaGVlbiBhIHNlZWsgd2FzIHN1Y2Nlc3NmdWwgb24gYSBwaXBlbGluZSwgc2V0IHRoZSBzdHJlYW1fdGltZSB0byB0aGUKCSAgc2VlayBvZmZzZXQgaW4gb3JkZXIgdG8gaGF2ZSBhIHN5bmNocm9uaXplZCBzdHJlYW1fdGltZS4KCjIwMDUtMDYtMjggMTA6Mzc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQ2FsbCB3cmFwcGVyIGZ1bmN0aW9uIGluc3RlYWQgb2YganVzdCBjYWxsaW5nIHRoZSBmdW5jdGlvbiBwb2ludGVycy4gVGhpcyB0YWtlcyBjYXJlIG9mIGFueSBsb2NraW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKToKCSAgQ2FsbCB3cmFwcGVyIGZ1bmN0aW9uIGluc3RlYWQgb2YganVzdCBjYWxsaW5nIHRoZSBmdW5jdGlvbgoJICBwb2ludGVycy4gVGhpcyB0YWtlcyBjYXJlIG9mIGFueSBsb2NraW5nIGFuZCB3aGF0bW9yZS4KCjIwMDUtMDYtMjggMTA6Mjg6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IENPTk5FQ1RFRCAtPiBMSU5LRUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ09OTkVDVEVEIC0+IExJTktFRC4KCjIwMDUtMDYtMjggMDk6NTk6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgICouYzogRG9uJ3QgY2FzdCB0byBHU1RfT0JKRUNUIHdoZW4gcmVmZmluZyBvciB1bnJlZmZpbmcuIExhcmdlIHNvdXJjZS1tdW5naW5nIGNvbW1pdCEhIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiAqLmM6IERvbid0IGNhc3QgdG8gR1NUX09CSkVDVCB3aGVuIHJlZmZpbmcgb3IgdW5yZWZmaW5nLiBMYXJnZQoJICBzb3VyY2UtbXVuZ2luZyBjb21taXQhISEKCjIwMDUtMDYtMjggMDk6MTc6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF91bnJlZiwgZ3N0X29iamVjdF9yZWYpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF91bnJlZiwgZ3N0X29iamVjdF9yZWYpCgkgIChnc3Rfb2JqZWN0X3NpbmspOiBUYWtlIGdwb2ludGVyIGFyZ3VtZW50cywgbm90IEdzdE9iamVjdCAtLQoJICBhdm9pZHMgY2FzdHMuIExpa2UgR0xpYi4KCjIwMDUtMDYtMjggMDg6NDE6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKTogRG9uJ3QgcHJveHkgYWN0aXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKTogRG9uJ3QgcHJveHkKCSAgYWN0aXZhdGUuCgoyMDA1LTA2LTI3IDE4OjM5OjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNodXQgdXAgZ2NjMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2h1dCB1cCBnY2MzCgoyMDA1LTA2LTI3IDE4OjM1OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jIChnc3RfdHlwZV9maW5kX2hlbHBlcik6IFVucmVmIGFueSByZW1haW5pbmcgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jIChnc3RfdHlwZV9maW5kX2hlbHBlcik6IFVucmVmIGFueQoJICByZW1haW5pbmcgYnVmZmVyLgoJICAqIGdzdC9nc3R0cmFjZS5jIChnc3RfYWxsb2NfdHJhY2VfbGlzdF9zb3J0ZWQpOiBOZXcgaGVscGVyLAoJICByZXR1cm5zIGEgc29ydGVkIGNvcHkgb2YgdGhlIHRyYWNlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnRfbGl2ZSk6IE5ldyBBUEksIG9ubHkgcHJpbnRzIHRyYWNlcyB3aXRoCgkgIGxpdmUgb2JqZWN0cy4gU29ydCB0aGUgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludF9hbGwpOiBTb3J0IHRoZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50KTogQWxpZ24gY29sdW1ucy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IEFkYXB0IGZvciBwYWQgYWN0aXZhdGlvbiBjaGFuZ2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IFVucmVmIGFmdGVyIHBhcmVudGluZwoJICBzY2hlZC4KCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKTogRHJvcCByZWYgb24gc2NoZWQuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2luaXQpOiBTZXQgdGhlIGRlZmF1bHQgYWN0aXZhdGUgZnVuYy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfZGVmYXVsdCk6IFB1c2ggbW9kZSBieSBkZWZhdWx0LgoJICAocHJlX2FjdGl2YXRlX3N3aXRjaCwgcG9zdF9hY3RpdmF0ZV9zd2l0Y2gpOiBOZXcgc3R1YnMsIHRoaW5ncyB0bwoJICBkbyBiZWZvcmUgYW5kIGFmdGVyIHN3aXRjaGluZyBhY3RpdmF0aW9uIG1vZGVzIG9uIHBhZHMuCgkgIChnc3RfcGFkX3NldF9hY3RpdmUpOiBUYWtlIGEgYm9vbGVhbiBhbmQgbm90IGEgbW9kZSwgZGlzcGF0Y2ggdG8KCSAgdGhlIHBhZCdzIGFjdGl2YXRlIGZ1bmN0aW9uIHRvIGNob29zZSB3aGljaCBtb2RlIHRvIGFjdGl2YXRlLgoJICBTaG9ydGN1dCBvbiBkZWFjdGl2YXRpb24gYW5kIGNhbGwgdGhlIHJpZ2h0IGZ1bmN0aW9uIGRpcmVjdGx5LgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogTmV3IEFQSSwgKGRlKWFjdGl2YXRlcyBhIHBhZCBpbiBwdWxsCgkgIG1vZGUuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBOZXcgQVBJLCBzYW1lIGZvciBwdXNoIG1vZGUuCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZV9mdW5jdGlvbikKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVsbF9mdW5jdGlvbikKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVzaF9mdW5jdGlvbik6IFNldHRlcnMgZm9yIG5ldyBBUEkuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X21pbmlfb2JqZWN0X25ldywgZ3N0X21pbmlfb2JqZWN0X2ZyZWUpOgoJICBUcmFjZSBhbGwgbWluaW9iamVjdHMuCgkgIChnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSk6IFVucmVmIHRoZSBhcmcgaWYgd2UgY29weSwgbGlrZQoJICBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKTogTm8gdHJhY2UgaW5pdC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSkKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdWxsLCBnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVzaCk6CgkgIEFkYXB0IGZvciBuZXcgcGFkIEFQSS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoX2dzdF9ldmVudF9pbml0aWFsaXplKTogRG9uJ3QgaW5pdGlhbGl6ZSB0cmFjZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMpCgkgIChnc3RfZWxlbWVudF9pdGVyYXRlX3NpbmtfcGFkcyk6IE5ldyBBUEkgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGl0ZXJhdG9yX2ZvbGRfd2l0aF9yZXN5bmMpOiBOZXcgdXRpbGl0eSwKCSAgc2hvdWxkIGZvbGQgaW50byBnc3RpdGVyYXRvci5jIGluIHNvbWUgZm9ybS4KCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOiBTaW1wbGlmaWVkIHZpYSB1c2Ugb2YgZm9sZCBhbmQKCSAgZGVsZWdhdGlvbiBvZiBkZWNpc2lvbnMgdG8gZ3N0cGFkLT5hY3RpdmF0ZS4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKTogU2V0IHRoZSBidXMgdG8gTlVMTCwKCSAgaGVscCBpbiBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKTogUmVmIHRoZSBidWZmZXIgdHlwZQoJICBjbGFzcyBvbmNlIGluIGluaXQsIGxpa2UgZ3N0bWVzc2FnZS4gRGlkbid0IHJ1biBpbnRvIHRoaXMgaXNzdWUKCSAgYnV0IGl0IHNlZW1zIGNvcnJlY3QuIERvbid0IGluaXRpYWxpemUgYSB0cmFjZSwgZ3N0bWluaW9iamVjdCBkb2VzCgkgIHRoYXQuCgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF9zdG9wX2Zyb21fYXBwKTogTmV3CgkgIHRlc3QsIHJ1bnMgZmFrZXNyYyAhIGZha2VzaW5rLCBzdG9wcGluZyBvbiA6OmhhbmRvZmYgdmlhIGEgbWVzc2FnZQoJICB0byB0aGUgYnVzLgoJICAoYXNzZXJ0X2xpdmVfY291bnQpOiBOZXcgdXRpbCBmdW5jdGlvbiwgdXNlcyBhbGxvYyB0cmFjZXMgdG8gY2hlY2sKCSAgY2xlYW51cC4KCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogTW9yZSByZWZjb3VudCBjaGVja3MuCgkgIFRvIGJlIG1vZGlmaWVkIHdoZW4gdW5saW5rIGRyb3BzIHRoZSBpbnRlcm5hbCBwYWQuCgoyMDA1LTA2LTI3IDE4OjExOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDbGVhbnVwIHRoZSBnZXRfc3RhdGUoKSBmdW5jdGlvbiBhIGxpdHRsZSwgbWFrZSBzdXJlIGl0IGl0ZXJhdGVzIHRoZSBzYW1lIHNldCBvZiBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfc3RhdGUpLCAoZ3N0X2Jpbl9pdGVyYXRlX3N0YXRlX29yZGVyKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW51cCB0aGUgZ2V0X3N0YXRlKCkgZnVuY3Rpb24gYSBsaXR0bGUsIG1ha2Ugc3VyZSBpdAoJICBpdGVyYXRlcyB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMuCgkgIEFkZGVkIHN0dWIgaXRlcmF0ZV9zdGF0ZV9vcmRlcigpLgoKMjAwNS0wNi0yNyAxNDo0MDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBhZGRpbmcgYmFzZXRyYW5zZm9ybSBhbmQgaXRlcmF0b3IgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIGJhc2V0cmFuc2Zvcm0gYW5kIGl0ZXJhdG9yIGRvY3MKCjIwMDUtMDYtMjcgMTM6MjU6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6IE5vdGVzIG9uIGhvdyBhY3RpdmF0aW9uIHNob3VsZCB3b3JrIC0tIG5vdCBxdWl0ZSBpbXBsZW1lbnRlZCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6IE5vdGVzIG9uIGhvdyBhY3RpdmF0aW9uIHNob3VsZAoJICB3b3JrIC0tIG5vdCBxdWl0ZSBpbXBsZW1lbnRlZCB5ZXQuCgoyMDA1LTA2LTI3IDA4OjU0OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJICByZW1vdmUgc3R1ZmYgdGhhdCBpc24ndCB0aGVyZSBhbnltb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3R1ZmYgdGhhdCBpc24ndCB0aGVyZSBhbnltb3JlCgoyMDA1LTA2LTI3IDA4OjE2OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgbW9yZSBkb2MgYW5kIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZG9jIGFuZCB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTA2LTI1IDE5OjUzOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEF0IGxlYXN0IGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gY29ycmVjdCwgbmVlZHMgbW9yZSBmaXhpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbik6CgkgIEF0IGxlYXN0IGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gY29ycmVjdCwgbmVlZHMgbW9yZQoJICBmaXhpbmcuCgoyMDA1LTA2LTI1IDE5OjM3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmlnaHQsIHR3byBwcm9ibGVtcyBoZXJlOiBnaG9zdHBhZHMgZG9uJ3QgdGFrZSBsb2NrcyBhbmQgZ2xpYiBfcmVjX211dGV4X2xvY2tfZnVsbCgpIHdpdGggZGVwdGg9PTAgc3RpbGwgbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBSaWdodCwgdHdvIHByb2JsZW1zIGhlcmU6IGdob3N0cGFkcyBkb24ndCB0YWtlIGxvY2tzIGFuZAoJICBnbGliIF9yZWNfbXV0ZXhfbG9ja19mdWxsKCkgd2l0aCBkZXB0aD09MCBzdGlsbCBsb2Nrcy4KCSAgQ2F0Y2ggaWxsZWdhbCBsb2NraW5nIGFuZCBnX3dhcm4gdGhlbS4KCjIwMDUtMDYtMjUgMTk6MTQ6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogSGF2ZSB0byBjaGVjayBmb3IgY29tcGxldGlvbiBub3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICBIYXZlIHRvIGNoZWNrIGZvciBjb21wbGV0aW9uIG5vdy4uLgoKMjAwNS0wNi0yNSAxOTowOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVubG9jayBTVFJFQU1fTE9DSyB3aGF0ZXZlciB0aGUgcmVjdXJzaW9uIHdhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlc2lua19ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgVW5sb2NrIFNUUkVBTV9MT0NLIHdoYXRldmVyIHRoZSByZWN1cnNpb24gd2FzLgoKMjAwNS0wNi0yNSAxNzo1NDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJld29ya2VkIHRoZSBiYXNlIHNpbmssIGhhbmRsZSBldmVudCBhbmQgYnVmZmVyIHNlcmlhbGlzYXRpb24gY29ycmVjdGx5IGFuZCByZW1vdmVkIHBvc3NpYmxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW4pLCAoZ3N0X2Jhc2VzaW5rX2xvb3ApLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZXdvcmtlZCB0aGUgYmFzZSBzaW5rLCBoYW5kbGUgZXZlbnQgYW5kIGJ1ZmZlciBzZXJpYWxpc2F0aW9uCgkgIGNvcnJlY3RseSBhbmQgcmVtb3ZlZCBwb3NzaWJsZSBkZWFkbG9jay4KCSAgSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgoyMDA1LTA2LTI1IDE3OjUxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWxsb3cgZWxlbWVudHMgdG8gcG9zdCBFT1MgaW4gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChpc19lb3MpLCAocGlwZWxpbmVfYnVzX2hhbmRsZXIpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKSwgKG1haW4pOgoJICBBbGxvdyBlbGVtZW50cyB0byBwb3N0IEVPUyBpbiB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoJICBGaXggdXAgLWxhdW5jaCwgbWFrZSBpdCBleGl0IHRoZSBwb2xsIGxvb3Agd2hlbiB0aGUKCSAgcGlwZWxpbmUgYWN0dWFsbHkgY2hhbmdlZCBzdGF0ZS4KCSAgRml4IHVwIHdhcm5pbmcgcGFyc2luZyBpbiAtbGF1bmNoLgoKMjAwNS0wNi0yNSAxNzo0NDozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogQ29yZSB0YWtlcyBTVFJFQU1fTE9DSyBmb3IgdXMgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NoYWluKSwgKGdzdF90ZWVfbG9vcCksCgkgIChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICBDb3JlIHRha2VzIFNUUkVBTV9MT0NLIGZvciB1cyBub3cuCgoyMDA1LTA2LTI1IDE3OjQyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogS2VlcCB0cmFjayBvZiBjdXJyZW50IHRhcmdldCBzdGF0ZSB3aGlsZSBwZXJmb3JtaW5nIGEgc3RhdGUgY2hhbmdlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZG8gc29tZXRoaW5nIGludGVyZXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcpOgoJICBLZWVwIHRyYWNrIG9mIGN1cnJlbnQgdGFyZ2V0IHN0YXRlIHdoaWxlIHBlcmZvcm1pbmcgYSBzdGF0ZQoJICBjaGFuZ2Ugc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBkbyBzb21ldGhpbmcgaW50ZXJlc3RpbmcuCgkgIEZpeCBwYXJzaW5nIG9mIHdhcm5pbmcvZXJyb3IgbWVzc2FnZXMgd2hlbiBHRXJyb3IgaXMgTlVMTC4KCjIwMDUtMDYtMjQgMTg6MTY6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBzdGFydCBwdWxsaW5nIGluIGJhc2UgY2xhc3NlcyBhbmQgZWxlbWVudHMgZm9yIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN0YXJ0IHB1bGxpbmcgaW4gYmFzZSBjbGFzc2VzIGFuZCBlbGVtZW50cyBmb3IgZG9jcwoKMjAwNS0wNi0yNCAwNzo0OTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBmaXhlZCBtYWtlIGRpc3RjaGVjayB3aXRoIGd0ay1kb2MgMS4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCBtYWtlIGRpc3RjaGVjayB3aXRoIGd0ay1kb2MgMS4zCgoyMDA1LTA2LTIzIDE3OjExOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogV2hlbiB0aGUgc3RhdGUgZGlkIG5vdCBjaGFuZ2UsIGFsc28gcmVwb3J0IE5PX1BSRVJPTEwgd2hlbiBpdCBtYXR0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFdoZW4gdGhlIHN0YXRlIGRpZCBub3QgY2hhbmdlLCBhbHNvIHJlcG9ydCBOT19QUkVST0xMCgkgIHdoZW4gaXQgbWF0dGVycy4KCjIwMDUtMDYtMjMgMTc6MDk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBObyB1bnNhZmUgdGFzayBwYXVzaW5nIHBsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgTm8gdW5zYWZlIHRhc2sgcGF1c2luZyBwbGVhc2UuCgoyMDA1LTA2LTIzIDE3OjA3OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IFJlZiB0aGUgdGFzayBiZWZvcmUgcHVzaGluZyBpdCBvbiB0aGUgdGhyZWFkcG9vbC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgaGF2ZSBhIHJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19zdGFydCksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3BhdXNlKSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpOgoJICBSZWYgdGhlIHRhc2sgYmVmb3JlIHB1c2hpbmcgaXQgb24gdGhlIHRocmVhZHBvb2wuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHdlIGhhdmUgYSByZWYgd2hlbiB0aGUgdGhyZWFkZnVuY3Rpb24gaXMKCSAgYWN0dWFsbHkgY2FsbGVkLgoKMjAwNS0wNi0yMyAxNToyNjowOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpOiBDaGVjayBpZiB0aGUgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZmlsZSdzIHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKTogQ2hlY2sgaWYgdGhlCgkgIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpbGUncyBzaXplLgoKMjAwNS0wNi0yMyAxNTowNDo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oIChHU1RfQ0xBU1NfTE9DSywgR1NUX0NMQVNTX1RSWUxPQ0spIChHU1RfQ0xBU1NfVU5MT0NLLCBHU1RfQ0xBU1NfR0VUX0xPQ0ssIEdzdE9iamVjdENsYXNzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9DTEFTU19MT0NLLCBHU1RfQ0xBU1NfVFJZTE9DSykKCSAgKEdTVF9DTEFTU19VTkxPQ0ssIEdTVF9DTEFTU19HRVRfTE9DSywgR3N0T2JqZWN0Q2xhc3MpCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOiBNYWtlIHRoZSBjbGFzcyBsb2NrCgkgIHJlY3Vyc2l2ZS4gV2ltIHdvbid0IGxldCBtZSBkcm9wIGRlZXBfbm90aWZ5LiBEZWNvZGViaW4gd29ya3MKCSAgYWdhaW4sIHdob29wZHkgZG9vLgoKMjAwNS0wNi0yMyAxNDoxODoxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKG9uX2ludF9ub3RpZnkpOiBDYXRjaGVzIG5vdGlmeTo6Y2FwcyBvbiB0aGUgaW50ZXJuYWwgcGFkLCBhbmQgaGFja3MgYWNjb3JkaW5nbHkuIERvZXNuJ3QgZG8gaXQgb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChvbl9pbnRfbm90aWZ5KTogQ2F0Y2hlcyBub3RpZnk6OmNhcHMgb24gdGhlCgkgIGludGVybmFsIHBhZCwgYW5kIGhhY2tzIGFjY29yZGluZ2x5LiBEb2Vzbid0IGRvIGl0IG9uIHRoZSB0YXJnZXQKCSAgcGFkIGJlY2F1c2Ugd2UgY2hhbmdlIGl0cyBjYXBzLiBQcm9iYWJseSBjYXRjaGVzIGFsbCBjYXNlcyBvZgoJICBpbnRlcmVzdCB0aG8uCgkgIChnc3RfZ2hvc3RfcGFkX3NldF9wcm9wZXJ0eSk6IENvbm5lY3QgdG8gbm90aWZ5OjpjYXBzIGFzCgkgIGFwcHJvcHJpdGF0ZS4KCjIwMDUtMDYtMjMgMTM6MjA6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChwbG90LXNpbXVsYXRpb24pOiBQaXBlIGRhdGEgdG8gdGhlIGVsaXRlIHB5dGhvbiBza3JpcHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChwbG90LXNpbXVsYXRpb24pOiBQaXBlIGRhdGEgdG8gdGhlCgkgIGVsaXRlIHB5dGhvbiBza3JpcHQuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlZmluZS1wYXJhbWV0ZXIpOiBOZXcgbWFjcm8sCgkgIGRlZmluZXMgYSBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgc2V0IHZpYSB0aGUgY29tbWFuZCBsaW5lLgoJICAoc2V0LXBhcmFtZXRlciEsIHBhcnNlLXBhcmFtZXRlci1hcmd1bWVudHMpOiBDb21tYW5kIGxpbmUgYXJncwoJICBwYXJzZXIuCgkgICogdGVzdHMvcGxvdC1kYXRhOiBTaW1wbGUgbWF0cGxvdGxpYi1iYXNlZCBwbG90dGVyLCB0YWtlcyBpbnB1dCBvbgoJICBzdGRpbi4KCjIwMDUtMDYtMjMgMTM6MjA6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgYWRkIG1vcmUgaW1wb3J0YW50IGRvY3VtZW50YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGltcG9ydGFudCBkb2N1bWVudGF0aW9uCgoyMDA1LTA2LTIzIDExOjQzOjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRG9uJ3QgcmVzdGFydCB0eXBlZmluZGluZyBvbiBhIGRpc2NvbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIERvbid0IHJlc3RhcnQgdHlwZWZpbmRpbmcgb24gYSBkaXNjb250LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBEZWJ1ZyBzcGVsbGluZyBmaXguCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIEFsbG93IGNoYW5naW5nIG1vZGUgb2YgYW4gYWN0aXZlIHBhZC4KCSAgRGVidWcgb3V0cHV0IGZpeGVzLgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChsb2FkX2ZlYXR1cmUpOgoJICBEb24ndCBjYXN0IGEgc3RhdGljIHBhZCB0ZW1wbGF0ZSB0byBhIG5vcm1hbCBwYWQgdGVtcGxhdGUuCgoyMDA1LTA2LTIzIDExOjI1OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbW92ZSBnc3Rfc3RydG9sbCBjb21wbGV0ZWx5LCBzaW5jZSBpdCBkaWRuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgbW9yZSB0aGFuIHdoYXQgZ19hc2NpaV9zdHJ0b3VsbCBhbHJlYWR5IGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpOgoJICByZW1vdmUgZ3N0X3N0cnRvbGwgY29tcGxldGVseSwgc2luY2UgaXQgZGlkbid0IGFjdHVhbGx5IGRvCgkgIGFueXRoaW5nIG1vcmUgdGhhbiB3aGF0IGdfYXNjaWlfc3RydG91bGwgYWxyZWFkeSBkb2VzLgoJICBjaGVjayBmb3IgcmFuZ2UgZXJyb3JzIHdoZW4gZGVzZXJpYWxpemluZwoJICBkbyBhIGNhc3QgZm9yIHRoZSB1bnNpZ25lZCBjYXNlczsgYnV0IGZ1cnRoZXIgZml4aW5nIG5lZWRzCgkgIGEgZGVjaXNpb24gb24gd2hhdCB0aGUgaW50ZXJwcmV0YXRpb24gb2YgIihpbnQpIiBhbmQKCSAgZGVzZXJpYWxpemF0aW9uIHNob3VsZCBiZSBmb3IgdmFsdWVzIHRoYXQgZmFsbCBvdXRzaWRlIHRoZQoJICB0eXBlJ3MgYm91bmRhcmllcyAoaWUsIHJlZnVzZSwgb3IgaW50ZXJwcmV0IGFzIGNhc3RpbmcpCgoyMDA1LTA2LTIzIDEwOjM3OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZGVkIHN1cHBvcnQgZm9yIGxpdmUgc291cmNlcyBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdCBjYW5ub3QgZG8gcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHN1cHBvcnQgZm9yIGxpdmUgc291cmNlcyBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdAoJICBjYW5ub3QgZG8gcHJlcm9sbC4KCSAgVXBkYXRlZCBkZXNpZ24gZG9jcywgYWRkZWQgbGl2ZS1zb3VyY2UgZGVzaWduIGRvYy4KCSAgSW1wbGVtZW50ZWQgbGl2ZSBzb3VyY2UgZnVuY3Rpb25hbGl0eSBpbiBiYXNlc3JjCgkgIEZpeCBlcnJvciBjb25kaXRpb24gaW4gX2Jpbl9nZXRfc3RhdGUoKQoJICBJbXBsZW1lbnQgbGl2ZSBzb3VyY2UgaGFuZGxpbmcgaW4gLWxhdW5jaC4KCSAgQWRkZWQgY2hlY2sgZm9yIGxpdmUgc291cmNlcy4KCSAgRml4ZWQgY2FzZSBpbiBHc3RCaW4gd2hlcmUgZWxlbWVudHMgd2VyZSBjaGFuZ2VkIHN0YXRlCgkgIG11bHRpcGxlIHRpbWVzLgoKMjAwNS0wNi0yMyAwOTo1OTozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMsIHRlc3RfcmVmY291bnQpOiBGaXggYm9ya2VuIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmMgKHRlc3RfZ2V0X2FsbG93ZWRfY2FwcywgdGVzdF9yZWZjb3VudCk6IEZpeAoJICBib3JrZW4gcmVmY291bnRpbmcuCgoyMDA1LTA2LTIzIDA5OjQxOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNvbW1pdCB0aGUgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IHRoZSBmaWxlCgoyMDA1LTA2LTIzIDA5OjQxOjA5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2NhcHMpOiBSZW1vdmUgbmVlZGxlc3MgcmVmcywgZ3N0X2NhcHNfcmVwbGFjZSB0YWtlcyBjYXJlIG9mIHRoaXMgZm9yIHVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2NhcHMpOiBSZW1vdmUgbmVlZGxlc3MgcmVmcywKCSAgZ3N0X2NhcHNfcmVwbGFjZSB0YWtlcyBjYXJlIG9mIHRoaXMgZm9yIHVzLgoKMjAwNS0wNi0yMyAwOToyODoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2Fwcyk6IENhbGwgdGhlIGZ1bGwgZ3N0X3BhZF9zZXRfY2FwcyBvbiB0aGUgdGFyZ2V0LCBub3QganVzdCBpdHMgc2V0Y2FwcygpIGZ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpOiBDYWxsIHRoZSBmdWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMgb24gdGhlIHRhcmdldCwgbm90IGp1c3QgaXRzIHNldGNhcHMoKSBmdW5jdGlvbi4KCjIwMDUtMDYtMjMgMDA6Mzk6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogQSBuZXR3b3JrIGNsb2NrIHNpbXVsYXRvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206IEEgbmV0d29yayBjbG9jayBzaW11bGF0b3IuCgkgIFNvbWV0aGluZyBvZiBhbiBhbGdvcml0aG1pYyB0ZXN0YmVkIGJlZm9yZSBkb2luZyBzb21ldGhpbmcgaW4gQy4KCjIwMDUtMDYtMjIgMTk6NTc6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtYWtlIHN1cmUgY2Fwc2xpc3QuaCBnZXRzIGRpc3RlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBzdXJlIGNhcHNsaXN0LmggZ2V0cyBkaXN0ZWQKCjIwMDUtMDYtMjIgMTk6NDg6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZmlsZSBmcm9tc3RyaW5nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGZyb21zdHJpbmcuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDYtMjIgMTk6MjI6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBjb3B5IG92ZXIgZnJvbSAwLjgsIGFuZCBhZGQgdHdvIHdpdGggYml0bWFza3Mgc3BlY2lmaWVkIHdpdGggKGludCkgMHhGRi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgY29weSBvdmVyIGZyb20gMC44LCBhbmQgYWRkIHR3byB3aXRoIGJpdG1hc2tzIHNwZWNpZmllZCB3aXRoCgkgIChpbnQpIDB4RkYuLi4KCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGFkZCB0ZXN0IHRvIHBhcnNlIGV2ZXJ5dGhpbmcgZnJvbSBjYXBzbGlzdC5oCgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpLAoJICAobWFpbik6CgkgIGFkZCB0ZXN0IGZvciBzdHJ1Y3R1cmUgZGVzZXJpYWxpemF0aW9uCgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3IgZGVzZXJpYWxpemF0aW9uIG9mIHN0cmluZ3MgdG8gaW50IHR5cGVzCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9udGhfZmllbGRfbmFtZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBhZGQgYSB3YXkgdG8gZ2V0IHRoZSBuYW1lIG9mIGEgZmllbGQgcmVmZXJlbmNlZCBieSBpbmRleAoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpOgoJICBpbnN0ZWFkIG9mIGNoZWNraW5nIGlmIHRoZSByZXN1bHRpbmcgbG9uZyBsb25nIGxpZXMgYmV0d2VlbgoJICBtaW4gYW5kIG1heCwgd2UgY2hlY2sgaWYgdGhlIGxvbmcgbG9uZyB3b3VsZCBmaXQgaW50bwoJICBhIG51bWJlciBvZiBieXRlcyBmb3IgdGhlIGZpbmFsIHR5cGUuCgkgIFRoaXMgZml4ZXMgY2FzZXMgd2hlcmUgYSBzdHJpbmcgcmVwcmVzZW50cyAyXjMyIC0gMSwgd2hpY2gKCSAgd2hlbiBjYXN0IHRvIGludCB3b3VsZCBiZSB0aGUgKHZhbGlkKSAtMSwgYnV0IGlzIGJpZ2dlciB0aGFuCgkgIEdfTUFYSU5UCgoyMDA1LTA2LTIyIDExOjAyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgYWRkIGEgbG9nIGxpbmUgZm9yIHR5cGUgZGVzZXJpYWxpemF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBsb2cgbGluZSBmb3IgdHlwZSBkZXNlcmlhbGl6YXRpb24KCjIwMDUtMDYtMjIgMTA6NTI6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmV0dXJuIGxvbmcgbG9uZywgbm90IGludCwgc28gZ2ludDY0IGRlc2VyaWFsaXphdGlvbiBhY3R1YWxseSB3b3Jrcy4gIElzIHRoZXJlIGFueSBmbGFnIHRoYXQgbWFrZXMgdGhlIGNvbXBpbGVyIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemUpOgoJICByZXR1cm4gbG9uZyBsb25nLCBub3QgaW50LCBzbyBnaW50NjQgZGVzZXJpYWxpemF0aW9uIGFjdHVhbGx5CgkgIHdvcmtzLiAgSXMgdGhlcmUgYW55IGZsYWcgdGhhdCBtYWtlcyB0aGUgY29tcGlsZXIgY2hlY2sgdGhpcyA/CgkgIEZpeGVzICMzMDg1NTkKCjIwMDUtMDYtMjIgMDk6NTU6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEFkZGVkIGNvbnZlbmllbmNlIG1hY3JvcyBmb3Igc2V0dGluZyBidWZmZXJzIGluIEdWYWx1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGRlZCBjb252ZW5pZW5jZSBtYWNyb3MgZm9yIHNldHRpbmcgYnVmZmVycyBpbiBHVmFsdWUuCgoyMDA1LTA2LTIxIDE3OjQxOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC86IGFkZCBhIHRlc3QgZGVzZXJpYWxpemluZyBpbnQ2NCwgYW5kIGNvbW1lbnQgcGFydCBvdXQgYmVjYXVzZSBpdCBmYWlscywgeWF5ICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZGVzZXJpYWxpemluZyBpbnQ2NCwgYW5kIGNvbW1lbnQgcGFydCBvdXQgYmVjYXVzZQoJICBpdCBmYWlscywgeWF5ICEKCjIwMDUtMDYtMjEgMTY6NTM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgIGNvbW1pdCBhIGZpbGUgSSBmb3Jnb3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCBhIGZpbGUgSSBmb3Jnb3QKCjIwMDUtMDYtMjEgMTY6NDg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvdmFsdWVfc2VyaWFsaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGVzdF9nc3RfaW5pdC5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9zZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL3Rlc3RfZ3N0X2luaXQuYzoKCSAgbW92ZSBvdmVyIGEgdmFsdWVfc2VyaWFsaXplIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgb3ZlciBhIHZhbHVlX3NlcmlhbGl6ZSB0ZXN0CgoyMDA1LTA2LTIwIDE1OjE4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2J1ZmZlciksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZsYWdzKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZsYWdzKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIEZpeCBzZXJpYWxpc2F0aW9uIG9mIGJ1ZmZlcnMsIHRoZXkgYXJlIG5vdCBib3hlZCB0eXBlcyBhbnltb3JlCgoyMDA1LTA2LTIwIDE1OjE0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogVGVzdGNhc2UgdG8gc2hvdyBlcnJvciBpbiBidWZmZXItb24tY2FwcyBzZXJpYWxpc2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIFRlc3RjYXNlIHRvIHNob3cgZXJyb3IgaW4gYnVmZmVyLW9uLWNhcHMgc2VyaWFsaXNhdGlvbi4KCjIwMDUtMDYtMjAgMTU6MTM6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3dpbmdvL3BvcnRpbmctcGx1Z2lucy10by0wLjk6IEEgcGl0aWZ1bCBkb2N1bWVudCBJIHdpbGwgYmUgYWRkaW5nIHRvIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL3JhbmRvbS93aW5nby9wb3J0aW5nLXBsdWdpbnMtdG8tMC45OiBBIHBpdGlmdWwgZG9jdW1lbnQgSQoJICB3aWxsIGJlIGFkZGluZyB0byBsYXRlci4KCjIwMDUtMDYtMjAgMTE6NDE6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jIChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOiBVbmxvY2sgdGhlIGNsb2NrIGlmIGl0cyBzb2NrcyBmaWxsIHdpdGggcm9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jIChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOiBVbmxvY2sgdGhlIGNsb2NrCgkgIGlmIGl0cyBzb2NrcyBmaWxsIHdpdGggcm9ja3MuCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX29idGFpbik6IFNldCB0aGUgbmFtZSBvbiBvYmplY3QgY29uc3RydWN0aW9uLgoJICBBdm9pZCBkb3VibGUtY2hlY2tlZCBsb2NraW5nLgoKMjAwNS0wNi0yMCAxMTozMjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRml4IHBvdGVudGlhbCBlbmRsZXNzIGxvb3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICBGaXggcG90ZW50aWFsIGVuZGxlc3MgbG9vcC4KCjIwMDUtMDYtMjAgMTE6Mjc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvZ2hvc3RwYWRzLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzL2dob3N0cGFkcy5jOgoJICByZW1vdmUgYW5vdGhlciB0ZXN0IHRoYXQncyBvYnNvbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFub3RoZXIgdGVzdCB0aGF0J3Mgb2Jzb2xldGUKCjIwMDUtMDYtMjAgMTE6MjM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svc2lnbmVkbmVzcy5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2xvY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzoKCSogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOgoJKiB0ZXN0c3VpdGUvY2xvY2svc2lnbmVkbmVzcy5jOgoJICByZW1vdmUgY2xvY2sgdGVzdHN1aXRlLCBpbXBvcnRhbnQgc3R1ZmYgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNsb2NrIHRlc3RzdWl0ZSwgaW1wb3J0YW50IHN0dWZmIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCjIwMDUtMDYtMjAgMTE6MTg6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2JpbnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2JpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJICByZW1vdmUgdGVzdCB0aGF0IHdhcyBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVzdCB0aGF0IHdhcyBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgoyMDA1LTA2LTE5IDExOjMyOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgZ3N0dGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgZ3N0dGFnCgkgICogY2hlY2svZ3N0L2dzdHRhZy5jOiAoY2hlY2tfdGFncyksIChTVEFSVF9URVNUKSwgKGdzdF90YWdfc3VpdGUpLAoJICAobWFpbik6CgkgIG1vdmUgb3ZlciBmcm9tIHRlc3RzdWl0ZSBkaXIgYW5kIGNsZWFuIHVwCgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RhZ3MvLmN2c2lnbm9yZToKCSAgKiB0ZXN0c3VpdGUvdGFncy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdGFncy9tZXJnZS5jOgoJICByZW1vdmUgdGVzdHN1aXRlL3RhZ3MKCjIwMDUtMDYtMTkgMTA6NTQ6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBzb21lIG1vcmUgZG9jcyBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIG1vcmUgZG9jcyBjbGVhbnVwCgoyMDA1LTA2LTE5IDEwOjMxOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2J1ZnNwZWVkLy5naXRpZ25vcmU6CgkqIHRlc3RzL2J1ZnNwZWVkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9idWZzcGVlZC9SRUFETUU6CgkqIHRlc3RzL2J1ZnNwZWVkL2dzdG1lbXBvb2wuYzoKCSogdGVzdHMvYnVmc3BlZWQvZ3N0bWVtcG9vbC5oOgoJKiB0ZXN0cy9idWZzcGVlZC90ZXN0MS5jOgoJKiB0ZXN0cy9idWZzcGVlZC90ZXN0Mi5jOgoJKiB0ZXN0cy9zcGlkZXlfYmVuY2guYzoKCSAgcmVtb3ZlIGJ1ZnNwZWVkIGFuZCBzcGlkZXlfYmVuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBidWZzcGVlZCBhbmQgc3BpZGV5X2JlbmNoCgoyMDA1LTA2LTE5IDEwOjIyOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkgIGNsZWFuIHVwIGRvY3MgYSBsaXR0bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIGRvY3MgYSBsaXR0bGUKCjIwMDUtMDYtMTkgMDA6NTI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0Y2hlY2suaDogYWRkIG1hY3JvcyBmb3IgY2hlY2tpbmcgcmVmY291bnRzIG9uIG9iamVjdHMgYW5kIGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIG1hY3JvcyBmb3IgY2hlY2tpbmcgcmVmY291bnRzIG9uIG9iamVjdHMgYW5kIGNhcHMKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBhZGQgc29tZSBtb3JlIHVuaXQgdGVzdHMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKToKCSAgZml4IGxlYWtlZCByZWZjb3VudHMgKEkgaG9wZSA6KSkgc28gdW5pdHRlc3Qgd29ya3MKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIHdoaXRlc3BhY2UgcmVtb3ZhbAoKMjAwNS0wNi0xOCAyMjozMzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCjIwMDUtMDYtMTcgMTI6MDA6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDYtMTcgMTE6NTg6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19jaGFpbik6IFJlbW92ZSBib2d1cyBhc3NlcnQ7IGl0J3MgYWx3YXlzIHBvc3NpYmxlIHRoYXQgdGhlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfY2hhaW4pOiBSZW1vdmUgYm9ndXMKCSAgYXNzZXJ0OyBpdCdzIGFsd2F5cyBwb3NzaWJsZSB0aGF0IHRoZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCBpbgoJICBiZXR3ZWVuIHRoZSBjaGVja3MgaW4gZ3N0cGFkLmMgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbi4gUmVseSBvbgoJICBmaW5pc2hfcHJlcm9sbCgpIHRvIHJldHVybiBhIEZMVVNISU5HIG9yIHNpbWlsYXIgaW5zdGVhZCBvZiBvbiB0aGUKCSAgYXNzZXJ0LgoKMjAwNS0wNi0xNyAxMTozMzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2V2ZW50KTogT25seSB3YWl0IGZvciB0aGUgY2xvY2sgYW5kIHBvc3QgYW4gRU9TIG1lc3NhZ2UgaWYgd2UgY29tZSBvdXQgb2YgZmluaXNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19ldmVudCk6IE9ubHkgd2FpdCBmb3IgdGhlCgkgIGNsb2NrIGFuZCBwb3N0IGFuIEVPUyBtZXNzYWdlIGlmIHdlIGNvbWUgb3V0IG9mIGZpbmlzaF9wcmVyb2xsIGluCgkgIHRoZSBwbGF5aW5nIHN0YXRlLgoKMjAwNS0wNi0xNyAwOTo1ODozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIGluY29ycG9yYXRlIHBsdWdpbnMgc3R1ZmYgYW5kIHVuaW5zdGFsbGVkIHN0dWZmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmNvcnBvcmF0ZSBwbHVnaW5zIHN0dWZmIGFuZCB1bmluc3RhbGxlZCBzdHVmZgoKMjAwNS0wNi0xNyAwOTozMjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMTcgMDk6MTI6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGdzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGdzdC9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvLmdpdGlnbm9yZToKCSogZ3N0L3JlZ2lzdHJpZXMvLmdpdGlnbm9yZToKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdG9vbHMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTE3IDA4OjU5OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIC5naXRpZ25vcmU6CgkqIENoYW5nZUxvZzoKCSogUkVBRE1FOgoJKiBjaGVjay8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmU7IGZpeCBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlOyBmaXggUkVBRE1FCgoyMDA1LTA2LTE2IDE3OjUwOjE2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEFsbG93IE5VTEwgYXMgcG9zc2libGUgdmFsdWUgZm9yIGZpbHRlcl9jYXBzIHByb3BlcnR5LCBpbmRpY2F0aW5nIEdTVF9DQVBTX0FOWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KTogQWxsb3cgTlVMTCBhcyBwb3NzaWJsZSB2YWx1ZQoJICBmb3IgZmlsdGVyX2NhcHMgcHJvcGVydHksIGluZGljYXRpbmcgR1NUX0NBUFNfQU5ZLgoKMjAwNS0wNi0wOSAxMzozMzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBmaXggZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jcmVhdGUpOgoJICBmaXggZGVidWcgb3V0cHV0CgkgICogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkgIHVzZSBsaWJnc3QgcHJlZml4CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCBzcGVjIGZvciBpdAoKMjAwNS0wNi0wOSAxMjoyMzowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3RyZWFtZXIuc3BlYy5pbjogY2xlYW4gdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwCgoyMDA1LTA2LTA5IDEyOjA5OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdHJlYW1lci5zcGVjLmluOiBjbGVhbiB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAKCjIwMDUtMDYtMDkgMTI6MDM6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogVE9ETzoKCSogZG9jcy9yYW5kb20vVE9ETy1wcmUtMC45OgoJICBoYXZlIGEgcmVhbCBUT0RPLCBtb3ZlIG9sZCBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYXZlIGEgcmVhbCBUT0RPLCBtb3ZlIG9sZCBUT0RPCgoyMDA1LTA2LTA5IDEyOjAwOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcG8gdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcG8gdXBkYXRlcwoKMjAwNS0wNi0wOSAxMToxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDUtMDYtMDggMjI6MTY6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBSUEFEIGZpeGVzIGFsbCBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jOiBSUEFEIGZpeGVzIGFsbCBhcm91bmQuCgkgIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBSZWZjb3VudGluZyBmaXhlcy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgICogcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogUlBBRCBmaXhlcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogTmV3IGdob3N0IHBhZCBpbXBsZW1lbnRhdGlvbiBhcyBmdWxsIHByb3h5CgkgIHBhZHMuIFRoZSB0cmlja3kgdGhpbmcgaXMgdGhleSBwcm92aWRlIGJvdGggc291cmNlIGFuZCBzaW5rCgkgIGludGVyZmFjZXMsIHNpbmNlIHRoZXkgcHJveHkgdGhlIGludGVybmFsIHBhZCBmb3IgdGhlIGV4dGVybmFsCgkgIHBhZCwgYW5kIHZpY2UgdmVyc2EuIEltcGxlbWVudCB3aXRoIGxvd2VyLWxldmVsIFByb3h5UGFkIG9iamVjdHMsCgkgIHdpdGggdGhlIGludGVyaW9yIHByb3h5IHBhZCBhcyBhIGNoaWxkIG9mIHRoZSBleHRlcmlvciBnaG9zdCBwYWQuCgkgIFNob3VsZCB3cml0ZSBhIGRvYyBvbiB0aGlzLgoJICAqIGdzdC9nc3RwYWQuaDogcy9SUEFEL1BBRC8sIHMvUmVhbFBhZC9QYWQvLgoJICAoZ3N0X3BhZF9zZXRfbmFtZSwgZ3N0X3BhZF9zZXRfcGFyZW50KTogTWFjcm9zIHJlbW92ZWQsIHVzZQoJICBnc3Rfb2JqZWN0IEFQSS4KCSAgKiBnc3QvZ3N0cGFkLmM6IEJpZyBjaGFuZ2VzLiBObyBtb3JlIHN0dWIgYmFzZSBHc3RQYWQsIG5vdyBhbGwKCSAgcGFkcyBhcmUgcmVhbCBwYWRzLiBObyBnaG9zdCBwYWRzIGluIHRoaXMgZmlsZS4gTm90IGRvY3VtZW50aW5nCgkgIHRoZSBteXJpYWQgcy9SUEFEL1BBRC8gYW5kIFJFQUxJWkUgZml4ZXMuCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpOiBBZGQgcHJvcGVydGllcyBmb3IgImRpcmVjdGlvbiIgYW5kCgkgICJ0ZW1wbGF0ZSIuIEJvdGggYXJlIGNvbnN0cnVjdC1vbmx5LCBzbyB0aGV5IGNhbid0IGNoYW5nZSBkdXJpbmcKCSAgdGhlIGxpZmUgb2YgdGhlIHBhZC4gRml4ZXMgcHJvcGVybHkgZGVyaXZpbmcgZnJvbSBHc3RQYWQuCgkgIChnc3RfcGFkX2N1c3RvbV9uZXcsIGdzdF9wYWRfY3VzdG9tX25ld19mcm9tX3RlbXBsYXRlKTogR29uZS4gRm9yCgkgIGRlcml2ZWQgb2JqZWN0cywganVzdCBzZXQgcHJvcGVydGllcyB3aGVuIGNyZWF0aW5nIHRoZSBvYmplY3RzIHZpYQoJICBnX29iamVjdF9uZXcuCgkgIChnc3RfcGFkX2dldF9wYXJlbnQpOiBJbXBsZW1lbnQgYXMgYSBmdW5jdGlvbiwgcmV0dXJuIE5VTEwgaWYgdGhlCgkgIHBhcmVudCBpcyBub3QgYW4gZWxlbWVudC4KCSAgKGdzdF9wYWRfZ2V0X3JlYWxfcGFyZW50LCBnc3RfcGFkX2FkZF9naG9zdF9wYWQpCgkgIChnc3RfcGFkX3JlbW92ZV9naG9zdF9wYWQsIGdzdF9wYWRfcmVhbGl6ZSk6IFJlbW92ZWQuCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOiBNYWtlIG5hbWUgYSBjb25zdHJ1Y3QKCSAgcHJvcGVydHkuIERvbid0IHNldCBpdCBpbiB0aGUgb2JqZWN0IGluaXQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfYWRkX3BhZCk6IERvbid0IGFsbG93IGFkZGluZyBwYWRzCgkgIHdpdGggVU5LTk9XTiBkaXJlY3Rpb24uCgkgIChnc3RfZWxlbWVudF9hZGRfZ2hvc3RfcGFkKTogUmVtb3ZlIG5vbi1vcnRob2dvbmFsIEFQSS4gUmVwbGFjZQoJICB3aXRoIGdzdF9lbGVtZW50X2FkZF9wYWQgKGUsIGdzdF9naG9zdF9wYWRfbmV3IChuYW1lLCBwYWQpKS4KCSAgKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpOiBSZW1vdmUgZ2hvc3QtcGFkIHNwZWNpYWwgY2FzZXMuCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKTogUmVtb3ZlIHJwYWQgY3J1ZnQuCgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IFVzZSBnc3RfcGFkX2dldF9wYXJlbnQgdG8KCSAgY2F0Y2ggdGhlIHBhZCdzLXBhcmVudC1ub3QtYW4tZWxlbWVudCBjYXNlLgoJICAqIGdzdC9nc3QuaDogSW5jbHVkZSBnc3RnaG9zdHBhZC5oLgoJICAqIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogTm8gbW9yZSByZWFsLCBnaG9zdCBwYWRzLgoJICAqIGdzdC9NYWtlZmlsZS5hbTogQWRkIGdzdGdob3N0cGFkLltjaF0uCgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBDaGVjayB0aGF0IGxpbmtpbmcKCSAgaW50byBhIGJpbiBjcmVhdGVzIGdob3N0IHBhZHMsIGFuZCB0aGF0IHRoZSByZWZjb3VudHMgYXJlIHJpZ2h0LgoJICBQYXJ0bHkgbW92ZWQgZnJvbSBnc3RiaW4uYy4KCjIwMDUtMDYtMDggMTQ6MDA6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChzZXR1cF9waXBlbGluZSksIChydW5fcGlwZWxpbmUpLAoJICAoU1RBUlRfVEVTVCksIChjbGVhbnVwX3N1aXRlKSwgKG1haW4pOgoJICBhZGQgc29tZSB0ZXN0cyByZWxhdGVkIHRvIGNsZWFudXAgYWZ0ZXIgcnVubmluZyBwaXBlbGluZXMKCjIwMDUtMDYtMDggMTM6NTc6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYWRkIGEgR3N0QnVmZmVyIHVuaXQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgR3N0QnVmZmVyIHVuaXQgdGVzdAoKMjAwNS0wNi0wOCAxMzo0NToyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIHByZXZpb3VzIGNvbW1pdCBhY2NpZGVudGFsbHkgYWxzbyBhZGRlZCByZWZjb3VudCBkZWZpbmVzIGZvciBnc3RtaW5pb2JqZWN0LCBsb2dnaW5nIHRoYXQgbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmV2aW91cyBjb21taXQgYWNjaWRlbnRhbGx5IGFsc28gYWRkZWQgcmVmY291bnQgZGVmaW5lcyBmb3IgZ3N0bWluaW9iamVjdCwgbG9nZ2luZyB0aGF0IG5vdwoKMjAwNS0wNi0wOCAxMzo0Mjo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgJ3BsdWdpbnMnIGRpciB0byB0aGUgUExVR0lOX1BBVEggaW4gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCB0byBkcm9wIHJhbmRvbSBvdGhlciBwbHVnaW4taGF2aW5nIHByb2plY3RzIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSAncGx1Z2lucycgZGlyIHRvIHRoZSBQTFVHSU5fUEFUSCBpbiB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IHRvIGRyb3AgcmFuZG9tIG90aGVyIHBsdWdpbi1oYXZpbmcgcHJvamVjdHMgaW4KCjIwMDUtMDYtMDggMTM6NDE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICB3ZSBkaWQgYSBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3ZSBkaWQgYSBwcmVyZWxlYXNlCgoyMDA1LTA2LTA4IDEzOjQxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgT0JKRUNUIGFjdHMgb24gb2JqIG5vdCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBPQkpFQ1QgYWN0cyBvbiBvYmogbm90IGNhcHMKCjIwMDUtMDYtMDggMTM6NDE6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGFkZCBhIGRlYnVnIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGRlYnVnIGxpbmUKCjIwMDUtMDYtMDggMTM6NDA6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdoaXRlIHNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZSBzcGFjZSBmaXhlcwoKMjAwNS0wNi0wMyAxODoyNjo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJICBhZGRlZCBzdXBwb3J0IGZvciBodG1sIHVuaXQgdGVzdCBjb3ZlcmFnZSByZXBvcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBzdXBwb3J0IGZvciBodG1sIHVuaXQgdGVzdCBjb3ZlcmFnZSByZXBvcnRzCgoyMDA1LTA2LTAyIDE1OjQ1OjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEZyZWUgZXhpc3RpbmcgY2FwcyBpZiB0aGUgY2Fwc2ZpbHRlciBjaGFuZ2VzLiBBZGQgYSBGSVhNRSBhYm91dCBzZXR0aW5nIHRob3NlIGNhcHMgb24gdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgRnJlZSBleGlzdGluZyBjYXBzIGlmIHRoZSBjYXBzZmlsdGVyIGNoYW5nZXMuIEFkZCBhIEZJWE1FIGFib3V0CgkgIHNldHRpbmcgdGhvc2UgY2FwcyBvbiB0aGUgcGFkcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCksIChnaG9zdF91cCk6CgkgIEJlZm9yZSBhZGRpbmcgYSBnaG9zdCBwYWQgdG8gYSBwYXJlbnQgYmluLCBjaGVjayB0aGF0IHRoZXJlIGlzbid0CgkgIGFscmVhZHkgb25lIGZvciB0aGUgZWxlbWVudCBvbiB0aGUgYmluLiBQcmV2ZW50cyBpbmZpbml0ZSByZWN1cnNpb24KCSAgd2hlbiB1c2luZyBkZWNvZGViaW4gaW4gcGFyc2UgcGlwZWxpbmVzLiBBbmR5IHNheXMgaGUnbGwgcmV3cml0ZSB0aGUKCSAgd2F5IHRoaXMgd29ya3MgYW55d2F5LCBzbyBpZ25vcmUgdGhlIGhhY2suCgoyMDA1LTA2LTAyIDExOjEyOjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGRvX3B1bGxfdHlwZWZpbmQpOiBRdWVyeSB0aGUgZmlsZSBzaXplLCBwYXNzIGl0IG9uIHRvIHRoZSB0eXBlIGZpbmQgaGVscGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGRvX3B1bGxfdHlwZWZpbmQpOiBRdWVyeSB0aGUKCSAgZmlsZSBzaXplLCBwYXNzIGl0IG9uIHRvIHRoZSB0eXBlIGZpbmQgaGVscGVyLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZG9fc2Vlayk6IFNldCB0aGUKCSAgc2VnbWVudF9zdGFydCBhbmQgc2VnbWVudF9lbmQgcHJvcGVybHkgYWNjb3JkaW5nIHRvIHRoZSBzZWVrCgkgIG1ldGhvZC4gU2VnbWVudF9lbmQgaXMgc3RpbGwgYSBiaXQgZmxha3kgYmVjYXVzZSBvZmZzZXQgY2FuIGJlCgkgIG5lZ2F0aXZlIGZvciBDVVIgYW5kIEVORCBjYXNlcywgYnV0IGl0IHRha2VzIC0xIGFzIGFuICJ1bnNldCIKCSAgdmFsdWUuCgoyMDA1LTA2LTAyIDA5OjQyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQnVmZmVyYWxsb2M6IHJldHVybiBHc3RGbG93UmV0dXJuIHRvIG1vcmUgYWNjdXJhdGx5IHJlcG9ydCB3aHkgYWxsb2NhdGlvbiBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcGFkX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV9zaW5rX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLAoJICAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgQnVmZmVyYWxsb2M6IHJldHVybiBHc3RGbG93UmV0dXJuIHRvIG1vcmUgYWNjdXJhdGx5IHJlcG9ydAoJICB3aHkgYWxsb2NhdGlvbiBmYWlsZWQuCgoyMDA1LTA2LTAyIDA5OjM5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFRha2Ugc25hcHNob3Qgb2Ygc3RhdGUgd2l0aG91dCBibG9ja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIFRha2Ugc25hcHNob3Qgb2Ygc3RhdGUgd2l0aG91dCBibG9ja2luZy4KCjIwMDUtMDYtMDIgMDg6MjY6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNtYWxsIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgU21hbGwgZG9jIHVwZGF0ZXMKCjIwMDUtMDUtMzAgMTY6Mjg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUHJvdGVjdCBsYXN0X21lc3NhZ2UgcHJvcGVydHkgYXMgaXQgaXMgYWNjZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9ldmVudCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICBQcm90ZWN0IGxhc3RfbWVzc2FnZSBwcm9wZXJ0eSBhcyBpdCBpcyBhY2Nlc3NlZCBmcm9tCgkgIG11bHRpcGxlIHRocmVhZHMuCgoyMDA1LTA1LTMwIDE1OjUzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU2xpY2tlciBwYWQgYWN0aXZhdGlvbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaW5pdCksCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFNsaWNrZXIgcGFkIGFjdGl2YXRpb24gY29kZS4KCjIwMDUtMDUtMzAgMTU6NTE6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3ZlIGVsZW1lbnRmYWN0b3J5IG1ldGhvZHMgdG8gc2VwYXJhdGUgLmggZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHR5cGVzLmg6CgkgIE1vdmUgZWxlbWVudGZhY3RvcnkgbWV0aG9kcyB0byBzZXBhcmF0ZSAuaCBmaWxlLgoKMjAwNS0wNS0zMCAxNTo0ODo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIHR5cG8gZml4ZXMsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgU21hbGwgdHlwbyBmaXhlcywgZG9jIHVwZGF0ZXMuCgoyMDA1LTA1LTMwIDE1OjQ2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdC5jOiBSZW1vdmUgY3B1LW9wdCBmbGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfcG9wdF90YWJsZSksIChpbml0X3Bvc3QpLAoJICAoaW5pdF9wb3B0X2NhbGxiYWNrKToKCSAgUmVtb3ZlIGNwdS1vcHQgZmxhZy4KCjIwMDUtMDUtMzAgMTU6NDQ6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IEF2b2lkIHR5cGVjaGVja2luZyBpbiBwbGFjZXMgd2hlcmUgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQXZvaWQgdHlwZWNoZWNraW5nIGluIHBsYWNlcyB3aGVyZSBub3QgbmVlZGVkLgoJICBBZGRlZCBhY2Nlc3NvciBmb3IgbWFsbG9jX2RhdGEuCgoyMDA1LTA1LTMwIDE1OjQxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBQcm9wYWdhdGUgZXJyb3JzIGZyb20gX3NldF9jYXBzKCkgaW4gY29uZmlndXJlX3NyYy9zaW5rIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJldHVybmluZyBUUlVFLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcmVhbF9wYWRfaW5pdCksIChnc3RfcGFkX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLAoJICAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgUHJvcGFnYXRlIGVycm9ycyBmcm9tIF9zZXRfY2FwcygpIGluIGNvbmZpZ3VyZV9zcmMvc2luawoJICBmdW5jdGlvbnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgVFJVRS4KCSAgRkxVU0ggZXZlbnRzIGNhbiB0cmF2ZWwgdXAgYW5kIGRvd25zdHJlYW0KCjIwMDUtMDUtMzAgMTU6MzY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBIYW5kbGUgRU9TIGluIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgIEhhbmRsZSBFT1MgaW4gcHJlcm9sbC4KCjIwMDUtMDUtMzAgMTU6MzQ6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuYzogUmVtb3ZlIG9sZCBwaWVjZXMgb2YgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpOgoJICBSZW1vdmUgb2xkIHBpZWNlcyBvZiBjb2RlCgkgIEZsdXNoaW5nIHRoZSBxdWV1ZSBpbiBhbiB1cHN0cmVhbSBldmVudCBpcyBhIHZlcnkgYmFkIGlkZWEuCgoyMDA1LTA1LTI5IDEzOjU2OjU1ICswMDAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkgIGZpbGUgZ3N0c2ltcGxlc2NoZWR1bGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUNPTVBBTlkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHNpbXBsZXNjaGVkdWxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1DT01QQU5ZLgoKMjAwNS0wNS0yNyAwOToyODowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICByZW1vdmUgY29uZmxpY3QgZG9vYmVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbmZsaWN0IGRvb2JlcnMKCjIwMDUtMDUtMjcgMDk6Mjc6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb2xsZWN0KTogVXNlIGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3Qgc28gYXMgdG8gYWRkIGEgcmVmIG9uIHRoZSBvYmplY3QgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29sbGVjdCk6IFVzZQoJICBnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0IHNvIGFzIHRvIGFkZCBhIHJlZiBvbiB0aGUgb2JqZWN0ICh3aGljaAoJICB3aWxsIGJlIHJlbW92ZWQgd2hlbiB0aGUgdmFsdWUgaXMgdW5zZXQpLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCk6IEZpeCBzaWduYWwKCSAgYXJnIHR5cGUgaW4gOjpoYW5kb2ZmLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6IEFsc28gZGVhY3RpdmF0ZQoJICBwYWRzIGluIFJFQURZLT5OVUxMLCBqdXN0IGluIGNhc2UgdGhlIGVsZW1lbnQgZGlkbid0IG1ha2UgaXQgdG8KCSAgUEFVU0VELiBXaW5nbyB0ZXN0ZWQsIFdpbSBhcHByb3ZlZC4KCjIwMDUtMDUtMjYgMTA6NTA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEEgZmx1c2hpbmcgcGFkIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG9jX2J1ZmZlciBmcm9tLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLAoJICAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgQSBmbHVzaGluZyBwYWQgY2Fubm90IGJlIHVzZWQgdG8gYWxsb2NfYnVmZmVyIGZyb20uCgoyMDA1LTA1LTI2IDEwOjQ4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy4qOiBJbXBsZW1lbnQgYSByZWFsIEdTb3VyY2UgYW5kIHVzZSBnX21haW5fY29udGV4dF93YWtldXAoKSB0byBzaWduYWwgbmV3IG1lc3NhZ2VzIGluc3RlYWQgb2YgdGhlIHNvY2tldHBhaXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX2Rpc3Bvc2UpLCAoZ3N0X2J1c19wb3N0KSwKCSAgKGdzdF9idXNfcG9wKSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfY2hlY2spLAoJICAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLCAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBJbXBsZW1lbnQgYSByZWFsIEdTb3VyY2UgYW5kIHVzZSBnX21haW5fY29udGV4dF93YWtldXAoKSB0bwoJICBzaWduYWwgbmV3IG1lc3NhZ2VzIGluc3RlYWQgb2YgdGhlIHNvY2tldHBhaXIuCgoyMDA1LTA1LTI1IDE5OjMzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHN0YXRlIGNoYW5nZXMgZm9yIG5vbiBzaW5rcy4gV2Ugbm93IGNoYW5nZSBzaW5rcywgdGhlbiBlbGVtZW50cyB3aXRoIHVuY29ubmVjdGVkIHNyY3BhZHMsIHRoZW4gdGhlIHJlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoaGFzX2FuY2VzdG9yKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NlbWlfc2luayksIChhcHBlbmRfY2hpbGQpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIEZpeCBzdGF0ZSBjaGFuZ2VzIGZvciBub24gc2lua3MuIFdlIG5vdyBjaGFuZ2Ugc2lua3MsIHRoZW4gZWxlbWVudHMKCSAgd2l0aCB1bmNvbm5lY3RlZCBzcmNwYWRzLCB0aGVuIHRoZSByZXN0LgoJICBNb3JlIGVmZmljaWVudCBxdWV1ZSB1bmxvY2tpbmcgaW4gZmx1c2ggYW5kIHN0YXRlIGNoYW5nZXMuCgkgIFNldCB0aGUgcGFkIGFjdGl2YXRlIG1vZGUgZXZlbiBpZiBpdCBkb2VzIG5vdCBoYXZlIGFuIGFjdGl2YXRlCgkgIGZ1bmN0aW9uLgoKMjAwNS0wNS0yNSAxNjowOTozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIGhhcHBpZnkgYnVpbGRib3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhcHBpZnkgYnVpbGRib3QKCjIwMDUtMDUtMjUgMTU6NTc6NTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgZ28gaW4gcHVsbCBtb2RlIGZvciBub24tc2Vla2FibGUgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICBEb24ndCBnbyBpbiBwdWxsIG1vZGUgZm9yIG5vbi1zZWVrYWJsZSBzb3VyY2VzLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9kaXNwb3NlKSwgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSksCgkgIChmcmVlX2VudHJ5KSwgKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksIChmaW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGRvX3B1bGxfdHlwZWZpbmQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEFsbG93IHR5cGVmaW5kaW5nICh3L28gc2Vla2luZykgaW4gcHVzaC1tb2RlLCBzaW1wbGlmaWVkIHZlcnNpb24KCSAgb2Ygd2hhdCB3YXMgaW4gMC44LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2J1ZmZlcl9qb2luKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0X2J1ZmZlcl9qb2luKCkgZnJvbSAwLjguCgoyMDA1LTA1LTI1IDEzOjU5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEaXNhYmxlIGF0dGVtcHQgYXQgbW9kZSBzd2l0Y2hpbmcgdW50aWwgaXQgaXMgZmlndXJlZCBvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBEaXNhYmxlIGF0dGVtcHQgYXQgbW9kZSBzd2l0Y2hpbmcgdW50aWwgaXQgaXMgZmlndXJlZCBvdXQuCgoyMDA1LTA1LTI1IDExOjUwOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSW1wbGVtZW50IGdzdF9wYWRfcGF1c2Uvc3RhcnQvc3RvcF90YXNrKCksIHRha2UgU1RSRUFNIGxvY2sgaW4gdGFzayBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcGVlayksIChnc3RfYWRhcHRlcl9mbHVzaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2ZpbmlzaF9wcmVyb2xsKSwgKGdzdF9iYXNlc2lua19jaGFpbiksCgkgIChnc3RfYmFzZXNpbmtfbG9vcCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2VzcmNfbG9vcCksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3JlYWxfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3JlYWxfcGFkX2luaXQpLCAoZ3N0X3JlYWxfcGFkX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcmVhbF9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2lzX2FjdGl2ZSksIChnc3RfcGFkX2dldF9xdWVyeV90eXBlcyksIChnc3RfcGFkX3VubGluayksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9nZXRfcmVhbF9wYXJlbnQpLAoJICAoZ3N0X3JlYWxfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfcGVlcl9nZXRfY2FwcyksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfZ2V0X3BlZXIpLCAoZ3N0X3BhZF9yZWFsaXplKSwKCSAgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksIChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9kaXNwYXRjaGVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3JlYWxfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLCAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2luaXQpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19zdGFydCksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKToKCSAgSW1wbGVtZW50IGdzdF9wYWRfcGF1c2Uvc3RhcnQvc3RvcF90YXNrKCksIHRha2UgU1RSRUFNIGxvY2sKCSAgaW4gdGFzayBmdW5jdGlvbi4KCSAgUmVtb3ZlIEFDVElWRSBwYWQgZmxhZywgdXNlIEZMVVNISU5HIGV2ZXJ5d2hlcmUKCSAgQWRkZWQgX3BhZF9jaGFpbigpLCBfcGFkX2dldF9yYW5nZSgpIHRvIGNhbGwgY2hhaW4vZ2V0cmFuZ2UKCSAgZnVuY3Rpb25zLgoJICBBZGQgbG9ja3MgYXJvdW5kIElTX0ZMVVNISU5HIHdoZW4gcmVhZGluZy4KCSAgVGFrZSBTVFJFQU0gbG9jayBpbiBjaGFpbigpLCBnZXRfcmFuZ2UoKSBmdW5jdGlvbnMgc28gcGx1Z2lucwoJICBkb24ndCBuZWVkIHRvIHRha2UgaXQgYW55bW9yZS4KCjIwMDUtMDUtMjUgMTE6MjY6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFVucmVmIG1lc3NhZ2UgYWZ0ZXIgdXNpbmcgaXRzIGNvbnRlbnRzIGluc3RlYWQgb2YgYmVmb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgVW5yZWYgbWVzc2FnZSBhZnRlciB1c2luZyBpdHMgY29udGVudHMgaW5zdGVhZCBvZgoJICBiZWZvcmUuCgoyMDA1LTA1LTI0IDE2OjQ3OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBEb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIERvY3MgdXBkYXRlcy4KCSAgQWRkZWQgZ2VuZXJhbCBvdmVydmlldyBkb2MuCgkgIEFkZGVkIGRyYWZ0IGdob3N0cGFkIHJlcGxhY2VtZW50IGlkZWEuCgoyMDA1LTA1LTIyIDA0OjI2OjQxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0L3RtcGwvb2xkLzogSSBkaWRuJ3QgaW50ZW5kIHRvIGFkZCB0aGVzZSBvciBjaGVjayB0aGVtIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RCaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RCdWZmZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q2xvY2suc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3REYXRhLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RWxlbWVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEV2ZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0SW5kZXguc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RTdHJ1Y3R1cmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RUYWcuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9jb3RocmVhZHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9jb3RocmVhZHNfY29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ2V0dGV4dC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dvYmplY3QyZ3RrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3JhbW1hci50YWIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3QtaTE4bi1hcHAuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3QtaTE4bi1saWIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RfcHJpdmF0ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGFnZ3JlZ2F0b3Iuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhcmNoLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YXRvbWljX2ltcGwuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RidWZmZXJzdG9yZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRhdGFfcHJpdmF0ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRpc2tzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGlza3NyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZXh0cmF0eXBlcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZha2VzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmFrZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZkc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZkc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmlsZXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmaWxlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aHR0cHNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGlkZW50aXR5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bWFyc2hhbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG1kNXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtdWx0aWRpc2tzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtdWx0aWZpbGVzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHBpcGVmaWx0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2VhcmNoZnVuY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzaGFwZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzcGlkZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzcGlkZXJpZGVudGl0eS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHN0YXRpc3RpY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R0ZWUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R0aW1lY2FjaGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R4bWxyZWdpc3RyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2d0aHJlYWQtY290aHJlYWRzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvdHlwZXMuc2dtbDoKCSAgSSBkaWRuJ3QgaW50ZW5kIHRvIGFkZCB0aGVzZSBvciBjaGVjayB0aGVtIGluLgoKMjAwNS0wNS0yMCAxMjo0NzowNSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDUtMTkgMTk6NTQ6MDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBVc2UgLW5vLWNvbW1vbiBldmVyeXdoZXJlLiAgSW4gYSBzYW5lIHdvcmxkLCBpdCB3b3VsZCBiZSB0aGUgZGVmYXVsdCBpbiBsaWJ0b29sLCBiZWNhdXNlIHdpdGhvdXQgaXQsIHlvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogVXNlIC1uby1jb21tb24gZXZlcnl3aGVyZS4gIEluIGEgc2FuZSB3b3JsZCwgaXQKCSAgd291bGQgYmUgdGhlIGRlZmF1bHQgaW4gbGlidG9vbCwgYmVjYXVzZSB3aXRob3V0IGl0LCB5b3UgY2FuJ3QKCSAgYnVpbGQgRExMcyBvbiBXaW5kb3dzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBHc3RDcHUsIEdzdERhdGEsIEdzdFRocmVhZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjcHUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGRhdGEuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRocmVhZC5zZ21sOgoKMjAwNS0wNS0xOSAxOTo0MToxMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC4qOiBBZGQgR1ZhbHVlIHNldC9nZXQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCksCgkgIChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCksIChnc3RfdmFsdWVfZ2V0X21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOiBBZGQgR1ZhbHVlIHNldC9nZXQgZnVuY3Rpb25zLgoKMjAwNS0wNS0xOSAxNjoyNjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1ha2Ugc3ViYnVmZXIgdW5yZWYgdGhlIHBhcmVudCBpbiBmaW5hbGl6ZS4gc29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2luaXQpLCAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3Rfc3ViYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3Rfc3ViYnVmZmVyX2luaXQpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmFuZG9tX3BhZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpOgoJICBNYWtlIHN1YmJ1ZmVyIHVucmVmIHRoZSBwYXJlbnQgaW4gZmluYWxpemUuCgkgIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCjIwMDUtMDUtMTkgMTY6MjM6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBmcmVlIHByZXJvbGwgcXVldWUgdG9vIGVhcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2luaXQpLCAoZ3N0X2Jhc2VzaW5rX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgZnJlZSBwcmVyb2xsIHF1ZXVlIHRvbyBlYXJseS4KCjIwMDUtMDUtMTkgMTQ6NTI6MTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC86IEhpLCBJJ20gb3V0ZGF0ZWQuIFBsZWFzZSBzaG9vdCBtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9ST0FETUFQOgoJICBIaSwgSSdtIG91dGRhdGVkLiBQbGVhc2Ugc2hvb3QgbWUuCgoyMDA1LTA1LTE5IDEyOjA3OjM1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG8gbm90IGFjY2VzcyB2YXJpYWJsZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZGVsZXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIERvIG5vdCBhY2Nlc3MgdmFyaWFibGVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGRlbGV0ZWQuCgoyMDA1LTA1LTE5IDA4OjQxOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQSBwbHVnaW4gZmVhdHVyZSBkb2VzIHVuZm9ydHVuYXRseSBub3QgdXNlIHRoZSBvYmplY3QgbmFtZSB5ZXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9mZWF0dXJlcyk6CgkgIEEgcGx1Z2luIGZlYXR1cmUgZG9lcyB1bmZvcnR1bmF0bHkgbm90IHVzZSB0aGUKCSAgb2JqZWN0IG5hbWUgeWV0Li4uCgoyMDA1LTA1LTE4IDE3OjM1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBQb3J0IF9zcGFuKCkgZnVuY3Rpb25zIHRvIG5ldyBzdWJidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksIChnc3RfYnVmZmVyX3NwYW4pOgoJICBQb3J0IF9zcGFuKCkgZnVuY3Rpb25zIHRvIG5ldyBzdWJidWZmZXJzLgoKMjAwNS0wNS0xOCAxMzo0OTowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggY2xvY2sgc2V0dGVyeSBpbiBiaW5zIHdoZW4gYWRkaW5nIGtpZHMgYWZ0ZXIgdGhlIGNsb2NrIGhhcyBiZWVuIHNlbGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgRml4IGNsb2NrIHNldHRlcnkgaW4gYmlucyB3aGVuIGFkZGluZyBraWRzIGFmdGVyIHRoZSBjbG9jayBoYXMKCSAgYmVlbiBzZWxlY3RlZC4KCjIwMDUtMDUtMTggMTM6MjM6MjQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBXb3JrYXJvdW5kIHVudGlsIHNpZ25hbHMgc3VwcG9ydCBHc3RNaW5pT2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgV29ya2Fyb3VuZCB1bnRpbCBzaWduYWxzIHN1cHBvcnQgR3N0TWluaU9iamVjdC4KCjIwMDUtMDUtMTggMTE6MzQ6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBPb3BzLCBmaXggYSB0eXBvIEdTVF9UWVBFX0JVRkZFUiAtPiBHU1RfVFlQRV9TVUJCVUZGRVIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgT29wcywgZml4IGEgdHlwbyBHU1RfVFlQRV9CVUZGRVIgLT4gR1NUX1RZUEVfU1VCQlVGRkVSLgoKMjAwNS0wNS0xOCAwOTo1NTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogUG9ydGVkIGFuZCBhZGRlZCBhZGFwdGVyIHRvIHRoZSBiYXNlIGNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfYWRhcHRlcl9jbGFzc19pbml0KSwgKGdzdF9hZGFwdGVyX2luaXQpLAoJICAoZ3N0X2FkYXB0ZXJfZGlzcG9zZSksIChnc3RfYWRhcHRlcl9maW5hbGl6ZSksIChnc3RfYWRhcHRlcl9uZXcpLAoJICAoZ3N0X2FkYXB0ZXJfY2xlYXIpLCAoZ3N0X2FkYXB0ZXJfcHVzaCksIChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX2ZsdXNoKSwgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZSksCgkgIChnc3RfYWRhcHRlcl9hdmFpbGFibGVfZmFzdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBQb3J0ZWQgYW5kIGFkZGVkIGFkYXB0ZXIgdG8gdGhlIGJhc2UgY2xhc3Nlcy4KCjIwMDUtMDUtMTcgMTc6NTA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWZmZWQvdW5yZWZmZWQgb25jZSBiZWZvcmUgdGhyZWFkcyBjYW4gYmUgdXNlZC4gIEZpeGVzICMzMDQ1NTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZmZlZC91bnJlZmZlZCBvbmNlIGJlZm9yZSB0aHJlYWRzIGNhbiBiZQoJICB1c2VkLiAgRml4ZXMgIzMwNDU1MS4KCjIwMDUtMDUtMTcgMTc6Mzc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBEb24ndCBxdWV1ZSBidWZmZXJzIGluIGJhc2VzaW5rIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2ZpbmlzaF9wcmVyb2xsKSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2ZyZWUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBxdWV1ZSBidWZmZXJzIGluIGJhc2VzaW5rIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoJICBVbnJlZiBidWZmZXIgd2hlbiBmbHVzaGluZyBpbiBiYXNlc2luay4KCSAgRmx1c2ggcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWQoJICBVbnJlZiBidWZmZXIgd2hlbiBfcHVzaCgpIHJldHVybnMgYW4gZXJyb3IuCgkgIERvbid0IGZyZWUgTWluaU9iamVjdCBpbnN0YW5jZSB3aGVuIHJlZmNvdW50IGlzIGluY3JlbWVudGVkCgkgIGluIF9maW5hbGl6ZSgpIHNvIHRoYXQgd2UgY2FuIHJlY292ZXIgb2JqZWN0cy4KCjIwMDUtMDUtMTcgMTc6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXNjaGVkdWxlcnMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSAgc21hbGwgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBkb2MgZml4ZXMKCjIwMDUtMDUtMTcgMTQ6MTE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBDbGVhciBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3B1c2gpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFyIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIFJlbW92ZSBJTl9TRVRDQVBTIGZsYWcgdG9vLgoKMjAwNS0wNS0xNyAxNDowMTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogUmVtb3ZlIGltcGxpY2l0IGNhc3QgZnJvbSBnYm9vbGVhbiB0byBHc3RFbGVtZW50U3RhdGVSZXR1cm47IG1ha2Ugc3VyZSB3ZSBzdGlsbCByZXR1cm4gZmFpbHVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICBSZW1vdmUgaW1wbGljaXQgY2FzdCBmcm9tIGdib29sZWFuIHRvIEdzdEVsZW1lbnRTdGF0ZVJldHVybjsKCSAgbWFrZSBzdXJlIHdlIHN0aWxsIHJldHVybiBmYWlsdXJlIGluIHBhdXNlZCA9PiByZWFkeSBjYXNlIGlmCgkgIHRoZSBwYXJlbnQgY2xhc3MgZmFpbHMgdG8gY2hhbmdlIHN0YXRlIGFuZCBvdXIgb3duIHN0b3AKCSAgdmZ1bmMgc3VjY2VlZHMuCgoyMDA1LTA1LTE3IDEwOjQxOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNZXNzYWdlIHdhcyB1bnJlZmZlZCB0b28gc29vbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1lc3NhZ2Ugd2FzIHVucmVmZmVkIHRvbyBzb29uLgoKMjAwNS0wNS0xNiAyMToxNzoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IEVyci4uLiB1bS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogRXJyLi4uIHVtLi4uCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X2dob3N0X3BhZHMpOiBOZXcgdGVzdCBmb3IgdGhlCgkgIGdob3N0aW5nLWlmLWVsZW1lbnRzLW5vdC1pbi1zYW1lLWJpbiBiZWhhdmlvci4KCjIwMDUtMDUtMTYgMjE6MDU6MjEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogVXNlIGdfYXRvbWljX2ludF9nZXQoKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyByZWZjb3VudCBkaXJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogVXNlIGdfYXRvbWljX2ludF9nZXQoKSBpbnN0ZWFkIG9mCgkgIGFjY2Vzc2luZyByZWZjb3VudCBkaXJlY3RseS4KCjIwMDUtMDUtMTYgMjA6MjE6NTUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IHJlbW92ZSBHc3REYXRhIGNoZWNrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogcmVtb3ZlIEdzdERhdGEgY2hlY2tzCgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChTVEFSVF9URVNUKTogZml4IGZvciBBUEkgY2hhbmdlcwoJICAqIGdzdC9NYWtlZmlsZS5hbTogYWRkIG1pbmlvYmplY3QsIHJlbW92ZSBkYXRhCgkgICogZ3N0L2dzdC5oOiBhZGQgbWluaW9iamVjdCwgcmVtb3ZlIGRhdGEKCSAgKiBnc3QvZ3N0ZGF0YS5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0ZGF0YS5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmg6IHJlbW92ZQoJICAqIGdzdC9nc3R0eXBlcy5oOiByZW1vdmUgR3N0RXZlbnQgYW5kIEdzdE1lc3NhZ2UKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogZml4IGZvciBBUEkgY2hhbmdlcwoJICAqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6IGNoYW5nZSBCT1hFRCAtPiBPQkpFQ1QKCSAgSW1wbGVtZW50IEdzdE1pbmlPYmplY3QuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBNb2RpZnkgdG8gYmUgc3ViY2xhc3NlcyBvZiBHc3RNaW5pT2JqZWN0LgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpLCAoZ3N0X2J1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3RfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSksIChfZ3N0X2J1ZmZlcl9jb3B5KSwKCSAgKGdzdF9idWZmZXJfaW5pdCksIChnc3RfYnVmZmVyX25ldyksIChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksIChnc3Rfc3ViYnVmZmVyX2luaXQpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwKCSAgKGdzdF9idWZmZXJfc3Bhbik6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9pbml0aWFsaXplKSwgKGdzdF9ldmVudF9nZXRfdHlwZSksCgkgIChnc3RfZXZlbnRfY2xhc3NfaW5pdCksIChnc3RfZXZlbnRfaW5pdCksIChnc3RfZXZlbnRfZmluYWxpemUpLAoJICAoX2dzdF9ldmVudF9jb3B5KSwgKGdzdF9ldmVudF9uZXcpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSksCgkgIChnc3RfbWVzc2FnZV9nZXRfdHlwZSksIChnc3RfbWVzc2FnZV9jbGFzc19pbml0KSwKCSAgKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cHJvYmUuYzogKGdzdF9wcm9iZV9wZXJmb3JtKSwKCSAgKGdzdF9wcm9iZV9kaXNwYXRjaGVyX2Rpc3BhdGNoKToKCSAgKiBnc3QvZ3N0cHJvYmUuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSksIChnc3RfcXVlcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXJ5X2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXJ5X2ZpbmFsaXplKSwgKGdzdF9xdWVyeV9pbml0KSwKCSAgKF9nc3RfcXVlcnlfY29weSksIChnc3RfcXVlcnlfbmV3KToKCSAgVXBkYXRlIGVsZW1lbnRzIGZvciBHc3REYXRhIC0+IEdzdE1pbmlPYmplY3QgY2hhbmdlcwoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSAgKGdzdF9idWZmZXJfc3RvcmVfYWRkX2J1ZmZlcl9mdW5jKSwKCSAgKGdzdF9idWZmZXJfc3RvcmVfY2xlYXJlZF9mdW5jKSwgKGdzdF9idWZmZXJfc3RvcmVfZ2V0X2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3RfbW1hcF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfbW1hcF9idWZmZXJfaW5pdCksCgkgIChnc3RfbW1hcF9idWZmZXJfZmluYWxpemUpLCAoZ3N0X2ZpbGVzcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZXNyY19jcmVhdGVfcmVhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCksIChmcmVlX2VudHJ5X2J1ZmZlcnMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcik6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgoyMDA1LTA1LTE1IDIzOjE4OjQwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBEb24ndCBpbmNsdWRlIGhlYWRlcnMgdGhhdCB3ZXJlIGp1c3QgcmVtb3ZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IERvbid0IGluY2x1ZGUgaGVhZGVycyB0aGF0IHdlcmUKCSAganVzdCByZW1vdmVkLgoKMjAwNS0wNS0xNSAyMzoxNjoyOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06IFJlbW92ZSBzb21lIGVsZW1lbnRzIHRoYXQgZG9uJ3QgbmVlZCB0byBiZSBpbiB0aGUgY29yZSAob3IgZXZlbiBleGlzdCBhdCBhbGwpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06IFJlbW92ZSBzb21lIGVsZW1lbnRzIHRoYXQgZG9uJ3QKCSAgbmVlZCB0byBiZSBpbiB0aGUgY29yZSAob3IgZXZlbiBleGlzdCBhdCBhbGwpLgoJICAqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0cGlwZWZpbHRlci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RwaXBlZmlsdGVyLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmg6CgkgICogcG8vUE9URklMRVMuaW46IFJlbW92ZSBhYm92ZSBmaWxlcy4KCjIwMDUtMDUtMTQgMTg6MDE6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogVXNlIHNpbmtfaXRlcmF0b3JfZmlsdGVyIHNvIGFzIHRvIGdldCB0aGUgcmVmcyByaWdodC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBVc2Ugc2lua19pdGVyYXRvcl9maWx0ZXIKCSAgc28gYXMgdG8gZ2V0IHRoZSByZWZzIHJpZ2h0LgoJICAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBOZXcgZnVuY3Rpb24sIHdyYXBzIGJpbl9lbGVtZW50X2lzX3NpbmssCgkgIHVucmVmZmluZyBvYmplY3RzIHRoYXQgZG9uJ3QgcGFzcyB0aGUgZmlsdGVyLgoKMjAwNS0wNS0xNCAxNzoxMjoxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogRHJvcCByZWYgb24gYnVzIGFmdGVyIGdzdF9lbGVtZW50X3NldF9idXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IERyb3AgcmVmIG9uIGJ1cyBhZnRlcgoJICBnc3RfZWxlbWVudF9zZXRfYnVzLgoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOiBTZXQgdGhlIGJ1cyBvbiB0aGUgcGlwZWxpbmUgdG8gTlVMTC4gSW4KCSAgbm9ybWFsIGNhc2VzLCB0aGlzIHdpbGwgZGVzdHJveSB0aGUgYnVzLgoJICAqIGdzdC9nc3R1dGlscy5jIChwcmVwYXJlX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOiBEcm9wIHJlZiBvbiByb290CgkgIG9iamVjdC4KCjIwMDUtMDUtMTQgMTU6NTQ6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBGaXggc3RhdGUgY2hhbmdlcyBpZiBhIGJpbiBoYXMgbm8gc2lua3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBGaXggc3RhdGUgY2hhbmdlcyBpZiBhIGJpbgoJICBoYXMgbm8gc2lua3MuCgoyMDA1LTA1LTE0IDE1OjMyOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogSW5zdGVhZCBvZiBjYWxsaW5nIGdzdF9wYWRfbGluaywgY2FsbCBwYWRfbGlua19tYXliZV9naG9zdGluZywKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IEluc3RlYWQgb2YgY2FsbGluZwoJICBnc3RfcGFkX2xpbmssIGNhbGwgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcsCgkgIChwYWRfbGlua19tYXliZV9naG9zdGluZyk6IExpbmtzIHBhZHMsIG1ha2luZyBzdXJlIHRoYXQgdGhlCgkgIGVsZW1lbnRzIGJlaW5nIGxpbmtlZCBhcmUgaW4gdGhlIHNhbWUgYmluLgoJICAoZmluZF9jb21tb25fcm9vdCwgb2JqZWN0X2hhc19hbmNlc3RvciwgZ2hvc3RfdXAsIHJlbW92ZV9wYWQpOgoJICBIZWxwZXJzIGZvciBwYWRfbGlua19tYXliZV9naG9zdGluZy4KCjIwMDUtMDUtMTMgMTI6NTM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBHTGliID49IDIuNC4wIChmb3IgdGhlIGdfYXRvbWljXyogZnVuY3MpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXF1aXJlIEdMaWIgPj0gMi40LjAgKGZvciB0aGUgZ19hdG9taWNfKiBmdW5jcykKCjIwMDUtMDUtMTMgMTA6MTg6NDEgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbWlzc2luZyAuaCBmaWxlIHRvIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgLmggZmlsZSB0byBzcGVjIGZpbGUKCjIwMDUtMDUtMTMgMDk6Mjc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICBNZW50aW9uIEdzdFB1c2hTcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gR3N0UHVzaFNyYwoKMjAwNS0wNS0xMiAxOTo0NTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IElkZW50aWZ5IHNpbmtzIGJ5IHRoZWlyIGZsYWcgdG8gYXZvaWQgb3Zlcmx5IGNvbXBsaWNhdGVkIGNoZWNrcyAoZm93IG5vdykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX3VubG9jayksCgkgIChnc3RfYmFzZXNyY19pc19zZWVrYWJsZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKSwgKGdzdF9lbGVtZW50X3F1ZXJ5KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBJZGVudGlmeSBzaW5rcyBieSB0aGVpciBmbGFnIHRvIGF2b2lkIG92ZXJseSBjb21wbGljYXRlZAoJICBjaGVja3MgKGZvdyBub3cpLgoJICBEbyBzdGF0ZSBjaGFuZ2VzIGV2ZW4gZm9yIGVsZW1lbnRzIG5vdCByZWFjaGFibGUgZnJvbSB0aGUKCSAgc2lua3MuCgkgIEJhc2VTaW5rIGlzIGEgc2luayBub3cgOikKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvIGluIHRoZSBiYXNlc3JjLgoKMjAwNS0wNS0xMiAxNTowOToxNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXBsZW1lbnQgX3F1ZXJ5IG9uIGEgYmluLCBzaW1pbGFyIHRvIF9zZW5kX2V2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEltcGxlbWVudCBfcXVlcnkgb24gYSBiaW4sIHNpbWlsYXIgdG8gX3NlbmRfZXZlbnQuCgoyMDA1LTA1LTEyIDEzOjU5OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEaXNjb250IGV2ZW50IG9mZnNldCBmb3JtYXQgc2hvdWxkIGJlIEdTVF9GT1JNQVRfQllURVMsIG5vdCBHU1RfRk9STUFUX1RJTUUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2RvX3NlZWspOgoJICBEaXNjb250IGV2ZW50IG9mZnNldCBmb3JtYXQgc2hvdWxkIGJlIEdTVF9GT1JNQVRfQllURVMsCgkgIG5vdCBHU1RfRk9STUFUX1RJTUUuCgoyMDA1LTA1LTEyIDEzOjE4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTYW1lIGZpeCBhcyBSb25hbGQncyBidXQgd2l0aG91dCB0aGUgc2lnbmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKToKCSAgU2FtZSBmaXggYXMgUm9uYWxkJ3MgYnV0IHdpdGhvdXQgdGhlIHNpZ25hbC4KCjIwMDUtMDUtMTIgMTI6Mjc6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBObywgYW4gZWxlbWVudCBpcyBub3QgYSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfcXVlcnlfcG9zaXRpb24pOgoJICBObywgYW4gZWxlbWVudCBpcyBub3QgYSBwYWQuCgoyMDA1LTA1LTEyIDEyOjE3OjIzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IElmIGEgY2hpbGQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIHdoaWxlIHdlIHJlbW92ZSB0aGUgY2hpbGQgZnJvbSB0aGUgYmluIGFuZCB3aGlsZSB3ZSdyZSByZXRyaWV2aW5nIGl0cyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChjYl9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2Jpbl9nZXRfc3RhdGUpOgoJICBJZiBhIGNoaWxkIGlzIHJlbW92ZWQgZnJvbSBhIGJpbiB3aGlsZSB3ZSByZW1vdmUgdGhlIGNoaWxkIGZyb20KCSAgdGhlIGJpbiBhbmQgd2hpbGUgd2UncmUgcmV0cmlldmluZyBpdHMgc3RhdGUsIHNpZ25hbCB0aGlzIHRvIHRoZQoJICBnZXRfc3RhdGUgZnVuY3Rpb24gc28gd2UgYWJvcnQgdGhlIHdhaXQgKGluc3RlYWQgb2Ygd2FpdGluZyBmb3IKCSAgYSB0aW1lb3V0KSBhbmQgY2FuIGltbWVkaWF0ZWx5IHJlLWl0ZXJhdGUgb3ZlciBhbGwgb3RoZXIgZWxlbWVudHMuCgoyMDA1LTA1LTEyIDEwOjQzOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBBZGRlZCBpc19zZWVrYWJsZSB0byBCYXNlU3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2lzX3NlZWthYmxlKSwKCSAgKGdzdF9iYXNlc3JjX3N0YXJ0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X3B1c2hzcmNfYmFzZV9pbml0KSwgKGdzdF9wdXNoc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1c2hzcmNfaW5pdCksIChnc3RfcHVzaHNyY19jcmVhdGUpOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgQWRkZWQgaXNfc2Vla2FibGUgdG8gQmFzZVNyYwoJICBBZGRlZCBzaW1wbGUgUHVzaFNyYy4KCjIwMDUtMDUtMTEgMDk6MjE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggcmVmY291bnRpbmcgaW4gdXRpbHMgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKSwgKGdzdF9lbGVtZW50X3F1ZXJ5KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9saW5rX3BhZHMpLCAoZ3N0X2VsZW1lbnRfcXVlcnlfcG9zaXRpb24pLAoJICAoZ3N0X2VsZW1lbnRfcXVlcnlfY29udmVydCksIChpbnRlcnNlY3RfY2Fwc19mdW5jKSwKCSAgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pLCAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgRml4IHJlZmNvdW50aW5nIGluIHV0aWxzIGZ1bmN0aW9uLgoJICBObyBwb2ludCBpbiB0cnlpbmcgdG8gYWN0aXZhdGUgYSBwYWQgd2hlbiBpdCdzIGFkZGVkLCBpdCBjb3VsZAoJICBiZSBhZGRlZCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYW5kIHRoZW4gd2UgZGVhZGxvY2ssIHRoZQoJICBlbGVtZW50IGhhcyB0byBkZWNpZGUgd2hhdCB0byBkby4KCjIwMDUtMDUtMTEgMDM6Mzc6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfcmVuZGVyKTogRXIsIGVtaXQgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6IEVyLCBlbWl0IHdpdGgKCSAgKmFsbCogdGhlIGFyZ3VtZW50cy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6IEdyYWIgdGhlCgkgIHN0cmVhbSBsb2NrIGlmIGl0J3MgYSBGTFVTSF9ET05FOyBub3JtYWwgZmx1c2hlcyBkb24ndCBnZXQgdGhlCgkgIGxvY2sgKGFjY29yZGluZyB0byB0aGUgZG9jcyAtLSBpZiB0aGlzIGlzIHdyb25nIGNoYW5nZSB0aGUgZG9jcykuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBTZXQgdGhlIGJ1cyB0bwoJICBmbHVzaCBtZXNzYWdlcyBpbiB0aGUgTlVMTCBzdGF0ZS4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfcG9zdCk6IElmIGEgYnVzIGlzIGZsdXNoaW5nLCB1bnJlZiB0aGUKCSAgbWVzc2FnZSBpbW1lZGlhdGVseSBhbmQgcmV0dXJuLgoJICAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpOiBOZXcgZnVuY3Rpb24uIElmIGEgYnVzIGlzIGZsdXNoaW5nLCBpdAoJICBmbHVzaGVzIG91dCBhbnkgcXVldWVkIG1lc3NhZ2VzIGFuZCBpbW1lZGlhdGVseSB1bnJlZnMgbmV3CgkgIG1lc3NhZ2VzLiBUaGlzIGlzIHNvIHdoZW4gYW4gZWxlbWVudCBnb2VzIHRvIE5VTEwsIGFsbCBvZiB0aGUKCSAgdW5oYW5kbGVkIG1lc3NhZ2VzIGNvbWluZyBmcm9tIGl0IGNhbiBiZSBmcmVlZCwgYW5kIHRoZWlyCgkgIHJlZmVyZW5jZXMgdG8gdGhlIGVsZW1lbnQgZHJvcHBlZC4gSW4gb3RoZXIgd29yZHM6IG1lc3NhZ2Ugc291cmNlCgkgIHJlZiBjb25zaWRlcmVkIGhhcm1mdWwgOlAKCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogVW5yZWYgcGVlciBlbGVtZW50IHdoZW4KCSAgd2UncmUgZmluaXNoZWQgd2l0aCBpdC4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgoyMDA1LTA1LTEwIDE0OjUxOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHJlbW92ZSBzdHVwaWQgcHJpbnRmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3R1cGlkIHByaW50ZgoKMjAwNS0wNS0xMCAxNDo1MDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBBZGRlZCBmbGFncyBzZXJpYWxpemUvZGVzZXJpYWxpemUvY29tcGFyZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZsYWdzKSwKCSAgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIEFkZGVkIGZsYWdzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS9jb21wYXJlIGNvZGUuCgoyMDA1LTA1LTA5IDIxOjM3OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKTogSW50ZXJzZWN0IHRoZSBwZWVyJ3MgY2FwcyB3aXRoIG91ciBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKToKCSAgSW50ZXJzZWN0IHRoZSBwZWVyJ3MgY2FwcyB3aXRoIG91ciBjYXBzLgoKMjAwNS0wNS0wOSAxNTo1NDoyNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0LzogSGFuZGxlIG5lZ2F0aXZlIG9mZnNldHMgYmV0dGVyLiBGaXhlcyBkZWNvZGViaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX3BlZWspOgoJICBIYW5kbGUgbmVnYXRpdmUgb2Zmc2V0cyBiZXR0ZXIuIEZpeGVzIGRlY29kZWJpbi4KCjIwMDUtMDUtMDkgMTQ6NDc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJbXBsZW1lbnQgYWNjZXB0X2NhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KToKCSAgSW1wbGVtZW50IGFjY2VwdF9jYXBzLgoJICBGaXggc2lsbHkgbG9jay91bmxvY2sgbWlzbWF0Y2ggaW4gYmFzZSBjbGFzcy4KCjIwMDUtMDUtMDkgMTA6NTM6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZW1vdmUgb2xkIHF1ZXJ5IGZ1bmN0aW9ucy4gUG9ydGVkIG9sZCBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIG9sZCBxdWVyeSBmdW5jdGlvbnMuIFBvcnRlZCBvbGQgY29kZS4KCSAgQWRkZWQgcG9zaXRpb24vY29udmVydCBoZWxwZXIgZnVuY3Rpb25zIHRvIGdzdHV0aWxzLgoJICBSZW9yZGVyZWQgZ3N0cGFkLmMgY29kZSwgZ3JvdXBpbmcgcmVsZXZhbnQgdGhpbmdzLgoJICBSZW1vdmUgZ3N0X21lc3NhZ2VfbmV3KCksIGFsd2F5cyBuZWVkIHRvIHNwZWZpY3kgYSBzcGVjaWZpYwoJICBtZXNzYWdlLgoKMjAwNS0wNS0wOSAwNjoyMToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmg6IEFkZCBzb21lIGluY2x1ZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDogQWRkIHNvbWUgaW5jbHVkZXMuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDogSW5jbHVkZSBtb3JlIGhlYWRlcnMuCgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbik6IE5ldyByb3V0aW5lLCByZXBsYWNlcwoJICBzb21lIHVzZXMgb2YgZ3N0X3BhZF9xdWVyeS4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5jOiBCdWlsZCBmaXhlcy4gTWFrZSBwYXJzZSBmdW5jdGlvbnMgaWdub3JlCgkgIE5VTEwgb3V0IHBhcmFtZXRlcnMuCgkgIChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKTogTmV3IHByb2MsIGFsbG9jYXRlcyBhIG5ldyBwb3NpdGlvbgoJICBxdWVyeS4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGxpYmdzdHJlYW1lcl9AR1NUX01BSk9STUlOT1JAX2xhX1NPVVJDRVMpOiBBZGQKCSAgZ3N0cXVlcnl1dGlscy5jIHRvIHRoZSBidWlsZC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmMgKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCk6IEltcGxlbWVudCB3aXRoCgkgIHRoZSBnZW5lcmljIEdfVkFMVUVfQ09MTEVDVC4KCjIwMDUtMDUtMDggMTc6MDc6MDUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IEFkZGVkIGdzdHF1ZXJ5dXRpbHMuaCB0byB0aGUgbGlzdCBvZiBoZWFkZXJzIHRvIGluc3RhbGwsIHRoYXQgd2FzIGEgJ25hY2h0eScgbW92ZSB3aW5nbyA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IChnc3RfaGVhZGVycyk6CgkgIEFkZGVkIGdzdHF1ZXJ5dXRpbHMuaCB0byB0aGUgbGlzdCBvZiBoZWFkZXJzIHRvIGluc3RhbGwsIHRoYXQgd2FzCgkgIGEgJ25hY2h0eScgbW92ZSB3aW5nbyA6KQoKMjAwNS0wNS0wNiAyMTo0MToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHF1ZXJ5LmgKCSAgKiBnc3QvZ3N0cXVlcnkuYyAoX2dzdF9xdWVyeV9pbml0aWFsaXplKTogRXh0ZW5kIEdzdFF1ZXJ5IGZyb20KCSAgR3N0RGF0YSwgaW5pdCBhIG1lbWNodW5rLgoJICAoc3RhbmRhcmRfZGVmaW5pdGlvbnMpOiBBZGQgYSBmZXcgcXVlcnkgdHlwZXMsIGRlcHJlY2F0ZSBhIGZldy4KCSAgKGdzdF9xdWVyeV9nZXRfdHlwZSk6IE5ldyBwcm9jLgoJICAoX2dzdF9xdWVyeV9jb3B5LCBfZ3N0X3F1ZXJ5X2ZyZWUsIGdzdF9xdWVyeV9uZXcpOiBHc3REYXRhCgkgIGltcGxlbWVudGF0aW9uLgoJICAoZ3N0X3F1ZXJ5X25ld19hcHBsaWNhdGlvbiwgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1cmUpOiBOZXcgcHVibGljCgkgIHByb2NzLgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDogUmVtb3ZlZCBMSU5LUyBmcm9tIHRoZSBxdWVyeSB0eXBlcywKCSAgYmVjYXVzZSBhbGwgdGhlIHJlc3QgY2FuIGJlIGRpc3BhdGNoZWQgdG8gb3RoZXIgcGFkcyAtLSBzZWVtZWQKCSAgdWdseSB0byBoYXZlIGEgcXVlcnkgdGhhdCBjb3VsZG4ndCBiZSBkaXNwYXRjaGVkLiBpbnRlcm5hbF9saW5rcwoJICBpcyBmaW5lIGFzIGEgcGFkIG1ldGhvZC4KCSAgKiBnc3QvZ3N0cGFkLmg6IEFkZCBxdWVyeTIgYXMgYSBwYWQgbWV0aG9kLCBhZGQgdGhlIG5ldyBmdW5jdGlvbnMKCSAgaW4gZ3N0cGFkLmMsIGJ1dCBtYWludGFpbiBiaW5hcnkgY29tcGF0aWJpbGl0eSBmb3IgdGhlIG1vbWVudC4KCSAgV2lsbCBmaXggYmVmb3JlIDAuOSBpcyBvdXQuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzoKCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5oOiBOZXcgZmlsZXMsIGltcGxlbWVudCAzIG1ldGhvZHMgZm9yIGVhY2gKCSAgcXVlcnkgdHlwZTogcGFyc2VfcXVlcnksIHBhcnNlX3Jlc3BvbnNlLCBhbmQgc2V0LiBQcm9iYWJseSBuZWVkIGFuCgkgIGFsbG9jYXRvciBhcyB3ZWxsLgoJICAqIGdzdC9nc3QuaDogQWRkIGdzdHF1ZXJ5LmggYW5kIGdzdHF1ZXJ5dXRpbHMuaCB0byB0aGUgbGlzdC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVzaW5rX3F1ZXJ5Mik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19xdWVyeTIpOiBSZXBsYWNlIG9sZCBxdWVyeSwKCSAgcXVlcnlfdHlwZXMsIGFuZCBmb3JtYXRzIG1ldGhvZHMuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3F1ZXJ5MiwgZ3N0X3BhZF9xdWVyeTJfZGVmYXVsdCkKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5Ml9mdW5jdGlvbik6IE5ldyBmdW5jdGlvbnMuCgkgIChnc3RfcmVhbF9wYWRfaW5pdCk6IFNldCBxdWVyeTJfZGVmYXVsdCBhcyB0aGUgZGVmYXVsdCBxdWVyeTIKCSAgZnVuY3Rpb24uIEJhc2ljYWxseSBqdXN0IGRpc3BhdGNoZXMgdG8gaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCSAgTmVlZHMgcmV2aWV3IQoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaCAoX0dTVF9EQVRBX0lOSVQpOiBTZXQgZGF0YS0+cmVmY291bnQgdG8gMQoJICB3aXRob3V0IHVzaW5nIHRoZSBhdG9taWMgb3BlcmF0aW9ucy4gT25seSBvbmUgdGhyZWFkIGNhbiBwb3NzaWJseQoJICBiZSBhY2Nlc3NpbmcgdGhlIGRhdGEgYXQgdGhpcyBwb2ludC4gQ2hhbmdlZCBzbyBhcyB0byBhdm9pZAoJICBnc3RfYXRvbWljIG9wZXJhdGlvbnMuCgoyMDA1LTA1LTA2IDE5OjUwOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBbHNvIHNldCBjYXBzIGlmIHdlIHVzZSB0aGUgZmFsbGJhY2sgYnVmZmVyIGFsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3B1c2gpOgoJICBBbHNvIHNldCBjYXBzIGlmIHdlIHVzZSB0aGUgZmFsbGJhY2sgYnVmZmVyIGFsbG9jLgoKMjAwNS0wNS0wNiAxNzozMzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFB1cmdlIEdzdEF0b21pYyBzdHVmZiBmcm9tIGRvY3MgYW5kIHdpbjMyIG1ha2VmaWxlcyBhcyB3ZWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGF0b21pYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSAgKiB0ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X2kzODYuaDoKCSAgKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL01ha2VmaWxlOgoJICBQdXJnZSBHc3RBdG9taWMgc3R1ZmYgZnJvbSBkb2NzIGFuZCB3aW4zMiBtYWtlZmlsZXMgYXMgd2VsbAoKMjAwNS0wNS0wNiAxNzoxMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHMoKSwgbWFrZSBpdCByZXR1cm4gTlVMTCBpZiBubyBwZWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2dldGNhcHMpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9nZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZ2V0Y2FwcyksCgkgIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoaW50ZXJzZWN0X2NhcHNfZnVuYyk6CgkgIEZpeCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHMoKSwgbWFrZSBpdCByZXR1cm4gTlVMTCBpZiBubyBwZWVyLgoJICBBbHdheXMgdGFrZSBRVUVVRV9MT0NLIGFmdGVyIFNUUkVBTV9MT0NLIG9yIHdlIG1pZ2h0IGRlYWRsb2NrLgoJICBTb21lIGZpeGVzIGZvciB0aGUgcGVlcl9nZXRfY2FwcygpIGNoYW5nZS4KCjIwMDUtMDUtMDYgMTY6MTk6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBY3R1YWxseSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvciBjb2RlcyByZXR1cm5lZCBmcm9tIHRoZSBwdXNoIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICBBY3R1YWxseSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvciBjb2RlcyByZXR1cm5lZCBmcm9tIHRoZSBwdXNoCgkgIGZ1bmN0aW9ucy4KCjIwMDUtMDUtMDYgMDg6MjU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBTb21lIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgRml4ZWQgc2NoZWR1bGluZyBkZWNpc2lvbiBpbiBfcGFkc19hY3RpdmF0ZSgpLgoKMjAwNS0wNS0wNSAyMTo1OTo1MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaW5hbCBjcnVmdCBmaXhhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbmFsIGNydWZ0IGZpeGFnZQoKMjAwNS0wNS0wNSAyMTo0NTo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGNydWZ0IHJlbW92YWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNydWZ0IHJlbW92YWwKCjIwMDUtMDUtMDUgMjE6NDI6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcmV2ZXJ0IGNydWZ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgY3J1ZnQKCjIwMDUtMDUtMDUgMjE6Mzc6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICByZXZlcnQgYWNjaWRlbnRhbCBjb21taXQgb2YgY3J1ZnQgLS0gZG9oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgYWNjaWRlbnRhbCBjb21taXQgb2YgY3J1ZnQgLS0gZG9oCgoyMDA1LTA1LTA1IDE1OjAyOjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0XzJfZWxlbWVudHMpOiAiRml4IiB0aGUgdGVzdCBzdWl0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF8yX2VsZW1lbnRzKTogIkZpeCIKCSAgdGhlIHRlc3Qgc3VpdGUuCgoyMDA1LTA1LTA1IDExOjQzOjA2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IGJyb2tlbiBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBicm9rZW4gc3BlYyBmaWxlCgoyMDA1LTA1LTA1IDA5OjMxOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgb2JqZWN0IHRvIGhlbHAgaW4gbWFraW5nIGNvbGxlY3QgcGFkIGJhc2VkIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jbGFzc19pbml0KSwgKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdHBhZHNfbmV3KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zZXRfZnVuY3Rpb24pLCAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpLAoJICAoZmluZF9wYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2lzX2FjdGl2ZSksIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdCksCgkgIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdHBhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApLCAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksIChnc3RfY29sbGVjdHBhZHNfYXZhaWxhYmxlKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19yZWFkKSwgKGdzdF9jb2xsZWN0cGFkc19mbHVzaCksCgkgIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzaW5rX2dldF90aW1lcyksIChnc3RfZmFrZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Zha2VzaW5rX3ByZXJvbGwpLCAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZXNpbmtfaW5pdCksIChnc3RfZmlsZXNpbmtfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlc2lua19vcGVuX2ZpbGUpLCAoZ3N0X2ZpbGVzaW5rX2Nsb3NlX2ZpbGUpLAoJICAoZ3N0X2ZpbGVzaW5rX3BhZF9xdWVyeSksIChnc3RfZmlsZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVzaW5rX3JlbmRlciksIChnc3RfZmlsZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgQWRkZWQgb2JqZWN0IHRvIGhlbHAgaW4gbWFraW5nIGNvbGxlY3QgcGFkIGJhc2VkIGVsZW1lbnRzLgoJICBQb3J0ZWQgZmlsZXNpbmsuCgkgIE1ha2UgZXZlbnQgZnVuY3Rpb24gaW4gc2luayBiYXNlY2xhc3MgcmV0dXJuIGdib29sZWFuLgoKMjAwNS0wNS0wNSAwOToyODowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBuYW1lIGxvb2t1cCBpbiBHc3RCaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2VuZF9ldmVudCksIChjb21wYXJlX25hbWUpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChnc3RfY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3RfY2xvY2tfZmluYWxpemUpOgoJICAqIGdzdC9nc3RkYXRhLmM6IChnc3RfZGF0YV9yZXBsYWNlKToKCSAgKiBnc3QvZ3N0ZGF0YS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCksCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfc3RhcnRfdGFzayksCgkgIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2Fwcyk6CgkgIEZpeCBuYW1lIGxvb2t1cCBpbiBHc3RCaW4uCgkgIEFkZGVkIF9kYXRhX3JlcGxhY2UoKSBmdW5jdGlvbiBhbmQgX2J1ZmZlcl9yZXBsYWNlKCkKCSAgVXNlIGZpbmFsaXplIG1ldGhvZCB0byBjbGVhbiB1cCBjbG9jay4KCSAgRml4IHJlZmNvdW50aW5nIG9uIHJlcXVlc3QgcGFkcy4KCSAgRml4IHBhZCBzY2hlZHVsZSBtb2RlIGVycm9yLgoJICBTb21lIG1vcmUgb2JqZWN0IHJlZmNvdW50aW5nIGRlYnVnIGluZm8sCgoyMDA1LTA1LTA0IDIxOjI5OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBHQ0MgNCBmaXhlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDQgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGF0b21pYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyksCgkgIChnc3RfYmFzZXNyY19xdWVyeSksIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlc3JjX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmFrZXNyY19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9lbGVtZW50X2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NhdmVfdGh5c2VsZiksIChnc3RfYmluX3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KSwgKGdzdF9jYXBzX3NhdmVfdGh5c2VsZiksCgkgIChnc3RfY2Fwc19sb2FkX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZiksIChnc3RfZWxlbWVudF9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbG9hZF9hbmRfbGluayksIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksCgkgIChnc3RfZ2hvc3RfcGFkX3NhdmVfdGh5c2VsZiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX3dyaXRlKSwgKGdzdF94bWxfcGFyc2VfZG9jKSwKCSAgKGdzdF94bWxfcGFyc2VfZmlsZSksIChnc3RfeG1sX3BhcnNlX21lbW9yeSksCgkgIChnc3RfeG1sX2dldF9lbGVtZW50KSwgKGdzdF94bWxfbWFrZV9lbGVtZW50KToKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKF9maWxlX2luZGV4X2lkX3NhdmVfeG1sKSwgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKHJlYWRfc3RyaW5nKSwgKHJlYWRfdWludCksCgkgIChyZWFkX2VudW0pLCAobG9hZF9wYWRfdGVtcGxhdGUpLCAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKSwKCSAgKGxvYWRfcGF0aHMpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksIChnc3RfZHBfY2Fwc19mcm9tX3BhY2tldCk6CgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoeG1sbGF1bmNoX3BhcnNlX2NtZGxpbmUpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXMpOgoJICBHQ0MgNCBmaXhlbi4KCjIwMDUtMDUtMDQgMTk6NDE6MDUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmaWxlIHRvIHdvcmsgZm9yIDAuOSBicmFuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBzcGVjIGZpbGUgdG8gd29yayBmb3IgMC45IGJyYW5jaAoKMjAwNS0wNS0wMyAxMjo0Njo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IGFwcGx5IHBhdGNoIGZyb20gIzE3MjUyNiB0byBtYWtlIHJlZ2lzdGVyIHdvcmsgb24gTWFjT1NYCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fY2hlY2tfbW9kdWxlKSwKCSAgKGdzdF9wbHVnaW5fY2hlY2tfZmlsZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIGFwcGx5IHBhdGNoIGZyb20gIzE3MjUyNiB0byBtYWtlIHJlZ2lzdGVyIHdvcmsgb24gTWFjT1NYCgoyMDA1LTA1LTAyIDE2OjUwOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDUtMDIgMTU6MzE6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSAgbW9yZSBwcmludCBmb3JtYXQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgcHJpbnQgZm9ybWF0IGZpeGVzCgoyMDA1LTA1LTAyIDE1OjIwOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSAgbWVyZ2VzIGZyb20gMC44IGZvciA2NCBiaXQgaXNzdWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtZXJnZXMgZnJvbSAwLjggZm9yIDY0IGJpdCBpc3N1ZXMKCjIwMDUtMDUtMDIgMTM6NTU6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBkcmFmdCBmb3IgbmV3IHF1ZXJ5IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc3JjX3N0YXJ0KToKCSAgQWRkZWQgZHJhZnQgZm9yIG5ldyBxdWVyeSBBUEkuCgkgIEFkZGVkIGRyYWZ0IGZvciBiZXR0ZXIgc2VsZWN0aW5nIHNjaGVkdWxpbmcgbWV0aG9kcy4KCSAgTWFrZSBiYXNlc3JjIGlnbm9yZSBsZW5ndGggaWYgdGhlIHN1YmNsYXNzIGRvZXMgbm90IHN1cHBvcnQKCSAgaXQuCgoyMDA1LTA1LTAyIDExOjU0OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBhdXRvbWFrZSAxLjUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9tYWtlIDEuNSBmaXhlcwoKMjAwNS0wNS0wMiAxMTo0NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWxzLm1hazoKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgcG9zc2libGUgZml4ZXMgZm9yIGF1dG9tYWtlLTEuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcG9zc2libGUgZml4ZXMgZm9yIGF1dG9tYWtlLTEuNQoKMjAwNS0wNC0yOCAxNjoyODoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEJldHRlciBkZWJ1Z2dpbmcgb2YgY2xvY2tpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2Rpc2NvbnRfZ2V0X3ZhbHVlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKHBpcGVsaW5lX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQmV0dGVyIGRlYnVnZ2luZyBvZiBjbG9ja2luZyBpbmZvLgoJICBBbGxvdyBOVUxMIHZhbHVlcyB3aGVuIGdldHRpbmcgZGlzY29udCB2YWx1ZXMuCgoyMDA1LTA0LTI3IDE0OjE5OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0LzogSW5jcmVhc2UgdGltZW91dCBmb3IgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKGdzdF9wYWRfc3VpdGUpOgoJICBJbmNyZWFzZSB0aW1lb3V0IGZvciBjaGVja3MuCgoyMDA1LTA0LTI3IDEzOjUyOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBmaXggdGhlIGJyb2tlbiBydWxlIGZvciBjbGVhbnVwLiAgQXBwYXJlbnRseSB0aGlzIHJ1bGUgaXMgb25seSBuZWVkZWQgb24gRkMyLCBzbyBtYXliZSB0aGlzIHdhcnJhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IHRoZSBicm9rZW4gcnVsZSBmb3IgY2xlYW51cC4gIEFwcGFyZW50bHkgdGhpcyBydWxlIGlzCgkgIG9ubHkgbmVlZGVkIG9uIEZDMiwgc28gbWF5YmUgdGhpcyB3YXJyYW50cyBmdXJ0aGVyIGF1dG90b29sCgkgIGluc3BlY3Rpb24uCgoyMDA1LTA0LTI2IDE4OjA3OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRyYXNoc3RhY2suaDogT29vaGguIGEgbmFzdHkgb25lISBBZnRlciBoYXZpbmcgYSBmYWlsZWQgcG9wKCkgZnJvbSB0aGUgc3RhY2ssIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgc3RhY2sgaXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIE9vb2hoLiBhIG5hc3R5IG9uZSEgQWZ0ZXIgaGF2aW5nIGEgZmFpbGVkIHBvcCgpIGZyb20gdGhlIHN0YWNrLAoJICBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHN0YWNrIGlzIGVtcHR5LiBJbiB0aGF0IGNhc2UsIGRvbid0CgkgIGZvbGxvdyB0aGUgTlVMTCBwb2ludGVyLgoKMjAwNS0wNC0yNSAxMzowMDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBnc3RfbGlicmFyeV9sb2FkIGFzIGl0IGRvZXMgbW9yZSBoYXJtIHRoYW4gZ29vZCB3aXRoIHRoZSBuZXcgZ19tb2R1bGUgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwKCSAgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIFJlbW92ZSBnc3RfbGlicmFyeV9sb2FkIGFzIGl0IGRvZXMgbW9yZSBoYXJtIHRoYW4gZ29vZCB3aXRoCgkgIHRoZSBuZXcgZ19tb2R1bGUgZmxhZ3MuCgkgIFJldmVydCBib2d1cyBjYXBzIHRlbXBsYXRlIGNoZWNrIGluIHBhZCBsaW5raW5nLCBwYWQgY2FwcwoJICBhcmUgaW1wb3J0YW50IHdoZW4gbGlua2luZyBub3QgdGhlIHRlbXBsYXRlLCB3aGljaCBpcyBtb3JlCgkgIGdlbmVyYWwgdGhhbiB0aGUgY3VycmVudCBjYXBzLgoKMjAwNS0wNC0yNSAxMTo1MTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgdGhlcmUgaXMgbm8gc3BlZWQuICByZWFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGVyZSBpcyBubyBzcGVlZC4gIHJlYWxseS4KCjIwMDUtMDQtMjUgMDk6NTE6MDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9hdXRvcGx1Zy86IERpZSwgc3BpZGVyLCBkaWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvcGx1Zy8uY3ZzaWdub3JlOgoJICAqIGdzdC9hdXRvcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuaDoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5oOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXJpZGVudGl0eS5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXJpZGVudGl0eS5oOgoJICAqIGdzdC9hdXRvcGx1Zy9zcGlkZXJ0ZXN0LmM6CgkgIERpZSwgc3BpZGVyLCBkaWUuCgoyMDA1LTA0LTI1IDA5OjQ1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBBZGRlZCBzdHVicyBmb3IgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGRlZCBzdHVicyBmb3IgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuCgoyMDA1LTA0LTI1IDAzOjU0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGZpbGUgcHl0aG9uLWVsZW1lbnRzLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgcHl0aG9uLWVsZW1lbnRzLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMjQgMjM6NTM6MDYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZC5oOiBEaXNhYmxlIHNvbWUgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuICBXaW0sIHBsZWFzZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDogRGlzYWJsZSBzb21lIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLiAgV2ltLAoJICBwbGVhc2UgZml4LgoKMjAwNS0wNC0yNCAyMjo0OTo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBDb252ZXJ0IGV2ZXJ5dGhpbmcgZnJvbSBHc3RBdG9taWNJbnQgdG8gZ19hdG9taWNfaW50XyosIGFuZCByZW1vdmUgZ3N0YXRvbWljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29udmVydCBldmVyeXRoaW5nIGZyb20gR3N0QXRvbWljSW50IHRvIGdfYXRvbWljX2ludF8qLCBhbmQKCSAgcmVtb3ZlIGdzdGF0b21pYy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGF0b21pYy5jOgoJICAqIGdzdC9nc3RhdG9taWMuaDoKCSAgKiBnc3QvZ3N0YXRvbWljX2ltcGwuaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkYXRhLmM6CgkgICogZ3N0L2dzdGRhdGEuaDoKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiBBZGQgZ3N0X2F0b21pY19pbnRfc2V0KCkgY29tcGFpdGliaWxpdHkgZnVuY3Rpb24uCgkgICogZ3N0L2dzdHV0aWxzLmg6CgoyMDA1LTA0LTI0IDIyOjQ0OjEzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogT2ggeWVhaCwgaXQncyBhbHdheXMgbmljZSB0byBtYWtlIHRoZSByZWdyZXNzaW9ucyB0ZXN0cyB3b3JrLiAgUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIG5vIGxvbmdlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKTogT2ggeWVhaCwgaXQncyBhbHdheXMgbmljZSB0bwoJICBtYWtlIHRoZSByZWdyZXNzaW9ucyB0ZXN0cyB3b3JrLiAgUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIG5vCgkgIGxvbmdlciB0cnVlLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja190ZW1wbGF0ZXNfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIERpc2FibGUgd2FybmluZyBmb3IgcGFkcyB3aXRob3V0IHRlbXBsYXRlcy4KCjIwMDUtMDQtMjQgMjE6MTY6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZW1vdmUgaGFuZGxpbmcgb2YgZmlsdGVyZWQgY2Fwcy4gIEZpeC9tZXJnZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgZmlsdGVyZWQgbGlua3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogUmVtb3ZlIGhhbmRsaW5nIG9mIGZpbHRlcmVkIGNhcHMuICBGaXgvbWVyZ2UKCSAgZnVuY3Rpb25zIHRoYXQgaGFuZGxlIGZpbHRlcmVkIGxpbmtzLgoJICAqIGdzdC9nc3RwYWQuaDogUmVtb3ZlICdhcHBmaWx0ZXInIGZpZWxkIGFuZCBwcm90b3R5cGVzIG9mCgkgIHJlbW92ZWQgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3R1dGlscy5jOiBGaXgvcmVtb3ZlIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgaGFuZGxlCgkgIGZpbHRlcmVkIGNhcHMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IEFkZCBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbiBvZiBjYXBzCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueTogSWdub3JlIGZpbHRlcmVkIGNhcHMgd2hlbiBsaW5raW5nLiAgVGhpcwoJICByZXF1aXJlcyBmaXhpbmcgc28gdGhhdCB0aGUgZmlsdGVyIGNhcHMgbm90YXRpb24gY3JlYXRlcwoJICBhIGNhcHNmaWx0ZXIgZWxlbWVudCBhbmQgc2V0cyB0aGUgZmlsdGVyX2NhcHMgcHJvcGVydHkuICBJCgkgIHRoaW5rIGV2ZXJ5b25lIHByb2JhYmx5IHdhbnRzIHRvIGtlZXAgdGhlIHNob3J0aGFuZCBub3RhdGlvbi4KCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDogdXBkYXRlcyBmb3IgQVBJIGNoYW5nZXMuCgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogUmVnaXN0ZXIgY2Fwc2ZpbHRlciBlbGVtZW50LgoJICAqIGdzdC9NYWtlZmlsZS5hbTogZml4IHNwYWNpbmcKCSAgKiBkb2NzL3JhbmRvbS9kcy8wLjktc3VnZ2VzdGVkLWNoYW5nZXM6IHJhbmRvbQoKMjAwNS0wNC0yMyAyMzoyOTo0NyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvOiBOZXcgZWxlbWVudCB0aGF0IGFjdHMgbGlrZSBhbiBpZGVudGl0eSwgYnV0IGZpbHRlcnMgY2Fwcy4gIFdpbGwgZXZlbnR1YWxseSByZXBsYWNlIGZpbHRlcmVkIGNhcHMgaW4gcGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IE5ldyBlbGVtZW50IHRoYXQgYWN0cyBsaWtlIGFuCgkgIGlkZW50aXR5LCBidXQgZmlsdGVycyBjYXBzLiAgV2lsbCBldmVudHVhbGx5IHJlcGxhY2UgZmlsdGVyZWQKCSAgY2FwcyBpbiBwYWQgbGlua2luZy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2NyZWF0ZV9hbGxfcGFkcyk6IE5ldyBmdW5jdGlvbgoJICB0byBjcmVhdGUgYWxsIHRoZSBBTFdBWVMgcGFkcyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggYW4KCSAgZWxlbWVudCBjbGFzcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBzaG91bGQgZXZlbnR1YWxseSBiZQoJICBtZXJnZWQgaW4gd2l0aCBHc3RFbGVtZW50IGluaXRpYWxpemF0aW9uLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRTogcGFydCBvZiB0cmlnZ2VyIHRlc3QgY29kZSB0aGF0IHNob3VsZAoJICBoYXZlIGJlZW4gY2hlY2tlZCBpbiBhIGxvbmcgdGltZSBhZ28uCgoyMDA1LTA0LTIzIDIzOjI1OjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmVtb3ZlIGFzLWxpYnRvb2wgc3R1ZmYuICBJdCdzIGxpa2VseSBub3QgYW5kIGhhcmQgdG8gY2FycnkgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IFJlbW92ZSBhcy1saWJ0b29sIHN0dWZmLiAgSXQncyBsaWtlbHkgbm90CgkgIG5lZWRlZCB3aXRoIG5ldyB2ZXJzaW9ucyBvZiBsaWJ0b29sIChub2JvZHkgd2lsbCBjb25maXJtIHRoaXMpLAoJICBhbmQgaGFyZCB0byBjYXJyeSBhcm91bmQuCgkgICogZ3N0L2F1dG9wbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL01ha2VmaWxlLmFtOgoKMjAwNS0wNC0yMSAxNzoxMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBNYWtlZmlsZS5hbSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgTWFrZWZpbGUuYW0gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTIxIDA5OjM3OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzLgoKMjAwNS0wNC0yMSAwOTozMzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVzZSBwYXJlbnQgcmVmY291bnQgaW4gR3N0TWVzc2FnZSB0byBlbnN1cmUgR3N0U3RydWN0dXJlIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2NvcHkpLCAoX2dzdF9tZXNzYWdlX2ZyZWUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3BhcmVudF9yZWZjb3VudCksCgkgIChnc3Rfc3RydWN0dXJlX2NvcHlfY29uZGl0aW9uYWwpOgoJICBVc2UgcGFyZW50IHJlZmNvdW50IGluIEdzdE1lc3NhZ2UgdG8gZW5zdXJlIEdzdFN0cnVjdHVyZQoJICBjb25zaXN0ZW5jeS4KCSAgQ2xlYW5lZCB1cCBoZWFkZXJzIGEgYml0LgoKMjAwNS0wNC0yMCAwOToxMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1ha2UgZ3N0X2NhcHNfcmVwbGFjZSgpIHdvcmsgbGlrZSBvdGhlciBfcmVwbGFjZSgpIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCk6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3N1Z2dlc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKSwgKGRvX3R5cGVmaW5kKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfc3ViX2ZyZWUpLAoJICAoZ3N0X2J1ZmZlcl9kZWZhdWx0X2ZyZWUpLCAoZ3N0X2J1ZmZlcl9kZWZhdWx0X2NvcHkpLAoJICAoZ3N0X2J1ZmZlcl9zZXRfY2Fwcyk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlZiksIChnc3RfY2Fwc191bnJlZiksCgkgIChnc3RfY2Fwc19yZXBsYWNlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZV9maWx0ZXJlZCksIChnc3RfcGFkX3JlbGlua19maWx0ZXJlZCksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICBNYWtlIGdzdF9jYXBzX3JlcGxhY2UoKSB3b3JrIGxpa2Ugb3RoZXIgX3JlcGxhY2UoKSBmdW5jdGlvbnMuCgkgIFVzZSBfY2Fwc19yZXBsYWNlKCkgd2hlcmUgcG9zc2libGUuCgkgIE1ha2Ugc3VyZSBfbWVzc2FnZV9uZXcoKSBpbml0aWFsaXNlcyBpdHMgZmllbGQuCgkgIEFkZCBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcygpCgoyMDA1LTA0LTE4IDA4OjUzOjAyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBzL0FSR18vUFJPUF8vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBzL0FSR18vUFJPUF8vLgoKMjAwNS0wNC0xOCAwODoyNDozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpCgkgIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpOiBCTE9DS1NJWkUgaXMgYSBVTE9ORy4gUmVuYW1lIEFSR18uLi4KCSAgdG8gUFJPUF8uLi4uCgoyMDA1LTA0LTE2IDIwOjI3OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE5FV1M6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBORVdTIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBORVdTIGJ1aWxkCgoyMDA1LTA0LTE2IDIwOjE2OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbW92ZWQgc29tZSBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIHNvbWUgbGluZQoKMjAwNS0wNC0xNiAxNjoyODowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlIHRvIHBrZ2NvbmZpZyBwYXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZSB0byBwa2djb25maWcgcGF0aAoKMjAwNS0wNC0xNCAxNzoxNzozMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9mYXEvdXNpbmcueG1sOiBBZGQgbm90ZSBvbiBnc3RyZWFtZXItcHJvcGVydGllcyAoIzE1NDk5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgQWRkIG5vdGUgb24gZ3N0cmVhbWVyLXByb3BlcnRpZXMgKCMxNTQ5OTYpLgoKMjAwNS0wNC0xMyAxNzo0MToyOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6IFNvbWUgYW5hbHlzaXMgb24gb3B0aW9uYWwgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6CgkgIFNvbWUgYW5hbHlzaXMgb24gb3B0aW9uYWwgcHJvcGVydGllcy4KCjIwMDUtMDQtMTIgMTU6MDA6MzAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIFVzZSBsaWJ4bWwyIGZvciByZWdpc3RyeSBwYXJzaW5nLCB1c2Ugc3RhdGljcGFkdGVtcGxhdGVzIGluIGVsZW1lbnRmYWN0b3JpZXMuIE1ha2VzIGdzdF9pbml0KCkgKy8tIDEweCBmYXN0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2xlYW51cCksIChnc3RfZWxlbWVudF9yZWdpc3RlciksCgkgIChfX2dzdF9lbGVtZW50X2ZhY3RvcnlfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfc3RhdGljX3BhZF90ZW1wbGF0ZXMpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fc3JjX2NhcHMpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fc2lua19jYXBzKToKCSAgKiBnc3QvcmVnaXN0cmllcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfdHlwZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2NsYXNzX2luaXQpLCAoZ3N0X3htbF9yZWdpc3RyeV9pbml0KSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfbmV3KSwgKGdzdF94bWxfcmVnaXN0cnlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Byb3BlcnR5KSwgKGdldF90aW1lKSwgKG1ha2VfZGlyKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Blcm1zX2Z1bmMpLAoJICAocGx1Z2luX3RpbWVzX29sZGVyX3RoYW5fcmVjdXJzZSksIChwbHVnaW5fdGltZXNfb2xkZXJfdGhhbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X29wZW5fZnVuYyksIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWRfZnVuYyksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfZnVuYyksIChnc3RfeG1sX3JlZ2lzdHJ5X2Nsb3NlX2Z1bmMpLAoJICAoYWRkX3RvX2NoYXJfYXJyYXkpLCAocmVhZF9zdHJpbmcpLCAocmVhZF91aW50KSwgKHJlYWRfZW51bSksCgkgIChsb2FkX3BhZF90ZW1wbGF0ZSksIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pLCAobG9hZF9wYXRocyksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWQpLCAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfY2FwcyksIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9mZWF0dXJlKSwgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlKSwgKGdzdF94bWxfcmVnaXN0cnlfcmVidWlsZF9yZWN1cnNlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfcmVidWlsZCk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuaDoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wYWRfdGVtcGxhdGVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBVc2UgbGlieG1sMiBmb3IgcmVnaXN0cnkgcGFyc2luZywgdXNlIHN0YXRpY3BhZHRlbXBsYXRlcyBpbgoJICBlbGVtZW50ZmFjdG9yaWVzLiBNYWtlcyBnc3RfaW5pdCgpICsvLSAxMHggZmFzdGVyLgoKMjAwNS0wNC0xMiAxMDo1Mjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBBZGRlZCB0eXBlZmluZCBoZWxwZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCB0eXBlZmluZCBoZWxwZXIuCgkgIFNtYWxsIHByZXJvbGwgZml4IGluIHRoZSBiYXNlIHNpbmsuCgkgIERpc2FibGUgdHlwZWZpbmQgY29kZSBpbiBiYXNlc3JjLgoJICBDcnVkZSBwb3J0IG9mIHR5cGVmaW5kZWxlbWVudC4KCSAgRmFrZXNyYyBjbGVhbnVwcy4KCjIwMDUtMDQtMTIgMDk6MTY6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0YS5jOgoJICBJbmNyZWFzZSB0aW1lb3V0IHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW5jcmVhc2UgdGltZW91dCBzb21lIG1vcmUKCjIwMDUtMDQtMTEgMTI6MDI6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBvbmx5IGRpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9ubHkgZGlycwoKMjAwNS0wNC0xMSAxMTo0MDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDUtMDQtMTEgMTE6MjQ6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEZpeCB1cCB0aGUgdGltZW91dCBzbyB0aGF0IHRoZSB0ZXN0IGRvZXMgbm90IGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKGdzdGJ1c19zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdGRhdGEuYzogKHRocmVhZF9yZWYpLCAoZ3N0X2RhdGFfc3VpdGUpOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCB1cCB0aGUgdGltZW91dCBzbyB0aGF0IHRoZSB0ZXN0IGRvZXMgbm90IGZhaWwuCgoyMDA1LTA0LTExIDA5OjUzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSAgZGlzdCB0cmlnZ2VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXN0IHRyaWdnZXIKCjIwMDUtMDQtMTAgMjE6NDI6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDQtMTAgMjA6Mjk6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wNC0xMCAxODoxOToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBpZ25vcmUgYWxyZWFkeSBhcHBsaWVkIHBhdGNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgYWxyZWFkeSBhcHBsaWVkIHBhdGNoCgoyMDA1LTA0LTA4IDExOjM0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIGdzdHBhcmVudC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RwYXJlbnQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMDggMTE6MzQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgZ3N0cGFyZW50Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHBhcmVudC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0wNiAxNzozMDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vcmUgd29yayBvbiB0aGUgZ2VuZXJpYyBzb3VyY2UgYmFzZSBjbGFzcywgaW1wbGVtZW50IHNlZWtpbmcsIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19nZXRfZm9ybWF0cyksIChnc3RfYmFzZXNyY19xdWVyeSksCgkgIChnc3RfYmFzZXNyY19nZXRfZXZlbnRfbWFzayksIChnc3RfYmFzZXNyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlc3JjX2V2ZW50X2hhbmRsZXIpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZXNyY19sb29wKSwKCSAgKGdzdF9iYXNlc3JjX3VubG9jayksIChnc3RfYmFzZXNyY19nZXRfc2l6ZSksIChnc3RfYmFzZXNyY19zdGFydCksCgkgIChnc3RfYmFzZXNyY19zdG9wKSwgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSksIChiYXNlc3JjX2ZpbmRfcGVlayksCgkgIChiYXNlc3JjX2ZpbmRfc3VnZ2VzdCksIChnc3RfYmFzZXNyY190eXBlX2ZpbmQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2ZpbGVzcmNfaW5pdCksCgkgIChnc3RfZmlsZXNyY19maW5hbGl6ZSksIChnc3RfZmlsZXNyY19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZXNyY19mcmVlX3BhcmVudF9tbWFwKSwgKGdzdF9maWxlc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVzcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZXNyY19jcmVhdGVfbW1hcCksCgkgIChnc3RfZmlsZXNyY19jcmVhdGVfcmVhZCksIChnc3RfZmlsZXNyY19jcmVhdGUpLAoJICAoZ3N0X2ZpbGVzcmNfZ2V0X3NpemUpLCAoZ3N0X2ZpbGVzcmNfc3RhcnQpLCAoZ3N0X2ZpbGVzcmNfc3RvcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIE1vcmUgd29yayBvbiB0aGUgZ2VuZXJpYyBzb3VyY2UgYmFzZSBjbGFzcywgaW1wbGVtZW50IHNlZWtpbmcsCgkgIHF1ZXJ5LgoJICBNYWtlIGZpbGVzcmMgZXh0ZW5kIHRoZSBiYXNlIHNvdXJjZSBjbGFzcy4KCSAgQWRkZWQgZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiB0byBHc3RQYWQuCgoyMDA1LTA0LTA2IDExOjA4OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwa2djb25maWcvOiBOZXcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46IE5ldyBmaWxlcy4KCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjIChBQ19PVVRQVVQpOiBBZGQgZ3N0cmVhbWVyLWJhc2UgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0wNC0wNSAxNzo0MTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBhZGQgYSBub3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBub3RlCgoyMDA1LTA0LTA1IDA4OjQ0OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFkZSBiYXNlIHNvdXJjZSBjbGFzcywgbWFrZSBmYWtlc3JjIGV4dGVuZCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfcGFkX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNyY19iYXNlX2luaXQpLCAoZ3N0X2Jhc2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX2dldF9mb3JtYXRzKSwKCSAgKGdzdF9iYXNlc3JjX2dldF9xdWVyeV90eXBlcyksIChnc3RfYmFzZXNyY19xdWVyeSksCgkgIChnc3RfYmFzZXNyY19nZXRfZXZlbnRfbWFzayksIChnc3RfYmFzZXNyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlX3VubG9ja2VkKSwgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZXNyY19sb29wKSwgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCksIChnc3RfZmFrZXNyY19pbml0KSwKCSAgKGdzdF9mYWtlc3JjX2V2ZW50X2hhbmRsZXIpLCAoZ3N0X2Zha2VzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZXNyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlc3JjX2dldHJhbmdlKSwKCSAgKGdzdF9maWxlc3JjX29wZW5fZmlsZSksIChnc3RfZmlsZXNyY19sb29wKSwKCSAgKGdzdF9maWxlc3JjX2FjdGl2YXRlKSwgKGZpbGVzcmNfZmluZF9wZWVrKSwKCSAgKGdzdF9maWxlc3JjX3R5cGVfZmluZCk6CgkgIE1hZGUgYmFzZSBzb3VyY2UgY2xhc3MsIG1ha2UgZmFrZXNyYyBleHRlbmQgaXQuCgkgIEFkZCBjb21tZW50cyB0byBiYXNlc2luayBjbGFzcy4KCSAgU29tZSBmaWxlc3JjIGNsZWFudXAuCgoyMDA1LTA0LTAxIDEwOjE0OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIGFkZCBzdXBwb3J0IGZvciBnb29nbGUgbWFsbG9jIGlmIGF2YWlsYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN1cHBvcnQgZm9yIGdvb2dsZSBtYWxsb2MgaWYgYXZhaWxhYmxlCgoyMDA1LTA0LTAxIDAyOjQxOjM1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogU3dpdGNoIHRvIHVzaW5nIEdfTU9EVUxFX0JJTkRfTE9DQUwsIHdoaWNoIG1lYW5zIHBsdWdpbnMgYXJlIG5vdyBleHBlY3RlZCB0byBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2NoZWNrX2ZpbGUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBTd2l0Y2ggdG8gdXNpbmcgR19NT0RVTEVfQklORF9MT0NBTCwgd2hpY2ggbWVhbnMgcGx1Z2lucyBhcmUgbm93CgkgIGV4cGVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIuCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06IHNhbWUKCjIwMDUtMDMtMzEgMTU6MDA6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2luc3RhbnRpYXRlLzogQWRkIHRlc3QgdG8gdGVzdCBzcGVlZCBvZiBjYXBzIGNvcHkgYW5kIGZyZWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTMxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL2NhcHMuYzogQWRkIHRlc3QgdG8gdGVzdCBzcGVlZCBvZiBjYXBzIGNvcHkKCSAgYW5kIGZyZWUuCgkgICogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jIChtYWluKTogVXNlIGFsbG9jIG9ubHkgb24gdGhlCgkgIEdNZW1DaHVuayB0byBiZSBmYWlyLgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6IFJlbW92ZSB3YXJuaW5nIGFib3V0IHVzaW5nIHRoZSBmYWxsYmFjawoJICB0cmFzaCBzdGFjayBpbXBsZW1lbnRhdGlvbiwgaXQncyBzdGlsbCBmYXN0ZXIgdGhhbiBtYWxsb2MuCgoyMDA1LTAzLTMxIDEwOjEwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIHRyYW5zZm9ybSBiYXNlIGNsYXNzIHNvIHN1YmNsYXNzZXMgZG9uJ3QgbmVlZCB0byBkZWFsIHdpdGggc3RhdGUgY2hhbmdlcyBldmVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfZXZlbnQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfc3RhcnQpLAoJICAoZ3N0X2lkZW50aXR5X3N0b3ApOgoJICBBZGRlZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gdHJhbnNmb3JtIGJhc2UgY2xhc3Mgc28gc3ViY2xhc3NlcwoJICBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCBzdGF0ZSBjaGFuZ2VzIGV2ZW4uCgoyMDA1LTAzLTMxIDEwOjEwOjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIGFkZCBwZXItdGhyZWFkIHN0YXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcGVyLXRocmVhZCBzdGF0cwoKMjAwNS0wMy0zMSAwOTo0NjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHJhdGUgdG8gdGhlIGRpc2NvbnQgZXZlbnQgdG8gcHJlcGFyZSBmb3IgdmFyaWFibGUgc3BlZWQgYW5kIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19kaXNjb250aW51b3VzX3ZhbGlzdCksCgkgIChnc3RfZXZlbnRfbmV3X2Rpc2NvbnRpbnVvdXMpLCAoZ3N0X2V2ZW50X2Rpc2NvbnRfZ2V0X3ZhbHVlKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgQWRkZWQgcmF0ZSB0byB0aGUgZGlzY29udCBldmVudCB0byBwcmVwYXJlIGZvciB2YXJpYWJsZSBzcGVlZAoJICBhbmQgcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDUtMDMtMzAgMTQ6MDk6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgQ29tbWl0IG1lbSBjaHVuayB0ZXN0OyBwcm9iYWJseSB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb21taXQgbWVtIGNodW5rIHRlc3Q7IHByb2JhYmx5IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KCjIwMDUtMDMtMzAgMDM6NTc6MzkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQSBsaXR0bGUgZXhhbXBsZSBwcm9ncmFtIHRvIHNob3cgaG93IHRyaWdnZXItYmFzZWQgZWxlbWVudHMgY2FuIHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6IEEgbGl0dGxlIGV4YW1wbGUgcHJvZ3JhbSB0byBzaG93CgkgIGhvdyB0cmlnZ2VyLWJhc2VkIGVsZW1lbnRzIGNhbiB3b3JrLgoKMjAwNS0wMy0yOSAxNjoxODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNpbXBsaWZ5IHBhZCBhY3RpdmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwgKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLCAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Jhc2VfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2ZpbmFsaXplKSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwgKGdzdF9pZGVudGl0eV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9ldmVudCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSksIChnc3RfaWRlbnRpdHlfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBTaW1wbGlmeSBwYWQgYWN0aXZhdGlvbi4KCSAgQWRkZWQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgcHVsbF9yYW5nZSBjYW4gYmUgcGVyZm9ybWVkLgoJICBFcnJvciBvdXQgd2hlbiBwdWxsaW5nIGluYWN0aXZlIG9yIGZsdXNoaW5nIHBhZHMuCgkgIFJlbW92ZWQgY29uc3QgZnJvbSByZWZjb3VudGVkIHR5cGVzIGFzIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UuCgkgIFNpbXBsaWZ5IHBhZCB0ZW1wbGF0ZXMgaW4gYmFzZXNpbmsKCSAgQWRkZWQgYmFzZSBjbGFzcyBmb3Igc2ltcGxlIDEtdG8tMSB0cmFuc2Zvcm1zLgoJICBNYWtlIGlkZW50aXR5IHN1YmNsYXNzIHRoZSBiYXNlIHRyYW5zZm9ybS4KCjIwMDUtMDMtMjkgMTQ6MzQ6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvOiBBZGQgdGhlc2UgZmlsZXMgdG8gQ1ZTLiBOb3cgSSByZWFsbHkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24sIGJ1dCBsaWtlIHdoYXRldmVyLiBJIHdhbnQgZ3JlZW4gYnVpbGRib3QhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1vdmVycmlkZXMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1vdmVycmlkZXMudHh0OiBBZGQgdGhlc2UgZmlsZXMgdG8gQ1ZTLiBOb3cgSQoJICByZWFsbHkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24sIGJ1dCBsaWtlIHdoYXRldmVyLiBJIHdhbnQKCSAgZ3JlZW4gYnVpbGRib3QhCgoyMDA1LTAzLTI5IDE0OjEyOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzLzogRGlzdCB0aGUgb3ZlcnJpZGVzIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IERpc3QgdGhlIG92ZXJyaWRlcyBmaWxlcy4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2xlYW4tbG9jYWwpOiBSZW1vdmUgLmxpYnMgZGlyZWN0b3JpZXMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGFsbCB0aGUgYXR0aWMKCSAgZWxlbWVudHMgdG8gRVhUUkFfRElTVCwgc28gcG8vIGZpbGVzIGFyZSBoYXBweS4KCjIwMDUtMDMtMjkgMTM6MTA6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBvL1BPVEZJTEVTOiBSZW1vdmUgZ3N0c3BpZGVyLmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBvL1BPVEZJTEVTOiBSZW1vdmUgZ3N0c3BpZGVyLmMuCgkgICogY29uZmlndXJlLmFjIChBQ19PVVRQVVQpOiBBZGQgbWlzc2luZyB0ZXN0c3VpdGUgbWFrZWZpbGVzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogUmVtb3ZlIHRoZSBzZWN0aW9uIG9uCgkgIGJ5dGVzdHJlYW0uCgkgICogdGVzdHMvY29tcGxleGl0eS5jIChtYWluKTogU2V0IHRoZSBsZW5ndGggb2YgdGhlIHByZXJvbGwgcXVldWUKCSAgb24gdGhlIHNpbmtzIHRvIHByZXZlbnQgYSBsb2NrdXAuCgoyMDA1LTAzLTI5IDExOjM5OjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvOiBSZW1vdmUgdGVzdCwgaXQncyB0aGUgc2FtZSBhcyB0aGUgb25lIGluIGNoZWNrL2dzdC1saWJzL2dkcC5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC10ZXN0LmM6IFJlbW92ZSB0ZXN0LCBpdCdzCgkgIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4gY2hlY2svZ3N0LWxpYnMvZ2RwLmMuCgoyMDA1LTAzLTI5IDEwOjU1OjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwby8sIGRvY3MvZ3N0LzogQ29tbWl0IGF1dG9tYXRpYyBjaGFuZ2VzIHRvIGRvY3MgYW5kIHBvIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwby8sIGRvY3MvZ3N0LzogQ29tbWl0IGF1dG9tYXRpYyBjaGFuZ2VzIHRvIGRvY3MgYW5kIHBvIGZpbGVzLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbSAobGliZ3N0ZWxlbWVudHNfbGFfTERGTEFHUyk6IExpbmsgdG8KCSAgdGhlIHZlcnNpb25lZCBsaWJnc3RiYXNlLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiBEZXBlbmQgb24gYW4gdW52ZXJzaW9uZWQgZ3N0LXJlZ2lzdGVyLCBzZWVtcwoJICB0byBtYWtlIGF1dG9jb25mIGhhcHBpZXIuCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IE1ha2UgbGliZ3N0YmFzZSBhIHZlcnNpb25lZCBsaWIuCgoyMDA1LTAzLTI4IDE0OjU0OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9SRUFETUU6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgQWRkZWQgc3RhdGUgY2hhbmdlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBzdGF0ZSBjaGFuZ2UgY29kZS4KCSAgQWRkZWQvdXBkYXRlZCBkb2NzLgoJICBBZGRlZCBzaW5rIGJhc2UgY2xhc3MsIG1ha2UgZmFrZXNpbmsgZXh0ZW5kIHRoZSBiYXNlIGNsYXNzLgoJICBTbWFsbCBjbGVhbnVwcyBpbiBHc3RQaXBlbGluZS4KCjIwMDUtMDMtMjYgMjI6MDc6NTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgZ3N0Y3B1LltjaF0uICBUaGUgZ3N0X2NwdSBmdW5jdGlvbmFsaXR5IGlzIGJyb2tlbiBhbmQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIGEgZGlmZmVyZW50IGxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIGdzdGNwdS5bY2hdLiAgVGhlIGdzdF9jcHUgZnVuY3Rpb25hbGl0eQoJICBpcyBicm9rZW4gYW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCBsaWJyYXJ5LgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6IGRvbid0IGNhbGwgX2dzdF9jcHVfaW5pdGlhbGl6ZSgpCgkgICogZ3N0L2dzdC5oOiByZW1vdmUgZ3N0Y3B1LmgKCSAgKiBnc3QvZ3N0Y3B1LmM6IHJlbW92ZQoJICAqIGdzdC9nc3RjcHUuaDogcmVtb3ZlCgkgICogZ3N0L01ha2VmaWxlLmFtLmZ1dHVyZTogUmVtb3ZlIHRoaXMgZmlsZS4gIEl0J3MgYW5jaWVudC4KCjIwMDUtMDMtMjUgMDk6NTc6NDIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIGRlZmF1bHQgZXZlbnQvc2V0X21hbmFnZXIgaGFuZGxlcnMuIFRoZSBzZXRfbWFuYWdlciBoYW5kbGVyIHRha2VzIGNhcmUgdGhhdCB0aGUgbWFuYWdlciBpcyBkaXN0cmlidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9zZXRfbWFuYWdlciksCgkgIChnc3RfYmluX3NlbmRfZXZlbnQpOgoJICBBZGQgZGVmYXVsdCBldmVudC9zZXRfbWFuYWdlciBoYW5kbGVycy4gVGhlIHNldF9tYW5hZ2VyIGhhbmRsZXIKCSAgdGFrZXMgY2FyZSB0aGF0IHRoZSBtYW5hZ2VyIGlzIGRpc3RyaWJ1dGVkIG92ZXIga2lkcyB0aGF0IHdlcmUKCSAgYWxyZWFkeSBpbiB0aGUgYmluIGJlZm9yZSB0aGUgbWFuYWdlciB3YXMgc2V0LiBUaGUgZXZlbnQgaGFuZGxlcgoJICBpcyBhIHV0aWxpdHkgdmlydHVhbCBmdW5jdGlvbiB0aGF0IHNlbmRzIHRoZSBldmVudCBvdmVyIGFsbCBzaW5rcywKCSAgc28gdGhhdCBnc3RfZWxlbWVudF9zZW5kX2V2ZW50IChiaW4sIGV2ZW50KTsgaGFzIHRoZSBleHBlY3RlZAoJICBiZWhhdmlvdXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KToKCSAgUmUtaW5zdGFsbCBkZWZhdWx0IGV2ZW50IGhhbmRsaW5nIGZvciBkaXNjb250aW51aXRpZXMsIHNvIHRoYXQKCSAgc2Vla2luZyB3b3JrcyB3aXRob3V0IHJlcXVpcmluZyBoYWNrcyBpbiBhcHBsaWNhdGlvbnMgb3IgZXh0cmEKCSAgY29kZSBpbiBzaW5rcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgSGFsZiBoYWNrLCBoYWxmIHV0aWxpdHk6IHNldCBhIHBpcGVsaW5lIHRvIFBBVVNFRCBmb3Igc2VlayBldmVudHMsCgkgIHNpbmNlIHRoYXQgaXMgdGhlIG9ubHkgd2F5IHdlIGNhbiBndWFyYW50ZWUgYS92IHN5bmMuIE1lYW5zIHRoYXQKCSAgeW91IGNhbiBkbyBnc3RfZWxlbWVudF9zZWVrIChwaXBlbGluZSwgbWV0aG9kLCBwb3MpOyBvbiBhIHBpcGVsaW5lCgkgIGFuZCBpdCAianVzdCB3b3JrcyIuCgoyMDA1LTAzLTI1IDA5OjM1OjAxICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogTG9jay91bmxvY2sgbWlzbWF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayk6CgkgIExvY2svdW5sb2NrIG1pc21hdGNoLgoKMjAwNS0wMy0yNSAwMDozNTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtcGx1Z2lucy1iYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgZXJyb3Igb3V0IHVudGlsIGRvY3MgYXJlIGZpeGVkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICByZW1vdmUgdGhyZWFkCgoyMDA1LTAzLTIyIDE0OjIzOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWN0aXZhdGVkIG1vcmUgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChTVEFSVF9URVNUKSwgKGdzdF9kYXRhX3N1aXRlKSwgKG1haW4pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCksCgkgIChnc3Rfc3RydWN0dXJlX2NvcHlfY29uZGl0aW9uYWwpOgoJICBBY3RpdmF0ZWQgbW9yZSB0ZXN0cy4KCSAgQWRkZWQgbWVzc2FnZSB0ZXN0LgoJICBBZGRlZCBHX1RZUEVfUE9JTlRFUiB0byBHc3RTdHJ1Y3R1cmUuCgoyMDA1LTAzLTIyIDExOjMyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIERvY3MgdXBkYXRlcwoKMjAwNS0wMy0yMSAxODoxNzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRml4IGNvcHktYW5kLXBhc3RlIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBGaXggY29weS1hbmQtcGFzdGUgZXJyb3IuCgoyMDA1LTAzLTIxIDE3OjM0OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZGF0YS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3Rwcm9iZS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHNjaGVkdWxlci5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2ludGVyZmFjZS5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L2dzdHRocmVhZC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9zY2hlZHVsZXJzL2NvdGhyZWFkc19jb21wYXQuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZW50cnlzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5jOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9ndGhyZWFkLWNvdGhyZWFkcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL21hc3NfZWxlbWVudHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIE5leHQgYmlnIG1lcmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTmV4dCBiaWcgbWVyZ2UuCgkgIEFkZGVkIEdzdEJ1cyBmb3IgbWFpbmxvb3AgaW50ZWdyYXRpb24uCgkgIEFkZGVkIEdzdE1lc3NhZ2UgZm9yIHNlbmRpbmcgbm90aWZpY2F0aW9ucyBvbiB0aGUgYnVzLgoJICBBZGRlZCBHc3RUYXNrIGFzIGFuIGFic3RyYWN0aW9uIGZvciBwaXBlbGluZSBlbnRyeSBwb2ludHMuCgkgIFJlbW92ZWQgR3N0VGhyZWFkLgoJICBSZW1vdmVkIFNjaGVkdWxlcnMuCgkgIFNpbXBsaWZpZWQgR3N0UXVldWUgZm9yIG11bHRpdGhyZWFkZWQgY29yZS4KCSAgTWFkZSBfbGluayB0aHJlYWRzYWZlLCByZW1vdmVkIG9sZCBjYXBzbmVnby4KCSAgQWRkZWQgU1RSRUFNX0xPQ0sgYW5kIFBSRVJPTExfTE9DSyBpbiBHc3RQYWQuCgkgIEFkZGVkIHBhZCBibG9ja2luZyBmdW5jdGlvbnMuCgkgIFJld29ya2VkIHNjaGVkdWxpbmcgZnVuY3Rpb25zIGluIEdzdFBhZCB0byBwcmVwYXJlIGZvcgoJICBzY2hlZHVsaW5nIHVwZGF0ZXMgc29vbi4KCSAgTW92ZWQgZXZlbnRzIG91dCBvZiBkYXRhIHN0cmVhbS4KCSAgU2ltcGxpZmllZCBHc3RFdmVudCB0eXBlcy4KCSAgQWRkZWQgcmV0dXJuIHZhbHVlcyB0byBwdXNoL3B1bGwuCgkgIFJlbW92ZWQgY2xvY2tpbmcgZnJvbSBHc3RFbGVtZW50LgoJICBBZGRlZCBwcm90b3R5cGVzIGZvciBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZm9yIG5leHQgbWVyZ2UuCgkgIFJlbW92ZWQgaXRlcmF0ZSBmcm9tIGJpbnMgYW5kIHN0YXRlIGNoYW5nZSBtYW5hZ2VtZW50LgoJICBGaXhlZCBzb21lIGVsZW1lbnRzLCBkaXNhYmxlZCBvdGhlcnMgZm9yIG5vdy4KCSAgRml4ZWQgLWluc3BlY3QgYW5kIC1sYXVuY2guCgkgIEFkZGVkIGNoZWNrIGZvciBHc3RCdXMuCgoyMDA1LTAzLTEwIDEyOjUxOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOiAoZ3N0X2Nsb2NrX2RlYnVnKSwgKGVsZW1lbnRfd2FpdCksCgkgIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvZGxvcGVuL2xvYWRnc3QuYzogKGRvX3Rlc3QpOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzogKGFkZF9yZW1vdmVfdGVzdDEpLAoJICAoYWRkX3JlbW92ZV90ZXN0MiksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudC5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChzaWdpbnRfaGFuZGxlcl9zaWdoYW5kbGVyKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgZG9jIGFib3V0IGNsb2NrLgoJICByZW1vdmVkIGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlX3VwKCksIG1hcmtlZCBtZXRob2RzCgkgIGZvciByZW1vdmFsLgoJICBGaXggbW9yZSB0ZXN0c3VpdGVzLgoKMjAwNS0wMy0wOSAxNzoyODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBfcGFkX2dldF9kaXJlY3Rpb24gd3J0IGdob3N0cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfZGlyZWN0aW9uKSwKCSAgKF9nc3RfcGFkX2RlZmF1bHRfZml4YXRlX2ZvcmVhY2gpLCAoZ3N0X3BhZF9jb2xsZWN0diksCgkgIChnc3RfcGFkX2NvbGxlY3RfdmFsaXN0KToKCSAgKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2F1ZGlvc2NhbGUuYzogKHRlc3RfY2Fwcyk6CgkgICogdGVzdHN1aXRlL2NhcHMvY2Fwcy5jOiAodGVzdDEpLCAodGVzdDIpLCAodGVzdDMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9lbnVtY2Fwcy5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0Mi5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOiAobXlfZml4YXRlKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3NldHMuYzogKGNoZWNrX2NhcHMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6IChjaGVja19jYXBzKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3N1YnRyYWN0LmM6IChjaGVja19jYXBzKToKCSAgRml4IF9wYWRfZ2V0X2RpcmVjdGlvbiB3cnQgZ2hvc3RwYWRzLgoJICBGaXggY2FwcyB0ZXN0c3VpdGUuCgoyMDA1LTAzLTA5IDE2OjEwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZW50cnlzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkgIEFkZGVkIEdzdEJpbiB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgR3N0QmluIHRlc3QuCgkgIEFkZGVkIEdzdFN5c3RlbUNsb2NrIHRlc3QuCgkgIEltcGxlbWVudGVkIGNsb2NrIGRpc3RyaWJ1dGlvbiBjb2RlIGluIEdzdEJpbi4KCSAgSW1wbGVtZW50ZWQgaXRlcmF0ZSBzaW5rcyBtZXRob2QgZm9yIGZ1dHVyZSB1c2UuCgkgIFJlYXJyYW5nZWQgZ3N0ZWxlbWVudC5oCgkgIEZpeCBHc3RJdGVyYXRvciBjb21wYXJpc29uIGJ1Zy4KCSAgTW92ZWQgc29tZSBjb2RlIHRvIEdzdFBpcGVsaW5lLCBtb3N0bHkgY2xvY2tpbmcgcmVsYXRlZC4KCjIwMDUtMDMtMDkgMTE6MDg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBCdW1wIHZlcnNpb24gbnVtYmVyLCB3ZSdyZSBub3cgMC45LjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lX3JlY3Vyc2VfdXApOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3JlZiksIChnc3RfY2xvY2tfaWRfdW5yZWYpLAoJICAoZ3N0X2Nsb2NrX2lkX2NvbXBhcmVfZnVuYyksIChnc3RfY2xvY2tfaWRfd2FpdCksCgkgIChnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3RfY2xvY2tfaW5pdCksCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKSwgKGdzdF9jbG9ja19nZXRfdGltZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9wYWRfZGVmYXVsdF9maXhhdGVfZm9yZWFjaCksCgkgIChnc3RfcGFkX2NvbGxlY3R2KSwgKGdzdF9wYWRfY29sbGVjdF92YWxpc3QpLCAoZ3N0X3BhZF9xdWVyeSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBCdW1wIHZlcnNpb24gbnVtYmVyLCB3ZSdyZSBub3cgMC45LjAKCSAgQWRkIGZ1dHVyZSBkZWJ1Z2dpbmcgY2F0ZWdvcnkuCgkgIEZpeCBOVUxMIF91bnJlZigpIGluIF9nZXRfYnlfbmFtZV9yZWN1cnNlX3VwCgkgIFJlYXJyYW5nZSBnc3RwYWQuaC4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDUtMDMtMDggMTc6NDI6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNoYXBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgUmVtb3ZlIHRocmVhZHNhZmUgcHJvcGVydGllcy4gRml4IGVsZW1lbnRzIGJlY2F1c2UgR09iamVjdCBjb21wbGFpbnMgd2hlbiBpbnN0YWxsaW5nIGEgcHJvcGVydHkgYmVmb3JlIGRlY2xhcmluZyBhIHNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgdGhyZWFkc2FmZSBwcm9wZXJ0aWVzLiBGaXggZWxlbWVudHMgYmVjYXVzZSBHT2JqZWN0CgkgIGNvbXBsYWlucyB3aGVuIGluc3RhbGxpbmcgYSBwcm9wZXJ0eSBiZWZvcmUgZGVjbGFyaW5nIGEKCSAgc2V0L2dldF9wcm9wZXJ0eSBoYW5kbGVyLgoJICBSZWFycmFuZ2UgZ3N0ZWxlbWVudC5oIGZpbGUsIHVzZSBTVEFURSBtYWNyb3MgZm9yIHN0YXRlIGxvY2tzLgoJICBGcmVlIG11dGV4ZXMgaW4gdGhlIGZpbmFsaXplIG1ldGhvZCBpbnN0ZWFkIG9mIGRpc3Bvc2UuCgoyMDA1LTAzLTA4IDE1OjU3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgcGFyZW50YWdlIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGdzdC9nc3R0aHJlYWQuYzogKGdzdF90aHJlYWRfcmVsZWFzZV9jaGlsZHJlbl9sb2Nrcyk6CgkgIEFkZGVkIHBhcmVudGFnZSBjaGVjay4KCSAgRml4IGJ1aWxkIG9nIEdzdFRocmVhZCBhZ2Fpbi4KCjIwMDUtMDMtMDggMTQ6Mzg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIHVwZGF0ZXMsIGNsZWFuIHVwIHNvbWUgaGVhZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKSwgKGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWUpLCAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9sb29wX2Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKSwgKGdzdF9vYmplY3Rfc2luayksIChnc3Rfb2JqZWN0X2Rpc3Bvc2UpLAoJICAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpLCAoZ3N0X29iamVjdF9zZXRfbmFtZSksCgkgIChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpLCAoZ3N0X29iamVjdF91bnBhcmVudCksCgkgIChnc3Rfb2JqZWN0X2NoZWNrX3VuaXF1ZW5lc3MpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jcyB1cGRhdGVzLCBjbGVhbiB1cCBzb21lIGhlYWRlcnMuCgkgIEZyZWUgaXRlcmF0b3JzIGluIEdzdEJpbi4KCSAgR3N0T2JqZWN0IGlzIG5vdyBsb29raW5nIGdvb2QuCgoyMDA1LTAzLTA3IDE4OjMzOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBBZGRlZCBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrLy5jdnNpZ25vcmU6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0LWxpYnMvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChwb3VuZF9idXNfd2l0aF9tZXNzYWdlcyksIChwdWxsX21lc3NhZ2VzKSwKCSAgKFNUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RkYXRhLmM6IChTVEFSVF9URVNUKSwgKHRocmVhZF9yZWYpLCAodGhyZWFkX3VucmVmKSwKCSAgKGdzdF9kYXRhX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAobWFrZV9saXN0X29mX2ludHMpLCAoU1RBUlRfVEVTVCksCgkgIChhZGRfZm9sZF9mdW5jKSwgKGdzdGl0ZXJhdG9yX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKGdzdF9mYWtlX29iamVjdF9nZXRfdHlwZSksIChTVEFSVF9URVNUKSwKCSAgKHRocmVhZF9uYW1lX29iamVjdCksICh0aHJlYWRfbmFtZV9vYmplY3RfZGVmYXVsdCksCgkgIChnc3Rfb2JqZWN0X25hbWVfY29tcGFyZSksIChnc3Rfb2JqZWN0X3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpLCAodGhyZWFkX2xpbmtfdW5saW5rKSwKCSAgKGdzdF9wYWRfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyksIChnc3RfY2hlY2tfaW5pdCk6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAocnVuX3BpcGVsaW5lKSwgKFNUQVJUX1RFU1QpLCAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgY2hlY2tzLgoKMjAwNS0wMy0wNyAxODoyOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBBZGRlZCBtaXNzaW5nIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9pbml0KSwgKGdzdF9pdGVyYXRvcl9uZXcpLAoJICAoZ3N0X2xpc3RfaXRlcmF0b3JfbmV4dCksIChnc3RfbGlzdF9pdGVyYXRvcl9yZXN5bmMpLAoJICAoZ3N0X2xpc3RfaXRlcmF0b3JfZnJlZSksIChnc3RfaXRlcmF0b3JfbmV3X2xpc3QpLAoJICAoZ3N0X2l0ZXJhdG9yX3BvcCksIChnc3RfaXRlcmF0b3JfbmV4dCksIChnc3RfaXRlcmF0b3JfcmVzeW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9mcmVlKSwgKGdzdF9pdGVyYXRvcl9wdXNoKSwgKGZpbHRlcl9uZXh0KSwKCSAgKGZpbHRlcl9yZXN5bmMpLCAoZmlsdGVyX3VuaW5pdCksIChmaWx0ZXJfZnJlZSksCgkgIChnc3RfaXRlcmF0b3JfZmlsdGVyKSwgKGdzdF9pdGVyYXRvcl9mb2xkKSwgKGZvcmVhY2hfZm9sZF9mdW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9mb3JlYWNoKSwgKGZpbmRfY3VzdG9tX2ZvbGRfZnVuYyksCgkgIChnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20pOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZGRlZCBtaXNzaW5nIGZpbGVzLgoKMjAwNS0wMy0wNyAxODoyNzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5jOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmM6CgkqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXJpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y3B1LmM6CgkqIGdzdC9nc3RkYXRhLmM6CgkqIGdzdC9nc3RkYXRhLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZW1jaHVuay5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cHJvYmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnLmM6CgkqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBvL25iLnBvOgoJKiBwby9ydS5wbzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOgoJKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIEZpcnN0IFRIUkVBREVEIGJhY2twb3J0IGF0dGVtcHQsIGZvY3VzaW5nIG9uIGFkZGluZyBsb2NrcyBhbmQgbWFraW5nIHN1cmUgdGhlIEFQSSBpcyB0aHJlYWRzYWZlLiBOZWVkcyBtb3JlIHdvcmsuIE1vci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRmlyc3QgVEhSRUFERUQgYmFja3BvcnQgYXR0ZW1wdCwgZm9jdXNpbmcgb24gYWRkaW5nIGxvY2tzIGFuZAoJICBtYWtpbmcgc3VyZSB0aGUgQVBJIGlzIHRocmVhZHNhZmUuIE5lZWRzIG1vcmUgd29yay4gTW9yZSBkb2NzCgkgIGZvbGxvdyB0aGlzIHdlZWsuCgoyMDA1LTAyLTI1IDAwOjEwOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGFub3RoZXIgbm8tZGVidWcgYnVpbGQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIG5vLWRlYnVnIGJ1aWxkIGZpeAoKMjAwNS0wMi0yNCAyMzo0MTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmM6CgkgIGRpc2FibGUgZGVidWcgYnVpbGQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIGRlYnVnIGJ1aWxkIGZpeAoKMjAwNS0wMi0yNCAxNzoxMjoxOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBOZXcgZmlsZXMsIGdvb2QgZm9yIHJ1bm5pbmcgY29tcGxleGl0eSBiZW5jaG1hcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9iZW5jaC1jb21wbGV4aXR5LnNjbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmdudXBsb3Q6IE5ldyBmaWxlcywgZ29vZCBmb3IgcnVubmluZyBjb21wbGV4aXR5CgkgIGJlbmNobWFya3MuCgoyMDA1LTAyLTI0IDE1OjM2OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IE5ldyB0ZXN0LCBzZXRzIHVwIE4gZWxlbWVudHMsIGF0IGVhY2ggbGV2ZWwgdGVlaW5nIGludG8gTSBzdHJlYW1zIHBlciBlbGVtZW50LiBFZWVlbnRlcmVzdGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY29tcGxleGl0eS5jOiBOZXcgdGVzdCwgc2V0cyB1cCBOIGVsZW1lbnRzLCBhdCBlYWNoIGxldmVsCgkgIHRlZWluZyBpbnRvIE0gc3RyZWFtcyBwZXIgZWxlbWVudC4gRWVlZW50ZXJlc3RpbmcuCgoyMDA1LTAyLTI0IDEyOjMxOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9tYXNzX2VsZW1lbnRzLmdudXBsb3Q6IGdudXBsb3QgZmlsZSBmb3IgdGhlIG1hc3NfZWxlbWVudHMgYmVuY2htYXJrLiBSdW4gYXMgZ251cGxvdCBtYXNzX2VsZW1lbnRzLmdudXBsb3QgPiBmb28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbWFzc19lbGVtZW50cy5nbnVwbG90OiBnbnVwbG90IGZpbGUgZm9yIHRoZSBtYXNzX2VsZW1lbnRzCgkgIGJlbmNobWFyay4gUnVuIGFzIGdudXBsb3QgbWFzc19lbGVtZW50cy5nbnVwbG90ID4gZm9vLnBzLCBhZnRlcgoJICBydW5uaW5nIGJlbmNoLW1hc3NfZWxlbWVudHMuc2NtLgoJICAqIHRlc3RzL2JlbmNoLW1hc3NfZWxlbWVudHMuc2NtOiBOZXcgc2NyaXB0LCBydW5zIG1hc3NfZWxlbWVudHMKCSAgZm9yIHZhcmlvdXMgbnVtYmVycyBvZiBpZGVudGl0aWVzLCBvdXRwdXR0aW5nIHRoZSByZXN1bHRzIHRvIGEKCSAgZmlsZS4gUmVxdWlyZXMgZ3VpbGUgMS42LiBKdXN0IGZvciB0ZXN0aW5nLgoKMjAwNS0wMi0yMyAxNToxNDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkgIG9uZSBtb3JlIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25lIG1vcmUgZml4CgoyMDA1LTAyLTIzIDE1OjA2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJICBjb21waWxlIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbXBpbGUgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wMi0yMiAxNjozNDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgaHVudGluZyBzZWFzb24gb24gMC45IGlzIG5vdyBPUEVOCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBodW50aW5nIHNlYXNvbiBvbiAwLjkgaXMgbm93IE9QRU4KCg==