MjAwMi0wMi0yOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKICAgICAgICAqIFNUQUJMRSBicmFuY2ggY3JlYXRlZCwgdGhlIEhFQUQgaXMgdXNlZCBmb3IgdGhlIG1ham9yIHJlLWZhY3RvcmluZwogICAgICAgIG5lZWRlZCB0byBnZXQgRnJlZVR5cGUgMi4yIG91dAoKICAgICAgICAqIHNyYy9zZm50L3R0bG9hZC5jIChUVF9Mb2FkX05hbWVzKTogc2ltcGxpZnlpbmcgYW5kIHNlY3VyaW5nIHRoZQogICAgICAgIG5hbWVzIHRhYmxlIGxvYWRlci4gSW52YWxpZCBpbmRpdmlkdWFsIG5hbWUgZW50cmllcyBhcmUgbm93IGhhbmRsZWQKICAgICAgICBjb3JyZWN0bHkuIFRoaXMgYWxsb3dzIHRoZSBsb2FkaW5nIG9mIHZlcnkgYnVnZ3kgZm9udHMgbGlrZQogICAgICAgICJmb3hqdW1wLnR0ZiIgd2l0aG91dCBhbGxvY2F0aW5nIHRvbnMgb2YgbWVtb3J5IGFuZCBjYXVzaW5nIGNyYXNoZXMuLgoKMjAwMi0wMi0wOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogVmVyc2lvbiAyLjAuOCByZWxlYXNlZC4KCT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgKiBkb2NzL0NIQU5HRVM6IHVwZGF0aW5nIGZvciAyLjAuOAoKICAgICAgICAqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogc2V0dGluZyBQQVRDSF9MRVZFTCB0byA4IGFuZAogICAgICAgIHJlbW92aW5nIEZUX0dldF9OZXh0X0NoYXIgZnJvbSB0aGUgQVBJICh0ZW1wb3JhcmlseSkKCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogQWRkaW5nIGNvbW1lbnRzIHRvIEZUX0dldF9OZXh0X0NoYXI7Cglub3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBtaWdodCB0ZW1wb3JhcmlseSBiZSByZW1vdmVkIGZvciB0aGUgMi4wLjgKCXJlbGVhc2UuCgoyMDAyLTAyLTA3ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvcGNmL3BjZnJlYWQuYyAocGNmX2xvYWRfZm9udCk6IFJlbW92ZWQgaW1tYXR1cmUgc3VwcG9ydCBvZgoJdGhlIEFWRVJBR0VfV0lEVEggcHJvcGVydHkuCgoyMDAyLTAyLTA2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvc2ZudC9zZm9ianMuYyAoU0ZOVF9Mb2FkX0ZhY2UpOiBTaW5jZSBtYW55IGZvbnRzIGVtYmVkZGVkIGluCglQREYgZG9jdW1lbnRzIGRvIG5vdCBpbmNsdWRlICdjbWFwJywgJ3Bvc3QnIGFuZCAnbmFtZScgdGFibGVzLCB0aGUKCVNGTlQgZmFjZSBsb2FkZXIgaGFzIGJlZW4gY2hhbmdlZCB0byBub3QgaW1tZWRpYXRlbHkgcmVwb3J0IGFuCgllcnJvciBpZiB0aGVzZSBhcmUgbm90IHByZXNlbnQuCgoJTm90ZSB0aGF0IHRoZSBzcGVjaWZpY2F0aW9uIF9yZXF1aXJlc18gdGhlc2UgdGFibGVzLCBidXQgQWRvYmUKCXNlZW1zIHRvIGlnbm9yZSBpdCBjb21wbGV0ZWx5LgoKCSogc3JjL3NmbnQvdHRjbWFwLmM6IFJlbW92aW5nIGNvbXBpbGVyIHdhcm5pbmdzLgoKCSogc3JjL3BjZi9wY2ZyZWFkLmMgKHBjZl9yZWFkX1RPQyk6IFVzZSBGVF9VSW50LgoJKHBjZl9wYXJzZV9tZXRyaWMsIHBjZl9wYXJzZV9jb21wcmVzc2VkX21ldHJpYyk6IFJlbW92ZWQuICBDb2RlCglpcyBub3cgaW4gLi4uCgkocGNmX2dldF9tZXRyaWMpOiBIZXJlLgoJKHBjZlNlZWtUb1R5cGUpOiBSZW5hbWVkIHRvIC4uLgoJKHBjZl9zZWVrX3RvX3RhYmxlX3R5cGUpOiBUaGlzLgoJVXNlIEZUX0ludC4KCShwY2ZIYXNUeXBlKTogUmVuYW1lZCB0byAuLi4KCShwY2ZfaGFzX3RhYmxlX3R5cGUpOiBUaGlzLgoJVXNlIEZUX0ludC4KCShmaW5kX3Byb3BlcnR5KTogUmVuYW1lZCB0byAuLi4KCShwY2ZfZmluZF9wcm9wZXJ0eSk6IFRoaXMuCglVc2UgRlRfSW50LgoJKHBjZl9nZXRfYml0bWFwcywgcGNmX2dldF9lbmNvZGluZ3MpOiBIYW5kbGUgaW52YWxpZCBQQ0YgZm9udHMKCWJldHRlciAoZGVsYXlpbmcgZm9ybWF0IGNoZWNrcyBvdXQgb2YgRlRfQWNjZXNzX0ZyYW1lIC4uCglGVF9Gb3JnZXRfRnJhbWUgYmxvY2tzIHRvIGF2b2lkIGxlYXZpbmcgdGhlIHN0cmVhbSBpbiBhbiBpbmNvcnJlY3QKCXN0YXRlIHdoZW4gZW5jb3VudGVyaW5nIGFuIGludmFsaWQgUENGIGZvbnQpLgoKCSogc3JjL3BjZi9wY2Zkcml2ZXIuYyAoUENGX0RvbmVfRmFjZSk6IFJlbmFtZWQgdG8gLi4uCgkoUENGX0ZhY2VfRG9uZSk6IFRoaXMuCgkoUENGX0luaXRfRmFjZSk6IFJlbmFtZWQgdG8gLi4uCgkoUENGX0ZhY2VfSW5pdCk6IFRoaXMuCgkoUENGX0dldF9DaGFyX0luZGV4KTogUmVuYW1lZCB0byAuLi4KCShQQ0ZfQ2hhcl9HZXRfSW5kZXgpOiBUaGlzLgoJKFBDRl9HZXRfTmV4dF9DaGFyKTogUmVuYW1lZCB0byAuLi4KCShQQ0ZfQ2hhcl9HZXRfTmV4dCk6IFRoaXMuCgkocGNmX2RyaXZlcl9jbGFzcyk6IFVwZGF0ZWQuCgoJKiBzcmMvcGNmL3BjZi5oIChQQ0ZfRG9uZV9GYWNlKTogUmVtb3ZlZC4KCjIwMDItMDItMDYgIERldGxlZiBX/HJrbmVyICA8VGV0aVNvZnRAYXBnLmxhaG4uZGU+CgoJKiBzcmMvcGNmL3BjZmRyaXZlci5jIChGVF9Eb25lX0ZhY2UpOiBGaXhlZCBzbWFsbCBtZW1vcnkgbGVhay4KCgkqIHNyYy9wY2YvcGNmcmVhZC5jIChwY2ZfbG9hZF9mb250KTogTm93IGhhbmRsZXMgdGhlICJBVkVSQUdFX1dJRFRIIgoJcHJvcGVydHkgdG8gcmV0dXJuIGNvcnJlY3QgY2hhcmFjdGVyIHBpeGVsICh3aWR0aC9oZWlnaHQpIHBhaXJzIGZvcgoJZW1iZWRkZWQgYml0bWFwcy4KCjIwMDItMDItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCglBZGRpbmcgdGhlIGZ1bmN0aW9uIGBGVF9HZXRfTmV4dF9DaGFyJywgZG9pbmcgdGhlIG9idmlvdXMgdGhpbmcKCXcuci50LiB0aGUgc2VsZWN0ZWQgY2hhcm1hcC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogQWRkIHByb3RvdHlwZS4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRyaXZlci5oOiBBZGQgYEZURHJpdmVyX2dldE5leHRDaGFyJwoJdHlwZWRlZi4KCShGVF9Ecml2ZXJfQ2xhc3MpOiBVc2UgaXQuCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvcHNuYW1lcy5oOiBBZGQgYFBTX05leHRfVW5pY29kZV9GdW5jJwoJdHlwZWRlZi4KCShQU05hbWVzX0ludGVyZmFjZSk6IFVzZSBpdC4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90dHR5cGVzLmg6IEFkZCBgVFRfQ2hhck5leHRfRnVuYycKCXR5cGVkZWYuCgkoVFRfQ01hcFRhYmxlKTogVXNlIGl0LgoKCSogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX0dldF9OZXh0X0NoYXIpOiBOZXcgZnVuY3Rpb24sIGltcGxlbWVudGluZwoJaGlnaC1sZXZlbCBBUEkuCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYyAoY2ZmX2dldF9uZXh0X2NoYXIpOiBOZXcgZnVuY3Rpb24uCgkoY2ZmX2RyaXZlcl9jbGFzcyk6IEFkZCBpdC4KCSogc3JjL2NpZC9jaWRyaXZlci5jIChDaWRfR2V0X05leHRfQ2hhcik6IE5ldyBmdW5jdGlvbi4KCSh0MWNpZF9kcml2ZXJfY2xhc3MpOiBBZGQgaXQuCgkqIHNyYy9wY2YvcGNmZHJpdmVyLmMgKFBDRl9HZXRfTmV4dF9DaGFyKTogTmV3IGZ1bmN0aW9uLgoJKHBjZl9kcml2ZXJfY2xhc3MpOiBBZGQgaXQuCgkqIHNyYy9wc25hbWVzL3BzbW9kdWxlLmMgKFBTX05leHRfVW5pY29kZSk6IE5ldyBmdW5jdGlvbi4KCShwc25hbWVzX2ludGVyZmFjZSk6IEFkZCBpdC4KCSogc3JjL3NmbnQvdHRjbWFwLmMgKGNvZGVfdG9fbmV4dDAsIGNvZGVfdG9fbmV4dDIsIGNvZGVfdG9fbmV4dDQsCgljb2RlX3RvX25leHQ2LCBjb2RlX3RvX25leHRfOF8xMiwgY29kZV90b19uZXh0XzEwKTogTmV3IGF1eGlsaWFyeQoJZnVuY3Rpb25zLgoJKFRUX0NoYXJNYXBfTG9hZCk6IFVzZSB0aGVtLgoJKiBzcmMvdHJ1ZXR5cGUvdHRkcml2ZXIuYyAoR2V0X05leHRfQ2hhcik6IE5ldyBmdW5jdGlvbi4KCSh0dF9kcml2ZXJfY2xhc3MpOiBBZGQgaXQuCgkqIHNyYy90eXBlMS90MWRyaXZlci5jIChHZXRfTmV4dF9DaGFyKTogTmV3IGZ1bmN0aW9uLgoJKHQxX2RyaXZlcl9jbGFzcyk6IEFkZCBpdC4KCSogc3JjL3dpbmZudC93aW5mbnQuYyAoRk5UX0dldF9OZXh0X0NoYXIpOiBOZXcgZnVuY3Rpb24uCgkod2luZm50X2RyaXZlcl9jbGFzcyk6IEFkZCBpdC4KCgkqIHNyYy9wY2YvcGNmcmVhZC5jIChwY2ZfbG9hZF9mb250KTogRm9yIG5vdywgcmVwb3J0IFVuaWNvZGUgZm9yCglVbmljb2RlIGFuZCBMYXRpbiAxIGVuY29kaW5ncy4KCjIwMDItMDItMDIgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGJ1aWxkcy91bml4L2ZyZWV0eXBlLWNvbmZpZy5pbjogQWRkIG1pc3NpbmcgYGZpJy4KCgoJKiBWZXJzaW9uIDIuMC43IHJlbGVhc2VkLgoJPT09PT09PT09PT09PT09PT09PT09PT09PQoKCjIwMDItMDItMDEgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogSW5jcmVhc2luZyBGUkVFVFlQRV9QQVRDSCB0byA3Cglmb3IgdGhlIG5ldyByZWxlYXNlLgoKMjAwMi0wMS0zMSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogUkVBRE1FLCBSRUFETUUuVU5YLCBkb2NzL0NIQU5HRVM6IFVwZGF0aW5nIGRvY3VtZW50YXRpb24gZm9yIHRoZQoJMi4wLjcgcmVsZWFzZS4KCjIwMDItMDEtMzAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIElOU1RBTEw6IE1vdmVkIHRvIC4uLgoJKiBkb2NzL0lOU1RBTEw6IEhlcmUgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggdGhlICJpbnN0YWxsIiBzY3JpcHQgb24KCVdpbmRvd3MsIHdoZXJlIHRoZSBmaWxlc3lzdGVtIGRvZXNuJ3QgcHJlc2VydmUgY2FzZS4KCjIwMDItMDEtMjkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGNvbmZpZ3VyZTogRml4ZWQgdGhlIHNjcmlwdC4gIEl0IHByZXZpb3VzbHkgZGlkbid0IGFjY2VwdCBtb3JlCgl0aGFuIG9uZSBhcmd1bWVudCBjb3JyZWN0bHkuICBGb3IgZXhhbXBsZSwgd2hlbiB0eXBpbmc6CgoJICAuL2NvbmZpZ3VyZSAtLWRpc2FibGUtc2hhcmVkIC0tZGlzYWJsZS1ubHMKCgl0aGUgIi0tZGlzYWJsZS1ubHMiIHdhcyBpbmNvcnJlY3RseSBzZW50IHRvIHRoZSAibWFrZSIgcHJvZ3JhbS4KCjIwMDItMDEtMjkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIFJFQURNRS5VTlg6IEZpeCB0eXBvLgoJKiBidWlsZHMvdW5peC9pbnN0YWxsLm1rICh1bmluc3RhbGwpOiBGaXggbGlicmFyeSBuYW1lIGZvciBsaWJ0b29sLgoKMjAwMi0wMS0yOCAgRnJhbmNlc2NvIFphcHBhIE5hcmRlbGxpICA8RnJhbmNlc2NvLlphcHBhLk5hcmRlbGxpQGVucy5mcj4KCgkqIHNyYy9wY2YvcGNmZHJpdmVyLmMgKFBDRl9Eb25lX0ZhY2UpOiBGaXggaW5jb3JyZWN0IGRlc3RydWN0aW9uIG9mCgl0aGUgZmFjZSBvYmplY3QgKGZhY2UtPnRvYy50YWJsZXMsIGZhY2UtPnJvb3QuZmFtaWx5X25hbWUsCglmYWNlLT5yb290LmF2YWlsYWJsZV9zaXplLCBmYWNlLT5jaGFyc2V0X2VuY29kaW5nLAoJZmFjZS0+Y2hhcnNldF9yZWdpc3RyeSBhcmUgbm93IGZyZWVkKS4gIFRoYW5rcyB0byBOaWVscyBNb3NlbGV5LgoKMjAwMi0wMS0yOCAgUm9iZXJ0byBBbGFtZWRhICA8b2phbmNhbm9AZ2Vla21haWwuZGU+CgoJKiBzcmMvdHlwZTEvdDFsb2FkLmMgKHBhcnNlX2VuY29kaW5nKTogU2V0IGBsb2FkZXItPm51bV9jaGFycycuCgoyMDAyLTAxLTI4ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvdHlwZTEvdDFsb2FkLmMgKHBhcnNlX3N1YnJzLCBwYXJzZV9jaGFyc3RyaW5ncyk6IFVzZSBjb3B5CglvZiBgYmFzZScgc3RyaW5nIGZvciBkZWNyeXB0aW5nIHRvIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIGRhdGEuCglCYXNlZCBvbiBhIHBhdGNoIGJ5IEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC5vcmcucGw+LgoKMjAwMi0wMS0yNyAgR2l1bGlhbm8gUG9jaGluaSAgPHBvY2hpbmlAc2hpbnkuaXQ+CgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYyAoZ3JheV9yZW5kZXJfc2NhbmxpbmUpOiBGaXggYnVnIHdoaWNoIGNhdXNlZAoJYmFkIHJlbmRlcmluZyBvZiB0aGluIGxpbmVzIChsZXNzIHRoYW4gb25lIHBpeGVsIHRoaWNrKS4KCjIwMDItMDEtMjUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYyAoY2ZmX2dldF9uYW1lX2luZGV4KTogTWFrZSBsYXN0IHBhdGNoIHdvcmsKCWFjdHVhbGx5LgoKMjAwMi0wMS0yNSAgTWFydGluIFppbnNlciAgPHppbnNlckBkZWN1cy5kZT4KCgkqIHNyYy9jYWNoZS9mdGNjYWNoZS5jIChmdGNfbm9kZV9kb25lLCBmdGNfbm9kZV9kZXN0cm95KTogRml4Cgljb21waWxhdGlvbiB3YXJuaW5ncy4KCSogc3JjL2Jhc2UvZGVzY3JpcC5tbXMgKE9CSlMpOiBBZGQgYGZ0bW0ub2JqJy4KCSogc3JjL2NhY2hlL2Rlc2NyaXAubW1zIChmdGNhY2hlLm9iaik6IERlcGVuZGVuY2llcyBhZGRlZC4KCjIwMDItMDEtMjUgIFdBTkcgWWkgIDx3YW5neWlAZm91bmRlci5jb20uY24+CgoJKiBzcmMvY2ZmL2NmZmRyaXZyLmMgKGNmZl9nZXRfbmFtZV9pbmRleCk6IEZpeCBkZWFsbG9jYXRpb24gYnVnLgoKMjAwMi0wMS0yMSAgQW50b2luZSBMZWNhICA8QW50b2luZS1GcmVldHlwZUBMZWNhLU1hcnRpLm9yZz4KCgkqIGRvY3MvUEFURU5UUzogVHlwbyBmaXhlZCAodGhhbmtzIHRvIERldGxlZiAiSGF3a2V5ZSIgV/xya25lcikgaW4KCXRoZSBVUkwgZm9yIHRoZSBvbmxpbmUgcmVzb3VyY2UuCgoyMDAyLTAxLTE4ICBJYW4gQnJvd24gIDxpYW4uYnJvd25AcHJpbnRzb2Z0LmRlPgoKCSogYnVpbGRzL3dpbjMyL2Z0ZGVidWcuYzogTmV3IGZpbGUuCgkqIGJ1aWxkcy93aW4zMi92aXN1YWxjL2ZyZWV0eXBlLmRzcDogVXBkYXRlZC4KCjIwMDItMDEtMTggIERldGxlZiBX/HJrbmVyICA8VGV0aVNvZnRAYXBnLmxhaG4uZGU+CgoJKiBidWlsZHMvYW1pZ2Evc3JjL2Jhc2UvZnRzeXN0ZW0uYzogVXBkYXRlZCBmb3IgQW1pZ2FPUyAzLjkuCgkqIGJ1aWxkcy9hbWlnYS9SRUFETUU6IFVwZGF0ZWQuCgoyMDAyLTAxLTE4ICBJYW4gQnJvd24gIDxpYW4uYnJvd25AcHJpbnRzb2Z0LmRlPgoKCSogYnVpbGRzL3dpbjMyL3Zpc3VhbGMvZnJlZXR5cGUuZHNwOiBVcGRhdGVkLgoKMjAwMi0wMS0xMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3VuaXgvZnJlZXR5cGUyLmE0OiBUaGUgc2NyaXB0IHdhcyBzdGlsbCBidWdneS4KCSogYnVpbGRzL3VuaXgvZnJlZXR5cGUtY29uZmlnLmluOiBNYWtlIGl0IHJlYWxseSB3b3JrIGZvciBhbnkgaW5zdGFsbAoJcHJlZml4LgoKMjAwMi0wMS0xMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3VuaXgvZnJlZXR5cGUyLmE0OiBGaXggc29tZSBzZXJpb3VzIGJ1Z3MuCgoyMDAyLTAxLTA5ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBidWlsZHMvdW5peC9jb25maWd1cmUuYWM6IEJ1aWxkIHRvcC1sZXZlbCBKYW1maWxlLgoKMjAwMi0wMS0wOSAgTWF4aW0gU2hlbWFuYXJldiAgPG1jc2VlbWFnZ0B5YWhvby5jb20+CgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYyAoZ3JheV9yZW5kZXJfbGluZSk6IFNtYWxsIG9wdGltaXphdGlvbiB0bwoJdGhlIHNtb290aCBhbnRpLWFsaWFzZWQgcmVuZGVyZXIgdGhhdCBkZWFscyB3aXRoIHZlcnRpY2FsIHNlZ21lbnRzLgoJVGhpcyByZXN1bHRzIGluIGEgNS03JSBzcGVlZHVwIGluIHJlbmRlcmluZyBzcGVlZC4KCjIwMDItMDEtMDggIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglBZGRlZCBzb21lIHdyYXBwZXIgc2NyaXB0cyB0byBtYWtlIHRoZSBpbnN0YWxsYXRpb24gbW9yZQoJVW5peC1mcmllbmRseS4KCgkqIGNvbmZpZ3VyZSwgaW5zdGFsbDogTmV3IGZpbGVzLgoKCSogSU5TVEFMTCwgUkVBRE1FLlVOWDogVXBkYXRlZCBpbnN0YWxsYXRpb24gZG9jdW1lbnRhdGlvbiB0byB1c2UgdGhlCgluZXcgJ2NvbmZpZ3VyZScgYW5kICdpbnN0YWxsJyBzY3JpcHRzLgoKMjAwMi0wMS0wNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCgkqIFZlcnNpb24gMi4wLjYgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PT09CgoKCSogZG9jcy9CVUdTLCBkb2NzL0NIQU5HRVM6IFVwZGF0aW5nIGRvY3VtZW50YXRpb24gZm9yIDIuMC42IHJlbGVhc2UuCgoJKiBzcmMvdG9vbHMvZG9jbWFrZXIucHk6IEZpeGVkIEhUTUwgcXVvdGluZyBpbiBzb3VyY2VzLgoJKGh0bWxfZm9ybWF0KTogUmVwbGFjZWQgd2l0aCAuLi4KCShodG1sX3F1b3RlKTogTmV3IGZ1bmN0aW9uLgoJKGh0bWxfcXVvdGUwKTogTmV3IGZ1bmN0aW9uLgoJKERvY0NvZGU6OmR1bXBfaHRtbDogU21hbGwgaW1wcm92ZW1lbnQuCgkoRG9jUGFyYWdyYXBoOjpkdW1wLCBEb2NCbG9jazo6aHRtbCk6IFVzZSBodG1sX3F1b3RlMCBhbmQgaHRtbF9xdW90ZS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmg6IFNldHRpbmcgZGVmYXVsdCBvcHRpb25zIGZvcgoJYSByZWxlYXNlIGJ1aWxkIChkZWJ1Z2dpbmcgb2ZmLCBieXRlY29kZSBpbnRlcnByZXRlciBvZmYpLgoKCSogc3JjL2Jhc2UvZnRvYmpzLmMsIHNyYy9iYXNlL2Z0b3V0bG4uYywgc3JjL2NhY2hlL2Z0Y2NtYXAuYywKCXNyYy9jZmYvY2ZmbG9hZC5jLCBzcmMvY2ZmL2NmZm9ianMuYywgc3JjL3BzaGludGVyL3BzaGFsZ28yLmMsCglzcmMvc2ZudC90dGxvYWQuYywgc3JjL3NmbnQvdHRzYml0LmM6IFJlbW92aW5nIHNtYWxsIGNvbXBpbGVyCgl3YXJuaW5ncyAoaW4gcGVkYW50aWMgY29tcGlsYXRpb24gbW9kZXMpLgoKMjAwMi0wMS0wNSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9hbGlnbl9saW5rZWRfZWRnZSk6IE1vZGlmaWVkIGNvbXB1dGF0aW9uCglvZiBhdXRvLWhpbnRlZCBzdGVtIHdpZHRoczsgdGhpcyBhdm9pZHMgY29sb3IgZnJpbmdlcyBpbgoJIkNsZWFyVHlwZS1saWtlIiByZW5kZXJpbmcuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChUVF9Mb2FkX0dseXBoX0hlYWRlciwKCVRUX0xvYWRfU2ltcGxlX0dseXBoLCBUVF9Mb2FkX0NvbXBvc2l0ZV9HbHlwaCwgbG9hZF90cnVldHlwZV9nbHlwaCk6CglNb2RpZmllZCB0aGUgVHJ1ZVR5cGUgbG9hZGVyIHRvIG1ha2UgaXQgbW9yZSBwYXJhbm9pZDsgdGhpcyBhdm9pZHMKCW5hc3R5IGJ1ZmZlciBvdmVyZmxvd3MgaW4gdGhlIGNhc2Ugb2YgaW52YWxpZCBnbHlwaCBkYXRhIChhcwoJZW5jb3VudGVyZWQgaW4gdGhlIG91dHB1dCBvZiBzb21lIGJ1Z2d5IGZvbnQgY29udmVydGVycykuCgoyMDAyLTAxLTA0ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBSRUFETUUuVU5YOiBBZGRlZCBzcGVjaWFsIFJFQURNRSBmaWxlIGZvciBVbml4IHVzZXJzLgoKCSogYnVpbGRzL3VuaXgvZnRzeXN0ZW0uYyAoRlRfTmV3X1N0cmVhbSk6IEZpeGVkIHR5cG8uCgoJKiBzcmMvYmFzZS9mdG9ianMuYzogQWRkZWQgI2luY2x1ZGUgRlRfT1VUTElORV9IIHRvIGdldCByaWQKCW9mIGNvbXBpbGVyIHdhcm5pbmdzLgoKCSogc3JjL2Jhc2UvZnRvdXRsbi5jIChGVF9PdXRsaW5lX0NoZWNrKTogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDAyLTAxLTAzICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvdHlwZTEvdDFvYmpzLmMgKFQxX0ZhY2VfSW5pdCk6IEFkZCBjYXN0IHRvIGF2b2lkIGNvbXBpbGVyCgl3YXJuaW5nLgoKMjAwMi0wMS0wMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogYnVpbGRzL3VuaXgvZnRzeXN0ZW0uYyAoRlRfTmV3X1N0cmVhbSk6IEFkZGVkIGEgZml4IHRvIGVuc3VyZSB0aGF0CglhbGwgRnJlZVR5cGUgaW5wdXQgc3RyZWFtcyBhcmUgY2xvc2VkIGluIGNoaWxkIHByb2Nlc3NlcyBvZiBhICJmb3JrIgoJb24gVW5peCBzeXN0ZW1zLiAgVGhpcyBpcyBpbXBvcnRhbnQgdG8gYXZvaWQgKHBvdGVudGlhbCkgYWNjZXNzCgljb250cm9sIGlzc3Vlcy4KCjIwMDItMDEtMDMgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy90eXBlMS90MW9ianMuYyAoVDFfRmFjZV9Jbml0KTogRml4ZWQgYSBidWcgdGhhdCBjcmFzaGVkIHRoZQoJbGlicmFyeSB3aGVuIGRlYWxpbmcgd2l0aCBjZXJ0YWluIHdlaXJkIGZvbnRzIGxpa2UgIlN0YWxpbmdyYWQiLCBpbgoJInNhZG4ucGZiIiAodGhpcyBmb250IGhhcyBubyBmdWxsIGZvbnQgbmFtZSBlbnRyeSkuCgoJKiBzcmMvYmFzZS9mdG91dGxuLmMsIGluY2x1ZGUvZnJlZXR5cGUvZnRvdXRsbi5oIChGVF9PdXRsaW5lX0NoZWNrKToKCU5ldyBmdW5jdGlvbiB0byBjaGVjayB0aGUgY29uc2lzdGVuY3kgb2Ygb3V0bGluZSBkYXRhLgoKCSogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX0xvYWRfR2x5cGgpOiBVc2UgYEZUX091dGxpbmVfQ2hlY2snIHRvCgllbnN1cmUgdGhhdCBsb2FkZWQgZ2x5cGhzIGFyZSB2YWxpZC4gIFRoaXMgYWxsb3dzIGNlcnRhaW4gZm9udHMgbGlrZQoJInR0MTA5NW1fLnR0ZiIgdG8gYmUgbG9hZGVkIGV2ZW4gdGhvdWdoIGl0IGFwcGVhcnMgdGhleSBjb250YWluCglyZWFsbHkgZnVua3kgZ2x5cGhzLgoKCVRoZXJlIHN0aWxsIGlzIGEgYnVnIHRoZXJlLCB0aG91Z2guCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChsb2FkX3RydWV0eXBlX2dseXBoKTogRml4IGVycm9yIGNvbmRpdGlvbi4KCjIwMDEtMTItMzAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYyAoYWhfaGludGVyX2xvYWQpOiBGaXggYWR2YW5jZSB3aWR0aAoJY29tcHV0YXRpb24gb2YgYXV0by1oaW50ZWQgZ2x5cGhzLiAgVGhpcyBub3RpY2VhYmx5IGltcHJvdmVzIHRoZQoJc3BhY2luZyBvZiBsZXR0ZXJzIGluIEtERSBhbmQgR25vbWUuCgoyMDAxLTEyLTI1ICBBbnRvaW5lIExlY2EgPEFudG9pbmUtRnJlZXR5cGVATGVjYS1NYXJ0aS5vcmc+CgoJKiBidWlsZHMvZG9zL2RldGVjdC5tazogQ29ycmVjdGluZyB0aGUgb3JkZXIgZm9yIEJvcmxhbmQgY29tcGlsZXJzOgoJMTYtYml0IGJjYyB3YXMgbmV2ZXIgc2VsZWN0ZWQsIGFsd2F5cyBvdmVycmlkZGVuIGJ5IDMyLWJpdCBiY2MzMi4KCjIwMDEtMTItMjIgIEZyYW5jZXNjbyBaYXBwYSBOYXJkZWxsaSAgPEZyYW5jZXNjby5aYXBwYS5OYXJkZWxsaUBlbnMuZnI+CgoJKiBzcmMvcGZjL3BjZnJlYWQuYyAocGNmX2xvYWRfZm9udCk6IEhhbmRsZSBwcm9wZXJ0eSBgUE9JTlRfU0laRScKCWFuZCBmaXggaW5jb3JyZWN0IGNvbXB1dGF0aW9uIG9mIGBhdmFpbGFibGVfc2l6ZXMnLgoKMjAwMS0xMi0yMiAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfbG9hZCk6IEF1dG8taGludGVkIGdseXBocyBoYWQgYW4KCWluY29ycmVjdCBnbHlwaCBhZHZhbmNlIGluIHRoZSBjYXNlIG9mIG1vbm8td2lkdGggZm9udHMgKGxpa2UKCUNvdXJpZXIsIEFuZGFsZSBNb25vLCBhbmQgb3RoZXJzKS4KCjIwMDEtMTItMjIgIERldGxlZiBX/HJrbmVyICA8VGV0aVNvZnRAYXBnLmxhaG4uZGU+CgoJKiBidWlsZHMvYW1pZ2EvKjogQWRhcHRhdGlvbnMgdG8gbGF0ZXN0IGNoYW5nZXMuCglTdXBwb3J0IGFkZGVkIGZvciBNb3JwaE9TLgoKMjAwMS0xMi0yMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3BzaGludGVyL3BzaHJlYy5jIChGVF9DT01QT05FTlQpOiBSZWRlZmluZSB0byBgdHJhY2VfcHNocmVjJy4KCShwc19tYXNrX3RhYmxlX21lcmdlLCBwc19oaW50c19vcGVuLCBwc19oaW50c19zdGVtLAoJcHNfaGludHNfdDFzdGVtMywgcHNfaGludHNfdDJtYXNrLCBwc19oaW50c190MmNvdW50ZXIpOiBGaXgKCUZUX0VSUk9SIG1lc3NhZ2VzLgoJKiBzcmMvcHNoaW50ZXIvcHNoYWxnbzEuYyAoRlRfQ09NUE9ORU5UKTogRGVmaW5lIGFzCglgdHJhY2VfcHNoYWxnbzEnLgoJKiBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYyAoRlRfQ09NUE9ORU5UKTogRGVmaW5lIGFzCglgdHJhY2VfcHNoYWxnbzInLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0ZGVidWcuaCAoRlRfVHJhY2UpOiBVcGRhdGVkLgoKCSogZG9jcy9tb2R1bGVzLnR4dDogTmV3IGZpbGUuCgoyMDAxLTEyLTIxICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvcHNoaW50ZXIvcHNocmVjLmMgKHBzX2hpbnRzX3QybWFzaywgcHNfaGludHNfdDJjb3VudGVyKToKCUlnbm9yZSBpbnZhbGlkICJoaW50bWFzayIgYW5kICJjbnRybWFzayIgb3BlcmF0b3JzIChpbnN0ZWFkIG9mCglyZXR1cm5pbmcgYW4gZXJyb3IpLiAgR2x5cGggMjAyOCBvZiB0aGUgQ0ZGIGZvbnQgIk1TdW5nLUxpZ2h0LUFjcm8iCgljb3VsZG4ndCBiZSByZW5kZXJlZCBvdGhlcndpc2UgKGl0IHNlZW1zIGl0cyBjaGFyc3RyaW5nIGlzIGJ1Z2d5LAoJdGhvdWdoIHRoaXMgcmVxdWlyZXMgbW9yZSBhbmFseXNpcykuCgkoRlRfQ09NUE9ORU5UKTogRGVmaW5lLgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jIChDRkZfUGFyc2VfQ2hhclN0cmluZ3MpLCBzcmMvcHNhdXgvdDFkZWNvZGUuYwoJKFQxX0RlY29kZXJfUGFyc2VfQ2hhcnN0cmluZ3MpLCBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYyAoKiksIEZpeGVkIGEKCWJ1ZyB3aGVyZSB0aGUgWCBhbmQgWSBheGlzIHdoZXJlIGludmVyc2VkIGluIHRoZSBwb3N0c2NyaXB0IGhpbnRlci4KCVRoaXMgY2F1c2VkIHByb2JsZW0gd2hlbiBkaXNwbGF5aW5nIG9uIG5vbi1zcXVhcmUgc3VyZmFjZXMuCgoJKiBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYzogcy92ZXJ0aWNhbC9kaW1lbnNpb24vLgoKCSogc3JjL3BzaGludGVyL3BzaGdsb2IuYyAocHNoX2dsb2JhbHNfbmV3KTogUmVwbGFjZWQgYSBmbG9hdGluZwoJcG9pbnQgY29uc3RhbnQgd2l0aCBhIGZpeGVkLWZsb2F0IGVxdWl2YWxlbnQuICBGb3Igc29tZSByZWFzb25zIG5vdAoJYWxsIGNvbXBpbGVycyBhcmUgY2FwYWJsZSBvZiBkaXJlY3RseSBjb21wdXRpbmcgYSBmbG9hdGluZyBwb2ludGVyCgljb25zdGFudCBjYXN0ZWQgdG8gRlRfRml4ZWQsIGFuZCB3aWxsIGxpbmsgYSBtYXRoIGxpYnJhcnkgaW5zdGVhZC4KCjIwMDEtMTItMjAgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9jYWNoZS9mdGNjYWNoZS5jIChmdGNfbm9kZV9kZXN0cm95LCBmdGNfY2FjaGVfbG9va3VwKTogRml4Cgl0cmFjaW5nIHN0cmluZ3MuCgkqIHNyYy9jYWNoZS9mdGNjbWFwLmMgKGZ0Y19jbWFwX2ZhbWlseV9pbml0KTogRGl0dG8uCgkqIHNyYy9jYWNoZS9mdGNtYW5hZy5jIChmdGNfZmFtaWx5X3RhYmxlX2FsbG9jLAoJZnRjX2ZhbWlseV90YWJsZV9mcmVlLCBGVENfTWFuYWdlcl9DaGVjayk6IERpdHRvLgoJKiBzcmMvY2FjaGUvZnRjc2JpdHMuYyAoZnRjX3NiaXRfbm9kZV9sb2FkKTogRGl0dG8uCgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfRG9uZV9MaWJyYXJ5KTogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDAxLTEyLTIwICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJQWRkZWQgUG9zdFNjcmlwdCBoaW50ZXIgc3VwcG9ydCB0byB0aGUgQ0ZGIGFuZCBDSUQgZHJpdmVycy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvY2ZmdHlwZXMuaCAoQ0ZGX0ZvbnQpOiBOZXcgbWVtYmVyCglgcHNoaW50ZXInLgoJKiBzcmMvY2ZmL2NmZmxvYWQuYyAoQ0ZGX0dldF9TdGFuZGFyZF9FbmNvZGluZyk6IE5ldyBmdW5jdGlvbi4KCSogc3JjL2NmZi9jZmZsb2FkLmg6IFVwZGF0ZWQuCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuYyAoQ0ZGX0luaXRfQnVpbGRlcik6IFJlbmFtZWQgdG8gLi4uCgkoQ0ZGX0J1aWxkZXJfSW5pdCk6IFRoaXMuCglBZGRlZCBuZXcgYXJndW1lbnQgYGhpbnRpbmcnLgoJKENGRl9Eb25lX0J1aWxkZXIpOiBSZW5hbWVkIHRvIC4uLgoJKENGRl9CdWlsZGVyX0RvbmUpOiBUaGlzLgoJKENGRl9Jbml0X0RlY29kZXIpOiBBZGRlZCBuZXcgYXJndW1lbnQgYGhpbnRpbmcnLgoJKENGRl9QYXJzZV9DaGFyU3RyaW5ncyk6IEltcGxlbWVudCB2c3RlbSBzdXBwb3J0LgoJKENGRl9Mb2FkX0dseXBoKTogVXBkYXRlZC4KCUFkZCBoaW50aW5nIHN1cHBvcnQuCgkoY2ZmX2xvb2t1cF9nbHlwaF9ieV9zdGRjaGFyY29kZSk6IFVzZSBDRkZfR2V0X1N0YW5kYXJkX0VuY29kaW5nKCkuCgkoY2ZmX2FyZ3VtZW50X2NvdW50cyk6IFVwZGF0ZWQuCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuaDogVXBkYXRlZC4KCSogc3JjL2NmZi9jZmZvYmpzLmM6IEluY2x1ZGUgRlRfSU5URVJOQUxfUE9TVFNDUklQVF9ISU5UU19ILgoJKENGRl9TaXplX0dldF9HbG9iYWxzX0Z1bmNzLCBDRkZfU2l6ZV9Eb25lLCBDRkZfU2l6ZV9Jbml0LAoJQ0ZGX1NpemVfUmVzZXQsIENGRl9HbHlwaFNsb3RfRG9uZSwgQ0ZGX0dMeXBoU2xvdF9Jbml0KTogTmV3CglmdW5jdGlvbnMuCgkoQ0ZGX0luaXRfRmFjZSk6IFJlbmFtZWQgdG8gLi4uCgkoQ0ZGX0ZhY2VfSW5pdCk6IFRoaXMuCglBZGQgaGludGVyIHN1cHBvcnQuCgkoQ0ZGX0RvbmVfRmFjZSk6IFJlbmFtZWQgdG8gLi4uCgkoQ0ZGX0ZhY2VfRG9uZSk6IFRoaXMuCgkoQ0ZGX0luaXRfRHJpdmVyKTogUmVuYW1lZCB0byAuLi4KCShDRkZfRHJpdmVyX0luaXQpOiBUaGlzLgoJKENGRl9Eb25lX0RyaXZlcik6IFJlbmFtZWQgdG8gLi4uCgkoQ0ZGX0RyaXZlcl9Eb25lKTogVGhpcy4KCSogc3JjL2NmZi9jZmZvYmpzLmg6IFVwZGF0ZWQuCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYyAoY2ZmX2RyaXZlcl9jbGFzcyk6IFVwZGF0ZWQuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxdHlwZXMuaCAoQ0lEX0ZhY2VSZWMpOiBOZXcgbWVtYmVyCglgcHNoaW50ZXInLgoJKiBzcmMvY2lkL2NpZGdsb2FkLmMgKENJRF9Mb2FkX0dseXBoKTogQWRkIGhpbnRlciBzdXBwb3J0LgoJKiBzcmMvY2lkL2NpZG9ianMuYzogSW5jbHVkZSBGVF9JTlRFUk5BTF9QT1NUU0NSSVBUX0hJTlRTX0guCgkoQ0lEX0dseXBoU2xvdF9Eb25lLCBDSURfR2x5cGhTbG90X0luaXQsIENJRF9TaXplX0dldF9HbG9iYWxzX0Z1bmNzLAoJQ0lEX1NpemVfRG9uZSwgQ0lEX1NpemVfSW5pdCwgQ0lEX1NpemVfUmVzZXQpOiBOZXcgZnVuY3Rpb25zLgoJKENJRF9Eb25lX0ZhY2UpOiBSZW5hbWVkIHRvIC4uLgoJKENJRF9GYWNlX0RvbmUpOiBUaGlzLgoJKENJRF9Jbml0X0ZhY2UpOiBSZW5hbWVkIHRvIC4uLgoJKENJRF9GYWNlX0luaXQpOiBUaGlzLgoJQWRkIGhpbnRpbmcgc3VwcG9ydC4KCShDSURfSW5pdF9Ecml2ZXIpOiBSZW5hbWVkIHRvIC4uLgoJKENJRF9Ecml2ZXJfSW5pdCk6IFRoaXMuCgkoQ0lEX0RvbmVfRHJpdmVyKTogUmVuYW1lZCB0byAuLi4KCShDSURfRHJpdmVyX0RvbmUpOiBUaGlzLgoJKiBzcmMvY2lkL2NpZG9ianMuaDogVXBkYXRlZC4KCSogc3JjL2NpZHJpdmVyLmM6IFVwZGF0ZWQuCgoJKiBzcmMvcHNoaW50ZXIvcHNocmVjLmMgKHQyX2hpbnRfc3RlbXMpOiBGaXhlZC4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9Eb25lX0xpYnJhcnkpOiBGaXhlZCBhIHN0dXBpZCBidWcgdGhhdAoJY3Jhc2hlZCB0aGUgbGlicmFyeSBvbiBleGl0LgoKCSogc3JjL3R5cGUxL3QxZ2xvYWQuYyAoVDFfTG9hZF9HbHlwaCk6IEVuYWJsZSBmb250IG1hdHJpeAoJdHJhbnNmb3JtYXRpb24gb2YgaGludGVkIGdseXBocy4KCgkqIHNyYy9jaWQvY2lkbG9hZC5jIChjaWRfcmVhZF9zdWJycyk6IEZpeCBlcnJvciBjb25kaXRpb24uCgoJKiBzcmMvY2lkL2NpZG9ianMuYyAoQ0lEX0ZhY2VfRG9uZSk6IEZpeGVkIGEgbWVtb3J5IGxlYWs7IHRoZSBzdWJycwoJcm91dGluZXMgd2VyZSBuZXZlciByZWxlYXNlZCB3aGVuIENJRCBmYWNlcyB3ZXJlIGRlc3Ryb3llZC4KCgkqIHNyYy9jZmYvY2ZmbG9hZC5oLCBzcmMvY2ZmL2NmZmxvYWQuYywgc3JjL2NmZi9jZmZnbG9hZC5jOiBVcGRhdGVkCgl0byBtb3ZlIHRoZSBkZWZpbml0aW9uIG9mIGVuY29kaW5nIHRhYmxlcyBiYWNrIHdpdGhpbiAiY2ZmbG9hZC5jIgoJaW5zdGVhZCBvZiBtYWtpbmcgdGhlbSBwYXJ0IG9mIGEgc2hhcmVkIGhlYWRlciAoY2F1c2luZyBwcm9ibGVtcyBpbgoJIm11bHRpIiBidWlsZHMpLiAgVGhpcyByZXZlcnRzIGNoYW5nZSAyMDAxLTA4LTA4LgoKCSogZG9jcy9DSEFOR0VTOiBVcGRhdGVkIGZvciAyLjAuNiByZWxlYXNlLgoJKiBkb2NzL1RPRE86IEFkZGVkICJzdGVtMyBhbmQgY291bnRlciBoaW50cyBzdXBwb3J0IiB0byB0aGUgVE9ETwoJbGlzdCBmb3IgdGhlIFBvc3RzY3JpcHQgaGludGVyLgoJKiBkb2NzL0JVR1M6IENsb3NlZCB0aGUgQVVUT0hJTlQtTk8tU0JJVFMgYnVnLgoKMjAwMS0xMi0xOSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9jYWNoZS9mdGNhY2hlLmg6IEFkZGVkIGNvbW1lbnRzIHRvIGluZGljYXRlIHRoYXQKCXNvbWUgb2YgdGhlIGV4cG9ydGVkIGZ1bmN0aW9ucyBzaG91bGQgb25seSBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucwoJdGhhdCBuZWVkIHRvIGltcGxlbWVudCBjdXN0b20gY2FjaGUgdHlwZXMuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChjdXJfdG9fb3JnLCBvcmdfdG9fY3VyKTogRml4ZWQgYSBuYXN0eSBidWcKCXRoYXQgcHJldmVudGVkIGNvbXBvc2l0ZXMgZnJvbSBsb2FkaW5nIGNvcnJlY3RseSwgZHVlIHRvIG1pc3NpbmcKCXBhcmVudGhlc2VzIGFyb3VuZCBtYWNybyBwYXJhbWV0ZXJzLgoKCSogc3JjL3NmbnQvc2ZvYmpzLmMgKFNGTlRfTG9hZF9GYWNlKTogTWFrZSB0aGUgInBvc3QiIGFuZCAibmFtZSIKCXRhYmxlcyBvcHRpb25hbCB0byBsb2FkIFBDTCBmb250cyBwcm9wZXJseS4KCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKFRUX0xvYWRfR2x5cGgpLCBzcmMvYmFzZS9mdG9ianMuYwoJKEZUX0xvYWRfR2x5cGgpLCBpbmNsdWRlL2ZyZWV0eXBlL2ZyZWV0eXBlLmggKEZUX0xPQURfU0JJVFNfT05MWSk6CgkiRml4ZWQiIHRoZSBidWcgdGhhdCBwcmV2ZW50ZWQgZW1iZWRkZWQgYml0bWFwcyB0byBiZSBsb2FkZWQgd2hlbgoJdGhlIGF1dG8taGludGVyIGlzIHVzZWQuICBUaGlzIGFjdHVhbGx5IGlzIGEgaGFjayBidXQgd2lsbCBiZSBlbm91Z2gKCXVudGlsIHRoZSBpbnRlcm5hbCByZS1kZXNpZ24gc2NoZWR1bGVkIGZvciBGcmVlVHlwZSAyLjEuCgoJKiBzcmMvcmFzdGVyL2Z0cmVuZDEuYyAoZnRfcmFzdGVyMV9yZW5kZXIpOiBGaXhlZCBhIG5hc3R5IG91dGxpbmUKCXNoaWZ0aW5nIGJ1ZyBpbiB0aGUgbW9ub2Nocm9tZSByZW5kZXJlci4KCgkqIFJFQURNRTogVXBkYXRlZCB2ZXJzaW9uIG51bWJlcnMgdG8gMi4wLjYuCgoyMDAxLTEyLTE3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChsb2FkX3RydWV0eXBlX2dseXBoKTogRml4IHRlc3QgZm9yIGludmFsaWQKCWdseXBoIGhlYWRlci4KCjIwMDEtMTItMTUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9iYXNlL2Z0Z2x5cGguYyAoRlRfR2x5cGhfVG9fQml0bWFwKTogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcuCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRjYWNoZS5oIChGVENfTm9kZV9VbnJlZik6IFJlbW92ZWQuICBJdCBpcwoJYWxyZWFkeSBpbiBmdGNtYW5hZy5oLgoJKiBzcmMvY2FjaGUvZnRjc2JpdHMuYyAoZnRjX3NiaXRfbm9kZV9sb2FkKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJYGdmYW0nLgoJKiBzcmMvY2FjaGUvZnRjbWFuYWcuYyAoZnRjX2ZhbWlseV90YWJsZV9hbGxvYywKCSogZnRjX2ZhbWlseV90YWJsZV9mcmVlKTogVXNlIEZUX0VYUE9SVF9ERUYuCgkqIGluY2x1ZGUvZnJlZXR5cGUvY2FjaGUvZnRjbWFuYWcuaDogVXBkYXRlZC4KCSogc3JjL2NhY2hlL2Z0Y2NhY2hlLmMgKGZ0Y19ub2RlX2Rlc3Ryb3kpOiBVc2UgRlRfRVhQT1JUX0RFRi4KCSogc3JjL2NhY2hlL2Z0Y2NtYXAuYyAoZnRjX2NtYXBfbm9kZV9pbml0KTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJYGNmYW0nLgoJUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcuCgkoRlRDX0NNYXBDYWNoZV9Mb29rdXApOiBSZW1vdmUgY29tcGlsZXIgd2FybmluZ3MuCgkoZnRjX2NtYXBfZmFtaWx5X2luaXQpOiBEaXR0by4KCShGVENfQ01hcENhY2hlX0xvb2t1cCk6IERpdHRvLgoKCSogYnVpbGRzL3VuaXgvY29uZmlndXJlLmFjOiBJbmNyZWFzZSBgdmVyc2lvbl9pbmZvJyB0byA4OjA6Mi4KCSogYnVpbGRzL3VuaXgvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDEtMTItMTQgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9tYWMvUkVBRE1FOiBVcGRhdGVkLgoKMjAwMS0xMi0xNCAgU2NvdHQgTG9uZyAgPHNjb3R0QHN3aWZ0dmlldy5jb20+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChsb2FkX3RydWV0eXBlX2dseXBoKTogRml4aW5nIGNyYXNoIHdoZW4KCWRlYWxpbmcgd2l0aCBpbnZhbGlkIGZvbnRzIChpLmUuIGdseXBoIHNpemUgPCAxMCBieXRlcykuCgoyMDAxLTEyLTE0ICBTYW0gTGF0aW5nYSA8c2xvdWtlbkBkZXZvbHV0aW9uLmNvbT4KCgkqIGJ1aWxkcy9tYWMvZnJlZXR5cGUubWFrZTogQSBuZXcgTWFrZWZpbGUgdG8gYnVpbGQgd2l0aCBNUFcgb24KCU1hY09TIGNsYXNzaWMuCgoyMDAxLTEyLTE0ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChUVF9Mb2FkX0dseXBoKSwgc3JjL3R5cGUxL3QxZ2xvYWQuYwoJKFQxX0xvYWRfR2x5cGgpLCBzcmMvY2lkL2NpZGdsb2FkLmMgKENJRF9Mb2FkX0dseXBoKSwKCXNyYy9jZmYvY2ZmZ2xvYWQuYyAoQ0ZGX0xvYWRfR2x5cGgpOiBGaXhlZCBhIHNlcmlvdXMgYnVnIGNvbW1vbiB0bwoJYWxsIGZvbnQgZHJpdmVycyAodGhlIGFkdmFuY2Ugd2lkdGggd2FzIG5ldmVyIGhpbnRlZCB3aGVuIGl0CglzaG91bGQpLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGUkVFVFlQRV9QQVRDSCk6IE5ldyBtYWNyby4KCSogc3JjL2Jhc2UvZnRkYmdtZW0uYyAoZGVidWdfbWVtX2R1bW15KSBbIUZUX0RFQlVHX01FTU9SWV06IERvbid0Cgl1c2UgYGV4dGVybicga2V5d29yZC4KCjIwMDEtMTItMTIgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9wc2hpbnQvcHNoZ2xvYi5jIChwc2hfYmx1ZXNfc2NhbGVfem9uZXMsIHBzaF9ibHVlc19zbmFwX3N0ZW0KCXBzaF9nbG9iYWxzX25ldyk6IEFkZGluZyBjb3JyZWN0IEJsdWVTY2FsZS9CbHVlU2hpZnQgc3VwcG9ydCwgcGx1cwoJZmFtaWx5IGJsdWVzIHByb2Nlc3NpbmcuCgkqIHNyYy9wc2hpbnQvcHNoZ2xvYi5oIChQU0hfQmx1ZXNSZWMpOiBVcGRhdGVkLgoKCVN0YXJ0ZWQgYWRkaW5nIHN1cHBvcnQgZm9yIHRoZSBQb3N0c2NyaXB0IGhpbnRlciBpbiB0aGUgQ0ZGIG1vZHVsZS4KCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuYzogSW5jbHVkZSBGVF9JTlRFUk5BTF9QT1NUU0NSSVBUX0hJTlRTX0guCgkoQ0ZGX1BhcnNlX0NoYXJTdHJpbmdzKTogSW1wbGVtZW50IGl0LgoJKiBzcmMvY2ZmL2NmZmdsb2FkLmg6IFVwZGF0ZWQuCgoyMDAxLTEyLTEyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZTIubTQ6IFNvbWUgcG9ydGFiaWxpdHkgZml4ZXMuCgoyMDAxLTEyLTExICBKb3VrIEphbnNlbiAgPGpvdWtqQGhyZW0uc3RtLnR1ZGVsZnQubmw+CgoJKiBzcmMvYmFzZS9kZXNjcmlwLm1tcyAoT0JKUyk6IEFkZCBmdGRlYnVnLm9iai4KCjIwMDEtMTItMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9zZm50L3R0bG9hZC5jIChUVF9Mb2FkX0dlbmVyaWNfSGVhZGVyKTogVHlwb3MuCgoyMDAxLTEyLTExICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZS1jb25maWcuaW46IE1vZGlmaWVkIHRoZSBzY3JpcHQgdG8gcHJldmVudAoJcGFzc2luZyAiLUwvdXNyL2xpYiIgdG8gZ2NjLgoKCSogZG9jcy9GVEwuVFhUOiBTaW1wbGUgZml4IChjaGFuZ2UgIkxJQ0VOU0UuVFhUIiB0byAiRlRMLlRYVCIpLgoKCSogYnVpbGRzL3VuaXgvZnJlZXR5cGUyLm00OiBOZXcgZmlsZSBmb3IgY2hlY2tpbmcgY29uZmlndXJlIHBhdGhzLgoJV2UgbmVlZCB0byBpbnN0YWxsIGl0IGluICQocHJlZml4KS9zaGFyZS9hY2xvY2FsL2ZyZWV0eXBlMi5tNCBidXQgSQoJZGlkbid0IG1vZGlmeSBidWlsZHMvdW5peC9pbnN0YWxsLm1rIHlldC4KCgkqIElOU1RBTEw6IFVwZGF0ZWQgdGhlIGluc3RydWN0aW9ucyB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzIHdpdGgKCUphbS4gIFRoZXkgd2VyZSBzaW1wbHkgd3JvbmcuCgoJKiBzcmMvYmFzZS9mdHRyaWdvbi5jIChGVF9Db3MpOiBGaXhlZCBhIHNtYWxsIGJ1ZyB0aGF0IGNhdXNlZAoJc2xpZ2h0bHkgaW1wcm9wZXIgcmVzdWx0cyBmb3IgYEZUX0NvcycgYW5kIGBGVF9TaW4nIChleGFtcGxlOgoJRlRfU2luKDApID09IC0xISkuCgoyMDAxLTEyLTExICBEZXRsZWYgV/xya25lciAgPFRldGlTb2Z0QGFwZy5sYWhuLmRlPgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdHN0cmVhbS5oIChHRVRfTG9uZ0xFLCBHRVRfVUxvbmdMRSk6CglGaXhlZCBpbmNvcnJlY3QgYXJndW1lbnQgdHlwZXMuCgoyMDAxLTEyLTEwICBGcmFuY2VzY28gWmFwcGEgTmFyZGVsbGkgIDxGcmFuY2VzY28uWmFwcGEuTmFyZGVsbGlAZW5zLmZyPgoKCSogc3JjL3BjZi9wY2Zkcml2ZXIuYyAoUENGX0luaXRfRmFjZSk6IEFsbG93IFhmdCB0byB1c2UgUENGIGZvbnRzCglieSBzZXR0aW5nIHRoZSAiZmFjZS0+bWV0cmljcy5tYXhfYWR2YW5jZSIgY29ycmVjdGx5LgoKMjAwMS0xMi0wNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9jYWNoZS9mdGNjbWFwLmgsIHNyYy9jYWNoZS9mdGNjbWFwLmM6IEFkZGVkIG5ldwoJY2hhcm1hcCBjYWNoZS4KCSogc3JjL2NhY2hlL2Z0Y2FjaGUuYzogVXBkYXRlZC4KCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYyAoYWhfaGludGVyX2hpbnRfZWRnZXMpOiBzL1VOVVNFRC9GVF9VTlVTRUQvLgoKMjAwMS0xMi0wNiAgTGVvbmFyZCBSb3NlbnRob2wgIDxsZW9uYXJkckBsYXplcndhcmUuY29tPgoKCUFkZGVkIHN1cHBvcnQgZm9yIHJlYWRpbmcgLmRmb250IGZpbGVzIG9uIE1hYyBPUyBYLiAgQWxzbyBhZGRlZCBhCgluZXcgcm91dGluZSB3aGljaCBsb29rcyB1cCBhIGdpdmVuIGZvbnQgYnkgbmFtZSBpbiB0aGUgTWFjIE9TIGFuZAoJcmV0dXJucyB0aGUgZGlzayBmaWxlIHdoZXJlIGl0IHJlc2lkZXMuCgoJKiBzcmMvYmFzZS9mdG1hYy5jOiBJbmNsdWRlIDxGaWxlcy5oPiBhbmQgPFRleHRVdGlscy5oPi4KCShpc19kZm9udCk6IE5ldyBhdXhpbGlhcnkgZnVuY3Rpb24uCgkoRlRfTmV3X0ZhY2VfRnJvbV9kZm9udCk6IE5ldyBmdW5jdGlvbi4KCShGVF9HZXRGaWxlX0Zyb21fTWFjX05hbWUpOiBOZXcgZXhwb3J0ZWQgZnVuY3Rpb24uCgkoRlRfTmV3X0ZhY2UpOiBVcGRhdGVkLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0bWFjLmg6IFVwZGF0ZWQuCgoyMDAxLTEyLTA2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2FjaGUvSmFtZmlsZSwgc3JjL2NhY2hlL3J1bGVzLm1rOiBVcGRhdGVkLgoKMjAwMS0xMi0wNiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogSU5TVEFMTDogU21hbGwgdXBkYXRlLgoKMjAwMS0xMi0wNSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2Jhc2UvZnRnbHlwaC5jIChGVF9HbHlwaF9Ub19CaXRtYXApOiBSZS1vcmRlcmVkIGNvZGUgZm9yCglkZWJ1Z2dpbmcgcHVycG9zZXMuCglDb21tZW50IG91dCB1c2Ugb2YgYG9yaWdpbicuCgoJKiBzcmMvc21vb3RoL2Z0c21vb3RoLmMgKGZ0X3Ntb290aF9yZW5kZXIpOiBGaXhlZCBhIG5hc3R5IGhpZGRlbiBidWcKCXdoZXJlIG91dGxpbmUgc2hpZnRpbmcgd2Fzbid0IGNvcnJlY3RseSB1bmRvbmUgYWZ0ZXIgYml0bWFwCglyYXN0ZXJpemF0aW9uLiAgVGhpcyBjcmVhdGVkIHByb2JsZW1zIHdpdGggY2VydGFpbiBnbHlwaHMgKGxpa2UgJyInCglvZiBjZXJ0YWluIGZvbnRzKSBhbmQgdGhlIGNhY2hlIHN5c3RlbS4KCgkqIHNyYy9wc2hpbnRlci9wc2hhbGdvMS5jIChwc2gxX2hpbnRfdGFibGVfaW5pdCk6IEZpeCB0eXBvLgoJKiBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYyAocHNoMl9oaW50X3RhYmxlX2luaXQpOiBGaXggdHlwby4KCShwczJfaGludHNfYXBwbHkpOiBTbWFsbCBmaXguCgoyMDAxLTEyLTA1ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYyAocHNoMl9oaW50X3RhYmxlX2luaXQpLAoJc3JjL3BzaGludGVyL3BzaGFsZ28xLmMgKHBzaDFfaGludF90YWJsZV9pbml0KTogUmVtb3ZlZCBjb21waWxlcgoJd2FybmluZ3MuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0Y2FjaGUuaCwgaW5jbHVkZS9mcmVldHlwZS9jYWNoZS8qLCBzcmMvY2FjaGUvKjoKCVlldCBhbm90aGVyIG1hc3NpdmUgcmV3cml0ZSBvZiB0aGUgY2FjaGluZyBzdWItc3lzdGVtIGluIG9yZGVyIHRvCglib3RoIGluY3JlYXNlIHBlcmZvcm1hbmNlIGFuZCBhbGxvdyBzaW1wbGVyIGNhY2hlIHN1Yi1jbGFzc2luZy4gIEFzCglhbiBleGFtcGxlLCB0aGUgY29kZSBmb3IgdGhlIGltYWdlIGFuZCBzYml0IGNhY2hlcyBpcyBub3cgbXVjaAoJc2ltcGxlci4KCglJIHN0aWxsIG5lZWQgdG8gdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uIGluCgl3d3cvZnJlZXR5cGUyL2RvY3MvY2FjaGUuaHRtbCB0byByZWZsZWN0IHRoZSBuZXcgZGVzaWduIHRob3VnaC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0aGVhZGVyLmggKEZUX0NBQ0hFX0NIQVJNQVBfSCk6IE5ldwoJbWFjcm8uCgkoRlRfQ0FDSEVfSU5URVJOQUxfQ0FDSEVfSCk6IFVwZGF0ZWQuCgoyMDAxLTEyLTA1ICBEYXZpZCBLcmF1c2UgIDxmcmVldHlwZUBkYXZpZGtyYXVzZS5jb20+CgoJKiBkb2NzL2xpY2Vuc2UudHh0OiBzL1ggV2luZG93cy9YIFdpbmRvdyBTeXN0ZW0vLgoKMjAwMS0xMi0wNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3Jhc3Rlci9mdHJhc3Rlci5jOiBGaXggZGVmaW5pdGlvbiBjb25kaXRpb24gb2YgTUVNX1NldCgpLgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYyAoTV9ZKTogQ2hhbmdlIHZhbHVlIHRvIDE5Mi4KCSogc3JjL2Jhc2UvZnRkYmdtZW0uYyAoZnRfbWVtX3RhYmxlX2Rlc3Ryb3kpOiBGaXggcHJpbnRmKCkgcGFyYW1ldGVyLgoJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSogc3JjL2NhY2hlL2Z0Y2ltYWdlLmMgKGZ0Y19pbWFnZV9ub2RlX2luaXQsCglmdGNfaW1hZ2Vfbm9kZV9jb21wYXJlKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgkqIHNyYy9jYWNoZS9mdGNzYml0cy5jIChmdGNfc2JpdF9ub2RlX3dlaWdodCk6IFJlbW92ZSB1bnVzZWQKCXZhcmlhYmxlLgoJKiBzcmMvcmFzdGVyL2Z0cmFzdGVyLmMgKE1FTV9TZXQpOiBNb3ZlIGRlZmluaXRpb24gZG93biB0byBhdm9pZAoJY29tcGlsZXIgd2FybmluZy4KCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfaGludF9lZGdlcyk6IFVzZSBVTlVTRUQoKSB0bwoJYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkqIHNyYy9wY2YvcGNmcmVhZC5jICh0YWJsZU5hbWVzKTogVXNlIGBjb25zdCcuCgkocGNmX3JlYWRfVE9DKTogQ2hhbmdlIGNvdW50ZXIgbmFtZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nLgoJVXNlIGBjb25zdCcuCgkqIHNyYy9wc2hpbnRlci9wc2hyZWMuYyAocHNfaGludHNfY2xvc2UpOiBSZW1vdmUgcmVkdW5kYW50CglkZWNsYXJhdGlvbi4KCSogc3JjL3BzaGludGVyL3BzaGFsZ28xLmMgKHBzaDFfaGludF90YWJsZV9pbml0KTogUmVuYW1lIHZhcmlhYmxlcwoJdG8gYXZvaWQgc2hhZG93aW5nLgoJKiBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYyAocHNoMl9oaW50X3RhYmxlX2FjdGl2YXRlX21hc2spOiBEaXR0by4KCSogc3JjL3R5cGUxL3Qxb2Jqcy5oOiBSZW1vdmUgZG91YmxlIGRlY2xhcmF0aW9ucyBvZiBgVDFfU2l6ZV9Jbml0KCknCglhbmQgYFQxX1NpemVfRG9uZSgpJy4KCjIwMDEtMTEtMjAgIEFudG9pbmUgTGVjYSAgPGFudG9pbmVsZWNhQG11bHRpbWFuaWEuY29tPgoKCSogaW5jbHVkZS9mcmVldHlwZS90dG5hbWVpZC5oOiBBZGRlZCBzb21lIG5ldyBNaWNyb3NvZnQgbGFuZ3VhZ2UKCWNvZGVzIGFuZCBMQ0lEcyBhcyBmb3VuZCBpbiBNU0ROIChQYXNzcG9ydCBTREspLiAgQWxzbyBhZGRlZAoJY29tbWVudHMgYWJvdXQgdGhlIG1lYW5pbmcgb2YgYml0IDU3IG9mIHRoZSBgT1MvMicgdGFibGUKCShUVF9VQ1JfU1VSUk9HQVRFUykgd2hpY2ggKHdpdGggT3BlblR5cGUgdi4xLjMpIG5vdyBtZWFucyAidGhlcmUgaXMKCWEgY2hhcmFjdGVyIGJleW9uZCAweEZGRkYgaW4gdGhpcyBmb250Ii4gIFRoYW5rcyB0byBEZXRsZWYgV/xya25lcgoJPFRldGlTb2Z0QGFwZy5sYWhuLmRlPiBmb3Igbm90aWNpbmcgdGhpcy4KCjIwMDEtMTEtMjAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9wc2hpbnRlci97cHNoYWxnbzIuYywgcHNoYWxnbzEuY306IEZpeGVkIHN0dXBpZCBidWcgaW4gc29ydGluZwoJcm91dGluZSB0aGF0IGNyZWF0ZWQgbmFzdHkgYWxpZ25tZW50IGFydGVmYWN0cy4KCgkqIHNyYy9wc2hpbnRlci9wc2hyZWMuYywgdGVzdHMvZ3ZpZXcuYzogRGVidWdnaW5nIHVwZGF0ZXMuCgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYzogRGUtYWN0aXZhdGVkIGV4cGVyaW1lbnRhbCBnYW1tYSBzdXBwb3J0LgoJQXBwYXJlbnRseSwgYG9wdGltYWwnIGdhbW1hIHRhYmxlcyBkZXBlbmQgb24gdGhlIG1vbml0b3IgdHlwZSwKCXJlc29sdXRpb24gYW5kIGdlbmVyYWwga2FybWEsIHNvIGl0J3MgYmV0dGVyIHRvIGNvbXB1dGUgdGhlbSBvdXRzaWRlCglvZiB0aGUgcmFzdGVyaXplciBpdHNlbGYuCgkoZ3JheV9jb252ZXJ0X2dseXBoKTogVXNlIGB2b2xhdGlsZScga2V5d29yZC4KCjIwMDEtMTAtMjkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglBZGRpbmcgZXhwZXJpbWVudGFsIGBnYW1tYScgc3VwcG9ydC4gIFRoaXMgcHJvZHVjZXMgc21vb3RoZXIgZ2x5cGhzCglhdCBzbWFsbCBzaXplcyBmb3IgdmVyeSBsaXR0bGUgY29zdC4KCgkqIHNyYy9zbW9vdGgvZnRncmF5cy5jIChncmF5c19pbml0X2dhbW1hKTogTmV3IGZ1bmN0aW9uLgoJKGdyYXlfcmFzdGVyX25ldyk6IFVzZSBpdC4KCglWYXJpb3VzIGZpeGVzIHRvIHRoZSBhdXRvLWhpbnRlci4gIFRoZXkgbWVyZWx5IGltcHJvdmUgdGhlIG91dHB1dCBvZgoJc2Fucy1zZXJpZiBmb250cy4gIE5vdGUgdGhhdCB0aGVyZSBhcmUgc3RpbGwgcHJvYmxlbXMgd2l0aCBzZXJpZmVkCglmb250cyBhbmQgY29tcG9zaXRlcyAoYWNjZW50ZWQgY2hhcmFjdGVycykuCgoJKiBzcmMvYXV0b2hpbnQvYWhnbHlwaC5jIChhaF9vdXRsaW5lX2xvYWQsCglhaF9vdXRsaW5lX2xpbmtfc2VnbWVudHMpOiBJbXBsZW1lbnQgaXQuCglGaXggdHlwb3MuCgkoYWhfb3V0bGluZV9zYXZlLCBhaF9vdXRsaW5lX2NvbXB1dGVfc2VnbWVudHMpOiBGaXggdHlwb3MuCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYyAoYWhfYWxpZ25fc2VyaWZfZWRnZSk6IE5ldyBhcmd1bWVudAoJYHZlcnRpY2FsJy4gIEltcGxlbWVudCBpbXByb3ZlbWVudC4KCShhaF9oaW50X2VkZ2VzXzMsIGFoX2hpbnRlcl9oaW50X2VkZ2VzKTogSW1wbGVtZW50IGl0LgoJRml4IHR5cG9zLgoJKGFoX2hpbnRlcl9hbGlnbl9zdHJvbmdfcG9pbnRzLCBhaF9oaW50ZXJfYWxpZ25fd2Vha19wb2ludHMpOiBGaXgKCXR5cG9zLgoJKGFoX2hpbnRlcl9sb2FkKTogU2V0IGBhaF9kZWJ1Z19oaW50ZXInIGlmIERFQlVHX0hJTlRFUiBpcyBkZWZpbmVkLgoJKiBzcmMvYXV0b2hpbnQvYWhtb2R1bGUuYzogSW1wbGVtZW50IHN1cHBvcnQgZm9yIERFQlVHX0hJTlRFUiBtYWNyby4KCSogc3JjL2F1dG9oaW50L2FodHlwZXMuaDogRGl0dG8uCgkoQUhfSGludGVyKTogUmVtb3ZlIGBkaXNhYmxlX2hvcnpfZWRnZXMnIGFuZCBgZGlzYWJsZV92ZXJ0X2VkZ2VzJwoJKG1ha2luZyB0aGVtIGdsb2JhbCBhcyBgYWhfZGVidWdfZGlzYWJsZV9ob3J6JyBhbmQKCWBhaF9kZWJ1Z19kaXNhYmxlX3ZlcnQnKS4KCUZpeCB0eXBvcy4KCgkqIHRlc3RzL2d2aWV3LmM6IFVwZGF0ZWQgdGhlIGRlYnVnZ2luZyBnbHlwaCB2aWV3ZXIgdG8gc2hvdyB0aGUKCWhpbnRzIGdlbmVyYXRlZCBieSB0aGUgImF1dG9oaW50IiBtb2R1bGUuCgoyMDAxLTEwLTI3ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2FjaGUvZnRjY2h1bmsuYyAoZnRjX2NodW5rX2NhY2hlX2xvb2t1cCk6IEZpeGVkIGEgYnVnIHRoYXQKCWNvbnNpZGVyYWJseSBsb3dlcmVkIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgYWJzdHJhY3QgY2h1bmsgY2FjaGUuCgoyMDAxLTEwLTI2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0Y2FjaGUuaCwgaW5jbHVkZS9mcmVldHlwZS9jYWNoZS8qLmgsCglzcmMvY2FjaGUvKi5jOiBNYWpvciByZS1kZXNpZ24gb2YgdGhlIGNhY2hlIHN1Yi1zeXN0ZW0gdG8gcHJvdmlkZQoJYmV0dGVyIHBlcmZvcm1hbmNlIGFzIHdlbGwgYXMgYW4gIkFjcXVpcmUiLyJSZWxlYXNlIiBBUEkuICBTZWVtcyB0bwoJd29yayB3ZWxsIGhlcmUsIGJ1dCBwcm9iYWJseSBuZWVkcyBhIGJpdCBtb3JlIHRlc3RpbmcuCgoyMDAxLTEwLTI2ICBMZW9uYXJkIFJvc2VudGhvbCAgPGxlb25hcmRyQGxhemVyd2FyZS5jb20+CgoJKiBidWlsZHMvbWFjL1JFQURNRTogVXBkYXRlZCB0byByZWZsZWN0IG15IHRha2luZyBvdmVyIHRoZSBwcm9qZWN0CglhbmQgdGhhdCBpcyBub3cgYmVpbmcgYWN0aXZlbHkgbWFpbnRhaW5lZC4KCgkqIHNyYy9iYXNlL2Z0bWFjLmMgKHBhcnNlX2ZvbmQpOiBBcHBsaWVkIHBhdGNoZXMgZnJvbSBQYXVsIE1pbGxlcgoJPHBhdWxtQHByb2ZvdW5kZWZmZWN0cy5jb20+IHRvIHN1cHBvcnQgbG9hZGluZyBhIGZhY2Ugb3RoZXIgdGhhbiB0aGUKCWZpcnN0IGZyb20gYSBGT05EIHJlc291cmNlLgoJKEZUX05ld19GYWNlX0Zyb21fRk9ORCk6IFVwZGF0ZWQuCgoyMDAxLTEwLTI1ICBMZW9uYXJkIFJvc2VudGhvbCAgPGxlb25hcmRyQGxhemVyd2FyZS5jb20+CgoJKiBidWlsZHMvbWFjL2Z0bGliLnByajogVXBkYXRlIG9mIENvZGVXYXJyaW9yIHByb2plY3QgZmlsZSBmb3IgTWFjCglPUyBmb3IgbGF0ZXN0IHZlcnNpb24gKDcpIG9mIENXUHJvIGFuZCBmb3IgcmVjZW50IGNoYW5nZXMgdG8gdGhlIEZUCglzb3VyY2UgdHJlZS4KCjIwMDEtMTAtMjUgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmg6IFVwZGF0ZWQgY29tbWVudHMgdG8gZXhwbGFpbgoJcHJlY2lzZWx5IGhvdyB0byB1c2UgcHJvamVjdC1zcGVjaWZpYyBtYWNybyBkZWZpbml0aW9ucyB3aXRob3V0Cgltb2RpZnlpbmcgdGhpcyBmaWxlIG1hbnVhbGx5LgoKCShGVF9DT05GSUdfRk9SQ0VfSU5UNjQpOiBEZWZpbmUuCgoJKEZUX0RFQlVHX01FTU9SWSk6IE5ldyBtYWNyby4KCjIwMDEtMTAtMjQgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBidWlsZHMvdW5peC9mdHN5c3RlbS5jIChGVF9OZXdfTWVtb3J5KTogQWRkZWQgYSBtaXNzaW5nIGB7Jy4KCjIwMDEtMTAtMjMgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRtZW1vcnkuaCwgc3JjL2Jhc2UvZnRkYmdtZW0uYzoKCUltcHJvdmVtZW50cyB0byB0aGUgbWVtb3J5IGRlYnVnZ2VyIHRvIHJlcG9ydCBtb3JlIGluZm9ybWF0aW9uIGluCgljYXNlIG9mIGVycm9ycy4gIEFsc28sIHNvbWUgYWxsb2NhdGlvbnMgdGhhdCBvY2N1cmVkIHRocm91Z2ggUkVBTExPQwoJY291bGRuJ3QgYmUgcHJldmlvdXNseSBjYXRjaGVkIGNvcnJlY3RseS4KCgkqIHNyYy9hdXRvaGludC9haGdseXBoLmMgKGFoX291dGxpbmVfY29tcHV0ZV9zZWdtZW50cywKCWFoX291dGxpbmVfY29tcHV0ZV9lZGdlcyksIHNyYy9yYXN0ZXIvZnRyYXN0ZXIuYyAoZnRfYmxhY2tfbmV3KSwKCXNyYy9zbW9vdGgvZnRncmF5cy5jIChncmF5X3JlbmRlcl9zcGFuLCBncmF5X3Jhc3Rlcl9uZXcpOiBSZXBsYWNlZAoJbGliZXJhbCB1c2VzIG9mIG1lbXNldCgpIGJ5IHRoZSBNRU1fU2V0KCkgbWFjcm8uCgoyMDAxLTEwLTIzICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvcmFzdGVyL2Z0cmFzdGVyLmMgKFVwZGF0ZSk6IFJlbW92ZWQgdG8gYmUgaW5saW5lZCBpbiAuLi4KCShTb3J0KTogVXBkYXRlZC4KCjIwMDEtMTAtMjIgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy91bml4L2Z0c3lzdGVtLmMgKEZUX05ld19NZW1vcnksIEZUX0RvbmVfTWVtb3J5KSwKCWJ1aWxkcy92bXMvZnRzeXN0ZW0uYyAoRlRfTmV3X01lbW9yeSwgRlRfRG9uZV9NZW1vcnkpLAoJYnVpbGRzL2FtaWdhL2Z0c3lzdGVtLmMgKEZUX05ld19NZW1vcnksIEZUX0RvbmVfTWVtb3J5KSwKCXNyYy9iYXNlL2Z0ZGJnbWVtLmM6IFVwZGF0ZWQgdGhlIG1lbW9yeSBkZWJ1Z2dlciBhbmQKCXBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBgZnRzeXN0ZW0nIGluIG9yZGVyIHRvIGJlIGFibGUKCXRvIGRlYnVnIG1lbW9yeSBhbGxvY2F0aW9ucyBvbiBVbml4LCBWTVMgYW5kIEFtaWdhIHRvbyEKCgkqIHNyYy9wc2hpbnRlci9wc2hhbGdvMi5jIChwc2gyX2hpbnRfdGFibGVfcmVjb3JkX21hc2spOiBSZW1vdmVkCglzb21lIGJvZ3VzIHdhcm5pbmdzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG1lbW9yeS5oLCBzcmMvYmFzZS9mdGRiZ21lbS5jOgoJTW9kaWZpZWQgdGhlIGRlYnVnZ2luZyBtZW1vcnkgbWFuYWdlciB0byByZXBvcnQgdGhlIGxvY2F0aW9uIChzb3VyY2UKCWZpbGUgbmFtZSArIGxpbmUgbnVtYmVyKSB3aGVyZSBsZWFrZWQgbWVtb3J5IGJsb2NrcyBhcmUgYWxsb2NhdGVkIGluCgl0aGUgc291cmNlIGZpbGUuCgoJKiBzcmMvYmFzZS9mdGRiZ21lbS5jOiBOZXcgZGVidWdnaW5nIG1lbW9yeSBtYW5hZ2VyLiAgWW91IG11c3QKCWRlZmluZSB0aGUgRlRfREVCVUdfTUVNT1JZIG1hY3JvIGluICJmdG9wdGlvbi5oIiB0byBlbmFibGUgaXQuICBJdAoJd2lsbCByZWNvcmQgZXZlcnkgbWVtb3J5IGJsb2NrIGFsbG9jYXRlZCBhbmQgcmVwb3J0IHNpbXBsZSBlcnJvcnMKCWxpa2UgbWVtb3J5IGxlYWtzIGFuZCBkb3VibGUgZGVsZXRlcy4KCgkqIHNyYy9iYXNlL0phbWZpbGU6IEluY2x1ZGUgZnRkYmdtZW0uCgkqIHNyYy9iYXNlL3J1bGVzLm1rOiBEaXR0by4KCSogc3JjL2Jhc2UvZnRiYXNlLmM6IEluY2x1ZGUgZnRkYmdtZW0uYy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmg6IEFkZGVkIHRoZSBGVF9ERUJVR19NRU1PUlkKCW1hY3JvIGRlZmluaXRpb24uCgoJKiBzcmMvYmFzZS9mdHN5c3RlbS5jIChGVF9OZXdfTWVtb3J5LCBGVF9Eb25lX01lbW9yeSk6IE1vZGlmaWVkIHRoZQoJYmFzZSBjb21wb25lbnQgdG8gdXNlIHRoZSBkZWJ1Z2dpbmcgbWVtb3J5IG1hbmFnZXIgd2hlbiB0aGUgbWFjcm8KCUZUX0RFQlVHX01FTU9SWSBpcyBkZWZpbmVkLgoKMjAwMS0xMC0yMSAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jZmYvY2ZmbG9hZC5jIChDRkZfRG9uZV9Gb250KTogRnJlZSBzdWJmb250cyBhcnJheSBvbmx5IGlmCgl3ZSBhcmUgd29ya2luZyB3aXRoIGEgQ0lEIGtleWVkIENGRiBmb250LiAgT3RoZXJ3aXNlLCBhIHZhcmlhYmxlCgl0aGF0IHdhcyBuZXZlciBhbGxvY2F0ZWQgbWVtb3J5IG1pZ2h0IGZyZWVkLiAgVGhpcyBpcyBhIGNvcnJlY3Rpb24KCXRvIHRoZSBwcmV2aW91cyBwYXRjaCBmb3IgZnJlZWluZyBzdWJmb250cy4KCjIwMDEtMTAtMjEgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2ZmL2NmZmxvYWQuYyAoQ0ZGX0RvbmVfRm9udCk6IEZyZWUgdGhlIHN1YmZvbnRzIGFycmF5IHRvCglhdm9pZCBhIG1lbW9yeSBsZWFrLgoKMjAwMS0xMC0yMSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL3BzaGludGVyL3BzaGFsZ28yLmMsIHNyYy9wc2hpbnRlci9wc2hhbGdvMS5jLAoJc3JjL3BzaGludGVyL3BzaGdsb2IuYzogUmVtb3ZpbmcgY29tcGlsZXIgd2FybmluZ3MgaW4gcGVkYW50aWMgbW9kZXMKCShpbiBtdWx0aS1vYmplY3QgY29tcGlsYXRpb24gbW9kZSwgbWFpbmx5KS4KCjIwMDEtMTAtMjAgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvdHlwZTEvdDFsb2FkLmMgKHBhcnNlX2VuY29kaW5nKTogQWRkIGEgdGVzdCB0byBtYWtlIHN1cmUKCXRoYXQgY3VzdG9tIGVuY29kaW5ncyAoaS5lLiwgbmVpdGhlciBTdGFuZGFyZEVuY29kaW5nIG5vcgoJRXhwZXJ0RW5jb2RpbmcpIGFyZSBub3QgbG9hZGVkIHR3aWNlIHdoZW4gdGhlIFR5cGUgMSBmb250IGlzCglzeW50aGV0aWMuCgoJKiBzcmMvdHlwZTEvdDFsb2FkLmMgKHBhcnNlX2ZvbnRfbmFtZSwgcGFyc2Vfc3VicnMpOiBBZGRlZCBhIHRlc3QKCWZvciB3aGVuIGxvYWRpbmcgc3ludGhldGljIGZvbnRzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBmb250IG5hbWUKCWFuZCBzdWJyb3R1aW5lcyBhcmUgbm90IGxvYWRlZCB0d2ljZS4gIFRoaXMgaXMgdG8gcmVtb3ZlIGEgbWVtb3J5CglsZWFrIHRoYXQgb2NjdXJlZCBiZWNhdXNlIHRoZSBvcmlnaW5hbCBtZW1vcnkgYmxvY2tzIGZvciB0aGVzZQoJb2JqZWN0cyB3ZXJlIG5vdCBkZWFsbG9jYXRlZCB3aGVuIHRoZSBvYmplY3RzIHdlcmUgcGFyc2VkIHRoZQoJc2Vjb25kIHRpbWUuCgoyMDAxLTEwLTE5ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYywgc3JjL3BzaGludGVyL3BzaGdsb2IuaCwKCXNyYy9wc2hpbnRlci9wc2hyZWMuYywgc3JjL3BzaGludGVyL3BzaGFsZ28yLmM6IEdldHRpbmcgcmlkIG9mCgljb21waWxlciB3YXJuaW5ncy4KCgkqIHNyYy9wc2hpbnRlci9tb2R1bGUubWssIHNyYy9wc2hpbnRlci9ydWxlcy5tazogQWRkaW5nIGNvbnRyb2wKCWZpbGVzIHRvIGJ1aWxkIHRoZSBQb3N0U2NyaXB0IGhpbnRlciB3aXRoIHRoZSAib2xkIiBidWlsZCBzeXN0ZW0uCgoyMDAxLTEwLTE5ICBKYWNvYiBKYW5zZW4gIDxqb3VrakBocmVtLnN0bS50dWRlbGZ0Lm5sPgoKCSogZGVzY3JpcC5tbXMsIHNyYy9wc2hpbnRlci9kZXNjcmlwLm1tczogVXBkYXRlcyB0byB0aGUgVk1TIGJ1aWxkCglmaWxlcy4KCjIwMDEtMTAtMTggIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9wc25hbWVzL3BzdGFibGVzLmgsIHNyYy90b29scy9nbG5hbWVzLnB5OiBSZXdyb3RlIHRoZQoJImdsbmFtZXMucHkiIHNjcmlwdCB1c2VkIHRvIGdlbmVyYXRlIHRoZSAicHN0YWJsZXMuaCIgaGVhZGVyIGZpbGUuCglUaGUgb2xkIG9uZSBjb250YWluZWQgYSBzZXJpb3VzIGJ1ZyB0aGF0IG1hZGUgRnJlZVR5cGUgcmV0dXJuCglpbmNvcnJlY3QgZ2x5cGggbmFtZXMgZm9yIGNlcnRhaW4gZ2x5cGhzLgoKCSogc3JjL3RydWV0eXBlL3R0ZHJpdmVyLmMgKFNldF9DaGFyX1NpemVzKTogQ2hhbmdpbmcgY29tcHV0YXRpb24gb2YKCXBpeGVsIHNpemUgZnJvbSBjaGFyYWN0ZXIgc2l6ZSB0byB1c2Ugcm91bmRpbmcuICBUaGlzIGlzIGFuCglleHBlcmltZW50IHRvIHNlZSB3aGV0aGVyIHRoaXMgZ2l2ZXMgdmFsdWVzIHNpbWlsYXIgdG8gV2luZG93cyBmb3IKCXNjYWxlZCBhc2NlbnQvZGVzY2VudC9ldGMuCgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfRGl2NjRieTMyKTogQ2hhbmdlZCB0aGUgaW1wbGVtZW50YXRpb24KCXNsaWdodGx5IHNpbmNlIHRoZSBvcmlnaW5hbCBjb2RlIHdhcyBtaXMtY29tcGlsZWQgb24gTWFjIG1hY2hpbmVzCgl1c2luZyB0aGUgTVBXIEMgY29tcGlsZXIuCgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfUmVhbGxvYyk6IFdoZW4gYSBtZW1vcnkgYmxvY2sgd2FzIGdyb3duCgl0aHJvdWdoIEZUX1JlYWxsb2MoKSwgdGhlIG5ldyBieXRlcyB3ZXJlIG5vdCBzZXQgdG8gMCwgd2hpY2ggY3JlYXRlZAoJc29tZSBzdHJhbmdlIGJ1Z3MgaW4gdGhlIFBvc3RTY3JpcHQgaGludGVyLgoJKGRlc3Ryb3lfZmFjZSk6IERvbid0IGRlYWxsb2NhdGUgdW5jb25kaXRpb25hbGx5LgoKCSogc3JjL2NpZC9jaWRnbG9hZC5jIChDSURfQ29tcHV0ZV9NYXhfQWR2YW5jZSwgQ0lEX0xvYWRfR2x5cGgpOgoJQWRkaW5nIHN1cHBvcnQgdG8gbmV3IFBvc3RTY3JpcHQgaGludGVyLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9wc2dsb2JhbC5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9wc2hpbnRzLmgsCglpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG1vZHVsZS5oLCBzcmMvcHNoaW50ZXIvSmFtZmlsZSwKCXNyYy9wc2hpbnRlci9wc2hhbGdvLmgsIHNyYy9wc2hpbnRlci9wc2hhbGdvMS5oLAoJc3JjL3BzaGludGVyL3BzaGFsZ28xLmMsIHNyYy9wc2hpbnRlci9wc2hhbGdvMi5oLAoJc3JjL3BzaGludGVyL3BzaGFsZ28yLmMsIHNyYy9wc2hpbnRlci9wc2hnbG9iLmgsCglzcmMvcHNoaW50ZXIvcHNoZ2xvYi5jLCBzcmMvcHNoaW50ZXIvcHNoaW50ZXIuYywKCXNyYy9wc2hpbnRlci9wc2htb2QuYywgc3JjL3BzaGludGVyL3BzaG1vZC5oLCBzcmMvcHNoaW50ZXIvcHNocmVjLmMsCglzcmMvcHNoaW50ZXIvcHNocmVjLmg6IEFkZGluZyBuZXcgUG9zdFNjcmlwdCBoaW50ZXIgbW9kdWxlLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvaW50ZXJuYWwuaCwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvcHNhdXguaCwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDF0eXBlcy5oLCBzcmMvcHNhdXgvcHNvYmpzLmMsCglzcmMvcHNhdXgvcHNvYmpzLmgsIHNyYy9wc2F1eC90MWRlY29kZS5oLCBzcmMvcHNhdXgvdDFkZWNvZGUuYywKCXNyYy90eXBlMS90MWRyaXZlci5jLCBzcmMvdHlwZTEvdDFnbG9hZC5jLCBzcmMvdHlwZTEvdDFvYmpzLmMsCglzcmMvdHlwZTEvdDFvYmpzLmg6IFVwZGF0ZXMgdG8gdXNlIHRoZSBuZXcgUG9zdFNjcmlwdCBoaW50ZXIuCgoJKiB0ZXN0cy9KYW1maWxlLCB0ZXN0cy9ndmlldy5jOiBBZGRpbmcgYSBuZXcgZ2x5cGggaGludGluZwoJdmlld2VyL2RlYnVnZ2VyIHRvIHRoZSBzb3VyY2UgdHJlZS4gIE5vdGUgdGhhdCB5b3Ugd2lsbCBfbm90XyBiZQoJYWJsZSB0byBjb21waWxlIGl0IHNpbmNlIGl0IGRlcGVuZHMgb24gYW4gdW5hdmFpbGFibGUgZ3JhcGhpY3MKCWxpYnJhcnkgbmFtZWQgIk5pcnZhbmEiIHRvIHJlbmRlciB2ZWN0b3IgaW1hZ2VzLgoKMjAwMS0xMC0xNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCgkqIFZlcnNpb24gMi4wLjUgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PT09CgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oLCBpbmNsdWRlL2ludGVybmFsL2Z0b2Jqcy5oLAoJc3JjL2Jhc2UvZnRvYmpzLmMsIHNyYy90eXBlMS90MWRyaXZlci5jOiBBZGRpbmcgYSBuZXcgZnVuY3Rpb24gbmFtZWQKCSdGVF9HZXRfUG9zdHNjcmlwdF9OYW1lJyB0byByZXRyaWV2ZSB0aGUgUG9zdFNjcmlwdCBuYW1lIG9mIGEgZ2l2ZW4KCWZvbnQuICBTaG91bGQgd29yayB3aXRoIGFsbCBmb3JtYXRzIGV4Y2VwdCBwdXJlIENGRi9DRUYgZm9udHMgKHRoaXMKCXdpbGwgYmUgYWRkZWQgc29vbikuCgoJKiBzcmMvY2lkL2NpZHJpdmVyIChjaWRfZ2V0X3Bvc3RzY3JpcHRfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShDSURfR2V0X0ludGVyZmFjZSk6IEhhbmRsZSBgcG9zdHNjcmlwdF9uYW1lJyBpbnRlcmZhY2UuCgoJKiBzcmMvc2ZudC9zZmRyaXZlci5jIChnZXRfc2ZudF9wb3N0c2NyaXB0X25hbWUpOiBOZXcgZnVuY3Rpb24uCgkoU0ZOVF9HZXRfSW50ZXJmYWNlKTogSGFuZGxlIGBwb3N0c2NyaXB0X25hbWUnIGludGVyZmFjZS4KCgkqIHNyYy90eXBlMS90MWRyaXZlci5jICh0MV9nZXRfcHNfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShHZXRfSW50ZXJmYWNlKTogSGFuZGxlIGBwb3N0c2NyaXB0X25hbWUnIGludGVyZmFjZS4KCgkqIFJFQURNRSwgZG9jcy9DSEFOR0VTOiBVcGRhdGVkIGZvciAyLjAuNSByZWxlYXNlLgoKMjAwMS0xMC0wOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCUZpeGVkIGEgYnVnIGluIGBnbG5hbWVzLnB5JyB0aGF0IHByZXZlbnRlZCBpdCBmcm9tIGdlbmVyYXRpbmcKCWNvcnJlY3QgZ2x5cGggbmFtZXMgdGFibGVzLiAgVGhpcyByZXN1bHRlZCBpbiB0aGUgdW5hdmFpbGFiaWxpdHkgb2YKCWNlcnRhaW4gZ2x5cGhzIGxpa2UgYENhY3V0ZScsIGBjYWN1dGUnIGFuZCBgbHNsYXNoJyBpbiBVbmljb2RlCgljaGFybWFwcywgZXZlbiBpZiB0aGVzZSB3ZXJlIHByZXNlbnQgaW4gdGhlIGZvbnQgKGNhdXNpbmcgcHJvYmxlbXMKCWZvciBQb2xpc2ggdXNlcnMpLgoKCSogc3JjL3Rvb2xzL2dsbmFtZXMucHkgKG1hY19zdGFuZGFyZF9uYW1lcyk6IEZpeGVkLgoJKHQxX3N0YW5kYXJkX3N0cmluZ3MpOiBTb21lIGZpeGVzIGFuZCByZW5hbWVkIHRvIC4uLgoJKHNpZF9zdGFuZGFyZF9uYW1lcyk6IFRoaXMuCgkodDFfZXhwZXJ0X2VuY29kaW5nKTogRml4ZWQuCgkodGhlX2Fkb2JlX2dseXBoX2xpc3QpOiBSZW5hbWVkIHRvIC4uLgoJKGFkb2JlX2dseXBoX25hbWVzKTogVGhpcy4KCSh0aGVfYWRvYmVfZ2x5cGhzKTogUmVuYW1lZCB0byAuLi4KCShhZG9iZV9nbHlwaF92YWx1ZXMpOiBUaGlzLgoJKGR1bXBfbWFjX2luZGljZXMsIGR1bXBfZ2x5cGhfbGlzdCwgZHVtcF91bmljb2RlX3ZhbHVlcywgbWFpbik6CglVcGRhdGVkLgoJKiBzcmMvcHNuYW1lcy9wc3RhYmxlcy5oOiBSZWdlbmVyYXRlZC4KCSogc3JjL3BzbmFtZXMvcHNtb2R1bGUuYyAoUFNfVW5pY29kZV9WYWx1ZSk6IEZpeCBvZmZzZXQuCglGaXggcmV0dXJuIHZhbHVlLgoJVXNlIGBzaWRfc3RhbmRhcmRfdGFibGUnIGFuZCBgcHNfbmFtZXNfdG9fdW5pY29kZScgaW5zdGVhZCBvZgoJYHQxX3N0YW5kYXJkX2dseXBocycgYW5kIGBuYW1lc190b191bmljb2RlJy4KCShQU19NYWNpbnRvc2hfTmFtZSk6IFVzZSBgcHNfZ2x5cGhfbmFtZXMnIGluc3RlYWQgb2YKCWBzdGFuZGFyZF9nbHlwaF9uYW1lcycuCgkoUFNfU3RhbmRhcmRfU3RyaW5ncyk6IFVzZSBgc2lkX3N0YW5kYXJkX25hbWVzJyBpbnN0ZWFkIG9mCglgdDFfc3RhbmRhcmRfZ2x5cGhzJy4KCgkqIGRvYy9CVUdTLCBkb2MvVE9ETzogTmV3IGRvY3VtZW50cy4KCjIwMDEtMTAtMDcgIFJpY2hhcmQgQmFyYmVyICA8cmljaEBzb2x1dGlvbnVrLmNvbT4KCgkqIHNyYy9jYWNoZS9mdGxydS5jIChGVF9McnVfTG9va3VwX05vZGUpOiBGaXhlZCBhIGJ1ZyB0aGF0IHByZXZlbnRlZAoJY29ycmVjdCBMUlUgYmVoYXZpb3VyLgoKMjAwMS0xMC0wNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCXNldGptcCgpIGFuZCBsb25nam1wKCkgYXJlIG5vdyB1c2VkIGZvciByb2xsYmFjayAoaS5lLiB3aGVuIG1lbW9yeQoJcG9vbCBvdmVyZmxvdyBvY2N1cnMpLgoKCUZ1bmN0aW9uIG5hbWVzIGFyZSBub3cgYWxsIHVuaWZvcm1seSBwcmVmaXhlZCB3aXRoIGBncmF5XycuCgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYzogSW5jbHVkZSA8c2V0am1wLmg+LgoJKEVyclJhc3Rlcl9NZW1vcnlPdmVyZmxvdyk6IE5ldyBtYWNyby4KCShUQXJlYSk6IE5ldyB0eXBlIHRvIHN0b3JlIGFyZWEgdmFsdWVzIGluIGVhY2ggY2VsbCAodXNpbmcgYGludCcgd2FzCgl0b28gc21hbGwgb24gMTYtYml0IHN5c3RlbXMpLiAgPGxpbWl0cy5oPiBpcyBpbmNsdWRlZCB0byBwcm9wZXJseQoJZ2V0IHRoZSBuZWVkZWQgZGF0YSB0eXBlLgoJKFRDZWxsLCBUUmFzdGVyKTogVXNlIGl0LgoJKFRSYXN0ZXIpOiBOZXcgZWxlbWVudCBganVtcF9idWZmZXInLgoJKGdyYXlfY29tcHV0ZV9jYm94KTogVXNlIGBSQVNfQVJHJyBhcyB0aGUgb25seSBwYXJhbWV0ZXIgYW5kIGdldAoJYG91dGxpbmUnIGZyb20gaXQuCgkoZ3JheV9yZWNvcmRfY2VsbCk6IFVzZSBsb25nam1wKCkuCgkoZ3JheV9zZXRfY2VsbCk6IFVzZSBncmF5X3JlY29yZF9jZWxsKCkgZm9yIGVycm9yIGhhbmRsaW5nLgoJKGdyYXlfcmVuZGVyX2xpbmUsIGdyYXlfcmVuZGVyX2NvbmljLCBncmF5X3JlbmRlcl9jdWJpYyk6IFNpbXBsaWZ5LgoJKGdyYXlfY29udmVydF9nbHlwaF9pbm5lcik6IE5ldyBmdW5jdGlvbiwgdXNpbmcgc2V0am1wKCkuCgkoZ3JheV9jb252ZXJ0X2dseXBoKTogVXNlIGl0LgoKMjAwMS0xMC0wNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCVByb3ZpZGUgYSBwdWJsaWMgQVBJIHRvIG1hbmFnZSBtdWx0aXBsZSBzaXplIG9iamVjdHMgZm9yIGEgZ2l2ZW4KCUZUX0ZhY2UgaW4gdGhlIG5ldyBoZWFkZXIgZmlsZSBgZnRzaXplcy5oJy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRzaXplcy5oOiBOZXcgaGVhZGVyIGZpbGUsCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRvYmpzLmg6IFVzZSBpdC4KCVJlbW92ZSBkZWNsYXJhdGlvbnMgb2YgRlRfTmV3X1NpemUgYW5kIEZUX0RvbmVfU2l6ZSAobW92ZWQgdG8KCWZ0c2l6ZXMuaCkuCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0aGVhZGVyLmggKEZUX1NJWkVTX0gpOiBOZXcgbWFjcm8uCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9BY3RpdmF0ZV9TaXplKTogTmV3IGZ1bmN0aW9uLgoJKiBzcmMvY2FjaGUvZnRjbWFuYWcuYzogSW5jbHVkZSBmdHNpemVzLmguCgkoZnRjX21hbmFnZXJfaW5pdF9zaXplLCBmdGNfbWFuYWdlcl9mbHVzaF9zaXplKTogVXNlCglGVF9BY3RpdmF0ZV9TaXplLgoKMjAwMS0wOS0yMCAgRGV0bGVmIFf8cmtuZXIgIDxUZXRpU29mdEBhcGcubGFobi5kZT4KCgkqIGJ1aWxkcy9hbWlnYS8qOiBBZGRlZCBwb3J0IHRvIEFtaWdhIHdpdGggdGhlIFNBUy9DIGNvbXBpbGVyLgoKMjAwMS0wOS0xNSAgRGV0bGVmIFf8cmtuZXIgIDxUZXRpU29mdEBhcGcubGFobi5kZT4KCgkqIHNyYy90eXBlMS90MWFmbS5jIChUMV9Eb25lX0FGTSk6IEZyZWUgYGFmbScuCgoyMDAxLTA5LTEwICBZYW8gWmhhbmcgIDx5emhhbmdAc2hhcmVtZWRpYS5jb20+CgoJKiBzcmMvc2ZudC90dGNtYXAuYyAoY29kZV90b19pbmRleDIpOiBIYW5kbGUgY29kZSB2YWx1ZXMgd2l0aAoJaGktYnl0ZSA9PSAwIGNvcnJlY3RseS4KCjIwMDEtMDktMTAgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9saW5rLXN0ZC5tayAoJChQUk9KRUNUX0xJQlJBUlkpKTogRml4IHR5cG8uCgoyMDAxLTA4LTMwICBNYXJ0aW4gTXVza2VucyAgPG1tdXNrZW5zQGF1cmVsb24uY29tPgoKCSogc3JjL3R5cGUxL3QxbG9hZC5jIChwYXJzZV9mb250X21hdHJpeCk6IEEgbmV3IHdheSB0byBjb21wdXRlIHRoZQoJdW5pdHMgcGVyIEVNIHdpdGggZ3JlYXRlciBhY2N1cmFjeSAoaW1wb3J0YW50IGZvciBlbWJlZGRlZCBUMSBmb250cwoJaW4gUERGIGRvY3VtZW50cyB0aGF0IHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBUcnVlVHlwZQoJb25lcykuCgoJKiBzcmMvdHlwZTEvdDFsb2FkLmMgKGlzX2FscGhhKTogTm93IHN1cHBvcnRzICIrIiBpbiBmb250IG5hbWVzOwoJdGhpcyBpcyB1c2VkIGluIGVtYmVkZGVkIGZvbnRzLgoKCSogc3JjL3BzYXV4L3Bzb2Jqcy5jIChQU19UYWJsZV9BZGQpOiBGaXhlZCBhIHJlYWxsb2NhdGlvbiBidWcgdGhhdAoJZ2VuZXJhdGVkIGEgZGFuZ2xpbmcgcG9pbnRlciByZWZlcmVuY2UuCgoyMDAxLTA4LTMwICBBbnRob255IEZlaWsgIDxhZmVpY2tAaG90bWFpbC5jb20+CgoJKiBzcmMvdHlwZTEvdDFhZm0uYyAoVDFfUmVhZF9BZm0pOiBOb3cgY29ycmVjdGx5IHNldHMgdGhlIGZsYWcKCUZUX0ZBQ0VfRkxBR19LRVJOSU5HIHdoZW4gYXBwcm9wcmlhdGUgZm9yIFR5cGUxICsgQUZNIGZpbGVzLgoKMjAwMS0wOC0yNSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3NmbnQvdHRsb2FkLmMgKFRUX0xvYWRfQ01hcCk6IEZpeCBmcmFtZSBsZW5ndGggb2YKCWBjbWFwX3JlY19maWVsZHMnLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGVycm9ycy5oIFshRlRfQ09ORklHX09QVElPTl9VU0VfTU9EVUxFX0VSUk9SU106CglVbmRlZmluZSBGVF9FUlJfQkFTRSBiZWZvcmUgZGVmaW5pbmcgYWdhaW4uCgoyMDAxLTA4LTIyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuaDogRml4IHByb3RvdHlwZSBvZiBUVF9Nb3ZlX0Z1bmMuCgoyMDAxLTA4LTIxICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvZG9zL2Rvcy1kZWYubWsgKE5PX09VVFBVVCk6IERvbid0IHVzZSBgJj4nIGJ1dCBgPicuCgoyMDAxLTA4LTIxICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG9wdGlvbi5oOiBDaGFuZ2VkIHRoZSBkZWZhdWx0IHNldHRpbmcKCWZvciBGVF9DT05GSUdfT1BUSU9OX1VTRV9NT0RVTEVfRVJST1JTIHRvIHVuZGVmaW5lZCwgc2luY2UgaXQgYnJlYWtzCglzb3VyY2UgY29tcGF0aWJpbGl0eSBpbiBhIGZldyBjYXNlcy4gIFVwZGF0ZWQgdGhlIGNvbW1lbnQgdG8gZXhwbGFpbgoJdGhhdCB0b28uCgoyMDAxLTA4LTE3ICBNYXJ0aW4gTXVza2VucyAgPG1tdXNrZW5zQGF1cmVsb24uY29tPgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX011bERpdik6IEZpeGVkIHNlcmlvdXMgdHlwby4KCjIwMDEtMDgtMTIgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglVcGRhdGluZyB0byBPcGVuVHlwZSAxLjMuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3R0dHlwZXMuaCAoVFRfQ01hcDAsIFRUX0NNYXAyLCBUVF9DTWFwNCwKCVRUX0NNYXA2KTogQWRkaW5nIGZpZWxkIGBsYW5ndWFnZScuCgkoVFRfQ01hcFRhYmxlKTogUmVtb3ZpbmcgZmllbGQgYGxhbmd1YWdlJy4KCVR5cGUgb2YgYGxlbmd0aCcgZmllbGQgY2hhbmdlZCB0byBGVF9VTG9uZy4KCUFkZGluZyBmaWVsZHMgZm9yIGNtYXBzIGZvcm1hdCA4LCAxMCwgYW5kIDEyLgoJKFRUX0NNYXBHcm91cCk6IE5ldyBhdXhpbGlhcnkgc3RydWN0dXJlLgoJKFRUX0NNYXA4XzEyLCBUVF9DTWFwMTApOiBOZXcgc3RydWN0dXJlcy4KCSogaW5jbHVkZS9mcmVldHlwZS90dHRhYmxlcy5oIChUVF9Ib3JpSGVhZGVyLCBUVF9WZXJ0SGVhZGVyKToKCVJlbW92ZWQgbGFzdCBlbGVtZW50IG9mIGBSZXNlcnZlZCcgYXJyYXkuCgkqIGluY2x1ZGUvZnJlZXR5cGUvdHRuYW1laWQuaCAoVFRfUExBVEZPUk1fQ1VTVE9NLCBUVF9NU19JRF9VQ1NfNCwKCVRUX05BTUVfSURfQ0lEX0ZJTkRGT05UX05BTUUpOiBOZXcgbWFjcm9zLgoKCSogc3JjL3NmbnQvdHRjbWFwLmMgKFRUX0NoYXJNYXBfTG9hZCk6IFVwZGF0ZWQgbG9hZGluZyBvZiBgbGFuZ3VhZ2UnCglmaWVsZCB0byB0aGUgbmV3IHN0cnVjdHVyZXMuCglGaXhlZCBmcmVlaW5nIG9mIGFycmF5cyBpbiBjYXNlIG9mIHVuc3VjY2Vzc2Z1bCBsb2Fkcy4KCUFkZGVkIHN1cHBvcnQgZm9yIGxvYWRpbmcgZm9ybWF0IDgsIDEwLCBhbmQgMTIgY21hcHMuCgkoVFRfQ2hhck1hcF9GcmVlKTogQWRkZWQgc3VwcG9ydCBmb3IgZnJlZWluZyBmb3JtYXQgOCwgMTAsIGFuZCAxMgoJY21hcHMuCgkoY29kZV90b19pbmRleDQpOiBTbWFsbCBpbXByb3ZlbWVudC4KCShjb2RlX3RvX2luZGV4Nik6IERpdHRvLgoJKGNvZGVfdG9faW5kZXg4XzEyLCBjb2RlX3RvX2luZGV4MTApOiBOZXcgZnVuY3Rpb25zLgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9NZXRyaWNzX0hlYWRlcik6IFVwZGF0ZWQgdG8gbmV3CglzdHJ1Y3R1cmUuCgkoVFRfTG9hZF9DTWFwKTogRGl0dG8uCgoJKiBzcmMvc2ZudC9zZm9ianMuYyAodHRfZW5jb2RpbmdzKTogQWRkIE1TIFVDUzQgdGFibGUgKGJlZm9yZSBNUwoJVW5pY29kZSkuCgoyMDAxLTA4LTExICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvdHlwZTEvdDFkcml2ZXIuYyAodDFfZ2V0X25hbWVfaW5kZXgpOiBGaXggY29tcGlsZXIgd2FybmluZy4KCjIwMDEtMDgtMDkgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2ZmL2NmZmRyaXZyLmMgKGdldF9jZmZfZ2x5cGhfbmFtZSk6IFJlbmFtZWQgdG8KCWNmZl9nZXRfZ2x5cGhfbmFtZSBmb3IgY29uc2lzdGVuY3kuCgoJKGNmZl9nZXRfZ2x5cGhfaW5kZXgpOiBNaW5vciBkb2N1bWVudGF0aW9uIGNoYW5nZS4KCgkqIHNyYy90eXBlMS90MWRyaXZlci5jICh0MV9nZXRfbmFtZV9pbmRleCk6IE5ldyBmdW5jdGlvbiB1c2VkIGluCglHZXRfSW50ZXJmYWNlIGFzIHRoZSBmdW5jdGlvbiByZXR1cm5lZCB3aGVuIHRoZSAibmFtZV9pbmRleCIKCWZ1bmN0aW9uIGlzIHJlcXVlc3RlZC4KCgkoZ2V0X3QxX2dseXBoX25hbWUpOiBSZW5hbWVkIHRvIHQxX2dldF9nbHlwaF9uYW1lIGZvciBjb25zaXN0ZW5jeS4KCjIwMDEtMDgtMDggIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2ZmL2NmZmxvYWQuYzogUmVtb3ZlZCBkZWZpbml0aW9ucyBvZiBjZmZfaXNvYWRvYmVfY2hhcnNldCwKCWNmZl9leHBlcnRfY2hhcnNldCwgY2ZmX2V4cGVydHN1YnNldF9jaGFyc2V0LCBjZmZfc3RhbmRhcmRfZW5jb2RpbmcsCglhbmQgY2ZmX2V4cGVydF9lbmNvZGluZyBhcnJheXMgdG8gY2ZmbG9hZC5oLgoKCSogc3JjL2NmZi9jZmZsb2FkLmg6IEFkZGVkIGRlZmluaXRpb25zIG9mIGNmZl9pc29hZG9iZV9jaGFyc2V0LAoJY2ZmX2V4cGVydF9jaGFyc2V0LCBjZmZfZXhwZXJ0c3Vic2V0X2NoYXJzZXQsIGNmZl9zdGFuZGFyZF9lbmNvZGluZywKCWFuZCBjZmZfZXhwZXJ0X2VuY29kaW5nIGFycmF5cy4KCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYyAoY2ZmX2dldF9uYW1lX2luZGV4KTogTmV3IGZ1bmN0aW9uLCByZXR1cm5lZAoJd2hlbiBgY2ZmX2dldF9pbnRlcmZhY2UnIGlzIGNhbGxlZCB3aXRoIGEgcmVxdWVzdCBmb3IgdGhlCgkibmFtZV9pbmRleCIgZnVuY3Rpb24uCgoJKGNmZl9nZXRfaW50ZXJmYWNlKTogTW9kaWZpZWQgc28gdGhhdCBpdCByZXR1cm5zIHRoZSBmdW5jdGlvbgoJYGNmZl9nZXRfbmFtZV9pbmRleCcgd2hlbiB0aGUgIm5hbWVfaW5kZXgiIGZ1bmN0aW9uIGlzIHJlcXVlc3RlZC4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9HZXRfTmFtZV9JbmRleCk6IE5ldyBmdW5jdGlvbiwgdXNlZCB0bwoJcmV0dXJuIGEgZ2x5cGggaW5kZXggZm9yIGEgZ2l2ZW4gZ2x5cGggbmFtZSBvbmx5IGlmIHRoZSBkcml2ZXIKCXN1cHBvcnRzIGdseXBoIG5hbWVzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCAoRlRfTmFtZV9JbmRleF9SZXF1ZXN0ZXIpOgoJTmV3IGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSBkZWZpbnRpb24gdXNlZCBpbiB0aGUgZnVuY3Rpb24KCUZUX0dldF9OYW1lX0luZGV4LgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGVF9HZXRfTmFtZV9JbmRleCk6IEFkZGVkCglkb2N1bWVudGF0aW9uIGFuZCBwcm90b3R5cGUuCgoyMDAxLTA3LTI2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvY3lnd2luLyo6IFJlbW92ZWQuICBVc2UgdGhlIHVuaXggc3R1ZmYgaW5zdGVhZC4KCjIwMDEtMDctMjYgIEpvdWsgSmFuc2VuICA8am91a2pAaHJlbS5zdG0udHVkZWxmdC5ubD4KCgkqIGJ1aWxkcy92bXMvZnRjb25maWcuaCAoRlRfQ0FMTEJBQ0tfREVGKTogVXBkYXRlZCB0byBjaGFuZ2UgZGF0ZWQKCTIwMDEtMDYtMjcuCgoyMDAxLTA3LTE3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzYXV4LmggKFBTX1RhYmxlKTogVXNlIEZUX09mZnNldCBmb3IKCWBjdXJzb3InIGFuZCBgY2FwYWNpdHknLgoJKiBzcmMvcHNhdXgvcHNvYmpjLmMgKHJlYWxsb2NhdGVfdDFfdGFibGUpOiBVc2UgRlRfTG9uZyBmb3Igc2Vjb25kCglwYXJhbWV0ZXIuCgkoUFNfVGFibGVfQWRkKTogVXNlIEZUX09mZnNldCBmb3IgYG5ld19zaXplJy4KCglBZGQgc3VwcG9ydCBmb3IgdmVyc2lvbiAwLjUgbWF4cCB0YWJsZXMuCgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9NYXhQcm9maWxlKTogSW1wbGVtZW50IGl0LgoJKFRUX0xvYWRfT1MyKTogSW5pdGlhbGl6ZSBzb21lIHZhbHVlcy4KCjIwMDEtMDctMTMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9iYXNlL2Z0c3ludGguYzogSW5jbHVkZSBmdGNhbGMuaCB1bmNvbmRpdGlvbmFsbHkuCgoyMDAxLTA3LTA3ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jLCBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYywgc3JjL3BjZi9wY2ZyZWFkOgoJUmVtb3ZlZCBwZWRhbnRpYyBjb21waWxlciB3YXJuaW5ncyB3aGVuIHRoZSBieXRlY29kZSBpbnRlcnByZXRlciBpcwoJY29tcGlsZWQgaW4uCgoyMDAxLTA3LTAzICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvYXV0b2hpbnQvYWhoaW50LmMgKGFoX2hpbnRlcl9hbGlnbl93ZWFrX3BvaW50cyk6IFJlbW92ZQoJdW51c2VkIHZhcmlhYmxlIGBlZGdlcycuCgkoYWhfaGludGVyX2xvYWQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBgb2xkX3dpZHRoJyBhbmQKCWBuZXdfd2lkdGgnLgoJKiBzcmMvY2lkL2NpZGxvYWQuYyAoY2lkX2RlY3J5cHQpOiBVc2UgYFUnIGZvciBjb25zdGFudCAoYWdhaW4pLgoJKiBzcmMvcHNhdXgvcHNvYmpzLmMgKFQxX0RlY3J5cHQpOiBEaXR0by4KCSogc3JjL3R5cGUxL3QxcGFyc2UuYyAoVDFfR2V0X1ByaXZhdGVfRGljdCk6IERpdHRvLgoKMjAwMS0wNi0yOCAgRGF2aWQgVHVybmVyIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBpbmNsdWRlL2ludGVybmFsL2Z0c3RyZWFtLmg6IE1vZGlmaWVkIHRoZSBkZWZpbml0aW9ucwoJb2YgdGhlIEZUX0dFVF9YWFhYIGFuZCBORVhUX1hYWFggbWFjcm9zIGZvciAxNi1iaXQgY29ycmVjdG5lc3MuCgoyMDAxLTA2LTI2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvY2lkL2NpZGxvYWQuYywgc3JjL2NpZC9jaWRsb2FkLmggKGNpZF9kZWNyeXB0KTogVXNlIEZUX09mZnNldAoJaW5zdGVhZCBvZiBGVF9JbnQgYXMgdHlwZSBmb3IgYGxlbmd0aCcgcGFyYW1ldGVyLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzYXV4LmggKFBTQXV4X0ludGVyZmFjZSk6IFVwZGF0ZWQuCgoyMDAxLTA2LTI3ICBXb2xmZ2FuZyBEb21y9nNlICA8cG9ydGhvcy5kb21yb2VzZUBoYXJ6LmRlPgoKCSogc3JjL3BzYXV4L3Bzb2Jqcy5jLCBzcmMvcHNhdXgvcHNvYmpzLmggKFQxX0RlY3J5cHQpOiBVc2UgRlRfT2Zmc2V0CglpbnN0ZWFkIG9mIEZUX0ludCBhcyB0eXBlIGZvciBgbGVuZ3RoJyBwYXJhbWV0ZXIuCgoKCSogVmVyc2lvbiAyLjAuNCByZWxlYXNlZC4KCT09PT09PT09PT09PT09PT09PT09PT09PT0KCgoyMDAxLTA2LTI3ICBEYXZpZCBUdXJuZXIgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy91bml4L2Z0Y29uZmlnLmluOiBDaGFuZ2VkIHRoZSBkZWZpbml0aW9uIG9mIHRoZQoJRlRfQ0FMTEJBQ0tfREVGIG1hY3JvLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGNvbmZpZy5oLCBzcmMvKi8qLmM6IENoYW5nZWQgdGhlIGRlZmluaXRpb24gYW5kCgl1c2Ugb2YgdGhlIEZUX0NBTExCQUNLX0RFRiBtYWNybyBpbiBvcmRlciB0byBzdXBwb3J0IDE2LWJpdAoJY29tcGlsZXJzLgoKCSogYnVpbGRzL3VuaXgvZnRjb25maWcuaW46IENoYW5nZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlCglGVF9DQUxMQkFDS19ERUYgbWFjcm8uCgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9LZXJuKTogVGhlIGtlcm4gdGFibGUgbG9hZGVyIG5vdyBlbnN1cmVzCgl0aGF0IHRoZSBrZXJuaW5nIHRhYmxlIGlzIGNvcnJlY3RseSBzb3J0ZWQgKHNvbWUgcHJvYmxlbSBmb250cyBkb24ndAoJaGF2ZSBhIGNvcnJlY3Qga2VybiB0YWJsZSkuCgoyMDAxLTA2LTI2ICBXb2xmZ2FuZyBEb21y9nNlICA8cG9ydGhvcy5kb21yb2VzZUBoYXJ6LmRlPgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdHN0cmVhbS5oIChGVF9HRVRfT0ZGM19MRSk6IEZpeCB0eXBvLgoKMjAwMS0wNi0yNCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKGZ0X2RpdjY0YnkzMik6IEZpeGVkIHRoZSBzb3VyY2UgdG8gd29yawoJY29ycmVjdGx5IG9uIDE2LWJpdCBzeXN0ZW1zLgoKMjAwMS0wNi0yMyAgQW50aG9ueSBGb2sgIDxmb2tAZGViaWFuLm9yZz4KCgkqIGRlYmlhbi8qOiBBZGRlZCBEZWJpYW4gcGFja2FnZSBidWlsZCBkaXJlY3RvcnkgZm9yIDIuMC40LgoKMjAwMS0wNi0yMiAgRGF2aWQgVHVybmVyIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL1BBVEVOVFM6IEFkZGVkIHBhdGVudHMgZGlzY2xhaW1lci4gIFRoaXMgb25lIHdhcyBtaXNzaW5nIQoKCSogZG9jcy9DSEFOR0VTLCBkb2NzL3RvZG86IFVwZGF0ZWQgZm9yIHRoZSB1cGNvbWluZyAyLjAuNCByZWxlYXNlLgoKMjAwMS0wNi0yMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRjb25maWcuaDogQWRkIHR3byBtb3JlIGBMJ3MgdG8KCWNvbnN0YW50cy4KCUFkZCBtaXNzaW5nIHNlbWljb2xvbnMuCgoJKiBidWlsZHMvdG9wbGV2ZWwubWs6IERvIHNpbWlsYXIgY2hhbmdlIGFzIGZvcgoJYnVpbGRzL3VuaXgvZGV0ZWN0Lm1rLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGVF9FTkNfVEFHKTogTmV3IHZlcnNpb24gdG8gbWFrZSBpdAoJZWFzaWVyIHRvIHJlZGVmaW5lLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0aW1hZ2UuaCAoRlRfSU1BR0VfVEFHKTogRGl0dG8uCgoJKiBzcmMvcGNmL3BjZnJlYWQuYyAocGNmX2dldF9lbmNvZGluZ3MpOiBBZGQgY2FzdC4KCjIwMDEtMDYtMTkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy93aW4zMi92aXN1YWxjL2ZyZWV0eXBlLmRzcCwgYnVpbGRzL3dpbjMyL3Zpc3VhbGMvaW5kZXguaHRtbDoKCVVwZGF0ZWQgdGhlIFZpc3VhbCBDKysgcHJvamVjdCAoZm9yIHRoZSAyLjAuNCByZWxlYXNlKS4KCgkqIGJ1aWxkcy91bml4L2RldGVjdC5tazogQWRkZWQgcnVsZSBmb3IgQUlYIGRldGVjdGlvbiAod2hpY2ggdXNlcwoJL3Vzci9zYmluL2luaXQgaW5zdGVhZCBvZiAvc2Jpbi9pbml0KS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRlcnJvcnMuaCwgc3JjLyovKmVyciouaDogVXBkYXRlZCBzb21lIG9mIHRoZQoJZXJyb3IgbWFjcm9zIHRvIHNpbXBsaWZ5IGhhbmRsaW5nIG9mIG5ldyBlcnJvciBzY2hlbWUuCgoyMDAxLTA2LTE5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0dHlwZXMuaCAoRlRfRVJST1JfTU9EVUxFKTogTmV3IG1hY3JvLgoKMjAwMS0wNi0xOSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCVJlbW92aW5nIF9sb3RzXyBvZiBjb21waWxlciB3YXJuaW5ncyB3aGVuIHRoZSBtb3N0IHBlZGFudGljIHdhcm5pbmcKCWxldmVscyBvZiBWaXN1YWwgQysrIGFuZCBCb3JsYW5kIEMrKyBhcmUgdXNlZC4gIFRvbyBtYW55IGZpbGVzIHRvIGJlCglsaXN0ZWQgaGVyZSwgYnV0IEZUMiBub3cgY29tcGlsZXMgd2l0aG91dCB3YXJuaW5ncyB3aXRoIFZDKysgYW5kIHRoZQoJIi9XNCIgd2FybmluZyBsZXZlbCAobGludC1zdHlsZSkuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ZyZWV0eXBlLmggKEZUX05ld19NZW1vcnlfRmFjZSk6IFVwZGF0ZWQKCWRvY3VtZW50YXRpb24uCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnR0eXBlcy5oIChGVF9CT09MKTogTmV3IG1hY3JvLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0ZGVidWcuaDogQWRkICNwcmFnbWEgZm9yIFZpc3VhbCBDKysKCXRvIHN1cHByZXNzIHdhcm5pbmcuCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRzdHJlYW0uaCAoRlRfR0VUX1NIT1JUX3tCRSxMRX0sCglGVF9HRVRfT0ZGM197QkUsTEV9LCBGVF9HRVRfTE9OR197QkUsTEV9KTogTmV3IG1hY3Jvcy4KCShORVhUXyopOiBVc2UgdGhlbS4KCSogc3JjL2F1dG9oaW50L2FoZ2xvYmFsLmM6IEluY2x1ZGUgRlRfSU5URVJOQUxfREVCVUdfSC4KCShGVF9OZXdfTWVtb3J5X0ZhY2UpOiBBZGQgYGNvbnN0JyB0byBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCjIwMDEtMDYtMTggIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglNaW5vciBjbGVhbnVwcyB0byByZW1vdmUgY29tcGlsZXIgd2FybmluZ3MuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NhY2hlL2Z0Y21hbmFnLmggKEZUQ19NQVhfQllURVNfREVGQVVMVCk6IFVzZQoJYEwnIGZvciBjb25zdGFudC4KCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRvcHRpb24uaCAoRlRfUkVOREVSX1BPT0xfU0laRSk6IERpdHRvLgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfTXVsRGl2KTogVXNlIGBMJyBmb3IgY29uc3RhbnQuCgkqIHNyYy9iYXNlL2Z0Z2x5cGguYyAoRlRfR2x5cGhfR2V0X0NCb3gpOiBSZW1vdmUgYGVycm9yJyB2YXJpYWJsZS4KCSogc3JjL2Jhc2UvZnR0cmlnb24uYyAoZnRfdHJpZ19hcmN0YW5fdGFibGUpOiBVc2UgYEwnIGZvciBjb25zdGFudHMuCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9Eb25lX1NpemUpOiBGaXggcmV0dXJuIHZhbHVlLgoJKEZUX1NldF9DaGFyX1NpemUsIEZUX1NldF9QaXhlbF9TaXplcywgRlRfR2V0X0tlcm5pbmcpOiBSZW1vdmUKCXVudXNlZCBgbWVtb3J5JyB2YXJpYWJsZS4KCSogc3JjL2F1dG9oaW50L2FoZ2x5cGguYyAoYWhfZ2V0X29yaWVudGF0aW9uKTogVXNlIGBMJyBmb3IgY29uc3RhbnQuCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYyAoYWhfaGludF9lZGdlc18zLAoJYWhfaGludGVyX2FsaWduX2VkZ2VfcG9pbnRzKTogUmVtb3ZlIHVudXNlZCBgYmVmb3JlJyBhbmQgYGFmdGVyJwoJdmFyaWFibGVzLgoJKGFoX2hpbnRlcl9hbGlnbl93ZWFrX3BvaW50cyk6IFJlbW92ZSB1bnVzZWQgYGVkZ2VfbGltaXQnIHZhcmlhYmxlLgoJKGFoX2hpbnRlcl9sb2FkKTogUmVtb3ZlIHVudXNlZCBgbmV3X2FkdmFuY2UnLCBgc3RhcnRfY29udG91cicsCglhbmQgYG1ldHJpY3MnIHZhcmlhYmxlcy4KCSogc3JjL2NmZi9jZmZsb2FkLmMgKENGRl9Mb2FkX0VuY29kaW5nKTogUmVtb3ZlIGRlYWQgY29kZSB0byBhdm9pZAoJY29tcGlsZXIgd2FybmluZy4KCSogc3JjL2NmZi9jZmZvYmpzLmMgKENGRl9Jbml0X0ZhY2UpOiBSZW1vdmUgdW51c2VkIGBiYXNlX29mZnNldCcKCXZhcmlhYmxlLgoJKiBzcmMvY2ZmL2NmZmdsb2FkLmMgKENGRl9QYXJzZV9DaGFyU3RyaW5ncyk6IFJlbW92ZSB1bnVzZWQKCWBvdXRsaW5lJyB2YXJpYWJsZS4KCShjZmZfY29tcHV0ZV9iaWFzKTogVXNlIGBVJyBmb3IgY29uc3RhbnQuCgkqIHNyYy9jaWQvY2lkbG9hZC5jIChjaWRfZGVjcnlwdCk6IERpdHRvLgoJKiBzcmMvcHNhdXgvcHNvYmpzLmMgKFQxX0RlY3J5cHQpOiBEaXR0by4KCSogc3JjL3BzYXV4L3QxZGVjb2RlLmMgKFQxX0RlY29kZXJfUGFyc2VfQ2hhclN0cmluZ3MpOiBEaXR0by4KCSogc3JjL3NmbnQvdHRsb2FkLmMgKFRUX0xvYWRfS2Vybik6IFJlbW92ZSB1bnVzZWQgYHZlcnNpb24nCgl2YXJpYWJsZS4KCSogc3JjL3NmbnQvdHRzYml0LmMgKFRUX0xvYWRfU0JpdF9JbWFnZSk6IFJlbW92ZSB1bnVzZWQgYHRvcCcKCXZhcmlhYmxlLgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChsb2FkX3RydWV0eXBlX2dseXBoKTogUmVtb3ZlIHVudXNlZAoJYG51bV9jb250b3VycycgYW5kIGBpbnNfb2Zmc2V0JyB2YXJpYWJsZXMuCgkoY29tcHV0ZV9nbHlwaF9tZXRyaWNzKTogUmVtb3ZlIHVudXNlZCBgVG9wJyBhbmQgYHhfc2NhbGUnCgl2YXJpYWJsZXMuCgkoVFRfTG9hZF9HbHlwaCk6IFJlbW92ZSB1bnVzZWQgYG1lbW9yeScgdmFyaWFibGUuCgkqIHNyYy9zbW9vdGgvZnRncmF5cy5jIChncmF5c19yYXN0ZXJfcmVuZGVyKTogVXNlIGBMJyBmb3IgY29uc3RhbnRzLgoKMjAwMS0wNi0xOCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCU1ha2UgdGhlIG5ldyBlcnJvciBzY2hlbWUgc291cmNlIGNvbXBhdGlibGUgd2l0aCBvbGRlciBGVCB2ZXJzaW9ucwoJYnkgaW50cm9kdWNpbmcgYW5vdGhlciBsYXllci4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRlcnJvcnMuaCAoRlRfRVJST1JERUZfLCBGVF9OT0VSUk9SREVGXyk6IE5ldwoJbWFjcm9zLgoJKEZUX05PRVJST1JERUYpOiBSZW1vdmVkLgoJKiBpbmNsdWRlLyovKmVyciouaDogVXNlIEZUX0VSUk9SREVGXyBhbmQgRlRfTk9FUlJPUkRFRl8uCgoyMDAxLTA2LTE2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ZyZWV0eXBlLmggKEZUX0VOQ19UQUcpOiBOZXcgbWFjcm8uCgkoRlRfRW5jb2RpbmdfKTogVXNlIGl0LgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0aW1hZ2UuaCAoRlRfSU1BR0VfVEFHKTogRGVmaW5lIGl0Cgljb25kaXRpb25hbGx5LgoKMjAwMS0wNi0xNCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCU1vZGlmaWVkIHRoZSBUcnVlVHlwZSBpbnRlcnByZXRlciB0byBsZXQgaXQgdXNlIHRoZSBuZXcKCXRyaWdvbm9tZXRyaWMgZnVuY3Rpb25zIHByb3ZpZGVkIGluICJmdHRyaWdvbi5oIi4gIFRoaXMgZ2V0cyByaWQgb2YKCXNvbWUgb2xkIDY0LWJpdCBjb21wdXRhdGlvbiByb3V0aW5lcywgYXMgd2VsbCBhcyBtYW55IHdhcm5pbmdzIHdoZW4KCWNvbXBpbGluZyB0aGUgbGlicmFyeSB3aXRoIHRoZSAibG9uZyBsb25nIiA2NC1iaXQgaW50ZWdlciB0eXBlLgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRvcHRpb24uaDogVW5kZWZpbmUKCUZUX0NPTkZJR19PUFRJT05fT0xEX0NBTENTLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0Y2FsYy5oOiBSZWFycmFuZ2UgdXNlIG9mCglGVF9DT05GSUdfT1BUSU9OX09MRF9DQUxDUy4KCSogc3JjL2Jhc2UvZnRjYWxjLmM6IEFkZCBkZWNsYXJhdGlvbiBvZiBGVF9JbnQ2NCBpZgoJRlRfQ09ORklHX09QVElPTl9PTERfQ0FMQ1MgaXNuJ3QgZGVmaW5lZC4KCSogc3JjL3RydWV0eXBlL3R0aW50ZXJwLmM6IFVzZSBGVF9UUklHT05PTUVUUllfSC4KCShOb3JtKTogQWRkIGEgc3BlY2lhbCB2ZXJzaW9uIGlmIEZUX0NPTkZJR19PUFRJT05fT0xEX0NBTENTIGlzbid0CglkZWZpbmVkLgoJKEN1cnJlbnRfUmF0aW8sIE5vcm1hbGl6ZSk6IFNpbXBsaWZ5IGNvZGUuCgoyMDAxLTA2LTExICBNaWtlIE93ZW5zICA8TU93ZW5zQGFtdGRhdGFzb3V0aC5jb20+CgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfTXVsRGl2LCBGVF9EaXZGaXgsIEZUX1NxcnQ2NCk6IFJlbW92ZQoJY29tcGlsZXIgd2FybmluZ3MuCgoyMDAxLTA2LTA4ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9jb25maWd1cmUuaW46IFJlbmFtZWQgdG8gLi4uCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZS5hYzogVGhpcyB0byBtYWtlIHN1cmUgdGhhdCBhdXRvY29uZiAyLjUwIGlzCgluZWVkZWQuCglSdW4gYGF1dG91cGRhdGUnIG9uIGl0LgoJSW5jcmVhc2UgYHZlcnNpb25faW5mbycgdG8gNzowOjEuCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAxLTA2LTA4ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYXV0b2hpbnQvYWhoaW50LmMgKGFoX2hpbnRlcl9sb2FkX2dseXBoKTogRml4ZWQgYSBidWcgdGhhdAoJY29ycnVwdGVkIHRyYW5zZm9ybWVkIGdseXBocyB0aGF0IHdlcmUgYXV0by1oaW50ZWQgKHRoZSB0cmFuc2Zvcm0KCXdhcyBhcHBsaWVkIHR3aWNlKS4KCglGaXhlZCBhIGJ1ZyB0aGF0IHJldHVybmVkIGFuIGludmFsaWQgbGluZWFyIHdpZHRoIGZvciBjb21wb3NpdGUKCVRydWVUeXBlIGdseXBocy4KCgkqIGluY2x1ZGUvaW50ZXJuYWwvdHR0eXBlcy5oIChUVF9Mb2FkZXJfKTogVHdvIG5ldyBlbGVtZW50cyBgbGluZWFyJwoJYW5kIGBsaW5lYXJfZGVmJy4KCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYyAobG9hZF90cnVldHlwZV9nbHlwaCwKCWNvbXB1dGVfZ2x5cGhfbWV0cmljcyk6IFVzZSBpdC4KCgkqIGluY2x1ZGUvZnR0eXBlcy5oIChGVF9FUlJPUl9CQVNFKTogTmV3IG1hY3JvLgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfT3Blbl9GYWNlLCBGVF9SZW5kZXJfR2x5cGhfSW50ZXJuYWwpOiBVc2UgaXQKCXRvIG1ha2Ugc291cmNlIGNvZGUgd29yayB3aXRoIHRoZSBuZXcgZXJyb3Igc2NoZW1lIGltcGxlbWVudGVkIGJ5CglXZXJuZXIuCgkqIHNyYy9iYXNlL2Z0b3V0bG4uYyAoRlRfT3V0bGluZV9SZW5kZXIpOiBEaXR0by4KCjIwMDEtMDYtMDcgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglVcGRhdGluZyB0byBsaWJ0b29sIDEuNC4wIGFuZCBhdXRvY29uZiAyLjUwLgoKCSogYnVpbGRzL3VuaXgvbHRjb25maWc6IFJlbW92ZWQuCgkqIGJ1aWxkcy91bml4L2x0bWFpbi5zaCwgYnVpbGRzL3VuaXgvY29uZmlndXJlLmluLAoJYnVpbGRzL3VuaXgvYWNsb2NhbC5tNDogVXBkYXRlZC4KCSogYnVpbGRzL3VuaXgvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDEtMDYtMDYgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglDb21wbGV0ZSByZWRlc2lnbiBvZiBlcnJvciBjb2Rlcy4gIFBsZWFzZSBjaGVjayBmdG1vZGVyci5oIGZvciBtb3JlCglkZXRhaWxzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9jZmZlcnJzLmgsCglpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3R0ZXJyb3JzLmgsCglpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxZXJyb3JzLmg6IFJlbW92ZWQuICBSZXBsYWNlZCB3aXRoIGZpbGVzCglsb2NhbCB0byB0aGUgbW9kdWxlLiAgQWxsIGV4dHJhIGVycm9yIGNvZGVzIGhhdmUgYmVlbiBtb3ZlZCB0bwoJYGZ0ZXJyb3JzLmgnLgoKCSogc3JjL3NmbnQvdHRwb3N0Lmg6IE1vdmUgZXJyb3IgY29kZXMgdG8gYGZ0ZXJyb3JzLmgnLgoKCSogc3JjL2F1dG9oaW50L2FoZXJyb3JzLmgsIHNyYy9jYWNoZS9mdGNlcnJvci5oLCBzcmMvY2ZmL2NmZmVycnMuaCwKCXNyYy9jaWQvY2lkZXJycy5oLCBzcmMvcGNmL3BjZmVycm9yLmgsIHNyYy9wc2F1eC9wc2F1eGVyci5oLAoJc3JjL3BzbmFtZXMvcHNuYW1lcnIuaCwgc3JjL3Jhc3Rlci9yYXN0ZXJycy5oLCBzcmMvc2ZudC9zZmVycm9ycy5oLAoJc3JjL3Ntb290aC9mdHNtZXJycy5oLCBzcmMvdHJ1ZXR5cGUvdHRlcnJvcnMuaCwKCXNyYy90eXBlMS90MWVycm9ycy5oLCBzcmMvd2luZm9udHMvZm50ZXJycy5oOiBOZXcgZmlsZXMgZGVmaW5pbmcgdGhlCgllcnJvciBuYW1lcyBmb3IgdGhlIG1vZHVsZSBpdCBiZWxvbmdzIHRvLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdG1vZGVyci5oOiBOZXcgZmlsZSwgZGVmaW5pbmcgdGhlIG1vZHVsZSBlcnJvcgoJb2Zmc2V0cy4gIEl0cyBzdHJ1Y3R1cmUgaXMgc2ltaWxhciB0byBgZnRlcnJvcnMuaCcuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0ZXJyb3JzLmggKEZUX05PRVJST1JERUYpOiBOZXcgbWFjcm8uCgkoRlRfRVJST1JERUYpOiBSZWRlZmluZWQgdG8gdXNlIG1vZHVsZSBlcnJvciBvZmZzZXRzLgoJQWxsIGludGVybmFsIGVycm9yIGNvZGVzIGFyZSBub3cgcHVibGljOyB1bnVzZWQgZXJyb3IgY29kZXMgaGF2ZQoJYmVlbiByZW1vdmVkLCBzb21lIGFyZSBuZXcuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdGhlYWRlci5oIChGVF9NT0RVTEVfRVJST1JTX0gpOiBOZXcKCW1hY3JvLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG9wdGlvbi5oCgkoRlRfQ09ORklHX09QVElPTl9VU0VfTU9EVUxFX0VSUk9SUyk6IE5ldyBtYWNyby4KCglBbGwgb3RoZXIgc291cmNlIGZpbGVzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIHVzZSB0aGUgbmV3IGVycm9yIGNvZGVzOwoJc29tZSBhbHJlYWR5IGV4aXN0aW5nIChpbnRlcm5hbCkgZXJyb3IgY29kZXMgbG9jYWwgdG8gYSBtb2R1bGUgaGF2ZQoJYmVlbiByZW5hbWVkIHRvIGdpdmUgdGhlbSB0aGUgc2FtZSBuYW1lIGFzIGluIHRoZSBiYXNlIG1vZHVsZS4KCglBbGwgbWFrZSBmaWxlcyBoYXZlIGJlZW4gdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBsb2NhbCBlcnJvciBmaWxlcy4KCjIwMDEtMDYtMDYgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9jaWQvY2lkdG9rZW5zLmg6IFJlcGxhY2VkIHdpdGguLi4KCSogc3JjL2NpZC9jaWR0b2tlbi5oOiBUaGlzIGZpbGUgZm9yIDgrMyBjb25zaXN0ZW5jeS4KCgkqIHNyYy9yYXN0ZXIvZnRyYXN0ZXIuYzogVXNlIG1hY3JvcyBmb3IgaGVhZGVyIGZpbGUgbmFtZXMuCgoJKiBzcmMvaW5jbHVkZS9mcmVldHlwZS90dHRhYmxlcy5oIChUVF9Ib3JpSGVhZGVyXywgVFRfVmVydEhlYWRlcl8pOgoJRml4IGxlbmd0aCBvZiBgUmVzZXJ2ZWQnIGFycmF5LiAgTm90ZSB0aGF0IHRoaXMgaXNuJ3QgdGhlIHJlYWwgZml4CglzaW5jZSByZWNlbnQgT3BlblR5cGUgc3BlY3MgaGF2ZSBpbnRyb2R1Y2VkIGEgYENhcmV0T2Zmc2V0JyBmaWVsZAoJaW5zdGVhZCBvZiB0aGUgZmlyc3QgcmVzZXJ2ZWQgYnl0ZS4KCjIwMDEtMDUtMjkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIElOU1RBTEw6IE1pbm9yIGZpeGVzLgoKCgkqIFZlcnNpb24gMi4wLjMgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PT09CgoKMjAwMS0wNS0yOSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogSU5TVEFMTCwgZG9jcy9DSEFOR0VTOiBVcGRhdGVkLgoKMjAwMS0wNS0yNSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCU1vdmVkIHNldmVyYWwgZG9jdW1lbnRzIGZyb20gdGhlIHRvcC1sZXZlbCB0byB0aGUgImRvY3MiIGRpcmVjdG9yeS4KCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jIChGVF9EaXZGaXgpOiBTbWFsbCBmaXggdG8gcmV0dXJuIHZhbHVlLgoKMjAwMS0wNS0xNiAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYyAobG9hZF90cnVldHlwZV9nbHlwaCk6IEZpeGVkIGEgYnVnIGluIHRoZQoJY29tcG9zaXRlIGxvYWRlci4gIFNwb3R0ZWQgYnkgS2VpdGggUGFja2FyZC4KCSogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX0dseXBoTG9hZGVyX0NoZWNrX1BvaW50cywKCUZUX0dseXBoTG9hZGVyX0NoZWNrX1N1YmdseXBocyk6IERpdHRvLgoKMjAwMS0wNS0xNCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCUZpeGVkIHRoZSBpbmNvcnJlY3QgYmx1ZSB6b25lIGNvbXB1dGF0aW9ucywgYW5kIGltcHJvdmVkIHRoZQoJY29tcG9zaXRlIHN1cHBvcnQuICBOb3RlIHRoYXQgdGhlc2UgY2hhbmdlcyByZXN1bHQgaW4gaW1wcm92ZWQKCXJlbmRlcmluZywgd2hpbGUgc29tZXRpbWVzIGludHJvZHVjaW5nIHRoZWlyIG93biBhcnRlZmFjdHMuICBUaGlzIGlzCglwcm9iYWJseSB0aGUgbGFzdCBiaWcgY2hhbmdlIHRvIHRoZSBhdXRvaGludGVyIGJlZm9yZSB0aGUKCWludHJvZHVjdGlvbiBvZiBhIGNvbXBsZXRlIHJlcGxhY2VtZW50LgoKCSogc3JjL2F1dG9oaW50L2FoZ2xvYmFsLmMgKHNvcnRfdmFsdWVzKTogRml4IGxvb3AuCgkqIHNyYy9hdXRvaGludC9haGdseXBoLmM6IFJlbW92ZWQgc29tZSBvYnNvbGV0ZSBjb2RlLgoJKGFoX291dGxpbmVfY29tcHV0ZV9lZGdlcyk6IE1vZGlmeSBjb2RlIHRvIHNldCB0aGUgYWhfZWRnZV9yb3VuZAoJZmxhZy4KCShhaF9vdXRsaW5lX2NvbXB1dGVfYmx1ZV9lZGdlcyk6IEFkZCBjb2RlIHRvIGNvbXB1dGUgYWN0aXZlIGJsdWUKCXpvbmVzLgoJKiBzcmMvYXV0b2hpbnQvYWhoaW50LmMgKGFoX2hpbnRlcl9nbHlwaF9sb2FkKTogQ2hhbmdlIGxvYWRfZmxhZ3MKCXZhbHVlLgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX0RpdkZpeCk6IEZpeGVkIGEgYnVnIGluIHRoZSA2NC1iaXQgY29kZSB0aGF0CgljcmVhdGVkIGluY29ycmVjdCBzY2FsZSBmYWN0b3JzIQoJKEZUX1JvdW5kX0ZpeCwgRlRfQ2VpbEZpeCwgRlRfRmxvb3JGaXgpOiBNaW5vciBpbXByb3ZlbWVudHMuCgoyMDAxLTA1LTEyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0YmJveC5oOiBGVEJCT1hfSCAtPiBfX0ZUQkJPWF9IX18uCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnR0cmlnb24uaDogX19GVF9UUklHT05PTUVUUllfSF9fIC0+CglfX0ZUVFJJR09OX0hfXy4KCUluY2x1ZGUgRlRfRlJFRVRZUEVfSC4KCUJlYXV0aWZpZWQ7IGFkZGVkIGNvcHlyaWdodC4KCSogc3JjL2Jhc2UvZnR0cmlnb24uYzogQmVhdXRpZmllZDsgYWRkZWQgY29weXJpZ2h0LgoKMjAwMS0wNS0xMSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jIChjZmZfcGFyc2VfZm9udF9tYXRyaXgpLCBzcmMvY2lkL2NpZGxvYWQuYwoJKHBhcnNlX2ZvbnRfbWF0cml4KSwgc3JjL3R5cGUxL3QxbG9hZC5jIChwYXJzZV9mb250X21hdHJpeCk6IEZpeGVkCgl0aGUgaW5jb3JyZWN0IEVNIHNpemUgY29tcHV0YXRpb24uCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0dHJpZ29uLmgsIHNyYy9iYXNlL2Z0dHJpZ29uLmM6IE5ldyBmaWxlcywKCWFkZGluZyB0cmlnb25vbWV0cmljIGZ1bmN0aW9ucyB0byB0aGUgY29yZSBBUEkgKHVzaW5nIENvcmRpYwoJYWxnb3JpdGhtcykuCgkqIHNyYy9iYXNlL2Z0YmFzZS5jLCBzcmMvYmFzZS9KYW1maWxlLCBzcmMvYmFzZS9ydWxlcy5tazogVXNlIHRoZW0uCgoJKiBidWlsZHMvbmV3bGluZTogTmV3IGZpbGUuCgkqIGJ1aWxkcy90b3BfbGV2ZWwubWssIGJ1aWxkcy9kZXRlY3QubWs6IFVzZSBpdC4gIFRoaXMgZml4ZXMKCXByb2JsZW1zIHdpdGggTWFrZSBvbiBXaW5kb3dzIDIwMDAsIGFzIHdlbGwgYXMgcHJvYmxlbXMgd2hlbiAibWFrZQoJZGlzdGNsZWFuIiBpcyBpbnZva2VkIG9uIGEgbm9uLVVuaXggcGxhdGZvcm0gd2hlbiB0aGVyZSBpcyBubwoJImNvbmZpZy5tayIgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgoKCSogYnVpbGRzL2ZyZWV0eXBlLm1rOiBGaXhlZCBhIHByb2JsZW0gd2l0aCBvYmplY3QgZGVsZXRpb25zIHVuZGVyCglEb3MvV2luZG93cy9PUy8yIHN5c3RlbXMuCgoJQWRkZWQgbmV3IGRpcmVjdG9yeSB0byBob2xkIHRvb2xzIGFuZCB0ZXN0IHByb2dyYW1zLgoKCSogZG9jcy9kb2NtYWtlci5weSwgZG9jcy9nbG5hbWVzLnB5OiBNb3ZlZCB0by4uLgoJKiBzcmMvdG9vbHMvZG9jbWFrZXIucHksIHNyYy90b29scy9nbG5hbWVzLnB5OiBUaGlzIHBsYWNlLgoJKiBzcmMvdG9vbHMvY29yZGljLnB5OiBOZXcgZmlsZSB1c2VkIHRvIGNvbXB1dGUgYXJjdGFuZ2VudCB0YWJsZQoJbmVlZGVkIGJ5IGZ0dHJpZ29uLmMuCgkqIHNyYy90b29scy90ZXN0X2Jib3guYywgc3JjL3Rvb2xzL3Rlc3RfdHJpZy5jOiBOZXcgdGVzdCBmaWxlcy4KCgkqIHNyYy90b29scy9kb2NtYWtlci5weTogSW1wcm92ZWQgdGhlIHNjcmlwdCB0byBhZGQgdGhlIGN1cnJlbnQgZGF0ZQoJYXQgdGhlIGZvb3RlciBvZiBlYWNoIHdlYiBwYWdlICh1c2VmdWwgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgoJdmVyc2lvbnMpLgoKCSogSmFtZmlsZTogRml4ZWQgaW5jb3JyZWN0IEhEUk1BQ1JPIGFyZ3VtZW50LgoKCSogVE9ETzogUmVtb3ZlZCB0aGUgY3ViaWMgYXJjIGJib3ggY29tcHV0YXRpb24gbm90ZSwgc2luY2UgaXQgaGFzIGJlZW4KCWZpeGVkIHJlY2VudGx5LgoJKiBzcmMvYmFzZS9mdGJib3guYyAodGVzdF9jdWJpY196ZXJvKTogUmVuYW1lZCB0by4uLgoJKHRlc3RfY3ViaWNfZXh0cmVtYSk6IFRoaXMgZnVuY3Rpb24uICBVc2UgYFVMJyBmb3IgdW5zaWduZWQgbG9uZwoJY29uc3RhbnRzLgoKCSogaW5jbHVkZS9mcmVldHlwZS90MXRhYmxlcy5oLCBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG9wdGlvbi5oOgoJRm9ybWF0dGluZy4KCjIwMDEtMDUtMTAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9PcGVuX0ZhY2UpOiBGaXhlZCBhIHNtYWxsIG1lbW9yeSBsZWFrCgl3aGljaCBoYXBwZW5lZCB3aGVuIHRyeWluZyB0byBvcGVuIDAtc2l6ZSBmb250IGZpbGVzIQoKMjAwMS0wNS0wOSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGNhbGMuaDogTW92ZSBkZWNsYXJhdGlvbiBvZgoJRlRfU3FydEZpeGVkKCkgb3V0IG9mIGAjaWZkZWYgRlRfTE9ORzY0Jy4KCjIwMDEtMDUtMDggIEZyYW5jZXNjbyBaYXBwYSBOYXJkZWxsaSAgPEZyYW5jZXNjby5aYXBwYS5OYXJkZWxsaUBlbnMuZnI+CgoJKiBzcmMvcGNmZHJpdmVyLmMgKFBDRl9Mb2FkX0dseXBoKTogRml4ZWQgaW5jb3JyZWN0IGJpdG1hcCB3aWR0aAoJY29tcHV0YXRpb24uCgoyMDAxLTA1LTA4ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBVcGRhdGVkIHRoZSBEb2NNYWtlciBzY3JpcHQgaW4gb3JkZXIgdG8gYWRkCgljb21tYW5kIGxpbmUgb3B0aW9ucyAoLS1vdXRwdXQsLS1wcmVmaXgsLS10aXRsZSksIGZpeCB0aGUgZXJyb25lb3VzCglsaW5lIG51bWJlcnMgcmVwb3J0ZWQgZHVyaW5nIGVycm9ycyBhbmQgd2FybmluZ3MsIGFuZCBvdGhlcgoJZm9ybWF0dGluZyBpc3N1ZXMuCgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfTXVsRGl2LCBGVF9NdWxGaXgsIEZUX0RpdkZpeCk6IFZhcmlvdXMgdGlueQoJZml4ZXMgcmVsYXRlZCB0byByb3VuZGluZyBpbiA2NC1iaXRzIHJvdXRpbmVzIGFuZAoJcHNldWRvLSJvcHRpbWl6YXRpb25zIi4KCjIwMDEtMDQtMjcgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0YmJveC5jIChCQm94X0N1YmljX0NoZWNrKTogRml4ZWQgdGhlIGNvZWZmaWNpZW50Cglub3JtYWxpemF0aW9uIGFsZ29yaXRobSAoaW52YWxpZCBmaW5hbCBiaXQgcG9zaXRpb24sIGFuZCBpbnZhbGlkCglzaGlmdCBjb21wdXRhdGlvbikuCgoyMDAxLTA0LTI2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9jb25maWcuZ3Vlc3MsIGJ1aWxkcy91bml4L2NvbmZpZy5zdWI6IFVwZGF0ZWQgdG8KCWxhdGVzdCB2ZXJzaW9ucyBmcm9tIGdudS5vcmcuCgoJKiBidWlsZHMvY29tcGlsZXIvZ2NjLWRldi5tazogQWRkIGAtV25vLWxvbmctbG9uZycgZmxhZy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRjYWxjLmg6IERlZmluZSBGVF9TcXJ0Rml4ZWQoKQoJdW5jb2RpdGlvbmFsbHkuCgkqIHNyYy9iYXNlL2Z0YmJveC5jOiBJbmNsdWRlIEZUX0lOVEVSTkFMX0NBTENfSC4KCUZpeCBjb21waWxlciB3YXJuaW5ncy4KCSogc3JjL2Jhc2UvZnRjYWxjLmM6IEZpeCAocG90ZW50aWFsKSBjb21waWxlciB3YXJuaW5ncy4KCjIwMDEtMDQtMjYgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jIChGVF9TcXJ0Rml4ZWQpOiBDb3JyZWN0ZWQvb3B0aW1pemVkIHRoZSAzMi1iaXQKCWZpeGVkLXBvaW50IHNxdWFyZSByb290IGNvbXB1dGF0aW9uLiAgSXQgaXMgbm93IHVzZWQgZXZlbiB3aXRoCgk2NC1iaXRzIGludGVnZXJzLCBhcyBpdCBpcyBfbXVjaF8gZmFzdGVyIHRoYW4gY2FsbGluZyBGVF9TcXJ0NjQgOi0pCgoJKiBzcmMvYmFzZS9mdGJib3guYzogUmVtb3ZlZCBpbnZhbGlkICIjaW5jbHVkZSBGVF9CRVpJRVJfSCIgbGluZS4KCjIwMDEtMDQtMjUgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0YmJveC5jIChCQm94X0N1YmljX0NoZWNrKTogUmV3cm90ZSBmdW5jdGlvbiB0byB1c2UKCWRpcmVjdCBjb21wdXRhdGlvbnMgd2l0aCAxNi4xNiB2YWx1ZXMgaW5zdGVhZCBvZiBzdWItZGl2aXNpb25zLiAgSXQKCWlzIG5vdyBzbG93ZXIsIGJ1dCBwcm92ZXMgYSBwb2ludCA6LSkKCgkqIHNyYy9yYXN0ZXIvZnRyYXN0ZXIuYywgc3JjL3Ntb290aC9mdGdyYXlzLmMsIHNyYy9iYXNlL2Z0YmJveC5jOgoJRml4ZWQgdGhlIGJlemllciBzdGFjayBkZXB0aHMuCgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfTXVsRml4KTogTWlub3Igcm91bmRpbmcgZml4LgoKCSogYnVpbGRzL2Jlb3M6IEFkZGVkIEJlT1Mtc3BlY2lmaWMgZmlsZXMgdG8gdGhlIG9sZCBidWlsZCBzeXN0ZW0KCShubyBjaGFuZ2VzIHdlcmUgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgQmVPUyBpbiB0aGUgSmFtZmlsZSB0aG91Z2gpLgoKMjAwMS0wNC0yMCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogZnRjb25maWcuaCwgZnRvcHRpb24uaDogVXBkYXRlZCAiZnRjb25maWcuaCIgdG8gZGV0ZWN0IDY0LWJpdCBpbnQKCXR5cGVzIG9uIHBsYXRmb3JtcyB3aGVyZSBBdXRvY29uZiBpcyBub3QgYXZhaWxhYmxlKS4gIEFsc28gcmVtb3ZlZAoJRlRDQUxDX1VTRV9MT05HX0xPTkcgYW5kIHJlcGxhY2VkIGl0IHdpdGgKCUZUX0NPTkZJR19PUFRJT05fRk9SQ0VfSU5UNjQuCgoJKiBidWlsZHMvd2luMzIvZnJlZXR5cGUuZHNwOiBVcGRhdGVkIHRoZSBWaXN1YWwgQysrIHByb2plY3QgZmlsZS4KCURvZXNuJ3QgY3JlYXRlIGEgRExMIHlldC4KCgkqIGNmZmdsb2FkLmM6IFJlbW92ZWQgYSBjb21waWxhdGlvbiB3YXJuaW5nLgoKMjAwMS0wNC0xMCAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHQxbG9hZC5jIChwYXJzZV9jaGFyc3RyaW5ncyk6IENoYW5nZWQgY29kZSBmb3IgcGxhY2luZyAubm90ZGVmCglnbHlwaCBpbnRvIHNsb3QgMCBzbyB0aGF0IHdlIG5vIGxvbmdlciBoYXZlIGEgbWVtb3J5IGFjY2VzcwoJdmlvbGF0aW9uLgoKCSogdDFsb2FkLmg6IEluIHN0cnVjdHVyZSBUMV9Mb2FkZXIsIGFkZGVkIHN3YXBfdGFibGUgKG9mIHR5cGUKCVBTX1RhYmxlKSB0byBmYWNpbGl0YXRlIHBsYWNpbmcgdGhlIC5ub3RkZWYgZ2x5cGggaW50byBzbG90IDAuCgoyMDAxLTA0LTEwICBGcmFuY2VzY28gWmFwcGEgTmFyZGVsbGkgIDxmcmFuY2VzY28uemFwcGEubmFyZGVsbGlAZW5zLmZyPgoKCSogc3JjL3BjZi9wY2Zkcml2ZXIuYyAoUENGX0dldF9DaGFyX0luZGV4KTogRml4IHJldHVybiB2YWx1ZS4KCjIwMDEtMDQtMDkgIExhdXJlbmNlIFdpdGhlcnMgIDxsd2l0aGVyc0Bsd2l0aGVycy5kZW1vbi5jby51az4KCgkqIGJ1aWxkcy9kb3MvZGV0ZWN0Lm1rOiBBZGQgc3VwcG9ydCBmb3IgYmFzaC4KCjIwMDEtMDQtMDUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9vczIvKi5tazogVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIGZvcmdvdHRlbiB0byB1cGRhdGUgdG8KCXRoZSBzdHJ1Y3R1cmUgb2Ygc2ltaWxhciBtYWtlZmlsZXMuCgkqIGJ1aWxkcy9kb3MvKi5tazogRGl0dG8uCgkqIGJ1aWxkcy9hbnNpLyoubWs6IERpdHRvLgoKCSogYnVpbGRzL3dpbjMyL3dpbjMyLWRlZi5tayAoQlVJTEQpOiBGaXggdHlwby4KCgkqIGJ1aWxkcy9jb21waWxlci8qLm1rIChDTEVBTl9MSUJSQVJZKTogRG9uJ3QgdXNlIE5PX09VVFBVVC4KCVRoaXMgaXMgYWxyZWFkeSB1c2VkIGluIHRoZSBsaW5rXyoubWsgZmlsZXMuCgoyMDAxLTA0LTAzICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvKi9KYW1maWxlOiBTbGlnaHQgY2hhbmdlcwl0byBtYWtlIGZpbGVzIG1vcmUgY3J5cHRpYy4KCjIwMDEtMDQtMDMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIEphbWZpbGUsIHNyYy9KYW1maWxlLCBzcmMvKi9KYW1maWxlOiBGb3JtYXR0ZWQuICBTbGlnaHQgY2hhbmdlcwoJdG8gZ2l2ZSBmaWxlcyBpZGVudGljYWwgc3RydWN0dXJlLgoKMjAwMS0wNC0wMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogQ0hBTkdFUzogUmVmb3JtYXR0ZWQsIG1pbm9yIGZpeGVzLgoJKiBUT0RPOiBVcGRhdGVkLgoJKiBSRUFETUU6IEZvcm1hdHRpbmcuCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogRm9ybWF0dGluZy4KCgkqIEphbWZpbGU6IEZpeCB0eXBvLgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jOiBNb3ZlIGVycm9yIGNvZGUgI2RlZmluZXMgdG8uLi4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9jZmZlcnJzLmg6IFRoaXMgZmlsZS4KCSogc3JjL2NmZi9jZmZkcml2ci5jLCBzcmMvY2ZmL2NmZm9ianMuYywgc3JjL2NmZi9jZmZsb2FkLmM6IFJlcGxhY2VkCglgRlRfRXJyXyonIHdpdGggYENGRl9FcnJfKicuCgkqIHNyYy9jaWQvY2lkcGFyc2UuYzogUmVwbGFjZWQgYEZUX0Vycl8qJyB3aXRoIGBUMV9FcnJfKicuCgkqIHNyYy9wc2F1eC9wc29ianMuYywgc3JjL3BzYXV4L3QxZGVjb2RlLmM6IERpdHRvLgoJKiBzcmMvc2ZudC9zZm9iY3MuYywgc3JjL3NmbnQvdHRsb2FkLmM6IFJlcGxhY2VkIGBGVF9FcnJfKicgd2l0aAoJYFRUX0Vycl8qJy4KCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYywgc3JjL3RydWV0eXBlL3R0b2Jqcy5jOiBEaXR0by4KCSogc3JjL3R5cGUxL3QxZ2xvYWQuYywgc3JjL3R5cGUxL3QxbG9hZC5jLCBzcmMvdHlwZTEvdDFvYmpzLmMsCglzcmMvdHlwZTEvdDFwYXJzZS5jOiBSZXBsYWNlZCBgRlRfRXJyXyonIHdpdGggYFQxX0Vycl8qJy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvY2ZmZXJycy5oOiBBZGQKCWBDRkZfRXJyX1Vua25vd25fRmlsZV9Gb3JtYXQnLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxZXJyb3JzLmg6IEFkZAoJYFQxX0Vycl9Vbmtub3duX0ZpbGVfRm9ybWF0Jy4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90dGVycm9ycy5oOiBBZGQKCWBUVF9FcnJfVW5rbm93bl9GaWxlX0Zvcm1hdCcuCgoJKiBzcmMvY2ZmL2NmZmxvYWQuaDogQWRkIGBjZmZfKl9lbmNvZGluZycgYW5kIGBjZmZfKl9jaGFyc2V0JwoJcmVmZXJlbmNlcy4KCSogc3JjL3BzYXV4L3Bzb2Jqcy5jOiBJbmNsdWRlIGBGVF9JTlRFUk5BTF9UWVBFMV9FUlJPUlNfSCcuCgoJKiBzcmMvY2ZmL2NmZm9ianMuYyAoQ0ZGX0luaXRfRmFjZSwgQ0ZGX0RvbmVfRmFjZSk6IFVzZQoJRlRfTE9DQUxfREVGLgoJKiBzcmMvY2lkL2NpZG9ianMuYyAoQ0lEX0RvbmVfRHJpdmVyKTogRGl0dG8uCgkqIHNyYy90cnV0eXBlL3R0b2Jqcy5jIChUVF9Jbml0X0ZhY2UsIFRUX0RvbmVfRmFjZSwgVFRfSW5pdF9TaXplKToKCURpdHRvLgoJKiBzcmMvdHlwZTEvdDFvYmpzLmMgKFQxX0RvbmVfRHJpdmVyKTogRGl0dG8uCgkqIHNyYy9wY2YvcGNmZHJpdmVyLmMgKFBDRl9Eb25lX0ZhY2UpOiBEaXR0by4KCSogc3JjL3BjZi9wY2YuaDogVXNlIEZUX0xPQ0FMIGZvciBgUENGX0RvbmVfRmFjZScuCgoyMDAxLTA0LTAyICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogc3JjL3NmbnQvdHRsb2FkLmMgKFRUX0xvYWRfTWV0cmljcyk6IEZpeCBhbiBpbXByb3BlciBwb2ludGVyCglkZXJlZmVyZW5jZS4gIFN1Ym1pdHRlZCBieSBIZXJiZXJ0IER1ZXJyIDxkdWVyckBzdW4uY29tPgoKMjAwMS0wMy0yNiAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0Y29uZmlnLmg6IENoYW5nZWQgaGV4YWRlY2ltYWwKCWNvbnN0YW50cyB0byB1c2Ugc3VmZml4IFUgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBIUC1VWCdzIGM4OQoJY29tcGlsZXIuICBTdWJtaXR0ZWQgYnkgRy5XLiBMdWNhcyA8Z2x1Y2FzQHNvbmFseXN0cy5jb20+CgoyMDAxLTAzLTI0ICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCSogSmFtcnVsZXMsIEphbWZpbGUsIHNyYy9KYW1maWxlLCBzcmMvKi9KYW1maWxlOiBBZGRpbmcgamFtZmlsZXMgdG8KCXRoZSBzb3VyY2UgdHJlZS4gIFNlZSB3d3cuZnJlZXR5cGUub3JnL2phbS9pbmRleC5odG1sIGZvciBkZXRhaWxzLgoKCgkqIFZlcnNpb24gMi4wLjIgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PT09CgoKMjAwMS0wMy0yMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3dpbjMyL2RldGVrdC5tazogRml4IC5QSE9OWSB0YXJnZXQgZm9yIEludGVsIGNvbXBpbGVyLgoKMjAwMS0wMy0yMCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0aGVhZGVyLmgsIGluY2x1ZGUvZnJlZXR5cGUvZnRzbmFtZXMuaDoKCVJlbmFtZWQgImZ0bmFtZXMuaCIgdG8gImZ0c25hbWVzLmgiLCBhbmQgRlRfTkFNRVNfSCB0bwoJRlRfU0ZOVF9OQU1FU19ILgoKCSogZG9jcy9kb2NtYWtlci5weTogQWRkZWQgZ2VuZXJhdGlvbiBvZiBJTkRFWCBsaW5rIGluIHRhYmxlIG9mCgljb250ZW50cy4KCgkqIElOU1RBTEwsIGRvY3MvQlVJTEQ6IFVwZGF0ZWQgZG9jdW1lbnRhdGlvbiB0byBpbmRpY2F0ZSB0aGF0IHRoZQoJY29tcGlsYXRpb24gcHJvY2VzcyBoYXMgY2hhbmdlZCBzbGlnaHRseSAobm8gbW9yZSBgc3JjJyByZXF1aXJlZCBpbgoJdGhlIGluY2x1ZGUgcGF0aCkuCgoJKiBidWlsZHMvKi8qLWRlZi5tazogQ2hhbmdlZCB0aGUgb2JqZWN0cyBkaXJlY3RvcnkgZnJvbSAib2JqIiB0bwoJIm9ianMiLgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRoZWFkZXIuaDogUmVtb3ZlZCBvYnNvbGV0ZSBtYWNyb3MgbGlrZQoJRlRfU09VUkNFX0ZJTEUsIGV0Yy4gYW5kIGFkZGVkIGNhY2hlLXNwZWNpZmljIG1hY3JvIGRlZmluaXRpb25zIHRoYXQKCXdlcmUgcHJldmlvdXNseSBkZWZpbmVkIGluIDxmcmVldHlwZS9mdGNhY2hlLmg+LiAgQWRkZWQgY29tbWVudHMgdG8KCWJlIGluY2x1ZGVkIGluIGEgbmV3IEFQSSBSZWZlcmVuY2Ugc2VjdGlvbi4KCgkqIHNyYy8qLyo6IFJlbW92ZWQgdGhlIHVzZSBvZiBGVF9TT1VSQ0VfRklMRSwgZXRjLiAgTm93LCBlYWNoCgljb21wb25lbnQgbmVlZHMgdG8gYWRkIGl0cyBvd24gZGlyZWN0b3J5IHRvIHRoZSBpbmNsdWRlIHBhdGggYXQKCWNvbXBpbGUgdGltZS4gIE1vZGlmaWVkIGFsbCAicnVsZXMubWsiIGFuZCAiZGVzY3JpcC5tbXMiCglhY2NvcmRpbmdseS4KCjIwMDEtMDMtMjAgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZS5pbjogQWRkICRmdF92ZXJzaW9uLgoJKiBidWlsZHMvdW5peC9mcmVldHlwZS1jb25maWcuaW46IFVzZSBpdC4KCSogYnVpbGRzL3VuaXgvY29uZmlndXJlOiBVcGRhdGVkLgoKMjAwMS0wMy0xOSAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy90eXBlMS90MWxvYWQuYyAocGFyc2VfZm9udF9tYXRyaXgpOiBBc3NpZ24gdGhlIHVuaXRzIHBlciBlbQoJdmFsdWUgYW4gdW5zaWduZWQgc2hvcnQgdmFsdWUsIGZpcnN0IGJ5IHNoaWZ0aW5nIHJpZ2h0IDE2IGJpdHMsCgl0aGVuIGJ5IGNhc3RpbmcgdGhlIHJlc3VsdHMgdG8gRlRfVVNob3J0LgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jIChjZmZfcGFyc2VfZm9udF9iYm94KTogQXNzaWduIHRoZSB1bml0cyBwZXIgZW0KCXZhbHVlIGFuIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBmaXJzdCBieSBzaGlmdGluZyByaWdodCAxNiBiaXRzLAoJdGhlbiBieSBjYXN0aW5nIHRoZSByZXN1bHRzIHRvIEZUX1VTaG9ydC4KCjIwMDEtMDMtMTcgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2lkL2NpZG9ianMuYywgc3JjL2NpZC9jaWRsb2FkLmMsIHNyYy9wY2YvcGNmcmVhZC5jLAoJc3JjL3R5cGUxL3QxbG9hZC5jLCBzcmMvdHlwZTEvdDFvYmpzLmM6IEFkZGVkIGEgZmV3IGNhc3RzIHRvIHJlbW92ZQoJY29tcGlsZXIgd2FybmluZ3MgaW4gcGVkYW50aWMgbW9kZXMuCgoJKiBpbmNsdWRlL2NvbmZpZy9mdDJidWlsZC5oLCBpbmNsdWRlL2NvbmZpZy9mdGhlYWRlci5oOiBUaGUgZmlsZQoJImZ0MmJ1aWxkLmgiIHdhcyByZW5hbWVkIHRvICJmdGhlYWRlci5oIiB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0aGUKCXRvcC1sZXZlbCA8ZnQyYnVpbGQuaD4uCgoJKiBpbmNsdWRlL2NvbmZpZy9mdGhlYWRlci5oOiBBZGRlZCBuZXcgc2VjdGlvbiBkZXNjcmliaW5nIHRoZSAjaW5jbHVkZQoJbWFjcm9zLgoKMjAwMS0wMy0xNyAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jZmYvY2ZmcGFyc2UuYyAoY2ZmX3BhcnNlX2ZvbnRfYmJveCk6IE9idGFpbiByb3VuZGVkIEZUX0ZpeGVkCgl2YWx1ZXMgZm9yIHRoZSBib3VuZGluZyBib3ggbnVtYmVycy4KCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jIChDRkZfSW5pdF9GYWNlKTogV2hlbiBwcm9jZXNzaW5nIGEgQ0ZGL0NFRiBmb250LAoJc2V0IGByb290LT5hc2NlbmRlcicgKGByb290LT5kZXNjZW5kZXInKSB0byB0aGUgaW50ZWdlciBwYXJ0IG9mCglgcm9vdC0+YmJveC55TWF4JyAoYHJvb3QtPmJib3gueU1pbicsIHJlc3BlY3RpdmVseSkuCgoyMDAxLTAzLTE2ICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogc3JjL2NmZi9jZmZkcml2ci5jIChnZXRfY2ZmX2dseXBoX25hbWUpOiAgTmV3IGZ1bmN0aW9uLiAgVXNlZCBpbgoJY2ZmX2dldF9pbnRlcmZhY2UgdG8gZmFjaWxpdGF0ZSBnZXR0aW5nIGEgZ2x5cGggbmFtZSBmb3IgZ2x5cGggaW5kZXgKCXZpYSBGVF9HZXRfR2x5cGhfTmFtZSgpLgoKCShjZmZfZ2V0X2ludGVyZmFjZSk6IEFkZGVkIHN1cHBvcnQgZm9yIGdldHRpbmcgYSBnbHlwaCBuYW1lIHZpYSB0aGUKCSJnbHlwaF9uYW1lIiBtb2R1bGUgaW50ZXJmYWNlLiAgVXNlcyB0aGUgbmV3IGZ1bmN0aW9uCglnZXRfY2ZmX2dseXBoX25hbWUoKS4KCVN1Ym1pdHRlZCBieSBTYW5kZXIgdmFuIGRlciBXYWwgPHN2ZHdhbEB4czRhbGwubmw+CgoJKiBzcmMvY2ZmL2NmZm9ianMuYyAoQ0ZGX0luaXRfRmFjZSk6IExvZ2ljYWwgb3IgdGhlIGZhY2UgZmxhZ3Mgd2l0aAoJRlRfRkFDRV9GTEFHX0dMWVBIX05BTUVTIG9ubHkgaWYgRlRfQ09ORklHX09QVElPTl9OT19HTFlQSF9OQU1FUyBpcwoJbm90IGRlZmluZWQuICBUaGlzIGlzIHRvIGFkZCBzdXBwb3J0IGZvciBnZXR0aW5nIGEgZ2x5cGggbmFtZSBmcm9tIGEKCWdseXBoIGluZGV4IHZpYSBGVF9HZXRfR2x5cGhfTmFtZSgpLgoJU3VibWl0dGVkIGJ5IFNhbmRlciB2YW4gZGVyIFdhbCA8c3Zkd2FsQHhzNGFsbC5ubD4KCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuYyAoQ0ZGX1BhcnNlX0NoYXJTdHJpbmdzKTogQWRkZWQgc3VwcG9ydCBmb3IKCWRlcHJlY2F0ZWQgb3BlcmF0b3IgImRvdHNlY3Rpb24iLgoJU3VibWl0dGVkIGJ5IFNhbmRlciB2YW4gZGVyIFdhbCA8c3Zkd2FsQHhzNGFsbC5ubD4KCjIwMDEtMDMtMTIgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9wc2F1eC90MWRlY29kZS5jIChUMV9EZWNvZGVyX1BhcnNlX0NoYXJzdHJpbmdzKTogRml4IGVycm9yCgltZXNzYWdlcy4KCgkqIElOU1RBTEwsIGRvY3MvQlVJTEQ6IFdlIG5lZWQgR05VIG1ha2UgMy43OC4xIG9yIG5ld2VyLgoKMjAwMS0wMy0xMiAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvcHNhdXguaDogIENoYW5nZWQgdGhlIGxlbklWIG1lbWJlciBvZgoJdGhlIFQxX0RlY29kZXJfIHN0cnVjdCB0byBiZSBhbiBGVF9JbnQgaW5zdGVhZCBvZiBhbiBGVF9VSW50LgoKCSogc3JjL3BzYXV4L3QxZGVjb2RlLmMgKFQxX0RlY29kZXJfUGFyc2VfQ2hhcnN0cmluZ3MpOiAgQWRqdXN0Cglmb3IgbGVuSVYgc2VlZCBieXRlcyBhdCB0aGUgc3RhcnQgb2YgYSBkZWNyeXB0ZWQgc3Vicm91dGluZS4KCgkqIHNyYy9jaWQvY2lkbG9hZC5jIChjaWRfcmVhZF9zdWJycyk6IERlY3J5cHQgc3Vicm91dGluZXMgb25seQoJaWYgbGVuSVYgPj0gMC4KCgkqIHNyYy9jaWQvY2lkZ2xvYWQuYyAoY2lkX2xvYWRfZ2x5cGgpOiBEZWNyeXB0IGNoYXJzdHJpbmdzIG9ubHkKCWlmIGxlbklWID49IDAuCgoyMDAxLTAzLTExICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBUT0RPOiBVcGRhdGVkLgoKCSogc3JjL3BjZi9wY2ZyZWFkLmM6IFB1dCBSRUFEX0ZpZWxkcygpIGFsd2F5cyBpbiBhIGNvbmRpdGlvbmFsIHRvCglhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDEtMDMtMTAgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBUT0RPOiBOZXcgZmlsZS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogQWRkZWQgcHJvdG90eXBlcyBhbmQgbm90ZXMgZm9yCgl0aHJlZSBuZXcgZnVuY3Rpb25zOiBGVF9Sb3VuZEZpeCwgRlRfQ2VpbEZpeCwgYW5kIEZUX0Zsb29yRml4LgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfUm91bmRGaXgsIEZUX0NlaWxGaXgsIEZUX0Zsb29yRml4KTogQWRkZWQKCWltcGxlbWVudGF0aW9uIGNvZGUuCgoJKiBzcmMvY2lkL2NpZG9ianMuYyAoQ0lEX0luaXRfRmFjZSk6IFVzZSBjYWxjdWxhdGVkIHVuaXRzX3Blcl9FTSwKCWFuZCBpZiB0aGF0IGlzIG5vdCBhdmFpbGFibGUsIGRlZmF1bHQgdG8gMTAwMCB1bml0cyBwZXIgRU0uICBDaGFuZ2VkCglhc3NpZ25tZW50IGNvZGUgZm9yIGFzY2VuZGVyIGFuZCBkZXNjZW5kZXIgdmFsdWVzLgoJKiBzcmMvY2lkL2NpZGxvYWQuYyAocGFyc2VfZm9udF9tYXRyaXgpOiBBZGRlZCB1bml0c19wZXJfRU0KCXByb2Nlc3NpbmcuCgkocGFyc2VfZm9udF9iYm94KTogQ2hhbmdlZCB0byB1c2UgRlRfRml4ZWQgbnVtYmVyIGhhbmRsaW5nLgoKCSogc3JjL3R5cGUxL3Qxb2Jqcy5jIChUMV9Jbml0X0ZhY2UpOiBDaGFuZ2VkIHRoZSBhc3NpZ25tZW50IGNvZGUKCWZvciBhc2NlbmRlciwgZGVzY2VuZGVyLCBhbmQgbWF4X2FkdmFuY2Vfd2lkdGguCgkqIHNyYy90eXBlMS90MWxvYWQuYyAocGFyc2VfZm9udF9iYm94KTogQ2hhbmdlZCB0byB1c2UgRlRfRml4ZWQKCW51bWJlciBoYW5kbGluZy4KCjIwMDEtMDMtMTAgIEhlbnJpayBHcnViYnN0cvZtICA8Z3J1YmJhQHJveGVuLmNvbT4KCgkqIHNyYy8qLyouYzogQWRkZWQgbWFueSBjYXN0cyB0byBtYWtlIGNvZGUgbW9yZSA2NGJpdC1zYWZlLgoKMjAwMS0wMy0wNyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogSU5TVEFMTCwgZG9jcy9CVUlMRDogV2UgbmVlZCBHTlUgbWFrZSAzLjc4IG9yIG5ld2VyLgoKMjAwMS0wMy0wNyAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy90eXBlMS90MW9ianMuYyAoVDFfSW5pdF9GYWNlKTogTWlub3IgY29ycmVjdGlvbjogV2UgbXVzdCB3YWl0Cgl1bnRpbCBwYXJzZV9mb250X2Jib3ggaXMgY2hhbmdlZCBiZWZvcmUgd2UgdXNlIGxvZ2ljYWwgc2hpZnQgcmlnaHRzCglpbiB0aGUgYXNzaWdubWVudHMgb2YgYHJvb3QtPmFzY2VuZGVyJywgYHJvb3QtPmRlc2NlbmRlcicsIGFuZAoJYHJvb3QtPm1heF9hZHZhbmNlX3dpZHRoJy4KCgkoVDFfRG9uZV9GYWNlKTogRnJlZSBgY2hhcl9uYW1lJyB0YWJsZSB0byBhdm9pZCBhIG1lbW9yeSBsZWFrLgoJU3VibWl0dGVkIGJ5IFNhbmRlciB2YW4gZGVyIFdhbCA8c3Zkd2FsQHhzNGFsbC5ubD4uCgoyMDAxLTAzLTA1ICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jIChDRkZfTG9hZF9HbHlwaCk6IFNldCBnbHlwaCBjb250cm9sIGRhdGEgdG8gdGhlCgl0aGUgVHlwZSAyIGdseXBoIGNoYXJzdHJpbmcgKHVzZWQgYnkgY29udmVyc2lvbiBwcm9ncmFtcykuCglTdWJtaXR0ZWQgYnkgSGEgU2hhbyA8aGFzaGFvQGNoaW5lc2UuY29tPi4KCjIwMDEtMDMtMDQgIEFudG9pbmUgTGVjYSAgPEFudG9pbmUuTGVjYUByZW5hdWx0LmZyPgoKCSogaW5jbHVkZS9mcmVldHlwZS90dG5hbWVpZC5oOiBDb3JyZWN0IGEgc3R1cGlkIHR5cG8gd2hpY2ggcHJldmVudGVkCgljb3JyZWN0IGNvbXBpbGF0aW9uIChUVF9NU19MQU5HSURfVElHUklHTkFfRVRISU9QSUEgYXBwZWFyZWQgdHdpY2UpLgoKMjAwMS0wMy0wNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2F1dG9oaW50L2FodHlwZXMuaCAoQUhfSGludGVyKTogQWRkIGVsZW1lbnRzCglgZGlzYWJsZV9ob3J6X2VkZ2VzJywgYGRpc2FibGVfdmVydF9lZGdlcycuCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYwkoYWhfaGludF9lZGdlc18zLCBhaF9oaW50ZXJfaGludF9lZGdlcyk6IFVzZQoJdGhlbSAoYW5kIHJlbW92ZSBzdGF0aWMgdmFyaWFibGVzIHdpdGggdGhlIHNhbWUgbmFtZXMpLgoJKiBzcmMvcGNmL3BjZnV0aWwuYyAoQml0T3JkZXJJbnZlcnQpOiBBZGQgYGNvbnN0Jy4KCSogZG9jcy9nbG5hbWVzLnB5OiBVcGRhdGVkIHRvIGxhdGVzdCBwc3RhYmxlcy5oIGNoYW5nZXMuCgoJKiBidWlsZHMvdW5peC9kZXRlY3QubWs6IEFkZCB0ZXN0IGZvciBIdXJkLgoJKiBidWlsZHMvaHVyZC9kZXRlY3QubWs6IFJlbW92ZWQuCgoyMDAxLTAzLTA0ICBTYW5kZXIgdmFuIGRlciBXYWwgIDxzdmR3YWxAeHM0YWxsLm5sPgoKCSogc3JjL3BzbmFtZXMvcHN0YWJsZXMuaDogQWRkIG1vcmUgYGNvbnN0Jy4KCSogc3JjL3BjZi9wY2Z1dGlsLmM6IERpdHRvLgoKMjAwMS0wMy0wNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2Jhc2UvZnRnbHlwaC5jIChGVF9HbHlwaF9Ub19CaXRtYXApOiBGaXhpbmcgdHlwbwoJKEZUX0dseXBoX0RvbmUgLT4gRlRfRG9uZV9HbHlwaCkuCgoyMDAxLTAzLTAxICBBbnRvaW5lIExlY2EgIDxBbnRvaW5lLkxlY2FAcmVuYXVsdC5mcj4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvdHRuYW1laWQuaDogQWRkZWQgc29tZSBuZXcgTWljcm9zb2Z0IGxhbmd1YWdlCgljb2RlcyBhbmQgTENJRHMgYXMgZm91bmQgaW4gT2ZmaWNlIFhwLgoKMjAwMS0wMi0yOCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy9odXJkL2RldGVjdC5tazogTmV3IGZpbGUuICBBZGRlZCBzdXBwb3J0IHRvIGRldGVjdCB0aGUgR05VCglIdXJkIG9wZXJhdGluZyBzeXN0ZW0gYXMgVW5peC1saWtlLiAgRml4IHN1Ym1pdHRlZCBieSBBbnRob255IEZvawoJPGZva2FAZGViaWFuLm9yZz4uCgoJKiBzcmMvdHlwZTEvdDFnbG9hZC5jIChUMV9Mb2FkX0dseXBoKTogU2V0IGdseXBoIGNvbnRyb2wgZGF0YSB0byB0aGUKCXRoZSBUeXBlIDEgZ2x5cGggY2hhcnN0cmluZyAodXNlZCBieSBjb252ZXJzaW9uIHByb2dyYW1zKS4KCVN1Ym1pdHRlZCBieSBIYSBTaGFvIDxoYXNoYW9AY2hpbmVzZS5jb20+LgoKMjAwMS0wMi0yMiAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0Z3JheXMuYyAoZ3JheXNfc3dlZXApOiBUaGUgZnVuY3Rpb24gZGlkbid0IGV4aXQKCWltbWVkaWF0ZWx5IGlmIGBudW1fY2VsbHMnIHdhcyAwIGFzIGl0IHNob3VsZC4gIFRoYW5rcyB0byBCb3JpcyBmb3IKCWZpbmRpbmcgdGhpcyBvdXQuCgoJKiBzcmMvYmFzZS9mdGdseXBoLmMgKEZUX0dseXBoX1RvX0JpdG1hcCk6IEZpeGVkIG1lbW9yeSBsZWFrIHdoZW4KCWJpdG1hcCByZW5kZXJpbmcgZmFpbHMgKHRoYW5rcyB0byBHcmFoYW0gQXNoZXIpLgoKMjAwMS0wMi0xMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9kb2NtYWtlci5weSAoRG9jU2VjdGlvbjo6YWRkX2VsZW1lbnQpOiBVc2UKCWBzZWxmLnByaW50X2Vycm9yKCknLgoKCSogYnVpbGRzL3VuaXgvY29uZmlnLntndWVzcyxzdWJ9OiBVcGRhdGVkIChmcm9tIGZ0cC5nbnUub3JnKS4KCjIwMDEtMDItMTMgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5LCBpbmNsdWRlL2ZyZWV0eXBlLyouaDogVXBkYXRlZCB0aGUgRG9jTWFrZXIKCXNjcmlwdCB0byBzdXBwb3J0IGNoYXB0ZXJzIGFuZCBzZWN0aW9uIGJsb2NrIG9yZGVyaW5nLiAgVXBkYXRlZCB0aGUKCXB1YmxpYyBoZWFkZXIgZmlsZXMgYWNjb3JkaW5nbHkuCgoJKiBzcmMvYmFzZS9mdGdseXBoLmMgKEZUX0dseXBoX0NvcHkpOiBBZHZhbmNlIHdpZHRoIGFuZCBnbHlwaCBmb3JtYXQKCXdlcmUgbm90IGNvcnJlY3RseSBjb3BpZWQuCgoyMDAxLTAyLTA4ICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jIChjZmZfcGFyc2VfZm9udF9tYXRyaXgpOiBSZW1vdmVkIGFuCgl1bm5lY2Vzc2FyeSBmcHJpbnRmKCBzdGRlcnIsIC4uLiApLgoKMjAwMS0wMi0wNyAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy90eXBlMS90MW9ianMuYyAoVDFfSW5pdF9GYWNlKTogQWRkZWQgY29kZSB0byBnZXQgdGhlCgl1bml0c19wZXJfRU0gZnJvbSB0aGUgdmFsdWUgYXNzaWduZWQgaW4gcGFyc2VfZm9udF9tYXRyaXgsIGlmCglhdmFpbGFibGUuICBEZWZhdWx0IHRvIDEwMDAgaWYgbm90IGF2YWlsYWJsZS4KCgkqIHNyYy9jZmYvY2ZmcGFyc2UuYyAoY2ZmX3BhcnNlX2ZvbnRfbWF0cml4KTogQWRkZWQgbG9naWMgdG8gZ2V0Cgl0aGUgdW5pdHNfcGVyX0VNIGZyb20gdGhlIEZvbnRNYXRyaXguCgoJKGNmZl9wYXJzZV9maXhlZF90aG91c2FuZCk6IE5ldyBmdW5jdGlvbi4gR2V0cyBhIHJlYWwgbnVtYmVyIGZyb20KCXRoZSBDRkYgZm9udCwgYnV0IG11bHRpcGxpZXMgYnkgMTAwMCAodGhpcyBpcyB0byBhdm9pZCByb3VuZGluZwoJZXJyb3JzIHdoZW4gcGxhY2luZyB0aGlzIHJlYWwgbnVtYmVyIGludG8gYSAxNi4xNiBmaXhlZCBudW1iZXIpLgoKCShjZmZfcGFyc2VfcmVhbCk6IEFkZGVkIGNvZGUgc28gdGhhdCB0aGUgaW50ZWdlciBwYXJ0IGlzIG1vdmVkCglpbnRvIHRoZSBoaWdoIHNpeHRlZW4gYml0cyBvZiB0aGUgMTYuMTYgZml4ZWQgbnVtYmVyLgoKCSogc3JjL2NmZi9jZmZvYmpzLmMgKENGRl9Jbml0X0ZhY2UpOiBBZGRlZCBsb2dpYyB0byBnZXQgdGhlIHVuaXRzCglwZXIgRU0gZnJvbSB0aGUgQ0ZGIGRpY3Rpb25hcnksIGlmIGF2YWlsYWJsZS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvY2ZmdHlwZXMuaDogSW4gc3RydWN0IENGRl9Gb250X0RpY3RfLAoJYWRkZWQgYSB1bml0c19wZXJfZW0gbWVtYmVyIHRvIGZhY2lsaXRhdGUgcGFzc2luZyBvZiB1bml0c19wZXJfZW0KCWZyb20gZnVuY3Rpb24gY2ZmX3BhcnNlX2ZvbnRfbWF0cml4LgoKCSogc3JjL3R5cGUxL3QxbG9hZC5jIChpc19hbHBoYSk6IE1ha2UgYC0nIGEgbGVnYWwgYWxwaGFudW1lcmljCgljaGFyYWN0ZXIuICBUaGlzIGlzIHNvIHRoYXQgZm9udCBuYW1lcyB3aXRoIGAtJyBhcmUgZnVsbHkgcGFyc2VkLAoJZXRjLi4uCgoyMDAxLTAyLTAyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvcHNhdXgvcHNvYmpzLmMgKHNoaWZ0X2VsZW1lbnRzKTogUmVtb3ZlIGlmIGNsYXVzZSAod2hpY2ggaXMKCW9ic29sZXRlIG5vdykuCgoJKHJlYWxsb2NhdGVfdDFfdGFibGUsIFBTX1RhYmxlX0RvbmUpOiBSZXBsYWNlIFJFQUxMT0MoKSB3aXRoIEFMTE9DKCkKCSsgTUVNX0NvcHkoKSB0byBhdm9pZCBhIG1lbW9yeSBidWcuCgoyMDAxLTAyLTAxICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCSogZG9jcy9kb2NtYWtlci5weTogSW1wcm92ZWQgdGhlIGluZGV4IHNvcnRpbmcgcm91dGluZSB0byBwbGFjZQoJY2FwaXRhbCBsZXR0ZXJzIGJlZm9yZSBzbWFsbCBvbmVzLiAgQWRkZWQgdGhlICI8b3JkZXI+IiBtYXJrZXIgdG8KCXNlY3Rpb24gYmxvY2tzIGluIG9yZGVyIHRvIGdpdmUgdGhlIG9yZGVyIG9mIGJsb2Nrcy4KCjIwMDEtMDEtMzAgIEFudG9pbmUgTGVjYSAgPEFudG9pbmUuTGVjYUByZW5hdWx0LmZyPgoKCSogaW5jbHVkZS9mcmVldHlwZS90dG5hbWVpZC5oOiBMYXRlc3QgdXBkYXRlcyB0byBNaWNyb3NvZnQgbGFuZ3VhZ2UKCUlEIGNvZGVzLgoKMjAwMS0wMS0yNCAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jZmYvdDFsb2FkLmMgKHBhcnNlX2ZvbnRfbWF0cml4KTogQWRkZWQgaGV1cmlzdGljIHRvIGdldAoJdW5pdHNfcGVyX0VNIGZyb20gdGhlIGZvbnQgbWF0cml4LgoKCShwYXJzZV9kaWN0KTogRGVsZXRlZCB0ZXN0IHRvIHNlZSB3aGV0aGVyIHRoZSBGb250SW5mbyBrZXl3b3JkIGhhcwoJYmVlbiBzZWVuLiAgRGVsZXRpb24gb2YgdGhpcyB0ZXN0IGFsbG93cyBmb250cyB3aXRob3V0IEZvbnRJbmZvCglkaWN0aW9uYXJpZXMgdG8gYmUgcGFyc2VkIGJ5IHRoZSBUeXBlIDEgZHJpdmVyLgoKCShUMV9PcGVuX0ZhY2UpOiBEZWxldGVkIGVtcHR5IHN1YnJvdXRpbmVzIGFycmF5IHRlc3QgdG8gbWFrZSBzdXJlCglmb250cyB3aXRoIG5vIHN1YnJvdXRpbmVzIHN0aWxsIGFyZSBwYXJzZWQuCgoyMDAxLTAxLTE3ICBGcmFuY2VzY28gWmFwcGEgTmFyZGVsbGkgIDxmcmFuY2VzY28uemFwcGEubmFyZGVsbGlAZW5zLmZyPgoKCSogc3JjL3BjZnJlYWQuYyAocGNmX2dldF9wcm9wZXJ0aWVzLCBwY2ZfZ2V0X21ldHJpY3MsCglwY2ZfZ2V0X2JpdG1hcHMpOiBGaXggY29tcGlsZXIgZXJyb3JzLgoKMjAwMS0wMS0xMSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9wY2YvcGNmcmVhZC5jOiBSZW1vdmVkIHNvbWUgY29tcGlsYXRpb24gd2FybmluZ3MgcmVsYXRlZAoJdG8gY29tcGFyaXNvbiBvZiBzaWduZWQgdnMuIHVuc2lnbmVkIGludGVnZXJzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRlYnVnLmg6IENoYW5nZWQgdGhlIGRlYnVnIHRyYWNlCgljb25zdGFudHMgZnJvbSB0cmFjZV90Mnh4eHggdG8gdHJhY2VfY2ZmeHh4eCB0byBiZSBhYmxlIHRvIGNvbXBpbGUKCXRoZSBDRkYgZHJpdmVyIGluIGRlYnVnIG1vZGUuCgoyMDAxLTAxLTExICBNYXR0aGV3IENyb3NieSAgPG1jcm9zYnlAbWFydGhvbi5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZS1jb25maWcuaW46IEZpeCBwcm9ibGVtcyB3aXRoIHNlcGFyYXRlCgktLXByZWZpeCBhbmQgLS1leGVjLXByZWZpeC4KCjIwMDEtMDEtMTEgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBBZGRlZCBjcm9zcy1yZWZlcmVuY2VzIGdlbmVyYXRpb24gYXMgd2VsbCBhcwoJbW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgcGF0aG5hbWUgd2lsZGNhcmQgbWF0Y2hpbmcuCgoyMDAxLTAxLTEwICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBNaW5vciBpbXByb3ZlbWVudHMgdG8gcmVkdWNlIHVud2FudGVkIHNwYWNlcwoJYW5kIGVtcHR5IGxpbmVzIGluIG91dHB1dC4KCjIwMDEtMDEtMDkgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBJbXByb3ZlZCBzY3JpcHQgdG8gZ2VuZXJhdGUgdGFibGUgb2YgY29udGVudHMKCWFuZCBpbmRleCBwYWdlcy4gIEl0IGFsc28gc3VwcG9ydHMgd2lsZGNhcmRzIG9uIG5vbiBVbml4IHN5c3RlbXMuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlLyouaCwgaW5jbHVkZS9mcmVldHlwZS9jYWNoZS8qLmg6IFVwZGF0ZWQgY29tbWVudHMKCXRvIGluY2x1ZGUgc2VjdGlvbiBkZWZpbml0aW9ucy9kZWxpbWl0YXRpb25zIGZvciB0aGUgQVBJIFJlZmVyZW5jZQoJZ2VuZXJhdG9yLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oOiBNb3ZlZCBkZWNsYXJhdGlvbiBvZgoJYEZUX0dlbmVyaWNfRmluYWxpemVyJyBhbmQgdGhlIGBGVF9HZW5lcmljJyBzdHJ1Y3R1cmUgdG8uLi4KCSogaW5jbHVkZS9mcmVldHlwZS9mdHR5cGVzLmg6IGhlcmUuCgoyMDAxLTAxLTA0ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL3R0bmFtZWlkLmg6IFVwZGF0ZWQgVW5pY29kZSBjb2RlIHJhbmdlIGNvbW1lbnRzLgoKMjAwMS0wMS0wMyAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jZmYvcnVsZXMubWs6IFVzZSBjZmZnbG9hZC57YyxofSBpbnN0ZWFkIG9mIHQyZ2xvYWQue2MsaH0uCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2ludGVybmFsLmg6IENoYW5nZWQgdG8gdXNlIGNmZnR5cGVzLmgKCShjZmZlcnJzLmgpIGluc3RlYWQgb2YgdDJ0eXBlcy5oICh0MmVycm9ycy5oLCByZXNwZWN0aXZlbHkpLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9jZmZ0eXBlcy5oOiBNZXJnZWQgaW4gY2hhbmdlcyBmcm9tCgl0MnR5cGVzLmggYW5kIG1hZGUgdGhpcyB0aGUgY2Fub25pY2FsIGB0eXBlcycgaGVhZGVyIGZvciB0aGUgQ0ZGCglkcml2ZXIuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QydHlwZXMuaDogVGhpcyBmaWxlIHdhcyBtZXJnZWQgd2l0aAoJY2ZmdHlwZXMuaCBhbmQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDJlcnJvcnMuaDoJUmVuYW1lZCB0byBjZmZlcnJzLmguCgoJKiBzcmMvY2ZmL2NmZm9ianMuYywgc3JjL2NmZi9jZmZvYmpzLmgsIHNyYy9jZmYvY2ZmcGFyc2UuYywKCXNyYy9jZmYvY2ZmZHJpdnIuYywgc3JjL2NmZi9jZmYuYywgc3JjL2NmZi9jZmZsb2FkLmMsCglzcmMvY2ZmL2NmZmdsb2FkLmMsIHNyYy9jZmYvY2ZmZ2xvYWQuaDogQ2hhbmdlZCB0byB1c2UKCWNmZmdsb2FkLntjLGh9IGluc3RlYWQgb2YgdDJnbG9hZC57YyxofS4gIEFsbCBvY2N1cmVuY2VzIG9mIHQyXwoJKFQyXykgd2VyZSByZXBsYWNlZCB3aXRoIGNmZl8gKENGRl8sIHJlc3BlY3RpdmVseSkuCgoJKiBzcmMvY2ZmL3QyZ2xvYWQuaDogUmVuYW1lZCBjZmZnbG9hZC5oLgoKCSogc3JjL2NmZi90Mmdsb2FkLmM6IFJlbmFtZWQgY2ZmZ2xvYWQuYwoKMjAwMC0wMS0wMiAgSm91ayBKYW5zZW4gIDxqb3VrakBocmVtLnN0bS50dWRlbGZ0Lm5sPgoKCSogYnVpbGRzL3ZtczogU3VwcG9ydCBmaWxlcyBmb3IgVk1TIGFyY2hpdGVjdHVyZSBhZGRlZC4KCSogZGVzY3JpcC5tbXMsIHNyYy8qL2Rlc2NyaXAubW1zOiBWTVMgbWFrZWZpbGVzIGFkZGVkLgoJKiBSRUFETUUuVk1TOiBOZXcgZmlsZS4KCjIwMDAtMDEtMDEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIExJQ0VOU0UuVFhUOiBBZGRlZCBpbmZvIGFib3V0IFBDRiBkcml2ZXIgbGljZW5zZS4KCjIwMDEtMDEtMDEgIEZyYW5jZXNjbyBaYXBwYSBOYXJkZWxsaSAgPGZyYW5jZXNjby56YXBwYS5uYXJkZWxsaUBlbnMuZnI+CgoJKiBzcmMvcGNmLyo6IE5ldyBkcml2ZXIgbW9kdWxlIGZvciBQQ0YgZm9udCBmb3JtYXQgKHVzZWQgaW4KCVggV2luZG93IFN5c3RlbSkuCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRkZWJ1Zy5oIChGVF9UcmFjZSk6IEFkZGVkIHZhbHVlcyBmb3IKCVBDRiBkcml2ZXIuCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvcGNmdHlwZXMuaDogTmV3IGZpbGUuCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0bW9kdWxlLmg6IEFkZGVkIFBDRiBkcml2ZXIgbW9kdWxlLgoKMjAwMS0wMS0wMSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3dpbmZvbnRzL3dpbmZudC5jIChGTlRfR2V0X0NoYXJfSW5kZXgpOiBGaXggcGFyYW1ldGVyIHR5cGUuCgoyMDAwLTEyLTMxICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvbW9kdWxlcy5tayAoY2xlYW5fbW9kdWxlX2xpc3QpOiBGaXhlZCBkZWxldGlvbiBvZiBtb2R1bGUKCWZpbGUgaW4gY2FzZSBgbWFrZSBtYWtlX21vZHVsZV9saXN0JyBpcyBjYWxsZWQgYmVmb3JlIGBtYWtlIHNldHVwJy4KCjIwMDAtMTItMzAgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9jZmYvY2ZmbG9hZC5jIChDRkZfTG9hZF9DaGFyc2V0KTogSW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMuCgkoQ0ZGX0xvYWRfQ2hhcnNldCwgQ0ZGX0xvYWRfRW5jb2RpbmcpOiBSZW1vdmUgdW5uZWNlc3NhcnkgdmFyaWFibGUKCWRlZmluaXRpb24uCgoyMDAwLTEyLTMwICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90MnR5cGVzLmgsCglpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2NmZnR5cGVzLmg6IENoYW5nZWQgdGhlIHN0cnVjdHVyZXMgZm9yCglDRkZfRW5jb2RpbmcgYW5kIENGRl9FbmNvZGluZyBmb3IgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlCgljaGFyc2V0IGFuZCBlbmNvZGluZyBwYXJzZXJzIGluIHRoZSBDRkYgZHJpdmVyLgoKCSogc3JjL2NmZi90Mmdsb2FkLmMgKHQyX2xvb2t1cF9nbHlwaF9ieV9zdGRjaGFyY29kZSwKCXQyX29wZXJhdG9yX3NlYWMpOiBBZGRlZCB0aGVzZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiBpbXBsZW1lbnRpbmcgdGhlCglzZWFjIGVtdWxhdGlvbiBwcm92aWRlZCBieSB0aGUgVHlwZSAyIGVuZGNoYXIgb3BlcmF0b3IuCgkoVDJfUGFyc2VfQ2hhclN0cmluZ3MpOiBBZGRlZCBzZWFjIGVtdWxhdGlvbiBmb3IgdGhlIGVuZGNoYXIKCW9wZXJhdG9yLgoKCSogc3JjL2NmZi9jZmZsb2FkLmMgKENGRl9Mb2FkX0VuY29kaW5nLCBDRkZfTG9hZF9DaGFyc2V0LAoJQ0ZGX0RvbmVfRW5jb2RpbmcsIENGRl9Eb25lX0NoYXJzZXQpOiBFeHRlbmRlZCB0byBsb2FkIGFuZCBwYXJzZSB0aGUKCWNoYXJzZXQvZW5jb2RpbmcgdGFibGVzLCBhbmQgZnJlZSB0aGUgbWVtb3J5IHVzZWQgYnkgdGhlbSB3aGVuIHRoZQoJQ0ZGIGRyaXZlciBpcyBmaW5pc2hlZCB3aXRoIHRoZW0uICBBZGRlZCB0YWJsZXMKCgkgICAgY2ZmX2lzb2Fkb2JlX2NoYXJzZXQKCSAgICBjZmZfZXhwZXJ0X2NoYXJzZXQKCSAgICBjZmZfZXhwZXJ0c3Vic2V0X2NoYXJzZXQKCSAgICBjZmZfc3RhbmRhcmRfZW5jb2RpbmcKCSAgICBjZmZfZXhwZXJ0X2VuY29kaW5nCgoJc28gdGhhdCB0aGUgZW5jb2RpbmcvY2hhcnNldCBwYXJzZXIgY2FuIGhhbmRsZSBwcmVkZWZpbmVkIGVuY29kaW5ncyBhbmQKCWNoYXJzZXRzLgoKMjAwMC0xMi0yNCAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jZmYvdDJnbG9hZC5jIChUMl9Mb2FkX0dseXBoKTogQWRkZWQgY29kZQlzbyB0aGF0IHRoZSBmb250Cgl0cmFuc2Zvcm0gaXMgYXBwbGllZC4KCgkqIHNyYy9jZmYvY2ZmcGFyc2UuYyAoY2ZmX3BhcnNlX2ZvbnRfbWF0cml4KTogQWRkZWQgY29kZSBzbyB0aGF0Cgl0aGUgZm9udCBtYXRyaXggbnVtYmVycwlhcmUgc2NhbGVkIGJ5IDEvKG1hdHJpeC0+eXkpLiAgQWxzbywgdGhlCglvZmZzZXQgdmVjdG9yIG5vdyBjb250YWlucyBpbnRlZ2VyIHZhbHVlcyBpbnN0ZWFkIG9mIDE2LjE2IGZpeGVkCgludW1iZXJzLgoKMjAwMC0xMi0yMiAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYyAoYWhfaGludGVyX2xvYWRfZ2x5cGgpOgoJUmVtb3ZlZCB1bm5lY2Vzc2FyeSBjb21tZW50cyBhbmQgY29tbWVudGVkLW91dCBjb2RlLgoKMjAwMC0xMi0yMSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jaWQvY2lkYWZtLmMsIHNyYy9jaWQvY2lkYWZtLmg6IHJlbW92ZWQgdW4tbmVlZGVkIGZpbGVzLAoJd2UnbGwgd29yayBvbiBzdXBwb3J0aW5nIENJRCBBRk0gZmlsZXMgbGF0ZXIgSSBndWVzcyA6LSkKCjIwMDAtMTItMjEgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvYXV0b2hpbnQvYWhoaW50LmMgKGFoX2hpbnRlcl9sb2FkLCBhaF9oaW50ZXJfbG9hZF9nbHlwaCk6CglDaGFuZ2VkIHNvIHRoYXQgZm9udHMgd2l0aCBhIG5vbi1zdGFuZGFyZCBGb250TWF0cml4IHJlbmRlcgoJY29ycmVjdGx5LiAgUHJldmlvdXNseSwgdGhlIGZpcnN0IGdseXBoIHJlbmRlcmVkIGZyb20gc3VjaCBhCglmb250IGRpZCBub3QgaGF2ZSB0aGUgdHJhbmZvcm1hdGlvbiBtYXRyaXggYXBwbGllZC4KCjIwMDAtMTItMTcgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqICoubWs6IEFkZGVkIGxvdHMgb2YgYC5QSE9OWScgdGFyZ2V0cy4KCjIwMDAtMTItMTcgIEthcnN0ZW4gRmxlaXNjaGVyICA8a2ZsZWlzYzFAZm9yZC5jb20+CgoJKiAqLm1rOiBJbXBsZW1lbnRlZCBgcGxhdGZvcm0nIHRhcmdldCB0byBkaXNhYmxlIGF1dG8tZGV0ZWN0aW9uLgoKMjAwMC0xMi0xNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9kZXNpZ24vbW9kdWxlcy5odG1sOiBSZW1vdmVkLiAgQ292ZXJlZCBieSBkZXNpZ24tKi5odG1sLgoKCSogSU5TVEFMTDogQWRkZWQgaW5mbyBhYm91dCBtYWtlcHAuCgoyMDAwLTEyLTE0ICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCUFkZGVkIHN1cHBvcnQgZm9yIGNsaXBwZWQgZGlyZWN0IHJlbmRlcmluZyBpbiB0aGUgc21vb3RoIHJlbmRlcmVyLgoJVGhpcyBzaG91bGQgbm90IGJyZWFrIGJpbmFyeSBjb21wYXRpYmlsaXR5IG9mIGV4aXN0aW5nIGFwcGxpY2F0aW9ucy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnR0eXBlcy5oLCBpbmNsdWRlL2ZyZWV0eXBlL2Z0aW1hZ2UuaDogTW92ZQoJZGVmaW5pdGlvbiBvZiB0aGUgRlRfQkJveCBzdHJ1Y3R1cmUgZnJvbSB0aGUgZm9ybWVyIHRvIHRoZSBsYXR0ZXIuCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRpbWFnZS5oOiBBZGQgYGZ0X3Jhc3Rlcl9mbGFnX2NsaXAnIHZhbHVlIHRvCglGVF9SYXN0ZXJfRmxhZyBlbnVtZXJhdGlvbi4KCUFkZCBgY2xpcF9ib3gnIGVsZW1lbnQgdG8gRlRfUmFzdGVyX1BhcmFtcyBzdHJ1Y3R1cmUuCgkqIHNyYy9zbW9vdGgvZnRncmF5cy5jIChncmF5c19jb252ZXJ0X2dseXBoKTogSW1wbGVtZW50IGl0LgoKCSogSU5TVEFMTDogVXBkYXRlZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIG9uIFdpbjMyLCBsaXN0aW5nIHRoZQoJbmV3ICJtYWtlIHNldHVwIGxpc3QiIHRhcmdldCB1c2VkIHRvIGxpc3Qgc3VwcG9ydGVkCgljb21waWxlcnMvdGFyZ2V0cy4KCgkqIHNyYy9yYXN0ZXIvZnRyYXN0ZXIuYyAoZnRfYmxhY2tfcmVuZGVyKTogVGVzdCBmb3IgdW5zdXBwb3J0ZWQKCWRpcmVjdCByZW5kZXJpbmcgYmVmb3JlIHRlc3RpbmcgYXJndW1lbnRzLgoKMjAwMC0xMi0xMyAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0MmJ1aWxkLmgsCglpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2ludGVybmFsLmg6IEZpeGVkIGhlYWRlciBpbmNsdXNpb24gbWFjcm9zCgl0byB1c2UgZGlyZWN0IGRlZmluaXRpb25zLiAgVGhpcyBpcyB0aGUgb25seSB3YXkgdG8gZG8gdGhlc2UgdGhpbmdzCglpbiBhIHBvcnRhYmxlIHdheSA6LSggIFRoZSByZXN0IG9mIHRoZSBjb2RlIHNob3VsZCBmb2xsb3cgc2hvcnRseQoJdGhvdWdoIGV2ZXJ5dGhpbmcgY29tcGlsZXMgbm93LgoKCSogYnVpbGRzL2NvbXBpbGVyL2ludGVsYy5taywgYnVpbGRzL2NvbXBpbGVyL3dhdGNvbS5tazogTmV3IGZpbGVzLgoKCSogYnVpbGRzL3dpbjMyL2RldGVjdC5tazogQWRkZWQgc3VwcG9ydCBmb3IgdGhlIEludGVsIEMvQysrCgljb21waWxlciwgYXMgd2VsbCBhcyBfcHJlbGltaW5hcnlfIChyZWFkOiBkb2Vzbid0IHdvcmshKSBzdXBwb3J0IGZvcgoJV2F0Y29tLiAgQWxzbyBhZGRlZCBhIG5ldyBzZXR1cCB0YXJnZXQuICBUeXBlICJtYWtlIHNldHVwIGxpc3QiIGZvcgoJYSBsaXN0IG9mIHN1cHBvcnRlZCBjb21tYW5kLWxpbmUgY29tcGlsZXJzIG9uIFdpbjMyLgoKCSogc3JjL2Jhc2UvZnRkZWJ1Zy5jOiBBZGRlZCBkdW1teSBzeW1ib2wgdG8gYXZvaWQgZW1wdHkgZmlsZSBpZgoJY29uZGl0aW9uYWxzIGFyZSBvZmYuCgoyMDAwLTEyLTEzICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9mdHN5c3RlbS5jOiBGaXhlZCB0eXBvcy4gIEZpeGVkIGluY2x1c2lvbiBvZiB3cm9uZwoJZnRjb25maWcuaCBmaWxlLgoKMjAwMC0xMi0xMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnQyYnVpbGQuaCAoRlQyX1JPT1QsIEZUMl9DT05GSUdfUk9PVCk6CglSZW1vdmVkLiAgQU5TSSBDIGRvZXNuJ3QgKGV4cGxpY2l0bHkpIGFsbG93IG1hY3JvIGV4cGFuc2lvbiBpbgoJYXJndW1lbnRzIHVzaW5nIGAjIycuCgkoRlQyX1BVQkxJQ19GSUxFLCBGVDJfQ09ORklHX0ZJTEUsIEZUMl9JTlRFUk5BTF9GSUxFKTogVXNlIGRpcmVjdG9yeQoJbmFtZXMgZGlyZWN0bHkuICBNYWtlIHRoZW0gY29uZmlndXJhYmxlLiAgVXNlIGAjIycgdG8gc3RyaXAgbGVhZGluZwoJYW5kIHRyYWlsaW5nIHNwYWNlcyBmcm9tIGFyZ3VtZW50cy4KCgkqIGJ1aWxkcy91bml4L2Z0MnVuaXguaDogQWRhcHRlZC4KCgkqIHNyYy9iYXNlL2Z0c3lzdGVtLmMgKGZ0X2FsbG9jLCBmdF9yZWFsbG9jLCBmdF9mcmVlLCBmdF9pb19zdHJlYW0sCglmdF9jbG9zZV9zdHJlYW0pOiBVc2UgRlRfQ0FMTEJBQ0tfREVGLgoKCSogYnVpbGRzL3VuaXgvZnRzeXN0ZW0uYzogVXNlIG5ldyBoZWFkZXIgc2NoZW1lLgoJKEZUX0RvbmVfTWVtb3J5KTogVXNlIGZyZWUoKSBmcm9tIEZUX01lbW9yeSBzdHJ1Y3R1cmUuCgoJKiBzcmMvYmFzZS9mdGluaXQuYywgc3JjL2Jhc2UvZnRtYWMuYzogSGVhZGVyIHNjaGVtZSBmaXhlcy4KCjIwMDAtMTItMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0MmJ1aWxkLmggKEZUMl9DT05GSUdfUk9PVCwKCUZUMl9QVUJMSUNfRklMRSwgRlQyX0NPTkZJR19GSUxFLCBGVDJfSU5URVJOQUxfRklMRSwKCUZUX1NPVVJDRV9GSUxFKTogVXNlIGAjIycgb3BlcmF0b3IgdG8gYmUgcmVhbGx5IEFOU0kgQyBjb21wbGlhbnQuCgoyMDAwLTEyLTA5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9kZXRlY3QubWs6IFJlbW92ZSB1bnVzZWQgVVNFX0NGTEFHUyB2YXJpYWJsZS4KCjIwMDAtMTItMDggIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqICovKi5oOiBDaGFuZ2VkIGJvZHkgaW5jbHVzaW9uIG1hY3JvIG5hbWVzIHRvIHN0YXJ0IGFuZCBlbmQgd2l0aAoJYF9fJyAodGhvc2Ugd2hpY2ggaGF2ZW4ndCBjb252ZXJ0ZWQgeWV0KS4gIEZpeGVkIG1pbm9yIGNvbnZlcnNpb24KCWlzc3Vlcy4KCgkqIHNyYy93aW5mb250cy93aW5mbnQuYzogVXBkYXRlZCB0byBuZXcgaGVhZGVyIGluY2x1c2lvbiBzY2hlbWUuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYzogUmVtb3ZlIHVudXNlZCBDQUxDX0xlbmd0aCgpIG1hY3JvLgoKMjAwMC0xMi0wNyAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqICovKi5bY2hdOiBDaGFuZ2VkIHNvdXJjZSBmaWxlcyB0byBhZGhlcmUgdG8gdGhlIG5ldwoJaGVhZGVyIGluY2x1c2lvbiBzY2hlbWUuICBOb3QgY29tcGxldGVseSB0ZXN0ZWQgYnV0IHdvcmtzIGZvciBub3cKCWhlcmUuCgoJKiBzcmMvY2ZmL3QyZHJpdmVyLmM6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZkcml2ci5jOiBOZXcgZmlsZS4KCSogc3JjL2NmZi90MmRyaXZlci5oOiBSZW5hbWVkIGFuZCB1cGRhdGVkIHRvLi4uCgkqIHNyYy9jZmYvY2ZmZHJpdnIuaDogTmV3IGZpbGUuCgkqIHNyYy9jZmYvdDJsb2FkLmM6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZsb2FkLmM6IE5ldyBmaWxlLgoJKiBzcmMvY2ZmL3QybG9hZC5oOiBSZW5hbWVkIGFuZCB1cGRhdGVkIHRvLi4uCgkqIHNyYy9jZmYvY2ZmbG9hZC5oOiBOZXcgZmlsZS4KCSogc3JjL2NmZi90Mm9ianMuYzogUmVuYW1lZCBhbmQgdXBkYXRlZCB0by4uLgoJKiBzcmMvY2ZmL2NmZm9ianMuYzogTmV3IGZpbGUuCgkqIHNyYy9jZmYvdDJvYmpzLmg6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZvYmpzLmg6IE5ldyBmaWxlLgoJKiBzcmMvY2ZmL3QycGFyc2UuYzogUmVuYW1lZCBhbmQgdXBkYXRlZCB0by4uLgoJKiBzcmMvY2ZmL2NmZnBhcnNlLmM6IE5ldyBmaWxlLgoJKiBzcmMvY2ZmL3QycGFyc2UuaDogUmVuYW1lZCBhbmQgdXBkYXRlZCB0by4uLgoJKiBzcmMvY2ZmL2NmZnBhcnNlLmg6IE5ldyBmaWxlLgoJKiBzcmMvY2ZmL3QydG9rZW5zLmg6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZ0b2tlbi5oOiBOZXcgZmlsZS4KCgkqIHNyYy9jZmYvY2ZmLmMsIHNyYy9jZmYvcnVsZXMubWs6IFVwZGF0ZWQuCgoyMDAwLTEyLTA2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCSogc3JjL2NhY2hlL2Z0bHJ1LmMgKEZUX0xydV9Eb25lKTogRml4ZWQgbWVtb3J5IGxlYWsuCgoyMDAwLTEyLTA2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvbW9kdWxlLm1rOiBSZXBsYWNlZCBgeHh4ICMnIHdpdGggYHh4eCQoc3BhY2UpLgoJKiBidWlsZHMvb3MyL2RldGVrdC5taywgYnVpbGRzL3dpbjMyL2RldGVrdC5tazogTW92ZWQgY29tbWVudCB0bwoJYXZvaWQgdHJhaWxpbmcgc3BhY2VzIGluIHZhcmlhYmxlLgoJKiBidWlsZHMvZnJlZXR5cGUubWs6IFVzZSAkKEQpIGluc3RlYWQgb2YgJEQgdG8gbWFrZSBzdGF0ZW1lbnQgbW9yZQoJcmVhZGFibGUuCgoJKiBkb2NzL2RvY21ha2VyLnB5OiBGb3JtYXR0aW5nLgoKMjAwMC0xMi0wNSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9wc2F1eC9wc2F1eG1vZC5jOiBGaXhlZCBhIGJyb2tlbiBpbmNsdXNpb24gb2YgY29tcG9uZW50CgloZWFkZXIgZmlsZXMgKGFuIEZUX0ZMQVRfQ09NUElMRSB0ZXN0IHdhcyBtaXNzaW5nKS4KCgkqIHNyYy9jYWNoZS9mdGNtYW5hZy5jIChGVENfTWFuYWdlcl9Eb25lKTogRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQKCWFuIG9jY2FzaW9uYWwgY3Jhc2ggd2hlbiB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCAoZHVlIHRvIGEgZGFuZ2xpbmcKCXBvaW50ZXIpLgoKCSogc3JjL2Jhc2UvZnRzeXN0ZW0uYyAoRlRfRG9uZV9NZW1vcnkpOiBGaXhlZCBhbiBvYnZpb3VzIGJ1ZzoKCVRoZSBBTlNJICJmcmVlKCkiIGZ1bmN0aW9uIHdhcyBjYWxsZWQgaW5zdGVhZCBvZiAibWVtb3J5LT5mcmVlKCkiLgoKCSogZG9jcy9kb2NtYWtlci5weTogQWRkZWQgc2VjdGlvbiBmaWx0ZXJpbmcsIG11bHRpLXBhZ2UgZ2VuZXJhdGlvbgoJKGluZGV4IHBhZ2UgZ2VuZXJhdGlvbiBpcyBzdGlsbCBtaXNzaW5nIHRob3VnaCkuCgoyMDAwLTEyLTA0ICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCSogYnVpbGRzL3VuaXgvaW5zdGFsbC5taywgYnVpbGRzL3VuaXgvZnQydW5peC5oOiBUaGUgZmlsZSAiZnQydW5peC5oIgoJaXMgbm93IGluc3RhbGxlZCBhcyA8ZnQyYnVpbGQuaD4gZm9yIFVuaXggc3lzdGVtcy4gIE5vdGUgdGhhdCB3ZQoJc3RpbGwgdXNlIHRoZSAiZnJlZXR5cGUyL2ZyZWV0eXBlIiBpbnN0YWxsYXRpb24gcGF0aCBmb3Igbm93LgoKCSogKi8qLltjaF06IE5vdyB1c2luZyA8ZnQyYnVpbGQuaD4gYXMgdGhlIGRlZmF1bHQgYnVpbGQgYW5kIHNldHVwCgljb25maWd1cmF0aW9uIGZpbGUgaW4gYWxsIHB1YmxpYyBoZWFkZXJzLiAgSW50ZXJuYWwgc291cmNlIGZpbGVzCglzdGlsbCBuZWVkIHNvbWUgY2hhbmdlcyB0aG91Z2guCgoJKiBidWlsZHMvZGV2ZWwvZnQyYnVpbGQuaCwgYnVpbGRzL2RldmVsL2Z0b3B0aW9uLmg6IENyZWF0ZWQgYSBuZXcKCWRpcmVjdG9yeSB0byBob2xkIGFsbCBkZXZlbG9wbWVudCBvcHRpb25zIGZvciBib3RoIHRoZSBVbml4IGFuZAoJV2luMzIgZGV2ZWxvcGVyIGJ1aWxkcy4KCgkqIGJ1aWxkcy93aW4zMi9kZXRlY3QubWssIGJ1aWxkcy93aW4zMi93MzItYmNjZC5taywKCWJ1aWxkcy93aW4zMi93MzItZGV2Lm1rOiBDaGFuZ2VkIHRoZSBkZXZlbG9wZXIgYnVpbGQgdGFyZ2V0cyB0bwoJImRldmVsLWdjYyIgYW5kICJkZXZlbC1iY2MiIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZGV2ZWxvcCB3aXRoIHRoZQoJQm9ybGFuZCBDKysgY29tcGlsZXIuCgoyMDAwLTEyLTAxICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCgkqIFZlcnNpb24gMi4wLjEgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PT09CgoKCSogYnVpbGRzL3VuaXgvY29uZmlndXJlLmluLCBidWlsZHMvdW5peC9jb25maWd1cmUsCglidWlsZHMvY3lnd2luL2NvbmZpZ3VyZS5pbiwgYnVpbGRzL2N5Z3dpbi9jb25maWd1cmU6IFNldHRpbmcKCSJ2ZXJzaW9uX2luZm8iIHRvIDY6MTowIGZvciB0aGUgMi4wLjEgcmVsZWFzZS4KCgkqIENIQU5HRVM6IEFkZGVkIGEgc3VtbWFyeSBvZiBjaGFuZ2VzIGJldHdlZW4gMi4wLjEgYW5kIDIuMC4KCgkqIGJ1aWxkcy91bml4L2Z0Y29uZmlnLmluLCBidWlsZHMvY3lnd2luL2Z0Y29uZmlnLmluOiBDaGFuZ2VzCgl0byBhbGxvdyBjb21waWxhdGlvbiB1bmRlciBVbml4IHdpdGggdGhlIFVuaXgtc3BlY2lmaWMgY29uZmlnCglmaWxlcy4KCjIwMDAtMTItMDEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIElOU1RBTEw6IFJldmlzZWQuCgkqIGJ1aWxkcy9jb21waWxlci9iY2MtZGV2Lm1rLCBidWlsZHMvY29tcGlsZXIvdmlzdWFsYWdlLm1rLAoJYnVpbGRzL2NvbXBpbGVyL2JjYy5taywgYnVpbGRzL3dpbjMyL3czMi1iY2MubWssCglidWlsZHMvd2luMzIvdzMyLWJjY2QubWs6IFJldmlzZWQuCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0YnVpbGQuaCwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvaW50ZXJuYWwuaDogUmV2aXNlZC4KCSogaW5jbHVkZS9mcmVldHlwZS9mdGltYWdlLmg6IFVwZGF0ZWQgdG8gbmV3IGhlYWRlciBpbmNsdXNpb24gc2NoZW1lLgoKMjAwMC0xMS0zMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3RvcGxldmVsLm1rICguUEhPTlkpOiBBZGRpbmcgYGRpc3RjbGVhbicuCgkqIGJ1aWxkcy91bml4L2RldGVjdC5tayAoLlBIT05ZKTogQWRkaW5nIGBkZXZlbCcsIGB1bml4JywgYGxjYycsCglgc2V0dXAnLgoKMjAwMC0xMS0zMCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9ncj4KCgkqIElOU1RBTEw6IFNsaWdodGx5IHVwZGF0ZWQgdGhlIHF1aWNrIHN0YXJ0ZXIgZG9jdW1lbnRhdGlvbiB0bwoJaW5jbHVkZSBJREUgY29tcGlsYXRpb24sIHByZXZlbnQgYWdhaW5zdCBCU0QgTWFrZSwgYW5kIHNwZWNpZnkgIm1ha2UKCXNldHVwIiBpbnN0ZWFkIG9mIGEgc2luZ2xlICJtYWtlIiBmb3IgYnVpbGQgY29uZmlndXJhdGlvbi4KCgkqIGluY2x1ZGUvY29uZmlnL2Z0YnVpbGQuaCwgaW5jbHVkZS9pbnRlcm5hbC9pbnRlcm5hbC5oOiBBZGRlZCBuZXcKCWNvbmZpZ3VyYXRpb24gZmlsZXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGxvY2F0aW9uIG9mIGFsbCBwdWJsaWMsCgljb25maWd1cmF0aW9uLCBhbmQgaW50ZXJuYWwgaGVhZGVyIGZpbGVzIGZvciBGcmVlVHlwZSAyLiAgTW9kaWZpZWQKCWFsbCBoZWFkZXJzIHVuZGVyICJpbmNsdWRlL2ZyZWV0eXBlIiB0byByZWZsZWN0IHRoaXMgY2hhbmdlLiAgTm90ZQoJdGhhdCB3ZSBzdGlsbCBuZWVkIHRvIGNoYW5nZSB0aGUgbGlicmFyeSBzb3VyY2UgZmlsZXMgdGhlbXNlbHZlcwoJdGhvdWdoLgoKCSogYnVpbGRzL2NvbXBpbGVyL2JjYy5taywgYnVpbGRzL2NvbXBpbGVyL2JjYy1kZXYubWssCglidWlsZHMvd2luMzIvdzMyLWJjYy5taywgYnVpbGRzL3dpbjMyL3czMi1iY2NkLm1rLAoJYnVpbGRzL3dpbjMyL2RldGVjdC5tazogQWRkZWQgbmV3IGZpbGVzIHRvIHN1cHBvcnQgY29tcGlsYXRpb24gd2l0aAoJdGhlIGZyZWUgQm9ybGFuZCBDKysgY29tbWFuZC1saW5lIGNvbXBpbGVyLiAgTW9kaWZpZWQgdGhlIGRldGVjdGlvbgoJcnVsZXMgdG8gcmVjb2duaXplIHRoZSBuZXcgImJjYzMyIiB0YXJnZXQgaW4gIm1ha2Ugc2V0dXAgYmNjMzIiLgoKCSogc3JjL3NmbnQvdHRjbWFwLmMsIHNyYy9zZm50L3R0cG9zdC5jLCBzcmMvc2ZudC90dHNiaXQuYywKCXNyYy90cnVldHlwZS90dG9ianMuYywgc3JjL3RydWV0eXBlL3R0Z2xvYWQuYywKCXNyYy90cnVldHlwZS90dGludGVycC5jOiBGaXhlZCBhIGZldyBjb21wYXJpc29ucyB0aGF0IEJvcmxhbmQgQysrCglkaWRuJ3QgcmVhbGx5IGxpa2UuICBCYXNpY2FsbHksIHRoaXMgY29tcGlsZXIgY29tcGxhaW5zIHdoZW4gRlRfVUludAoJaXMgY29tcGFyZWQgdG8gRlRfVVNob3J0IChhcHBhcmVudGx5LCBpdCBwcm9tb3RlcyBgVVNob3J0JyB0byBgSW50JwoJaW4gdGhlc2UgY2FzZXMpLgoKMjAwMC0xMS0zMCAgVG9tIEthY3ZpbnNreSAgPHRrYWN2aW5zQGZyZWV0eXBlLm9yZz4KCgkqIHQyb2Jqcy5jIChUMl9Jbml0X0ZhY2UpOiBBZGRlZCBjYWxjdWxhdGlvbiBvZiBgZmFjZS0+aGVpZ2h0JyBmb3IKCXB1cmUgQ0ZGIGZvbnRzLgoKCSogdDFvYmpzLmMgKFQxX0luaXRfRmFjZSk6IEZpeGVkIGNvbXB1dGF0aW9uIG9mIGBmYWNlLT5oZWlnaHQnLgoKMjAwMC0xMS0yOSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0YmJveC5jIChCQm94X0NvbmljX0NoZWNrKTogRml4ZWQgYSByZWFsbHkgc3R1cGlkCglidWcgaW4gdGhlIGZvcm11bGEgdXNlZCB0byBjb21wdXRlIHRoZSBjb25pYyBC6XppZXIgZXh0cmVtYQoJb2Ygbm9uLW1vbm90b25vdXMgYXJjcy4KCjIwMDAtMTEtMjkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jIChGVF9TcXJ0Rml4ZWQpLCBzcmMvYmFzZS9mdG9ianMuYwoJKEZUX1NldF9SZW5kZXJlcik6IFVzZSBGVF9FWFBPUlRfREVGLgoJKiBzcmMvY2FjaGUvZnRjaW1hZ2UuYyAoRlRDX0ltYWdlX0NhY2hlX0xvb2t1cCksCglzcmMvY2FjaGUvZnRjbWFuYWcuYyAoRlRDX01hbmFnZXJfRG9uZSwgRlRDX01hbmFnZXJfUmVzZXQsCglGVENfTWFuYWdlcl9Mb29rdXBfRmFjZSwgRlRDX01hbmFnZXJfTG9va3VwX1NpemUsCglGVENfTWFuYWdlcl9SZWdpc3Rlcl9DYWNoZSksIHNyYy9jYWNoZS9mdGNzYml0cy5jCgkoRlRDX1NCaXRfQ2FjaGVfTG9va3VwKTogRGl0dG8uCgoJKiBzcmMvaW5jbHVkZS9mcmVldHlwZS9jYWNoZS9mdGNnbHlwaC5oIChGVENfR2x5cGhOb2RlX0luaXQpLAoJc3JjL2luY2x1ZGUvZnJlZXR5cGUvZnRtYWMuaCAoRlRfTmV3X0ZhY2VfRnJvbV9GT05EKTogVXNlIEZUX0VYUE9SVC4KCjIwMDAtMTEtMjkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9zZm50L3NmZHJpdmVyLmM6IEluY2x1ZGUgdHRzYml0LmggYW5kIHR0cG9zdC5oIG9ubHkKCWNvbmRpdGlvbmFsbHkuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRkcml2ZXIuYyAoU2V0X0NoYXJfU2l6ZXMsIFNldF9QaXhlbF9TaXplcyk6IFNldAoJYHNpemUtPnN0cmlrZV9pbmRleCcgb25seSBjb25kaXRpb25hbGx5LgoKCSogc3JjL3R5cGUxL3QxZHJpdmVyLmMsIHNyYy90eXBlMS90MW9ianMuYzogSW5jbHVkZSB0MWFmbS5oIG9ubHkKCWNvbmRpdGlvbmFsbHkuCgoJKiBzcmMvd2luZm9udHMvd2luZm50Lmg6IE1vdmUgYWxsIHR5cGUgZGVmaW5pdGlvbnMgdG8uLi4KCSogc3JjL2luY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZm50dHlwZXMuaDogTmV3IGZpbGUuCgkqIHNyYy93aW5mb250cy93aW5mbnQuYzogVXNlIGl0LgoKMjAwMC0xMS0yOSAgPz8/ID8/PyAgPGRhcmluQGVhemVsLmNvbT4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRkZWJ1Zy5oOiBSZXBsYWNlZCBGVF9DQVQgYW5kIEZUX1hDQVQKCXdpdGggYSBkaXJlY3Qgc29sdXRpb24gKHdoaWNoIGFsc28gc2F0aWZpZXMgcGlja3kgY29tcGlsZXJzKS4KCjIwMDAtMTEtMjggIFlBTUFOTy1VQ0hJIEhpZGV0b3NoaSAgPG1lckBkaW4ub3IuanA+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgKFRUX0luaXRfU2l6ZSk6IEZpeCAjaWZkZWYncyB0byB3b3JrIHdpdGgKCWRpc2FibGVkIGludGVycHJldGVyIGFsc28uCgoJKiBzcmMvYmFzZS9mdG5hbWVzLmMgKEZUX0dldF9TZm50X05hbWVfQ291bnQpOiBGaXggaW5jb3JyZWN0CglwYXJlbnRoZXNlcy4KCjIwMDAtMTEtMjYgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2ZmL3QyZ2xvYWQuYyAoVDJfUGFyc2VfQ2hhclN0cmluZ3MpOiBBZGRlZCBsb2dpYyB0byBnbHlwaAoJd2lkdGggc2V0dGluZyBjb2RlIHRvIHRha2UgaW50byBhY2NvdW50IGV2ZW4vb2RkIGFyZ3VtZW50IGNvdW50cwoJYW5kIGdseXBoIHdpZHRoIG9wZXJhbmQgYmVmb3JlIGVuZGNoYXIvaG1vdmV0by92bW92ZXRvLgoKMjAwMC0xMS0yNiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL2Fuc2kvYW5zaS5tazogRml4IGluY2x1c2lvbiBvcmRlciBvZiBmaWxlcy4KCjIwMDAtMTEtMjYgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIHNyYy90eXBlMS90MW9ianMuYyAoVDFfSW5pdF9GYWNlKTogQ29tcHV0ZSBzdHlsZSBmbGFncy4KCjIwMDAtMTEtMjYgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9jb21waWxlci9hbnNpLWNjLm1rIChDTEVBTl9MSUJSQVJZKTogRml4IHJ1bGUgYW5kCgljb25kaXRpb25hbC4KCjIwMDAtMTEtMjMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy90eXBlMS90MWxvYWQuYyAocGFyc2Vfc3VicnMsIHBhcnNlX2NoYXJzdHJpbmdzKTogVXNlIGRlY3J5cHQKCWZ1bmN0aW9uIGZyb20gUFNBdXggbW9kdWxlLgoKCSogc3JjL3R5cGUxL3QxcGFyc2UuYyAoVDFfRG9uZV9QYXJzZSk6IFJlbmFtZWQgdG8uLi4KCShUMV9GaW5hbGl6ZV9QYXJzZXIpOiBOZXcgZnVuY3Rpb24gKHRvIGF2b2lkIG5hbWUgY2xhc2ggd2l0aCBhCglmdW5jdGlvbiBpbiB0aGUgUFNBdXggbW9kdWxlKS4KCShUMV9EZWNyeXB0KTogUmVtb3ZlZCBzaW5jZSBpdCBpcyBkdXBsaWNhdGVkIGluIHRoZSBQU0F1eCBtb2R1bGUuCgkoVDFfR2V0X1ByaXZhdGVfRGljdCk6IEFkZGVkIGBwc2F1eCcgYXMgbmV3IHBhcmFtZXRlcjsgdXNlIGRlY3J5cHQKCWZ1bmN0aW9uIGZyb20gUFNBdXggbW9kdWxlLgoKCSogc3JjL3R5cGUxL3QxcGFyc2UuaDogQWRhcHRlZC4KCjIwMDAtMTEtMjIgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2ZmL3Qyb2Jqcy5jIChUMl9Jbml0X0ZhY2UpOiBGb3IgcHVyZSBDRkYgZm9udHMsIHNldAoJYHJvb3QtPm51bV9mYWNlcycgdG8gYGNmZi0+bnVtX2ZhY2VzJyBhbmQgc2V0IGB1bml0c19wZXJfRU0nCgl0byAxMDAwLgoKCSogc3JjL2NmZi90MnBhcnNlLmMgKHBhcnNlX3QyX3JlYWwpOiBGaXhlZCByZWFsIG51bWJlciBwYXJzaW5nCglsb29wLgoKCSogc3JjL2NmZi90MmxvYWQuYyAoVDJfR2V0X1N0cmluZyk6IENhbGxlZCBUMl9HZXRfTmFtZSB3aXRoIGEKCXNpZCB0aGF0IHdhcyBvZmYgYnkgb25lLgoKMjAwMC0xMS0xNiAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2F1dG9oaW50L2FodHlwZXMuaCAoQUhfSGludGVyKTogQWRkZWQgbmV3IGZpZWxkcyB0byBjb250cm9sCglhdXRvLWhpbnRpbmcgb2Ygc3ludGhldGljIFR5cGUgMSBmb250cy4KCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYyAoYWhfaGludGVyX2xvYWQsIGFoX2hpbnRlcl9sb2FkX2dseXBoKToKCUFkZGVkIGF1dG8taGludGluZyBzdXBwb3J0IG9mIHN5bnRoZXRpYyBUeXBlIDEgZm9udHMuCgoyMDAwLTExLTEyICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogc3JjL3NmbnQvdHRsb2FkLmMgKFRUX0xvb2tVcF9UYWJsZSwgVFRfTG9hZF9HZW5lcmljX1RhYmxlKTogQ2hhbmdlCgl0cmFjaW5nIG91dHB1dC4KCgkqIHNyYy9zZm50L3Nmb2Jqcy5jIChTRk5UX0xvYWRfRmFjZSk6IFNldCBib29sZWFuIHZhcmlhYmxlCglgaGFzLW91dGxpbmUnIHRvIHRydWUgb25seSBpZiB0aGUgZm9udCBoYXMgYSBgZ2x5Zicgb3IgYENGRiAnIHRhYmxlLgoKMjAwMC0xMS0xMSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3dpbjMyL3Zpc3VhbGMvZnJlZXR5cGUuZHNwOiBGaXggcmFzdGVyMS0+cmFzdGVyIGFuZAoJdHlwZTF6LT50eXBlMS4KCjIwMDAtMTEtMTEgIFRvbSBLYWN2aW5za3kgIDx0a2Fjdmluc0BmcmVldHlwZS5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZS1jb25maWcuaW4sIGJ1aWxkcy9jeWd3aW4vZnJlZXR5cGUtY29uZmlnLmluOgoJQWRkZWQgYSAtLWxpYnRvb2wgb3B0aW9uLiAgV2hlbiBmcmVldHlwZS1jb25maWcgLS1saWJ0b29sIGlzCglpbnZva2VkLCB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5CglpcyByZXR1cm5lZC4KCjIwMDAtMTEtMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9jeWd3aW4vY3lnd2luLWRlZi5pbjogU2FtZSBmaXggYXMgcHJldmlvdXMuCgoyMDAwLTExLTEwICBUb20gS2Fjdmluc2t5ICA8dGthY3ZpbnNAZnJlZXR5cGUub3JnPgoKCSogYnVpbGRzL3VuaXgvdW5peC1kZWYuaW46IEFkZAoKCSAgICBJTlNUQUxMX1BST0dSQU0gOj0gQElOU1RBTExfUFJPR1JBTUAKCSAgICBJTlNUQUxMX1NDUklQVCAgOj0gQElOU1RBTExfU0NSSVBUQAoKCXNvIHRoYXQgaW5zdGFsbGF0aW9uIG9mIGZyZWV0eXBlLWNvbmZpZyBkb2VzIG5vdCBmYWlsLgoKMjAwMC0xMS0xMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL2N5Z3dpbi9mcmVldHlwZS1jb25maWcuaW4sIGJ1aWxkcy91bml4L2ZyZWV0eXBlLWNvbmZpZy5pbjoKCU1vdmUgdGVzdCBkb3duIGZvciBlbXB0eSAtLWV4ZWMtcHJlZml4LgoJRml4IC0tdmVyc2lvbi4KCgkqIGJ1aWxkcy9jeWd3aW4vaW5zdGFsbC5taywgYnVpbGRzL3VuaXgvaW5zdGFsbC5tazogVXNlCgkkKElOU1RBTExfU0NSSVBUKSBmb3IgaW5zdGFsbGF0aW9uIG9mIGZyZWV0eXBlLWNvbmZpZy4KCgkqIGJ1aWxkcy9jeWd3aW4vaW5zdGFsbC5tazogRml4IGNsZWFuIHRhcmdldCBuYW1lcy4KCjIwMDAtMTEtMDkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgoJKiBWZXJzaW9uIDIuMCByZWxlYXNlZC4KCT09PT09PT09PT09PT09PT09PT09PT09CgoKTG9jYWwgVmFyaWFibGVzOgp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCmNvZGluZzogbGF0aW4tMQpFbmQ6Cg==