MjAwNS0wNi0xMyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGZvcnRyYW4uaW5zdGFsbC1tYW4pOiBEb2Vzbid0IGRlcGVuZCBvbiBpbnN0YWxsZGlycy4KCShydWxlIGZvciBpbnN0YWxsaW5nIGY5NS4xIG1hbnBhZ2UpOiBEb2VzIGRlcGVuZCBvbiBpbnN0YWxsZGlycy4KCjIwMDUtMDctMDcgIFJlbGVhc2UgTWFuYWdlcgoKCSogR0NDIDQuMC4xIHJlbGVhc2VkLgoKMjAwNS0wNi0xOSAgRnJhbmNvaXMtWGF2aWVyIENvdWRlcnQgIDxjb3VkZXJ0QGNsaXBwZXIuZW5zLmZyPgoKCSogZ2ZvcnRyYW4uaDogQWRkIGZsYWdfYmFja3NsYXNoIGNvbXBpbGUtdGltZSBvcHRpb24uCgkqIGxhbmcub3B0OiBBZGQgc3VwcG9ydCBmb3IgLWZiYWNrc2xhc2ggb3B0aW9uLgoJKiBvcHRpb25zLmM6IExpa2V3aXNlLgoJKiBwcmltYXJ5LmM6IEltcGxlbWVudCBiZWhhdmlvciBmb3IgLWZuby1iYWNrc2xhc2guCgkqIGludm9rZS50ZXhpOiBBZGQgZG9jIGZvciAtZmJhY2tzbGFzaCBvcHRpb24uCgkqIGdmb3J0cmFuLnRleGk6IFJlbW92ZSBtZW50aW9uIG9mIC1mbm8tYmFja3NsYXNoIGFzIGEKCXBvc3NpYmxlIGV4dGVuc2lvbi4KCjIwMDUtMDYtMjAgRXJpayBFZGVsbWFubiA8ZXJpay5lZGVsbWFubkBpa2kuZmk+CgoJKiBpbnRyaW5zaWMuYyAoY2hlY2tfaW50cmluc2ljX3N0YW5kYXJkKTogRml4IHNwZWxsaW5nIGVycm9yCglpbiBhIHdhcm5pbmcgbWVzc2FnZS4KCjIwMDUtMDYtMTggIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCgkqIG1hdGNoLmMgKG1hdGNoX2FyaXRobWV0aWNfaWYpOiBBcml0aG1ldGljIElGIGlzIG9ic29sZXRlIGluCglGb3J0cmFuIDk1LgoKMjAwNS0wNi0xMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgZm9ydHJhbi8yMjAzOAoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19mb3JhbGxfbG9vcCk6IE9ubHkgaW5jcmVtZW50IG1hc2tpbmRleAoJaW4gdGhlIGlubmVybW9zdCBsb29wLgoKMjAwNS0wNi0wNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJQmFja3BvcnQgZnJvbSB0aGUgbWFpbmxpbmU6CgkyMDA1LTA0LTE3IFBhdWwgVGhvbWFzIDxwYXVsdEBnY2MuZ251Lm9yZz4KCglQUiBmb3J0cmFuLzE3NDcyCglQUiBmb3J0cmFuLzE4MjA5CglQUiBmb3J0cmFuLzE4Mzk2CglQUiBmb3J0cmFuLzE5NDY3CglQUiBmb3J0cmFuLzE5NjU3CgkqIGZvcnRyYW4vdHJhbnMtaW8uYyAoZ2ZjX2J1aWxkX2lvX2xpYnJhcnlfZm5kZWNscyk6IENyZWF0ZQoJZGVjbGFyYXRpb24gZm9yCXN0X3NldF9ubWxfdmFyIGFuZCBzdF9zZXRfbm1sX3Zhcl9kaW0uIFJlbW92ZQoJZGVjbGFyYXRpb25zIG9mIG9sZCBuYW1lbGlzdCBmdW5jdGlvbnMuCgkoYnVpbGRfZHQpOiBTaW1wbGlmaWVkIGNhbGwgdG8gdHJhbnNmZXJfbmFtZWxpc3RfZWxlbWVudC4KCShubWxfZ2V0X2FkZHJfZXhwcik6IEdlbmVyYXRlcyBhZGRyZXNzIGV4cHJlc3Npb24gZm9yIHN0YXJ0IG9mIAoJb2JqZWN0IGRhdGEuIE5ldyBmdW5jdGlvbi4KCShubWxfZnVsbF9uYW1lKTogUXVhbGlmaWVkIG5hbWUgZm9yIGRlcml2ZWQgdHlwZSBjb21wb25lbnRzLiBOZXcgCglmdW5jdGlvbi4KCSh0cmFuc2Zlcl9uYW1lbGlzdF9lbGVtZW50KTogTW9kaWZpZWQgZm9yIGNhbGxzIHRvIG5ldyBmdW5jdGlvbnMgCglhbmQgaW1wcm92ZWQgZGVyaXZlZCB0eXBlIGhhbmRsaW5nLgoKMjAwNS0wNi0wNSAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzIxOTEyCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSk6IFNsaWdodGx5IHJlb3JkZXIuCglHZW5lcmF0ZSBjb3JyZWN0IGV4aXQgY29uZGl0aW9uIGluIGNhc2Ugb2YgbmVnYXRpdmUgc3RlcHMgaW4KCWltcGxpZWQtZG8gbG9vcHMuCgoJKiBpbnZva2UudGV4aTogRml4IGRlc2NyaXB0aW9uIG9mIGZsYWdzIHJlcXVpcmVkIGZvciBjb21wYXRpYmlsaXR5Cgl3aXRoIGc3Ny4KCjIwMDUtMDYtMDUgIFBhdWwgVGhvbWFzICA8cGF1bHRAZ2NjLmdudS5vcmc+CgoJUFIgZm9ydHJhbi8xODEwOQoJUFIgZm9ydHJhbi8xODI4MwoJUFIgZm9ydHJhbi8xOTEwNwoJUFIgZm9ydHJhbi8xNjkzOQoJUFIgZm9ydHJhbi8xNzE5MgoJUFIgZm9ydHJhbi8xNzE5MwoJUFIgZm9ydHJhbi8xNzIwMgoJUFIgZm9ydHJhbi8xODY4OQoJUFIgZm9ydHJhbi8xODg5MAoJKiBmb3J0cmFuL3RyYW5zLWFycmF5LmMgKGdmY19jb252X2V4cHJfZGVzY3JpcHRvcik6IE9idGFpbiB0aGUKCXN0cmluZyBsZW5ndGggZnJvbSB0aGUgZXhwcmVzc2lvbiB0eXBlc3BlYyBjaGFyYWN0ZXIgbGVuZ3RoIHZhbHVlCglhbmQgc2V0IHRlbXBfc3MtPnN0cmluZ2xlbmd0aCBhbmQgYmFja2VuZF9kZWNsLiBPYnRhaW4gdGhlCgl0cmVlIGV4cHJlc3Npb24gZnJvbSBnZmNfY29udl9leHByIHJhdGhlciB0aGFuIGdmY19jb252X2V4cHJfdmFsLgoJRGVyZWZlcmVuY2UgdGhlIGV4cHJlc3Npb24gdG8gb2J0YWluIHRoZSBjaGFyYWN0ZXIuCgkqIGZvcnRyYW4vdHJhbnMtYXJyYXkuYyAoZ2ZjX2NvbnZfcmVzb2x2ZV9kZXBlbmRlbmNpZXMpOiBBZGQgc3RyaW5nCglsZW5ndGggdG8gdGVtcF9zcyBmb3IgY2hhcmFjdGVyIHBvaW50ZXIgYXJyYXkgYXNzaWdubWVudHMuCgkqIGZvcnRyYW4vdHJhbnMtZXhwci5jIChnZmNfY29udl9jb21wb25lbnRfcmVmKTogUmVtb3ZlIHRoZQoJZGVyZWZlcmVuY2Ugb2Ygc2NhbGFyIGNoYXJhY3RlciBwb2ludGVyIHN0cnVjdHVyZSBjb21wb25lbnRzLgoJKiBmb3J0cmFuL3RyYW5zLWV4cHIuYyAoZ2ZjX3RyYW5zX3N1YmFycmF5X2Fzc2lnbik6IE9idGFpbiB0aGUKCXN0cmluZyBsZW5ndGggZm9yIHRoZSBzdHJ1Y3R1cmUgY29tcG9uZW50IGZyb20gdGhlIGNvbXBvbmVudAoJZXhwcmVzc2lvbi4KCSogZm9ydHJhbi90cmFucy1leHByLmMgKGdmY19jb252X3ZhcmlhYmxlKTogQ29ycmVjdCBlcnJvcnMgaW4KCWRlcmVmZXJlbmNpbmcgb2YgY2hhcmFjdGVycyBhbmQgY2hhcmFjdGVyIHBvaW50ZXJzLgoJKiBmb3J0cmFuL3RyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IFByb3ZpZGUgc3RyaW5nCglsZW5ndGggYXMgcmV0dXJuIGFyZ3VtZW50IGZvciB2YXJpb3VzIGtpbmRzIG9mIGhhbmRsaW5nIG9mIHJldHVybi4KCVJldHVybiBhIGNoYXJbXSogdGVtcG9yYXJ5IGZvciBjaGFyYWN0ZXIgcG9pbnRlciBmdW5jdGlvbnMgYW5kCglkZXJlZmVyZW5jZSB0aGUgdGVtcG9yYXJ5IHVwb24gcmV0dXJuLgoKMjAwNS0wNi0wNCAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KICAgICAgICBFcmlrIFNjaG5ldHRlciAgPHNjaG5ldHRlckBhZWkubXBnLmRlPgoKCVBSIGZvcnRyYW4vMTkxOTUKCSogdHJhbnMuYyAoZ2ZjX2dldF9iYWNrZW5kX2xvY3VzKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGFkanVzdG1lbnQsCglyZW1vdmUgRklYTUUgY29tbWVudC4KCjIwMDUtMDYtMDQgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgZm9ydHJhbi8xNjg5OAoJKiB0cmFucy10eXBlcy5jIChnZmNfYXJyYXlfcmFuZ2VfdHlwZSk6IE5ldyB2YXJpYWJsZS4KCShnZmNfaW5pdF90eXBlcyk6IEluaXRpYWxpemUgZ2ZjX2FycmF5X3JhbmdlX3R5cGUuCgkoZ2ZjX2dldF9hcnJheV90eXBlX2JvdW5kcyk6IFVzZSBnZmNfYXJyYXlfcmFuZ2VfdHlwZS4KCjIwMDUtMDYtMDQgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglFcmlrIEVkZWxtYW5uICA8ZXJpay5lZGVsbWFubkBpa2kuZmk+CgoJKiBhcnJheS5jIChnZmNfbWF0Y2hfYXJyYXlfY29uc3RydWN0b3IpOiBEaXNhbGxvdyBlbXB0eSBhcnJheQoJY29uc3RydWN0b3IuCgoyMDA1LTA2LTA0ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogbWF0Y2guYyAobWF0Y2hfZm9yYWxsX2l0ZXJhdG9yKTogRG9uJ3QgaW1tZWRpYXRlbHkgZ2l2ZSBlcnJvciBpZiAnPScKCWlzIG5vdCBmb2xsb3dlZCBieSBhbiBleHByZXNzaW9uLgoKMjAwNS0wNi0wMSAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuLmggKGdmY19vcHRpb24pOiBBZGQgZmxhZ19mMmMuCgkqIGludm9rZS50ZXhpOiBEb2N1bWVudCAnLWZmMmMnIGNvbW1hbmQgbGluZSBvcHRpb24uICBBZGFwdAoJZG9jdW1lbnRhdGlvbiBmb3IgJy1mbm8tc2Vjb25kLXVuZGVyc2NvcmUnIGFuZCAnLWZuby11bmRlcnNjb3JpbmcnLgoJKiBsYW5nLm9wdCAoZmYyYyk6IE5ldyBlbnRyeS4KCSogb3B0aW9ucy5jIChnZmMtaW5pdF9vcHRpb25zKTogU2V0IGRlZmF1bHQgY2FsbGluZyBjb252ZW50aW9uCgl0byAtZm5vLWYyYyBhbmQgLWZuby1zZWNvbmQtdW5kZXJzY29yZS4KCShoYW5kbGVfb3B0aW9ucyk6IFNldCBnZmNfb3B0aW9uLmZsYWdfZjJjIGFjY29yZGluZyB0byByZXF1ZXN0ZWQKCWNhbGxpbmcJY29udmVudGlvbi4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X2V4dGVybl9mdW5jdGlvbl9kZWNsKTogVXNlIHNwZWNpYWwgZjJjCglpbnRyaW5zaWNzIHdoZXJlIG5lY2Vzc2FyeS4KCShnZmNfdHJhbnNfZGVmZXJyZWRfdmFycyk6IENoYW5nZSB0b2RvIGVycm9yIHRvCWFzc2VydGlvbi4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl92YXJpYWJsZSk6IERlcmVmZXJlbmNlIGFjY2VzcwoJdG8gaGlkZGVuIHJlc3VsdCBhcmd1bWVudC4KCShnZmNfY29udl9mdW5jdGlvbl9jYWxsKTogQWRkIGhpZGRlbiByZXN1bHQgYXJndW1lbnQgdG8gYXJndW1lbnQKCWxpc3QgaWYgZjJjIGNhbGxpbmcgY29udmVudGlvbnMgcmVxdWVzdGVkLiAgU2xpZ2h0bHkgcmVzdHJ1Y3R1cmUKCXRlc3RzLiAgQ29udmVydCByZXN1bHQgb2YgZGVmYXVsdCBSRUFMIGZ1bmN0aW9uIHRvIHJlcXVlc3RlZCB0eXBlCglpZiBmMmMgY2FsbGluZyBjb252ZW50aW9ucyBhcmUgdXNlZC4gIERlcmVmZXJlbmNlIENPTVBMRVggcmVzdWx0CglpZiBmMmMgY2MgYXJlIHVzZWQuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19zeW1fdHlwZSk6ICBSZXR1cm4gZG91YmxlIGZvciBkZWZhdWx0IFJFQUwKCWZ1bmN0aW9uIGlmIGYyYyBjYyBhcmUgdXNlZC4KCShnZmNfcmV0dXJuX2J5X3JlZmVyZW5jZSk6IFNsaWdodGx5IHJlc3RydWN0dXJlIGxvZ2ljLiAgUmV0dXJuCglDT01QTEVYIGJ5IHJlZmVyZW5jZSBkZXBlbmRpbmcgb24gY2FsbGluZyBjb252ZW50aW9ucy4KCShnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUpOiBDb3JyZWN0bHkgbWFrZSBoaWRkZW4gcmVzdWx0IGFyZ3VtZW50IGEKCXBhc3MtYnktcmVmZXJlbmNlIGFyZ3VtZW50IGZvciBDT01QTEVYLiAgUmVtb3ZlIG9sZCBjb2RlIHdoaWNoIGRvZXMKCXRoaXMgZm9yIGRlcml2ZWQgdHlwZXMuCgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQ29weSAncG9pbnRlcicgYW5kICdkaW1lbnNpb24nCglhdHRyaWJ1dGUgZnJvbSByZXN1bHQgc3ltYm9sIHRvIGZ1bmN0aW9uIHN5bWJvbC4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9mdW5jdGlvbl9jYWxsKTogQ2hlY2sgc3ltIGZvciBhdHRyaWJ1dGUKCSdkaW1lbnNpb24nIGluc3RlYWQgb2Ygc3ltLT5yZXN1bHQuCgoyMDA1LTA2LTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBmb3J0cmFuLzIxNzI5CgkqIHJlc29sdmUuYyAocmVzb2x2ZV9jb250YWluZWRfZm50eXBlKTogVXNlIHN5bS0+YXR0ci51bnR5cGVkCgl0byBhdm9pZCBnaXZpbmcgZXJyb3IgbXVsdGlwbGUgdGltZXMuCgkocmVzb2x2ZV9lbnRyaWVzKTogRG9uJ3QgZXJyb3IgYWJvdXQgQlRfVU5LTk9XTiBoZXJlLgoJKHJlc29sdmVfdW5rbm93bl9mKTogQ2FwaXRhbGl6ZSBJTVBMSUNJVCBmb3IgY29uc2lzdGVuY3kuCgkocmVzb2x2ZV9mbnR5cGUpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3Jlc29sdmUpOiBDYWxsIHJlc29sdmVfZm50eXBlLgoKMjAwNS0wNi0wMSAgRmVuZyBXYW5nICA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CgoJUFIgZm9ydHJhbi8yMDg4MwoJKiBmb3J0cmFuL2lvLmMgKHJlc29sdmVfdGFnKTogRml4IGVycm9yIG1lc3NhZ2UuCgoyMDA1LTA1LTI5ICBKYW5uZSBCbG9tcXZpc3QgIDxqYmxvbXF2aUB2aXB1bmVuLmh1dC5maT4KICAgICAgICAgICAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgogIAoJUFIgZm9ydHJhbi8yMDg0NgoJKiBpby5jIChnZmNfbWF0Y2hfaW5xdWlyZSk6IEltcGxlbWVudCBjb25zdHJhaW50cyBvbiBVTklUIGFuZCBGSUxFIHVzYWdlLgoKMjAwNS0wNS0yOSAgRnJhbmNvaXMtWGF2aWVyIENvdWRlcnQgIDxjb3VkZXJ0QGNsaXBwZXIuZW5zLmZyPgoKCVBSIGxpYmZvcnRyYW4vMjAwMDYKCSogaW8uYyAoZm9ybWF0X2l0ZW1fMSk6IEFkZCBjaGVjayBhbmQgZXh0ZW5zaW9uIHdhcm5pbmcgZm9yCgkkIGVkaXQgZGVzY3JpcHRvci4KCjIwMDUtMDUtMjggIEplcnJ5IERlTGlzbGUgICA8anZkZWxpc2xlQHZlcml6b24ubmV0PgogICAgICAgICAgICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpbnRyaW5zaWMudGV4aTogYWRkZWQgZG9jdW1lbnRhdGlvbiBmb3IgQklUX1NJWkUsIEJURVNULCBDSEFSLCBDRUlMSU5HLAoJQ01QTFgsIEFUQU4yLCBhbmQgQVNTT0NJQVRFRC4KCjIwMDUtMDUtMjcgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19kZWZlcnJlZF9hcnJheSk6IFVzZSBidWlsZF9pbnRfY3N0IHRvIGZvcmNlCglsaWtlIHR5cGVzIGluIGNvbXBhcnNpb24uCgoyMDA1LTA1LTIxICBBbmRyZXcgUGluc2tpCgoJQmFja3BvcnQgZnJvbSB0aGUgbWFpbmxpbmU6CgkyMDA1LTAzLTE0ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoJKiBmb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaXNoZnQpOiBDb252ZXJ0Cgl0aGUgYXJndW1lbnQgb2YgdGhlIHNoaWZ0IHRvIHRoZSB1bnNpZ25lZCB0eXBlLgoKMjAwNS0wNS0xOCAgVGhvbWFzIEtvZW5pZyAgPFRob21hcy5Lb2VuaWdAb25saW5lLmRlPgoKCVBSIGxpYmZvcnRyYW4vMjExMjcKCSogZm9ydHJhbi9pcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9yZXNoYXBlKTogQWRkIAoJZ2ZjX3R5cGVfbGV0dGVyIChCVF9DT01QTEVYKSBmb3IgY29tcGxleCB0bwoJdG8gcmVzb2x2ZWQgZnVuY3Rpb24gbmFtZS4KCjIwMDUtMDUtMTggIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IERlZmluZSBCVUlMVF9JTl9UUlVOQwoJYW5kIEJVSUxUX0lOX1RSVU5DRiBpbnN0ZWFkIG9mIEJVSUxUX0lOX0ZMT09SIGFuZCBCVUlMVF9JTl9GTE9PUkYuCgkqIHRyYW5zLWludHJpbnNpYy5jIChidWlsZF9maXhfZXhwcik6IENoYW5nZSAnb3AnIGFyZ3VtZW50Cgl0byBjb3JyZWN0IGVudW0gdHlwZS4KCShnZmNfY29udl9pbnRyaW5zaWNfYWludCk6IExpa2V3aXNlLiAgQ2xhcmlmeSBjb21tZW50IGluIGZyb250IG9mCglmdW5jdGlvbi4gIEFkZCBkZWZhdWx0IGNhc2UgdG8gc3dpdGNoLCBkZWFsIHdpdGggRklYX1RSVU5DX0VYUFIKCWluc3RlYWQgb2YgRklYX0ZMT09SX0VYUFIuCgoyMDA1LTA1LTE4ICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiBmb3J0cmFuLzIwOTU0CgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X2NvbnN0X2NoYXJsZW4pOiBVc2UgZ2ZjX2NoYXJsZW5fdHlwZV9ub2RlIHRvCglidWlsZCBjaGFyYWN0ZXIgbGVuZ3RoLgoKMjAwNS0wNS0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgZm9ydHJhbi8xNTA4MAoJKiB0cmFucy1zdG10LmMgKGdlbmVyYXRlX2xvb3BfZm9yX3RlbXBfdG9fbGhzKTogUmVtb3ZlIFNJWkUgYW5kIENPVU5UMgoJYXJndW1lbnRzLiAgSWYgTFNTIGlzIGdmY19zc190ZXJtaW5hdG9yLCBpbmNyZW1lbnQgQ09VTlQxIGJ5IDEsIGluc3RlYWQKCW9mIGluY3JlbWVudGluZyBDT1VOVDIgYW5kIHVzaW5nIENPVU5UMStDT1VOVDIgaW5jcmVtZW50IENPVU5UMSBhbmQgdXNlCglqdXN0IHRoYXQgYXMgaW5kZXguCgkoZ2VuZXJhdGVfbG9vcF9mb3JfcmhzX3RvX3RlbXApOiBMaWtld2lzZS4KCShjb21wdXRlX292ZXJhbGxfaXRlcl9udW1iZXIpOiBBZGQgSU5ORVJfU0laRV9CT0RZIGFyZ3VtZW50LgoJSXQgbm9uLU5VTEwsIGFkZCBpdCB0byBib2R5LgoJKGFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0XzEpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IGZyb20KCWFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0LgoJKGFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0KTogQWRkIElOTkVSX1NJWkVfQk9EWSBhcmd1bWVudCwKCXByb3BhZ2F0ZSBpdCBkb3duIHRvIGNvbXB1dGVfb3ZlcmFsbF9pdGVyX251bWJlci4gIFVzZQoJYWxsb2NhdGVfdGVtcF9mb3JfZm9yYWxsX25lc3RfMS4KCShnZmNfdHJhbnNfYXNzaWduX25lZWRfdGVtcCk6IFJlbW92ZSBDT1VOVDIuICBDYWxsCgljb21wdXRlX2lubmVyX3RlbXBfc2l6ZSBpbnRvIGEgbmV3IHN0bXRibG9ja190LiAgQWRqdXN0IGNhbGxzIHRvCglhbGxvY2F0ZV90ZW1wX2Zvcl9mb3JhbGxfbmVzdCwgZ2VuZXJhdGVfbG9vcF9mb3JfcmhzX3RvX3RlbXAKCWFuZCBnZW5lcmF0ZV9sb29wX2Zvcl90ZW1wX3RvX2xocy4KCShnZmNfdHJhbnNfcG9pbnRlcl9hc3NpZ25fbmVlZF90ZW1wKTogQWRqdXN0IGNhbGxzIHRvCglhbGxvY2F0ZV90ZW1wX2Zvcl9mb3JhbGxfbmVzdC4KCShnZmNfZXZhbHVhdGVfd2hlcmVfbWFzayk6IENhbGwgY29tcHV0ZV9pbm5lcl90ZW1wX3NpemUgaW50byBhIG5ldwoJc3RtdGJsb2NrX3QuICBDYWxsIGNvbXB1dGVfb3ZlcmFsbF9pdGVyX251bWJlciBqdXN0IG9uY2UsIHRoZW4KCWFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0XzEgdHdpY2Ugd2l0aCB0aGUgc2FtZSBzaXplLgoJSW5pdGlhbGl6ZSBtYXNrIGluZGV4ZXMgaWYgbmVzdGVkX2ZvcmFsbF9pbmZvICE9IE5VTEwuCgkoZ2ZjX3RyYW5zX3doZXJlXzIpOiBJbml0aWFsaXplIG1hc2sgaW5kZXhlcyBiZWZvcmUgY2FsbGluZwoJZ2ZjX3RyYW5zX25lc3RlZF9mb3JhbGxfbG9vcC4KCjIwMDUtMDUtMTUgIEZlbmcgV2FuZyA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CglKZXJyeSBEZUxpc2xlIDxqdmRlbGlzbGVAdmVyaXpvbi5uZXQ+CgoJUFIgZm9ydHJhbi8xNzQzMgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19sYWJlbF9hc3NpZ24pOiBmaXggcG9pbnRlciB0eXBlLCB0byAKCXJlc29sdmUgSUNFIG9uIGFzc2lnbiBvZiBmb3JtYXQgbGFiZWwuCgkqIHRyYW5zLWlvLmMgKHNldF9zdHJpbmcpOiBhZGQgZm9sZC1jb252ZXJ0IHRvIHByb3Blcmx5CgloYW5kbGUgYXNzaWduZWQgZm9ybWF0IGxhYmVsIGluIHdyaXRlLgogCjIwMDUtMDUtMTMgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19mb3JhbGxfMSk6IEZpeCBjb21tZW50IHR5cG8uCgoyMDA1LTA1LTEyICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2lzX25vZGVzY19hcnJheSk6IFJlbW92ZSByZWR1bmRhbnQgY2hlY2suCgoyMDA1LTA1LTExICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMjEyNjAKCSogaW8uYyAoY2hlY2tfZm9ybWF0KTogTG9vayBmb3IgbGl0ZXJhbCBjaGFyYWN0ZXJzIGluc2lkZQoJaG9sbGVyaXRoIGNvbnN0YW50LgoKMjAwNS0wNS0wOSAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9yZXR1cm4pOiBPbmx5IHJlcXVpcmUgc3BhY2UgYWZ0ZXIga2V5d29yZCB3aGVuCglpdCBpcyBvYmxpZ2F0b3J5LiAgT25seSBnaXZlIHN0ZHdhcm4gdG8gYWZ0ZXIgbWF0Y2hpbmcgaXMgc3VjY2Vzc2Z1bC4KCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X3N5bWJvbCk6IERlYWwgd2l0aCBhbHRlcm5hdGUgcmV0dXJucy4KCjIwMDUtMDQtMjkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGZvcnRyYW4vMTMwODIKCVBSIGZvcnRyYW4vMTg4MjQKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl92YXJpYWJsZSk6IEhhbmRsZSByZXR1cm4gdmFsdWVzIGluIGZ1bmN0aW9ucwoJd2l0aCBhbHRlcm5hdGUgZW50cnkgcG9pbnRzLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfZW50cmllcyk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHJpbmcgdGVybWluYXRpb24KCWFmdGVyIHNucHJpbnRmLiAgU2V0IHJlc3VsdCBvZiBlbnRyeSBtYXN0ZXIuCglJZiBhbGwgZW50cmllcyBoYXZlIHRoZSBzYW1lIHR5cGUsIHNldCBlbnRyeSBtYXN0ZXIncyB0eXBlCgl0byB0aGF0IGNvbW1vbiB0eXBlLCBvdGhlcndpc2Ugc2V0IG1peGVkX2VudHJ5X21hc3RlciBhdHRyaWJ1dGUuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfbWl4ZWRfZW50cnlfdW5pb24pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dldF9mdW5jdGlvbl90eXBlKTogVXNlIGl0IGZvciBtaXhlZF9lbnRyeV9tYXN0ZXIgZnVuY3Rpb25zLgoJKiBnZm9ydHJhbi5oIChzeW1ib2xfYXR0cmlidXRlKTogQWRkIG1peGVkX2VudHJ5X21hc3RlciBiaXQuCgkqIGRlY2wuYyAoZ2ZjX21hdGNoX2VudHJ5KTogU2V0IGVudHJ5LT5yZXN1bHQgcHJvcGVybHkgZm9yCglmdW5jdGlvbiBFTlRSWS4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsKTogRm9yIGVudHJ5X21hc3Rlciwgc2tpcCBvdmVyCglfX2VudHJ5IGFyZ3VtZW50LgoJKGJ1aWxkX2VudHJ5X3RodW5rcyk6IEhhbmRsZSByZXR1cm4gdmFsdWVzIGluIGVudHJ5IHRodW5rcy4KCUNsZWFyIEJUX0NIQVJBQ1RFUidzIHRzLmNsLT5iYWNrZW5kX2RlY2wsIHNvIHRoYXQgaXQgaXMgbm90CglzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBjb250ZXh0cy4KCShnZmNfZ2V0X2Zha2VfcmVzdWx0X2RlY2wpOiBVc2UgREVDTF9BUkdVTUVOVFMgZnJvbQoJY3VycmVudF9mdW5jdGlvbl9kZWNsIGluc3RlYWQgb2Ygc3ltLT5iYWNrZW5kX2RlY2wuICBTa2lwIG92ZXIKCWVudHJ5IG1hc3RlcidzIGVudHJ5IGlkIGFyZ3VtZW50LiAgRm9yIG1peGVkX2VudHJ5X21hc3RlciBlbnRyaWVzIG9yCgl0aGVpciByZXN1bHRzLCByZXR1cm4gYSBDT01QT05FTlRfUkVGIG9mIHRoZSBmYWtlIHJlc3VsdC4KCShnZmNfdHJhbnNfZGVmZXJyZWRfdmFycyk6IERvbid0IHdhcm4gYWJvdXQgbWlzc2luZyByZXR1cm4gdmFsdWUgaWYKCWF0IGxlYXN0IG9uZSBlbnRyeSBwb2ludCB1c2VzIFJFU1VMVC4KCShnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IEZvciBlbnRyeSBtYXN0ZXIgcmV0dXJuaW5nCglDSEFSQUNURVIsIGNvcHkgdHMuY2wtPmJhY2tlbmRfZGVjbCB0byBhbGwgZW50cnkgcmVzdWx0IHN5bXMuCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19kdW1teV9hcnJheV9iaWFzKTogRG9uJ3QgY29uc2lkZXIgcmV0dXJuCgl2YWx1ZXMgb3B0aW9uYWwganVzdCBiZWNhdXNlIHRoZXkgYXJlIGluIGVudHJ5IG1hc3Rlci4KCjIwMDUtMDQtMjkgIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCglQUiBmb3J0cmFuLzE2ODYxCgkqIHJlc29sdmUuYyAocmVzb2x2ZV92YXJpYWJsZSk6IElmIGUtPnN5bXRyZWUgaXMgbm90IHNldCwgdGhpcwoJb3VnaHQgdG8gYmUgYSBGQUlMVVJFLCBhbmQgbm90IGEgc2VnZmF1bHQuCgoyMDA1LTA0LTI5ICBQYXVsIEJyb29rICAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZXhwcl9wcmVzZW50KTogRml4IGJyb2tlbiBhc3NlcnQuICBVcGRhdGUKCWNvbW1lbnQuCgoyMDA1LTA0LTI4ICBGcmFuY29pcy1YYXZpZXIgQ291ZGVydCAgPGNvdWRlcnRAY2xpcHBlci5lbnMuZnI+CgoJUFIgZm9ydHJhbi8yMDg2NQoJKiByZXNvbHZlLmMgKHJlc29sdmVfYWN0dWFsX2FyZ2xpc3QpOiBJc3N1ZSBhbiBlcnJvciBpZiBhIHN0YXRlbWVudAoJZnVuY3Rpb25zIGlzIHVzZWQgYXMgYWN0dWFsIGFyZ3VtZW50LgoKMjAwNS0wNC0yNyAgRnJhbmNvaXMtWGF2aWVyIENvdWRlcnQgIDxjb3VkZXJ0QGNsaXBwZXIuZW5zLmZyPgoKCVBSIGZvcnRyYW4vMjExNzcKCSogaW50ZXJmYWNlLmMgKGNvbXBhcmVfcGFyYW1ldGVyKTogSWdub3JlIHR5cGUgZm9yIEVYUFJfTlVMTAoJb25seSBpZiB0eXBlIGlzIEJUX1VOS05PV04uCgoyMDA1LTA0LTI1ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoJU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCVBSIGZvcnRyYW4vMjA4NzkKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2ljaGFyX2lhY2hhcik6IE5ldyBmdW5jdGlvbi4KCSogaW5zdGluc2ljLmggKGdmY19jaGVja19pY2hhcl9pYWNoYXIpOiBBZGQgcHJvdG90eXBlLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IFVzZSBpdC4KCSogcHJpbWFyeS5jIChtYXRjaF92YXJzcGVjLCBnZmNfbWF0Y2hfcnZhbHVlKTogQ2xlYXIgaW5jb3JyZWN0CgljaGFyYWN0ZXIgZXhwcmVzc2lvbiBsZW5ndGhzLgoKMjAwNS0wNC0yNCAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzIwMDU5CgkqIHRyYW5zLWNvbW1vbi5jICh0cmFuc2xhdGVfY29tbW9uKTogQ2FzdCBvZmZzZXQgYW5kCgljb21tb25fc2VnbWVudC0+b2Zmc2V0IHRvIHR5cGUgaW50IGZvciB3YXJuaW5nIG1lc3NhZ2UuCgoyMDA1LTA0LTIzICBSaWNoYXJkIEd1ZW50aGVyICA8cmd1ZW50aEBnY2MuZ251Lm9yZz4KCglQUiBmb3J0cmFuLzE0NTY5CgkqIGdmb3J0cmFuLmggKGdmY19saW5lYnVmKTogQWRkIHRydW5jYXRlZCBmaWVsZC4KCSogcGFyc2UuYyAobmV4dF9zdGF0ZW1lbnQpOiBIYW5kbGUgd2FybmluZyBmb3IgdHJ1bmNhdGVkIGxpbmVzLgoJKiBzY2FubmVyLmMgKGxvYWRfbGluZSk6IFJldHVybiBpZiBsaW5lIHdhcyB0cnVuY2F0ZWQuCglObyBsb25nZXIgd2FybiBmb3IgdHJ1bmNhdGVkIGxpbmVzLiAgUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzLgoJKGxvYWRfZmlsZSk6IFN0b3JlIGxvYWRfbGluZSByZXR1cm4gdmFsdWUgdG8gbGluZWJ1Zi4KCShnZmNfbmV4dF9jaGFyX2xpdGVyYWwpOiBSZXNldCB0cnVuY2F0aW9uIGZsYWcgZm9yIGxpbmVzIGVuZGluZwoJaW4gYSBjb21tZW50IGZvciBib3RoIGZpeGVkIGFuZCBmcmVlIGZvcm0uCgkoZ2ZjX2Vycm9yX3JlY292ZXJ5KTogRG8gbm90IGFkdmFuY2UgbGluZSBhdCB0aGUgZW5kLgoKMjAwNS0wNC0yMCAgUmVsZWFzZSBNYW5hZ2VyCgoJKiBHQ0MgNC4wLjAgcmVsZWFzZWQuCgoyMDA1LTA0LTEyICBUb29uIE1vZW5lICA8dG9vbkBtb2VuZS5pbmRpdi5ubHV1Zy5ubD4KCgkqIGdmb3J0cmFuLnRleGk6IFdhcm4gYWJvdXQgdGhlIGxpbWl0ZWQgYWJpbGl0aWVzCglvZiBnZm9ydHJhbiBhdCB0aGlzIHJlbGVhc2UuCgkqIGludm9rZS50ZXhpOiBEaXR0by4KCjIwMDUtMDQtMDkgIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCgkqIG1hdGNoLmMgKG1hdGNoX2FyaXRobWV0aWNfaWYpOiBSZW1vdmUgZ2ZjXyBwcmVmaXggYW5kIGNvcnJlY3QKCWNvbW1lbnQgYWNjb3JkaW5nIHRvIEdOVSBjb2Rpbmcgc3R5bGUuCgoyMDA1LTA0LTA4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9hcml0aG1ldGljX2lmKTogRGVjbGFyZSBzdGF0aWMuCgoyMDA1LTA0LTA4ICBGcmFuY29pcy1YYXZpZXIgQ291ZGVydCAgPGNvdWRlcnRAY2xpcHBlci5lbnMuZnI+CgoJUFIgZm9ydHJhbi8xNzIyOQoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfYXJpdGhtZXRpY19pZik6IE5ldyBmdW5jdGlvbiB0byBtYXRjaCBhbgoJYXJpdGhtZXRpYyBJRiBzdGF0ZW1lbnQuCgkoZ2ZjX21hdGNoX2lmKTogVXNlIGdmY19tYXRjaF9hcml0aG1ldGljX2lmIHRvIG1hdGNoIGFuCglhcml0aG1ldGljIElGIHN0YXRlbWVudCBlbWJlZGRlZCBpbiBhIHNpbXBsZSBJRiBzdGF0ZW1lbnQuCgoyMDA1LTA0LTA3ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBzaW1wbGlmeS5jIChnZmNfc2ltcGxpZnlfZXhwb25lbnQpOiBGaXggZXhwb25lbnQodGlueSh4KSkKCjIwMDUtMDQtMDYgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGludm9rZS50ZXhpOiBSZW1vdmUgZG9jdW1lbnRhdGlvbiBvZiAtc3RkPWY5MC4KCjIwMDUtMDQtMDYgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBleHByLmMgKGdmY19jaGVja19hc3NpZ24pOiBEb24ndCBhbGxvdyBOVUxMIGFzIHJocyBpbiBhCglub24tcG9pbnRlciBhc3NpZ25tZW50LgoKMjAwNS0wNC0wNSAgRmVuZyBXYW5nICA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CgoJUFIgZm9ydHJhbi8xNTk1OQoJUFIgZm9ydHJhbi8yMDcxMwoKCSogYXJyYXkuYyAocmVzb2x2ZV9jaGFyYWN0ZXJfYXJyYXlfY29uc3RydWN0b3IpOiBOZXcgZnVuY3Rpb24uIFNldAoJY29uc3RhbnQgY2hhcmFjdGVyIGFycmF5J3MgY2hhcmFjdGVyIGxlbmd0aC4KCShnZmNfcmVzb2x2ZV9hcnJheV9jb25zdHJ1Y3Rvcik6IFVzZSBpdC4KCSogZGVjbC5jIChhZGRfaW5pdF9leHByX3RvX3N5bSk6IFNldCBzeW1ib2wgYW5kIGluaXRpYWxpemVyIGNoYXJhY3RlcgoJbGVuZ3RoLgoJKGdmY19zZXRfY29uc3RhbnRfY2hhcmFjdGVyX2xlbik6IE5ldyBmdW5jdGlvbi4gU2V0IGNvbnN0YW50IGNoYXJhY3RlcgoJZXhwcmVzc2lvbiBhY2NvcmRpbmcgdGhlIGdpdmVuIGxlbmd0aC4KCSogbWF0Y2guaCAoZ2ZjX3NldF9jb25zdGFudF9jaGFyYWN0ZXJfbGVuKTogQWRkIHByb3RvdHlwZS4KCjIwMDUtMDQtMDQgIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCgkqIGludHJpbnNpYy50ZXhpOiBCRVM/PyBmdW5jdGlvbnMgYXJlIG5vdCBpbiB0aGUgZjk1IHN0YW5kYXJkLgoKMjAwNS0wNC0wMyAgRnJhbmNvaXMtWGF2aWVyIENvdWRlcnQgIDxjb3VkZXJ0QGNsaXBwZXIuZW5zLmZyPgoKCSogaW50cmluc2ljLnRleGk6IERvY3VtZW50IENPUywgRVhQLCBMT0csIExPRzEwLCBTSU4sIFNRUlQsIFRBTi4KCjIwMDUtMDQtMDMgIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCgkqIGludHJpbnNpYy50ZXhpOiBEb2N1bWVudCBCRVNKMCwgQkVTSjEsIEJFU0pOLCBCRVNZMCwgQkVTWTEsCglCRVNZTiwgQVRBTiwgQ09TSCwgRVJGLCBFUkMsIFNJTkgsIFRBTkguCgoyMDA1LTA0LTAyICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpbnRyaW5zaWMudGV4aTogRG9jdW1lbnQgQUxMT0NBVEVELCBBTklOVCwgQU5ZLCBBU0lOOyBGaXggdHlwb3MuCgoyMDA1LTAzLTMwICBDYW5xdW4gWWFuZyAgPGNhbnF1bkBudWR0LmVkdS5jbj4KCgkqIHRyYW5zLWNvbW1vbi5jIChjcmVhdGVfY29tbW9uKTogQnVpbGQgUkVDT1JEX05PREUgZm9yIGNvbW1vbiBibG9ja3MKCWNvbnRhaW4gbm8gZXF1aXZhbGVuY2Ugb2JqZWN0cy4KCShhZGRfZXF1aXZhbGVuY2VzKTogTmV3IGFyZ3VtZW50IHNhd19lcXVpdi4KCSh0cmFuc19jb21tb24pOiBOZXcgbG9jYWwgdmFyaWFibGUgc2F3X2VxdWl2LgoJKGZpbmlzaF9lcXVpdmFsZW5jZXMpOiBBZGQgYSBsb2NhbCB2YXJpYWJsZSBkdW1teSwgQWx3YXlzIHBhc3MgdHJ1ZQoJZm9yIHRoZSAzcmQgcGFyYW1ldGVyIHRvIGNyZWF0ZV9jb21tb24uCgoyMDA1LTAzLTI5ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBnZm9ydHJhbi5oIChvcHRpb25fdCk6IENoYW5nZSBkOCwgaTgsIHI4IHRvIGZsYWdfZGVmYXVsdF9kb3VibGUsCglmbGFnX2RlZmF1bHRfaW50ZWdlciwgZmxhZ19kZWZhdWx0X3JlYWwKCSogaW52b2tlLnRleGk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uCgkqIGxhbmcub3B0OiBSZW1vdmUgZDgsIGk4LCByOCBkZWZpbml0aW9uczsgQWRkIGZkZWZhdWx0LWRvdWJsZS04ICAgCglmZGVmYXVsdC1pbnRlZ2VyLTgsIGFuZCBmZGVmYXVsdC1yZWFsLTggZGVmaW5pdGlvbnMuCgkqIG9wdGlvbnMuYyAoZ2ZjX2luaXRfb3B0aW9ucyk6IFNldCBvcHRpb24gZGVmYXVsdHMKCShnZmNfaGFuZGxlX29wdGlvbik6IEhhbmRsZSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2luaXRfa2luZHMpOiBVc2Ugb3B0aW9ucy4KCjIwMDUtMDMtMjcgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGludHJpbnNpYy50ZXhpOiBEb2N1bWVudCBBSU1BRywgQUlOVCwgQUxMCgoyMDA1LTAzLTI1ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpbnRyaW5zaWMudGV4aTogRml4ICJtYWtlIGR2aSIKCjIwMDUtMDMtMjQgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGludHJpbnNpYy50ZXhpOiBOZXcgZmlsZS4KCSogZ2ZvcnRyYW4udGV4aTogSW5jbHVkZSBpdDsgd2hpdGUgc3BhY2UgY2hhbmdlOyBmaXggdHlwby4KCjIwMDUtMDMtMjIgIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19jaGRpciwgZ2ZjX2NoZWNrX2NoZGlyX3N1YiwgZ2ZjX2NoZWNrX2tpbGwsCglnZmNfY2hlY2tfa2lsbF9zdWIsIGdmY19jaGVja19saW5rLCBnZmNfY2hlY2tfbGlua19zdWIsCglnZmNfY2hlY2tfc3ltbG5rLCBnZmNfY2hlY2tfc3ltbG5rX3N1YiwgZ2ZjX2NoZWNrX3JlbmFtZSwKCWdmY19jaGVja19yZW5hbWVfc3ViLCBnZmNfY2hlY2tfc2xlZXBfc3ViLCBnZmNfY2hlY2tfZ2Vycm9yLAoJZ2ZjX2NoZWNrX2dldGxvZywgZ2ZjX2NoZWNrX2hvc3RubSwgZ2ZjX2NoZWNrX2hvc3RubV9zdWIsCglnZmNfY2hlY2tfcGVycm9yKTogbmV3IGZ1bmN0aW9ucyB0byBjaGVjayBuZXdseSBpbXBsZW1lbnRlZAoJZzc3IGludHJpbnNpY3MuCgkqIGdmb3J0cmFuLmg6IGFkZGluZyBzeW1ib2xzIGZvciBuZXcgaW50cmluc2ljcy4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBhZGRpbmcgbmV3IGludHJpbnNpY3MuCgkoYWRkX3N1YnJvdXRpbmVzKTogYWRkaW5nIG5ldyBpbnRyaW5zaWNzLgoJKiBpbnRyaW5zaWMuaDogcHJvdG90eXBlIGZvciBhbGwgY2hlY2tpbmcgYW5kIHJlc29sdmluZwoJZnVuY3Rpb25zLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9jaGRpciwgZ2ZjX3Jlc29sdmVfY2hkaXJfc3ViLAoJZ2ZjX3Jlc29sdmVfaG9zdG5tLCBnZmNfcmVzb2x2ZV9pZXJybm8sIGdmY19yZXNvbHZlX2tpbGwsCglnZmNfcmVzb2x2ZV9saW5rLCBnZmNfcmVzb2x2ZV9yZW5hbWUsIGdmY19yZXNvbHZlX3N5bWxuaywKCWdmY19yZXNvbHZlX3RpbWUsIGdmY19yZXNvbHZlX3RpbWU4LCBnZmNfcmVzb2x2ZV9yZW5hbWVfc3ViLAoJZ2ZjX3Jlc29sdmVfa2lsbF9zdWIsIGdmY19yZXNvbHZlX2xpbmtfc3ViLAoJZ2ZjX3Jlc29sdmVfc3ltbG5rX3N1YiwgZ2ZjX3Jlc29sdmVfc2xlZXBfc3ViLAoJZ2ZjX3Jlc29sdmVfZ2Vycm9yLCBnZmNfcmVzb2x2ZV9nZXRsb2csIGdmY19yZXNvbHZlX2hvc3RubV9zdWIsCglnZmNfcmVzb2x2ZV9wZXJyb3IpOiBuZXcgZnVuY3Rpb25zIHRvIHJlc29sdmUgaW50cmluc2ljcy4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IGFkZCBjYXNlCglmb3IgbmV3IHN5bWJvbHMuCgoyMDA1LTAzLTE5ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2V4cHIpOiBEdW1wIG5hbWUgb2YgbmFtZXNwYWNlCglpbiB3aGljaCB0aGUgdmFyaWFibGUgaXMgZGVjbGFyZWQuCgoJUFIgZm9ydHJhbi8xODUyNQoJKiByZXNvbHZlLmMgKHdhc19kZWNsYXJlZCk6IEFsc28gY2hlY2sgZm9yIGR1bW15IGF0dHJpYnV0ZS4KCjIwMDUtMDMtMTkgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBnZm9ydHJhbi5oIChhcml0aCk6IFJlbW92ZSBBUklUSF8wVE8wLgoJKiBhcml0aC5jIChnZmNfYXJpdGhfZXJyb3IpOiBSZW1vdmUgaGFuZGxpbmcgb2YgQVJJVEhfMFRPMC4KCShnZmNfYXJpdGhfcG93ZXIpOiBSZW1vdmUgc3BlY2lhbCBjYXNpbmcgb2YgemVybyB0byBpbnRlZ3JhbAoJcG93ZXIgemVyby4KCjIwMDUtMDMtMTcgIEZyYW5jb2lzLVhhdmllciBDb3VkZXJ0ICA8Y291ZGVydEBjbGlwcGVyLmVucy5mcj4KCgkqIGludm9rZS50ZXhpOiBGaXggdHlwb3MuCgoyMDA1LTAzLTE1ICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiBmb3J0cmFuLzE4ODI3CgkqIGlvLmMgKHJlc29sdmVfdGFnKTogQWRkIGNoZWNraW5nIG9uIGFzc2lnbmVkIGxhYmVsLgoJKG1hdGNoX2R0X2Zvcm1hdCk6IERvZXMgbm90IHNldCBzeW1ib2wgYXNzaWduIGF0dHJpYnV0ZS4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2dvdG8pOkRvZXMgbm90IHNldCBzeW1ib2wgYXNzaWduIGF0dHJpYnV0ZS4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX2NvZGUpOiBBZGQgY2hlY2tpbmcgb24gYXNzaWduZWQgbGFiZWwuCgkqIHRyYW5zLWNvbW1vbi5jIChidWlsZF9maWVsZCk6IERlYWxzIHdpdGggY29tbW9uIHZhcmlhYmxlIGFzc2lnbmVkCglhIGxhYmVsLgoJKiB0cmFucy1zdG10LmMgKGdmY19jb252X2xhYmVsX3ZhcmlhYmxlKTogTmV3IGZ1bmN0aW9uLgoJKGdmY190cmFuc19sYWJlbF9hc3NpZ24pOiBVc2UgaXQuCgkoZ2ZjX3RyYW5zX2dvdG8pOiBEaXR0by4KCSogdHJhbnMtaW8uYyAoc2V0X3N0cmluZyk6IERpdHRvLgoJKiB0cmFucy5oIChnZmNfY29udl9sYWJlbF92YXJpYWJsZSk6IEFkZCBwcm90b3R5cGUuCgoyMDA1LTAzLTE0ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMjA0NjcKCSogc3ltYm9sLmMgKGNoZWNrX2NvbmZsaWN0KTogQSBkdW1teSBhcmd1bWVudCBjYW4ndCBiZSBhIHN0YXRlbWVudAoJZnVuY3Rpb24uCgoyMDA1LTAzLTEzICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTY5MDcKCSogcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9pbmRleCk6IEFsbG93IFJFQUwgaW5kaWNlcyBhcyBhbiBleHRlbnNpb24uCgoyMDA1LTAzLTEzICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMjAzMjMKCSogcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZSk6IENoZWNrIGlmIGNoYXJhY3RlciBsZW5ndGhzIGFyZQoJc3BlY2lmaWNhdGlvbiBleHByZXNzaW9ucy4KCjIwMDUtMDMtMTIgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8yMDM2MQoJKiB0cmFucy1hcnJheS5jIChnZmNfc3RhY2tfc3BhY2VfbGVmdCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkoZ2ZjX2Nhbl9wdXRfdmFyX29uX3N0YWNrKTogTW92ZSB0byB0cmFucy1kZWNsLmMsIHJlbW92ZSAjaWYgMCdlZAoJY29kZS4KCSogdHJhbnMtYXJyYXkuaCAoZ2ZjX3N0YWNrX3NwYWNlX2xlZnQsIGdmY19jYW5fcHV0X3Zhcl9vbl9zdGFjayk6CglSZW1vdmUgZGVjbGFyYXRpb24gLyBwcm90b3R5cGUuCgkqIHRyYW5zLWNvbW1vbi5jIChidWlsZF9lcXVpdl9kZWNsKTogR2l2ZSB1bmlvbiBhIG5hbWUuICBDaGVjayBpZgoJaXQgY2FuIGJlIHB1dCBvbiB0aGUgc3RhY2suCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3N0YWNrX3NwYWNlX2xlZnQpOiBNb3ZlIGZ1bmN0aW9uIGhlcmUuCgkoZ2ZjX2J1aWxkX3F1YWxpZmllZF9hcnJheSk6IEZpeCBjb21tZW50IHR5cG8uCgkqIHRyYW5zLmggKGdmY19wdXRfdmFyX29uX3N0YWNrKTogQWRkIHByb3RvdHlwZS4KCjIwMDUtMDMtMDUgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCglQUiBmb3J0cmFuLzE5OTM2CgkqIHByaW1hcnkuYyAobWF0Y2hfY29tcGxleF9jb25zdGFudCk6IE1hbmdsZWQgY29tcGxleCBjb25zdGFudCBtYXkKCWJlIGFuIGltcGxpZWQgZG8tbG9vcC4gIEdpdmUgaW1wbGllZCBkby1sb29wIG1hdGNoZXIgYSBjaGFuY2UuCgoyMDA1LTAzLTA1ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+IAoKCVBSIGZvcnRyYW4vMTk3NTQKCSogcmVzb2x2ZS5jIChjb21wYXJlX3NoYXBlcyk6ICBOZXcgZnVuY3Rpb24uCgkocmVzb2x2ZV9vcGVyYXRvcik6IFVzZSBpdC4KCjIwMDUtMDMtMDQgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xOTY3MwoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBDb3JyZWN0bHkgZGVyZWZlcmVuY2UKCWFyZ3VtZW50IGZyb20gYSBwb2ludGVyIGZ1bmN0aW9uIGFsc28gaWYgaXQgaGFzIGEgcmVzdWx0IGNsYXVzZS4KCjIwMDUtMDMtMDQgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGV4cHIuYyAoZ2ZjX2NvcHlfc2hhcGVfZXhjbHVkaW5nKTogQ2hhbmdlICYmIHRvIHx8LgoKMjAwNS0wMy0wNCAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfZ2V0X3N5bWJvbF9mb3JfZXhwcik6IEZpeCBjb21tZW50IHR5cG8sCgljbGFyaWZ5IGNvbW1lbnQuCgoyMDA1LTAyLTI4ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoJKHBvcnQgZnJvbSBnOTUpCgoJUFIgZm9ydHJhbi8xOTQ3OQoJKiBzaW1wbGlmeS5jIChnZmNfc2ltcGxpZnlfYm91bmQpOiBSZW5hbWUgdG8gLi4uCgkoc2ltcGxpZnlfYm91bmQpOiAuLi4gdGhpcyBhbmQgb3ZlcmhhdWwuCgoyMDA1LTAyLTI4ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbEBnY2MuZ251Lm9yZz4KCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaWFyZ2MpOiByZW1vdmUgYm9vbGVhbiBhcmd1bWVudC4KCShnZmNfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiB1cGRhdGUgZnVuY3Rpb24gY2FsbHMKCjIwMDUtMDItMjcgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsQGdjYy5nbnUub3JnPgoKCVBSIGZvcnRyYW4vMjAwNTgKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX21heF9pbnRlZ2VyX2tpbmQpOiBEZWNsYXJlCiAgCShnZmNfaW5pdF9raW5kcyk6IEluaXRpYWxpemUgaXQuCgkqIGdmb3J0cmFuLmggKGdmY19tYXhfaW50ZWdlcl9raW5kKTogZXh0ZXJuIGl0LgoJKiBwcmltYXJ5LmMgKG1hdGNoX2Jvel9jb25zdGFudCk6IFVzZSBpdDsgcmVtb3ZlIGdmb3J0cmFuIGV4dGVuc2lvbgogIAlvZiBraW5kIHN1ZmZpeGVzIG9uIEJPWiBsaXRlcmFsIGNvbnN0YW50cwoKMjAwNS0wMi0yNCAgVm9sa2VyIFJlaWNoZWx0ICA8cmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZT4KCgkqIGRlY2wuYywgcmVzb2x2ZS5jLCB0cmFucy1hcnJheS5jLCB0cmFucy5oOiBGaXggY29tbWVudCB0eXBvKHMpLgoKMjAwNS0wNC0yNCAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglVbnJldmVydCBwcmV2aW91c2x5IHJldmVydGVkIHBhdGNoLiAgQWRkaW5nIHRoaXMgZml4OgoJKiBtb2R1bGUuYyAoZmluZF90cnVlX25hbWUpOiBEZWFsIHdpdGggTlVMTCBtb2R1bGUuCgoyMDA1LTAyLTI0ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVJldmVydCB5ZXN0ZXJkYXkncyBwYXRjaDoKCTIwMDUtMDItMjMgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJCSogZ2ZvcnRyYW4uaCAoZ2ZjX2NvbXBvbmVudCwgZ2ZjX2FjdHVhbF9hcmdsaXN0LCAuLi4KCQkuLi4gYXJndW1lbnQuICBDb3B5IHN0cmluZyBpbnN0ZWFkIG9mIHBvaW50aW5nIHRvIGl0LgoKMjAwNS0wMi0yMyAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuLmggKGdmY19nZXRfbmFtZXNwYWNlKTogQWRkIHNlY29uZCBhcmd1bWVudCB0byBwcm90b3R5cGUuCgkqIGludHJpbnNpYy5jIChnZmNfaW50cmluc2ljX2luaXRfMSk6IFBhc3Mgc2Vjb25kIGFyZ3VtZW50IHRvCglnZmNfZ2V0X25hbWVzcGFjZS4KCSogbW9kdWxlLmMgKG1pb19uYW1lc3BhY2VfcmVmLCBsb2FkX25lZWRlZCk6IExpa2V3aXNlLgoJKiBwYXJzZS5jIChwYXJzZV9pbnRlcmZhY2UsIHBhcnNlX2NvbnRhaW5lZCk6IExpa2V3aXNlLiAgSGVyZSB0aGUKCWNvcnJlY3Qgc2Vjb25kIGFyZ3VtZW50IG1hdHRlcnMuCgkqIHN5bWJvbC5jIChnZmNfZ2V0X25hbWVzcGFjZSk6IEFkZCBwYXJlbnRfdHlwZXMgYXJndW1lbnQsIG9ubHkgY29weQoJcGFyZW50J3MgaW1wbGljaXQgdHlwZXMgaWYgdGhpcyBpcyBzZXQuCgkoZ2ZjX3N5bWJvbF9pbml0XzIpOiBQYXNzIHNlY29uZCBhcmd1bWVudCB0byBnZmNfZ2V0X25hbWVzcGFjZS4KCSogdHJhbnMtY29tbW9uLmMgKGJ1aWxkX2NvbW1vbl9kZWNsKTogTGlrZXdpc2UuCgoJKiBnZm9ydHJhbi5oIChzeW1ib2xfYXR0cmlidXRlKTogTmV3ICd1bnR5cGVkJyBmaWVsZCwgZml4IGNvbW1lbnQKCWZvcm1hdHRpbmcuCgkqIHN5bWJvbC5jIChnZmNfc2V0X2RlZmF1bHRfdHlwZSk6IElzc3VlIGVycm9yIG9ubHkgb25jZSwgYnkgc2V0dGluZwoJYW5kIGNoZWNraW5nICd1bnR5cGVkJyBhdHRyaWJ1dGUuCgoJKiBnZm9ydHJhbi5oIChnZmNfZXhwcik6IE1vdmUgJ29wZXJhdG9yJywgJ29wMScsICdvcDInLCBhbmQgJ3VvcCcKCWZpZWxkcyBpbnRvIG5ldyBzdHJ1Y3QgJ29wJyBpbnNpZGUgdGhlICd2YWx1ZScgdW5pb24uCgkqIGFyaXRoLmMgKGV2YWxfaW50cmluc2ljKTogQWRhcHQgYWxsIHVzZXJzLgoJKiBkZXBlbmRlbmN5LmMgKGdmY19jaGVja19kZXBlbmRlbmN5KTogTGlrZXdpc2UuCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnZmNfc2hvd19leHByKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoZ2ZjX2dldF9leHByKTogRG9uJ3QgY2xlYXIgcmVtb3ZlZCBmaWVsZHMuCgkoZnJlZV9leHByMCwgZ2ZjX2NvcHlfZXhwciwgZ2ZjX3R5cGVfY29udmVydF9iaW5hcnksCglnZmNfaXNfY29uc3RhbnRfZXhwciwgc2ltcGxpZnlfaW50cmluc2ljX29wLCBjaGVja19pbml0X2V4cHIsCgljaGVja19pbnRyaW5zaWNfb3ApOiBBZGFwdCB0byBuZXcgZmllbGQgbmFtZXMuCgkqIGludGVyZmFjZS5jIChnZmNfZXh0ZW5kX2V4cHIpOiBMaWtld2lzZS4gIEFsc28gZXhwbGljaXRseQoJbnVsbGlmeSAnZXN5bScgYW5kICdpc3ltJyBmaWVsZHMgb2YgbmV3IGZ1bmN0aW9uIGNhbGwuCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2RvdF9wcm9kdWN0LCBnZmNfcmVzb2x2ZV9tYXRtdWwpOgoJQWRhcHQgdG8gcmVuYW1lZCBzdHJ1Y3R1cmUgZmllbGRzLgoJKiBtYXRjaGV4cC5jIChidWlsZF9ub2RlLCBtYXRjaF9sZXZlbF8xLCBtYXRjaF9leHByKTogTGlrZXdpc2UuCgkqIG1vZHVsZS5jIChtaW9fZXhwcik6IExpa2V3aXNlLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfb3BlcmF0b3IpOiBMaWtld2lzZS4KCShnZmNfZmluZF9mb3JhbGxfaW5kZXgpOiBMaWtld2lzZS4gIE9ubHkgbG9vayB0aHJvdWdoIG9wZXJhbmRzCglpZiBkZWFsaW5nIHdpdGggRVhQUl9PUAoJKiB0cmFucy1hcnJheS5jIChnZmNfd2Fsa19vcF9leHByKTogQWRhcHQgdG8gcmVuYW1lZCBmaWVsZHMuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfdW5hcnlfb3AsIGdmY19jb252X3Bvd2VyX29wLAoJZ2ZjX2NvbnZfY29uY2F0X29wLCBnZmNfY29udl9leHByX29wKTogTGlrZXdpc2UuCgoJWyBSZXZlcnRlZCBdCgkqIGdmb3J0cmFuLmggKGdmY19jb21wb25lbnQsIGdmY19hY3R1YWxfYXJnbGlzdCwgZ2ZjX3VzZXJfb3ApOiBNYWtlCgknbmFtZScgYSAnY29uc3QgY2hhciAqJy4KCShnZmNfc3ltYm9sKTogTGlrZXdpc2UsIGFsc28gZm9yICdtb2R1bGUnLgoJKGdmY19zeW10cmVlKTogTWFrZSAnbmFtZScgYSAnY29uc3QgY2hhciAqJy4KCShnZmNfaW50cmluc2ljX3N5bSk6IExpa2V3aXNlLCBhbHNvIGZvciAnbGliX25hbWUnLgoJKGdmY19nZXRfZ3N5bWJvbCwgZ2ZjX2ZpbmRfZ3N5bWJvbCk6IEFkZCAnY29uc3QnIHF1YWxpZmllciB0bwoJJ2NoYXIgKicgYXJndW1lbnQuCgkoZ2ZjX2ludHJpbnNpY19zeW1ib2wpOiBVc2UgJ2dmY19nZXRfc3RyaW5nJyBpbnN0ZWFkIG9mICdzdHJjcHknIHRvCglpbml0aWFsaXplICdTWU0tPm1vZHVsZScuCgkqIGNoZWNrLmMgKGdmY19jaGVja19taW5sb2NfbWF4bG9jLCBjaGVja19yZWR1Y3Rpb24pOiBDaGVjayBmb3IgTlVMTAoJcG9pbnRlciBpbnN0ZWFkIG9mIGVtcHR5IHN0cmluZy4KCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2FjdHVhbF9hcmdsaXN0KTogTGlrZXdpc2UuCgkqIGludGVyZmFjZS5jIChnZmNfY29tcGFyZV90eXBlcyk6IEFkYXB0IGNoZWNrIHRvIGFjY291bnQgZm9yIHBvc3NpYmxlCglOVUxMIHBvaW50ZXIuCgkoY29tcGFyZV9hY3R1YWxfZm9ybWFsKTogQ2hlY2sgZm9yIE5VTEwgcG9pbnRlciBpbnN0ZWFkIG9mIGVtcHR5CglzdHJpbmcuCgkqIGludHJpbnNpYy5jIChnZmNfY3VycmVudF9pbnRyaW5zaWMsIGdmY19jdXJyZW50X2ludHJpbnNpY19hcmcpOgoJQWRkICdjb25zdCcgcXVhbGlmaWVyLgkKCShjb252X25hbWUpOiBSZXR1cm4gYSBoZWFwIGFsbG9jYXRlZCBzdHJpbmcuCgkoZmluZF9jb252KTogQWRkICdjb25zdCcgcXVhbGlmaWVyIHRvICd0YXJnZXQnLgoJKGFkZF9zeW0pOiBVc2UgJ2dmY19nZXRfc3RyaW5nJyBpbnN0ZWFkIG9mICdzdHJjcHknLgoJKG1ha2VfZ2VuZXJpYyk6IENoZWNrIGZvciBOVUxMIHBvaW50ZXIgaW5zdGVhZCBvZiBlbXB0eQlzdHJpbmcuCgkobWFrZV9hbGlhcyk6IFVzZSAnZ2ZjX2dldF9zdHJpbmcnIGluc3RlYWQgb2YgJ3N0cmNweScuCgkoYWRkX2NvbnYpOiBObyBuZWVkIHRvIHN0cmNweSByZXN1bHQgZnJvbSAnY29udl9uYW1lJy4KCShzb3J0X2FjdHVhbCk6IENoZWNrIGZvciBOVUxMIHBvaW50ZXIgaW5zdGVhZCBvZiBlbXB0eQlzdHJpbmcuCgkqIGludHJpbnNpYy5oIChnZmNfY3VycmVudF9pbnRyaW5zaWMsIGdmY19jdXJyZW50X2ludHJpbnNpY19hcmcpOgoJQWRhcHQgcHJvdG90eXBlLgoJKiBtb2R1bGUuYyAoY29tcGFyZV90cnVlX25hbWVzKTogQ29tcGFyZSBwb2ludGVycyBpbnN0ZWFkIG9mIHN0cmluZ3MKCWZvciAnbW9kdWxlJyBtZW1iZXIuCgkoZmluZF90cnVlX25hbWUpOiBJbml0aWFsaXplIHN0cmluZyBmaWVsZHMgd2l0aCBnZmNfZ2V0X3N0cmluZy4KCShtaW9fcG9vbF9zdHJpbmcpOiBOZXcgZnVuY3Rpb24uCgkobWlvX2ludGVybmFsX3N0cmluZyk6IEFkYXB0IGNvbW1lbnQuCgkobWlvX2NvbXBvbmVudF9yZWYsIG1pb19jb21wb25lbnQsIG1pb19hY3R1YWxfYXJnKTogVXNlCgknbWlvX3Bvb2xfc3RyaW5nJyBpbnN0ZWFkIG9mICdtaW9faW50ZXJuYWxfc3RyaW5nJy4KCShtaW9fc3ltYm9sX2ludGVyZmFjZSk6IEFkZCAnY29uc3QnIHF1YWxpZmllciB0byBzdHJpbmcgYXJndW1lbnRzLgoJQWRkIGxldmVsIG9mIGluZGlyZWN0aW9uLiBVc2UgJ21pb19wb29sX3N0cmluZycgaW5zdGVhZCBvZgoJJ21pb19pbnRlcm5hbF9zdHJpbmcnLgoJKGxvYWRfbmVlZGVkLCByZWFkX21vZHVsZSk6IFVzZSAnZ2ZjX2dldF9zdHJpbmcnIGluc3RlYWQgb2YgJ3N0cmNweScuCgkod3JpdGVfY29tbW9uLCB3cml0ZV9zeW1ib2wpOiBVc2UgJ21pb19wb29sX3N0cmluZycgaW5zdGVhZCBvZgoJJ21pb19pbnRlcm5hbF9zdHJpbmcnLgoJKHdyaXRlX3N5bWJvbDAsIHdyaXRlX3N5bWJvbDEpOiBMaWtld2lzZSwgYWxzbyBjaGVjayBmb3IgTlVMTCBwb2ludGVyCglpbnN0ZWFkIG9mIGVtcHR5IHN0cmluZy4KCSh3cml0ZV9vcGVyYXRvciwgd3JpdGVfZ2VuZXJpYyk6IFBhc3MgY29ycmVjdCB0eXBlIHZhcmlhYmxlIHRvCgknbWlvX3N5bWJvbF9pbnRlcmZhY2UnLgoJKHdyaXRlX3N5bXRyZWUpOiBVc2UgJ21pb19wb29sX3N0cmluZycgaW5zdGVhZCBvZgoJJ21pb19pbnRlcm5hbF9zdHJpbmcnLgoJKiBwcmltYXJ5LmMgKG1hdGNoX2tleXdvcmRfYXJnKTogQWRhcHQgY2hlY2sgdG8gcG9zc2libGUKCWNhc2Ugb2YgTlVMTCBwb2ludGVyLiAgVXNlICdnZmNfZ2V0X3N0cmluZycgaW5zdGVhZCBvZiAnc3RyY3B5Jy4KCSogc3ltYm9sLmMgKGdmY19hZGRfY29tcG9uZW50LCBnZmNfbmV3X3N5bXRyZWUsIGRlbGV0ZV9zeW10cmVlLAoJZ2ZjX2dldF91b3AsIGdmY19uZXdfc3ltYm9sKTogVXNlICdnZmNfZ2V0X3N0cmluZycgaW5zdGVhZCBvZgoJJ3N0cmNweScuCgkoYW1iaWd1b3VzX3N5bWJvbCk6IENoZWNrIGZvciBOVUxMIHBvaW50ZXIgaW5zdGVhZCBvZiBlbXB0eSBzdHJpbmcuCgkoZ2ZjX2ZpbmRfZ3N5bWJvbCwgZ2ZjX2dldF9nc3ltYm9sKTogQWRkICdjb25zdCcgcXVhbGlmaWVyIG9uIHN0cmluZwoJYXJndW1lbnRzLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYXV0b19hcnJheV9hbGxvY2F0aW9uKTogQ2hlY2sgZm9yIE5VTEwKCXBvaW50ZXIgaW5zdGVhZCBvZiBlbXB0eSBzdHJpbmcuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3N5bV9tYW5nbGVkX2lkZW50aWZpZXIsCglnZmNfc3ltX21hbmdsZWRfZnVuY3Rpb25faWQsIGdmY19maW5pc2hfdmFyX2RlY2wsIGdmY19nZXRfc3ltYm9sX2RlY2wsCglnZmNfZ2V0X3N5bWJvbF9kZWNsKTogTGlrZXdpc2UuCgkqIHRyYW5zLWlvLmMgKGdmY19uZXdfbm1sX25hbWVfZXhwcik6IEFkZCAnY29uc3QnIHF1YWxpZmllciB0bwoJYXJndW1lbnQuICBDb3B5IHN0cmluZyBpbnN0ZWFkIG9mIHBvaW50aW5nIHRvIGl0LgoKMjAwNS0wMi0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGludHJpbnNpYy5oLCBzdC5jOiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwNS0wMi0yMCAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogc3ltYm9sLmM6IFR5cG9zIGluIGNvbW1lbnRzLgoKMjAwNS0wMi0yMCAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogZXhwci5jIChnZmNfdHlwZV9jb252ZXJ0X2JpbmFyeSk6IFR5cG8gaW4gY29tbWVudC4KCjIwMDUtMDItMTkgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KICAKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX3NlbGVjdGVkX2ludF9raW5kKTogTmV3IGZ1bmN0aW9uLgoJKiBpbnRyaW5zaWMuaDogUHJvdG90eXBlIGl0LgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9uKTogVXNlIGl0LgoJKiBzaW1wbGlmeSAoZ2ZjX3NpbXBsaWZ5X2NlaWxpbmcsZ2ZjX3NpbXBsaWZ5X2Zsb29yKTogQ2hhbmdlCgkgIEJUX1JFQUwgdG8gQlRfSU5URUdFUiBhbmQgdXNlIGdmY19kZWZhdWx0X2ludGVnZXJfa2luZC4KCjIwMDUtMDItMTkgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KICAKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2ludCk6IGltcHJvdmUgY2hlY2tpbmcgb2Ygb3B0aW9uYWwga2luZAoJKiBzaW1wbGlmeS5jIChnZmNfc2ltcGxpZnlfaW50KTogQ2hhbmdlIEJUX1JFQUwgdG8gQlRfSU5URUdFUgoKMjAwNS0wMi0xOSAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgogIAoJKiBjaGVjay5jIChnZmNfY2hlY2tfYWNoYXIpOiBOZXcgZnVuY3Rpb24KCSogaW50cmluc2ljLmg6IFByb3RvdHlwZSBpdC4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbik6IFVzZSBpdC4KCjIwMDUtMDItMTMgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1zdG10LmMgKGdlbmVyYXRlX2xvb3BfZm9yX3RlbXBfdG9fbGhzLAoJZ2VuZXJhdGVfbG9vcF9mb3JfcmhzX3RvX3RlbXApOiBSZW1vdmUgaWYgd2hvc2UgY29uZGl0aW9uIGlzCglhbHdheXMgdHJ1ZS4KCjIwMDUtMDItMTIgIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBzeW1ib2wuYyAoZ2ZjX3VzZV9oYV9kZXJpdmVkKTogUmVtb3ZlLCBmb2xkIGZ1bmN0aW9uYWxpdHkgaW50byAuLi4KCShnZmNfdXNlX2Rlcml2ZWQpOiAuLi4gdGhpcyBmdW5jdGlvbi4KCjIwMDUtMDItMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IENhbGwKCWJ1aWxkX2NvbW1vbl9idWlsdGluX25vZGVzOyBkbyBub3QgZGVmaW5lIGFueSBmdW5jdGlvbnMgaGFuZGxlZAoJYnkgaXQuCgoyMDA1LTAyLTA4ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZXhwci5jIChnZmNfY29weV9leHByKTogRG9uJ3QgY29weSAnb3AxJyBhbmQgJ29wMicgZm9yCglFWFBSX1NVQlNUUklORy4KCShnZmNfaXNfY29uc3RhbnRfZXhwcik6IENoZWNrICdyZWYnIHRvIGRldGVybWluZSBpZiBzdWJzdHJpbmcKCXJlZmVyZW5jZSBpcyBjb25zdGFudC4KCShnZmNfc2ltcGxpZnlfZXhwcik6IFNpbXBsaWZ5ICdyZWYnIGluc3RlYWQgb2YgJ29wMScgYW5kICdvcDInLgoJKGNoZWNrX2luaXRfZXhwciwgY2hlY2tfcmVzdHJpY3RlZCk6IENoZWNrICdyZWYnIGluc3RlYWQgb2YgJ29wMScKCWFuZCAnb3AyJy4KCSogbW9kdWxlLmMgKG1pb19leHByKTogUmVhZCAvIHdyaXRlICdyZWYnIGluc3RlYWQgb2YgJ29wMScgYW5kICdvcDInLgoKMjAwNS0wMi0wNyAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuLmggKGdmY19hZGRfZGltZW5zaW9uLCBnZmNfYWRkX3Jlc3VsdCwgZ2ZjX2FkZF9zYXZlLAoJZ2ZjX2FkZF9kdW1teSwgZ2ZjX2FkZF9nZW5lcmljLCBnZmNfYWRkX2luX2NvbW1vbiwgZ2ZjX2FkZF9kYXRhLAoJZ2ZjX2FkZF9pbl9uYW1lbGlzdCwgZ2ZjX2FkZF9zZXF1ZW5jZSwgZ2ZjX2FkZF9mdW5jdGlvbiwKCWdmY19hZGRfc3Vicm91dGluZSwgZ2ZjX2FkZF9hY2Nlc3MsIGdmY19hZGRfZmxhdm9yLCBnZmNfYWRkX2VudHJ5LAoJZ2ZjX2FkZF9wcm9jZWR1cmUpOiBBZGQgYXJndW1lbnQuCgkqIGFycmF5LmMgKGdmY19zZXRfYXJyYXlfc3BlYyksIGRlY2wuYyAodmFyX2VsZW1lbnQsIGdldF9wcm9jX25hbWUsCglnZmNfbWF0Y2hfbnVsbCwgbWF0Y2hfdHlwZV9zcGVjLCBtYXRjaF9hdHRyX3NwZWMsCglnZmNfbWF0Y2hfZm9ybWFsX2FyZ2xpc3QsIG1hdGNoX3Jlc3VsdCwgZ2ZjX21hdGNoX2Z1bmN0aW9uX2RlY2wpOgoJVXBkYXRlIGNhbGxlcnMgdG8gbWF0Y2guCgkoZ2ZjX21hdGNoX2VudHJ5KSA6IExpa2V3aXNlLCBmaXggY29tbWVudCB0eXBvLgoJKGdmY19tYXRjaF9zdWJyb3V0aW5lLCBhdHRyX2RlY2wxLCBnZmNfYWRkX2RpbWVuc2lvbiwKCWFjY2Vzc19hdHRyX2RlY2wsIGRvX3Bhcm0sIGdmY19tYXRjaF9zYXZlLCBnZmNfbWF0Y2hfbW9kcHJvYywKCWdmY19tYXRjaF9kZXJpdmVkX2RlY2wpOiBVcGRhdGUgY2FsbGVycy4KCSogaW50ZXJmYWNlLmMgKGdmY19tYXRjaF9pbnRlcmZhY2UpOiBMaWtld2lzZS4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2xhYmVsLCBnZmNfYWRkX2ZsYXZvciwKCWdmY19tYXRjaF9jYWxsLCBnZmNfbWF0Y2hfY29tbW9uLCBnZmNfbWF0Y2hfYmxvY2tfZGF0YSwKCWdmY19tYXRjaF9uYW1lbGlzdCwgZ2ZjX21hdGNoX21vZHVsZSwgZ2ZjX21hdGNoX3N0X2Z1bmN0aW9uKToKCUxpa2V3aXNlLgoJKiBwYXJzZS5jIChwYXJzZV9kZXJpdmVkLCBwYXJzZV9pbnRlcmZhY2UsIHBhcnNlX2NvbnRhaW5lZCksCglwcmltYXJ5LmMgKGdmY19tYXRjaF9ydmFsdWUsIGdmY19tYXRjaF92YXJpYWJsZSk6IExpa2V3aXNlLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfZm9ybWFsX2FyZ2xpc3QsIHJlc29sdmVfZW50cmllcyk6IFVwZGF0ZSBjYWxsZXJzLgoJKiBzeW1ib2wuYyAoY2hlY2tfY29uZmxpY3QsIGNoZWNrX3VzZWQpOiBBZGQgbmV3ICduYW1lJyBhcmd1bWVudCwKCXVzZSB3aGVuIHByaW50aW5nIGVycm9yIG1lc3NhZ2UuCgkoZ2ZjX2FkZF9kaW1lbnNpb24sIGdmY19hZGRfcmVzdWx0LCBnZmNfYWRkX3NhdmUsIGdmY19hZGRfZHVtbXksCglnZmNfYWRkX2dlbmVyaWMsIGdmY19hZGRfaW5fY29tbW9uLCBnZmNfYWRkX2RhdGEsCglnZmNfYWRkX2luX25hbWVsaXN0LCBnZmNfYWRkX3NlcXVlbmNlLCBnZmNfYWRkX2Z1bmN0aW9uLAoJZ2ZjX2FkZF9zdWJyb3V0aW5lLCBnZmNfYWRkX2FjY2VzcywgZ2ZjX2FkZF9mbGF2b3IsIGdmY19hZGRfZW50cnksCglnZmNfYWRkX3Byb2NlZHVyZSk6IEFkZCBuZXcgJ25hbWUnIGFyZ3VtZW50LiAgUGFzcyBhbG9uZyB0bwoJY2hlY2tfY29uZmxpY3QgYW5kIGNoZWNrX3VzZWQuCgkoZ2ZjX2FkZF9hbGxvY2F0YWJsZSwgZ2ZjX2FkZF9leHRlcm5hbCwgZ2ZjX2FkZF9pbnRyaW5zaWMsCglnZmNfYWRkX29wdGlvbmFsLCBnZmNfYWRkX3BvaW50ZXIsIGdmY19hZGRfdGFyZ2V0LCBnZmNfYWRkX2VsZW1lbnRhbCwKCWdmY19hZGRfcHVyZSwgZ2ZjX2FkZF9yZWN1cnNpdmUsIGdmY19hZGRfaW50ZW50LAoJZ2ZjX2FkZF9leHBsaWNpdF9pbnRlcmZhY2UsIGdmY19jb3B5X2F0dHIpOiBQYXNzIE5VTEwgZm9yIG5ldwoJYXJndW1lbnQgaW4gY2FsbHMgdG8gYW55IG9mIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuCgoyMDA1LTAyLTA2ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdmb3J0cmFuLnRleGk6IERvbid0IGdpdmUgbGFzdCB1cGRhdGUgZGF0ZS4KCjIwMDYtMDEtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBaZXJvIGZsYWdfZXJybm9fbWF0aC4KCjIwMDUtMDEtMjkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xODU2NQoJKiBjaGVjay5jIChyZWFsX29yX2NvbXBsZXhfY2hlY2spOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2NoZWNrX2ZuX2MsIGdmY19jaGVja19mbl9yLCBnZmNfY2hlY2tfZm5fcmMpOiBOZXcgZnVuY3Rpb25zLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IFVzZSBuZXcgY2hlY2sgZnVuY3Rpb25zLgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX2ZuX2MsIGdmY19jaGVja19mbl9yLCBnZmNfY2hlY2tfZm5fcmMpOgoJQWRkIHByb3RvdHlwZXMuCgoyMDA1LTAxLTI5ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJUFIgZm9ydHJhbi8xOTU4OQoJKiBleHByLmMgKGdmY19jaGVja19hc3NpZ24pOiAgQ2hlY2sgZm9yIGNvbmZvcm1hbmNlIG9mIGxvZ2ljYWwgb3BlcmFuZHMKCjIwMDQtMDEtMjcgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2xhYmVsX2RlY2wpOiBTZXQgREVDTF9BUlRJRklDQUwgYW5kCglUUkVFX1VTRUQgZm9yIGFsbCBsYWJlbHMuCgkoZ2ZjX3RyYW5zX2VudHJ5X21hc3Rlcl9zd2l0Y2gpOiBVc2UgaXQgaW5zdGVhZCBvZiBidWlsZGluZyBhCglsYWJlbCBieSBoYW5kLgoJKiB0cmFucy1pby5jIChhZGRfY2FzZSk6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19pbnRlZ2VyX3NlbGVjdCk6IExpa2V3aXNlLgoKMjAwNC0wMS0yMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCVN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCglQUiBmb3J0cmFuLzE3OTQxCgkqIGFyaXRoLmMgKGdmY19jb252ZXJ0X3JlYWwpOiBSZW1vdmUgc2lnbiBoYW5kbGluZy4KCSogcHJpbWFyeS5jIChtYXRjaF9kaWdpdHMpOiBBbGxvdyB3aGl0ZXNwYWNlIGFmdGVyIGluaXRpYWwgc2lnbi4KCShtYXRjaF9yZWFsX2NvbnN0KTogSGFuZGxlIHNpZ25zIGhlcmUuICBBbGxvdyB3aGl0ZXNwYWNlIGFmdGVyCglpbml0aWFsIHNpZ24uICBSZW1vdmUgZGVhZCBjb2RlLgoJKG1hdGNoX2NvbnN0X2NvbXBsZXhfcGFydCk6IFJlbW92ZS4KCShtYXRjaF9jb21wbGV4X3BhcnQpOiBVc2UgbWF0Y2hfe3JlYWwsaW50ZWdlcn1fY29uc3QuCgkobWF0Y2hfY29tcGxleF9jb25zdGFudCk6IENyb3NzLXByb21vdGUgaW50ZWdlciB0eXBlcy4KCjIwMDUtMDEtMjMgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCglQUiBmb3J0cmFuLzE5Mjk0CgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX3RyYW5zcG9zZSk6IFJlc29sdmUgdG8gdHJhbnNwb3NlX2M0IG9yCgl0cmFuc3Bvc2VfYzggZm9yIGNvbXBsZXggdHlwZXMuCgoyMDA1LTAxLTIzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZGF0YS5jLCBkZXBlbmRlbmN5LmMsIGY5NS1sYW5nLmMsIGlvLmMsIHRyYW5zLWFycmF5LmMsCgl0cmFucy1kZWNsLmMsIHRyYW5zLWV4cHIuYywgdHJhbnMtaW50cmluc2ljLmMsIHRyYW5zLWlvLmMsCgl0cmFucy1zdG10LmMsIHRyYW5zLXR5cGVzLmMsIHRyYW5zLmg6IEZpeCBjb21tZW50IHR5cG9zLgoJRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNS0wMS0yMiAgQnVkIERhdmlzICA8YmRhdmlzOTY1OUBjb21jYXN0Lm5ldD4KCglQUiBmb3J0cmFuLzE5MzEzCgkqIHRyYW5zLWlvLmMgKGdmY190cmFuc19pbnF1aXJlKTogQWRkZWQgY29kZSB0byBzdXBwb3J0CglwYWQuCgoyMDA1LTAxLTIyICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpbnRyaW5zaWMuYyAobWFrZV9hbGlhcyk6ICBBZGQgc3RhbmRhcmQgYXJndW1lbnQuIAoJKGFkZF9mdW5jdGlvbnMpOiBVcGRhdGUgbWFrZV9hbGlhcyBjYWxscy4KCjIwMDUtMDEtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBSZW1vdmUgYm9ndXMgVE9ETy4KCjIwMDUtMDEtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnZm9ydHJhbi5oIChnZmNfY2hlY2tfYWNjZXNzKTogQWRkIHByb3RvdHlwZS4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX25hbWVsaXN0KTogUmVtb3ZlIFRPRE8uCgkqIG1vZHVsZS5jIChjaGVja19hY2Nlc3MpOiBSZW5hbWUgLi4uCgkoZ2ZjX2NoZWNrX2FjY2Vzcyk6IC4uLiB0byB0aGlzLiAgQm9vbGlmeS4gIFVwZGF0ZSBjYWxsZXJzLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQ2hlY2sgZm9yIHByaXZhdGUgb2JqZWN0cyBpbiBwdWJsaWMKCW5hbWVsaXN0cy4KCjIwMDUtMDEtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwcmltYXJ5LmMgKGdmY19tYXRjaF9ydmFsdWUpOiBPbmx5IGFwcGx5IGltcGxpY2l0IHR5cGUgaWYgdmFyaWFibGUKCWRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXQgdHlwZS4KCShnZmNfbWF0Y2hfdmFyaWFibGUpOiBSZXNvbHZlIGltcGxpY2l0IGRlcml2ZWQgdHlwZXMgaW4gYWxsIGNhc2VzLgoJUmVzb2x2ZSBjb250YWluZWQgZnVuY3Rpb24gdHlwZXMgZnJvbSB0aGVpciBvd24gbmFtZXNwYWNlLCBub3QgdGhlCglwYXJlbnQuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9jb250YWluZWRfZm50eXBlKTogUmVtb3ZlIGR1cGxpY2F0ZSBzeW0tPnJlc3VsdAoJY2hlY2tpbmcuICBSZXNvbHZlIGZyb20gdGhlIGNvbnRhaW5lZCBuYW1lc3BhY2UsIG5vdCB0aGUgcGFyZW50LgoKMjAwNS0wMS0yMiAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE5NTQzCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X2NvbnN0YW50X3RvX3RyZWUpOiBHaXZlIGxvZ2ljYWwKCWNvbnN0YW50cyB0aGUgY29ycmVjdCB0eXBlLgoKCVBSIGZvcnRyYW4vMTkxOTQKCSogdHJhbnMtaW8uYyAoQUREX1NUUklORyk6IFVzZSBnZmNfY2hhcmxlbl90eXBlX25vZGUgZm9yIHN0cmluZwoJbGVuZ3RoIHBhcmFtZXRlcnMuCgkoZ2ZjX2J1aWxkX2lvX2xpYnJhcnlfZm5kZWNscyk6ICdyZWMnIGFuZCAncmVjbF9pbicgYXJlIG5vdAoJcG9pbnRlciBmaWVsZHMuCgoyMDA1LTAxLTE4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYXJpdGguYywgYXJyYXkuYywgY2hlY2suYywgZGVjbC5jLCBleHByLmMsIGY5NS1sYW5nLmMsCglnZm9ydHJhbi5oLCBpbnRlcmZhY2UuYywgaW50cmluc2ljLmMsIGlvLmMsIGlyZXNvbHZlLmMsCgltYXRjaC5jLCBtYXRjaGV4cC5jLCBtaXNjLmMsIG1vZHVsZS5jLCBvcHRpb25zLmMsIHBhcnNlLmMsCglzY2FubmVyLmMsIHNpbXBsaWZ5LmMsIHN5bWJvbC5jLCB0cmFucy1hcnJheS5jLCB0cmFucy1leHByLmMsCgl0cmFucy1pby5jLCB0cmFucy1zdG10LmMsIHRyYW5zLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA1LTAxLTE3ICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IENhbGwgdGFyZ2V0bS5pbml0X2J1aWx0aW5zLgoKMjAwNS0wMS0xNiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE5MTgyCgkqIGVycm9yLmMgKGVycm9yX2NoYXIpOiBMaW5lLWJ1ZmZlciBlcnJvcnMgLyB3YXJuaW5ncy4KCjIwMDUtMDEtMTYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2lzaGZ0KTogRml4IHNpZ25lZCAvCgl1bnNpZ25lZCBpc3N1ZS4gIFVzZSBidWlsZF9pbnRfY3N0IGluc3RlYWQgb2YgY29udmVydGluZwoJaW50ZWdlcl96ZXJvX25vZGUuICBSZW1vdmUgdW5uZWNlc3NhcnkgY29udmVyc2lvbi4KCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuKTogOiBVc2UKCWdmY19jaGFybGVuX3R5cGVfbm9kZSBhcyBiYXNpYyB0eXBlIGZvciB0aGUgcmFuZ2UgZmllbGQuCgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoYnVpbGRfZml4Ym91bmRfZXhwciwKCWdmY19jb252X2ludHJpbnNpY19ib3VuZCwgZ2ZjX2NvbnZfaW50cmluc2ljX2FueWFsbCwKCWdmY19jb252X2ludHJpbnNpY19jb3VudCwgZ2ZjX2NvbnZfaW50cmluc2ljX2J0ZXN0LAoJZ2ZjX2NvbnZfaW50cmluc2ljX3NpbmdsZWJpdG9wKTogVXNlICdidWlsZF9pbnRfY3N0JyBpbnN0ZWFkCglvZiBjb252ZXJ0aW5nICdpbnRlZ2VyX3plcm9fbm9kZScgb3IgJ2ludGVnZXJfb25lX25vZGUnCglyZXNwZWN0aXZlbHkuCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2lzaGZ0Yyk6IFNhbWUsIGJ1dCBzdG9yZSBpbiBsb2NhbCB2YXJpYWJsZSB0bwoJZXZhZGUgcmUtYnVpbGRpbmcuCgkoZ2ZjX2NvbnZfaW50cmluc2ljX3N0cmNtcCwgZ2ZjX2NvbnZfaW50cmluc2ljX3Jyc3BhY2luZywKCWdmY19jb252X2ludHJpbnNpY190cmltLCBnZmNfY29udl9pbnRyaW5zaWNfaWFyZ2MpOiBVc2UKCSdidWlsZF9pbnRfY3N0JyBpbnN0ZWFkIG9mIGNvbnZlcnRpbmcgJ2ludGVnZXJfemVyb19ub2RlJyBvcgoJJ2ludGVnZXJfb25lX25vZGUnIHJlc3BlY3RpdmVseS4KCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaW5kZXgsCglnZmNfY29udl9pbnRyaW5zaWNfc2NhbiwgZ2ZjX2NvbnZfaW50cmluc2ljX3ZlcmlmeSk6IFJlbW92ZQoJJ2dmYyctcHJlZml4IGZyb20gbG9jYWwgdmFyaWFibGUsIHJlbW92ZSBkZWFkIGNvZGUsIHVzZSBjb3JyZWN0Cgl0eXBlIHdoZW4gaW5zZXJ0aW5nIGFyZ3VtZW50LgoKCSogdHJhbnMtaW50cmluc2ljLmMsIHRyYW5zLXR5cGVzLmM6IFVwZGF0ZSBjb3B5cmlnaHQgeWVhcnMuCgoyMDA1LTAxLTE2ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJUFIgMTkxNjgKCSogcmVzb2x2ZS5jIChjaGVja19jYXNlX292ZXJsYXApOiBUeXBvIGluIGNvbW1lbnQuCgkodmFsaWRhdGVfY2FzZV9sYWJlbF9leHByKTogIEZpeCB1cCBraW5kcyBvZiBjYXNlIHZhbHVlcwoJKHJlc29sdmVfc2VsZWN0KTogUHJvcGVybHkgaGFuZGxlIGtpbmQgbWlzbWF0Y2hlcy4KCjIwMDQtMDEtMTYgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNzY3NQoJKiB0cmFucy1jb21tb24uYyAodHJhbnNsYXRlX2NvbW1vbik6IFJlbW92ZSBkdXBsaWNhdGUgZnVuY3Rpb24gY2FsbC4KCShmaW5pc2hfZXF1aXZhbGVuY2VzKTogUHJlc2VydmUgYWxpZ25tZW50IHdoZW4gYmlhc2luZyBvZmZzZXRzLgoKMjAwNS0wMS0xNSAgVG9iaWFzIFNjaGwidXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZQoKCSogcHJpbWFyeS5jIChjaGVja19kaWdpdCk6IENhbGwgJ0lTWERJR0lUJyBpbnN0ZWFkIG9mIGFzc3VtaW5nCglBU0NJSS1saWtlIGNoYXJhY3RlciBlbmNvZGluZy4KCjIwMDUtMDEtMTQgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIHJlc29sdmUuYyAoY29tcGFyZV9jYXNlKTogQ2xlYW51cC4KCjIwMDUtMDEtMTQgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIHJlc29sdmUuYyAoY29tcGFyZV9jYXNlKTogR2l2ZSBhcmd1bWVudHMgY29ycmVjdCB0eXBlLgoKMjAwNS0wMS0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGlyZXNvbHZlLmMsIHRyYW5zLWNvbW1vbi5jLCB0cmFucy10eXBlcy5jOiBGaXggY29tbWVudAoJdHlwb3MuCgoyMDA1LTAxLTA5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTc2NzUKCSogdHJhbnMtY29tbW9uLmMgKGN1cnJlbnRfY29tbW9uLCBjdXJyZW50X29mZnNldCk6IFJlbW92ZS4KCShjcmVhdGVfY29tbW9uKTogQWRkIGhlYWQgYXJndW1lbnQuCgkoYWxpZ25fc2VnbWVudCk6IE5ldyBmdW5jdGlvbi4KCShhcHBseV9zZWdtZW50X29mZnNldCk6IE5ldyBmdW5jdGlvbi4KCSh0cmFuc2xhdGVfY29tbW9uKTogTWVyZ2UgY29kZSBmcm9tIG5ld19zZWdtZW50LiAgSGFuZGxlIGFsaWdubWVudC4KCShuZXdfc2VnbWVudCk6IFJlbW92ZS4KCShmaW5pc2hfZXF1aXZhbGVuY2VzKTogRW5zdXJlIHByb3BlciBhbGlnbm1lbnQuCgoyMDA1LTAxLTA4ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtY29uc3QuYzogRG9uJ3QgaW5jbHVkZSB1bnVzZWQgbWF0aC5oLgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19nZXRfaW50cmluc2ljX2xpYl9mbmRlY2wsCglnZmNfY29udl9pbnRyaW5zaWNfYm91bmQsIGdmY19jb252X2ludHJpbnNpY19taW5tYXhsb2MsCglnZmNfY29udl9pbnRyaW5zaWNfaXNoZnQsIGdmY19jb252X2ludHJpbnNpY19sZW4pOiBSZW1vdmUKCXRyYWlsaW5nIHdoaXRlc3BhY2UuCgkocHJlcGFyZV9hcmdfaW5mbyk6IEZpeCBmb3JtYXR0aW5nLCBpbmRlbnRpbmcgYW5kIHJlbW92ZSB0cmFpbGluZwoJd2hpdGVzcGFjZS4KCShnZmNfY29udl9pbnRyaW5zaWNfc3BhY2luZywgZ2ZjX2NvbnZfaW50cmluc2ljX3RyaW0pOiBSZW1vdmUKCXRyYWlsaW5nIHdoaXRlc3BhY2UuCgoJKiBhcml0aC5jIChhcmN0YW5nZW50MiwgZ2ZjX2FyaXRoX2luaXRfMSwgZ2ZjX2FyaXRoX2RvbmVfMSwKCWdmY19jb25zdGFudF9yZXN1bHQsIGdmY19yYW5nZV9jaGVjaywgZ2ZjX2FyaXRoX3Bvd2VyLAoJZXZhbF90eXBlX2ludHJpbnNpYzAsIGV2YWxfaW50cmluc2ljX2YyLCBnZmNfcmVhbDJyZWFsLAoJZ2ZjX3JlYWwyY29tcGxleCwgZ2ZjX2NvbXBsZXgyaW50LCBnZmNfY29tcGxleDJyZWFsLAoJZ2ZjX2NvbXBsZXgyY29tcGxleCk6IEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCSogY2hlY2suYyAobXVzdF9iZSwgdHlwZV9jaGVjaywgbnVtZXJpY19jaGVjaywgaW50X29yX3JlYWxfY2hlY2ssCglsb2dpY2FsX2FycmF5X2NoZWNrLCBhcnJheV9jaGVjaywgc2NhbGFyX2NoZWNrLCBub25vcHRpb25hbF9jaGVjaywKCXZhcmlhYmxlX2NoZWNrLCBkaW1fY2hlY2ssIGNoZWNrX2Ffa2luZCwgZ2ZjX2NoZWNrX2FfaWtpbmQsCglnZmNfY2hlY2tfYV94a2luZCwgZ2ZjX2NoZWNrX2FicywgZ2ZjX2NoZWNrX2FsbF9hbnksCglnZmNfY2hlY2tfYWxsb2NhdGVkLCBnZmNfY2hlY2tfYV9wLCBnZmNfY2hlY2tfYmVzbiwKCWdmY19jaGVja19idGVzdCwgZ2ZjX2NoZWNrX2NoYXIsIGdmY19jaGVja19jbXBseCwgZ2ZjX2NoZWNrX2NvdW50LAoJZ2ZjX2NoZWNrX2NzaGlmdCwgZ2ZjX2NoZWNrX2RjbXBseCwgZ2ZjX2NoZWNrX2RibGUsCglnZmNfY2hlY2tfZGlnaXRzLCBnZmNfY2hlY2tfZG90X3Byb2R1Y3QsIGdmY19jaGVja19lb3NoaWZ0LAoJZ2ZjX2NoZWNrX2ZudW0sIGdmY19jaGVja19nNzdfbWF0aDEsIGdmY19jaGVja19odWdlLCBnZmNfY2hlY2tfaSwKCWdmY19jaGVja19pYW5kLCBnZmNfY2hlY2tfaWJjbHIsIGdmY19jaGVja19pYml0cywgZ2ZjX2NoZWNrX2lic2V0LAoJZ2ZjX2NoZWNrX2lkbmludCwgZ2ZjX2NoZWNrX2llb3IsIGdmY19jaGVja19pbmRleCwgZ2ZjX2NoZWNrX2ludCwKCWdmY19jaGVja19pb3IsIGdmY19jaGVja19pc2hmdCwgZ2ZjX2NoZWNrX2lzaGZ0YywgZ2ZjX2NoZWNrX2tpbmQsCglnZmNfY2hlY2tfbGJvdW5kLCBnZmNfY2hlY2tfbG9naWNhbCwgbWluX21heF9hcmdzLAoJZ2ZjX2NoZWNrX21pbl9tYXhfaW50ZWdlciwgZ2ZjX2NoZWNrX21pbl9tYXhfcmVhbCwKCWdmY19jaGVja19taW5fbWF4X2RvdWJsZSwgZ2ZjX2NoZWNrX21hdG11bCwKCWdmY19jaGVja19taW52YWxfbWF4dmFsLCBnZmNfY2hlY2tfbWVyZ2UsIGdmY19jaGVja19uZWFyZXN0LAoJZ2ZjX2NoZWNrX3BhY2ssIGdmY19jaGVja19wcmVjaXNpb24sIGdmY19jaGVja19yYWRpeCwKCWdmY19jaGVja19yYW5nZSwgZ2ZjX2NoZWNrX3JlYWwsIGdmY19jaGVja19yZXBlYXQsCglnZmNfY2hlY2tfc2NhbGUsIGdmY19jaGVja19zY2FuLCBnZmNfY2hlY2tfc2VsZWN0ZWRfcmVhbF9raW5kLAoJZ2ZjX2NoZWNrX3NldF9leHBvbmVudCk6IEZpeCBmb3JtYXR0aW5nIGlzc3Vlcy4KCShnZmNfY2hlY2tfc2l6ZSwgZ2ZjX2NoZWNrX3NpZ24pOiBBbHBoYWJldGl6ZSBmdW5jdGlvbiBvcmRlciwKCXJlbW92ZSB3aGl0ZXNwYWNlLW9ubHkgbGluZS4KCShnZmNfY2hlY2tfZnN0YXQsIGdmY19jaGVja19mc3RhdF9zdWIsIGdmY19jaGVja19zdGF0LAoJZ2ZjX2NoZWNrX3N0YXRfc3ViLCBnZmNfY2hlY2tfdHJhbnNmZXIsIGdmY19jaGVja190cmFuc3Bvc2UsCglnZmNfY2hlY2tfdWJvdW5kLCBnZmNfY2hlY2tfdW5wYWNrLCBnZmNfY2hlY2tfdmVyaWZ5LCBnZmNfY2hlY2tfeCwKCWdmY19jaGVja19jcHVfdGltZSwgZ2ZjX2NoZWNrX2RhdGVfYW5kX3RpbWUsIGdmY19jaGVja19tdmJpdHMsCglnZmNfY2hlY2tfcmFuZG9tX251bWJlciwgZ2ZjX2NoZWNrX3JhbmRvbV9zZWVkLAoJZ2ZjX2NoZWNrX3NlY29uZF9zdWIsIGdmY19jaGVja19zeXN0ZW1fY2xvY2ssCglnZmNfY2hlY2tfZ2V0Y3dkX3N1YiwgZ2ZjX2NoZWNrX2V4aXQsIGdmY19jaGVja19mbHVzaCwKCWdmY19jaGVja191bWFzaywgZ2ZjX2NoZWNrX3VtYXNrX3N1YiwgZ2ZjX2NoZWNrX3VubGluaywKCWdmY19jaGVja191bmxpbmtfc3ViKTogRml4IGZvcm1hdHRpbmcgaXNzdWVzLgoJCjIwMDUtMDEtMDggIFRvYmlhcyBTY2hsInV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBnZm9ydHJhbi5oOiBSZW1vdmUgb3V0ZGF0ZWQgY29tbWVudC4gIERvbid0IGluY2x1ZGUgc3RkaW8uaAoJZXhwbGljaXRseS4KCjIwMDUtMDEtMDYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBnZm9ydHJhbnNwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBDaGFuZ2UgeWVhciB0byAyMDA1IGluCglvdXRwdXQgb2YgJ2dmb3J0cmFuIC0tdmVyc2lvbicuCgoyMDA1LTAxLTAzICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jOiBBZGQgc3lzdGVtLmg7IHJlbW92ZSBzdHJpbmcuaAoJKiBkZWNsLmM6IERpdHRvCgkqIG1hdGNoZXhwLmM6IERpdHRvCgkqIHBhcnNlLmM6IERpdHRvCgkqIHJlc29sdmUuYzogRGl0dG8KCSogc3QuYzogRGl0dG8KCSogY2hlY2suYzogUmVtb3ZlIHN0ZGxpYi5oIGFuZCBzdGRhcmcuaAoJKiBlcnJvci5jOiBSZW1vdmUgc3RkbGliLmgsIHN0ZGFyZy5oLCBzdGRpby5oLCBzdHJpbmcuaAoJKiBleHByLmM6IEFkZCBzeXN0ZW0uaDsgcmVtb3ZlIHN0ZGFyZy5oLCBzdGRpby5oLCBhbmQgc3RyaW5nLmgKCSogZjk1LWxhbmcuYzogQWRkIHN5c3RlbS5oOyByZW1vdmUgc3RkaW8uaAoJKiBpbnRlcmZhY2UuYzogQWRkIHN5c3RlbS5oOyByZW1vdmUgc3RkbGliLmggYW5kIHN0cmluZy5oCgkqIGludHJpbnNpYy5jOiBSZW1vdmUgc3RkYXJnLmgsIHN0ZGlvLmgsIGFuZCBzdHJpbmcuaAoJKiBpby5jOiBSZW1vdmUgc3RyaW5nLmgKCSogc2ltcGxpZnkuYzogRGl0dG8KCSogbWF0Y2guYzogUmVtb3ZlIHN0ZGFyZy5oIGFuZCBzdHJpbmcuaAoJKiBtaXNjLmM6IFVwZGF0ZSBjb3B5cmlnaHQ7IGFkZCBzeXN0ZW0uaDsgcmVtb3ZlIHN0ZGxpYi5oLAoJc3RyaW5nLmgsIGFuZCBzeXMvc3RhdC5oCgkqIG1vZHVsZS5jOiBBZGQgc3lzdGVtLmg7IHJlbW92ZSBzdHJpbmcuaCwgc3RkaW8uaCwgZXJybm8uaCwKCXVuaXN0ZC5oLCBhbmQgdGltZS5oCgkqIG9wdGlvbi5jOiBSZW1vdmUgc3RyaW5nLmggYW5kIHN0ZGxpYi5oCgkqIHByaW1hcnkuYzogRGl0dG8KCSogc2Nhbm5lci5jOiBVcGRhdGUgY29weXJpZ2h0OyBhZGQgc3lzdGVtLmg7IHJlbW92ZSBzdGRsaWIuaCwKCXN0ZGlvLmgsIHN0cmluZy5oLCBhbmQgc3RyaW5ncy5oCgkqIHN5bWJvbC5jOiBBZGQgc3lzdGVtLmg7IHJlbW92ZSBzdGRsaWIuaCwgc3RkaW8uaCwgYW5kIHN0cmluZy5oCgkqIHRyYW5zLWFycmF5LmM6IFJlbW92ZSBzdGRpby5oIGFuZCBnbXAuaAoJKiB0cmFucy1jb25zdC5jOiBEaXR0bwoJKiB0cmFucy1leHByLmM6IERpdHRvCgkqIHRyYW5zLWlvLmM6IERpdHRvCgkqIHRyYW5zLXN0bXQuYzogRGl0dG8KCSogdHJhbnMuYzogRGl0dG8KCSogdHJhbnMtaW50cmluc2ljLmM6IFJlbW92ZSBzdGRpby5oIGFuZCBzdHJpbmcuaAoKMjAwNC0xMi0yOSAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2Nhc2UpOiBmaXggdHlwbyBpbiBjb21tZW50LgoKMjAwNC0xMi0yNyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4gCgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2lzaGZ0KTogQ2hhbmdlIHRvCglsb2dpY2FsCXNoaWZ0LiAgQ2FsbCBmb2xkLiAgUmVtb3ZlIDAtYml0IHNoaWZ0IHNob3J0Y3V0LgoJKGdmY19jb252X2ludHJpbnNpY19pc2hmdGMpOiBDb252ZXJ0IGZpcnN0IGFyZ3VtZW50IHRvIGF0IGxlYXN0Cgk0IGJ5dGVzIGJpdHMuICBDb252ZXJ0IDJuZCBhbmQgM3JkIGFyZ3VtZW50IHRvIDQgYnl0ZXMuICBDb252ZXJ0CglyZXN1bHQgaWYgd2lkdGgoYXJnIDEpIDwgNCBieXRlcy4gIENhbGwgZm9sZC4KCglQUiBmb3J0cmFuLzE5MDMyCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfbW9kKTogVXBkYXRlIGNvbW1lbnQKCWluIGZyb250IG9mIGZ1bmN0aW9uIHRvIG1hdGNoIHRoZSBzdGFuZGFyZC4gIENvcnJlY3QgaGFuZGxpbmcKCW9mIE1PRFVMTy4KCjIwMDQtMTItMjcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9jc3RfaW50X3Bvd2VyKTogT25seSBjaGVjayBmb3IKCWZsYWdfdW5zYWZlX21hdGhfb3B0aW1pemF0aW9ucyBpZiB3ZSBoYXZlIGEgZmxvYXQgdHlwZS4KCjIwMDQtMTItMjMgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGdmb3J0cmFuLnRleGk6IEZpeCB0eXBvLgoKMjAwNC0xMi0xNiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWludHJpbnNpYy5jIChidWlsZF9maXhib3VuZF9leHByKTogQ2xhcmlmeSBjb21tZW50LCBmaXgKCWNvbW1lbnQgdHlwby4KCjIwMDQtMTItMTUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xODk5MwoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfaWYpOiBEb24ndCBleHBsaWNpdGx5IHNraXAgb3B0aW9uYWwgd2hpdGVzcGFjZS4KCShnZmNfbWF0Y2hfbnVsbGlmeSk6IE1ha2Ugc3VyZSB0aGF0ICcpJyBpcyBpbiBmcm9udCBvZiB0aGUgZW5kIG9mCglzdGF0ZW1lbnQuCgoJKiBzY2FubmVyLmMgKHNraXBfZml4ZWRfY29tbWVudHMpOiBGaXggdHlwbyBpbiBjb21tZW50IHByZWNlZGluZwoJZnVuY3Rpb24uCgoyMDA0LTEyLTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2V4cHIuZnVuY3Rpb24ubmFtZSk6IE1ha2UgY29uc3QuCgkoZ2ZjX2lyZXNvbHZlX2luaXRfMSwgZ2ZjX2lyZXNvbHZlX2RvbmVfMSk6IFJlbW92ZS4KCShnZmNfZ2V0X3N0cmluZyk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIGlyZXNvbHZlLmM6IEluY2x1ZGUgdHJlZS5oLgoJKHN0cmluZ19ub2RlLCBIQVNIX1NJWkUsIHN0cmluZ19oZWFkLCBoYXNoKTogUmVtb3ZlLgoJKGdmY19nZXRfc3RyaW5nKTogVXNlIHZzbnByaW50ZiwgZ2V0X2lkZW50aWZpZXIuCgkoZnJlZV9zdHJpbmdzLCBnZmNfaXJlc29sdmVfaW5pdF8xLCBnZmNfaXJlc29sdmVfZG9uZV8xKTogUmVtb3ZlLgoJKiBtaXNjLmMgKGdmY19pbml0XzEpOiBEb24ndCBjYWxsIGdmY19pcmVzb2x2ZV9pbml0XzEuCgkoZ2ZjX2RvbmVfMSk6IERvbid0IGNhbGwgZ2ZjX2lyZXNvbHZlX2RvbmVfMS4KCSogbW9kdWxlLmMgKG1pb19hbGxvY2F0ZWRfc3RyaW5nKTogVGFrZSBhbmQgcmV0dXJuIGNvbnN0IGNoYXIgKiwKCWluc3RlYWQgb2YgbW9kaWZ5aW5nIGNoYXIqKi4KCShtaW9fZXhwcik6IFVwZGF0ZSB0byBtYXRjaC4KCSogcmVzb2x2ZS5jIChwdXJlX2Z1bmN0aW9uKTogQ29uc3RpZnkgbmFtZSBhcmd1bWVudC4KCShyZXNvbHZlX2Z1bmN0aW9uKTogQ29uc3RpZnkgbmFtZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IExpa2V3aXNlLgoKMjAwNC0xMi0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2FsbCwgZ2ZjX3Jlc29sdmVfYW55LCBnZmNfcmVzb2x2ZV9jb3VudCwKCWdmY19yZXNvbHZlX2NzaGlmdCwgZ2ZjX3Jlc29sdmVfZG90X3Byb2R1Y3QsIGdmY19yZXNvbHZlX2Vvc2hpZnQsCglnZmNfcmVzb2x2ZV9tYXRtdWwsIGdmY19yZXNvbHZlX21heGxvYywgZ2ZjX3Jlc29sdmVfbWF4dmFsLAoJZ2ZjX3Jlc29sdmVfbWlubG9jLCBnZmNfcmVzb2x2ZV9taW52YWwsIGdmY19yZXNvbHZlX3BhY2ssCglnZmNfcmVzb2x2ZV9wcm9kdWN0LCBnZmNfcmVzb2x2ZV9yZXNoYXBlLCBnZmNfcmVzb2x2ZV9zaGFwZSwKCWdmY19yZXNvbHZlX3NwcmVhZCwgZ2ZjX3Jlc29sdmVfc3VtLCBnZmNfcmVzb2x2ZV90cmFuc3Bvc2UsCglnZmNfcmVzb2x2ZV91bnBhY2s6IFVzZSBQUkVGSVguCgoyMDA0LTEyLTEyICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTg4NjkKCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2NvbW1vbik6IFNraXAgd2hpdGVzcGFjZS4KCjIwMDQtMTItMTIgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCglQUiBmb3J0cmFuLzE2NTgxCgkqIGNoZWNrLmMgKGdmY19jaGVja19pYW5kLCBnZmNfY2hlY2tfaWJjbHIsIGdmY19jaGVja19pYml0cywKCWdmY19jaGVja19pYnNldCwgZ2ZjX2NoZWNrX2llb3IsIGdmY19jaGVja19pb3IpOiBSZW1vdmUgZGVmYXVsdAoJaW50ZWdlciBraW5kIGNoZWNrOyBJc3N1ZSBlcnJvciBmb3IgLXN0ZD1mOTUgd2hlbiBuZWVkZWQuCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogQ2hhbmdlIGllb3IgZnJvbSBHRkNfU1REX0dOVSB0bwoJR0ZDX1NURF9GOTUuCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2lhbmQsIGdmY19yZXNvbHZlX2llb3IsIGdmY19yZXNvbHZlX2lvcik6CglQcm9tb3RlIGFyZ3VtZW50cyB0byBzYW1lIGtpbmQuCgoyMDA0LTEyLTEyICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTYyMjIKCSogcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9pdGVyYXRvcl9leHByKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19yZXNvbHZlX2l0ZXJhdG9yKTogVXNlIGl0LiAgQWRkIHJlYWxfb2sgYXJndW1lbnQuICBDb252ZXJ0CglzdGFydCwgZW5kIGFuZCBzdHJpZGUgdG8gY29ycmVjdCB0eXBlLgoJKHJlc29sdmVfY29kZSk6IFBhc3MgZXh0cmEgYXJndW1lbnQuCgkqIGFycmF5LmMgKHJlc29sdmVfYXJyYXlfbGlzdCk6IFBhc3MgZXh0cmEgYXJndW1lbnQuCgkqIGdmb3J0cmFuLmggKGdmY19yZXNvbHZlKTogQWRkIHByb3RvdHlwZS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfZG8pOiBSZW1vdmUgcmVkdW5kYW50IHR5cGUgY29udmVyc2lvbnMuCglIYW5kbGUgcmVhbCB0eXBlIGl0ZXJhdG9ycy4KCjIwMDQtMTItMTEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNzE3NQoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9zY2FsZSk6IENvbnZlcnQgJ0knIGFyZ3VtZW50IGlmIG5vdCBvZgoJc2FtZSBraW5kIGFzIEMncyAnaW50Jy4KCShnZmNfcmVzb2x2ZV9zZXRfZXhwb25lbnQpOiBDb252ZXJ0ICdJJyBhcmd1bWVudCBpZiBub3Qgb2Yga2luZCA0LgoKMjAwNC0xMi0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGludHJpbnNpYy5jIChnZmNfY29udmVydF90eXBlX3dhcm4pOiBQcm9wYWdhdGUgdGhlIGlucHV0IHNoYXBlCgl0byB0aGUgb3V0cHV0IGV4cHJlc3Npb24uCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2NzaGlmdCwgZ2ZjX3Jlc29sdmVfZW9zaGlmdCk6IFN1cHByZXNzCgl3YXJuaW5nIGNvbnZlcnNpb24uCgkoZ2ZjX3Jlc29sdmVfcmVzaGFwZSk6IEZvcmNlIGNvbnZlcnQgU0hBUEUgYW5kIE9SREVSIHBhcmFtZXRlcnMKCXRvIGluZGV4IGtpbmQuCgoyMDA0LTEyLTA4ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTg4MjYKCSogcmVzb2x2ZS5jIChyZXNvbHZlX2NvZGUpOiBJbXBvc2UgY29ycmVjdCByZXN0cmljdGlvbnMgb24KCWFzc2lnbmVkIHZhcmlhYmxlLgoKCSogZGVjbC5jIChnZmNfbWF0Y2hfZW5kKTogVXNlIGxvY3VzIG9mIEVORCB3aGVuIGVvcyBpcyBhbiBlcnJvci4KCjIwMDQtMTItMDIgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCVBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjaGVjay5jIChnZmNfY2hlY2tfZmx1c2gsIGdmY19jaGVja19mbnVtKTogTmV3IGZ1bmN0aW9ucy4KCShnZmNfY2hlY2tfZnN0YXQsIGdmY19jaGVja19mc3RhdF9zdWIpOiBOZXcgZnVuY3Rpb25zLgoJKGdmY19jaGVja19zdGF0LCBnZmNfY2hlY2tfc3RhdF9zdWIpOiBOZXcgZnVuY3Rpb25zLgoJKiBnZm9ydHJhbi5oIChHRkNfSVNZTV9GTlVNLEdGQ19JU1lNX0ZTVEFULEdGQ19JU1lNX1NUQVQpOiBOZXcgc3ltYm9scwoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyxhZGRfc3Vicm91dGluZXMpOiBBZGQgZmx1c2gsIGZudW0sCglmc3RhdCwgYW5kIHN0YXQgdG8gaW50cmluc2ljcyBzeW1ib2wgdGFibGVzLgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX2ZsdXNoLCBnZmNfcmVzb2x2ZV9zdGF0X3N1Yik6IEFkZCBwcm90b3R5cGVzLgoJKGdmY19yZXNvbHZlX2ZzdGF0X3N1YiwgZ2ZjX3Jlc29sdmVfc3RhdCk6IERpdHRvLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9mbnVtLCBnZmNfcmVzb2x2ZV9mc3RhdCk6IE5ldyBmdW5jdGlvbnMuCgkoZ2ZjX3Jlc29sdmVfc3RhdCwgZ2ZjX3Jlc29sdmVfZmx1c2gpOiBOZXcgZnVuY3Rpb25zLgoJKGdmY19yZXNvbHZlX3N0YXRfc3ViLGdmY19yZXNvbHZlX2ZzdGF0X3N1Yik6IE5ldyBmdW5jdGlvbnMKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IEFkZCBuZXcgaW50cmluc2ljcy4KCjIwMDQtMTItMDIgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGludHJpbnNpYy5jOiBGaXggYW5kIGFkZCBjb21tZW50cywgZml4IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwoJKE9QVElPTkFMLFJFUVVJUkVEKTogTmV3IHN5bWJvbHMKCShhZGRfZnVuY3Rpb25zLGFkZF9zdWJyb3V0aW5lcyk6IFVzZSBzeW1ib2xzCgkoZ21wLmgpOiBSZW1vdmUgdW51c2VkIGluY2x1ZGUKCjIwMDQtMTEtMjUgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogZjk1LWxhbmcuYywgZ2ZvcnRyYW5zcGVjLmMsIHRyYW5zLWRlY2wuYzogQXZvaWQgYCBhcyBsZWZ0IHF1b3RlCglpbiBkaWFnbm9zdGljcy4KCjIwMDQtMTEtMjQgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIG9wdGlvbnMuYyAoZ2ZjX3Bvc3Rfb3B0aW9ucyk6IERvbid0IGNsZWFyIGZsYWdfaW5saW5lX2Z1bmN0aW9ucy4KCjIwMDQtMTEtMjAgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19nZXRjd2Rfc3ViKTogRml4IHNlZyBmYXVsdC4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19leGl0LGdmY19jaGVja191bWFzayxnZmNfY2hlY2tfdW1hc2tfc3ViLAoJZ2ZjX2NoZWNrX3VubGluayxnZmNfY2hlY2tfdW5saW5rX3N1Yik6IE5ldyBmdW5jdGlvbnMKCSogZ2ZvcnRyYW4uaCAoR0ZDX0lTWU1fVU1BU0ssR0ZDX0lTWU1fVU5MSU5LKTogTmV3IHN5bWJvbHMKCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMsYWRkX3N1YnJvdXRpbmVzKTogQWRkIHVtYXNrLCB1bmxpbmssCglleGl0IHRvIGludHJpbnNpY3Mgc3ltYm9sIHRhYmxlcy4KCSogaW50cmluc2ljLmggKGdmY19jaGVja191bWFzayxnZmNfY2hlY2tfdW5saW5rLGdmY19jaGVja19leGl0LAoJZ2ZjX2NoZWNrX3VtYXNrX3N1YixnZmNfY2hlY2tfdW5saW5rX3N1YixnZmNfcmVzb2x2ZV91bWFzaywKCWdmY19yZXNvbHZlX3VubGluayxnZmNfcmVzb2x2ZV9leGl0LGdmY19yZXNvbHZlX3VtYXNrX3N1YiwKCWdmY19yZXNvbHZlX3VubGlua19zdWIpOiBBZGQgYW5kIHNvcnQgcHJvdG90eXBlcy4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfdW1hc2ssZ2ZjX3Jlc29sdmVfdW5saW5rLGdmY19yZXNvbHZlX2V4aXQsCglnZmNfcmVzb2x2ZV91bWFza19zdWIsZ2ZjX3Jlc29sdmVfdW5saW5rX3N1Yik6IE5ldyBmdW5jdGlvbnMKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVzZSBzeW1ib2xzCgoyMDA0LTExLTE2ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTMwMTAKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXkpOiBVc2UgZ2ZjX2dldF9kdHlwZS4KCShnZmNfYXJyYXlfaW5pdF9zaXplLCBnZmNfY29udl9leHByX2Rlc2NyaXB0b3IpOiBEaXR0by4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9kdHlwZSk6IEFjY2VwdCBhcnJheSB0eXBlIHJhdGhlciB0aGFuIGVsZW1lbnQKCXR5cGUuCgkoZ2ZjX2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IERvbid0IHNldCBHRkNfVFlQRV9BUlJBWV9EVFlQRS4KCShnZmNfZ2V0X2FycmF5X3R5cGVfYm91bmRzKTogRGl0dG8uCgkoZ2ZjX2dldF9kZXJpdmVkX3R5cGUpOiBSZWN1cnNlIGludG8gZGVyaXZlZCB0eXBlIHBvaW50ZXJzLgoJKiB0cmFucy10eXBlcy5oIChnZmNfZ2V0X2R0eXBlKTogQWRkIHByb3RvdHlwZS4KCSogdHJhbnMuaCAoR0ZDX1RZUEVfQVJSQVlfRFRZUEUpOiBBZGQgY29tbWVudC4KCjIwMDQtMTEtMTUgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2R0eXBlKTogUmVtb3ZlIG9ic29sZXRlIFRPRE8uCgoyMDA0LTExLTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTgzNzUKCSogdHJhbnMtZXhwci5jIChnZmNfdHJhbnNfc3ViYXJyYXlfYXNzaWduKTogRnJlZSBzaGFwZSBiZWZvcmUgc3MuCgkqIHRyYW5zLWlvLmMgKHRyYW5zZmVyX2FycmF5X2NvbXBvbmVudCk6IERpdHRvLgoKMjAwNC0xMS0xMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGludm9rZS50ZXhpOiBGaXggdHlwby4KCjIwMDQtMTEtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBhcml0aC5jLCBhcnJheS5jLCBkZWNsLmMsIGV4cHIuYywgZjk1LWxhbmcuYywgZ2ZvcnRyYW4uaCwKCWdmb3J0cmFuc3BlYy5jLCBpbnRlcmZhY2UuYywgaW50cmluc2ljLmMsIGlyZXNvbHZlLmMsIG1hdGNoLmMsCgltb2R1bGUuYywgcGFyc2UuYywgcGFyc2UuaCwgcHJpbWFyeS5jLCByZXNvbHZlLmMsIHNjYW5uZXIuYywKCXRyYW5zLWFycmF5LmMsIHRyYW5zLWFycmF5LmgsIHRyYW5zLWV4cHIuYywgdHJhbnMtaW50cmluc2ljLmMsCgl0cmFucy1pby5jLCB0cmFucy1zdG10LmMsIHRyYW5zLmg6IEZpeCBjb21tZW50IGZvcm1hdHRpbmcuCgoyMDA0LTExLTA2ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTgwMjMKCSogaW8uYyAocmVzb2x2ZV90YWcpOiBUaWdodGVuIHVwIGV4Y2VwdGlvbiBmb3IgYXNzaWduZWQgRk9STUFULgoKMjAwNC0xMS0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGdmb3J0cmFuc3BlYy5jOiBSZXBsYWNlIEdOVSBDQyB3aXRoIEdDQy4KCjIwMDQtMTEtMDUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBnZm9ydHJhbnNwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBDaGFuZ2UgeWVhciB0byAyMDA0LgoKMjAwNC0xMS0wNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE4MTExCgkqICB0cmFucy1kZWNsLmMgKGNyZWF0ZV9mdW5jdGlvbl9hcmdsaXN0KTogU2V0IERFQ0xfQVJUSUZJQ0lBTCBmb3IKCWhpZGRlbiBwYXJhbWV0ZXJzLgoKMjAwNC0xMS0wNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1MTY0CgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2ZpbmlzaF92YXJfZGVjbCk6IERvbid0IGRlY2xhcmUgYXJndW1lbnRzIHRvCgltb2R1bGUgcHJvY2VkdXJlcyBhcyBpZiB0aGV5IHdlcmUgbW9kdWxlIHZhcmlhYmxlcy4KCjIwMDQtMTEtMDMgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNzUzNQoJUFIgZm9ydHJhbi8xNzU4MwoJUFIgZm9ydHJhbi8xNzcxMwoJKiBtb2R1bGUuYyAod3JpdGVfc3ltYm9sMSk6IFNldCBtb2R1bGVfbmFtZSBmb3IgZHVtbXkgYXJndW1lbnRzLgoKMjAwNC0xMS0wMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGludHJpbnNpYy5jIChjaGVja19pbnRyaW5zaWNfc3RhbmRhcmQpOiBJbmNsdWRlIGVycm9yIGxvY3VzLgoJUmVtb3ZlIFZMQS4KCShnZmNfaW50cmluc2ljX2Z1bmNfaW50ZXJmYWNlLCBnZmNfaW50cmluc2ljX3N1Yl9pbnRlcmZhY2UpOiBQYXNzCglsb2N1cyB0byBjaGVja19pbnRyaW5zaWNfc3RhbmRhcmQuCgoyMDA0LTEwLTMxICBKYW5uZSBCbG9tcXZpc3QgIDxqYmxvbXF2aUBjYy5odXQuZmk+CgoJUFIgZm9ydHJhbi8xNzU5MAoJKiBnZm9ydHJhbi5oOiBDaGFuZ2UgR0ZDX1NURF8qIGZsYWdzIHRvIG1vcmUgYXBwcm9wcmlhdGUKCW9uZXMuIChzdHJ1Y3QgZ2ZjX2ludHJpbnNpY19pc3ltKTogQWRkIGZpZWxkIGZvciBzdGFuZGFyZC4gKHN0cnVjdAoJZ2ZjX29wdGlvbl90KTogQWRkIGZpZWxkIGZvciB3YXJuaW5nIGFib3V0IHVzZSBvZiBub25zdGFuZGFyZAoJaW50cmluc2ljcy4KCSogaW50cmluc2ljLmMgKGFkZF9zeW0pOiBBZGQgcGFyYW1ldGVyIGZvciBzdGFuZGFyZCB2ZXJzaW9uLCBjaGVjawoJdGhpcyBhZ2FpbnN0IGN1cnJlbnQgc3RhbmRhcmQuCgkoYWRkX3N5bV8wKTogUGFzcyBzdGFuZGFyZCBwYXJhbWV0ZXIgdG8gYWRkX3N5bS4KCShhZGRfc3ltXzEsIGFkZF9zeW1fMHMsIGFkZF9zeW1fMXMsIGFkZF9zeW1fMW0sIGFkZF9zeW1fMik6IERpdHRvLgoJKGFkZF9zeW1fMnMsIGFkZF9zeW1fMywgYWRkX3N5bV8zbWwsIGFkZF9zeW1fM3JlZCwgYWRkX3N5bV8zcyk6IERpdHRvLgoJKGFkZF9zeW1fNCwgYWRkX3N5bV80cywgYWRkX3N5bV81LCBhZGRfc3ltXzVzKTogRGl0dG8uCgkobWFrZV9nZW5lcmljKTogQWRkIHBhcmFtZXRlciBmb3Igc3RhbmRhcmQsIGNoZWNrIHRoaXMKCWFnYWluc3QgY3VycmVudGx5IHNlbGVjdGVkIHN0YW5kYXJkLgoJKGFkZF9mdW5jdGlvbnMsIGFkZF9zdWJyb3V0aW5lcyk6IEFkZCBwYXJhbWV0ZXIgdG8gdGVsbCB3aGljaAoJc3RhbmRhcmQgYW4gaW50cmluc2ljIGJlbG9uZ3MgdG8uCgkoY2hlY2tfaW50cmluc2ljX3N0YW5kYXJkKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19pbnRyaW5zaWNfZnVuY19pbnRlcmZhY2UpOiBBZGQgY2FsbCB0byBjaGVja19pbnRyaW5zaWNfc3RhbmRhcmQuCgkoZ2ZjX2ludHJpbnNpY19zdWJfaW50ZXJmYWNlKTogRGl0dG8uCgkqIGxhbmcub3B0OiBBZGQgV25vbnN0ZC1pbnRyaW5zaWNzIG9wdGlvbi4KCSogb3B0aW9ucy5jIChnZmNfaW5pdF9vcHRpb25zKTogQ2hhbmdlIHRvIHVzZSBuZXcgR0ZDX1NURF8qIGZsYWdzLAoJaW5pdCBuZXcgd2FybmluZy4KCShzZXRfV2FsbCk6IEFkZCB3YXJuaW5nIGFib3V0IG5vbnN0ZCBpbnRyaW5zaWNzLgoJKGdmY19oYW5kbGVfb3B0aW9uKTogQ2hhbmdlIHRvIHVzZSBuZXcgR0ZDX1NURF8qIGZsYWdzLAoJaGFuZGxlIG5ldyB3YXJuaW5nLgoJKiBpbnZva2UudGV4aTogVXBkYXRlIG1hbnVhbCB0byBpbmNsdWRlIC1Xbm9uc3RkLWludHJpbnNpY3MuCgoyMDA0LTEwLTMwICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGY5NS1sYW5nLmMgKGxhbmdfdHJlZV9ub2RlKTogQWRkIGNoYWluX25leHQgdG8gYmUgdGhlIFRSRUVfQ0hBSU4uCgoyMDA0LTEwLTMwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogc2ltcGxpZnkuYyAodHdvc19jb21wbGVtZW50KTogQ2FsY3VsYXRlIG1hc2sgaW4gR01QIGFyaXRobWV0aWMuCgoyMDA0LTEwLTMwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMuYyAoZ2ZjX3RyYW5zX2NvZGUpOiBTZXQgZ2xvYmFsIGxvY3VzIGFmdGVyIHJlY3Vyc2luZy4gRml4Cgljb21tZW50IHR5cG8uCgoyMDA0LTEwLTMwICBDYW5xdW4gWWFuZyAgPGNhbnF1bkBudWR0LmVkdS5jbj4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19yYW5kKTogQWxsb3cgbWlzc2luZyBvcHRpb25hbCBhcmd1bWVudC4gCgkoZ2ZjX2NoZWNrX2lyYW5kKTogRGl0dG8uCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogU2V0IGFyZyBvcHRpb25hbCBmbGFnIGZvciB7aSx9cmFuZC4KCjIwMDQtMTAtMjggIFNjb3R0IFJvYmVydCBMYWRkICA8c2NvdHQubGFkZEBjb3lvdGVndWxjaC5jb20+CgoJUFIgZm9ydHJhbi8xMzQ5MCwgUFIgZm9ydHJhbi8xNzkxMgoJKiBnY2MvZm9ydHJhbi9nZm9ydHJhbi5oOiBBZGRlZCBwZWRhbnRpY19taW5faW50IHRvIGdmY19pbnRlZ2VyX2luZm8KCSogZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaDogQWRkZWQgQVJJVEhfQVNZTU1FVFJJQyB0byBhcml0aAoJKiBnY2MvZm9ydHJhbi9hcml0aC5jOiBBZGRlZCBzdXBwb3J0IGZvciBhbiAiYXN5bW1ldHJpYyBpbnRlZ2VyIgoJd2FybmluZyB3aGVuIGNvbXBpbGluZyB3aXRoIHBlZGFudGljLgoJKiBnY2MvZm9ydHJhbi9hcml0aC5jOiBTZXQgbWluaW11bSBpbnRlZ2VyIHZhbHVlcyB0byByZWZsZWN0CglyZWFsaXRpZXMgb2YgdHdvJ3MgY29tcGxlbWVudCBzaWduZWQgaW50ZWdlcnMuIEFkZGVkCglwZWRhbnRpYyBtaW5pbXVtLgoKMjAwNC0xMC0xNyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBNYWtlLWxhbmcuaW4gKEY5NV9BRERJVElPTkFMX09CSlMpOiBLaWxsLgoJKGY5NTEpOiBEbyBub3QgZGVwZW5kIG9uIEY5NV9BRERJVElPTkFMX09CSlMgYW5kIGRvbid0CglsaW5rIGl0IGluLgoKMjAwNC0xMC0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2VuZXJhdGVfbG9jYWxfZGVjbCk6IFNpbXBsaWZ5IGxvZ2ljLCBmaXggY29tbWVudAoJdHlwby4KCShnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IEZpeCBmb3JtYXR0aW5nIGlzc3VlLgoKMjAwNC0xMC0xMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIG1vZHVsZS5jOiBGaXggZm9ybWF0dGluZyBpc3N1ZXMuCgoyMDA0LTEwLTA5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogbW9kdWxlLmMgKG1pb19pbnRlcmZhY2VfcmVzdCk6IFNldCB3aGVyZSBtZW1iZXIgb2YgaW50ZXJmYWNlCgl3aGlsZSBsb2FkaW5nLgoKMjAwNC0xMC0wOCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgZm9ydHJhbi8xNzkwMQoJKiBvcHRpb25zLmMgKGdmY19oYW5kbGVfb3B0aW9uKTogQWRkIGJyZWFrIGFmdGVyIGhhbmRpbmcgdGhlCglKL00gb3B0aW9uLgoKMjAwNC0xMC0wOCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zaGNsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGFyaXRoLmM6IEZpeCBmb3JtYXR0aW5nIGlzc3Vlcy4KCQoyMDA0LTEwLTA3ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTc2NzYKCSogcmVzb2x2ZS5jIChyZXNvbHZlX29wZXJhdG9yKTogVXNlIGNvcnJlY3Qgb3BlcmF0b3IgbmFtZSBpbiBtZXNzYWdlLgoKMjAwNC0xMC0wNyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHByaW1hcnkuYyAobWF0Y2hfYm96X2NvbnN0YW50KTogQWxsb3cga2luZCBwYXJhbWV0ZXIgc3VmZml4ZXMuCglNb3ZlIHN0YW5kYXJkIHdhcm5pbmcgZnVydGhlciB0byB0aGUgZnJvbnQuCgoyMDA0LTEwLTA3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJhbnMtc3RtdC5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTEwLTA3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTc2NzgKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2RlZmVycmVkX2FycmF5KTogTGVhdmUgdXNlIGFzc29jaWF0ZWQKCXZhcmlhYmxlcyBhbG9uZS4KCjIwMDQtMTAtMDYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNzU2OAoJKiBzaW1wbGlmeS5jICh0d29zX2NvbXBsZW1lbnQpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3NpbXBsaWZ5X2lzaGZ0LCBnZmNfc2ltcGxpZnlfaXNoZnRjKTogUmV2aXNlLgoKCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X2Ficyk6IFVzZSBtcGZyX2h5cG90IGZvciBDQUJTLgoKMjAwNC0xMC0wNiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX3NpbXBsZV9kbyk6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfZG8pOiBVc2UgaXQuICBFdmFsdWF0ZSBpdGVyYXRpb24gYm91bmRzIGJlZm9yZSBlbnRlcmluZwoJbG9vcC4gIFVwZGF0ZSBjb21tZW50cy4KCjIwMDQtMTAtMDQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNzI4MwoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9wYWNrKTogQ2hvb3NlIGZ1bmN0aW9uIGRlcGVuZGluZyBpZiBtYXNrCglpcyBzY2FsYXIuCgoJUFIgZm9ydHJhbi8xNzYzMQoJKiBpbnRyaW5zaWMuYyAoYWRkX3N5bV81KTogUmVtb3ZlLgoJKGFkZF9zdWJyb3V0aW5lcyk6IEFkZCByZXNvbHV0aW9uIGZ1bmN0aW9uIGZvciBNVkJJVFMuCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9tdmJpdHMpOiBEZWNsYXJlIHJlc29sdXRpb24gZnVuY3Rpb24gZm9yCglNVkJJVFMKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfbXZiaXRzKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19yZXNvbHZlX3JhbmRvbV9udW1iZXIpOiBSZW1vdmUgZW1wdHkgbGluZSBhdCBlbmQgb2YgZnVuY3Rpb24uCgoJKiB0cmFucy1jb25zdC5jIChnZmNfYnVpbGRfY3N0cmluZ19jb25zdCk6IE5ldyBmdW5jdGlvbi4KCShnZmNfaW5pdF9jc3QpOiBVc2UgbmV3IGZ1bmN0aW9uLgoJKiB0cmFucy1jb25zdC5oIChnZmNfYnVpbGRfY3N0cmluZ19jb25zdCk6IEFkZCBwcm90b3R5cGUuCgkqIHRyYW5zLWlvLmMgKHNldF9zdHJpbmcsIHNldF9lcnJvcl9sb2N1cyk6IFVzZSBuZXcgZnVuY3Rpb24uCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2dvdG8pOiBVc2UgbmV3IGZ1bmN0aW9uLgoJCglQUiBmb3J0cmFuLzE3NzA4CgkqIHBhcnNlLmMgKGFjY2VwdF9zdGF0ZW1lbnQpOiBEb24ndCB0cmVhdCBFTkQgRE8gbGlrZSBFTkQgSUYgYW5kCglFTkQgU0VMRUNULgoJKHBhcnNlX2RvX2Jsb2NrKTogR2VuZXJhdGUgcG9zc2libGUgRU5EIERPIGxhYmVsIGluc2lkZSBFTkQgRE8KCWJsb2NrLgoKCVBSIGZvcnRyYW4vMTc3NzYKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX3N5c3RlbV9zdWIpOiBOZXcgZnVuY3Rpb24uCgkqIGdmb3J0cmFuLmggKGdmY19nZW5lcmljX2lzeW1faWQpOiBBZGQgR0ZDX0lTWU1fU1lTVEVNLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IEFkZCAnc3lzdGVtJy4KCShhZGRfc3Vicm91dGluZXMpOiBBZGQgJ3N5c3RlbScuCgkqIGludHJpbnNpYy5oIChnZmNfY2hlY2tfZXRpbWVfc3ViLCBnZmNfY2hlY2tfZ2V0Y3dkX3N1Yik6CglNb3ZlIHByb3RvdHlwZXMgdG8gb3RoZXIgc3Vib3J1dGluZXMuCgkoZ2ZjX2NoZWNrX3N5c3RlbV9zdWIsIGdmY19yZXNvbHZlX3N5c3RlbSwgZ2ZjX3Jlc29sdmVfc3lzdGVtX3N1Yik6CglBZGQgcHJvdG90eXBlLgoJKGdmY19yZXNvbHZlX3N5c3RlbV9jbG9jayk6IEZpeCBmb3JtYXR0aW5nIG9mIHByb3RvdHlwZS4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfc3lzdGVtLCBnZmNfcmVzb2x2ZV9zeXN0ZW1fc3ViKTogTmV3CglmdW5jdGlvbnMuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBEZWFsIHdpdGgKCUdGQ19JU1lNX1NZU1RFTS4KCjIwMDQtMTAtMDQgIEVyaWsgU2NobmV0dGVyICA8c2NobmV0dGVyQGFlaS5tcGcuZGU+CgoJKiBzY2FubmVyLmMgKHByZXByb2Nlc3Nvcl9saW5lKTogQWNjZXB0IHByZXByb2Nlc3NvciBsaW5lcyB3aXRob3V0CglmaWxlIG5hbWVzLiAgQ2hlY2sgZmlsZSBuYW1lcyBmb3IgY2xvc2luZyBxdW90ZXMuICBIYW5kbGUgZXNjYXBlZAoJcXVvdGVzIGluIGZpbGUgbmFtZXMuCgoyMDA0LTEwLTA0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoJUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY19jb252X2V4cHJfZGVzY3JpcHRvcik6IENoZWNrIGZvciBzdWJzdHJpdW5ncy4KCVVzZSBnZmNfZ2V0X2V4cHJfY2hhcmxlbi4KCSogdHJhbnMtZXhwci5jIChnZmNfZ2V0X2V4cHJfY2hhcmxlbik6IE5ldyBmdW5jdGlvbi4KCSogdHJhbnMuaCAoZ2ZjX2dldF9leHByX2NoYXJsZW4pOiBBZGQgcHJvdG90eXBlLgoKMjAwNC0xMC0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyYW5zLWludHJpbnNpYy5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTEwLTAzICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogc2ltcGxpZnkuYyAocmFuZ2VfY2hlY2spOiBSZW1vdmUgYmxhbmsgbGluZSBhdCBiZWdpbm5pbmcgb2YgZnVuY3Rpb24uCgkoZ2ZjX3NpbXBsaWZ5X2RpbnQpOiBTYW1lIGF0IGVuZCBvZiBmdW5jdGlvbi4KCShnZmNfc2ltcGxpZnlfZXhwb25lbnQsIGdmY19zaW1wbGlmeV9mcmFjdGlvbik6IFNpbXBsaWZ5IGNhbGN1bGF0aW9ucy4KCShnZmNfc2ltcGxpZnlfYm91bmQpOiBGaXggaW5kZW50YXRpb24uCgkoZ2ZjX3NpbXBsaWZ5X2xvZzEwKTogU2ltcGxpZnkgY2FsY3VsYXRpb24uCgkoZ2ZjX3NpbXBsaWZ5X21pbiwgZ2ZjX3NpbXBsaWZ5X21heCk6IFJlbW92ZSBibGFuayBsaW5lIGF0IGJlZ2lubmluZwoJb2YgZnVuY3Rpb24uCgkoZ2ZjX3NpbXBsaWZ5X25lYXJlc3QpOiBTYW1lIGF0IGVuZCBvZiBmdW5jdGlvbi4KCShnZmNfc2ltcGxpZnlfbmludCwgZ2ZjX3NpbXBsaWZ5X2lkbmludCk6IFNhbWUgYXQgYmVnaW5uaW5nIG9mCglmdW5jdGlvbi4KCShnZmNfc2ltcGxpZnlfcnJzcGFjaW5nLCBnZmNfc2ltcGxpZnlfc2V0X2V4cG9uZW50LAoJZ2ZjX3NpbXBsaWZ5X3NwYWNpbmcpOiBTaW1wbGlmeSBjYWx1bGF0aW9ucy4KCjIwMDQtMTAtMDMgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCSogdHJhbnMtaW50cmluc2ljLmM6IEZpeCBjb21tZW50cyBvbiBzcGFjaW5nIGFuZCBycnNwYWNpbmcKCShnZmNfY29udl9pbnRyaW5zaWNfcnJzcGFjaW5nKTogQWRkIGZvbGQgb24gY29uc3RhbnQgdHJlZXMuCgoyMDA0LTEwLTAxICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBmOTUtbGFuZy5jIChnZmNfZXhwYW5kX2Z1bmN0aW9uKTogVXBkYXRlIGNhbGwgb2YKCXRyZWVfcmVzdF9vZl9jb21waWxhdGlvbi4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2VuZXJhdGVfY29uc3RydWN0b3JzKTogTGlrZXdpc2UuCgoyMDA0LTA5LTI2ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtaW50cmluc2ljLmM6IENvbW1lbnQgZml4ZXMuCgoyMDA0LTA5LTI1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZGVjbC5jIChhZGRfaW5pdF9leHByX3RvX3N5bSwgdmFyaWFibGVfZGVjbCk6IENvbW1lbnQgZml4ZXMuCgoyMDA0LTA5LTI0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3JldHVybl9ieV9yZWZlcmVuY2UpOiBSZW1vdmUgc3VwZXJmbHVvdXMKCWFzc2VydGlvbi4KCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9nZXRjd2QpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9nZXRjd2QpOiBBZGQgc2Vjb25kIGFyZ3VtZW50IHRvIGZ1bmN0aW9uLgoKCVBSIGZvcnRyYW4vMTc2MTUKCSogdHJhbnMtZXhwci5jIChnZmNfdHJhbnNfYXJyYXlmdW5jX2Fzc2lnbik6IExvb2sgYXQgcmVzb2x2ZWQKCWZ1bmN0aW9uIHRvIGRldGVybWluZSByZXR1cm4gdHlwZS4KCQoyMDA0LTA5LTIwICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiB0cmFucy1kZWNsLmMgKGJ1aWxkX2VudHJ5X3RodW5rcyk6IEZpbmFsaXplIHRoZSBmdW5jdGlvbjsgZG8gbm90IGxvd2VyCgl0cmVlLgoJKGdmY19nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogTGlrZXdpc2UuCgoyMDA0LTA5LTIwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU5NTcKCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X3Jlc2hhcGUpOiBTZXQgc2hhcGUgb2YgcmV0dXJuIHZhbHVlCgljb3JyZWN0bHkuCgoyMDA0LTA5LTE3ICBKZWZmcmV5IEQuIE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoJICAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBmOTUtbGFuZy5jLCB0cmFucy1leHByLmMsIHRyYW5zLmM6IFVwZGF0ZSBmb3IgbmV3IHRyZWUtY2xhc3MKCWVudW1lcmF0aW9uIGNvbnN0YW50cy4KCjIwMDQtMDktMTcgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnZm9ydHJhbi5oIChzdHJ1Y3QgZ2ZjX2xpbmVidWYpOiBEb24ndCB1c2UgQzk5IGVtcHR5IGFycmF5cy4KCShnZmNfbGluZWJ1Zl9oZWFkZXJfc2l6ZSk6IERlZmluZS4KCSogc2Nhbm5lci5jIChsb2FkX2ZpbGUpOiBVc2UgaXQuCgoyMDA0LTA5LTE2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYXJyYXkuYywgZGF0YS5jLCBkZWNsLmMsIGRlcGVuZGVuY3kuYywgZXJyb3IuYywgZjk1LWxhbmcuYywKCWludGVyZmFjZS5jLCBpbnRyaW5zaWMuYywgaW8uYywgbWlzYy5jLCBtb2R1bGUuYywgcGFyc2UuaCwKCXJlc29sdmUuYywgc2Nhbm5lci5jLCB0cmFucy1hcnJheS5jLCB0cmFucy1hcnJheS5oLAoJdHJhbnMtY29tbW9uLmMsIHRyYW5zLWNvbnN0LmgsIHRyYW5zLWRlY2wuYywgdHJhbnMtZXhwci5jLAoJdHJhbnMtaW50cmluc2ljLmMsIHRyYW5zLXN0bXQuYywgdHJhbnMtdHlwZXMuYywgdHJhbnMuYywKCXRyYW5zLmg6IEZpeCBjb21tZW50IHR5cG9zLiAgRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNC0wOS0xNiAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBpbC5pYm0uY29tPgoKCVBSLzE1MzY0CgkqIHRyYW5zLWlvLmMgKHRyYW5zZmVyX2FycmF5X2NvbXBvbmVudCk6IE5ldyBmdW5jdGlvbi4KCSh0cmFuc2Zlcl9leHByKTogRm9yIGFycmF5IGZpZWxkcywgY2FsbCB0cmFuc2Zlcl9hcnJheV9jb21wb25lbnQuCgoyMDA0LTA5LTE2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZ2ZvcnRyYW4udGV4aTogRml4IGEgdHlwby4KCjIwMDQtMDktMTUgIEFhcm9uIFcuIExhRnJhbWJvaXNlIDxhYXJvbmF2YXk2MkBhYXJvbndsLmNvbT4KCgkqIHBhcnNlLmMgKGVvZl9idWYpOiBSZW5hbWUgZW9mIHRvIGVvZl9idWYuCgkodW5leHBlY3RlZF9lb2YpOiBTYW1lLgoJKGdmY19wYXJzZV9maWxlKTogU2FtZS4KCjIwMDQtMDktMTUgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19nZXRjd2Rfc3ViKTogTmV3IGZ1bmN0aW9uLgoJKiBnZm9ydHJhbi5oIChHRkNfSVNZTV9HRVRDV0QpOiBOZXcgc3ltYm9sLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IEFkZCBmdW5jdGlvbiBkZWZpbml0aW9uOwoJVXNlIHN5bWJvbC4KCSogaW50cmluc2ljLmMgKGFkZF9zdWJyb3V0aW5lcyk6IEFkZCBzdWJyb3V0aW5lIGRlZmluaXRpb25zLgoJKiBpbnRyaW5zaWMuaDogQWRkIHByb3RvdHlwZXMuCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2dldGN3ZCwgZ2ZjX3Jlc29sdmVfZ2V0Y3dkX3N1Yik6CglOZXcgZnVuY3Rpb25zLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIHN5bWJvbC4KCjIwMDQtMDktMTUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjQ4NQoJKiBtb2R1bGUuYyAod3JpdGVfc3ltYm9sKTogRG9uJ3QgZmlsbCBpbiBtb2R1bGUgbmFtZSBoZXJlLgoJKHdyaXRlX3N5bWJvbDApOiBGaWxsIGluIGhlcmUgaW5zdGVhZC4KCjIwMDQtMDktMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkYXRhLmMsIGRlY2wuYywgZjk1LWxhbmcuYywgZ2ZvcnRyYW4uaCwgbWF0Y2guYywKCXRyYW5zLWFycmF5LmMsIHRyYW5zLWNvbW1vbi5jLCB0cmFucy1leHByLmMsCgl0cmFucy1pbnRyaW5zaWMuYywgdHJhbnMtc3RtdC5jLCB0cmFucy10eXBlcy5jLCB0cmFucy5oOiBGaXgKCWNvbW1lbnQgdHlwb3MuICBGb2xsb3cgc3BlbGxpbmcgY29udmVudGlvbnMuCgoyMDA0LTA5LTA5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogc2Nhbm5lci5jIChnZXRfZmlsZSk6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoKMjAwNC0wOS0wOCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFycmF5LmM6IERvbid0IGluY2x1ZGUgYXNzZXJ0LmguCgkqIGRhdGEuYzogRG9uJ3QgaW5jbHVkZSBhc3NlcnQuaC4gIFJlcGxhY2UgYXNzZXJ0IGFuZCBhYm9ydCB3aXRoCglnY2NfYXNzZXJ0IGFuZCBnY2NfdW5yZWFjaGFibGUuCgkqIGRlcGVuZGVuY3kuYzogRGl0dG8uCgkqIGY5NS1sYW5nLmM6IERpdHRvLgoJKiBpcmVzb2x2ZS5jOiBEaXR0by4KCSogcmVzb2x2ZS5jOiBEaXR0by4KCSogc2ltcGxpZnkuYzogRGl0dG8uCgkqIHN5bWJvbC5jOiBEaXR0by4KCSogdHJhbnMtYXJyYXkuYzogRGl0dG8uCgkqIHRyYW5zLWNvbW1vbi5jOiBEaXR0by4KCSogdHJhbnMtY29uc3QuYzogRGl0dG8uCgkqIHRyYW5zLWRlY2wuYzogRGl0dG8uCgkqIHRyYW5zLWV4cHIuYzogRGl0dG8uCgkqIHRyYW5zLWludHJpbnNpYy5jOiBEaXR0by4KCSogdHJhbnMtaW8uYzogRGl0dG8uCgkqIHRyYW5zLXN0bXQuYzogRGl0dG8uCgkqIHRyYW5zLXR5cGVzLmM6IERpdHRvLgoJKiB0cmFucy5jOiBEaXR0by4KCjIwMDQtMDktMDcgIFBlciBCb3RobmVyICA8cGVyQGJvdGhuZXIuY29tPgoJUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKHNob3dfbG9jdXMpOiBIYW5kbGUgbWFwcGVkIGxvY2F0aW9ucy4KCSogZjk1LWxhbmcuYyAoZ2ZjX2JlX3BhcnNlX2ZpbGUpOiBJbml0aWFsaXplIG1hcHBlZCBsb2NhdGlvbnMuCgkqIGdmb3J0cmFuLmg6IEluY2x1ZGUgaW5wdXQuaC4KCShzdHJ1Y3QgZ2ZjX2xpbmVidWYpOiBVc2Ugc291cmNlX2xvY2F0aW9uLgoJKiBzY2FubmVyLmMgKGdldF9maWxlKTogSW5pdGlhbGl6ZSBsaW5lbWFwLgoJKHByZXByb2Nlc3Nvcl9saW5lKTogUGFzcyBleHRyYSBhcmd1bWVudCB0byBnZXRfZmlsZS4KCShsb2FkX2ZpbGUpOiBEaXR0by4gIFNldHVwIGxpbmVtYXAuCgkoZ2ZjX25ld19maWxlKTogSGFuZGxlIG1hcHBlZCBsb2NhdGlvbnMuCgkqIHRyYW5zLWNvbW1vbi5jIChidWlsZF9maWVsZCwgYnVpbGRfZXF1aXZfZGVjbCwgYnVpbGRfY29tbW9uX2RlY2wpOgoJU2V0IGRlY2wgc291cmNlIGxvY2F0aW9ucy4KCShnZmNfdHJhbnNfY29tbW9uKTogU2V0IGJsYW5rIGNvbW1vbiBibG9jayBsb2NhdGlvbi4KCSogdHJhbnMtZGVjbC5jIChnZmNfc2V0X2RlY2xfbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dldF9sYWJlbF9kZWNsLCBnZmNfZ2V0X3N5bWJvbF9kZWNsKTogVXNlIGl0LgoJKHRyYW5zX2Z1bmN0aW9uX3N0YXJ0KTogTW92ZSBjYWxsIHRvIGdmY19zZXRfYmFja2VuZF9sb2N1cy4uCgkoYnVpbGRfZnVuY3Rpb25fZGVjbCk6IC4uLiB0byBoZXJlLgoJKGJ1aWxkX2VudHJ5X3RodW5rcyk6IFNldCBhbmQgcmVzdG9yZSB0aGUgYmFja2VuZCBsb2N1cy4KCShnZmNfZ2VuZXJhdGVfY29uc3RydWN0b3JzKTogUmVtb3ZlIGV4Y2VzcyBhcmd1bWVudHMgdG8KCWluaXRfZnVuY3Rpb25fc3RhcnQuCgkoZ2ZjX2dlbmVyYXRlX2Jsb2NrX2RhdGEpOiBBZGQgY29tbWVudHMuICBTZXQgdGhlIGRlY2wgbG9jdXMuCgkqIHRyYW5zLWlvLmMgKHNldF9lcnJvcl9sb2N1cyk6IEhhbmRsZSBtYXBwZWQgbG9jYXRpb25zLgoJKiB0cmFucy5jIChnZmNfZ2V0X2JhY2tlbmRfbG9jdXMsIGdmY19nZXRfYmFja2VuZF9sb2N1cyk6IERpdHRvLgoJKGdmY190cmFuc19jb2RlKTogVXNlIFNFVF9FWFBSX0xPQ0FUSU9OLgoJKGdmY19nZW5lcmF0ZV9jb2RlKTogT3ZlcnJpZGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXcgc3ltYm9sLgoJKiB0cmFucy5oIChnZmNfc2V0X2RlY2xfbG9jYXRpb24pOiBBZGQgcHJvdG90eXBlLgoKMjAwNC0wOC0zMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLXR5cGVzLmMgKGdmY190eXBlX2Zvcl9tb2RlKTogUmV0dXJuIE5VTEwgZm9yIHVua25vd24gbW9kZXMuCgoyMDA0LTA5LTAxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTUzMjcKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19tZXJnZSk6IERvIHRoZSByaWdodCB0aGluZyBmb3IKCXN0cmluZ3MuCgoyMDA0LTA5LTAxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTY0MDAKCVBSIGZvcnRyYW4vMTY0MDQKCShwb3J0IGZyb20gZzk1KQoJKiByZXNvbHZlLmMgKHJlc29sdmVfdHJhbnNmZXIpOiBOZXcgZnVuY3Rpb24uCgkocmVzb2x2ZV9jb2RlKTogQ2FsbCByZXNvbHZlX3RyYW5zZmVyIGluIGNhc2Ugb2YgRVhFQ19UUkFOU0ZFUi4KCjIwMDQtMDgtMzEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjU3OQoJKiB0cmFucy10eXBlcy5jIChnZmNfaW5pdF90eXBlcyk6IE1ha2UgZ2ZjX2NoYXJhY3RlcjFfdHlwZV9ub2RlIGFuCgl1bnNpZ25lZCBjaGFyLgoKMjAwNC0wOC0zMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIENPTlRSSUIsIE5FV1MsIFJFQURNRSwgVE9ETzogUmVtb3ZlIG9ic29sZXRlIGZpbGVzLgoKMjAwNC0wOC0zMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE3MjQ0CgkqIHRyYW5zLXR5cGVzLmMgKGdmY19yZXR1cm5fYnlfcmVmZXJlbmNlKTogUmVtb3ZlIFRPRE8gZXJyb3IsCglhZGQgY29tbWVudCBwb2ludGluZyBvdXQgcG9zc2libGUgaXNzdWUgV1JUIGNvbXBhdGliaWxpdHkgd2l0aCBnNzcuCgoyMDA0LTA4LTMxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtZGVjbC5jLCB0cmFucy1leHByLmMsIHRyYW5zLWlvLmMsIHRyYW5zLXR5cGVzLmM6IFJlcGxhY2UKCWFsbCBvY2N1cmVuY2VzIG9mICdnZmNfc3RybGVuX3R5cGVfbm9kZScgYnkKCSdnZmNfY2hhcmxlbl90eXBlX25vZGUnLgoJKiB0cmFucy10eXBlcy5oOiBTYW1lLiBBbHNvIHVwZGF0ZSBjb21tZW50IGFjY29yZGluZ2x5LgoKMjAwNC0wOC0zMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHByaW1hcnkuYzogVXBkYXRlIGNvcHlyaWdodCBib2lsZXJwbGF0ZSB0byBzYXkgR0NDLgoJKiBmOTUtbGFuZy5jOiBDaGFuZ2UgaW5pdGlhbCBjb21tZW50IHRvIHNheSBnZm9ydHJhbi4KCjIwMDQtMDgtMzEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy10eXBlcy5oOiBBZGQgY29tbWVudHMuCgkoaW50bWF4X3R5cGVfbm9kZSwgc3RyaW5nX3R5cGVfbm9kZSwgY29uc3Rfc3RyaW5nX3R5cGVfbm9kZSk6IFJlbW92ZS4KCjIwMDQtMDgtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGZvcnRyYW4vZjk1LWxhbmcubyk6IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkoZm9ydHJhbi90cmFucy1kZWNsLm8sIGZvcnRyYW4vdHJhbnMtdHlwZXMubyk6IExpa2V3aXNlLgoJKiBnZm9ydHJhbi5oIChnZmNfaW50ZWdlcl9pbmZvKTogQWRkIGNfY2hhciwgY19zaG9ydCwgY19pbnQsCgljX2xvbmcsIGNfbG9uZ19sb25nLgoJKGdmY19sb2dpY2FsX2luZm8pOiBBZGQgY19ib29sLgoJKGdmY19yZWFsX2luZm8pOiBBZGQgbW9kZV9wcmVjaXNpb24sIGNfZmxvYXQsIGNfZG91YmxlLCBjX2xvbmdfZG91YmxlLgoJKiB0cmFucy1hcnJheS5jIChnZmNfYXJyYXlfYWxsb2NhdGUpOiBVc2UgVFlQRV9QUkVDSVNJT04KCXJhdGhlciB0aGFuIGdmY19pbnRbNDhdX3R5cGVfbm9kZSBmb3IgYWxsb2NhdGUgY2hvaWNlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19idWlsZF9pbnRyaW5zaWNfZnVuY3Rpb25fZGVjbHMpOiBDYWNoZQoJbG9jYWwgY29waWVzIG9mIHNvbWUga2luZCB0eXBlIG5vZGVzLgoJKGdmY19idWlsZF9idWlsdGluX2Z1bmN0aW9uX2RlY2xzKTogTGlrZXdpc2UuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfcG93ZXJfb3ApOiBMaWtld2lzZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19pbmRleCwKCWdmY19jb252X2ludHJpbnNpY19zY2FuLCBnZmNfY29udl9pbnRyaW5zaWNfdmVyaWZ5LAoJZ2ZjX2NvbnZfaW50cmluc2ljX3RyaW0sIGdmY19jb252X2ludHJpbnNpY19yZXBlYXQpOiBMaWtld2lzZS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfcGF1c2UsIGdmY190cmFuc19zdG9wLAoJZ2ZjX3RyYW5zX2NoYXJhY3Rlcl9zZWxlY3QsIGdmY190cmFuc19hbGxvY2F0ZSk6IExpa2V3aXNlLgoJKiB0cmFucy1pby5jIChnZmNfcGludDRfdHlwZV9ub2RlKTogTW92ZSBpbnRvIC4uLgoJKGdmY19idWlsZF9pb19saWJyYXJ5X2ZuZGVjbHMpOiAuLi4gaGVyZS4gIENhY2hlIGxvY2FsIGNvcGllcyBvZgoJc29tZSBraW5kIHR5cGUgbm9kZXMuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY190eXBlX25vZGVzKTogUmVtb3ZlLgoJKGdmY19jaGFyYWN0ZXIxX3R5cGVfbm9kZSwgZ2ZjX3N0cmxlbl90eXBlX25vZGUpOiBOZXcuCgkoZ2ZjX2ludGVnZXJfdHlwZXMsIGdmY19sb2dpY2FsX3R5cGVzKTogTmV3LgoJKGdmY19yZWFsX3R5cGVzLCBnZmNfY29tcGxleF90eXBlcyk6IE5ldy4KCShnZmNfaW5pdF9raW5kcyk6IEZpbGwgaW4gcmVhbCBtb2RlX3ByZWNpc2lvbi4KCShnZmNfYnVpbGRfaW50X3R5cGUsIGdmY19idWlsZF9yZWFsX3R5cGUpOiBOZXcuCgkoZ2ZjX2J1aWxkX2NvbXBsZXhfdHlwZSwgZ2ZjX2J1aWxkX2xvZ2ljYWxfdHlwZSk6IE5ldy4KCShjX3NpemVfdF9zaXplKTogTmV3LgoJKGdmY19pbml0X3R5cGVzKTogTG9vcCBvdmVyIGtpbmRzLgoJKGdmY19nZXRfaW50X3R5cGUsIGdmY19nZXRfcmVhbF90eXBlKTogVXNlIGdmY192YWxpZGF0ZV9raW5kLgoJKGdmY19nZXRfY29tcGxleF90eXBlLCBnZmNfZ2V0X2xvZ2ljYWxfdHlwZSk6IExpa2V3aXNlLgoJKGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuKTogTGlrZXdpc2UuCgkoZ2ZjX3R5cGVfZm9yX3NpemUpOiBMb29wIG92ZXIga2luZHM7IHVzZSBhIHJlZHVjZWQgc2V0IG9mCgl1bnNpZ25lZCB0eXBlIG5vZGVzLgoJKGdmY190eXBlX2Zvcl9tb2RlKTogTG9vcCBvdmVyIGtpbmRzLgoJKGdmY19zaWduZWRfb3JfdW5zaWduZWRfdHlwZSk6IFVzZSBnZmNfdHlwZV9mb3Jfc2l6ZS4KCShnZmNfdW5zaWduZWRfdHlwZSwgZ2ZjX3NpZ25lZF90eXBlKTogVXNlIGdmY19zaWduZWRfb3JfdW5zaWduZWRfdHlwZS4KCSogdHJhbnMtdHlwZXMuaCAoRjk1X0lOVDFfVFlQRSwgRjk1X0lOVDJfVFlQRSwgRjk1X0lOVDRfVFlQRSwKCUY5NV9JTlQ4X1RZUEUsIEY5NV9JTlQxNl9UWVBFLCBGOTVfUkVBTDRfVFlQRSwgRjk1X1JFQUw4X1RZUEUsCglGOTVfUkVBbDE2X1RZUEUsIEY5NV9DT01QTEVYNF9UWVBFLCBGOTVfQ09NUExFWDhfVFlQRSwKCUY5NV9DT01QTEVYMTZfVFlQRSwgRjk1X0xPR0lDQUwxX1RZUEUsIEY5NV9MT0dJQ0FMMl9UWVBFLAoJRjk1X0xPR0lDQUw0X1RZUEUsIEY5NV9MT0dJQ0FMOF9UWVBFLCBGOTVfTE9HSUNBTDE2X1RZUEUsCglGOTVfQ0hBUkFDVEVSMV9UWVBFLCBOVU1fRjk1X1RZUEVTLCBnZmNfdHlwZV9ub2RlcywKCWdmY19pbnQxX3R5cGVfbm9kZSwgZ2ZjX2ludDJfdHlwZV9ub2RlLCBnZmNfaW50NF90eXBlX25vZGUsCglnZmNfaW50OF90eXBlX25vZGUsIGdmY19pbnQxNl90eXBlX25vZGUsIGdmY19yZWFsNF90eXBlX25vZGUsCglnZmNfcmVhbDhfdHlwZV9ub2RlLCBnZmNfcmVhbDE2X3R5cGVfbm9kZSwgZ2ZjX2NvbXBsZXg0X3R5cGVfbm9kZSwKCWdmY19jb21wbGV4OF90eXBlX25vZGUsIGdmY19jb21wbGV4MTZfdHlwZV9ub2RlLAoJZ2ZjX2xvZ2ljYWwxX3R5cGVfbm9kZSwgZ2ZjX2xvZ2ljYWwyX3R5cGVfbm9kZSwKCWdmY19sb2dpY2FsNF90eXBlX25vZGUsIGdmY19sb2dpY2FsOF90eXBlX25vZGUsCglnZmNfbG9naWNhbDE2X3R5cGVfbm9kZSwgZ2ZjX3N0cmxlbl9raW5kKTogUmVtb3ZlLgoJKGdmY19jaGFyYWN0ZXIxX3R5cGVfbm9kZSk6IFR1cm4gaW4gdG8gYSB2YXJpYWJsZS4KCShnZmNfc3RybGVuX3R5cGVfbm9kZSk6IExpa2V3aXNlLgoKMjAwNC0wOC0zMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuLmggKGdmY19uYW1lc3BhY2UpOiBBZGQgbmV3IGZpZWxkIGlzX2Jsb2NrX2RhdGEuCgkqIHBhcnNlLmMgKGFjY2VwdF9zdGF0ZW1lbnQpOiBSZW1vdmUgc3BlY2lhbCBoYW5kbGluZyBmb3IgQkxPQ0sgREFUQS4KCShwYXJzZV9ibG9ja19kYXRhKTogUmVjb3JkIEJMT0NLIERBVEEgbmFtZSwgc2V0IGlzX2Jsb2NrX2RhdGEgZmllbGQuCgkqIHRyYW5zLmMgKGdmY19nZW5lcmF0ZV9jb2RlKTogSGFuZGxlIEJMT0NLIERBVEEgdW5pdHMuCgkqIHRyYW5zLmggKGdmY19nZW5lcmF0ZV9ibG9ja19kYXRhKTogQWRkIHByb3RvdHlwZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2VuZXJhdGVfYmxvY2tfZGF0YSk6IE5ldyBmdW5jdGlvbi4KCjIwMDQtMDgtMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9tcHpfdG9fdHJlZSk6IFVzZSBtcHpfZXhwb3J0LgoJKiB0cmFucy10eXBlcy5jIChnZmNfaW5pdF9raW5kcyk6IFJlamVjdCBpbnRlZ2VyIGtpbmRzIGxhcmdlcgoJdGhhbiB0d28gSE9TVF9XSURFX0lOVC4KCjIwMDQtMDgtMjkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzkxMAoJKiBkZWNsLmMgKGZyZWVfdmFyaWFibGUsIGZyZWVfdmFsdWUsIGdmY19mcmVlX2RhdGEsIHZhcl9saXN0LAoJdmFyX2VsZW1lbnQsIHRvcF92YXJfbGlzdCwgbWF0Y2hfZGF0YV9jb25zdGFudCwgdG9wX3ZhbF9saXN0LAoJZ2ZjX21hdGNoX2RhdGEpOiBNb3ZlIGhlcmUgZnJvbSBtYXRjaC5jLgoJKG1hdGNoX29sZF9zdHlsZV9pbml0KTogTmV3IGZ1bmN0aW9uLgoJKHZhcmlhYmxlX2RlY2wpOiBNYXRjaCBvbGQtc3R5bGUgaW5pdGlhbGl6YXRpb24uCgkqIGV4cHIuYyAoZ2ZjX2dldF92YXJpYWJsZV9leHByKTogTmV3IGZ1bmN0aW9uLgoJKiBnZm9ydHJhbi5oIChnZmNfZ2V0X3ZhcmlhYmxlX2V4cHIpOiBBZGQgcHJvdG90eXBlLgoJKiBnZm9ydHJhbi50ZXhpOiBTdGFydCBkb2N1bWVudGF0aW9uIGZvciBzdXBwb3J0ZWQgZXh0ZW5zaW9ucy4KCSogbWF0Y2guYzogUmVtb3ZlIHRoZSBmdW5jdGlvbnMgbW92ZWQgdG8gZGVjbC5jLgoJKiBtYXRjaC5oIChnZmNfbWF0Y2hfZGF0YSk6IE1vdmUgcHJvdG90eXBlIHRvIHVuZGVyIGRlY2wuYy4KCSogc3ltYm9sLmMgKGdmY19maW5kX3N5bV90cmVlLCBnZmNfZmluZF9zeW1ib2wpOiBBZGQvY29ycmVjdAoJY29tbWVudHMuCgoyMDA0LTA4LTI5ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2Jlc24sIGdmY19jaGVja19nNzdfbWF0aDEpOiBOZXcgZnVuY3Rpb25zLgoJKiBmOTUtbGFuZy5jIChET19ERUZJTkVfTUFUSF9CVUlMVElOKTogRGVmaW5lLgoJKERFRklORV9NQVRIX0JVSUxUSU4sIERFRklORV9NQVRIX0JVSUxUSU5fQyk6IFVzZSBpdC4KCShidWlsZF9idWlsdGluX2ZudHlwZXMpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBVc2UgaXQuCgkqIGdmb3J0cmFuLmggKGVudW0gZ2ZjX2dlbmVyaWNfaXN5bV9pZCk6IEFkZCBHRkNfSVNZTV97SixZfXswLDEsTn0KCWFuZCBHRkNfSVNZTV9FUkZ7LEN9LgoJKGdmY19jX2ludF9raW5kKTogRGVjbGFyZS4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBBZGQgW2RdYmVzKiBhbmQgW2RdZXJmKi4KCSogaW50cmluc2ljLmggKGdmY19jaGVja19iZXNuLCBnZmNfY2hlY2tfZzc3X21hdGgxLCBnZmNfcmVzb2x2ZV9iZXNuLAoJZ2ZjX3Jlc29sdmVfZzc3X21hdGgxKTogQWRkIHByb3RvdHlwZXMuCgkqIHJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfYmVzbiwgZ2ZjX3Jlc29sdmVfZzc3X21hdGgxKTogTmV3IGZ1bmN0aW9ucy4KCSogbWF0aGJ1aWx0aW5zLmRlZjogQWRkIGNvbW1lbnQuICBDaGFuZ2UgdGhpcmQgYXJndW1lbnQuICBVc2UKCURFRklORV9NQVRIX0JVSUxUSU5fQy4gIEFkZCBiZXNzZWwgYW5kIGVycm9yIGZ1bmN0aW9ucy4KCSogdHJhbnMtaW50cmluc2ljLmMgKEJVSUxUX0lOX0ZVTkNUSU9OKTogRGVmaW5lLgoJKERFRklORV9NQVRIX0JVSUxUSU4sIERFRklORV9NQVRIX0JVSUxUSU5fQyk6IFVzZSBpdC4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2NfaW50X2tpbmQpOiBEZWNsYXJlLgoJKGdmY19pbml0X2tpbmRzKTogU2V0IGl0LgoKMjAwNC0wOC0yOSAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoJUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdmb3J0cmFuLmggKGVudW0gZ2ZjX2dlbmVyaWNfaXN5bV9pZCk6IEFkZCBHRkNfSVNZTV9HRVQ/SUQuCgkoZ2ZjX2NoZWNrX2YsIGdmY19zaW1wbGlmeV9mKTogQWRkIGYwLgoJKiBpbnRyaW5zaWMuYyAoZG9fY2hlY2spOiBDYWxsIGYwLiAgRmxhdHRlbi4KCShhZGRfc3ltXzApOiBGaXggcHJvdG90eXBlLiAgU2V0IGYwLgoJKGFkZF9mdW5jdGlvbnMpOiBBZGQgZ2V0Z2lkLCBnZXRnaWQgYW5kIGdldHVpZC4KCShyZXNvbHZlX2ludHJpbnNpYyk6IFJlbW92ZSBvYnNvbGV0ZSBjb21tZW50LgoJKGRvX3NpbXBsaWZ5KTogQ2FsbCBmMC4KCSogaW50cmluc2ljLmggKGdmY19yZXNvbHZlX2dldGdpZCwgZ2ZjX3Jlc29sdmVfZ2V0cGlkLAoJZ2ZjX3Jlc29sdmVfZ2V0dWlkKTogQWRkIHByb3RvdHlwZXMuCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2dldGdpZCwgZ2ZjX3Jlc29sdmVfZ2V0cGlkLAoJZ2ZjX3Jlc29sdmVfZ2V0dWlkKTogTmV3IGZ1bmN0aW9ucy4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IEhhbmRsZQoJR0ZDX0lTWU1fR0VUP0lELgoKMjAwNC0wOC0yOCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGVycm9yLmMgKGdmY19lcnJvcl9pbml0XzEpOiBSZW1vdmUgYmxhbmsgbGluZSBpbiBmcm9udCBvZgoJZnVuY3Rpb24gYm9keS4gQWRkIG1pc3NpbmcgYmxhbmsuCgkoZ2ZjX2J1ZmZlcl9lcnJvciwgZXJyb3JfY2hhciwgZXJyb3Jfc3RyaW5nKTogUmVtb3ZlIGJsYW5rIGxpbmUgaW4KCWZyb250IG9mIGZ1bmN0aW9uIGJvZHkuCgkoc2hvd19sb2N1cyk6IEFkZCBjb21tYSBpbiBjb21tZW50LgoJKGdmY19jbGVhcl93YXJuaW5nLCBnZmNfd2FybmluZ19jaGVjaywgZ2ZjX2NsZWFyX2Vycm9yLAoJZ2ZjX3B1c2hfZXJyb3IsIGdmY19wb3BfZXJyb3IpOiBSZW1vdmUgYmxhbmsgbGluZSBpbiBmcm9udCBvZgoJZnVuY3Rpb24gYm9keS4KCShnZmNfZ2V0X2Vycm9ycyk6IFR5cG8gZml4IGluIGNvbW1lbnQgaW4gZnJvbnQgb2YgZnVuY3Rpb24uIFJlbW92ZQoJYmxhbmsgbGluZSBpbiBmcm9udCBvZiBmdW5jdGlvbiBib2R5LgoKMjAwNC0wOC0yNyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuLmggKGdmY19kZWZhdWx0Xypfa2luZCk6IFJlbW92ZSBwcm90b3R5cGVzLCBhZGQgZXh0ZXJuCgl2YXJpYWJsZSBkZWNsYXJhdGlvbiBvZiBzYW1lIG5hbWUuCgkqIGFyaXRoLmMsIGNoZWNrLmMsIGRlY2wuYywgZHVtcF9wYXJzZV90cmVlLmMsIGV4cHIuYywKCWludHJpbnNpYy5jLCBpby5jLCBpcmVzb2x2ZS5jLCBtYXRjaC5jLCBvcHRpb25zLmMsIHByaW1hcnkuYywKCXJlc29sdmUuYywgc2ltcGxpZnkuYywgc3ltYm9sLmMsIHRyYW5zLWNvbnN0LmMsIHRyYW5zLWlvLmM6CglSZXBsYWNlIGFsbCBjYWxscyB0byBnZmNfZGVmYXVsdF8qX2tpbmQgd2l0aCB2YXJpYWJsZSBhY2Nlc3Nlcy4KCSogdHJhbnMtdHlwZXMuYzogU2FtZSBhcyBhYm92ZS4KCShnZmNfZGVmYXVsdF8qX2tpbmRfMSk6IFJlbmFtZSB0byBnZmNfZGVmYXVsdF8qX2tpbmQsIHJlbW92ZQoJc3RhdGljIHF1YWxpZmllci4gUmVwbGFjZSBhbGwgb2NjdXJlbmNlcy4KCShnZmNfZGVmYXVsdF8qX2tpbmQpOiBSZW1vdmUgZnVuY3Rpb25zLgoKMjAwNC0wOC0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGFyaXRoLmM6IEluY2x1ZGUgc3lzdGVtLmgsIG5vdCByZWFsIHN5c3RlbSBoZWFkZXJzLgoJKE1QWl9OVUxMLCBNUEZfTlVMTCwgREVGX0dGQ19JTlRFR0VSX0tJTkQsIERFRl9HRkNfTE9HSUNBTF9LSU5ELAoJREVGX0dGQ19SRUFMX0tJTkQsIEdGQ19TUF9LSU5ELCBHRkNfU1BfUFJFQywgR0ZDX1NQX0VNSU4sIEdGQ19TUF9FTUFYLAoJR0ZDX0RQX0tJTkQsIEdGQ19EUF9QUkVDLCBHRkNfRFBfRU1JTiwgR0ZDX0RQX0VNQVgsIEdGQ19RUF9LSU5ELAoJR0ZDX1FQX1BSRUMsIEdGQ19RUF9FTUlOLCBHRkNfUVBfRU1BWCk6IFJlbW92ZS4KCShnZmNfaW50ZWdlcl9raW5kcywgZ2ZjX2xvZ2ljYWxfa2luZHMsIGdmY19yZWFsX2tpbmRzLAoJZ2ZjX2luZGV4X2ludGVnZXJfa2luZCwgZ2ZjX2RlZmF1bHRfaW50ZWdlcl9raW5kLAoJZ2ZjX2RlZmF1bHRfcmVhbF9raW5kLGdmY19kZWZhdWx0X2RvdWJsZV9raW5kLAoJZ2ZjX2RlZmF1bHRfY2hhcmFjdGVyX2tpbmQsIGdmY19kZWZhdWx0X2xvZ2ljYWxfa2luZCwKCWdmY19kZWZhdWx0X2NvbXBsZXhfa2luZCwgdmFsaWRhdGVfaW50ZWdlciwgdmFsaWRhdGVfcmVhbCwKCXZhbGlkYXRlX2xvZ2ljYWwsIHZhbGlkYXRlX2NoYXJhY3RlciwKCWdmY192YWxpZGF0ZV9raW5kKTogTW92ZSB0byB0cmFucy10eXBlcy5jLgoJKGdmY19zZXRfbW9kZWxfa2luZCk6IFVzZSBnZmNfdmFsaWRhdGVfa2luZC4KCShnZmNfc2V0X21vZGVsKTogSnVzdCBjb3B5IHRoZSBjdXJyZW50IHByZWNpc2lvbiB0byBkZWZhdWx0LgoJKGdmY19hcml0aF9pbml0XzEpOiBVc2UgbXBmciBwcmVjaXNpb24gMTI4IGZvciBpbnRlZ2VyIHNldHVwLgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBJbnZva2UgZ2ZjX2luaXRfa2luZHMuCgkqIGdmb3J0cmFuLmg6IFVwZGF0ZSBmaWxlIGNvbW1lbnRhcnkuCgkqIHRyYW5zLXR5cGVzLmMgKE1BWF9JTlRfS0lORFMsIE1BWF9SRUFMX0tJTkRTKTogTmV3LgoJKGdmY19kZWZhdWx0X2ludGVnZXJfa2luZF8xLCBnZmNfZGVmYXVsdF9yZWFsX2tpbmRfMSwKCWdmY19kZWZhdWx0X2RvdWJsZV9raW5kXzEsIGdmY19kZWZhdWx0X2NoYXJhY3Rlcl9raW5kXzEsCglnZmNfZGVmYXVsdF9sb2dpY2FsX2tpbmRfMSwgZ2ZjX2RlZmF1bHRfY29tcGxleF9raW5kXzEpOiBOZXcuCgkoZ2ZjX2luaXRfa2luZHMpOiBOZXcuCgkoZ2ZjX2luaXRfdHlwZXMpOiBEb24ndCBzZXQgZ2ZjX2luZGV4X2ludGVnZXJfa2luZCBoZXJlLgoJKiB0cmFucy10eXBlcy5oIChnZmNfaW5pdF9raW5kcyk6IERlY2xhcmUuCgkqIGRvYy9pbnZva2UudGV4aTogQ2xhcmlmeSBET1VCTEUgUFJFQ0lTSU9OIGJlaGF2aW91ciB3cnQgLXI4LgoKMjAwNC0wOC0yNiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19hdGFuMik6IE5ldyBmdW5jdGlvbi4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBVc2UgZ2ZjX2NoZWNrX2F0YW4yIGZvciBBVEFOMgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX2F0YW4yKTogQWRkIHByb3RvdHlwZS4KCjIwMDQtMDgtMjUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBhcml0aC5jIChnZmNfdmFsaWRhdGVfa2luZCk6IEFkZCBtYXlfZmFpbCBhcmd1bWVudDsgYWJvcnQgaWYKCWZhbHNlIGFuZCB3ZSBkb24ndCB2YWxpZGF0ZSB0aGUga2luZC4KCShnZmNfY2hlY2tfaW50ZWdlcl9yYW5nZSwgZ2ZjX2NoZWNrX3JlYWxfcmFuZ2UpOiBVcGRhdGUgdG8gbWF0Y2guCgkqIGNoZWNrLmMgKGtpbmRfY2hlY2spOiBMaWtld2lzZS4KCSogZGVjbC5jIChnZmNfbWF0Y2hfb2xkX2tpbmRfc3BlYywgZ2ZjX21hdGNoX2tpbmRfc3BlYyk6IExpa2V3aXNlLgoJKG1hdGNoX2NoYXJfc3BlYywgbWF0Y2hfbG9naWNhbF9zcGVjKTogTGlrZXdpc2UuCgkqIGdmb3J0cmFuLmggKGdmY192YWxpZGF0ZV9raW5kKTogTGlrZXdpc2UuCgkqIG9wdGlvbnMuYyAoZ2ZjX2hhbmRsZV9vcHRpb24pOiBMaWtld2lzZS4KCSogcHJpbWFyeS5jIChtYXRjaF9pbnRlZ2VyX2NvbnN0YW50LCBtYXRjaF9yZWFsX2NvbnN0YW50LAoJbWF0Y2hfc3RyaW5nX2NvbnN0YW50LCBtYXRjaF9sb2dpY2FsX2NvbnN0YW50LAoJbWF0Y2hfY29uc3RfY29tcGxleF9wYXJ0KTogTGlrZXdpc2UuCgkqIHNpbXBsaWZ5LmMgKGdldF9raW5kLCBnZmNfc2ltcGxpZnlfYml0X3NpemUsIGdmY19zaW1wbGlmeV9kaWdpdHMsCglnZmNfc2ltcGxpZnlfZXBzaWxvbiwgZ2ZjX3NpbXBsaWZ5X2h1Z2UsIGdmY19zaW1wbGlmeV9pYmNsciwKCWdmY19zaW1wbGlmeV9pYnNldCwgZ2ZjX3NpbXBsaWZ5X2lzaGZ0LCBnZmNfc2ltcGxpZnlfaXNoZnRjLAoJZ2ZjX3NpbXBsaWZ5X21heGV4cG9uZW50LCBnZmNfc2ltcGxpZnlfbWluZXhwb25lbnQsCglnZmNfc2ltcGxpZnlfbmVhcmVzdCwgZ2ZjX3NpbXBsaWZ5X25vdCwgZ2ZjX3NpbXBsaWZ5X3ByZWNpc2lvbiwKCWdmY19zaW1wbGlmeV9yYWRpeCwgZ2ZjX3NpbXBsaWZ5X3JhbmdlLCBnZmNfc2ltcGxpZnlfcnJzcGFjaW5nLAoJZ2ZjX3NpbXBsaWZ5X3NjYWxlLCBnZmNfc2ltcGxpZnlfc3BhY2luZywgZ2ZjX3NpbXBsaWZ5X3RhbiwKCWdmY19zaW1wbGlmeV90aW55KTogTGlrZXdpc2UuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfYWludCwgZ2ZjX2NvbnZfaW50cmluc2ljX21vZCwKCWdmY19jb252X2ludHJpbnNpY19taW5tYXhsb2MsIGdmY19jb252X2ludHJpbnNpY19taW5tYXh2YWwsCglwcmVwYXJlX2FyZ19pbmZvKTogTGlrZXdpc2UuCgoyMDA0LTA4LTI1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZXhwci5jIChnZmNfY2hlY2tfYXNzaWduKTogQWRkIGNvbW1lbnQuIEFkZCBuZXcgd2FybmluZy4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9mdW5jdGlvbl9jYWxsKTogQ29ycmVjdGx5IGRlcmVmZXJlbmNlCiAJcmVzdWx0IG9mIHBvaW50ZXIgdmFsdWVkIGZ1bmN0aW9uIHdoZW4gbm90IGluIHBvaW50ZXIgYXNzaWdubWVudC4KCjIwMDQtMDgtMjUgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWctbGFuZy5pbjogUmVtb3ZlIGRlYWQgY29tbWVudGVkIGxpbmUuCgkqIG1vZHVsZS5jOiBSZXBsYWNlIGc5NSB3aXRoIGdmb3J0cmFuIGluIGNvbW1lbnQuCgoyMDA0LTA4LTI1ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTcxOTAKCSogYXJpdGguYyAoZ2ZjX21wZnJfdG9fbXB6KTogV29ya2Fyb3VuZCBtcGZyIGJ1Zy4KCjIwMDQtMDgtMjUgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNzE0NAoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSk6IFJlbW92ZQoJc3RyaW5nX2xlbmd0aCBhcmd1bWVudC4KCShnZmNfdHJhbnNfYXJyYXlfY3Rvcl9lbGVtZW50KTogTmV3IGZ1bmN0aW9uLgoJKGdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl9zdWJhcnJheSk6IFVzZSBpdC4KCShnZmNfdHJhbnNfYXJyYXlfY29uc3RydWN0b3JfdmFsdWUpOiBEaXR0by4gIEhhbmRsZSBjb25zdGFudAoJY2hhcmFjdGVyIGFycmF5cy4KCShnZXRfYXJyYXlfY3Rvcl92YXJfc3RybGVuLCBnZXRfYXJyYXlfY3Rvcl9zdHJsZW4pOiBOZXcgZnVuY3Rpb25zLgoJKGdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcik6IFVzZSB0aGVtLgoJKGdmY19hZGRfbG9vcF9zc19jb2RlKTogVXBkYXRlIHRvIG5ldyBnZmNfc3MgbGF5b3V0LgoJKGdmY19jb252X3NzX2Rlc2NyaXB0b3IpOiBSZW1lbWJlciBzZWN0aW9uIHN0cmluZyBsZW5ndGguCgkoZ2ZjX2NvbnZfc2NhbGFyaXplZF9hcnJheV9yZWYpOiBEaXR0by4gIFJlbW92ZSBkZWFkIGNvZGUuCgkoZ2ZjX2NvbnZfcmVzb2x2ZV9kZXBlbmRlbmNpZXMpOiBVcGRhdGUgdG8gbmV3IGdmY19zcyBsYXlvdXQuCgkoZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogRGl0dG8uCgkoZ2ZjX2NvbnZfbG9vcF9zZXR1cCk6IERpdHRvLiAgU3BlbGxpbmcgZml4ZXMuCgkqIHRyYW5zLWFycmF5LmggKGdmY190cmFuc19hbGxvY2F0ZV90ZW1wX2FycmF5KTogVXBkYXRlIHByb3RvdHlwZS4KCSogdHJhbnMtY29uc3QuYyAoZ2ZjX2NvbnZfY29uc3RhbnQpOiAgVXBkYXRlIHRvIG5ldyBnZmNfc3MgbGF5b3V0LgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2NvbXBvbmVudF9yZWYpOiBUdXJuIGVycm9yIGludG8gSUNFLgoJKGdmY19jb252X3ZhcmlhYmxlKTogU2V0IHN0cmluZ19sZW5ndGggZnJvbSBzZWN0aW9uLgoJKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBSZW1vdmUgZXh0cmEgYXJndW1lbnQuCgkoZ2ZjX2NvbnZfZXhwciwgZ2ZjX2NvbnZfZXhwcl9yZWZlcmVuY2UpOiBVcGRhdGUgdG8gbmV3IGdmY19zcyBsYXlvdXQuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19nZXRfY2hhcmFjdGVyX3R5cGUpOiBVc2UgaXQuCgkoZ2ZjX2dldF9kdHlwZSk6IFJldHVybiB6ZXJvIGZvciBpbnRlcm5hbCB0eXBlcy4KCSogdHJhbnMtdHlwZXMuaCAoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4pOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy5oIChzdHJ1Y3QgZ2ZjX3NzKTogTW92ZSBzdHJpbmdfbGVuZ3RoIG91dCBvZiB1bmlvbi4KCjIwMDQtMDgtMjUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy5oIChidWlsZDJfdiwgYnVpbGQzX3YpOiBOZXcgbWFjcm9zLgoJKGJ1aWxkX3YpOiBSZW1vdmUuCgkqIGY5NS1sYW5nLmMgKGdmY190cnV0aHZhbHVlX2NvbnZlcnNpb24pOiBVc2UgYnVpbGQyIGluc3RlYWQgb2YKCWJ1aWxkLgoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9kZXNjcmlwdG9yX2RhdGEsCglnZmNfY29udl9kZXNjcmlwdG9yX29mZnNldCwgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kaW1lbnNpb24sCglnZmNfY29udl9kZXNjcmlwdG9yX3N0cmlkZSwgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9sYm91bmQsCglnZmNfY29udl9kZXNjcmlwdG9yX3Vib3VuZCwgZ2ZjX3RyYW5zX2FsbG9jYXRlX2FycmF5X3N0b3JhZ2UsCglnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSwKCWdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl9zdWJhcnJheSwKCWdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSwgZ2ZjX2NvbnZfYXJyYXlfaW5kZXhfcmVmLAoJZ2ZjX3RyYW5zX2FycmF5X2JvdW5kX2NoZWNrLCBnZmNfY29udl9hcnJheV9pbmRleF9vZmZzZXQsCglnZmNfY29udl9zY2FsYXJpemVkX2FycmF5X3JlZiwgZ2ZjX2NvbnZfYXJyYXlfcmVmLAoJZ2ZjX2NvbnZfYXJyYXlfcmVmLCBnZmNfdHJhbnNfcHJlbG9vcF9zZXR1cCwKCWdmY190cmFuc19zY2FsYXJpemVkX2xvb3BfZW5kLCBnZmNfY29udl9zc19zdGFydHN0cmlkZSwKCWdmY19jb252X2xvb3Bfc2V0dXAsIGdmY19hcnJheV9pbml0X3NpemUsCglnZmNfY29udl9hcnJheV9pbml0aWFsaXplciwgZ2ZjX3RyYW5zX2FycmF5X2JvdW5kcywKCWdmY190cmFuc19hdXRvX2FycmF5X2FsbG9jYXRpb24sIGdmY190cmFuc19kdW1teV9hcnJheV9iaWFzLAoJZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yLCBnZmNfY29udl9hcnJheV9wYXJhbWV0ZXIsCglnZmNfdHJhbnNfZGVmZXJyZWRfYXJyYXkpOiBVc2UgYnVpbGROIGFuZCBidWlsZE5fdiBtYWNyb3MgaW5zdGVhZAoJb2YgYnVpbGQgYW5kIGJ1aWxkX3YgYXMgYXBwcm9wcmlhdGUuCgkqIHRyYW5zLWNvbW1vbi5jIChjcmVhdGVfY29tbW9uKTogU2FtZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfdHJhbnNfYXV0b19jaGFyYWN0ZXJfdmFyaWFibGUsCglnZmNfdHJhbnNfZW50cnlfbWFzdGVyX3N3aXRjaCwgZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBTYW1lLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2V4cHJfcHJlc2VudCwgZ2ZjX2NvbnZfc3Vic3RyaW5nLAoJZ2ZjX2NvbnZfY29tcG9uZW50X3JlZiwgZ2ZjX2NvbnZfdW5hcnlfb3AsIGdmY19jb252X3Bvd2ksCglnZmNfY29udl9jc3RfaW50X3Bvd2VyLCBnZmNfY29udl9zdHJpbmdfdG1wLCBnZmNfY29udl9jb25jYXRfb3AsCglnZmNfY29udl9leHByX29wLCBnZmNfY29udl9mdW5jdGlvbl9jYWxsLAoJZ2ZjX3RyYW5zX3N0cnVjdHVyZV9hc3NpZ24pOiBTYW1lLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoYnVpbGRfZml4Ym91bmRfZXhwciwgYnVpbGRfcm91bmRfZXhwciwKCWdmY19jb252X2ludHJpbnNpY19haW50LCBnZmNfY29udl9pbnRyaW5zaWNfYm91bmQsCglnZmNfY29udl9pbnRyaW5zaWNfY21wbHgsIGdmY19jb252X2ludHJpbnNpY19tb2QsCglnZmNfY29udl9pbnRyaW5zaWNfZGltLCBnZmNfY29udl9pbnRyaW5zaWNfc2lnbiwKCWdmY19jb252X2ludHJpbnNpY19kcHJvZCwgZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heCwKCWdmY19jb252X2ludHJpbnNpY19hbnlhbGwsIGdmY19jb252X2ludHJpbnNpY19jb3VudCwKCWdmY19jb252X2ludHJpbnNpY19hcml0aCwgZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heGxvYywKCWdmY19jb252X2ludHJpbnNpY19taW5tYXh2YWwsIGdmY19jb252X2ludHJpbnNpY19idGVzdCwKCWdmY19jb252X2ludHJpbnNpY19iaXRvcCwgZ2ZjX2NvbnZfaW50cmluc2ljX3NpbmdsZWJpdG9wLAoJZ2ZjX2NvbnZfaW50cmluc2ljX2liaXRzLCBnZmNfY29udl9pbnRyaW5zaWNfaXNoZnQsCglnZmNfY29udl9pbnRyaW5zaWNfbWVyZ2UsIGdmY19jb252X2ludHJpbnNpY19zdHJjbXAsCglnZmNfY29udl9hbGxvY2F0ZWQsIGdmY19jb252X2Fzc29jaWF0ZWQsIHByZXBhcmVfYXJnX2luZm8sCglnZmNfY29udl9pbnRyaW5zaWNfc3BhY2luZywgZ2ZjX2NvbnZfaW50cmluc2ljX3Jyc3BhY2luZywKCWdmY19jb252X2ludHJpbnNpY190cmltLCBnZmNfY29udl9pbnRyaW5zaWNfcmVwZWF0LAoJZ2ZjX2NvbnZfaW50cmluc2ljX2lhcmdjKTogU2FtZS4KCSogdHJhbnMtaW8uYyAoc2V0X3BhcmFtZXRlcl92YWx1ZSwgc2V0X3BhcmFtZXRlcl9yZWYsIHNldF9zdHJpbmcsCglzZXRfZmxhZywgYWRkX2Nhc2UsIGlvX3Jlc3VsdCwgdHJhbnNmZXJfbmFtZWxpc3RfZWxlbWVudCwKCXRyYW5zZmVyX2V4cHIpOiBTYW1lLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19nb3RvLCBnZmNfdHJhbnNfcmV0dXJuLCBnZmNfdHJhbnNfaWZfMSwKCWdmY190cmFuc19hcml0aG1ldGljX2lmLCBnZmNfdHJhbnNfZG8sIGdmY190cmFuc19kb193aGlsZSwKCWdmY190cmFuc19pbnRlZ2VyX3NlbGVjdCwgZ2ZjX3RyYW5zX2xvZ2ljYWxfc2VsZWN0LAoJZ2ZjX3RyYW5zX2NoYXJhY3Rlcl9zZWxlY3QsIGdmY190cmFuc19mb3JhbGxfbG9vcCwKCWdmY190cmFuc19uZXN0ZWRfZm9yYWxsX2xvb3AsIGdmY19kb19hbGxvY2F0ZSwKCWdlbmVyYXRlX2xvb3BfZm9yX3RlbXBfdG9fbGhzLCBnZW5lcmF0ZV9sb29wX2Zvcl9yaHNfdG9fdGVtcCwKCWNvbXB1dGVfaW5uZXJfdGVtcF9zaXplLCBjb21wdXRlX292ZXJhbGxfaXRlcl9udW1iZXIsCglhbGxvY2F0ZV90ZW1wX2Zvcl9mb3JhbGxfbmVzdCwgZ2ZjX3RyYW5zX3BvaW50ZXJfYXNzaWduX25lZWRfdGVtcCwKCWdmY190cmFuc19mb3JhbGxfMSwgZ2ZjX2V2YWx1YXRlX3doZXJlX21hc2ssCglnZmNfdHJhbnNfd2hlcmVfYXNzaWduLCBnZmNfdHJhbnNfYWxsb2NhdGUpOiBTYW1lLgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2R0eXBlLCBnZmNfZ2V0X2FycmF5X3R5cGVfYm91bmRzKTogU2FtZS4KCSogdHJhbnMuYyAoZ2ZjX2FkZF9tb2RpZnlfZXhwciwgZ2ZjX2ZpbmlzaF9ibG9jaywKCWdmY19idWlsZF9hcnJheV9yZWYsIGdmY19idWlsZF9mdW5jdGlvbl9jYWxsLAoJZ2ZjX3RyYW5zX3J1bnRpbWVfY2hlY2spOiBTYW1lLgoKMjAwNC0wOC0yNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wel90b190cmVlKTogQ2hhbmdlIGNhbGwgdG8KCWJ1aWxkX2ludF9jc3QgdG8gYnVpbGRfaW50X2NzdF93aWRlIGluIGFjY29yZGFuY2UgdG8gTmF0aGFuJ3MKCXByZXZpb3VzIHBhdGNoLgoKMjAwNC0wOC0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSk6IEFkanVzdAoJYnVpbGRfaW50X2NzdCBjYWxscy4KCSogdHJhbnMtY29uc3QuYyAoZ2ZjX2J1aWxkX3N0cmluZ19jb25zdCwgZ2ZjX2luaXRfY29uc3RhbnRzLAoJZ2ZjX2NvbnZfbXB6X3RvX3RyZWUsIGdmY19jb252X2NvbnN0YW50X3RvX3RyZWUpOiBMaWtld2lzZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsLCBidWlsZF9lbnRyeV90aHVua3MsCglnZmNfdHJhbnNfZW50cnlfbWFzdGVyX3N3aXRjaCk6IExpa2V3aXNlLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2liaXRzLAoJZ2ZjX2NvbnZfaW50cmluc2ljX2xlbiwgcHJlcGFyZV9hcmdfaW5mbyk6IExpa2V3aXNlLgoJKiB0cmFucy1pby5jIChhZGRfY2FzZSwgc2V0X2Vycm9yX2xvY3VzLAoJdHJhbnNmZXJfbmFtZWxpc3RfZWxlbWVudCwgdHJhbnNmZXJfZXhwcik6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19sYWJlbF9hc3NpZ24sIGdmY190cmFuc19wYXVzZSwKCWdmY190cmFuc19zdG9wLCBnZmNfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCk6IExpa2V3aXNlLgoJKiB0cmFucy10eXBlcy5jIChnZmNfaW5pdF90eXBlcywgZ2ZjX2dldF9kdHlwZSk6IExpa2V3aXNlLgoJKiB0cmFucy5jIChnZmNfdHJhbnNfcnVudGltZV9jaGVjayk6IExpa2V3aXNlLgoKMjAwNC0wOC0yNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWRlY2wuYywgdHJhbnMtdHlwZXMuYzogQWRkIGFuZCByZW1vdmUgYmxhbmsgbGluZXMgYXMKCXJlcXVpcmVkLgoKMjAwNC0wOC0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wel90b190cmVlKTogRml4IDY0LWJpdCBzaGlmdCB3YXJuaW5nLgoKMjAwNC0wOC0yNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHJlc29sdmUuYyAobWVyZ2VfYXJndW1lbnRfbGlzdHMpOiBSZXZlcnQgdW5pbnRlbnRpb25hbGx5Cgljb21taXR0ZWQgY2hhbmdlLgoKMjAwNC0wOC0yNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWRlY2wuYyAoYnVpbGRfZnVuY3Rpb25fZGVjbCk6IEZpeCBzcGVsbGluZyBpbiBjb21tZW50LgoJKGJ1aWxkX2VudHJ5X3RodW5rcyk6IFJlbW92ZSBjb2RlIHdpdGggbm8gZnVuY3Rpb24uCgkoZ2ZjX2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9kZWNscyk6IFJlbW92ZSBlbXB0eSBsaW5lLgoKCSogcmVzb2x2ZS5jIChyZXNvbHZlX2VudHJpZXMpOiBGaXggYSBidW5jaCBvZiBjb21tZW50IHR5cG9zLgoKMjAwNC0wOC0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGY5NS1sYW5nLmMgKGdmY19pbml0X2RlY2xfcHJvY2Vzc2luZyk6IEFkanVzdAoJYnVpbGRfY29tbW9uX3RyZWVfbm9kZXMgY2FsbC4KCjIwMDQtMDgtMjQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy10eXBlcy5jOiBTcGVsbGluZyBhbmQgZm9ybWF0dGluZyBmaXhlcy4KCjIwMDQtMDgtMjMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9tcHpfdG9fdHJlZSk6IFVzZSBtcHpfZ2V0bGltYm4gaW5zdGVhZAoJb2YgZ29pbmcgdGhyb3VnaCBhbiBpbnRlcm1lZGlhdGUgc3RyaW5nLiAgRml4IDMyLzY0IGludC9sb25nIGJ1Zy4KCjIwMDQtMDgtMjMgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3R5cGVfZm9yX21vZGUpOiBSZW1vdmUgVkVDVE9SX1RZUEVfU1VQUE9SVEVEX1AKCXVzYWdlLiBVc2UgYnVpbGRfdmVjdG9yX3R5cGVfZm9yX21vZGUgZm9yIHZlY3RvciB0eXBlcy4KCjIwMDQtMDgtMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgMTM0NjUKCSogZGF0YS5jIChmaW5kX2Nvbl9ieV9vZmZzZXQpOiBTZWFyY2ggb3JkZXJlZCBsaXN0OyBoYW5kbGUKCWVsZW1lbnRzIHdpdGggcmVwZWF0IGNvdW50cy4KCShnZmNfYXNzaWduX2RhdGFfdmFsdWVfcmFuZ2UpOiBOZXcuCgkqIGdmb3J0cmFuLmggKHN0cnVjdCBnZmNfZGF0YV92YWx1ZSk6IE1ha2UgcmVwZWF0IHVuc2lnbmVkLgoJKGdmY19hc3NpZ25fZGF0YV92YWx1ZV9yYW5nZSk6IERlY2xhcmUuCgkqIG1hdGNoLmMgKHRvcF92YWxfbGlzdCk6IEV4dHJhY3QgcmVwZWF0IGNvdW50IGludG8gYSB0ZW1wb3JhcnkuCgkqIHJlc29sdmUuYyAodmFsdWVzKTogTWFrZSBsZWZ0IHVuc2lnbmVkLgoJKG5leHRfZGF0YV92YWx1ZSk6IERvbid0IGRlY3JlbWVudCBsZWZ0LgoJKGNoZWNrX2RhdGFfdmFyaWFibGUpOiBVc2UgZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlX3JhbmdlLgoKMjAwNC0wOC0yMiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWNvbnN0LmMsIHRyYW5zLWRlY2wuYywgdHJhbnMtZXhwci5jOiBTcGVsbGluZyBmaXhlcy4KCjIwMDQtMDgtMjIgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBjaGVjay5jIChnZmNfY2hlY2tfcmVkdWN0aW9uKTogUmVuYW1lIHRvIC4uLgoJKGNoZWNrX3JlZHVjdGlvbik6IC4uLiB0aGlzLiBNYWtlIHN0YXRpYy4gRG9uJ3QgY2hlY2sgdHlwZSBvZgoJZmlyc3QgYXJndW1lbnQuCgkoZ2ZjX2NoZWNrX21pbnZhbF9tYXh2YWwsIGdmY19jaGVja19wcm9kY3V0X3N1bSk6IE5ldyBmdW5jdGlvbnMuCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogQ2hhbmdlIE1BWFZBTCwgTUlOVkFMLCBQUk9EVUNUIGFuZAoJU1VNIHRvIHVzZSBuZXcgY2hlY2sgZnVuY3Rpb25zLgoJKGNoZWNrX3NwZWNpZmljKTogQ2hhbmdlIGxvZ2ljIHRvIGNhbGwgbmV3IGZ1bmN0aW9ucy4KCSogaW50cmluc2ljLmggKGdmY19jaGVja19taW52YWxfbWF4dmFsLCBnZmNfY2hlY2tfcHJvZHVjdF9zdW0pOgoJQWRkIHByb3RvdHlwZXMuCgkoZ2ZjX2NoZWNrX3JlZHVjdGlvbik6IFJlbW92ZSBwcm90b3R5cGUuCgoyMDA0LTA4LTIwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoJQ2FucXVuIFlhbmcgIDxjYW5xdW5AbnVkdC5lZHUuY24+CgoJUFIgZm9ydHJhbi8xNzA3NwoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9hcnJheV9wYXJhbWV0ZXIpOiBQYXNzIGNvcnJlY3QgcG9pbnRlcgoJZm9yIGF1dG9tYXRpYyBhcnJheXMuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfbm9kZXNjX2FycmF5X3R5cGUpOiBBZGQgY29tbWVudC4KCjIwMDQtMDgtMTkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgkoUG9ydCBmcm9tIGc5NSkKCglQUiBmb3J0cmFuLzE3MDc0CgkqIG1hdGNoLmMgKG1hdGNoX3NpbXBsZV9mb3JhbGwsIG1hdGNoX3NpbXBsZV93aGVyZSk6IEZvcndhcmQtZGVjbGFyZS4KCShnZmNfbWF0Y2hfaWYpOiBPcmRlciBzdGF0ZW1lbnQgbGlzdCBhbHBoYWJldGljYWxseSwgYWRkIFdIRVJFIGFuZAoJRk9SQUxMLCByZW1vdmUgZG91YmxlIFBBVVNFLgoJKGdmY19tYXRjaF9zaW1wbGVfd2hlcmUsIG1hdGNoX2ZvcmFsbF9oZWFkZXIsCglnZmNfbWF0Y2hfc2ltcGxlX2ZvcmFsbCk6IE5ldyBmdW5jdGlvbnMuCgkoZ2ZjX21hdGNoX2ZvcmFsbCk6IFVzZSBtYXRjaF9mb3JhbGxfaGVhZGVyLgoKMjAwNC0wOC0xOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBmb3J0cmFuLzE3MDkxCgkqIGdmb3J0cmFuLmggKGdmY19hY2Nlc3MpOiBHaXZlIEFDQ0VTU19VTktOT1dOIHZhbHVlIDAuCgkqIHN5bWJvbC5jIChnZmNfY2xlYXJfYXR0cik6IFVzZSBtZW1zZXQuCgoyMDA0LTA4LTE5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTQ5NzYKCVBSIGZvcnRyYW4vMTYyMjgKCSogZGF0YS5jIChhc3NpZ25fc3Vic3RyaW5nX2RhdGFfdmFsdWUpOiBSZW1vdmUuCgkoY3JlYXRlX2NoYXJhY3Rlcl9pbnRpYWxpemVyKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19hc3NpZ25fZGF0YV92YWx1ZSk6IFRyYWNrIHRoZSB0eXBlc3BlYyBmb3IgdGhlIGN1cnJlbnQKCXN1Ym9iamVjdC4gIFVzZSBjcmVhdGVfY2hhcmFjdGVyX2ludGlhbGl6ZXIuCgoyMDA0LTA4LTE5ICBFcmlrIFNjaG5ldHRlciAgPHNjaG5ldHRlckBhZWkubXBnLmRlPgoKCVBSIGZvcnRyYW4vMTY5NDYKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX3JlZHVjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfY2hlY2tfbWludmFsX21heHZhbCk6IFJlbW92ZWQuCgkoZ2ZjX2NoZWNrX3Byb2R1Y3QpOiBSZW1vdmVkLgoJKGdmY19jaGVja19zdW0pOiBSZW1vdmVkLgoJKiBpbnRyaW5zaWMuaDogQWRkL3JlbW92ZSBkZWNsYXJhdGlvbnMgZm9yIHRoZXNlLgoJKiBnZm9ydHJhbi5oOiBBZGQgZmllbGQgZjNyZWQgdG8gdW5pb24gZ2ZjX2NoZWNrX2YuCgkqIGludHJpbnNpYy5jIChhZGRfc3ltXzNyZWQpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX2Z1bmN0aW9ucyk6IFJlZ2lzdGVyIG1heHZhbCwgbWludmFsLCBwcm9kdWN0LCBhbmQgc3VtIGludHJpbnNpY3MKCXRocm91Z2ggYWRkX3N5bV8zcmVkLgoJKGNoZWNrX3NwZWNpZmljKTogSGFuZGxlIGYzcmVkIHVuaW9uIGZpZWxkLgoJKiBpcmVzb2x2ZS5jOiBXaGl0ZXNwYWNlIGNoYW5nZS4KCjIwMDQtMDgtMTggIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy10eXBlcy5jIChnZmNfc3ltX3R5cGUpOiBVc2UgcG9pbnRlciB0eXBlcyBmb3Igb3B0aW9uYWwgYXJncy4KCjIwMDQtMDgtMTggIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaWwuaWJtLmNvbT4KCglQUiBmb3J0cmFuLzEzMjc4CgkqIHRyYW5zLWlvLmMgKHRyYW5zZmVyX25hbWVsaXN0X2VsZW1lbnQpOiBOZXcuIFJlY3Vyc2l2ZWx5IGhhbmRsZQoJZGVyaXZlZC10eXBlIHZhcmlhYmxlcy4gIFBhc3Mgc3RyaW5nIGxlbmd0aHMuCgkoYnVpbGRfZHQpOiBDb2RlIG1vdmVkIHRvIGJ1aWxkX25hbWVsaXN0LCB3aXRoIHNvbWUKCWNoYW5nZXMgYW5kIGFkZGl0aW9ucy4KCShnZmNfYnVpbGRfaW9fbGlicmFyeV9mbmRlY2xzKTogRGVjbGFyZSB0aGUgZmlmdGgKCWFyZ3VtZW50IGluIHN0X3NldF9ubWxfdmFyX2NoYXIgLS0gc3RyaW5nX2xlbmd0aC4KCjIwMDQtMDgtMTcgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CglUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTMwODIKCSogZGVjbC5jIChnZXRfcHJvY19uYW1lKTogVXBkYXRlIG15c3RlcnkgY29tbWVudC4KCShnZmNfbWF0Y2hfZW50cnkpOiBDaGVjayBmb3IgZXJyb3JzIGVhcmxpZXIuICBBZGQgZW50cnkgcG9pbnQgdG8gbGlzdC4KCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2NvZGVfbm9kZSk6IFByaW50IEVYRUNfRU5UUlkgbm9kZXMuCgkqIGdmb3J0cmFuLmggKHN5bWJvbF9hdHRyaWJ1dGUpOiBBZGQgZW50cnlfbWFzdGVyLiAgRG9jdW1lbnQgZW50cnkuCgkoc3RydWN0IGdmY19lbnRyeV9saXN0KTogRGVmaW5lLgoJKGdmY19nZXRfZW50cnlfbGlzdCk6IERlZmluZS4KCShzdHJ1Y3QgZ2ZjX25hbWVzcGFjZSk6IEFkZCByZWZzIGFuZCBlbnRyaWVzLgoJKGVudW0gZ2ZjX2V4ZWNfb3ApOiBBZGQgRVhFQ19FTlRSWS4KCShzdHJ1Y3QgZ2ZjX2NvZGUpOiBBZGQgZXh0LmVudHJ5LgoJKiBtb2R1bGUuYyAoYWJfYXR0cmlidXRlLCBhdHRyX2JpdHMpOiBSZW1vdmUgQUJfRU5UUlkuCgkobWlvX3N5bWJvbF9hdHRyaWJ1dGUpOiBEb24ndCBzYXZlL3JldHVyZSBhZGRyLT5lbnRyeS4KCShtaW9fbmFtZXNwYWNlX3JlZik6IFJlZmNvdW50IG5hbWVzcGFjZXMuCgkqIHBhcnNlLmMgKGFjY2VwdF9zdGF0ZW1lbnQpOiBIYW5kbGUgU1RfRU5UUlkuCgkoZ2ZjX2ZpeHVwX3NpYmxpbmdfc3ltYm9scyk6IE1hcmsgc3ltYm9sIGFzIHJlZmVyZW5jZWQuCgkocGFyc2VfY29udGFpbmVkKTogRml4dXAgc2libGluZyByZWZlcmVuY2VzIHRvIGVudHJ5IHBvaW50cwoJYWZ0ZXIgcGFyc2luZyB0aGUgcHJvY2VkdXJlIGJvZHkuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9jb250YWluZWRfZm50eXBlKTogTmV3IGZ1bmN0aW9uLgoJKG1lcmdlX2FyZ3VtZW50X2xpc3RzLCByZXNvbHZlX2VudHJpZXMpOiBOZXcgZnVuY3Rpb25zLgoJKHJlc29sdmVfY29udGFpbmVkX2Z1bmN0aW9ucyk6IFVzZSB0aGVtLgoJKHJlc29sdmVfY29kZSk6IEhhbmRsZSBFWEVDX0VOVFJZLgoJKGdmY19yZXNvbHZlKTogQ2FsbCByZXNvbHZlX2VudHJpZXMuCgkqIHN0LmMgKGdmY19mcmVlX3N0YXRlbWVudCk6IEhhbmRsZSBFWEVDX0VOVFJZLgoJKiBzeW1ib2wuYyAoZ2ZjX2dldF9uYW1lc3BhY2UpOiBSZWZjb3VudCBuYW1lc3BhY2VzLgoJKGdmY19mcmVlX25hbWVzcGFjZSk6IERpdHRvLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcyk6IFRyZWF0IGFsbCBhcmdzIGFzCglvcHRpb25hbCB3aGVuIG11bHRpcGxlIGVudHJ5IHBvaW50cyBhcmUgcHJlc2VudC4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsKTogUmVtb3ZlIGluY29ycmVjdCBjaGVjay4KCShnZmNfZ2V0X2V4dGVybl9mdW5jdGlvbl9kZWNsKTogQWRkIGFzc2VydGlvbi4gIEZpeCBjb21lbnQuCgkoY3JlYXRlX2Z1bmN0aW9uX2FyZ2xpc3QsIHRyYW5zX2Z1bmN0aW9uX3N0YXJ0LCBidWlsZF9lbnRyeV90aHVua3MpOgoJTmV3IGZ1bmN0aW9ucy4KCShnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IFJlbmFtZSAuLi4KCShidWlsZF9mdW5jdGlvbl9kZWNsKTogLi4uIHRvIHRoaXMuCgkoZ2ZjX2NyZWF0ZV9mdW5jdGlvbl9kZWNsKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19nZW5lcmF0ZV9jb250YWluZWRfZnVuY3Rpb25zKTogVXNlIGl0LgoJKGdmY190cmFuc19lbnRyeV9tYXN0ZXJfc3dpdGNoKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogVXNlIG5ldyBmdW5jdGlvbnMuCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2VudHJ5KTogTmV3IGZ1bmN0aW9uLgoJKiB0cmFucy1zdG10LmggKGdmY190cmFuc19lbnRyeSk6IEFkZCBwcm90b3R5cGUuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfZnVuY3Rpb25fdHlwZSk6IEFkZCBlbnRyeSBwb2ludCBhcmd1bWVudC4KCSogdHJhbnMuYyAoZ2ZjX3RyYW5zX2NvZGUpOiBIYW5kbGUgRVhFQ19FTlRSWS4KCShnZmNfZ2VuZXJhdGVfbW9kdWxlX2NvZGUpOiBDYWxsIGdmY19jcmVhdGVfZnVuY3Rpb25fZGVjbC4KCSogdHJhbnMuaCAoZ2ZjX2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBSZW1vdmUuCgkoZ2ZjX2NyZWF0ZV9mdW5jdGlvbl9kZWNsKTogQWRkIHByb3RvdHlwZS4KCjIwMDQtMDgtMTUgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCglQUiBmb3J0cmFuLzE3MDMwCgkqIGY5NS1sYW5nLmMgKGdmY19pbml0X2J1aWx0aW5fZnVuY3Rpb25zKTogSW5pdGlhbGl6ZSB0aGUgYnVpbHRpbnMKCWZvciBjYWJzeyxmfSBhbmQgY29weXNpZ257LGZ9LgoJKiB0cmFucy1kZWNsLmMgKGdmb3JfZm5kZWNsX21hdGhfY2Fic2YpOiBEZWxldGUuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9jYWJzKTogRGVsZXRlLgoJKGdmb3JfZm5kZWNsX21hdGhfc2lnbjQpOiBEZWxldGUuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9zaWduOCk6IERlbGV0ZS4KCShnZmNfYnVpbGRfaW50cmluc2ljX2Z1bmN0aW9uX2RlY2xzKTogUmVtb3ZlIHRoZQoJaW5pdGlhbGl6aW5nIG9mIGNhYnN7LGZ9IGFuZCBjb3B5c2lnbnssZn0gZnVuY3Rpb25zLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Ficyk6IFVzZSB0aGUgYnVpbHRpbnMKCWluc3RlYWQgb2YgdGhlIGZ1bmN0aW9ucyBkZWZpbml0aW9ucy4KCShnZmNfY29udl9pbnRyaW5zaWNfc2lnbik6IExpa2V3aXNlLgoJKiB0cmFucy5oIChnZm9yX2ZuZGVjbF9tYXRoX2NhYnNmKTogRGVsZXRlLgoJKGdmb3JfZm5kZWNsX21hdGhfY2Ficyk6IERlbGV0ZS4KCShnZm9yX2ZuZGVjbF9tYXRoX3NpZ240KTogRGVsZXRlLgoJKGdmb3JfZm5kZWNsX21hdGhfc2lnbjgpOiBEZWxldGUuCgoyMDA0LTA4LTE1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3ZhbHVlKTogVXNlCglidWlsZF9pbnRfY3N0LgoJKiB0cmFucy1jb25zdC5jIChnZmNfYnVpbGRfc3RyaW5nX2NvbnN0LAoJZ2ZjX2luaXRfY29uc3RhbnRzLCBnZmNfY29udl9tcHpfdG9fdHJlZSwKCWdmY19jb252X2NvbnN0YW50X3RvX3RyZWUpOiBMaWtld2lzZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsKTogTGlrZXdpc2UuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaWJpdHMsCglnZmNfY29udl9pbnRyaW5zaWNfbGVuLCBwcmVwYXJlX2FyZ19pbmZvKTogTGlrZXdpc2UuCgkqIHRyYW5zLWlvLmMgKGFkZF9jYXNlLCBzZXRfZXJyb3JfbG9jdXMsIGJ1aWxkX2R0LAoJdHJhbnNmZXJfZXhwcik6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19sYWJlbF9hc3NpZ24sIGdmY190cmFuc19wYXVzZSwKCWdmY190cmFuc19zdG9wLCBnZmNfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCk6IExpa2V3aXNlLgoJKiB0cmFucy10eXBlcy5jIChnZmNfaW5pdF90eXBlcywgZ2ZjX2dldF9kdHlwZSk6IExpa2V3aXNlLgoJKiB0cmFucy5jIChnZmNfdHJhbnNfcnVudGltZV9jaGVjayk6IExpa2V3aXNlLgoKMjAwNC0wOC0xNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBSZW1vdmUgZGVhZCBjb2RlLgoKMjAwNC0wOC0xNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWFycnkuYyAoZ2ZjX3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbik6IFJlbW92ZSB1bnVzZWQgdmFyLgoKMjAwNC0wOC0xMyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuLmg6IEFkZCBjb21tZW50cy4KCSogcGFyc2UuYyAocGFyc2VfY29udGFpbmVkKTogRml4IGNvbW1lbnQgdHlwby4KCSogcmVzb2x2ZS5jICh3YXNfZGVjbGFyZWQpOiBEaXR0by4KCSogc3ltYm9sLmM6IERpdHRvLgoKMjAwNC0wOC0xMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZW91cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTY5MTcKCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBBZGQgZGZsb2F0IGFzIGFuIGFsaWFzIGZvciBkYmxlLgoKMjAwNC0wOC0xMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGY5NS1sYW5nLmMgKGdmY19pbml0X2J1aWx0aW5fZnVuY3Rpb25zKTogUmVtb3ZlCgkgX19idWlsdGluX3N0YWNrX2FsbG9jLCBhZGQgX19idWlsdGluX2FsbG9jYS4KCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbik6IFVzZSBERUNMX0VYUFIuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3RyYW5zX2F1dG9fY2hhcmFjdGVyX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgoyMDA0LTA4LTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtaW8uYyAodHJhbnNmZXJfZXhwcik6IEhhbmRsZSBwb2ludHRlcnMuCgoyMDA0LTA4LTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTY5MTkKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX2FkZF9sb29wX3NzX2NvZGUpOiBIYW5kbGUgR0ZDX1NTX0NPTVBPTkVOVC4KCShnZmNfY29udl9hcnJheV9pbmRleF9vZmZzZXQpOiBBbGxvdyAidGVtcG9yYXJ5IiB3aXRoIG5vbnplcm8gZGVsdGEuCgkoZ2ZjX3RyYW5zX3ByZWxvb3Bfc2V0dXAsIGdmY190cmFuc19zY2FsYXJpemVkX2xvb3BfYm91bmRhcnkpOgoJSGFuZGxlIEdGQ19TU19DT01QT05FTlQuCgkoZ2ZjX2NvbnZfc3Nfc3RhcnRzdHJpZGUpOiBEaXR0by4gIFNldCBzcy0+c2hhcGUuCgkoZ2ZjX2NvbnZfbG9vcF9zZXR1cCk6IFR3ZWFrIGNvbW1lbmRzLiBSZW1vdmUgZGVhZCBjb2RlLgoJVXNlIHNzLT5zaGFwZS4KCShnZmNfY29udl9hcnJheV9pbml0aWFsaXplcik6IENhbGwgc3BlY2lmaWMgaW5pdGlhbGl6ZXIgcm91dGluZXMuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX3RyYW5zX3N0cnVjdHVyZV9hc3NpZ24pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3RyYW5zX3N1YmFycmF5X2Fzc2lnbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfc3ViY29tcG9uZW50X2Fzc2lnbik6IE5ldyBmdWNudGlvbgoJKGdmY19jb252X3N0cnVjdHVyZSk6IFVzZSB0aGVtLgoJKiB0cmFucy5oIChnZmNfc3NfdHlwZSk6IEFkZCBHRkNfU1NfQ09NUE9ORU5ULgoJKGdmY19zcyk6IEFkZCBzaGFwZS4KCjIwMDQtMDgtMDggIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaWwuaWJtLmNvbT4KCgkqIHNpbXBsaWZ5LmMgKGdmY19zaW1wbGlmeV9zaGFwZSk6IEJ1Z2ZpeC4KCSogZXhwci5jIChnZmNfY29weV9zaGFwZV9leGNsdWRpbmcpOiBOZXcgZnVuY3Rpb24uCgkqIGdmb3J0cmFuLmggKGdmY19nZXRfc2hhcGUpOiBCdWdmaXguCgkoZ2ZjX2NvcHlfc2hhcGVfZXhjbHVkaW5nKTogQWRkZWQgZGVjbGFyYXRpb24uCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2FsbCwgZ2ZjX3Jlc29sdmVfYW55LCBnZmNfcmVzb2x2ZV9jb3VudCwKCWdmY19yZXNvbHZlX2NzaGlmdCwgZ2ZjX3Jlc29sdmVfZW9zaGlmdCwgZ2ZjX3Jlc29sdmVfbGJvdW5kLAoJZ2ZjX3Jlc29sdmVfdWJvdW5kLCBnZmNfcmVzb2x2ZV90cmFuc3Bvc2UpOiBBZGRlZCBjb21waWxlCgl0aW1lIHJlc29sdXRpb24gb2Ygc2hhcGUuCgoyMDA0LTA4LTA2ICBKYW5uZSBCbG9tcXZpc3QgIDxqYmxvbXF2aUBjYy5odXQuZmk+CgoJKiBpbnRyaW5zaWMuYyAoYWRkX3N1YnJvdXRpbmVzKTogQWRkIGdldGVudiBhbmQKCWdldF9lbnZpcm9ubWVudF92YXJpYWJsZS4gKGFkZF9zeW1fNXMpOiBOZXcgZnVuY3Rpb24uCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9nZXRfZW52aXJvbm1lbnRfdmFyaWFibGUpOiBBZGQKCXByb3RvdHlwZS4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfZ2V0X2Vudmlyb25tZW50X3ZhcmlhYmxlKTogTmV3CglmdW5jdGlvbi4KCjIwMDQtMDgtMDYgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBGaXggdGhlIG51bWJlciBvZgoJX19idWlsdGluX3Bvd1tmXSBhcmd1bWVudHMuCgoyMDA0LTA4LTA2ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jOiBBZGQgI2RlZmluZSBmb3IgbW9kZWwgbnVtYmVycy4gIFJlbW92ZSBnbG9iYWwgR01QIHZhcmlhYmxlcy4KCShuYXR1cmFsX2xvZ2FyaXRobSxjb21tb25fbG9nYXJpdGhtLGV4cG9uZW50aWFsLHNpbmUsCgljb3NpbmUsYXJjdGFuZ2VudCxoeXBlcmNvcyxoeXBlcnNpbmUgKTogUmVtb3ZlLgoJKGdmY19tcGZyX3RvX21weixnZmNfc2V0X21vZGVsX2tpbmQsZ2ZjX3NldF9tb2RlbCk6IE5ldyBmdW5jdGlvbnMuCgkoYXJjdGFuZ2VudDIsZ2ZjX2FyaXRoX2luaXRfMSxnZmNfYXJpdGhfZG9uZV8xCglnZmNfY2hlY2tfcmVhbF9yYW5nZSwgZ2ZjX2NvbnN0YW50X3Jlc3VsdCwgZ2ZjX3JhbmdlX2NoZWNrLAoJZ2ZjX2FyaXRoX3VtaW51cyxnZmNfYXJpdGhfcGx1cywgZ2ZjX2FyaXRoX21pbnVzLCBnZmNfYXJpdGhfdGltZXMsCglnZmNfYXJpdGhfZGl2aWRlLGNvbXBsZXhfcmVjaXByb2NhbCxjb21wbGV4X3Bvd191aSwKCWdmY19hcml0aF9wb3dlcixnZmNfY29tcGFyZV9leHByLGNvbXBhcmVfY29tcGxleCxnZmNfY29udmVydF9yZWFsLAoJZ2ZjX2NvbnZlcnRfY29tcGxleCxnZmNfaW50MnJlYWwsZ2ZjX2ludDJjb21wbGV4LAoJZ2ZjX3JlYWwyaW50LGdmY19yZWFsMnJlYWwsZ2ZjX3JlYWwyY29tcGxleCwKCWdmY19jb21wbGV4MmludCxnZmNfY29tcGxleDJyZWFsLGdmY19jb21wbGV4MmNvbXBsZXgpOiBDb252ZXJ0IEdNUAoJdG8gTVBGUiwgdXNlIG5ldyBmdW5jdGlvbnMuCgkqIGFyaXRoLmg6IFJlbW92ZSBleHRlcm4gZ2xvYmFsIHZhcmlhYmxlcy4KCShuYXR1cmFsX2xvZ2FyaXRobSxjb21tb25fbG9nYXJpdGhtLGV4cG9uZW50aWFsLCBzaW5lLCBjb3NpbmUsCglhcmN0YW5nZW50LGh5cGVyY29zLGh5cGVyc2luZSk6IFJlbW92ZSBwcm90b3R5cGVzLgoJKGFyY3RhbmdlbnQyKTogVXBkYXRlIHByb3RvdHlwZSBmcm9tIEdNUCB0byBNUEZSLgoJKGdmY19tcGZyX3RvX21weiwgZ2ZjX3NldF9tb2RlbF9raW5kLGdmY19zZXRfbW9kZWwpOiBBZGQgcHJvdG90eXBlcy4KCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2V4cHIpOiBDb252ZXJ0IEdNUCB0byBNUEZSLgoJKiBleHByLmMgKGZyZWVfZXhwcjAsZ2ZjX2NvcHlfZXhwcik6IENvbnZlcnQgR01QIHRvIE1QRlIuCgkqIGdmb3J0cmFuLmggKEdGQ19SRUFMX0JJVFMpOiBSZW1vdmUuCgkoYXJpdGgpOiBBZGQgQVJJVEhfTkFOLgoJSW5jbHVkZSBtcGZyLmguICBEZWZpbmUgR0ZDX1JORF9NT0RFLgoJUmVuYW1lIEdDQ19HRk9SVFJBTl9IIEdGQ19HRkNfSC4KCShnZmNfZXhwcik6IENvbnZlcnQgR01QIHRvIE1QRlIuCgkqIG1vZHVsZS5jOiBBZGQgYXJpdGguaCwgY29ycmVjdCB0eXBlIGluIGNvbW1lbnQuCgkobWlvX2dtcF9yZWFsKTogQ29udmVydCBHTVAgdG8gTVBGUi4KCShtaW9fZXhwcik6ICBVc2UgZ2ZjX3NldF9tb2RlbF9raW5kKCkuCgkqIHByaW1hcnkuYzogIFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZSB3aXRoIDIwMDQuCgkobWF0Y2hfcmVhbF9jb25zdGFudCxtYXRjaF9jb25zdF9jb21wbGV4X3BhcnQpOiBDb252ZXJ0IEdNUCB0byBNUEZSLgoJKiBzaW1wbGlmeS5jOiBSZW1vdmUgZ2xvYmFsIEdNUCB2YXJpYWJsZXMKCShnZmNfc2ltcGxpZnlfYWJzLGdmY19zaW1wbGlmeV9hY29zLGdmY19zaW1wbGlmeV9haW1hZywKCWdmY19zaW1wbGlmeV9haW50LGdmY19zaW1wbGlmeV9kaW50LGdmY19zaW1wbGlmeV9hbmludCwKCWdmY19zaW1wbGlmeV9kbmludCxnZmNfc2ltcGxpZnlfYXNpbixnZmNfc2ltcGxpZnlfYXRhbiwKCWdmY19zaW1wbGlmeV9hdGFuMixnZmNfc2ltcGxpZnlfY2VpbGluZyxzaW1wbGlmeV9jbXBseCwKCWdmY19zaW1wbGlmeV9jb25qZyxnZmNfc2ltcGxpZnlfY29zLGdmY19zaW1wbGlmeV9jb3NoLAoJZ2ZjX3NpbXBsaWZ5X2RpbSxnZmNfc2ltcGxpZnlfZHByb2QsZ2ZjX3NpbXBsaWZ5X2Vwc2lsb24sCglnZmNfc2ltcGxpZnlfZXhwLGdmY19zaW1wbGlmeV9leHBvbmVudCxnZmNfc2ltcGxpZnlfZmxvb3IsCglnZmNfc2ltcGxpZnlfZnJhY3Rpb24sZ2ZjX3NpbXBsaWZ5X2h1Z2UsZ2ZjX3NpbXBsaWZ5X2ludCwKCWdmY19zaW1wbGlmeV9pZml4LGdmY19zaW1wbGlmeV9pZGludCxnZmNfc2ltcGxpZnlfbG9nLAoJZ2ZjX3NpbXBsaWZ5X2xvZzEwLHNpbXBsaWZ5X21pbl9tYXgsZ2ZjX3NpbXBsaWZ5X21vZCwKCWdmY19zaW1wbGlmeV9tb2R1bG8sZ2ZjX3NpbXBsaWZ5X25lYXJlc3Qsc2ltcGxpZnlfbmludCwKCWdmY19zaW1wbGlmeV9ycnNwYWNpbmcsZ2ZjX3NpbXBsaWZ5X3NjYWxlLAoJZ2ZjX3NpbXBsaWZ5X3NldF9leHBvbmVudCxnZmNfc2ltcGxpZnlfc2lnbixnZmNfc2ltcGxpZnlfc2luLAoJZ2ZjX3NpbXBsaWZ5X3NpbmgsZ2ZjX3NpbXBsaWZ5X3NwYWNpbmcsZ2ZjX3NpbXBsaWZ5X3NxcnQsCglnZmNfc2ltcGxpZnlfdGFuLGdmY19zaW1wbGlmeV90YW5oLGdmY19zaW1wbGlmeV90aW55LAoJZ2ZjX3NpbXBsaWZ5X2luaXRfMSxnZmNfc2ltcGxpZnlfZG9uZV8xKTogIENvbnZlcnQgR01QIHRvIE1QRlIuCglVc2UgbmV3IGZ1bmN0aW9ucy4KCSogdHJhbnMtY29uc3QuYyAoZ2ZjX2NvbnZfbXBmcl90b190cmVlKTogUmVuYW1lIGZyb20KCWdmY19jb252X21wZl90b190cmVlLiAgQ29udmVydCBpdCB0byB1c2UgTVBGUgoJKGdmY19jb252X2NvbnN0YW50X3RvX3RyZWUpOiBVc2UgaXQuCgkqIHRyYW5zLWNvbnN0Lmg6IFVwZGF0ZSBwcm90b3R5cGUgZm9yIGdmY19jb252X21wZnJfdG9fdHJlZSgpLgoJKiB0cmFucy1pbnRyaW5zaWMuYzogQWRkIGFyaXRoLmgsIHJlbW92ZSBnbXAuaAoJKGdmY19jb252X2ludHJpbnNpY19haW50LGdmY19jb252X2ludHJpbnNpY19tb2QpOiBDb252ZXJ0IEdNUCB0byBNUEZSLgoKMjAwNC0wOC0wNiAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBpbC5pYm0uY29tPgoJUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19hbGxvY2F0ZV9hcnJheV9zdG9yYWdlLAoJZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXksIGdmY19hZGRfbG9vcF9zc19jb2RlLAoJZ2ZjX2NvbnZfbG9vcF9zZXR1cCk6IEZvciBmdW5jdGlvbnMsIGlmIHRoZSBzaGFwZSBvZiB0aGUgcmVzdWx0CglpcyBub3Qga25vd24gaW4gY29tcGlsZS10aW1lLCBnZW5lcmF0ZSBhbiBlbXB0eSBhcnJheSBkZXNjcmlwdG9yIGZvcgoJdGhlIHJlc3VsdCBhbmQgbGV0IHRoZSBjYWxsZWUgdG8gYWxsb2NhdGUgdGhlIG1lbW9yeS4KCShnZmNfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcyk6IERvIG5vdGhpbmcgZm9yIHBvaW50ZXJzLgoJKGdmY19jb252X2V4cHJfZGVzY3JpcHRvcik6IFVzZSBmdW5jdGlvbiByZXR1cm4gdmFsdWVzIGRpcmVjdGx5LgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBBbHdheXMgYWRkIGJ5cmVmIGNhbGwKCWluc24gdG8gcHJlIGNoYWluLgoJKGdmY190cmFuc19wb2ludGVyX2Fzc2lnbm1lbnQpOiBBZGQgY29tbWVudHMuCgkoZ2ZjX3RyYW5zX2FycmF5ZnVuY19hc3NpZ24pOiBEb24ndCBjaGFpbiBvbiBleHByZXNzaW9uLgoKMjAwNC0wOC0wMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBEb24ndCB3YXJuIGFib3V0IHRoZSB1c2UgR05VCglleHRlbnNpb25zIGJ5IGRlZmF1bHQuCgkoZ2ZjX3Bvc3Rfb3B0aW9ucyk6IFdhcm4gYWJvdXQgR05VIGV4dGVuc2lvbnMgd2l0aCAtcGVkYW50aWMuCgkoZ2ZjX2hhbmRsZV9vcHRpb24pOiBEb24ndCB3YXJuIGFib3V0IEdOVSBleHRlbnNpb25zIHdpdGggLXN0ZD1nbnUuCgoyMDA0LTA3LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9leHByX3JlZmVyZW5jZSk6IENyZWF0ZSBhIENPTlNUX0RFQ0wKCWZvciBUUkVFX0NPTlNUQU5Ucy4KCjIwMDQtMDctMjUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmFucy1kZWNsLmMgKGdmY19idWlsZF9mdW5jdGlvbl9kZWNsKTogU2V0IERFQ0xfQVJUSUZJQ0lBTAoJYW5kIERFQ0xfSUdOT1JFRF9QIG9uIFJFU1VMVF9ERUNMLgoJKGdmY19nZW5lcmF0ZV9jb25zdHJ1Y3RvcnMpOiBMaWtld2lzZS4KCjIwMDQtMDctMTggIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjQ2NQoJKiBsYW5nLm9wdCAoZmZpeGVkLWxpbmUtbGVuZ3RoLW5vbmUsIGZmaXhlZC1saW5lLWxlbmd0aC0pOiBOZXcKCW9wdGlvbnMuCgkoZmZpeGVkLWxpbmUtbGVuZ3RoLTgwLCBmZml4ZWQtbGluZS1sZW5ndGgtMTMyKTogUmVtb3ZlLgoJKiBvcHRpb25zLmMgKGdmY19oYW5kbGVfb3B0aW9ucyk6IERlYWwgd2l0aCBjaGFuZ2VkIG9wdGlvbnMuCgkqIHNjYW5uZXIuYyAobG9hZF9saW5lKTogQ2hhbmdlIHNlY29uZCBhcmcgdG8gJ2NoYXIgKionLAoJYWxsb2NhdGUgaWYgcG9pbnRpbmcgdG8gTlVMTC4gS2VlcCB0cmFjayBvZiBidWZmZXIncyBsZW5ndGguCglBZGFwdCBidWZmZXIgc2l6ZSB0byBvdmVybG9uZyBsaW5lcy4gUGFkIGxpbmVzIHRvIGZ1bGwgbGVuZ3RoCglpbiBmaXhlZCBmb3JtLgoJKGxvYWRfZmlsZSk6IEFkYXB0IHRvIG5ldyBpbnRlcmZhY2Ugb2YgbG9hZF9saW5lLgoKMjAwNC0wNy0xNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmFucy5oIChidWlsdGluX2Z1bmN0aW9uKTogRGVjbGFyZS4KCjIwMDQtMDctMTYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjQwNAoJKHBhcnRzIHBvcnRlZCBmcm9tIGc5NSkKCSogcGFyc2UuaCAoZ2ZjX3N0YXRlX2RhdGEpOiBOZXcgZmllbGQgZG9fdmFyaWFibGUuCgkoZ2ZjX2NoZWNrX2RvX3ZhcmlhYmxlKTogQWRkIHByb3RvdHlwZS4KCSogcGFyc2UuYyAocHVzaF9zdGF0ZSk6IEluaXRpYWxpemUgZmllbGQgJ2RvX3ZhcmlhYmxlJy4KCShnZmNfY2hlY2tfZG9fdmFyaWFibGUpOiBOZXcgZnVuY3Rpb24uCgkocGFyc2VfZG9fYmxvY2spOiBSZW1lbWJlciBkbyBpdGVyYXRvciB2YXJpYWJsZS4KCShwYXJzZV9maWxlKTogSW5pdGlhbGl6ZSBmaWVsZCAnZG9fdmFyaWFibGUnLgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfYXNzaWdubWVudCwgZ2ZjX21hdGNoX2RvLAoJZ2ZjX21hdGNoX2FsbG9jYXRlLCBnZmNfbWF0Y2hfbnVsbGlmeSwgZ2ZjX21hdGNoX2RlYWxsb2NhdGUpOgoJQWRkIHByZXZpb3VzbHkgbWlzc2luZyBjaGVja3MuCgkoZ2ZjX21hdGNoX3JldHVybik6IFJlZm9ybWF0IGVycm9yIG1lc3NhZ2UuCgkqIGlvLmMgKG1hdGNoX291dF90YWcpOiBOZXcgZnVuY3Rpb24uCgkobWF0Y2hfb3Blbl9lbGVtZW50LCBtYXRjaF9jbG9zZV9lbGVtZW50LAoJbWF0Y2hfZmlsZV9lbGVtZW50LCBtYXRjaF9kdF9lbGVtZW50KTogQ2FsbCBtYXRjaF9vdXRfdGFnCglpbnN0ZWFkIG9mIG1hdGNoX3Z0YWcgd2hlcmUgYXBwcm9wcmlhdGUuCgkobWF0Y2hfaW9faXRlcmF0b3IsIG1hdGNoX2lvX2VsZW1lbnQpOiBBZGQgbWlzc2luZyBjaGVjay4KCShtYXRjaF9pbyk6IFJlZm9ybWF0IGVycm9yIG1lc3NhZ2UuCgkobWF0Y2hfaW5xdWlyZV9lbGVtZW50KTogQ2FsbCBtYXRjaF9vdXRfdGFnIHdoZXJlIGFwcHJvcHJpYXRlLgoKCSogcGFyc2UuYyAoZ2ZjX2NoZWNrX2RvX3ZhcmlhYmxlKTogRml4IGVycm9yIGxvY3VzLgoKMjAwNC0wNy0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1MTI5CgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBDcmVhdGUgYSBuZXcgY2hhcmRlY2wKCWZvciBldmVyeSBhc3N1bWVkIGxlbmd0aCBjaGFyYWN0ZXIgZHVtbXkgYXJndW1lbnQuCgoJUFIgZm9ydHJhbi8xNTE0MAoJKiB0cmFucy1kZWNsLmMgKGdmY190cmFuc19kZWZlcnJlZF92YXJzKTogUmVtb3ZlIGJvZ3VzIGFzc2VydGlvbi4KCglQUiBmb3J0cmFuLzEzNzkyCgkqIHNpbXBsaWZ5LmMgKGdmY19zaW1wbGlmeV9ib3VuZCk6IENvcHkgdGhlIGJvdW5kIGV4cHJlc3Npb24uCgoyMDA0LTA3LTE1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKIAlQUiBmb3J0cmFuLzE1MzI0CgkqIHRyYW5zLWFycmF5LmMgZ2ZjX3RyYW5zX2c3N19hcnJheSwKCWdmY190cmFuc19kdW1teV9hcnJheV9iaWFzKTogRG9uJ3QgY2FsbCBnZmNfdHJhbnNfc3RyaW5nX2luaXQKCWZvciBhc3N1bWVkIGxlbmd0aCBjaGFyYWN0ZXJzLgoJKGdmY19jb252X2V4cHJfZGVzY3JpcHRvcik6IFNldCBzZS0+c3RyaW5nX2xlbmd0aCBpZiBkZWFsaW5nCgl3aXRoIGEgY2hhcmFjdGVyIGV4cHJlc3Npb24uCgkoZ2ZjX2N2b252X2FycmF5X3BhcmFtZXRlcik6IFBhc3Mgc3RyaW5nIGxlbmd0aCB3aGVuIHBhc3NpbmcKCWNoYXJhY3RlciBhcnJheSBhY2NvcmRpbmcgdG8gZzc3IGNvbnZlbnRpb25zLgoKMjAwNC0wNy0xMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4cHIuYyAoZ2ZjX2NoZWNrX2Fzc2lnbl9zeW1ib2wpOiBIYW5kbGUgcG9pbnRlciBhc3NpZ25tZW50cy4KCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbik6IFJlbW92ZQoJaW5pdGlhbGl6YXRpb24gY29kZS4KCSogdHJhbnMtY29tbW9uLmMgKGNyZWF0ZV9jb21tb24pOiBVc2UgZ2ZjX2NvbnZfaW5pdGlhbGl6ZXIuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9zeW1ib2xfZGVjbCk6IFVzZSBnZmNfY29udl9pbml0aWFsaXplci4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9pbml0aWFsaXplcik6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9zdHJ1Y3R1cmUpOiBVc2UgaXQuCgkqIHRyYW5zLmggKGdmY19jb252X2luaXRpYWxpemVyKTogQWRkIHByb3RvdHlwZS4KCjIwMDQtMDctMTEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNTk4NgoJKiBwYXJzZS5jIChnZmNfZml4dXBfc2libGluZ19zeW1ib2xzKTogQWxzbyBsb29rIGZvciB1bnR5cGVkCgl2YXJpYWJsZXMuCgkocGFyc2VfY29udGFpbmVkKTogTWFyayBjb250YWluZWQgc3ltYm9scyBhcyByZWZlcmVuY2VkLgoKMjAwNC0wNy0xMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE2NDU1CgkqIG1vZHVsZS5jIChnZmNfZHVtcF9tb2R1bGUsIGdmY191c2VfbW9kdWxlKTogUHJpbnQgbG9jdXMKCXdoZW4gb3BlbmluZyBvZiBtb2R1bGUgZmlsZSBmYWlscy4KCglQUiBmb3J0cmFuLzE2NDA0CgkqIGlvLmMgKG1hdGNoX2lvKTogRmxhZyAnV1JJVEUoLi4uKSwgLi4uJyBhcyBleHRlbnNpb24uCgoJUFIgZm9ydHJhbi8xNjQwNAoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfcHJvZ3JhbSk6IEEgcHJvZ3JhbSBuYW1lIGlzIG9ibGlnYXRvcnkuCgkoZ2ZjX21hdGNoX3JldHVybik6IFJFVFVSTiBpbiBtYWluIHByb2dyYW0gaXMgYW4gZXh0ZW5zaW9uLgoJKGdmY19tYXRjaF9ibG9ja19kYXRhKTogQSBzcGFjZSBpcyByZXF1aXJlZCBiZWZvcmUgYSBibG9jayBkYXRhCgluYW1lLgoKCVBSIGZvcnRyYW4vMTY0MzMKCSogcHJpbWFyeS5jIChtYXRjaF9ib3pfY29uc3RhbnQpOiBDYWxsIGdmY19ub3RpZnlfc3RkIG9ubHkgaWYKCXdlIGFjdHVhbGx5IGhhdmUgYSBub24tc3RhbmRhcmQgYm96LWxpdGVyYWwtY29uc3RhbnQuCgoJUFIgZm9ydHJhbi8xNTc1NAoJKiBleHByLmMgKGdmY19jaGVja19hc3NpZ24pOiBQcmludCByYW5rcyBpZiBpbmNvbXBhdGlibGUuIElzc3VlCgl3YXJuaW5nIGlmIGFzc2lnbmluZyBOVUxMKCkuCgoyMDA0LTA3LTExICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGY5NS1sYW5nLmMgKHNldF9ibG9jayk6IFJlbW92ZS4KCShnZmNfY2xlYXJfYmluZGluZ19zdGFjayk6IE5ldy4KCShMQU5HX0hPT0tTX0NMRUFSX0JJTkRJTkdfU1RBQ0spOiBEZWZpbmUuCgkoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBSZW1vdmUgYmxvY2tfY3JlYXRlZF9ieV9iYWNrX2VuZC4KCShjbGVhcl9iaW5kaW5nX2xldmVsKTogTGlrZXdpc2UuCgkocG9wbGV2ZWwpOiBEb24ndCBoYW5kbGUgYmxvY2tfY3JlYXRlZF9ieV9iYWNrX2VuZC4KCjIwMDQtMDctMTAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1kZWNsLmMgKGdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlKTogTm90aGluZyB0byBkbyBpZgoJc3ltYm9sIGlzIGluIGNvbW1vbiwgYmVjYXVzZSB3ZSAuLi4KCShnZmNfZ2VuZXJhdGVfbW9kdWxlX3ZhcnMpOiBDYWxsIGdmY190cmFuc19jb21tb24uCgoyMDA0LTA3LTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX2J1aWxkX251bGxfZGVzY3JpcHRvcik6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfc3RhdGljX2FycmF5X3BvaW50ZXIpOiBVc2UgaXQuCgkqIHRyYW5zLWFycmF5LmggKGdmY19idWlsZF9udWxsX2Rlc2NyaXB0b3IpOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X3N0cnVjdHVyZSk6IEhhbmRsZSBhcnJheSBwb2ludGVycy4KCjIwMDQtMDctMTAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjMzNgoJKiBkZWNsLmMgKGdmY19tYXRjaF9zYXZlKTogVXNlLWFzc29jaWF0ZWQgY29tbW9uIGJsb2NrCglkb2Vzbid0IGNvbGxpZGUuCgkqIGdmb3J0cmFuLmggKGdmY19jb21tb25faGVhZCk6IEFkZCBuZXcgZmllbGQgJ25hbWUnLgoJRml4IHR5cG8gaW4gY29tbWVudCBhZnRlciAjZW5kaWYuCgkqIG1hdGNoLmMgKGdmY19nZXRfY29tbW9uKTogQWRkIG5ldyBhcmd1bWVudCBmcm9tX2NvbW1vbiwKCW1hbmdsZSBuYW1lIGlmIGZsYWcgaXMgc2V0LCBmaWxsIGluIG5ldyBmaWVsZCBpbiBzdHJ1Y3R1cmUKCWdmY19jb21tb25faGVhZC4KCShtYXRjaF9jb21tb24pOiBTZXQgbmV3IGFyZyBpbiBjYWxsIHRvIGdmY19nZXRfY29tbW9uLAoJdXNlLWFzc29jaWF0ZWQgY29tbW9uIGJsb2NrIGRvZXNuJ3QgY29sbGlkZS4KCSogbWF0Y2guaCAoZ2ZjX2dldF9jb21tb24pOiBBZGFwdCBwcm90b3R5cGUuCgkqIG1vZHVsZS5jIChsb2FkX2NvbW1vbnMpOiBTZXQgbmV3IGFyZyBpbiBjYWxsIHRvCglnZmNfZ2V0X2NvbW1vbi4KCSogc3ltYm9sLmMgKGZyZWVfY29tbW9uX3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2ZyZWVfbmFtZXNwYWNlKTogQ2FsbCBuZXcgZnVuY3Rpb24uCgkqIHRyYW5zLWNvbW1vbi5jIChzZXZlcmFsIGZ1bmN0aW9ucyk6IFJlbW92ZSBhcmd1bWVudAoJJ25hbWUnLCB1c2UgbmFtZSBmcm9tIGdmY19jb21tb25faGVhZCBpbnN0ZWFkLgoKMjAwNC0wNy0xMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGV4cHIuYyAoZ2ZjX2NoZWNrX3BvaW50ZXJfYXNzaWduKTogVmVyaWZ5IHRoYXQgcmFuayBvZiB0aGUgTEhTCglhbmQgUkhTIG1hdGNoLiBSZXR1cm4gZWFybHkgaWYgdGhlIFJIUyBpcyBOVUxMKCkuCgoJUFIgZm9ydHJhbi8xNjMzNgoJKiBtYXRjaC5jIChtYXRjaF9jb21tb24pOiBGaXggZXJyb3IgcmVwb3J0aW5nIGZvciB1c2VkIGNvbW1vbi4KCglQUiBmb3J0cmFuLzE1OTY5CgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfc3RydWN0dXJlKTogSGFuZGxlIGluaXRpYWxpemF0aW9uCglvZiBzY2FsYXIgcG9pbnRlciBjb21wb25lbnRzLgoKCSogcGFyc2UuYyAoZGVjb2RlX3N0YXRlbWVudCk6IEZpeCBtYXRjaGluZyBvZiBCTE9DSyBEQVRBLgoKCSogdHJhbnMtZGVjbC5jIChnZW5lcmF0ZV9sb2NhbF9kZWNsKTogUmVtb3ZlIHdvcmthcm91bmQgb2Jzb2xldGVkCglieSBmaXggZm9yIFBSIDE1NDgxLgoKMjAwNC0wNy0xMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWNvbW1vbi5jOiBGaXggd2hpdGVzcGFjZSBpc3N1ZXMsIG1ha2UgdmFyaWFibGUgbmFtZXMKCW1vcmUgcmVhZGFibGUuCgkoY3JlYXRlX2NvbW1vbik6IEFkZGl0aW9uYWxseSwgbWFrZSBsb29wIGxvZ2ljIG1vcmUgb2J2aW91cy4KCjIwMDQtMDctMTAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTM0MTUKCSogdHJhbnMtY29tbW9uLmMgKGNhbGN1bGF0ZV9sZW5ndGgpOiBSZW1vdmUgLi4uCgkoZ2V0X3NlZ21lbnRfaW5mbyk6IE1lcmdlIGludG8gaGVyZS4gIFNhdmUgZmllbGQgdHlwZS4KCShidWlsZF9maWVsZCk6IFVzZSBzYXZlZCB0eXBlLgoJKGNyZWF0ZV9jb21tb24sIG5ld19jb25kaXRpb24sIG5ld19zZWdtZW50LCBmaW5pc2hfZXF1aXZhbGVuY2VzKToKCVVzZSBuZXcgZ2V0X3NlZ21lbnRfaW5mby4KCSogdHJhbnMtdHlwZXMuYzogVXBkYXRlIGNvbW1lbnQuCgoyMDA0LTA3LTA5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTQwNzcKCSogbW9kdWVsZS5jIChtaW9fc3ltYm9sKTogRG9uJ3QgSS9PIGluaXRpYWwgdmFsdWVzIHVubGVzcwoJc3ltYm9sIGlzIGEgcGFyYW1ldGVyLgoKMjAwNC0wNy0wOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzEzMjAxCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9zeW1ib2wpOiBWZXJpZnkgdGhhdCB0aGUgc2hhcGUgb2YgYQoJcGFyYW1ldGVyIGFycmF5IGlzIG5vdCBvbmx5IGV4cGxpY2l0LCBidXQgYWxzbyBjb25zdGFudC4KCSogYXJyYXkuYyAoZ2ZjX2lzX2NvbXBpbGVfdGltZV9zaGFwZSk6IE5ldyBmdW5jdGlvbi4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX2lzX2NvbXBpbGVfdGltZV9zaGFwZSk6IEFkZCBwcm90b3R5cGUuCgoyMDA0LTA3LTA5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU0ODEKCVBSIGZvcnRyYW4vMTMzNzIKCVBSIGZvcnRyYW4vMTM1NzUKCVBSIGZvcnRyYW4vMTU5NzgKCSogbW9kdWxlLmMgKHdyaXRlX3N5bWJvbCwgd3JpdGVfc3ltdHJlZSk6IFJlbW92ZSB3b3JrYXJvdW5kLgoJKiBwcmltYXJ5LmMgKG1hdGNoX2FjdHVhbF9hcmdsaXN0KTogRW5oYW5jZSBjb21tZW50LgoJKGdmY19tYXRjaF9ydmFsdWUpOiBIYW5kbGUgZnVuY3Rpb24gY2FsbCB3aXRoIGZpcnN0IGFyZ3VtZW50CglhIGtleXdvcmQgYXJndW1lbnQgY29ycmVjdGx5LgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQ2hhbmdlIGNhbGwgdG8KCWdmY19zZXRfZGVmYXVsdF90eXBlIHRvIGlzc3VlIGVycm9yIGlmIG5vIGltcGxpY2l0IHR5cGUKCWNhbiBiZSBmb3VuZC4KCSogdHJhbnMtZGVjbC5jIChnZmNfY3JlYXRlX21vZHVsZV92YXJpYWJsZSk6IFJlbW92ZSB3b3JrYXJvdW5kLgoKMjAwNC0wNy0wOCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGludHJpbnNpYy5jIChhZGRfc3ltXzRzKTogTmV3IGZ1bmN0aW9uLgoJKGFkZF9zdWJyb3V0aW5lcyk6IENoYW5nZSBnZmNfYWRkX3N5bV8/IHRvIGdmY19hZGRfc3ltXz9zLgoKMjAwNC0wNy0wNCAgSmFubmUgQmxvbXF2aXN0ICA8amJsb21xdmlAY2MuaHV0LmZpPgoJUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBmb3J0cmFuLzE1MjgwCglQUiBmb3J0cmFuLzE1NjY1CgkqIGdmb3J0cmFuLmggKGVudW0gZ2ZjX2dlbmVyaWNfaXN5bV9pZCk6IEFkZCBHRkNfSVNZTV9JQVJHQyBhbmQKCUdGQ19JU1lNX0NPTU1BTkRfQVJHVU1FTlRfQ09VTlQuCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogIElkZW50aWZ5IGlhcmdjLiAgQWRkCgljb21tYW5kX2FyZ3VtZW50X2NvdW50LgoJKGFkZF9zdWJyb3V0aW5lcyk6IFJlc29sdmUgZ2V0YXJnLiAgQWRkIGdldF9jb21tYW5kIGFuZAoJZ2V0X2NvbW1hbmRfYXJndW1lbnQuCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9nZXRhcmcsIGdmY19yZXNvbHZlX2dldF9jb21tYW5kLAoJZ2ZjX3Jlc29sdmVfZ2V0X2NvbW1hbmRfYXJndW1lbnQpOiBBZGQgcHJvdG90eXBlcy4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfZ2V0YXJnLCBnZmNfcmVzb2x2ZV9nZXRfY29tbWFuZCwKCWdmY19yZXNvbHZlX2dldF9jb21tYW5kX2FyZ3VtZW50KTogTmV3IGZ1bmN0aW9ucy4KCSogdHJhbnMtZGVjbC5jIChnZm9yX2ZuZGVjbF9pYXJnYyk6IE5ldyB2YXJpYWJsZS4KCShnZmNfYnVpbGRfaW50cmluc2ljX2Z1bmN0aW9uX2RlY2xzKTogU2V0IGl0LgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2lhcmdjKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVzZSBpdC4KCSogdHJhbnMuaCAoZ2Zvcl9mbmRlY2xfaWFyZ2MpOiBEZWNsYXJlLgoKMjAwNC0wNy0wNCAgTWF0dGhpYXMgS2xvc2UgIDxkb2tvQGRlYmlhbi5vcmc+CgoJKiBNYWtlLWxhbmcuaW46IEdlbmVyYXRlIGFuZCBpbnN0YWxsIGdmb3J0cmFuIG1hbiBwYWdlLgoJKiBpbnZva2UudGV4aTogUmVtb3ZlIGV4dHJhICdAYyBtYW4gZW5kJy4KCjIwMDQtMDctMDQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfbWFya19hZGRyZXNzYWJsZSk6IERvbid0IHB1dF92YXJfaW50b19zdGFjay4KCjIwMDQtMDctMDQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdmY19tYXRjaF9pbXBsaWNpdF9yYW5nZSk6IERvbid0IHVzZSB0eXBlc3BlYy4KCShnZmNfbWF0Y2hfaW1wbGljaXQpOiBIYW5kbGUgY2hhcmFjdGVyIHNlbGVjdG9ycy4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX3NldF9pbXBsaWNpdCk6IFJlbW92ZSBwcm90b3R5cGUuCgkoZ2ZjX2FkZF9uZXdfaW1wbGljaXRfcmFuZ2UsIGdmY19tZXJnZV9uZXdfaW1wbGljaXQpOiBVcGRhdGUuCgkqIHBhcnNlLmMgKGFjY2VwdF9zdGF0ZW1lbnQpOiBEb24ndCBjYWxsIGdmY19zZXRfaW1wbGljaXQuCgkqIHN5bWJvbC5jIChuZXdfdHMpOiBSZW1vdmUuCgkoZ2ZjX3NldF9pbXBsaWNpdF9ub25lKTogVXNlIHNhbWUgbG9vcCBib3VuZHMgYXMgb3RoZXIgZnVuY3Rpb25zLgoJKGdmY19zZXRfaW1wbGljaXQpOiBSZW1vdmUuCgkoZ2ZjX2NsZWFyX25ld19pbXBsaWNpdCwgZ2ZjX2FkZF9uZXdfaW1wbGljaXRfcmFuZ2UpOiBPbmx5IHNldCBmbGFncy4KCShnZmNfbWVyZ2VfbmV3X2ltcGxpY2l0KTogQ29tYmluZSB3aXRoIGdmY19zZXRfaW1wbGljaXQuCgoyMDA0LTA2LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogbWF0Y2guYyAodmFyX2VsZW1lbnQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKCSogdHJhbnMtZGVjbC5jIChnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IERvbid0IHNldAoJeF93aG9sZV9mdW5jdGlvbl9tb2RlX3AuCgkoZ2ZjX2dlbmVyYXRlX2NvbnN0cnVjdG9ycyk6IExpa2V3aXNlLgoKMjAwNC0wNi0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBEb24ndCBzZXQKCWltbWVkaWF0ZV9zaXplX2V4cGFuZC4KCShnZmNfZ2VuZXJhdGVfY29uc3RydWN0b3JzKTogTGlrZXdpc2UuCgoyMDA0LTA2LTMwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTYxNjEKCSogZGVjbC5jIChnZmNfbWF0Y2hfdHlwZV9zcGVjKTogUmVuYW1lIHNlY29uZCBhcmd1bWVudCB0bwoJJ2ltcGxpY2l0X2ZsYWcnLCByZXZlcnNlIG1lYW5pbmcuIERvbid0IG1hdGNoX2NoYXJfc3BlYyBpZgoJJ2ltcGxpY2l0X2ZsYWcnIGlzIHNldC4gUmVuYW1lIHRvIC4uLgoJKG1hdGNoX3R5cGVfc3BlYyk6IC4uLiB0aGlzLgoJKGdmY19tYXRjaF9pbXBsaWNpdF9ub25lLCBtYXRjaF9pbXBsaWNpdF9yYW5nZSk6IE1vdmUgaGVyZQoJZnJvbSBtYXRjaC5jLgoJKGdmY19tYXRjaF9pbXBsaWNpdCk6IE1vdmUgaGVyZSBmcm9tIG1hdGNoLmMsIHRyeSB0bwoJbWF0Y2hfY2hhcl9sZW4gaWYgbWF0Y2hfaW1wbGljaXRfcmFuZ2UgZG9lc24ndCBzdWNjZWVkIGZvcgoJQ0hBUkFDVEVSIGltcGxpY2l0cy4gQ2FsbCByZW5hbWVkIGZ1Y250aW9uIG1hdGNoX3R5cGVfc3BlYy4KCShnZmNfbWF0Y2hfZGF0YV9kZWNsLCBtYXRjaF9wcmVmaXgpOiBDYWxsIHJlbmFtZWQgZnVuY3Rpb24KCW1hdGNoX3R5cGVfc3BlYy4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2ltcGxpY2l0X25vbmUsIG1hdGNoX2ltcGxpY2l0X3JhbmdlLAoJZ2ZjX21hdGNoX2ltcGxpY2l0KTogTW92ZSB0byBkZWNsLmMuCgkqIG1hdGNoLmggKGdmY19tYXRjaF9pbXBsaWNpdF9ub25lLCBnZmNfbWF0Y2hfaW1wbGljaXQpOgoJTW92ZSBwcm90b3lwZXMgdG8gc2VjdGlvbiAnZGVjbC5jJy4KCShnZmNfbWF0Y2hfdHlwZV9zcGVjKTogUmVtb3ZlIHByb3RvdHlwZS4KCjIwMDQtMDYtMjkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBkZWNsLmMsIGludGVyZmFjZS5jLCBzeW1ib2wuYywgdHJhbnMtY29tbW9uLmM6IEFkZCAyMDA0IHRvCgljb3B5cmlnaHQgeWVhcnMuCgoyMDA0LTA2LTI5ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJTWFrZSBzdXJlIHR5cGVzIGluIGFzc2lnbm1lbnRzIGFyZSBjb21wYXRpYmxlLiAgTW9zdGx5IG1lY2hhbmljYWwuCgkqIHRyYW5zLWNvbnN0LmggKGdmY19pbmRleF9vbmVfbm9kZSk6IE5ldyBkZWZpbmUuCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19hbGxvY2F0ZV9hcnJheV9zdG9yYWdlLAoJZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXksIGdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl9zdWJhcnJheSwKCWdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSwgZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yLAoJZ2ZjX2NvbnZfYXJyYXlfdWJvdW5kLCBnZmNfY29udl9hcnJheV9yZWYsCglnZmNfdHJhbnNfc2NhbGFyaXplZF9sb29wX2VuZCwgZ2ZjX2NvbnZfc2VjdGlvbl9zdGFydHN0cmlkZSwKCWdmY19jb252X3NzX3N0YXJ0c3RyaWRlLCBnZmNfY29udl9sb29wX3NldHVwLCBnZmNfYXJyYXlfaW5pdF9zaXplLAoJZ2ZjX3RyYW5zX2FycmF5X2JvdW5kcywgZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMsCglnZmNfY29udl9leHByX2Rlc2NyaXB0b3IsIGdmY190cmFuc19kZWZlcnJlZF9hcnJheSk6IFVzZSB0aGUgY29ycmVjdAoJdHlwZXMgaW4gYXNzaWdubWVudHMsIGNvbnZlcnNpb25zIGFuZCBjb25kaXRpb25hbHMgZm9yIGV4cHJlc3Npb25zLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2V4cHJfcHJlc2VudCwgZ2ZjX2NvbnZfc3Vic3RyaW5nLAoJZ2ZjX2NvbnZfdW5hcnlfb3AsIGdmY19jb252X2NzdF9pbnRfcG93ZXIsIGdmY19jb252X3N0cmluZ190bXAsCglnZmNfY29udl9mdW5jdGlvbl9jYWxsLCBnZmNfdHJhbnNfcG9pbnRlcl9hc3NpZ25tZW50LAoJZ2ZjX3RyYW5zX3NjYWxhcl9hc3NpZ24pOiBMaWtld2lzZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGJ1aWxkX2ZpeGJvdW5kX2V4cHIsIGdmY19jb252X2ludHJpbnNpY19ib3VuZCwKCWdmY19jb252X2ludHJpbnNpY19hbnlhbGwsIGdmY19jb252X2ludHJpbnNpY19jb3VudCwKCWdmY19jb252X2ludHJpbnNpY19taW5tYXhsb2MsIGdmY19jb252X2ludHJpbnNpY19idGVzdCwKCWdmY19jb252X2ludHJpbnNpY19zaW5nbGViaXRvcCwgZ2ZjX2NvbnZfaW50cmluc2ljX2lzaGZ0LAoJZ2ZjX2NvbnZfaW50cmluc2ljX2lzaGZ0YywgZ2ZjX2NvbnZfaW50cmluc2ljX3N0cmNtcCwKCWdmY19jb252X2FsbG9jYXRlZCwgZ2ZjX2NvbnZfYXNzb2NpYXRlZCwKCWdmY19jb252X2ludHJpbnNpY19ycnNwYWNpbmcsIGdmY19jb252X2ludHJpbnNpY190cmltKTogTGlrZXdpc2UuCgkqIHRyYW5zLWlvLmMgKHNldF9zdHJpbmcpOiBMaWtld2lzZS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfZG8sIGdmY190cmFuc19mb3JhbGxfbG9vcCwKCWdmY19kb19hbGxvY2F0ZSwgZ2VuZXJhdGVfbG9vcF9mb3JfdGVtcF90b19saHMsCglnZW5lcmF0ZV9sb29wX2Zvcl9yaHNfdG9fdGVtcCwgY29tcHV0ZV9pbm5lcl90ZW1wX3NpemUsCgljb21wdXRlX292ZXJhbGxfaXRlcl9udW1iZXIsIGdmY190cmFuc19hc3NpZ25fbmVlZF90ZW1wLAoJZ2ZjX3RyYW5zX3BvaW50ZXJfYXNzaWduX25lZWRfdGVtcCwgZ2ZjX3RyYW5zX2ZvcmFsbF8xLAoJZ2ZjX2V2YWx1YXRlX3doZXJlX21hc2ssIGdmY190cmFuc193aGVyZV9hc3NpZ24sCglnZmNfdHJhbnNfd2hlcmVfMik6IExpa2V3aXNlLgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlLCBnZmNfYnVpbGRfYXJyYXlfdHlwZSwKCWdmY19nZXRfbm9kZXNjX2FycmF5X3R5cGUsIGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMpOiBMaWtld2lzZS4KCgkqIHRyYW5zLmMgKGdmY19hZGRfbW9kaWZ5X2V4cHIpOiBBZGQgc2FuaXR5IGNoZWNrIHRoYXQgdHlwZXMKCWZvciB0aGUgbGhzIGFuZCByaHMgYXJlIHRoZSBzYW1lIGZvciBzY2FsYXIgYXNzaWdubWVudHMuCgoyMDA0LTA2LTI5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZHVtcC1wYXJzZS10cmVlLmMgKHNob3dfY29tbW9uKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19zaG93X25hbWVzcGFjZSk6IFNob3cgY29tbW9ucy4KCjIwMDQtMDYtMjkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglBbmRyZXcgVmF1Z2h0ICA8YW5keXZAZmlyc3RpbnRlci5uZXQ+CgoJUFIgZm9ydHJhbi8xMzI0OQoJUFIgZm9ydHJhbi8xNTQ4MQoJKiBkZWNsLmMgKGdmY19tYXRjaF9zYXZlKTogQWRhcHQgdG8gbmV3IGNvbW1vbiBzdHJ1Y3R1cmVzLAoJZG9uJ3QgYWxsb3cgc2F2aW5nIFVTRS1hc3NvY2lhdGVkIGNvbW1vbi4KCSogZHVtcC1wYXJzZS10cmVlIChnZmNfc2hvd19hdHRyKTogKHNhdmVkXyljb21tb24gYXJlIG5vdAoJc3ltYm9sIGF0dHJpYnV0ZXMgYW55IGxvbmdlci4KCShnZmNfc2hvd19zeW1ib2wpOiBEb24ndCBzaG93IG9sZC1zdHlsZSBjb21tb25zIGFueSBsb25nZXIuCgkoZ2ZjX3Nob3dfbmFtZXNwYWNlKTogQWRhcHQgY2FsbCB0byBnZmNfdHJhdmVyc2Vfc3ltdHJlZSB0byBuZXcKCWludGVyZmFjZS4KCSogZ2ZvcnRyYW4uaCAoc3ltYm9sX2F0dHJpYnV0ZSk6IFJlbW92ZSBjb21tb24gYW5kIHNhdmVkX2NvbW1vbgoJYXR0cmlidXRlcy4KCShnZmNfc3ltYm9sKTogUmVtb3ZlIGNvbW1vbl9oZWFkIGVsZW1lbnQuCgkoZ2ZjX2NvbW1vbl9oZWFkKTogTmV3IHN0cnVjdC4KCShnZmNfZ2V0X2NvbW1vbl9oZWFkKTogTmV3IG1hY3JvLgoJKGdmY19zeW10cmVlKTogQWRkIGZpZWxkICdjb21tb24nIHRvIHVuaW9uLgoJKGdmY19uYW1lc3BhY2UpOiBBZGQgZmllbGQgJ2NvbW1vbl9yb290JzsgY2hhbmdlIHR5cGUgb2YgZmllbGQKCSdibGFua19jb21tb24nIHRvIGJsYW5rX2NvbW1vbi4KCShnZmNfYWRkX2RhdGEpOiBOZXcgcHJvdG90eXBlLgoJKGdmY190cmF2ZXJzZV9zeW10cmVlKTogRXhwZWN0IGEgc3ltdHJlZSBhcyBmaXJzdCBhcmd1bWVudAoJaW5zdGVhZCBvZiBuYW1lc3BhY2UuCgkqIG1hdGNoLmMgKGdmY19nZXRfY29tbW9uKTogTmV3IGZ1bmN0aW9uLgoJKG1hdGNoX2NvbW1vbl9uYW1lKTogQ2hhbmdlIHRvIHRha2UgY2hhciAqIGFzIGFyZ3VtZW50LCBhZGFwdCwKCWZpeCBidWcgd2l0aCBlbXB0eSBuYW1lLgoJKGdmY19tYXRjaF9jb21tb24pOiBBZGFwdCB0byBuZXcgZGF0YSBzdHJ1Y3R1cmVzLiBEaXNhbGxvdwoJcmVkZWNsYXJhdGlvbiBvZiBVU0UtYXNzb2NpYXRlZCBDT01NT04tYmxvY2suIEZpeCBidWcgd2l0aAoJZW1wdHkgY29tbW9uLgoJKHZhcl9lbGVtZW50KTogQWRhcHQgdG8gbmV3IGNvbW1vbiBzdHJ1Y3R1cmVzLgoJKiBtYXRjaC5oIChnZmNfZ2V0X2NvbW1vbik6IERlY2xhcmUuCgkqIG1vZHVsZS5jOiBBZGQgMjAwNCB0byBjb3B5cmlnaHQgeWVhcnMsIGFkZCBjb21tb25zIHRvIG1vZHVsZQoJZmlsZSBsYXlvdXQgZGVzY3JpcHRpb24uCgkoYWJfYXR0cmlidXRlLCBhdHRyX2JpdHMsIG1pb19zeW1ib2xfYXR0cmlidXRlcyk6IFJlbW92ZSBjb2RlCglmb3IgcmVtb3ZlZCBhdHRyaWJ1dGVzLgoJKG1pb19zeW1ib2wpOiBBZGFwdCB0byBuZXcgd2F5IG9mIHN0b3JpbmcgY29tbW9uIHJlbGF0aW9ucy4KCShsb2FkX2NvbW1vbnMpOiBOZXcgZnVuY3Rpb24uCgkocmVhZF9tb2R1bGUpOiBTa2lwIGNvbW1vbiBsaXN0IG9uIGZpcnN0IHBhc3MsIGxvYWRfY29tbW9ucyBhdAoJc2Vjb25kLgoJKHdyaXRlX2NvbW1vbnMpOiBOZXcgZnVuY3Rpb24uCgkod3JpdGVfbW9kdWxlKTogQ2FsbCB3cml0ZV9jb21tb25zKCkuCgkqIHN5bWJvbC5jIChnZmNfYWRkX3NhdmVkX2NvbW9uLCBnZmNfYWRkX2NvbW1vbik6IFJlbW92ZQoJZnVuY3Rpb25zIHJlbGF0ZWQgdG8gcmVtb3ZlZCBhdHRyaWJ1dGVzLgoJKGdmY19hZGRfZGF0YSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY2xlYXJfYXR0cik6IERvbid0IHNldCByZW1vdmVkIGF0dHJpYnV0ZXMuCgkoZ2ZjX2NvcHlfYXR0cik6IERvbid0IGNvcHkgcmVtb3ZlZCBhdHRyaWJ1dGVzLgoJKHRyYXZlcnNlX3N5bXRyZWUpOiBSZW1vdmUuCgkoZ2ZjX3RyYXZlcnNlX3N5bXRyZWUpOiBEb24ndCB0cmF2ZXJzZSBzeW1ib2wKCXRyZWUgb2YgdGhlIHBhc3NlZCBuYW1lc3BhY2UsIGJ1dCByZXF1aXJlIGEgc3ltdHJlZSB0byBiZSBwYXNzZWQKCWluc3RlYWQuIFVuaWZ5IHdpdGggdHJhdmVyc2Vfc3ltdHJlZS4KCShnZmNfdHJhdmVyc2VfbnMpOiBDYWxsIGdmY190cmF2ZXJzZV9zeW10cmVlIGFjY29yZGluZyB0byBuZXcKCWludGVyZmFjZS4KCShzYXZlX3N5bWJvbCk6IFJlbW92ZSBzZXR0aW5nIG9mIHJlbW92ZWQgYXR0cmlidXRlLgoJKiB0cmFucy1jb21tb24uYyAoZ2ZjX3N5bV9tYW5nbGVkX2NvbW1vbl9pZCk6IENoYW5nZSB0bwoJdGFrZSAnY2hhciAqJyBhcmd1bWVudCBpbnN0ZWFkIG9mICdnZmNfc3ltYm9sJy4KCShidWlsZF9jb21tb25fZGVjbCwgbmV3X3NlZ21lbnQsIHRyYW5zbGF0ZV9jb21tb24pOiBBZGFwdCB0byBuZXcKCWRhdGEgc3RydWN0dXJlcywgYWRkIG5ldwoJYXJndW1lbnQgbmFtZS4KCShjcmVhdGVfY29tbW9uKTogQWRhcHQgdG8gbmV3IGRhdGEgc3RydWN0dXJlcywgYWRkIG5ldwoJYXJndW1lbnQgbmFtZS4gRml4IHR5cG8gaW4gaW50aWFsaXphdGlvbiBvZiBkZXJpdmVkIHR5cGVzLgoJKGZpbmlzaF9lcXVpdmFsZW5jZXMpOiBBZGQgc2Vjb25kIGFyZ3VtZW50IGluIGNhbGwgdG8KCWNyZWF0ZV9jb21tb24uCgkobmFtZWRfY29tbW9uKTogdGFrZSAnZ2ZjX3N5bXRyZWUnIGluc3RlYWQgb2YgJ2dmY19zeW1ib2wnLgoJKGdmY190cmFuc19jb21tb24pOiBBZGFwdCB0byBuZXcgZGF0YSBzdHJ1Y3R1cmVzLgoJKiB0cmFucy1kZWNsLmMgKGdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlcyk6IFJlbW92ZSB0ZXN0IGZvcgoJcmVtb3ZlZCBhdHRyaWJ1dGUuCgoyMDA0LTA2LTI5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogaW8uYzogQWRkIDIwMDQgdG8gY29weXJpZ2h0IHllYXJzLgoKMjAwNC0wNi0yOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCUFuZHJldyBWYXVnaHQgIDxhbmR5dkBmaXJzdGludGVyLm5ldD4KCgkqIGdmb3J0cmFuLmggKGdmY19nc3ltYm9sKTogTmV3IHR5cGVkZWYuCgkoZ2ZjX2dzeW1fcm9vdCk6IE5ldyB2YXJpYWJsZS4KCShnZmNfZ2V0X2dzeW1ib2wsIGdmY19maW5kX2dzeW0pOiBOZXcgcHJvdG90eXBlcy4KCSogcGFyc2UuYyAoZ2xvYmFsX3VzZWQpOiBOZXcgZnVuY3Rpb24uCgkocGFyc2VfYmxvY2tfZGF0YSk6IENoZWNrIGZvciBkb3VibGUgZW1wdHkgQkxPQ0sgREFUQSwKCXVzZSBnbG9iYWwgc3ltYm9sIHRhYmxlLgoJKHBhcnNlX21vZHVsZSk6IFVzZSBnbG9iYWwgc3ltYm9sIHRhYmxlLgoJKGFkZF9nbG9iYWxfcHJvY2VkdXJlLCBhZGRfZ2xvYmFsX3Byb2dyYW0pOiBOZXcgZnVuY3Rpb25zLgoJKGdmY19wYXJzZV9maWxlKTogVXNlIGdsb2JhbCBzeW1ib2wgdGFibGUuCgkqIHN5bWJvbC5jIChnZmNfZ3N5bV9yb290KTogTmV3IHZhcmlhYmxlLgoJKGdmY19maW5kX2dzeW0sIGdzeW1fY29tcGFyZSwgZ2ZjX2dldF9nc3ltYm9sKTogTmV3CglmdW5jdGlvbnMuCgoyMDA0LTA2LTI5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogbW9kdWxlLmMgKG1pb19nbXBfcmVhbCk6IENvcnJlY3Qgd3JpdGluZyBvZiBuZWdhdGl2ZSBudW1iZXJzLgoKMjAwNC0wNi0yOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1OTYzCgkqIGV4cHIuYyAoY2hlY2tfaW50cmluc2ljX29wKTogQWxsb3cgY29tcGFyaXNvbiBvZiBjaGFyYWN0ZXJzLgoJTWFrZSBsb2dpYyBlYXNpZXIuCgoyMDA0LTA2LTI2ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoJQW5kcmV3IFZhdWdodCAgPGFuZHl2QGZpcnN0aW50ZXIubmV0PgoKCSogZGVjbC5jIChjb250YWluZWRfcHJvY2VkdXJlKTogTmV3IGZ1bmN0aW9uLgoJKG1hdGNoX2VuZCk6IFZlcmlmeSBjb3JyZWN0bmVzcyBvZiBFTkQgU1RBVEVNRU5UIGluCglhbGwgY2FzZXMuCgoyMDA0LTA2LTI2ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoJQW5kcmV3IFZhdWdodCAgPGFuZHl2QGZpcnN0aW50ZXIubmV0PgoKCVBSIGZvcnRyYW4vMTUxOTAKCSogZGVjbC5jIChnZmNfbWF0Y2hfdHlwZV9zcGVjKSwgaW8uYyAobWF0Y2hfaW8pLCBwYXJzZS5jCgkoZGVjb2RlX3N0YXRlbWVudCk6IEVuZm9yY2UgcmVxdWlyZWQgc3BhY2UgaW4gZnJlZS1mb3JtLgoKMjAwNC0wNi0yMiAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGY5NS1sYW5nLmMgKExBTkdfSE9PS1NfR0lNUExFX0JFRk9SRV9JTkxJTklORyk6IERlbGV0ZWQuCgkqIHRyYW5zLWFycmF5LmMgKGdmY19jb252X2Rlc2NyaXB0b3JfZGF0YSk6IEFkZCBvcGVyYW5kCglmb3IgQ09NUE9ORU5UX1JFRi4KCShnZmNfY29udl9kZXNjcmlwdG9yX29mZnNldCwgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kdHlwZSk6IExpa2V3aXNlLgoJKGdmY19jb252X2Rlc2NyaXB0b3JfZGltZW5zaW9uLCBnZmNfY29udl9kZXNjcmlwdG9yX3N0cmlkZSk6IExpa2V3aXNlLgoJKGdmY19jb252X2Rlc2NyaXB0b3JfbGJvdW5kLCBnZmNfY29udl9kZXNjcmlwdG9yX3Vib3VuZCk6IExpa2V3aXNlLgoJKiB0cmFucy1jb21tb24uYyAoY3JlYXRlX2NvbW1vbik6IExpa2V3aXNlLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2NvbXBvbmVudF9yZWYpOiBMaWtld2lzZS4KCSogdHJhbnMtaW8uYyAoc2V0X3BhcmFtZXRlcl92YWx1ZSk6IExpa2V3aXNlLgoJKHNldF9wYXJhbWV0ZXJfcmVmLCBzZXRfc3RyaW5nLCBzZXRfZmxhZywgaW9fcmVzdWx0KTogTGlrZXdpc2UuCgkodHJhbnNmZXJfZXhwcik6IExpa2V3aXNlLgoJKiB0cmFucy1kZWNsLmMgKGdmY190cmFuc19hdXRvX2NoYXJhY3Rlcl92YXJpYWJsZSk6CglTZXQgdXAgdG8gZ2V0IERFQ0xfU0laRSBhbmQgREVDTF9TSVpFX1VOSVQgZ2ltcGxpZmllZC4KCShnZmNfZ2ltcGxpZnlfZnVuY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uLWNvZGUpOiBQcm9wZXJseSBoYW5kbGUgbmVzdGVkIGZ1bmN0aW9ucy4KCSogdHJhbnMuYyAoZ2ZjX2J1aWxkX2FycmF5X3JlZik6IEFkZCB0d28gbmV3IG9wZXJhbmRzIGZvciBBUlJBWV9SRUYuCgoyMDA0LTA2LTIyICBKYW5uZSBCbG9tcXZpc3QgIDxqYmxvbXF2aUBjYy5odXQuZmk+CgoJUFIgZm9ydHJhbi8xNTc1MAoJKiBpby5jIChnZmNfbWF0Y2hfaW5xdWlyZSk6IEJ1Z2ZpeCBmb3IgaW9sZW5ndGggcmVsYXRlZCBzdHVmZi4KCShnZmNfcmVzb2x2ZV9pbnF1aXJlKTogUmVzb2x2ZSB0aGUgaW9sZW5ndGggdGFnLiAgUmV0dXJuCglTVUNDRVNTIGF0IGVuZCBvZiBmdW5jdGlvbiBpZiBubyBmYWlsdXJlIGhhcyBvY2N1cmVkLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfY29kZSk6IFJlc29sdmUgaWYgaW9sZW5ndGggaXMgZW5jb3VudGVyZWQuCgkqIHRyYW5zLWlvLmM6IChpb3Bhcm1faW9sZW5ndGgsIGlvY2FsbF9pb2xlbmd0aCwKCWlvY2FsbF9pb2xlbmd0aF9kb25lKTogTmV3IHZhcmlhYmxlcy4KCShsYXN0X2R0KTogQWRkIElPTEVOR1RILgoJKGdmY19idWlsZF9pb19saWJyYXJ5X2ZuZGVjbHMgKTogU2V0IGlvbGVuZ3RoIHJlbGF0ZWQgdmFyaWFibGVzLgoJKGdmY190cmFuc19pb2xlbmd0aCk6IEltcGxlbWVudC4KCShnZmNfdHJhbnNfZHRfZW5kKTogVHJlYXQgaW9sZW5ndGggYXMgYSB0aGlyZCBmb3JtIG9mIGRhdGEgdHJhbnNmZXIuCgoyMDA0LTA2LTIxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlCgoJUFIgZm9ydHJhbi8xNTUxMQoJKiBzY2FubmVyLmMgKGxvYWRfbGluZSk6IERvbid0IHRydW5jYXRlIHByZXByb2Nlc3NvciBsaW5lcy4KCVJlZm9ybWF0IGVycm9yIG1lc3NhZ2UuCgkocHJlcHJvY2Vzc29yX2xpbmUpOiBJc3N1ZSB3YXJuaW5nIGluIGNhc2Ugb2YgbWFsZm9ybWVkCglwcmVwcm9jZXNzb3IgbGluZS4KCjIwMDQtMDYtMjEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQWRkIGNvbW1lbnQgaW4gZnVuY3Rpb24gYm9keS4KCShjaGVja19kYXRhX3ZhcmlhYmxlKTogQ2hhbmdlIHR5cGUgb2YgbWFyayB0byBhcl90eXBlLCBhZGFwdCBjb2RlCglhY2NvcmRpbmdseS4KCjIwMDQtMDYtMjEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBhcnJheS5jIChnZmNfaW5zZXJ0X2NvbnN0cnVjdG9yKTogQXZvaWQgcmVkdW5kYW50IGNhbGwgdG8KCW1wel9jb21wLiBBZGQgMjAwNCB0byBjb3B5cmlnaHQgeWVhcnMuCgoyMDA0LTA2LTIxICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIHRyYW5zLmggKHN0bXRibG9ja190KTogQ2hhbmdlIGhhc19zY29wZSB0byB1bnNpZ25lZCBpbnQuCgoyMDA0LTA2LTIwICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jIChnZmNfcmFuZ2VfY2hlY2spOiBjb3JyZWN0IGNvbXBsZXggdW5kZXJmbG93LgoKMjAwNC0wNi0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1OTYyCgkqIG1hdGNoLmMgKG1hdGNoX2Nhc2Vfc2VsZWN0b3IpOiBDYWxsIGdmY19tYXRjaF9pbml0X2V4cHIKCWluc3RlYWQgb2YgZ2ZjX21hdGNoX2V4cHIuCgkqIHJlc29sdmUuYyAodmFsaWRhdGVfY2FzZV9sYWJlbF9leHByKTogTm8gbmVlZCB0byBjaGVjayBmb3IKCWNvbnN0YW50LCBzaW5jZSBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gbWF0Y2hlZCB3aXRoIHRoZSBmaXggdG8KCW1hdGNoLmMuCgoyMDA0LTA2LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTUyMTEKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19sZW4pOiBEZWFsIHdpdGggYXJyYXlzCglvZiBzdHJpbmdzLgoKMjAwNC0wNi0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1NTEwCgkqIHRyYW5zLWRlZWNsLmMgKGdlbmVyYXRlX2xvY2FsX2RlY2wpOiBEbyBub3QgaXNzdWUgd2FybmluZyBmb3IKCXVudXNlZCB2YXJpYWJsZXMgaWYgdGhleSdyZSB1c2UgYXNzb2NpYXRlZC4KCjIwMDQtMDYtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglBbmRyZXcgVmF1Z2h0IDxhbmR5dkBmaXJzdGludGVyLm5ldD4KCglQUiBmb3J0cmFuLzE0OTI4CgkqIGdmb3J0cmFuLmggKGdmY19jaGVja19mKTogQWRkIG5ldyBmaWVsZCBmM21sLgoJKiBjaGVjay5jIChnZmNfY2hlY2tfbWlubG9jX21heGxvYyk6IFRha2UgYXJndW1lbnQgbGlzdCBpbnN0ZWFkCglvZiBpbmRpdmlkdWFsIGFyZ3VtZW50cywgcmVvcmRlciBpZiBuZWNlc3NhcnkuCgkqIGludHJpbnNpYy5oIChnZmNfY2hlY2tfbWlubG9jX21heGxvYyk6IC4uLiBhZGFwdCBwcm90b3R5cGUuCgkqIGludHJpbnNpYy5jIChhZGRfc3ltXzNtbCk6IE5ldyBmdW5jdGlvbi4KCShhZGRfZnVuY3Rpb25zKTogQ2hhbmdlIHRvIGFkZF9zeW1fM21sIGZvciBNSU5MT0MsIE1BWExPQy4KCShjaGVja19zcGVjaWZpYyk6IENhdGNoIHNwZWNpYWwgY2FzZSBNSU5MT0MsIE1BWExPQy4KCjIwMDQtMDYtMTQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbnRyaW5zaWMuYyAoYWRkX3N5bV8ycyk6IFVzZSBjb3JyZWN0IGZ1bmN0aW9uIHR5cGVzLgoKMjAwNC0wNi0xMiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIE1ha2UtbGFuZy5pbiAoRjk1X09CSlMsIEY5NV9QQVJTRVJfT0JKUyk6IEFscGhhYmV0aXplLiAgTW92ZSBkYXRhLmMKCSogZGF0YS5jIChnZmNfZ2V0X3NlY3Rpb25faW5kZXgpOiAgUmVtb3ZlIGRlcGVuZGVuY3kgb24gdHJhbnMuaC4KCjIwMDQtMDYtMTIgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19zZWNvbmRfc3ViLCBnZmNfY2hlY2tfaXJhbmQsIGdmY19jaGVja19yYW5kCglnZmNfY2hlY2tfc3JhbmQsIGdmY19jaGVja19ldGltZSwgZ2ZjX2NoZWNrX2V0aW1lX3N1Yik6IE5ldyBmdW5jdGlvbnMuCgkqIGdmb3J0cmFuLmggKGdmY19nZW5lcmljX2lzeW1faWQpOiBOZXcgc3ltYm9scyBHRkNfSVNZTV9FVElNRSwKCUdGQ19JU1lNX0lSQU5ELCBHRkNfSVNZTV9SQU5ELCBHRkNfSVNZTV9TRUNPTkQuCgkqIHRyYW5zLWludHJpbnNpYy5jOiAgVXNlIHN5bWJvbHMuCgkqIGludHJpbnNpYy5jIChhZGRfc3ltXzJzKTogTmV3IGZ1bmN0aW9uLgoJKiBpbnRyaW5zaWMuYzogQWRkIGV0aW1lLCBkdGltZSwgaXJhbmQsIHJhbmQsIHNlY29uZCwgc3JhbmQuCgkqIGludHJpbnNpYy5oOiBGdW5jdGlvbiBwcm90b3R5cGVzLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9ldGltZV9zdWIsIGdmY19yZXNvbHZlX3NlY29uZF9zdWIKCWdmY19yZXNvbHZlX3NyYW5kKTogIE5ldyBmdW5jdGlvbnMuCgoyMDA0LTA2LTEyICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTQ5NTcKCSogZGVjbC5jIChnZmNfbWF0Y2hfZW5kKTogUmVxdWlyZSBFTkQge1NVQlJPVVRJTkV8RlVOQ1RJT059IGZvcgoJY29udGFpbmVkIHByb2NlZHVyZS4KCjIwMDQtMDYtMTIgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMjg0MQoJKiBpbnRlcmZhY2UuYyAoY29tcGFyZV9wYXJhbWV0ZXIsIGNvbXBhcmVfYWN0dWFsX2Zvcm1hbCk6IERvbid0CgljaGVjayB0eXBlcyBhbmQgYXJyYXkgc2hhcGVzIGZvciBOVUxMKCkKCSogdHJhbnMtZXhwci5jIChjb252X2Z1bmN0aW9uX2NhbGwpOiBObyBkb3VibGUgaW5kaXJlY3Rpb24gZm9yCglOVUxMKCkKCjIwMDQtMDYtMDkgIFRvb24gTW9lbmUgIDx0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sPgoKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9jc3RfaW50X3Bvd2VyKTogQ29tcHV0ZQoJeCoqKC1uKSBieSBjb252ZXJ0aW5nIGl0IHRvICgxL3gpKipuIGluc3RlYWQgb2YKCTEveCoqbi4KCjIwMDQtMDYtMDkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzM3MgoJKiBtb2R1bGUuYyAod3JpdGVfc3ltYm9sLCB3cml0ZV9zeW10cmVlKTogRG9uJ3Qgd3JpdGUgc3ltYm9scwoJd3JvbmdseSBhZGRlZCB0byBuYW1lc3BhY2UuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBEb24ndCBjcmVhdGUgYQoJYmFja2VuZCBkZWNsIGZvciBhIHN5bWJvbCBpbmNvcnJlY3RseSBhZGRlZCB0byBuYW1lc3BhY2UuCgoyMDA0LTA2LTA5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTMyMDEKCSogcmVzb2x2ZS5jIChyZXNvbHZlX3N5bWJvbCk6IFZlcmlmeSB0aGF0IHBhcmFtZXRlciBhcnJheSBoYXMgYW4KCWV4cGxpY2l0IHNoYXBlLiBGaXggdHlwb3MgYW5kIGNvZGluZyBzdHlsZSBpc3N1ZXMgaW4gc3Vycm91bmRpbmcKCWxpbmVzLgoKMjAwNC0wNi0wNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1NDc4CgkqIGdmb3J0cmFuLnRleGk6IFRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgY29udGFpbiBpbmZvbXJhdGlvbiBvbgoJaG93IHRvIHJlcG9ydCBidWdzLCBhbmQgc2hvdWxkbid0LCBzbyByZW1vdmUgdGhlIGxpbmUgd2hpY2gKCXNheXMgaXQgZG9lcy4KCjIwMDQtMDYtMDUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBpbnRyaW5zaWMuYyAoc29ydF9hY3R1YWwpOiBLZWVwIHRyYWNrIG9mIHR5cGUgb2YgbWlzc2luZwoJYXJndW1lbnRzLiAoTWlzc2luZyBmcm9tIHByZXZpb3VzIGNvbW1pdC4pCgoyMDA0LTA2LTAzICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2FjdHVhbF9hcmdsaXN0KTogTmV3IGZpZWxkIG1pc3NpbmdfYXJnX3R5cGUuCgkqIGludGVyZmFjZS5jIChjb21wYXJlX2FjdHVhbF9mb3JtYWwpOiBLZWVwIHR5cGUgb2Ygb21pdHRlZAoJb3B0aW9uYWwgYXJndW1lbnRzLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBBZGQgc3RyaW5nIGxlbmd0aAoJYXJndW1lbnQgZm9yIG9taXR0ZWQgc3RyaW5nIGFyZ3VtZW50LgoKMjAwNC0wNi0wMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLmMgKGdmY19maW5pc2hfYmxvY2ssIGdmY19hZGRfZXhwcl90b19ibG9jayk6IEJ1aWxkIHN0YXRlbWVudAoJbGlzdHMgaW5zdGVhZCBvZiBjb21wb3VuZCBleHByIGNoYWlucy4KCShnZmNfdHJhbnNfY29kZSk6IEFubm90YXRlIHN0YXRlbWVudCBsaXN0cy4KCjIwMDQtMDYtMDMgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1hcnJheS5jOiBGaXggc3BlbGxpbmcgaW4gY29tbWVudHMuCgoyMDA0LTA2LTAyICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU1NTcKCSogZGF0YS5jIChhc3NpZ25fc3Vic3RyaW5nX2RhdGFfdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlKTogQ2FsbCB0aGUgbmV3IGZ1bmN0aW9uIGlmIHdlJ3JlIGRlYWxpbmcKCXdpdGggYSBzdWJzdHJpbmcgTEhTLgoKMjAwNC0wNi0wMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1NDc3CgkqIGdmb3J0cmFuLmggKEdGQ19WRVJTSU9OKTogUmVtb3ZlLgoJKiBnZm9ydHJhbi50ZXhpICh2ZXJzaW9uLWdmb3J0cmFuKTogUmVtb3ZlLCByZXBsYWNlIGJ5IHZlcnNpb24tR0NDCgl3aGVyZSB1c2VkLgoKMjAwNC0wNS0zMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLXR5cGVzLmM6IEZpeCBzcGVsbGluZyAmIGxheW91dCBpbiBjb21tZW50cy4KCjIwMDQtMDUtMzAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNDA2NwoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9zdHJpbmdfaW5pdCk6IEFsbG93IHZhcmlhYmxlIHN0cmluZwoJbGVuZ3RoIGxvd2VyIHRoYW4gaW5pdGlhbGl6YXRpb24gc3RyaW5nIGxlbmd0aC4KCjIwMDQtMDUtMzAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNTYyMAoJKiB0cmFucy1kZWNsLmMgKGdmY19zaGFkb3dfc3ltLCBnZmNfcmVzdG9yZV9zeW0pOiBOZXcgZnVuY3Rpb25zLgoJKiB0cmFucy1leHByLmMgKGdmY190cmFuc19zdHJpbmdfY29weSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9zdGF0ZW1lbnRfZnVuY3Rpb24pOiBVc2UgdGhlbS4gIENyZWF0ZSB0ZW1wIHZhcnMuICBFbmZvcmNlCgljaGFyYWN0ZXIgbGVuZ3Rocy4KCShnZmNfY29udl9zdHJpbmdfcGFyYW1ldGVyKTogVXNlIGdmY190cmFuc19zdHJpbmdfY29weS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfZm9yYWxsXzEpOiBVc2UgZ2ZjX3tzaGFkb3cscmVzdG9yZX1fc3ltLgoJKiB0cmFucy5oIChzdHJ1Y3QgZ2ZjX3NhdmVkX3Zhcik6IERlZmluZS4KCShnZmNfc2hhZG93X3N5bSwgZ2ZjX3Jlc3RvcmVfc3ltKTogQWRkIHByb3RvdHlwZXMuCgoyMDA0LTA1LTMwICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9yYW5kb21fbnVtYmVyKTogQ2xlYW4gdXAgY29uZGl0aW9uYWwuCgoyMDA0LTA1LTI5ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBzaW1wbGlmeS5jIChnZmNfc2ltcGxpZnlfbG9nKTogUmVtb3ZlIHVzZWxlc3MgbGluZSBvZiBjb2RlLgoKMjAwNC0wNS0yOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWNvbW1vbi5jIChmaW5kX2VxdWl2YWxlbmNlKTogRmluZCBtdWx0aXBsZSBydWxlcy4KCjIwMDQtMDUtMjcgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBnZm9ydHJhbi5oIChnZmNfY3VycmVudF9sb2N1cywgZ2ZjX3NldF9sb2N1cyk6IFJlbW92ZS4KCShnZmNfY3VycmVudF9sb2N1cyk6IERlY2xhcmUgbmV3IGdsb2JhbCB2YXJpYWJsZS4KCSogc2Nhbm5lci5jIChnZmNfY3VycmVudF9sb2N1cywgZ2ZjX3NldF9sb2N1cyk6IFJlbW92ZS4KCShnZmNfY3VycmVudF9sb2N1czEpOiBSZW5hbWUgLi4uCgkoZ2ZjX2N1cnJlbnRfbG9jdXMpOiAuLi4gdG8gdGhpcy4KCShnZmNfYXRfZW9mLCBnZmNfYXRfYm9sLCBnZmNfYXRfZW9sLCBnZmNfYWR2YW5jZV9saW5lLCBuZXh0X2NoYXIsCglza2lwX2ZpeGVkX2NvbW1lbnRzLCBza2lwX2ZyZWVfY29tbWVudHMsIGdmY19uZXh0X2NoYXJfbGl0ZXJhbCwKCWdmY19wZWVrX2NoYXIsIGdmY19nb2JibGVfd2hpdGVzcGFjZSwgZ2ZjX25ld19maWxlKTogVXNlCglnZmNfY3VycmVudF9sb2N1cyBpbnN0ZWFkIG9mIGdmY19jdXJyZW50X2xvY3VzMSwgZ2ZjX3NldF9sb2N1cygpCglhbmQgZ2ZjX2N1cnJlbnRfbG9jdXMoKSwgcmVzcGVjdGl2ZWx5LgoJKiBhcnJheS5jIChtYXRjaF9zdWJzY3JpcHQsIGdmY19tYXRjaF9hcnJheV9yZWYsIG1hdGNoX2FycmF5X2xpc3QsCgltYXRjaF9hcnJheV9jb25zX2VsZW1lbnQsIGdmY19tYXRjaF9hcnJheV9jb25zdHJ1Y3Rvcik6CglSZWFkL21vZGlmeSBnZmNfY3VycmVudF9sb2N1cyBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2ZjX3NldF9sb2N1cygpCglhbmQgZ2ZjX2N1cnJlbnRfbG9jdXMoKS4KCSogZGVjbC5jIChnZmNfbWF0Y2hfbnVsbCwgdmFyaWFibGVfZGVjbCwgZ2ZjX21hdGNoX2tpbmRfc3BlYywKCW1hdGNoX2F0dHJfc3BlYywgZ2ZjX21hdGNoX2Z1bmN0aW9uX2RlY2wsIGdmY19tYXRjaF9lbmQsCglhdHRyX2RlY2wxLCBnZmNfbWF0Y2hfc2F2ZSk6IExpa2V3aXNlLgoJKiBlcnJvci5jIChlcnJvcl9wcmludCwgZ2ZjX2ludGVybmFsX2Vycm9yKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoZ2ZjX2ludF9leHByLCBnZmNfZGVmYXVsdF9sb2dpY2FsX2tpbmQpOiBMaWtld2lzZS4KCSogaW50ZXJmYWNlLmMgKGdmY19hZGRfaW50ZXJmYWNlKTogTGlrZXdpc2UuCgkqIGlvLmMgKGdmY19tYXRjaF9mb3JtYXQsIG1hdGNoX2R0X2Zvcm1hdCwgbWF0Y2hfZHRfZWxlbWVudCwKCW1hdGNoX2lvX2l0ZXJhdG9yLCBtYXRjaF9pbyk6IExpa2V3aXNlLgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfc3BhY2UsIGdmY19tYXRjaF9lb3MsCglnZmNfbWF0Y2hfc21hbGxfbGl0ZXJhbF9pbnQsIGdmY19tYXRjaF9zdF9sYWJlbCwKCWdmY19tYXRjaF9zdHJpbmdzLCBnZmNfbWF0Y2hfbmFtZSwgZ2ZjX21hdGNoX2l0ZXJhdG9yLAoJZ2ZjX21hdGNoX2NoYXIsIGdmY19tYXRjaCwgZ2ZjX21hdGNoX2Fzc2lnbm1lbnQsCglnZmNfbWF0Y2hfcG9pbnRlcl9hc3NpZ25tZW50LCBnZmNfbWF0Y2hfaWYsIGdmY19tYXRjaF9kbywKCWdmY19tYXRjaF9udWxsaWZ5LCBnZmNfbWF0Y2hfY2FsbCwgbWF0Y2hfaW1wbGljaXRfcmFuZ2UsCglnZmNfbWF0Y2hfaW1wbGljaXQsIGdmY19tYXRjaF9kYXRhLCBtYXRjaF9jYXNlX3NlbGVjdG9yLAoJZ2ZjX21hdGNoX2Nhc2UsIG1hdGNoX2ZvcmFsbF9pdGVyYXRvcik6IExpa2V3aXNlLgoJKiBtYXRjaGV4cC5jIChnZmNfbWF0Y2hfZGVmaW5lZF9vcF9uYW1lLCBuZXh0X29wZXJhdG9yLAoJbWF0Y2hfbGV2ZWxfMSwgbWF0Y2hfbXVsdF9vcGVyYW5kLCBtYXRjaF9leHRfbXVsdF9vcGVyYW5kLAoJbWF0Y2hfYWRkX29wZXJhbmQsIG1hdGNoX2V4dF9hZGRfb3BlcmFuZCwgbWF0Y2hfbGV2ZWxfMiwKCW1hdGNoX2xldmVsXzMsIG1hdGNoX2xldmVsXzQsIG1hdGNoX2FuZF9vcGVyYW5kLCBtYXRjaF9vcl9vcGVyYW5kLAoJbWF0Y2hfZXF1aXZfb3BlcmFuZCwgbWF0Y2hfbGV2ZWxfNSwgZ2ZjX21hdGNoX2V4cHIpOiBMaWtld2lzZS4KCSogbW9kdWxlLmMgKGdmY19tYXRjaF91c2UsIG1pb19hcnJheV9yZWYsIG1pb19leHByKTogTGlrZXdpc2UuCgkqIHBhcnNlLmMgKG1hdGNoX3dvcmQsIGRlY29kZV9zdGF0ZW1lbnQsIG5leHRfZnJlZSwgbmV4dF9maXhlZCwKCWFkZF9zdGF0ZW1lbnQsIHZlcmlmeV9zdF9vcmRlciwgcGFyc2VfaWZfYmxvY2ssIGdmY19wYXJzZV9maWxlKToKCUxpa2V3aXNlLgoJKiBwcmltYXJ5LmMgKG1hdGNoX2RpZ2l0cywgbWF0Y2hfaW50ZWdlcl9jb25zdGFudCwKCW1hdGNoX2Jvel9jb25zdGFudCwgbWF0Y2hfcmVhbF9jb25zdGFudCwgbWF0Y2hfc3Vic3RyaW5nLAoJbmV4dF9zdHJpbmdfY2hhciwgbWF0Y2hfY2hhcmtpbmRfbmFtZSwgbWF0Y2hfc3RyaW5nX2NvbnN0YW50LAoJbWF0Y2hfbG9naWNhbF9jb25zdGFudCwgbWF0Y2hfY29uc3RfY29tcGxleF9wYXJ0LAoJbWF0Y2hfY29tcGxleF9jb25zdGFudCwgbWF0Y2hfYWN0dWFsX2FyZywgbWF0Y2hfa2V5d29yZF9hcmcsCglnZmNfbWF0Y2hfYWN0dWFsX2FyZ2xpc3QsIGdmY19tYXRjaF9zdHJ1Y3R1cmVfY29uc3RydWN0b3IsCglnZmNfbWF0Y2hfcnZhbHVlLCBnZmNfbWF0Y2hfdmFyaWFibGUpOiBMaWtld2lzZS4KCSogc3QuYyAoZ2ZjX2dldF9jb2RlKTogTGlrZXdpc2UuCgkqIHN5bWJvbC5jIChjaGVja19jb25mbGljdCwgY2hlY2tfdXNlZCwgY2hlY2tfZG9uZSwKCWR1cGxpY2F0ZV9hdHRyLCBhZGRfZmxhdm9yLCBnZmNfYWRkX3Byb2NlZHVyZSwgZ2ZjX2FkZF9pbnRlbnQsCglnZmNfYWRkX2FjY2VzcywgZ2ZjX2FkZF9leHBsaWNpdF9pbnRlcmZhY2UsIGdmY19hZGRfdHlwZSwKCWdmY19hZGRfY29tcG9uZW50LCBnZmNfcmVmZXJlbmNlX3N0X2xhYmVsLCBnZmNfbmV3X3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwNC0wNS0yNiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBpby5jIChmb3JtYXRfYXN0ZXJpc2spOiBTaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmdzIGJ5IGNvcnJlY3RpbmcKCXRoZSBudW1iZXIgb2YgZWxlbWVudHMgb2YgYSAibG9jdXMiIGluaXRpYWxpemVyLgoKMjAwNC0wNS0yNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgZm9ydHJhbi8xMzkxMgoJKiBtYXRjaGV4cC5jOiBBbGxvdyB1bmFyeSBvcGVyYXRvcnMgYWZ0ZXIgYXJpdGhtZXRpYyBvcGVyYXRvcnMKCWFzIGEgR05VIGV4dGVuc2lvbi4KCShtYXRjaF9leHRfbXVsdF9vcGVyYW5kLCBtYXRjaF9leHRfYWRkX29wZXJhbmQpOiBOZXcgZnVuY3Rpb25zLgoJKG1hdGNoX211bHRfb3BlcmFuZCk6IFR3ZWFrIHRvIGNhbGwgbWF0Y2hfZXh0X211bHRfb3BlcmFuZC4KCShtYXRjaF9hZGRfb3BlcmFuZCk6IFR3ZWFrIHRvIGNhbGwgbWF0Y2hfZXh0X211bHRfb3BlcmFuZC4KCShtYXRjaF9sZXZlbF8yKTogUmVhcnJhbmdlIHRvIGNhbGwgbWF0Y2hfZXh0X2FkZF9vcGVyYW5kLgoKMjAwNC0wNS0yNSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4cHIuYyAoY2hlY2tfaW5xdWlyeSk6IFJlbW92ZSBib2d1cyB0ZXN0cy4KCjIwMDQtMDUtMjMgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xMzc3MwoJKiBleHByLmMgKHJlc3RyaWN0ZWRfYXJncyk6IFJlbW92ZSByZWR1bmRhbnQgY2hlY2tzL2FyZ3VtZW50LgoJKGV4dGVybmFsX3NwZWNfZnVuY3Rpb24pOiBVcGRhdGUgdG8gbWF0Y2guCgkocmVzdHJpY3RlZF9pbnRyaW5zaWMpOiBSZXdyaXRlLgoKMjAwNC0wNS0yMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCVZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaGFpZmFzcGhlcmUuY28uaWw+CgoJKiBnZm9ydHJhbi5oIChzdHJ1Y3QgZ2ZjX3N5bWJvbCk6IEFkZCBlcXVpdl9idWlsdC4KCSogdHJhbnMtY29tbW9uLmM6IENoYW5nZSBpbnQgdG8gSE9TVF9XSURFX0lOVC4gIENhcGl0YWxpemUgZXJyb3IKCW1lc3NhZ2VzLgoJKGN1cnJlbnRfbGVuZ3RoKTogUmVtb3ZlLgoJKGFkZF9zZWdtZW50cyk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9lcXVpdl9kZWNsKTogQ3JlYXRlIGluaXRpYWxpemVkIGNvbW1vbiBibG9ja3MuCgkoYnVpbGRfY29tbW9uX2RlY2wpOiBBbHdheXMgYWRkIGRlY2wgdG8gYmluZGluZ3MuCgkoY3JlYXRlX2NvbW1vbik6IENyZWF0ZSBpbml0aWFsaXplcnMuCgkoZmluZF9zZWdtZW50X2luZm8pOiBSZWZvcm1hdCB0byBtYXRjaCBjb2RpbmcgY29udmVudGlvbnMuCgkobmV3X2NvbmRpdGlvbik6IFVzZSBhZGRfc2VnbWVudHMuCgkoYWRkX2NvbmRpdGlvbiwgZmluZF9lcXVpdmFsZW5jZSwgYWRkX2VxdWl2YWxlbmNlcyk6IE1vdmUgaXRlcmF0aW9uCglpbnNpZGUgZnVuY3Rpb25zLiAgT25seSBwcm9jZXNzIGVhY2ggc2VnbWVudCBvbmNlLgoJKG5ld19zZWdtZW50LCBmaW5pc2hfZXF1aXZhbGVuY2VzLCB0cmFuc2xhdGVfY29tbW9uKTogU2ltcGxpZnkuCgoyMDA0LTA1LTIzICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBjaGVjay5jIChnZmNfY2hlY2tfcmFuZG9tX3NlZWQpOiBJc3N1ZSBmb3IgdG9vIG1hbnkgYXJndW1lbnRzLgoKMjAwNC0wNS0yMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogaW50cmluc2ljLmMgKGFkZF9zdWJyb3V0aW5lcyk6IFVzZSBhZGRfc3ltXzNzIGZvciByYW5kb21fc2VlZC4KCjIwMDQtMDUtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZ2ZjX3Nob3dfZXF1aXYpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3Nob3dfbmFtZXNwYWNlKTogVXNlIGl0LgoKMjAwNC0wNS0yMiAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBoYWlmYXNwaGVyZS5jby5pbD4KCglQUiBmb3J0cmFuLzEzMjQ5CgkqIHN5bWJvbC5jIChnZmNfYWRkX2NvbW1vbik6IERpc2FibGUgY2hlY2tzIHRvIHdvcmsgYXJvdW5kIG90aGVyIG1vcmUKCWZ1bmRhbWVudGFsIGluYWRlcXVhY2llcy4KCjIwMDQtMDUtMjIgIFRvYmlhcyBTY2hs/HRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9leHRlcm5fZnVuY3Rpb25fZGVjbCk6IFNldCBERUNMX0lTX1BVUkUKCW9ubHkgZm9yIGZ1bmN0aW9ucy4KCShnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IExpa2V3aXNlLgoKMjAwNC0wNS0yMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX3N5c3RlbV9jbG9jayk6IE5ldyBmdW5jdGlvbi4KCSogaW50cmluc2ljLmMgKGFkZF9zeW1fM3MpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3N1YnJvdXRpbmVzKTogVXNlIGl0LgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX3N5c3RlbV9jbG9jaywgZ2ZjX3Jlc29sdmVfc3lzdGVtX2Nsb2NrKToKCUFkZCBwcm90b3R5cGVzLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9zeXN0ZW1fY2xvY2spOiBOZXcgZnVuY3Rpb24uCgoyMDA0LTA1LTIyICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpbnZva2UudGV4aTogRG9jdW1lbnQgLVd1bmRlcmZsb3cgYW5kIHNwZWxsIGNoZWNrLgoJKiBsYW5nLm9wdDogQWRkIFd1bmRlcmZsb3cuCgkqIGdmb3J0cmFuLmggKGdmY19vcHRpb25fdCk6IEFkZCB3YXJuX3VuZGVyZmxvdyBvcHRpb24uCgkqIG9wdGlvbnMuYyAoZ2ZjX2luaXRfb3B0aW9ucywgc2V0X1dhbGwpOiBVc2UgaXQuCgkqIHByaW1hcnkuYyAobWF0Y2hfcmVhbF9jb25zdGFudCk6IEV4cGxpY2l0bHkgaGFuZGxlIFVOREVSRkxPVy4KCSogYXJpdGguYyAoZ2ZjX2FyaXRoX3VtaW51cywgZ2ZjX2FyaXRoX3BsdXMsIGdmY19hcml0aF9taW51cywKCWdmY19hcml0aF90aW1lcywgZ2ZjX2FyaXRoX2RpdmlkZSwgZ2ZjX2FyaXRoX3Bvd2VyLCBnZmNfcmVhbDJyZWFsLAoJZ2ZjX3JlYWwyY29tcGxleCwgZ2ZjX2NvbXBsZXgycmVhbCwgZ2ZjX2NvbXBsZXgyY29tcGxleCk6IERpdHRvLgoJKiBhcml0aC5jIChjb21tb25fbG9nYXJpdGhtKTogRml4IHR5cG8gaW4gY29tbWVudC4KCjIwMDQtMDUtMjEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaW8uYyAoY2hlY2tfZm9ybWF0KTogQXMgYSBHTlUgZXh0ZW5zaW9uLCBhbGxvdyB0aGUgY29tbWEgYWZ0ZXIgYQoJc3RyaW5nIGxpdGVyYWwgdG8gYmUgb3B0aW9uYWwgaW4gYSBmb3JtYXQuICBVc2UgZ2ZjX25vdGlmeV9zdGQgdG8KCWlzc3VlIGFuIGVycm9yL3dhcm5pbmcgYXMgYXBwcm9wcmlhdGUuCgoyMDA0LTA1LTIxICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGlvLmMgKGNoZWNrX2Zvcm1hdCk6IFVzZSBnZmNfbm90aWZ5X3N0ZCB0byBkZXRlcm1pbmUgd2hldGhlciB0bwoJaXNzdWUgYW4gZXJyb3Ivd2FybmluZyBmb3Igb21pdHRpbmcgdGhlIGRpZ2l0cyBmcm9tIHRoZSBYIGZvcm1hdC4KCjIwMDQtMDUtMjAgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaW8uYyAoY2hlY2tfZm9ybWF0KTogQWxsb3cgdGhlIG51bWJlciBiZWZvcmUgdGhlIFggZm9ybWF0IHRvCgliZSBvcHRpb25hbCB3aGVuIG5vdCAtcGVkYW50aWMuCgoyMDA0LTA1LTE4ICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCVBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IFVzZSB2b2xkX2xpc3Rfbm9kZS4KCUNyZWF0ZSBkZWNscyBmb3IgX19idWlsdGluX3Bvd3ssZn0uCgkqIGdmb3J0cmFuLmggKFBSRUZJWF9MRU4pOiBEZWZpbmUuCgkqIHRyYW5zLWRlY2wuYyAoZ2Zvcl9mbmRlY2xfbWF0aF9wb3dpKTogQWRkLgoJKGdmb3JfZm5kZWNsX21hdGhfcG93ZiwgZ2Zvcl9mbmRlY2xfbWF0aF9wb3cpOiBSZW1vdmUuCgkoZ2ZjX2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9kZWNscyk6IENyZWF0ZSBkZWNscyBmb3IgcG93aS4KCSogdHJhbnMtZXhwci5jIChwb3dpX3RhYmxlKTogQWRkLgoJKGdmY19jb252X2ludGVnZXJfcG93ZXIpOiBSZW1vdmUuCgkoZ2ZjX2NvbnZfcG93aSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9jc3RfaW50X3Bvd2VyKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X3Bvd2VyX29wKTogVXNlIG5ldyBwb3dpIHJvdXRpbmVzLgoJKiB0cmFucy5oIChzdHJ1Y3QgZ2ZjX3Bvd2RlY2xfbGlzdCk6IEFkZC4KCShnZm9yX2ZuZGVjbF9tYXRoX3Bvd2kpOiBBZGQuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9wb3dmLCBnZm9yX2ZuZGVjbF9tYXRoX3Bvdyk6IFJlbW92ZS4KCjIwMDQtMDUtMTggIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy5jLCB0cmFucy1kZWNsLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0wNS0xOCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wZl90b190cmVlKTogRml4IHR5cG8uCgoyMDA0LTA1LTE4ICBTdGV2ZSBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGFyaXRoLmMgKGdmY19pbnQyY29tcGxleCk6IEZpeCBpbmNvcnJlY3QgcmFuZ2UgY2hlY2tpbmcuCgoyMDA0LTA1LTE4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTM5MzAKCSogZGVjbC5jIChhZGRfaW5pdF9leHByX3RvX3N5bSk6IFJlbW92ZSBpbmNvcnJlY3QgY2hlY2suCgkoZGVmYXVsdF9pbml0aWFsaXplcik6IE1vdmUgdG8gZXhwci5jLgoJKHZhcmlhYmxlX2RlY2wpOiBEb24ndCBhc3NpZ24gZGVmYXVsdCBpbml0aWFsaXplciB0byB2YXJpYWJsZXMuCgkqIGV4cHIuYyAoZ2ZjX2RlZmF1bHRfaW5pdGlhbGl6ZXIpOiBNb3ZlIHRvIGhlcmUuCgkqIGdmb3J0cmFuLmggKGdmY19kZWZhdWx0X2luaXRpYWxpemVyKTogQWRkIHByb3RvdHlwZS4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX3N5bWJvbCk6IENoZWNrIGZvciBpbGxlZ2FsIGluaXRpYWxpemVycy4KCUFzc2lnbiBkZWZhdWx0IGluaXRpYWxpemVyLgoKMjAwNC0wNS0xNyAgU3RldmUgS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jIChnZmNfYXJpdGhfcG93ZXIpOiBDb21wbGV4IG51bWJlciByYWlzZWQgdG8gMCBwb3dlciBpcyAxLgoKMjAwNC0wNS0xNyAgU3RldmUgS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jIChnZmNfcmVhbDJjb21wbGV4KTogUmFuZ2UgY2hlY2tpbmcgd3JvbmcgcGFydCBvZiBjb21wbGV4CgludW1iZXIuCgoyMDA0LTA1LTE2ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogb3B0aW9ucy5jIChnZmNfaGFuZGxlX21vZHVsZV9wYXRoX29wdGlvbnMpOiBGaXggYnVmZmVyIG92ZXJydW4uCgoyMDA0LTA1LTE2ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogYXJpdGguYyAoZ2ZjX3JhbmdlX2NoZWNrKTogRml4IGxvZ2ljIGVycm9yLgoKMjAwNC0wNS0xNiAgU3RldmUgS2FyZ2wgIDxzZ2tAdHJvdXRtYXNrLmFwbC53YXNoaW5ndG9uLmVkdT4KCgkqIGFyaXRoLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0wNS0xNSAgVG9iaWFzIFNjaGx1ZXRlciA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTM3NDIKCSogZGVjbC5jIChhZGRfaW5pdF9leHByX3RvX3N5bSk6IFZlcmlmeSB0aGF0IENPTU1PTiB2YXJpYWJsZSBpcwoJbm90IGluaXRpYWxpemVkIGluIGEgZGlzYWxsb3dlZCBmYXNoaW9uLgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfY29tbW9uKTogTGlrZXdpc2UuCgkodmFyX2VsZW1lbnQpOiBWZXJpZnkgdGhhdCB2YXJpYWJsZSBpcyBub3QgaW4gdGhlIGJsYW5rIENPTU1PTiwKCWlmIGl0IGlzIGluIGEgY29tbW9uLgoKMjAwNC0wNS0xNSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBNYWtlLWxhbmcuaW4gKGY5NS5nZW5lcmF0ZWQtbWFucGFnZXMpOiBSZW1vdmUuCgkoZjk1LnNyY2V4dHJhKTogTmV3LgoJKGY5NS5pbmZvLCBmb3J0cmFuL2dmb3J0cmFuLmluZm8sIGZvcnRyYW4vZ2ZvcnRyYW4uZHZpLAoJZjk1Lm1haW50YWluZXItY2xlYW4pOiBHZW5lcmF0ZSBpbmZvIGFuZCBkdmkgZmlsZXMgaW4gb2JqZGlyL2RvYy4KCShmOTUuZHZpKTogUmVtb3ZlLgoJKGR2aSk6IE5ldy4KCShmOTUuaW5zdGFsbC1pbmZvKTogUmVtb3ZlLgoJKGluc3RhbGwtaW5mbyk6IE5ldy4KCjIwMDQtMDUtMTUgIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaGFpZmFzcGhlcmUuY28uaWw+CgoJKiBkZWNsLmMgKGFkZF9pbml0X2V4cHJfdG9fc3ltKTogQ2hlY2sgZm9yIHZhcmlhYmxlIHNpemUgYXJyYXlzLgoKMjAwNC0wNS0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHByaW1hcnkuYyAobWF0Y2hfYm96X2NvbnN0YW50KTogVXNlIGdmY19ub3RpZnlfc3RkKCkgZm9yCglpc3N1aW5nIGEgd2FybmluZyBvciBhbiBlcnJvci4KCjIwMDQtMDUtMTUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzgyNgoJKiBwcmltYXJ5LmMgKG1hdGNoX3N0cnVjdHVyZV9jb25zdHJ1Y3Rvcik6IFJlbmFtZSAuLi4KCShnZmNfbWF0Y2hfc3RydWN0dXJlX2NvbnN0cnVjdG9yKTogLi4uIHRvIHRoaXMuIE1ha2Ugbm9uLXN0YXRpYy4KCShnZmNfbWF0Y2hfcnZhbHVlKTogQ2FsbCByZW5hbWVkIGZ1bmN0aW9uLgoJKiBtYXRjaC5oIChnZmNfbWF0Y2hfc3RydWN0dXJlX2NvbnN0cnVjdG9yKTogRGVjbGFyZS4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2RhdGFfY29uc3RhbnQpOiBIYW5kbGUgc3RydWN0dXJlCgljb25zdHJ1Y3Rvci4KCjIwMDQtMDUtMTUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzcwMgoJKFBvcnQgZnJvbSBnOTUpCgkqIGdmb3J0cmFuLmggKGdmY19saW5lYnVmKTogTmV3IHR5cGVkZWYuCgkobGluZWJ1Zik6IFJlbW92ZS4KCShnZmNfZmlsZSk6IFJldmFtcGVkLCB1c2UgbmV3IGdmY19saW5lYnVmLgoJKGxvY3VzKTogUmV2YW1wZWQsIHVzZSBuZXcgdHlwZXMuCgkoZ2ZjX2N1cnJlbnRfZmlsZSk6IFJlbW92ZS4KCShnZmNfY3VycmVudF9mb3JtLCBnZmNfc291cmNlX2ZpbGUpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlcy4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX3NwYWNlLCBnZmNfbWF0Y2hfc3RyaW5ncyk6IFVzZQoJZ2ZjX2N1cnJlbnRfZm9ybSB0byBmaW5kIHNvdXJjZSBmb3JtLgoJKiBtb2R1bGUuYyAoZ2ZjX2R1bXBfbW9kdWxlKTogVXNlIGdmY19zb3VyY2VfZmlsZSB3aGVuIHByaW50aW5nCgltb2R1bGUgaGVhZGVyLgoJKiBlcnJvci5jIChzaG93X2xvY3VzLCBzaG93X2xvY2kpIFVzZSBuZXcgZGF0YSBzdHJ1Y3R1cmVzIHRvIHByaW50Cglsb2N1cy4KCSogc2Nhbm5lci5jIChmaXJzdF9maWxlLCBmaXJzdF9kdXBsaWNhdGVkX2ZpbGUsIGdmY19jdXJyZW50X2ZpbGUpOgoJUmVtb3ZlLgoJKGZpbGVfaGVhZCwgY3VycmVudF9maWxlLCBnZmNfY3VycmVudF9mb3JtLCBsaW5lX2hlYWQsIGxpbmVfdGFpbCwKCWdmY19jdXJyZW50X2xvY3VzMSwgZ2ZjX3NvdXJjZV9maWxlKTogTmV3IGdsb2JhbCB2YXJpYWJsZXMuCgkoZ2ZjX3NjYW5uZXJfaW5pdDEpOiBTZXQgbmV3IGdsb2JhbCB2YXJpYWJsZXMuCgkoZ2ZjX3NjYW5uZXJfZG9uZTEpOiBGcmVlIG5ldyBkYXRhIHN0cnVjdHVyZXMuCgkoZ2ZjX2N1cnJlbnRfbG9jdXMpOiBSZXR1cm4gcG9pbnRlciB0byBnZmNfY3VycmVudF9sb2N1czEuCgkoZ2ZjX3NldF9sb2N1cyk6IFNldCBnZmNfY3VycmVudF9sb2N1czEuCgkoZ2ZjX2F0X2VvZik6IFNldCBuZXcgdmFyaWFibGVzLgoJKGdmY19hdF9ib2wsIGdmY19hdF9lb2wsIGdmY19hZHZhbmNlX2xpbmUsIGdmY19uZXh0X2NoYXIpOiBBZGFwdAoJdG8gbmV3IGxvY3VzIHN0cnVjdHVyZS4KCShnZmNfY2hlY2tfaW5jbHVkZSk6IFJlbW92ZS4KCShza2lwX2ZyZWVfY29tbWVudHMsIHNraXBfZml4ZWRfY29tbWVudHMpOiBVc2UgZ2ZjX2N1cnJlbnRfbG9jdXMxLgoJKGdmY19za2lwX2NvbW1lbnRzKTogVXNlIGdmY19jdXJyZW50X2Zvcm0sIGZpbmQgbG9jdXMgd2l0aAoJZ2ZjX2N1cnJlbnRfbG9jdXMxLgoJKGdmY19uZXh0X2NoYXIpOiBVc2UgZ2ZjX2N1cnJlbnRfZm9ybS4KCShnZmNfcGVla19jaGFyLCBnZmNfZ29iYmxlX3doaXRlc3BhY2UpOiBVc2UgZ2ZjX2N1cnJlbnRfbG9jdXMxLgoJKGxvYWRfbGluZSk6IFVzZSBnZmNfY3VycmVudF9mb3JtLiBSZWNvZ25pemUgXlogYXMgRU9GLiBGaXgKCWNvbW1lbnQgZm9ybWF0dGluZy4KCShnZXRfZmlsZSk6IE5ldyBmdW5jdGlvbi4KCShwcmVwcm9jZXNzb3JfbGluZSwgaW5jbHVkZV9saW5lKTogTmV3IGZ1bmN0aW9ucy4KCShsb2FkX2ZpbGUpOiBNb3ZlIGRvd24sIHJld3JpdGUgdG8gbWF0Y2ggbmV3IGRhdGEgc3RydWN0dXJlcy4KCShnZmNfbmV3X2ZpbGUpOiBSZXdyaXRlIHRvIG1hdGNoIG5ldyBkYXRhIHN0cnVjdHVyZXMuCgkqIHBhcnNlLmMgKG5leHRfc3RhdGVtZW50KTogUmVtb3ZlIGNvZGUgd2hpY2ggaXMgbm93IHVzZWxlc3MuIFVzZQoJZ2ZjX3NvdXJjZV9mb3JtIGFuZCBnZmNfc291cmNlX2ZpbGUgd2hlcmUgYXBwcm9wcmlhdGUuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9sYWJlbF9kZWNsKTogYWRhcHQgdG8gbmV3IGRhdGEgc3RydWN0dXJlcwoJd2hlbiBkZXRlcm1pbmluZyBsb2N1cyBvZiBmcm9udGVuZCBjb2RlLgoJKiB0cmFucy1pby5jIChzZXRfZXJyb3JfbG9jdXMpOiBTYW1lLgoJKiB0cmFucy5jIChnZmNfZ2V0X2JhY2tlbmRfbG9jdXMsIGdmY19zZXRfYmFja2VuZF9sb2N1cyk6IExpa2V3aXNlLgoJKiBsYW5nLXNwZWNzLmggKEBmNzctY3BwLWlucHV0LCBAZjk1LWNwcC1pbnB1dCk6IFJlbW92ZSAnLVAnIGZyb20KCXByZXByb2Nlc3NvciBmbGFncy4KCShhbGwpOiBBZGQgbWlzc2luZyBpbml0aWFsaXplcnMuCgoyMDA0LTA1LTE1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogTWFrZS1sYW5nLmluICh0cmFucy1jb21tb24ubyk6IFJlbW92ZSByZWR1bmRhbnQgZGVwZW5kZW5jeS4KCShkYXRhLmMpOiBSZXBsYWNlIG9iamVjdCBmaWxlIG5hbWUgLi4uCgkoZGF0YS5vKTogLi4uIGJ5IHRoZSBjb3JyZWN0IG9uZS4KCjIwMDQtMDUtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZ2ZjX3Nob3dfYXJyYXlfcmVmKTogUHJpbnQgY29sb24gb25seQoJZm9yIHJhbmdlcyB3aGVuIGR1bXBpbmcgYXJyYXkgcmVmZXJlbmNlcy4KCjIwMDQtMDUtMTQgIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaGFpZmFzcGhlcmUuY28uaWw+CgoJKiBkZWNsLmMgKHZhcmlhYmxlX2RlY2wpOiBBbHdheXMgYXBwbHkgZGVmYXVsdCBpbml0aWFsaXplci4KCjIwMDQtMDUtMDggIFRvYmlhcyBTY2hs/HRlciA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTUyMDYKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19ycnNwYWNpbmcpOiBGaXhlZCB0bwoJaGFuZGxlIHplcm8gY29ycmVjdGx5LgoKMjAwNC0wNS0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIG1hdGNoLmMgKGdmY19tYXRjaCk6IEVsaW1pbmF0ZSBkZWFkIGNvZGUuCgoyMDA0LTA1LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogcGFyc2UuYyAoZ2ZjX3N0YXRlbWVudF9uZXh0X2ZpeGVkKTogKENoYW5nZSBmcm9tIEFuZHkncyB0cmVlKQoJRGV0ZWN0IGJhZCBjb250aW51YXRpb24gbGluZSBpbiBmaXhlZCBmb3JtIHNvdXJjZXMuCgoyMDA0LTA1LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTUyMDUKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfbmVhcmVzdCk6IEFkZCBuZXcgZnVuY3Rpb24uCgkqIGludHJpbnNpYy5oOiAuLi4gZGVjbGFyZSBpdCBoZXJlLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IC4uLiBhZGQgaXQgYXMgcmVzb2x2aW5nIGZ1bmN0aW9uCglmb3IgTkVBUkVTVC4KCjIwMDQtMDUtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNDA2NgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfZG8pOiBBbGxvdyBpbmZpbml0ZSBsb29wcyB3aXRoCglsYWJlbC1kby1zdG10LiBEbyBub3QgZW5mb3JjZSBzcGFjZSBhZnRlciBjb21tYS4KCjIwMDQtMDUtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNTA1MQoJKiBwYXJzZS5jIChwYXJzZV9pbnRlcmZhY2UpOiBBbGxvdyBlbXB0eSBJTlRFUkZBQ0UsIHJlbW92ZQoJc2Vlbl9ib2R5LgoKMjAwNC0wNS0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIE1ha2UtbGFuZy5pbiwgYXJpdGguYywgYXJpdGguaCwgYXJyYXkuYywgYmJ0LmMsIGNoZWNrLmMsCglkZWNsLmMsIGRlcGVuZGVuY3kuYywgZGVwZW5kZW5jeS5oLCBkdW1wLXBhcnNlLXRyZWUuYywgZXJyb3IuYywKCWV4cHIuYywgZjk1LWxhbmcuYywgZ2ZvcnRyYW4uaCwgaW50ZXJmYWNlLmMsIGludHJpbnNpYy5jLAoJaW50cmluc2ljLmgsIGlvLmMsIGlyZXNvbHZlLmMsIGxhbmctc3BlY3MuaCwgbWF0Y2guYywgbWF0Y2guaCwKCW1hdGNoZXhwLmMsIG1pc2MuYywgbW9kdWxlLmMsIG9wdGlvbnMuYywgcGFyc2UuYywgcGFyc2UuaCwKCXByaW1hcnkuYywgcmVzb2x2ZS5jLCBzY2FubmVyLmMsIHNpbXBsaWZ5LmMsIHN0LmMsIHN5bWJvbC5jLAoJdHJhbnMtYXJyYXkuYywgdHJhbnMtYXJyYXkuaCwgdHJhbnMtY29tbW9uLmMsIHRyYW5zLWNvbnN0LmMsCgl0cmFucy1jb25zdC5oLCB0cmFucy1kZWNsLmMsIHRyYW5zLWV4cHIuYywgdHJhbnMtaW50cmluc2ljLmMsCgl0cmFucy1pby5jLCB0cmFucy1zdG10LmMsIHRyYW5zLXN0bXQuaCwgdHJhbnMtdHlwZXMuYywKCXRyYW5zLXR5cGVzLmgsIHRyYW5zLmMsIHRyYW5zLmg6IFVwZGF0ZSBjb3B5cmlnaHQgeWVhcnMgYW5kCglib2lsZXJwbGF0ZS4KCSogZGF0YS5jOiBMaWtld2lzZSwgYWxzbyByZW1vdmVkIHR3byB3aGl0ZXNwYWNlLW9ubHkgbGluZXMuCgkqIGdmb3J0cmFuc3BlYy5jLCBsYW5nLm9wdDogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCjIwMDQtMDUtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNDU2OAoJKiB0cmFucy1kZWNsLmMgKGdlbmVyYXRlX2xvY2FsX2RlY2wpOiBEb24ndCB3YXJuIGZvciB1bnVzZWQKCXZhcmlhYmxlcyB3aGljaCBhcmUgaW4gY29tbW9uIGJsb2Nrcy4KCjIwMDQtMDUtMTMgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogTWFrZS1sYW5nLmluLCBmOTUtbGFuZy5jLCB0cmFucy1hcnJheS5jLCB0cmFucy1kZWNsLmMsCgl0cmFucy1leHByLmMsIHRyYW5zLWludHJpbnNpYy5jLCB0cmFucy1pby5jLCB0cmFucy1zdG10LmMsCgl0cmFucy5jOiBSZW5hbWUgdHJlZS1zaW1wbGUuW2NoXSB0byB0cmVlLWdpbXBsZS5bY2hdLgoKMjAwNC0wNS0xMyAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBoYWlmYXNwaGVyZS5jby5pbD4KCglQUiBmb3J0cmFuLzE1MzE0CgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfc3RydWN0dXJlKTogVXNlIGZpZWxkIHR5cGUsIG5vdCBleHByIHR5cGUuCgoyMDA0LTA1LTEzICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGdmb3J0cmFuLnRleGk6IFVzZSBAdGFibGUgQGVtcGggaW5zdGVhZCBvZiBAaXRlbWl6ZSBAZW1waC4KCVJlbW92ZSAic2V0IERFVkVMT1BNRU5UIi4KCShDb21waWxpbmcgR0ZPUlRSQU4pOiBSZW1vdmUuCgoyMDA0LTA1LTA5ICBUb2JpYXMgU2NobPx0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBhcnJheS5jIChtYXRjaF9zdWJzY3JpcHQsIG1hdGNoX2FycmF5X3JlZik6IEFkZCBjb21tZW50cwoJZXhwbGFpbmluZyBhcmd1bWVudCAnaW5pdCcuCgkqIGRlY2wuYywgZjk1LWxhbmcuYywgbWF0Y2guYywgcmVzb2x2ZS5jLCB0cmFucy1hcnJheS5jLAoJdHJhbnMtZXhwci5jLCB0cmFucy5jOiBGaXggc29tZSB0eXBvcyBpbiBjb21tZW50cy4KCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2V4cHIpOiBSZW1vdmUgd3JvbmcgY29tbWVudC4KCSogcHJpbWFyeS5jIChtYXRjaF9kaWdpdHMsIG1hdGNoX2ludGVnZXJfY29uc3RhbnQpOiBBZGQgY29tbWVudAoJZXhwbGFpbmluZyBzaWduZmxhZy4KCjIwMDQtMDUtMDEgIFRvYmlhcyBTY2hs/HRlciA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTM5NDAKCSogcHJpbWFyeS5jOiBJbmNsdWRlIHN5c3RlbS5oIGFuZCBmbGFncy5oLCBuZWVkZWQgZm9yIHBlZGFudGljLgoJKG1hdGNoX2Jvel9jb25zdGFudCk6IEFsbG93ICJ4IiBmb3IgaGV4YWRlY2ltYWwgY29uc3RhbnRzLCB3YXJuIGlmCglwZWRhbnRpYyBpcyBzZXQuCgoyMDA0LTA1LTAxICBUb2JpYXMgU2NobPx0ZXIgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzEzOTQwCgkqIG1hdGNoLmMgKG1hdGNoX2RhdGFfY29uc3RhbnQpOiBIYW5kbGUgY2FzZSB3aGVyZQoJZ2ZjX2ZpbmRfc3ltYm9sCXNldHMgc3ltIHRvIE5VTEwKCjIwMDQtMDQtMjggIFRvYmlhcyBTY2hs/HRlciA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogTWFrZS1sYW5nLmluIChmOTUtbGFuZy5vLCB0cmFucy1pbnRyaW5zaWMubyk6IEFkZCBtaXNzaW5nCglkZXBlbmRlbmN5IG9uIG1hdGhidWlsdGlucy5kZWYKCjIwMDQtMDQtMjQgIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaWwuaWJtLmNvbT4KCgkqIHRyYW5zLWlvLmMgKHRyYW5zZmVyX2V4cHIpOiBJbXBsZW1lbnRlZCByZWN1cnNpdmUgcHJpbnRpbmcKCW9mIGRlcml2ZWQgdHlwZXMuCgoyMDA0LTA0LTI0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGdmb3J0cmFuc3BlYy5jOiBEbyBub3QgaW5jbHVkZSBtdWx0aWxpYi5oLgoKMjAwNC0wNC0yNCAgVG9iaWFzIFNjaGz8dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtaW50cmluc2ljLmM6IEZpeCBjb21tZW50LCB0aGlzIGlzIG5vdCB0cmFucy1leHByLmMuIEFkZAoJMjAwNCB0byBjb3B5cmlnaHQgeWVhcnMuCgkqIHRyYW5zLWV4cHIuYywgdHJhbnMtZGVjbC5jOiBDb21tZW50IHVwZGF0ZSwgd2Ugbm93IGdlbmVyYXRlCglHRU5FUklDLCBub3QgU0lNUExFLiBBZGQgMjAwNCB0byBjb3B5cmlnaHQgeWVhcnMuCgoyMDA0LTA0LTI0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChnZm9ydHJhbnNwZWMubyk6IEFkZCBkZXBlbmRlbmN5IG9uICQoVE1fSCkuCgoyMDA0LTA0LTI0ICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiAxNDgxNwoJKiBhcml0aC5jIChnZmNfYXJpdGhfZGl2aWRlKTogRml4IGNvbXBsZXggZGl2aWRlLgoKMjAwNC0wNC0yMyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBnZm9ydHJhbnNwZWMuYzogSW5jbHVkZSB0aGUgdGFyZ2V0IGhlYWRlcnMuCgoyMDA0LTA0LTE4ICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiBmb3J0cmFuLzE0OTIxCglQUiBmb3J0cmFuLzE0NTQwCgkqIGFyaXRoLmMgKGFyY3RhbmdlbnQyKTogTmV3IGZ1bmN0aW9uLgoJKiBhcml0aC5oIChhcmN0YW5nZW50Mik6IEFkZCBmdW5jdGlvbiBwcm90b3R5cGUuCgkqIHNpbXBsaWZ5LmMgKGdmY19zaW1wbGlmeV9hdGFuMik6IFVzZSBpdC4KCShnZmNfc2ltcGxpZnlfbG9nKTogVXNlIGl0LgoKMjAwNC0wNC0xMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiBmb3J0cmFuL2Y5NS1sYW5nLmMgKGdmY19leHBhbmRfc3RtdCk6IFJlbW92ZS4KCShMQU5HX0hPT0tTX1JUTF9FWFBBTkRfU1RNVCk6IFJlbW92ZS4KCjIwMDQtMDQtMTEgIEJ1ZCBEYXZpcyAgPGJkYXZpczk2NTlAY29tY2FzdC5uZXQ+CgoJUFIgZm9ydHJhbi8xNDg3MgoJKiB0cmFucy1pby5jIChidWlsZF9kdCk6IENoYW5nZSBSRUMgdG8gdmFsdWUuCgoyMDA0LTA0LTExICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiAxNDM5NAoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9tcGZfdG9fdHJlZSk6IExvb3NlbiB0aGUgbWF4aW11bSBkaWdpdHMgb2YKCXRoZSByZWFsIHZhbHVlIHdoZW4gY29udmVydGluZyBtcGYgdG8gc3RyaW5nLgoKMjAwNC0wNC0xMSAgRmVuZyBXYW5nICA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CgoJUFIgMTQzOTUKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19jbXBseCk6IEZpeCB0aGUgaW1hZyBwYXJ0IG9mCgl0aGUgcmVzdWx0LgoKMjAwNC0wNC0xMSAgRmVuZyBXYW5nICA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CgoJUFIgZm9ydHJhbi8xNDM3NwoJKiBzaW1wbGlmeS5jIChzaW1wbGlmeV9taW5fbWF4KTogQ29udmVydCB0aGUgdHlwZSBvZiB0aGUgcmVzdWx0LgoKMjAwNC0wNC0xMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdmb3J0cmFuLnRleGk6IFVzZSBmdWxsIHRhcmdldCB0cmlwbGV0LgoKMjAwNC0wNC0xMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoR0ZPUlRSQU5fVEVYSSk6IFNldCBpdC4KCShmb3J0cmFuL2Rmb3J0cmFuLmR2aSk6IFVzZSBpdC4gIEFkZCBmb3J0cmFuIHRvIGluY2x1ZGUgcGF0aHMuCgkoZm9ydHJhbi9nZm9ydHJhbi5pbmZvKTogRGl0dG8uCgkqIGdmb3J0cmFuLnRleGk6IE1ham9yIHVwZGF0ZS4KCSogaW52b2tlLnRleGk6IE5ldyBmaWxlLgoKMjAwNC0wNC0xMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19hbGxvY2F0ZV90ZW1wX2FycmF5LAoJZ2ZjX2NvbnZfdG1wX2FycmF5X3JlZik6IERvbid0IHVzZSBHRkNfREVDTF9TVFJJTkcuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2R1bW15X2FycmF5X2RlY2wsCglnZmNfZ2V0X3N5bWJvbF9kZWNsLCBnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCwKCWdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlKTogRGl0dG8uCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfdmFyaWFibGUpOiBEaXR0by4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19sZW4pOiBEaXR0by4KCSogdHJhbnMuaCAoR0ZDX0RFQ0xfU1RSSU5HKTogUmVtb3ZlLgoJKEdGQ19ERUNMX1BBQ0tFRF9BUlJBWSwgR0ZDX0RFQ0xfUEFSVElBTF9QQUNLRURfQVJSQVksCglHRkNfREVDTF9BU1NJR04pOiBSZW51bWJlciBmbGFncy4KCjIwMDQtMDQtMDUgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgMTMyNTIKCVBSIDE0MDgxCgkqIGY5NS1sYW5nLmMgKGdmY19pbml0X2J1aWx0aW5fZnVuY3Rpb25zKTogQWRkIHN0YWNrX2FsbG9jLCBzdGFja19zYXZlCglhbmQgc3RhY2tfcmVzdG9yZS4KCSogZ2ZvcnRyYW4uaCAoc3RydWN0IGdmY19jaGFybGVuKTogQWRkIGJhY2tlbmRfZGVjbC4KCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXksCglnZmNfY29udl90ZW1wX2FycmF5X3JlZiwgZ2ZjX2NvbnZfcmVzb2x2ZV9kZXBlbmRlbmNpZXMsCgkoZ2ZjX2NvbnZfbG9vcF9zZXR1cCwgZ2ZjX2FycmF5X2FsbG9jYXRlLCBnZmNfY29udl9hcnJheV9pbml0X3NpemUpOgoJUmVtb3ZlIG9sZCwgYnJva2VuIHN0cmluZyBoYW5kbGluZy4KCShnZmNfdHJhbnNfYXV0b19hcnJheV9hbGxvY2F0aW9uLCBnZmNfdHJhbnNfZzc3X2FycmF5LAoJZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMsIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciwKCWdmY190cmFuc19kZWZlcnJlZF9hcnJheSk6IEhhbmRsZSBjaGFyYWN0ZXIgYXJyYXlzLgoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9jb25zdF9jaGFybGVuKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmFucy1jb25zdC5oIChnZmNfY29udl9jb25zdF9jaGFybGVuKTogQWRkIHByb3RvdHlwZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfZmluaXNoX3Zhcl9kZWNsKTogRG9uJ3QgbWFyayBhdXRvbWF0aWMgdmFyaWFibGVzCglhcyBzdGF0aWMuCgkoZ2ZjX2J1aWxkX2R1bW15X2FycmF5X2RlY2wpOiBIYW5kbGUgYXJyYXlzIHdpdGggdW5rbm93biBlbGVtZW50IHNpemUuCgkoZ2ZjX2NyZWF0ZV9zdHJpbmdfbGVuZ3RoKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19nZXRfc3ltYm9sX2RlY2wpOiBDcmVhdGUgbGVuZ3RocyBmb3IgY2hhcmFjdGVyIHZhcmlhYmxlcy4KCShnZmNfZ2V0X2Zha2VfcmVzdWx0X2RlY2wpOiBEaXR0by4KCShnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IE9ubHkgc2V0IGxlbmd0aCBmb3IgYXNzdW1lZCBsZW5ndGgKCWNoYXJhY3RlciBhcmd1bWVudHMuCgkoZ2ZjX3RyYW5zX2R1bW15X2NoYXJhY3Rlcik6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfYXV0b19jaGFyYWN0ZXJfdmFyaWFibGUpOiBSZXdyaXRlLgoJKGdmY190cmFuc19kZWZlcnJlZF92YXJzKTogSGFuZGxlIG1vcmUgdHlwZXMgb2YgY2hhcmFjdGVyIHZhcmlhYmxlLgoJKGdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlKTogU3RyaW5nIGxlbmd0aHMgaGF2ZSBtb3ZlZC4KCShnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IEluaXRpYWxpemUgZGVmZXJyZWQgdmFyIGNoYWluIGVhcmxpZXIuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfaW5pdF9zdHJpbmdfbGVuZ3RoKTogUmVuYW1lIC4uLgoJKGdmY190cmFuc19pbml0X3N0cmluZ19sZW5ndGgpOiAgLi4uIHRvIHRoaXMuCgkoZ2ZjX2NvbnZfY29tcG9uZW50X3JlZiwgZ2ZjX2NvbnZfdmFyaWFibGUsIGdmY19jb252X2NvbmNhdF9vcCwKCWdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBVcGRhdGUgdG8gbmV3IGZvcm1hdCBmb3IgY2hhcmFjdGVyIHZhcmlhYmxlcy4KCShnZmNfY29udl9zdHJpbmdfbGVuZ3RoKTogUmVtb3ZlLgoJKGdmY19jb252X3N0cmluZ19wYXJhbWV0ZXIpOiBVcGRhdGUgYXNzZXJ0aW9uLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2xlbik6IFVzZSBuZXcgbG9jYXRpb24uCgkqIHRyYW5zLWlvLmMgKHNldF9zdHJpbmcpOiBVc2UgbmV3IG1hY3JvIG5hbWVzLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19sYWJlbF9hc3NpZ24uIGdmY190cmFuc19nb3RvKTogRGl0dG8uCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfY2hhcmFjdGVyX3R5cGUpOiBVc2UgZXhpc3RpbmcgbGVuZ3RoIGV4cHIuCgkoZ2ZjX2lzX25vZGVzY19hcnJheSk6IE1ha2UgcHVibGljLgoJKGdmY19nZXRfZHR5cGVfY3N0KTogUmVuYW1lIC4uLgoJKGdmY19nZXRfZHR5cGUpOiAuLi4gdG8gdGhpcy4gIEhhbmRsZSB1bmtub3duIHNpemUgYXJyYXlzLgoJKGdmY19nZXRfbm9kZXNjX2FycmF5X3R5cGUpOiBVc2UgbmV3IG5hbWUuCgkoZ2ZjX3N5bV90eXBlKTogTmV3IGNoYXJhY3RlciB2YXJpYWJsZSBjb2RlLgoJKGdmY19nZXRfZGVyaXZlZF90eXBlKTogRGl0dG8uCgkoZ2ZjX2dldF9mdW5jdGlvbl90eXBlKTogRXZhbHVhdGUgY2hhcmFjdGVyIHZhcmlhYmxlIGxlbmd0aHMuCgkqIHRyYW5zLXR5cGVzLmggKGdmY19zdHJsZW5fa2luZCk6IERlZmluZS4KCShnZmNfaXNfbm9kZXNjX2FycmF5KTogQWRkIHByb3RvdHlwZS4KCSogdHJhbnMuaDogVXBkYXRlIHByb3RvdHlwZXMuCgkoc3RydWN0IGxhbmdfdHlwZSk6IFVwZGF0ZSBjb21tZW50cy4KCShHRkNfREVDTF9TVFJJTkdfTEVOKTogTmV3IG5hbWUgZm9yIEdGQ19ERUNMX1NUUklOR19MRU5HVEguCgkoR0ZDX0tOT1dOX1NJWkVfU1RSSU5HX1RZUEUpOiBSZW1vdmUuCgoyMDA0LTA0LTA0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2ZvcnRyYW4uaCAoc3RydWN0IGdmY19vcHRpb25fdCk6IFJlbW92ZSBmbGFnX2c3N19jYWxscy4KCSogb3B0aW9ucy5jIChnZmNfaW5pdC5vcHRpb25zLCBnZmNfaGFuZGxlX29wdGlvbik6IERpdHRvLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBEaXR0by4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2lzX25vZGVzY19hcnJheSk6IERpdHRvCgkqIGxhbmcub3B0IChmZzc3LWNhbGxzKTogUmVtb3ZlLgoKMjAwNC0wNC0wNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKE9GRlNFVF9GSUVMRCk6IFJlbmFtZSBmcm9tIEJBU0VfRklFTEQuCgkoZ2ZjX2NvbnZfZGVzY3JpcHRvcl9iYXNlKTogUmVuYW1lIC4uLgoJKGdmY19jb252X2Rlc2NyaXB0b3Jfb2Zmc2V0KTogLi4uIHRvIHRoaXMuCgkoZ2ZjX3RyYW5zX2FsbG9jYXRlX2FycmF5X3N0b3JhZ2UpOiBTZXQgb2Zmc2V0IHRvIHplcm8uCgkoZ2ZjX2NvbnZfYXJyYXlfYmFzZSk6IFJlbmFtZSAuLi4KCShnZmNfY29udl9hcnJheV9vZmZzZXQpOiAuLi4gdG8gdGhpcy4KCShnZmNfY29udl9hcnJheV9pbmRleF9yZWYpOiBBZGQgb2Zmc2V0IHBhcmFtZXRlci4KCShnZmNfY29udl9hcnJheV9yZWYpOiBJbmNsdWRlIG9mZnNldC4KCShnZmNfdHJhbnNfcHJlbG9vcF9zZXR1cCk6IFVzZSBleGlzdGluZyBvZmZzZXQuCgkoZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXksICBnZmNfYXJyYXlfYWxsb2NhdGUsCglnZmNfdHJhbnNfYXV0b19hcnJheV9hbGxvY2F0aW9uLCBnZmNfdHJhbnNfZzc3X2FycmF5LAoJZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMsIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciwKCWdmY19jb25mX3NzX2Rlc2NyaXB0b3IpOiBTZXQgb2Zmc2V0LgoJKiB0cmFucy1hcnJheS5oOiBSZW5hbWUgcHJvdG90eXBlcy4KCSogdHJhbnMtY29uc3QuaCAoZ2ZjX2luZGV4X3plcm9fbm9kZSk6IERlZmluZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfYnVpbGRfcXVhbGlmaWVkX2FycmF5KTogQ2hhbmdlIGJhc2UgdG8gb2Zmc2V0LgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2FycmF5X3R5cGVfYm91bmRzKTogRGl0dG8uCgkoZ2ZjX2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IENhbGN1bGF0ZSBvZmZzZXQgYmVmb3JlIHVwcGVyIGJvdW5kLgoKMjAwNC0wMy0yNSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiBjb252ZXJ0LmMgKGNvbnZlcnQpOiBEb24ndCBoYW5kbGUgV0lUSF9SRUNPUkRfRVhQUi4KCjIwMDQtMDMtMjQgIEJ1ZCBEYXZpcyAgPGJkYXZpczk2NTlAY29tY2FzdC5uZXQ+CgoJUFIgMTQwNTUKCSogYXJpdGguYyAoZ2ZjX2NvbnZlcnRfaW50ZWdlcixnZmNfY29udmVydF9yZWFsKTogIFJlbW92ZWQgbGVhZGluZyAnKycKCWJlZm9yZSBjb252ZXJzaW9uIGJ5IGdtcCBsaWJyYXJ5IGNhbGwuCgoyMDA0LTAzLTI0ICBCdWQgRGF2aXMgIDxiZGF2aXM5NjU5QGNvbWNhc3QubmV0PgoKCVBSIDEyOTIxCgkqIHRyYW5zLWlvLmMgKGdmY190cmFuc19vcGVuKTogQ2hhbmdlIFJFQ0w9IHRvIGEgdmFsdWUgcGFyYW1ldGVyLgoKMjAwNC0wMi0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19kdW1teV9hcnJheV9iaWFzKTogRml4IHR5cG8uCgoyMDA0LTAyLTE5ICBMb3JlbiBKLiBSaXR0bGUgIDxsanJpdHRsZUBhY20ub3JnPgoKCSogTWFrZS1sYW5nLmluICgkKHNyY2RpcikvZm9ydHJhbi9nZm9ydHJhbi5pbmZvKTogTW92ZS4uLgoJKGZvcnRyYW4vZ2ZvcnRyYW4uaW5mbyk6IC4uLiB0byBoZXJlLgoJKGY5NS5zcmNpbmZvKTogTmV3LgoKMjAwNC0wMi0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoZjk1LWxhbmcubywgdHJhbnMtZGVjbC5vKTogRGVwZW5kIG9uIGNncmFwaC5oLgoJKiBmOTUtbGFuZy5jIChMQU5HX0hPT0tTX0VYUEFORF9ERUNMKTogUmVtb3ZlLgoJKExBTkdfSE9PS1NfQ0FMTEdSQVBIX0VYUEFORF9GVU5DVElPTik6IE5ldy4KCShnZmNfZXhwYW5kX2Z1bmN0aW9uKTogUmVuYW1lIGZyb20gZXhwYW5kX2Z1bmN0aW9uX2JvZHksIG1ha2Ugc3RhdGljLAoJZG9uJ3QgZG8gYW55dGhpbmcgZXhjZXB0IGludm9rZSB0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24uCgkoZ2ZjX2JlX3BhcnNlX2ZpbGUpOiBJbnZva2UgY2dyYXBoLgoJKGdmY19leHBhbmRfZGVjbCk6IFJlbW92ZS4KCShnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IEFkZCBfX2J1aWx0aW5faW5pdF90cmFtcG9saW5lIGFuZAoJX19idWlsdGluX2FkanVzdF90cmFtcG9saW5lLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wpOiBEb24ndCBzZXQgREVDTF9DT05URVhULgoJKGdmY19maW5hbGl6ZSk6IE5ldy4KCShnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IFVzZSBpdC4gIExvd2VyIG5lc3RlZCBmdW5jdGlvbnMuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IEFkZCBzdGF0aWMgY2hhaW4gb3BlcmFuZAoJdG8gY2FsbF9leHByLgoJKiB0cmFucy5jIChnZmNfYnVpbGRfZnVuY3Rpb25fY2FsbCk6IExpa2V3aXNlLgoJKiB0cmFucy5oIChleHBhbmRfZnVuY3Rpb25fYm9keSk6IFJlbW92ZS4KCjIwMDQtMDItMTUgIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaWwuaWJtLmNvbT4KCglQUiBnZm9ydHJhbi8xMzQzMwoJKiB0cmFucy1kZWNsLmMgKGdmY19idWlsZF9mdW5jdGlvbl9kZWNsKSBGb3IgZnVuY3Rpb25zCglyZXR1cm5pbmcgQ0hBUkFDVEVSIHBhc3MgYW4gZXh0cmEgbGVuZ3RoIGFyZ3VtZW50LAoJZm9sbG93aW5nIGc3NyBjYWxsaW5nIGNvbnZlbnRpb25zLgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUpIERpdHRvLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpIERpdHRvLgoKMjAwNC0wMi0xNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGY5NS1sYW5nLmMgKGdmY19pbml0X2J1aWx0aW5fZnVuY3Rpb25zKTogQnVpbGQgY2hhaW4gcHJvcGVybHkuCgoyMDA0LTAyLTEyICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIEJVR1M6IFJlbW92ZS4KCjIwMDQtMDItMDggIFN0ZXZlIEthcmdsICA8c2drQHRyb3V0bWFzay5hcGwud2FzaGluZ3Rvbi5lZHU+CgoJKiBnZm9ydHJhbi50ZXhpOiBGaXggdHlwb3MuCgoyMDA0LTAyLTA3ICBCdWQgRGF2aXMgIDxiZGF2aXM5NjU5QGNvbWNhc3QubmV0PgoKCVBSIGdmb3J0cmFuLzEzOTA5CgkqIGludHJpbnNpYy5jIChhZGRfY29udmVyc2lvbnMpIFVzZSBsb2dpY2FsIGNvbnZlcnNpb24gaW5zdGVhZAoJb2YgcmVhbC4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9sb2dpY2FsX3R5cGUpIGltcGxlbWVudGVkIGxvZ2ljYWwqMQoJYW5kIGxvZ2ljYWwqMi4KCjIwMDQtMDEtMTcgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IFJlbW92ZSAlPGZpeGVkLWZvcm0uCgoyMDA0LTAxLTE1ICBUb29uIE1vZW5lICA8dG9vbkBtb2VuZS5pbmRpdi5ubHV1Zy5ubD4KCgkqIGxhbmctc3BlY3MuaDogRW5hYmxlIHByZXByb2Nlc3Npbmcgb2Ygc291cmNlIGZpbGVzCgllbmRpbmcgaW4gLkYsIC5mcHAsIC5GUFAsIC5GOTAgYW5kIC5GOTUuCgoyMDA0LTAxLTEzICBUb29uIE1vZW5lICA8dG9vbkBtb2VuZS5pbmRpdi5ubHV1Zy5ubD4KCglQUiBmb3J0cmFuLzEyOTEyCgkqIGxhbmctc3BlY3MuaDogRW5hYmxlIGNvbXBpbGF0aW9uIG9mIGZpbGVzIGVuZGluZwoJaW4gLmYsIC5mb3IgYW5kIC5GT1IuCgoyMDA0LTAxLTExICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfaWZfMSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfaWYpOiBVc2UgaXQuCgoyMDA0LTAxLTExICBFcmlrIFNjaG5ldHRlciAgPHNjaG5ldHRlckB1bmktdHVlYmluZ2VuLmRlPgoKCSogZ2ZvcnRyYW4uaCAoR0ZDX01BWF9TWU1CT0xfTEVOKTogSW5jcmVhc2UuCgkoZ2ZjX29wdGlvbl90KTogQWRkIG1heF9pZGVudGlmaWVyX2xlbmd0aC4KCSogbGFuZy5vcHQ6IEFkZCBmbWF4LWlkZW50aWZpZXItbGVuZ3RoLgoJKiBtYXRjaC5jIChwYXJzZV9uYW1lKTogVXNlIGxpbWl0LgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBTZXQgbWF4X2lkZW50aWZpZXJfbGVuZ3RoLgoJKGdmY19oYW5kbGVfb3B0aW9uKTogRGl0dG8uCgoyMDA0LTAxLTExICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogQWRkIHJlc29sdmUgZnVuY3Rpb24gdG8gZGNtcGx4LgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX3Jlc29sdmVfZGNtcGx4KTogQWRkIHByb3RvdHlwZS4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfZGNtcGx4KTogTmV3IGZ1bmN0aW9uLgoKMjAwNC0wMS0xMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9zeW1ib2xfZGVjbCk6IERvbid0IHNldCBzdWJyb3V0aW5lIGF0dHIuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19zeW1fdHlwZSk6IEhhbmRsZSBleHRlcm5hbCBkdW1teSBwcm9jZWR1cmVzLgoJKGdmY19yZXR1cm5fYnlfcmVmZXJlbmNlKTogQ29ycmVjdCBjb25kaXRpb24uCgkoZ2ZjX2dldF9mdW5jdGlvbl90eXBlKTogRGl0dG8uCgoyMDA0LTAxLTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19taW5tYXgpOiBDb252ZXJ0IG1pc21hdGNoZWQKCXR5cGVzLgoKMjAwNC0wMS0xMCAgSHVhbmcgQ2h1biAgPGNodW5odWFuZzczQGhvdG1haWwuY29tPgoKCSogaXJlc29sdmUuYzogVXNlIGNvcnJlY3Qga2luZC4KCjIwMDQtMDEtMTAgIEh1YW5nIENodW4gIDxjaHVuaHVhbmc3M0Bob3RtYWlsLmNvbT4KCglQUiBmb3J0cmFuLzEzNDY3CgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiAgT3V0cHV0IGFycmF5IHZhbHVlZAoJcGFyYW1ldGVycy4KCjIwMDQtMDEtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiByZXNvbHZlLmMgKHJlc29sdmVfYnJhbmNoKTogR2V0IGVycm9yIG1lc3NhZ2UgcmlnaHQgd2F5IHJvdW5kLgoKMjAwNC0wMS0xMCAgQ2FucXVuIFlhbmcgPGNhbnF1bkBudWR0LmVkdS5jbj4KCgkqIHRyYW5zLWFycmF5IChnZmNfY29udl9sb29wX3NldHVwKTogQWRqdXN0IGNvbW1lbnQgdG8gdHJhY2sKCXJlYWxpdHkuCgkoZ2ZjX2FycmF5X2FsbG9jYXRlKTogRG9uJ3QgY291bnQgc2l6ZSBvZiBlbGVtZW50IHR3aWNlLgoKMjAwNC0wMS0wNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxhbmcub3B0IChpOCwgcjgsIHN0ZD0qKTogUmVtb3ZlIFJlamVjdE5lZ2F0aXZlLgoKMjAwNC0wMS0wNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKGdmY19ub3RpZnlfc3RkKTogTmV3IGZ1bmN0aW9uLgoJKiBnZm9ydHJhbi5oIChnZmNfbm90aWZ5X3N0ZCk6IERlY2xhcmUuCgkoR0ZDX1NURF8qKTogRGVmaW5lLgoJKGdmY19vcHRpb25fdCk6IEFkZCB3YXJuX3N0ZCBhbmQgYWxsb3dfc3RkLgoJKiBpbnRyaW5zaWMuYyAoZ2ZjX2luaXRfZXhwcl9leHRlbnNpb25zKTogRml4IGxvZ2ljLgoJKGdmY19pbnRyaW5zaWNfZnVuY19pbnRlcmZhY2UpOiBVc2UgZ2ZjX25vdGlmeV9zdGQuCgkqIGNoZWNrLmMgKGNoZWNrX3Jlc3QpOiBVc2UgZ2ZjX25vdGlmeV9zdGQuCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9wYXVzZSk6IERpdHRvLgoJKGdmY19tYXRjaF9hc3NpZ24pOiBEaXR0by4KCShnZmNfbWF0Y2hfZ290byk6IERpdHRvLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfYnJhbmNoKTogRGl0dG8uCgkqIGxhbmcub3B0OiBBZGQgc3RkPTxmb28+IGFuZCB3LgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBTZXQgYWxsb3dfc3RkIGFuZCB3YXJuX3N0ZC4KCShnZmNfaGFuZGxlX29wdGlvbik6IEhhbmRsZSBPUFRfc3RkXyogYW5kIE9QVF93LgoKMjAwNC0wMS0wMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFycmF5LmMgKGdmY19hcHBlbmRfY29uc3RydWN0b3IpOiBUYWtlIGNvbnN0cnVjdG9yLCBub3QgZXhwcmVzc2lvbi4KCSogZGF0YS5jIChzdHJ1Y3QgZ2ZjX2V4cHJfc3RhY2spOiBSZW1vdmUuCgkoZXhwcl9zdGFjayk6IFJlbW92ZS4KCShmaW5kX2Nvbl9ieV9vZmZzZXQpOiBSZW5hbWUgZnJvbSBmaW5kX2V4cHJfaW5fY29uLgoJKGZpbmRfY29uX2J5X2NvbXBvbmVudCk6IFJlbmFtZSBmcm9tIGZpbmRfY29tcG9uZW50X2luX2Nvbi4KCShnZmNfZ2V0X2V4cHJfc3RhY2spOiBSZW1vdmUuCgkoZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlKTogUmV3cml0ZS4KCShnZmNfZXhwcl9wdXNoKTogUmVtb3ZlLgoJKGdmY19leHByX3BvcCk6IFJlbW92ZS4KCShnZmNfYWR2YW5jZV9zZWN0aW9uKTogUmVuYW1lIGZyb20KCWdmY19tb2RpZnlfaW5kZXhfYW5kX2NhbGN1bGF0ZV9vZmZzZXQuICBIYW5kbGUgdW5ib3VuZGVkIHNlY3Rpb25zLgoJKGdmY19nZXRfc2VjdGlvbl9pbmRleCk6IEhhbmRsZSB1bmJvdW5kZWQgc2VjdGlvbnMuCgkqIGdmb3J0cmFuLmg6IFVwZGF0ZSBwcm90b3R5cGVzLgoJKiByZXNvbHZlLmMgKGNoZWNrX2RhdGFfdmFyaWFibGUpOiBBcnJheSBzZWN0aW9uIG1haWdodCBub3QgYmUgdGhlCglsYXN0IHJlZi4KCjIwMDQtMDEtMDEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xMzQzMgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQWxsb3cgYXNzdW1lZCBsZW5ndGggZnVuY3Rpb24gcmVzdWx0cy4KCjIwMDQtMDEtMDEgIFN0ZXZlIEthcmdsICA8c2drQHRyb3V0bWFzay5hcGwud2FzaGluZ3Rvbi5lZHU+CgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfcGF1c2UpOiBGaXggc3BlbGxpbmcuCgoyMDA0LTAxLTAxICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgZm9ydHJhbi8xMzI1MQoJKiB0cmFucy1leHByLmMgKGdmY19jb252X3ZhcmlhYmxlKTogVGFrZSB0aGUgdHlwZSBraW5kIG9mIGEgc3Vic3RyaW5nCglyZWZlcmVuY2UgZnJvbSB0aGUgZXhwcmVzc2lvbi4KCjIwMDMtMTItMjYgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2NvZGVfbm9kZSk6IEFkZCBBU1NJR04gYW5kIEFTU0lHTkVEIEdPVE8KCWR1bXBpbmcuCgkqIGdmb3J0cmFuLmggKGdmY19zdGF0ZW1lbnQpOiBOZXcgU1RfTEFCRUxfQVNTSUdOTUVOVC4KCShnZmNfZXhlY19vcCk6IE5ldyBFWEVDX0xBQkVMX0FTU0lHTi4KCShzeW1ib2xfYXR0cmlidXRlKTpOZXcgdmFyaWFibGUgYXR0cmlidXRlOiBhc3NpZ24uCgkqIGlvLmMgKHJlc29sdmVfdGFnKTpJbnRlZ2VyIHZhcmlhYmxlIGlzIGFsbG93ZWQuCgkobWF0Y2hfZHRfZm9ybWF0KTogQWRkIEFTU0lHTiBzdGF0ZW1lbnQuIFNldCBhc3NpZ24gZmxhZy4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2lmKTogQ2hhbmdlIFNUX05PTkUgdG8gU1RfTEFCRUxfQVNTSUdOTUVOVC4KCShnZmNfbWF0Y2hfYXNzaWduKTogQWRkIEFTU0lHTiBzdGF0ZW1lbnQuIFNldCBhc3NpZ24gZmxhZy4KCShnZmNfbWF0Y2hfZ290byk6IEFkZCBBU1NJR05FRCBHT1RPIHN0YXRlbWVudC4gU2V0IGFzc2lnbiBmbGFnLgoJKiBwYXJzZS5jIChkZWNvZGVfc3RhdGVtZW50KTogQWRkIFNUX0xBQkVMX0FTU0lHTk1FTlQuCgkobmV4dF9zdGF0ZW1lbnQpOiBBZGQgU1RfTEFCRUxfQVNTSUdOTUVOVC4KCShnZmNfYXNjaWlfc3RhdGVtZW50KTogQWRkIFNUX0xBQkVMX0FTU0lHTk1FTlQuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9jb2RlKTogUmVzb2x2ZSBBU1NJR04gYW5kIEFTU0lHTkVEIEdPVE8gc3RhdGVtZW50LgoJKHJlc29sdmVfYmxvY2tzKTogUmVzb2x2ZSBBU1NJR05FRCBHT1RPIHN0YXRlbWVudCBsYWJlbCBsaXN0LgoJKiBzdC5jIChnZmNfZnJlZV9zdGF0ZW1lbnQpOiBBZGQgRVhFQ19MQUJFTF9BU1NJR04uCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9zeW1ib2xfZGVjbCk6IENyZWF0ZSB0aGUgc2hhZG93IHZhcmlhYmxlIGZvcgoJYXNzaWduLiAgUHV0IHRoZW0gaW50byB0aGUgc3R1Y3QgbGFuZ19kZWNsLgoJKiB0cmFucy1pby5jIChzZXRfc3RyaW5nKTogQWRkIHRoZSBhc3NpZ24gc3RhdGVtZW50LgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19sYWJlbF9hc3NpZ24pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3RyYW5zX2dvdG8pOiBUcmFuc2xhdGUgQVNTSUdORUQgR09UTyBzdGF0ZW1lbnQuCgkqIHRyYW5zLXN0bXQuaCAoZ2ZjX3RyYW5zX2xhYmVsX2Fzc2lnbik6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZS4KCSogdHJhbnMuYyAoZ2ZjX3RyYW5zX2NvZGUpOiBBZGQgRVhFQ19MQUJFTF9BU1NJR04uCgkqIHRyYW5zLmggKGxhbmdfZGVjbCk6QWRkIHNoYWRvdyB2YXJpYWJsZSBkZWNsIHRyZWUgbmVlZGVkIGJ5IGFzc2lnbi4KCShHRkNfREVDTF9BU1NJR05fQUREUihub2RlKSk6IE5ldyBtYWNybyB0byBhY2Nlc3MgdGhpcy4KCShHRkNfREVDTF9BU1NJR04obm9kZSkpOiBOZXcgbWFjcm8gdG8gYWNjZXNzIGZsYWcuCgoyMDAzLTEyLTMxICBIdWFuZyBDaHVuIDxjaHVuaHVhbmc3M0Bob3RtYWlsLmNvbT4KCglQUiBmb3J0cmFuLzEzNDM0CgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfbWlubWF4dmFsKTogRml4ZWQgYnVnIGluCgltaW52YWwvbWF4dmFsLgoKMjAwMy0xMi0yMiAgVG9vbiBNb2VuZSAgPHRvb25AbW9lbmUuaW5kaXYubmx1dWcubmw+CgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBTZXQgZmxhZ19hcmd1bWVudF9ub2FsaWFzIHRvIDIsIHRvIGluZGljYXRlCgl0aGF0IGFyZ3VtZW50cyB0byBzdWJyb3V0aW5lcy9mdW5jdGlvbnMgY2FuJ3QgYWxpYXMgdGhlbXNlbHZlcywgbm9yIGdsb2JhbAoJbWVtb3J5LgoKMjAwMy0xMi0yMCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9leHByX29wKTogRm9sZCB0aGUgcmVzdWx0IGV4cHJlc3Npb24uCgkqIHRyYW5zLmMgKGdmY19hZGRfbW9kaWZ5X2V4cHIsIGdmY19hZGRfZXhwcl90b19ibG9jayk6IExpa2V3aXNlLgoKMjAwMy0xMi0xMiAgSHVhbmcgQ2h1biA8Y2h1bmh1YW5nNzNAaG90bWFpbC5jb20+CgoJKiBwcmltYXJ5LmMgKG1hdGNoX3N1YnN0cmluZyk6IEZpeCBzdWJzdHJpbmcgYnVnIGZvciBzdGFydCBwb2ludAoJb3IgZW5kIHBvaW50IGlzIE5VTEwuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfc3Vic3RyaW5nKTogRGl0dG8KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3N5bV90eXBlKTogR2V0IGNvcnJlY3QgdHlwZSBvZiBzY2FsYXIKCWNoYXJhY3RlciB2YXJpYWJsZXMuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfbGVuKTogSGFuZGxlIGNoYXJhY3RlciBpbgoJZGVyaXZlZCB0eXBlLgoKMjAwMy0xMi0xMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIG9wdGlvbnMuYyAoZ2ZjX3Bvc3Rfb3B0aW9ucyk6IERvbid0IGV2ZXIgdXNlIHJ0bCBpbmxpbmluZy4KCjIwMDMtMTItMDUgIENhbnF1biBZYW5nICA8Y2FucXVuQG51ZHQuZWR1LmNuPgoKCSogdHJhbnMtY29tbW9uLmM6IFJlLWltcGxlbWVudCBDT01NT04gYmxvY2tzIGFuZCBFUVVJVkFMRU5DRSBsaXN0cy4KCSogdHJhbnMtZXF1aXZhbGVuY2UuYzogUmVtb3ZlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfc3ltYm9sX2RlY2wpOiBVcGRhdGUgdG8gbWF0Y2guCgkoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBEaXR0by4KCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX2NvbnZfYXJyYXlfcGFyYW1ldGVyKTogRGl0dG8uCgkqIE1ha2UtbGFuZy5pbiAoRjk1X09CSlMpOiBSZW1vdmUgZm9ydHJhbi90cmFucy1lcXVpdmFsZW5jZS5vCgkoRjk1X0FERElUSU9OQUxfT0JKUyk6IEFkZCBzdG9yLWxheW91dC5vCgkqIHRyYW5zLmggKGdmY190cmFuc19lcXVpdmFsZW5jZSk6IFJlbW92ZS4KCSogZ2ZvcnRyYW4uaCAoc3RydWN0IGdmY19lcXVpdik6IEFkZCB1c2VkIGZpZWxkLgoJKHN0cnVjdCBnZmNfc3ltYm9sKTogUmVtb3ZlIGFkZHJfYmFzZSwgYWRkcl9vZmZzZXQsIGVxdWl2X3JpbmcsCgllcXVpdl9vZmZzZXQgZmllbGRzLgoKMjAwMy0xMi0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLmMgKGdmY19idWlsZF9hZGRyX2V4cHIpOiBOZXcuCgkoZ2ZjX2J1aWxkX2luZGlyZWN0X3JlZiwgZ2ZjX2J1aWxkX2FycmF5X3JlZik6IE5ldy4KCSogdHJhbnMuaDogRGVjbGFyZSB0aGVtLgoJKiB0cmFucy1hcnJheS5jLCB0cmFucy1leHByLmMsIHRyYW5zLWludHJpbnNpYy5jLCB0cmFucy1pby5jLAoJdHJhbnMtc3RtdC5jLCB0cmFucy5jICgqKTogVXNlIHRoZW0uCgoJKiBmOTUtbGFuZy5jIChnZmNfcG9zdF9vcHRpb25zKTogUmVtb3ZlIGRlYWQgcHJvdG90eXBlLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfZGVmZXJyZWRfdmFycyk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX2V2YWx1YXRlX3doZXJlX21hc2spOiBGaXggdGVtcG9yYXJ5X2xpc3QKCWFsbG9jYXRpb24gc2l6ZS4KCjIwMDMtMTItMDEgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCSogaW8uYyAoZ2ZjX21hdGNoX2Zvcm1hdCk6IENoZWNrIGZvciBtaXNzaW5nIGZvcm1hdCBsYWJlbC4KCjIwMDMtMTEtMzAgSHVhbmcgQ2h1biA8Y2h1bmh1YW5nNzNAaG90bWFpbC5jb20+CgoJUFIgZm9ydHJhbi8xMzE1NQoJKiB0cmFucy1kZWNsLmMgKGdmY19zeW1fbWFuZ2xlZF9mdW5jdGlvbl9pZCk6IERvbid0IG1hbmdsZSBzeW1ib2xzCglmcm9tIGludGVyZmFjZXMgaW4gbW9kdWxlcy4KCjIwMDMtMTEtMzAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2c3N19hcnJheSk6IE1ha2Ugbm9uLXN0YXRpYy4KCShnZmNfdHJhbnNfYXNzdW1lZF9zaXplKTogUmVtb3ZlLgoJKGdmY190cmFuc19kdW1teV9hcnJheV9iaWFzKTogRXhwbGljaXRseSBmcmVlIHRlbXBvcmFyeS4KCSogdHJhbnMtYXJyYXkuaCAoZ2ZjX3RyYW5zX2c3N19hcnJheSk6IEFkZCBwcm90b3R5cGUuCgkoZ2ZjX3RyYW5zX2Fzc3VtZWRfc2l6ZSk6IFJlbW92ZS4KCSogdHJhbnMtZGVjbHMuYyAoZ2Zvcl9mbmRlY2xfcHVzaF9jb250ZXh0KTogUmVtb3ZlLgoJKGdmb3JfZm5kZWNsX3BvcF9jb250ZXh0KTogUmVtb3ZlLgoJKGdmY19idWlsZF9mdW5jdGlvbilkZWNscyk6IERvbid0IGNyZWF0ZSB0aGVtLgoJKGdmY190cmFuc19kZWZlcnJlZF92YXJzKTogVXBkYXRlIHRvIG1hdGNoLiBSZW1vdmUgZGVhZAljb2RlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19wb2ludGVyX2Fzc2lnbl9uZWVkX3RlbXApOiBGcmVlIHRlbXAuCgoyMDAzLTExLTMwICBLZWppYSBaaGFvICA8a2VqaWFfemhAbnVkdC5lZHUuY24+CgoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9hcnJheV9wYXJhbWV0ZXIpOiBTaW1wbGlmeQoJYXJyYXkgYXJndW1lbnQgcGFzc2luZyBmb3IgYXJyYXkgbmFtZSBhY3R1YWwgYXJndW1lbnQuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IERpdHRvCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19pc19ub2Rlc2NfYXJyYXkpOkRpdHRvLgoKMjAwMy0xMS0zMCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBmOTUtbGFuZy5jIChnZmNfcG9zdF9vcHRpb25zKTogTW92ZSAuLi4KCSogb3B0aW9ucy5jIChnZmNfcG9zdF9vcHRpb25zKTogLi4gdG8gaGVyZS4gIEhhbmRsZSBpbmxpbmluZyBvcHRpb25zLgoJKiBnZm9ydHJhbi5oIChnZmNfcG9zdF9vcHRpb25zKTogQWRkIHByb3RvdHlwZS4KCjIwMDMtMTEtMjggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmFucy5jIChnZmNfY3JlYXRlX3Zhcl9ucCk6IFVzZSBjcmVhdGVfdG1wX3Zhcl9yYXcuCgoyMDAzLTExLTI4IEh1YW5nIENodW4gPGNodW5odWFuZzczQGhvdG1haWwuY29tPgoKCSogdHJhbnMuaCAoaGFzX2FsdGVybmF0ZV9zcGVjaWZpZXIpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlLgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfY2FsbCk6IEhhbmRsZSBhY3R1YWwgYXJndW1lbnRzIGFzc29jaWF0ZWQgd2l0aAoJYWx0ZXJuYXRlIHJldHVybiBpbmRpY2F0b3JzLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBEaXR0bwoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19jYWxsKTogRGl0dG8KCShnZmNfdHJhbnNfcmV0dXJuKTogSGFuZGxlIHJldHVybiBzdGF0ZW1lbnQgd2l0aCB2YWx1ZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IEhhbmRsZSBmdW5jdGlvbnMgd2l0aAoJYXN0ZXJpc2sgZHVtbXkuCgkoZ2ZjX2dldF9mYWtlX3Jlc3VsdF9kZWNsKTogRGl0dG8KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9mdW5jdGlvbl90eXBlKTogRGl0dG8KCSogcmVzb2x2ZS5jIChyZXNvbHZlX2FjdHVhbF9hcmdsaXN0KTogQ2hlY2sgYWx0ZXJuYXRlIHJldHVybiBpbmRpY2F0b3JzLgoJKHJlc29sdmVfZm9ybWFsX2FyZ2xpc3QpOiBDaGVjayBhc3RlcmlzayBkdW1teS4KCjIwMDMtMTEtMjcgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5fYWxsb2NhdGVfYXJyYXlfc3RvcmFnZSk6IFVzZSBuZXcgbWVtb3J5CglhbGxvY2F0aW9uIGludGVyZmFjZS4KCShnZmNfY29udl8gYXJyYXlfcGFyYW1ldGVyKTogRGl0dG8uCgkoZ2ZjX3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbik6IERpdHRvLiBBbHNvIGZyZWUgdGhlIG1lbW9yeS4KCSogdHJhbnMtYXJyYXkuYzogVXBkYXRlIHByb3RvdHlwZS4KCSogdHJhbnMtZGVjbC5jIChnZmNfYnVpbGRfYnVpbHRpbl9mdW5jdGlvbl9kZWNscyk6IFVwZGF0ZSBwcm90b3R5cGVzLgoJKGdmY190cmFuc19hdXRvX2NoYXJhY3Rlcl92YXJpYWJsZSk6IFVzZSBuZXcgbWVtb3J5IGFsbG9jIGludGVyZmFjZS4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9zdHJpbmdfdG1wKTogRGl0dG8uCgkoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IFVzZSBnZmNfY29udl9zdHJpbmdfdG1wLgoJKiB0cmFucy1zdG10LmMgKGdmY19kb19hbGxvY2F0ZSk6ICBVc2UgbmV3IG1lbW9yeSBhbGxvYyBpbnRlcmZhY2UuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfdHJpbSk6IERpdHRvLgoJKiB0cmFucy5oIChnZmNfc3NfaW5mbyk6IFJlbW92ZSB1bnVzZWQgcGRhdGEgZmllbGQuCgkqIHRyYW5zLmMgKGdmY19jcmVhdGVfdmFyX25wKTogQ2hhbmdlIFQgdG8gVi4KCjIwMDMtMTEtMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBtYXRoYnVpbHRpbnMuZGVmOiBNb3ZlIGFjb3MsIGFzaW4sIGNvc2gsIGxvZzEwLCBzaW5oLCB0YW5oIGZyb20gLi4uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfaW50cmluc2ljX21hcCk6IC4uLiBoZXJlLiAgQWRkIFNDQUxFLAoJRlJBQ1RJT04sIE5FQVJFU1QsIFNFVF9FWFBPTkVOVC4KCShnZmNfaW50cmluc2ljX21hcF90KTogQWRkIGxpYm1fbmFtZSwgY29tcGxleF9hdmFpbGFibGUsIGlzX2NvbnN0YW50LgoJRml4IEdUWSBtYXJraW5nLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNvbnN0J3MuCgkoTElCTV9GVU5DVElPTik6IFJlbmFtZSBmcm9tIElfTElCLgoJKExJQkZfRlVOQ1RJT04pOiBOZXcuCgkoZ2ZjX2dldF9pbnRyaW5zaWNfbGliX2ZuZGVjbCk6IEhhbmRsZSBsaWJtIGFuZCBsaWJnZm9ydHJhbiBuYW1pbmcKCWNvbnZlbnRpb25zLiAgQXNzdW1lIHRoZSBleHByIHNpZ25hdHVyZSBpcyBjb3JyZWN0LiAgTWFyayBjb25zdC4KCShnZmNfY29udl9pbnRyaW5zaWNfZXhwb25lbnQpOiBVc2UgbGlicmFyeSBmdW5jdGlvbnMuCgkoZ2ZjX2NvbnZfaW50cmluc2ljX3NldF9leHBvbmVudCk6IFJlbW92ZS4KCShnZmNfY29udl9pbnRyaW5zaWNfc2NhbGUpOiBSZW1vdmUuCgkoZ2ZjX2NvbnZfaW50cmluc2ljX25lYXJlc3QpOiBSZW1vdmUuCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2ZyYWN0aW9uKTogUmVtb3ZlLgoJKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVwZGF0ZS4KCSogdHJhbnMtZGVjbC5jIChnZm9yX2ZuZGVjbF9tYXRoX2V4cG9uZW50NCk6IE5ldy4KCShnZm9yX2ZuZGVjbF9tYXRoX2V4cG9uZW50OCk6IE5ldy4KCShnZmNfYnVpbGRfaW50cmluc2ljX2Z1bmN0aW9uX2RlY2xzKTogU2V0IHRoZW0uCgkqIHRyYW5zLmg6IERlY2xhcmUgdGhlbS4KCjIwMDMtMTEtMjUgIENhbnF1biBZYW5nICA8Y2FucXVuQG51ZHQuZWR1LmNuPgoKCSogdHJhbnMtY29tbW9uLmMgKGdmY19sYXlvdXRfZ2xvYmFsX2VxdWl2KTogTG9jYXRlIHRoZSBlcnJvciBmb3IKCXVuZGVyZmxvdyBDT01NT04gYmxvY2suCgkoZ2ZjX3RyYW5zX29uZV9jb21tb24pOiBGaXggYnVnIGZvciBzaXplIG9mIENPTU1PTiBibG9jayBjb250YWluaW5nCglFUVVJVkFMRU5DRSBvYmplY3QuIEFsc28gZml4IHR5cG8gaW4gYW4gZXJyb3IgbWVzc2FnZS4KCjIwMDMtMTEtMjUgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogTWFrZS1sYW5nLmluOiBBZGQgY2hlY2stZ2ZvcnRyYW4gdG8gbGFuZ19jaGVja3MuCgkoY2hlY2stZjk1KTogQWxpYXMgZm9yIGNoZWNrLWdmb3J0cmFuLgoKMjAwMy0xMS0yNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGY5NS50YWdzKTogQ3JlYXRlIFRBR1Muc3ViIGZpbGVzIGluIGVhY2gKCWRpcmVjdG9yeSBhbmQgVEFHUyBmaWxlcyB0aGF0IGluY2x1ZGUgdGhlbSBmb3IgZWFjaCBmcm9udCBlbmQuCgoyMDAzLTExLTI0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCglQUiBmb3J0cmFuLzEzMTU0CgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBTa2lwIENPTU1PTiBibG9ja3MuCgoyMDAzLTExLTI0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGV4cHIuYyAoc2ltcGxpZnlfY29uc3RfcmVmKTogUmV0dXJuIFNVQ0NFU1MgZm9yIHRoaW5ncyB3ZSBkb24ndAoJaGFuZGxlLgoJKiByZXNvbHZlLmMgKGdmY19yZXNvbHZlX2V4cHIpOiBSZXNvbHZlIGNvbnRlbnRzIGJlZm9yZSByYW5rL3NoYXBlLgoKMjAwMy0xMS0yNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJUFIgZm9ydHJhbi8xMzEwNQoJKiBhcnJheS5jIChnZmNfYXJyYXlfcmVmX3NoYXBlKTogSGFuZGxlIGVsZW1lbnRhbCBkaW1lbnNpb25zLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfcHJlbG9vcF9zZXR1cCk6IFVzZSBjb3JyZWN0IGRpbSBsb29rdXAuCgoyMDAzLTExLTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FsbG9jYXRlX2FycmF5X3N0b3JhZ2UpOiBVc2UgY29udmVydC4KCShnZmNfY29udl9hcnJheV9iYXNlKTogTGlrZXdpc2UuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3RyYW5zX2F1dG9fY2hhcmFjdGVyX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfc3RyaW5nX3RtcCk6IExpa2V3aXNlLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX3RyaW0pOiBMaWtld2lzZS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCk6IExpa2V3aXNlLgoKMjAwMy0xMS0xMyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1kZWNsLmMgKGdmY19zeW1fbWFuZ2xlZF9mdW5jdGlvbl9pZCk6IERvbnQgbWFuZ2xlIGV4dGVybmFscy4KCjIwMDMtMTEtMTMgIENhbnF1biBZYW5nICA8Y2FucXVuQG51ZHQuZWR1LmNuPgoKCSogcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZSk6IEFsc28gcmVzb2x2ZSBFUVVJVkFMRU5DRSBvYmplY3RzLgoJKHJlc29sdmVfZXF1aXZhbGVuY2UpOiBOZXcgZnVuY3Rpb24uCgkocmVzb2x2ZV9lcXVpdmFsZW5jZV9kZXJpdmVkKTogTmV3IGZ1bmN0aW9uLgoKMjAwMy0xMS0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLmMgKGdmY190cmFuc19jb2RlKTogVXNlIGFubm90YXRlX3dpdGhfbG9jdXMgaW5zdGVhZCBvZgoJYW5ub3RhdGVfYWxsX3dpdGhfbG9jdXMuCgoyMDAzLTExLTExICBDYW5xdW4gWWFuZyAgPGNhbnF1bkBudWR0LmVkdS5jbj4KCgkqIG9wdGlvbnMuYyAoZ2ZjX2luaXRfb3B0aW9ucyk6IFNldCBmbGFnX21heF9zdGFja192YXJfc2l6ZSBhcyAzMjc2OC4KCSogdHJhbnMtZGVjbC5jIChnZmNfZmluaXNoX3Zhcl9kZWNsKTogTW9kaWZpZWQuCgoyMDAzLTExLTA4ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCglQUiBmb3J0cmFuLzEyNzA0CgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNzX21pbm1heGxvYyk6IEhhbmRsZSB6ZXJvLXNpemUKCWFycmF5cy4KCjIwMDMtMTEtMDYgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY3NfbWlubWF4bG9jKTogSW5pdGlhbGl6ZSBwb3MuCgoyMDAzLTExLTAyICBDYW5xdW4gWWFuZyAgPGNhbnF1bkBudWR0LmVkdS5jbj4KCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9zdG9wY29kZSk6IEFzc2lnbiAnMCcgdG8gc3RvcF9jb2RlLgoKMjAwMy0xMC0yNyAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGY5NS5zdGFnZXByb2ZpbGUpOiBVc2UgdGFicywgbm90IHNwYWNlcy4KCShmOTUuc3RhZ2VmZWVkYmFjayk6IERpdHRvLgoKMjAwMy0xMC0yNyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgZm9ydHJhbi8xMjY4MgoJKiBNYWtlLWxhbmcuaW4gKGY5NS5zdGFnZXByb2ZpbGUpOiBBZGQuCgkoZjk1LnN0YWdlZmVlZGJhY2spOiBBZGQuCgoyMDAzLTEwLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZjk2LWxhbmcuYyAoZ2ZjX2dpbXBsaWZ5X2V4cHIpOiBSZW1vdmUuCgkoTEFOR19IT09LU19HSU1QTElGWV9FWFBSKTogUmVtb3ZlLgoJKExBTkdfSE9PS1NfR0lNUExFX0JFRk9SRV9JTkxJTklORyk6IE5ldy4KCjIwMDMtMTAtMjMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfZ2ltcGxpZnlfZXhwcik6IFJldHVybiBnaW1wbGlmeV9zdGF0dXMuCgoyMDAzLTEwLTIwICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfaW50ZWdlcl9wb3dlcik6IFVzZSBib29sZWFuX3R5cGVfbm9kZS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfZG9fd2hpbGUpOiBEaXR0by4KCjIwMDMtMTAtMTcgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X3NoYXBlKTogVXNlIGdmY19hcnJheV9kaW1lbl9zaXplLgoKMjAwMy0xMC0xNyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1pby5jIChnZmNfYnVpbGRfaW9fbGlicmFyeV9mbmRlY2xzKTogU2V0IFRSRUVfUFVCTElDLgoKMjAwMy0xMC0xNyAgRmVuZyBXYW5nICA8d2ZfY3NAeWFob28uY29tPgoKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfbWF4bG9jKTogQ2hhbmdlIHRoZSByZXN1bHQncyBraW5kIGFuZCB0eXBlLgoJKGdmY19yZXNvbHZlX21pbmxvYyk6IERpdHRvLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heGxvYyk6IFVzZSBjb3JyZWN0IHR5cGVzLgoJUmV0dXJuIHRoZSB2YWx1ZSBhZnRlciBzdWJ0cmFjdGluZyB0aGUgbG93ZXIgYm91bmQuCgoyMDAzLTEwLTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZjk1LWxhbmcuYyAoZXhwYW5kX2Z1bmN0aW9uX2JvZHkpOiBEb24ndCBjaGVjayBmbGFnX2Rpc2FibGVfZ2ltcGxlLgoKMjAwMy0xMC0xNiAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogbGFuZy5jOiBSZW1vdmUgLU0gb3B0aW9uIGZvciBub3csIGl0J3MgaW4gdGhlIHdheSBmb3IgQy4KCjIwMDMtMTAtMTQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogTWFrZS1sYW5nLmluIChmOTUudGFncyk6IE5ldyBydWxlLgoKMjAwMy0xMC0xMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLmMgKGdmY190cmFuc19jb2RlKTogVXNlIGFubm90YXRlX2FsbF93aXRoX2xvY3VzLgoKMjAwMy0xMC0xMyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1kZWNsLmMgKGdlbmVyYXRlX2xvY2FsX2RlY2wpOiBEb24ndCBjcmVhdGUganVuayB2YXJpYWJsZXMuCgoyMDAzLTEwLTEzICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9mb3JtYWxfYXJnbGlzdCk6IFVzZSBmdW5jdGlvbiByZXN1bHQgZGVjbCBpbgoJcHJlZmVyZW5jZSB0byBmdW5jdGlvbiBkZWNsLgoKMjAwMy0xMC0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGY5NS1sYW5nLmMgKGdmY19kZWZpbmVfYnVpbHRpbik6IE5ldyBjb25zdF9wIGFyZ3VtZW50LiAgU2V0CglUUkVFX1JFQURPTkxZLiAgVXBkYXRlIGFsbCBjYWxsZXJzLgoKMjAwMy0xMC0xMiAgRmVuZyBXYW5nICA8d2ZfY3NAeWFob28uY29tPgoKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfY3NoaWZ0KTogQ2hhbmdlIHRvIG1hdGNoIGltcGxlbWVudGF0aW9uLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogUmVtb3ZlIENTSElGVC4KCShnZmNfaXNfaW50cmluc2ljX2xpYmNhbGwpOiBBZGQgQ1NISUZULgoKMjAwMy0xMC0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19zdGF0aWNfYXJyYXlfcG9pbnRlcik6IFNldCBUUkVFX0lOVkFSSUFOVC4KCShnZmNfdHJhbnNfYXJyYXlfY29uc3RydWN0b3JfdmFsdWUpOiBMaWtld2lzZS4KCShnZmNfY29udl9hcnJheV9pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19jaGFyYWN0ZXJfc2VsZWN0KTogTGlrZXdpc2UuCgoyMDAzLTExLTEyICBLZWppYSBaaGFvICA8a2VqaWFfemhAeWFob28uY29tLmNuPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGludGVnZXJfa2luZF9pbmZvLCByZWFsX2tpbmRfaW5mbyk6IFJlbW92ZS4KCjIwMDMtMTAtMTEgIEh1YW5nIENodW4gIDxqaXdhbmdAbWFpbC5lZHUuY24+CgoJKiBjaGVjay5jIChnZmNfY2hlY2tfcmVwZWF0KTogQ2hlY2sgYXJndW1lbnRzIGFyZSBzY2FsYXIuCgkoZ2ZjX2NoZWNrX3RyaW0pOiBOZXcgZnVuY3Rpb24uCgkqIGludHJpbnNpYy5oIChnZmNfY2hlY2tfdHJpbSk6IEFkZCBwcm90b3R5cGUuCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogVXNlIGl0LgoJKiB0cmFucy5oIChnZm9yX2ZuZGVjbF9zdHJpbmdfdHJpbSwgZ2Zvcl9mbmRlY2xfc3RyaW5nX3JlcGVhdCk6CglEZWNhbGFyZS4KCSogdHJhbnMtZGVjbC5jOiBEaXR0by4KCShnZmNfYnVpbGRfaW50cmluc2ljX2Z1Y250aW9uX2RlY2xzKTogU2V0IHRoZW0uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfbGVuKTogSGFuZGxlIHJlc3VsdCB2YXJzLgoJKGdmY19jb252X2ludHJpbnNpY190cmltKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X2ludHJpbnNpY19yZXBlYXQpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIHRoZW0uCgoyMDAzLTEwLTExICBIdWFuZyBDaHVuICA8aml3YW5nQG1haWwuZWR1LmNuPgoKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3N5bV90eXBlKTogSGFuZGxlIHJlc3VsdCB2YXJpYWJsZXMuCgoyMDAzLTEwLTExICBIdWFuZyBDaHVuICA8aml3YW5nQG1haWwuZWR1LmNuPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19jaGFyKTogRG9uJ3QgdXNlCglnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlLgoKMjAwMy0xMC0xMSAgRmVuZyBXYW5nICA8d2ZfY3NAeWFob28uY29tPgoKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl92YXJpYWJsZSk6IENoZWNrIHN5bS0+dHMsIG5vdCB0aGUgZGVjbC4KCjIwMDMtMTAtMTEgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfZGludCwgZ2ZjX3Jlc29sdmVfZG5pbnQpOiBOZXcgZnVuY3Rpb25zLgoJKGdmY19yZXNvbHZlX2Rwcm9kKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19yZXNvbHZlX2FpbnQsIGdmY19yZXNvbHZlX2FuaW50KTogT25seSBiYXNlIG5hbWUgb24gYXJnIHR5cGUuCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9kaW50LCBnZmNfcmVzb2x2ZV9kbmludCk6IERlY2xhcmUuCgkoZ2ZjX3Jlc29sdmVfZHByb2QpOiBEZWNsYXJlLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IFVzZSB0aGVtLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wpOiBPbmx5IHBhc3Mgb25lIGFyZy4KCjIwMDMtMTAtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IEFkZCBjbHpsbC4KCSogdHJhbnMtaW50cmluc2ljLmMgKGNhbGxfYnVpbHRpbl9jbHopOiBVc2UgaXQuCgoyMDAzLTEwLTA1ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGY5NS1sYW5nLmMgKGV4cGFuZF9mdW5jdGlvbl9ib2R5KTogQ2FsbCAocHVzaHxwb3ApX2Z1bmN0aW9uX2NvbnRleHQuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBTZXQKCWNmdW4tPmZ1bmN0aW9uX2VuZF9sb2N1cy4KCjIwMDMtMDktMjQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZjk1LWxhbmcuYywgdHJhbnMtZGVjbC5jOiBVc2UgREVDTF9TT1VSQ0VfTE9DQVRJT04gaW5zdGVhZCBvZgoJVFJFRV9MT0NVUy4KCjIwMDMtMDktMjEgIExpZmFuZyBaZW5nICA8emxmNjA1QGhvdG1haWwuY29tPgoJUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBNYWtlLWxhbmcuaW4gKEY5NV9PQkpTKTogQWRkIGZvcnRyYW4vZGF0YS5vLgoJKiBhcnJheS5jIChnZmNfaW5zZXJfY29uc3RydWN0b3IpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dldF9jb25zdHJ1Y3Rvcik6IE5ldyBmdW5jdGlvbi4KCShnZmNfZnJlZV9jb25zdHJ1Y3Rvcik6IEluaXRpYWxpemUgb2Zmc2V0IGFuZCByZXBlYXQuCgkoaXRlcmF0b3Jfc3RhY2spOiBSZW1vdmUuCgkoZXhwYW5kX2luZm8pOiBBZGQgb2Zmc2V0LCBjb21wb25lbnQgYW5kIHJlcGVhdCBmaWVsZHMuCgkoZXhwYW5kX2NvbnN0cnVjdG9yKTogU2V0IHRoZW0uCgkoZXhwYW5kKTogU2V0IG5ldyBmaWVsZHMuCgkoZ2ZjX2NvcHlfY29uc3RydWN0b3IpOiBEaXR0by4gQXZvaWQgcmVjdXJzaW9uLgoJKiBnZm9ydHJhbi5oOiBBZGQgcHJvdG90eXBlcyBmb3IgbmV3IGZ1bmN0aW9ucy4KCShnZmNfY29uc3RydWN0b3IpOiBBZGQgb2Zmc2V0LCBjb21wb25lbnQgYW5kIHJlcGVhdC4KCShpdGVyYXRpb19zdGFjayk6IE1vdmUgdG8gaGVyZS4KCSogcmVzb2x2ZS5jIChjaGVja19kYXRhX3ZhcmlhYmxlKTogQ29udmVydCBkYXRhIHZhbHVlcyBpbnRvIHZhcmlhYmxlCglpbml0aWFsaXplcnMuCgkodHJhdmVyc2VfZGF0YV9saXN0KTogQnVpbGQgaW1wbGljaXQgbG9vcCBjaGFpbi4KCShnZmNfcmVzb2x2ZSk6IERpdHRvLgoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9hcnJheV9pbnRpYWxpemVyKTogSGFuZGxlIHJlcGVhdCBjb3VudC4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsKTogVXNlIGdmY19jb252X3N0cnVjdHVyZS4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9zdHJ1Y3R1cmUpOiBIYW5kbGUgYXJyYXkgaW5pdGlhbGl6ZXJzLgoJKGdmY19jb252X2V4cHIpOiBVcGRhdGUgdG8gbWF0Y2guCgkqIHRyYW5zLmggKGdmY19jb252X3N0cnVjdHVyZSk6IERlY2xhcmUuCgkqIGRhdGEuYzogTmV3IGZpbGUuCgoyMDAzLTA5LTIwICBLZWppYSBaaGFvICA8a2VqaWFfemhAeWFob28uY29tLmNuPgoKCSogdHJhbnMuaDogQWRkIGRlY2xhcmF0aW9ucyBmb3IgZ2Zvcl9mbmRlY2xfc2lfa2luZCBhbmQKCWdmb3JfZm5kZWNsX3NyX2tpbmQuCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9kZWNscyk6IEJ1aWxkIHRoZW0uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfc2lfa2luZCk6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfc3Jfa2luZCk6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBBZGQgU0VMRUNURURfSU5UX0tJTkQgYW5kCglTRUxFQ1RFRF9SRUFMX0tJTkQuCgoyMDAzLTA5LTE3ICBMYXJzIFNlZ2VybHVuZCAgPExhcnMuU2VnZXJsdW5kQGNvbXN5cy5zZT4KCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX3JhbmRvbV9udW1iZXIpOiBHZW5lcmF0ZSBfcjQgJiBfcjgKCWluc3RlYWQgb2YgXzQgYW5kIF84IGFzIHBvc3RmaXggZm9yIGxpYmdmb3J0cmFuIGNhbGxzLgoKMjAwMy0wOS0xNiAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBhcnJheS5jIChjb21wYXJlX2JvdW5kcyk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29tcGFyZV9hcnJheV9zcGVjKTogVXNlIGl0LgoKMjAwMy0wOS0xNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBwcmltYXJ5LmMgKGdmY19tYXRjaF9ydmFsdWUpOiBNYWtlIHN1cmUgc3ltLT5yZXN1bHQgaXMgc2V0LgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X3N0cmluZ19wYXJhbWV0ZXIpOiBBbHNvIGFsbG93IFBSQU1fREVDTHMuCgoyMDAzLTA5LTE0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGNoZWNrLmMgKGRpbV9yYW5rX2NoZWNrKTogQWxsb3cgYXNzdW1lZCBib3VuZHMgaWYgcmVxdWVzdGVkLgoJKGdmY19jaGVja19sYm91bmQpOiBDYWxsIGl0LgoJKGdmY19jaGVja191Ym91bmQpOiBEaXR0by4KCShnZmNfY2hlY2tfc2l6ZSk6IENoYW5nZSB0byBtYXRjaC4KCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X2JvdW5kKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19zaW1wbGlmeV9sYm91bmQpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3NpbXBsaWZ5X3Vib3VuZCk6IE5ldyBmdW5jdGlvbi4KCSogaW50cmluc2ljLmg6IERlY2xhcmUgdGhlbS4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBVc2UgdGhlbS4KCjIwMDMtMDktMTQgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaW8uYyAoZm9ybWF0X2xleCk6IEluaXRpYWxpemUgbmVnYXRpdmVfZmxhZy4KCShjaGVja19mb3JtYXQpOiBJbnRpYWxpemUgcmVwZWF0LgoJKiB0cmFucy1pby5jIChnZmNfbmV3X25tbF9uYW1lX2V4cHIpOiBEZWNsYXJlIHN0YXRpYy4KCShnZmNfbmV3X3Zhcl9leHByKTogRGl0dG8uCgoyMDAzLTA5LTE0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGdmY19jb252X2FycmF5X2luaXRpYWxpemVyKTogSGFuZGxlIGRlcml2ZWQgdHlwZXMuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9zeW1ib2xfZGVjbCk6IE9ubHkgZG8gbG9jYWwgc2NhbGFyIHZhbHVlcy4KCjIwMDMtMDktMTIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19zaWduKTogQ2FsbCBmb2xkLgoKMjAwMy0wOS0xMiAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogZm9ydHJhbi90cmFucy5jIChnZmNfZmluaXNoX2Jsb2NrKTogQ2FsbCByYXRpb25hbGl6ZV9jb21wb3VuZF9leHByCglmb3IgYSBjb3JyZWN0IGV4cHJlc3Npb24uCgoyMDAzLTA5LTEwICBLZWppYSBaaGFvICA8a2VqaWFfemhAeWFob28uY29tLmNuPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKHJlYWxfY29tcG50X2luZm8pOiBOZXcgc3RydWN0LgoJKHByZXBhcmVfYXJnX2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2NvbnZfaW50cmluc2ljX3NldF9leHBvbmVudCk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9pbnRyaW5zaWNfc2NhbGUpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2NvbnZfaW50cmluc2ljX25lYXJlc3QpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2ZyYWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X2ludHJpbnNpY19leHBvbmVudCk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9pbnRyaW5zaWNfc3BhY2luZyk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9pbnRyaW5zaWNfcnJzcGFjaW5nKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVzZSB0aGVtLgoKMjAwMy0wOC0yNCBYaWFvUWlhbmcgWmhhbmcgICh6aGFuZ2FwYWNoZUB5YWhvby5jb20+CgoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9tcHpfdG9fdHJlZSk6IEZpeCBidWcsIHBhcmFtZXRlciBmb3IKCWJ1aWxkX2ludF8yIGNoYW5nZWQgZnJvbSAoaGlnaCwgbG93KSB0byAobG93LCBoaWdoKS4KCSogdHJhbnMtaW8uYyAoaW9wYXJtX25hbWVsaXN0X25hbWUsIGlvcGFybV9uYW1lbGlzdF9uYW1lX2xlbiwKCWlvcGFybV9uYW1lbGlzdF9yZWFkX21vZGUsIGlvY2FsbF9zZXRfbm1sX3ZhbF9pbnQsCglpb2NhbGxfc2V0X25tbF92YWxfZmxvYXQsIGlvY2FsbF9zZXRfbm1sX3ZhbF9jaGFyLAoJaW9jYWxsX3NldF9ubWxfdmFsX2NvbXBsZXgsIGlvY2FsbF9zZXRfbm1sX3ZhbF9sb2cpOiBOZXcgZGVjbGFyYXRpb24uCgkoZ2ZjX2J1aWxkX2lvX2xpYnJhcnlfZm5kZWNscyk6IEFkZCB2YXJpYWJsZSBpbml0aWFsaXphdGlvbi4KCShnZmNfbmV3X25tbF9uYW1lX2V4cHIsIGdldF9uZXdfdmFyX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfZHQpOiBBZGQgbmFtZWxpc3Qgc3VwcG9ydC4KCSogaW8uYyAodmFsdWUpOiBOZXcgdmFyaWFibGUuCgkoY2hlY2tfZm9ybWF0KTogU3VwcG9ydCBGTVRfSCBub3cuCgoyMDAzLTA5LTA3ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGlvLmMgKGdmY19yZXNvbHZlX2R0KTogRXJyb3IgaWYgZm9ybWF0IGxhYmVsIGlzIG5vdCBkZWZpbmVkLgoKMjAwMy0wOS0wNyAgS2VqaWEgWmhhbyAgPGtlamlhX3poQHlhaG9vLmNvbS5jbj4KCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfYWludCk6IEZpeCB0d28gYnVncy4gT25lIGlzCglhYm91dCBjYXNlX3N3aXRjaCdzIGJyZWFrLiBUaGUgb3RoZXIgaXMgYWJvdXQgYnVpbGRpbmcgdGhlIGNvbmRpdGlvbgoJc3RhdGVtZW50IHRyZWUsIHdoaWNoIGp1ZGdlcyB0aGUgYXJndW1lbnQgaW4gdGhlIHJhbmdlIG9mIHRoZQoJY29ycmVzcG9uZGluZyBpbnRlZ2VyIHR5cGUuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfbW9kKTogTU9EIGFuZCBNT0RVTE8gY2FuIHdvcmsKCWZvciB0aGUgbGFyZ2UgdmFsdWVzLgoKMjAwMy0wOS0wNSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBmOTUtbGFuZy5jIChleHBhbmRfZnVuY3Rpb25fYm9keSk6IEdpbXBsaWZ5IHRoZSBmdW5jdGlvbi4KCjIwMDMtMDktMDQgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBmOTUtbGFuZy5jIChERUZJTkVfTUFUSF9CVUlMVElOKTogQyBhcnJheXMgc3RhcnQgYXQKCWluZGV4IHplcm8hCgoyMDAzLTA5LTA0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGY5NS1sYW5nLmMgKGdmY19kZWZpbmVfYnVpbHRpbik6IEFsc28gc2V0IGltcGxpY2l0X2J1aWx0X2luX2RlY2xzLgoJKGdmY19leHBhbmRfc3RtdCk6IE5ldyBmdW5jdGlvbi4KCShMQU5HX0hPT0tTX1JUTF9FWFBBTkRfU1RNVCk6IERlZmluZS4KCShleHBhbmRfZnVuY3Rpb25fYm9keSk6IFVzZSB0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24uCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBEb24ndCBmcmVlIGNmdW4uCgoyMDAzLTA5LTAzICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBDIGFycmF5cyBzdGFydCBhdAoJaW5kZXggemVybyEKCjIwMDMtMDgtMzAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogZjk1LWxhbmcuYyAoYnVpbHRpbl9mdW5jdGlvbik6IFJlbW92ZSAjaWYgMCBjb2RlLgoJKGdmY19kZWZpbmVfYnVpbHRpbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IFVzZSBtYXRoYnVpbHRpbnMuZGVmIG5vdCAuLi9idWlsdGlucy5kZWYuCgkqIG1hdGhidWlsdGlucy5kZWY6IE5ldyBmaWxlLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2ludHJpbnNpY19tYXBfdCk6IEFkZCBidWlsdGluIGNvZGUgZmllbGRzLgoJKGdmY19pbnRyaW5zaWNfbWFwKTogVXNlIG1hdGhidWlsdGlucy5kZWYuCgkoZ2ZjX2ludHJpbnNpY19idWlsdGluX3QpOiBSZW1vdmUuCgkoZ2ZjX2J1aWxkX2ludHJpbnNpY19saWJfZm5kZWNscyk6IFVwZGF0ZS4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2luaXRfdHlwZXMpOiBSZW1vdmUgcmVkdW5kYW50IGluaXRpbGFpemF0aW9uIG9mCglzaWduZWRfc2l6ZV90eXBlX25vZGUuCgoyMDAzLTA4LTI5ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGFyaXRoLmMgKGdmY19yZWFsX2tpbmRzKTogVXNlIGNvcnJlY3QgbWluaW11bSBleHBvbmVudHMuCgoyMDAzLTA4LTIyICBLZWppYSBaaGFvICA8a2VqaWFfemhAeWFob28uY29tLmNuPgoKCSogdHJhbnMtaW5zdGluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19tb2QpOiBBbHNvIGRvIE1PRFVMTy4KCShnZmNfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBBZGQgTU9EVUxPLgoKMjAwMy0wOC0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9leHByX2Rlc2NyaXB0b3IpOiBVcGRhdGUgdXNlIG9mIHByZWRpY2F0ZXMuCgoyMDAzLTA4LTIyICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBNYWtlLWxhbmcuaW4gKGY5NS5pbnN0YWxsLWNvbW1vbik6IEFkZCBERVNURElSIHN1cHBvcnQuCgkqIChmOTUuaW5zdGFsbC1pbmZvKTogTGlrZXdpc2UuCgkoZjk1LnVuaW5zdGFsbCk6IExpa2V3aXNlLgoKMjAwMy0wOC0xOSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmFucy10eXBlcy5jIChnZmNfaW5pdF90eXBlcyk6IEluaXRpYWxpemUKCXNpZ25lZF9zaXplX3R5cGVfbm9kZSB3aXRoIHNpemVfdHlwZV9ub2RlLgoKMjAwMy0wOC0xOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBkZXBlbmRlbmN5LmMgKGdmY19kZXBlbmRlbmN5KTogTmV3IGVudW0uCgkoY2hlY2tfYW5vdGhlcl9hcnJheV9yZWYpOiBSZW1vdmUuCgkoZ2ZjX2dldF9hcnJheV9mcm9tX2NvbXBvbmVudCk6IFJlbW92ZS4KCShnZXRfeCk6IFJlbW92ZS4KCShnZXRfcmFuZ2UpOiBSZW1vdmUuCgkoZ2V0X25vX29mX2VsZW1lbnRzKTogVXNlIG1wel90LCBub3QgbXBmX3QuCgkodHJhbnNmb3JtX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jaGVja19yYW5nZV9yYW5nZSk6IFJlbmFtZSAuLi4KCShnZmNfY2hlY2tfc2VjdGlvbl92c19zZWN0aW9uKTogLi4uIHRvIHRoaXMuICBVc2UgbmV3IGZ1bmN0aW9uLgoJKGdmY19pc19pbnNpZGVfcmFuZ2UpOiBSZXdyaXRlIHRvIG1hdGNoLgoJKGdmY19jaGVja19lbGVtZW50X3ZzX3NlY3Rpb24pOiBEaXR0by4KCShnZmNfY2hlY2tfZWxlbWVudF92c19lbGVtZW50KTogRGl0dG8uCgkoZ2V0X2RlcHMpOiBEaXR0by4KCShnZmNfZGVwX3Jlc29sdmVyKTogRGl0dG8uICBSZW1vdmUgdW51c2VkIHBhcmFtZXRlci4KCSogRGVwZW5kZW5jeS5oIChnZmNfY2hlY2tfcmFuZ2VfcmFuZ2UsIGdmY19jaGVja19lbGVtZW50X3ZzX3NlY3Rpb24sCglnZmNfY2hlY2tfZWxlbWVudF92c19lbGVtZW50LCBnZmNfaXNfaW5zaWRlX3JhbmdlLAoJZ2ZjX2dldF9hcnJheV9mcm9tX2NvbXBvbmVudCk6IFJlbW92ZSBwcm90b3R5cGVzIGZvciBzdGF0aWMgZnVuY3Rpb25zLgoJKGdmY19kZXBfcmVzb2x2ZXIpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9yZXNvbHZlX2RlcGVuZGVuY2llcyk6IENoYW5nZSB0byBtYXRjaC4KCjIwMDMtMDgtMTUgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtZGVjbC5jIChnZmNfYnVpbGRfcXVhbGlmaWVkX2FycmF5KTogRG9uJ3QgYWRkIHN5bWJvbHMgZm9yCglyZXR1cm4gdmFsdWVzIHRvIHBhcmVudCBzY29wZS4KCShnZmNfYnVpbGRfZHVtbXlfYXJyYXlfZGVjbCk6IERpdHRvLgoKMjAwMy0wOC0xNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19hbGxvY2F0ZSk6IEhhbmRsZSBOVUxMIHJlZnMuIEFsbG9jYXRlIHRoZQoJc2l6ZSBvZgl0aGUgdHlwZSwgbm90IHRoZSBwb2ludGVyLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogR2l2ZSBtb3JlIGFjY3VyYXRlIGVycm9yIG1lc3NhZ2UuCgoyMDAzLTA4LTEwICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBPbmx5IG1hbmdsZSBnbG9iYWwgc3ltYm9scy4KCjIwMDMtMDgtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfYWxsb2NhdGUpOiBDb3JyZWN0bHkgaGFuZGxlIG5vbi1hcnJheSBkZXJpdmVkCgl0eXBlIGNvbXBvbmVudHMuCgoyMDAzLTA4LTEwICBDaHVuIEh1YW5nICA8Y29tcGlsZXJAc29odS5jb20+CgoJKiByZXNvbHZlLmMgKHJlc29sdmVfZm9ybWFsX2FyZ2xpc3QpOiBSZXNvbHZlIFNUQVRFTUVOVCBmdW5jdGlvbi4KCShyZXNvbHZlX3N5bWJvbCk6IERpdHRvLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X3N0YXRlbWVudF9mdW5jdGlvbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9mdW5jdGlvbl9leHByKTogVXNlIGl0LgoKMjAwMy0wOC0xMCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnZmNfY29udl9zc19zdGFydHN0cmlkZSk6IEhhbmRsZSBmdW5jdGlvbnMuCgkod2Fsa19mdW5jdGlvbl9leHByKTogU2V0IHNlY3Rpb24gcmFuay4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY193YWxrX2ludHJpbnNpY19saWJmdW5jKTogRGl0dG8uCgoyMDAzLTA4LTEwICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGludHJpbnNpYy5jIChhZGRfc3ltKTogUHJlZml4IG5hbWVzIHdpdGggY29ycmVjdCBzdHJpbmcuCgkoYWRkX3N5bV8wcyk6IE5ldyBmdW5jdGlvbi4KCShhZGRfc3Vicm91dGluZXMpOiBSZWdpc3RlciBhYm9ydC4KCjIwMDMtMDgtMTAgIEVyaWsgU2NobmV0dGVyICA8c2NobmV0dGVyQHVuaS10dWViaW5nZW4uZGU+CgoJKiBnZm9ydHJhbi5oOiBJbnRyb2R1Y2Ugb3B0aW9ucyB0byBjb250cm9sIHRoZSBtYW5nbGluZy4KCSogbGFuZy5vcHQ6IExpa2V3aXNlLgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBIYW5kbGUgdGhlIG9wdGlvbnMuCgkqIHRyYW5zLWNvbW1vbi5jIChnZmNfc3ltX21hbmdsZWRfY29tbW9uX2lkKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19idWlsZF9jb21tb25fZGVjbCk6IENhbGwgaXQuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3N5bV9tYW5nbGVkX2Z1bmN0aW9uX2lkKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19nZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wsIGdmY19idWlsZF9mdW5jdGlvbl9kZWNsKTogQ2FsbCBpdC4KCjIwMDMtMDgtMDkgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogbW9kdWxlLmMgKG1pb19zeW1ib2wpOiBBbHdheXMgb3VwdXQgYSBuYW1lc3BhY2UgZm9yIGZvcm1hbCBhcmdzLgoJKGxvYWRfbmVlZGVkKTogTmFtZXNwYWNlIG5vdyBiZWxvbmcgdG8gdGhlaXIgcHJvcGVyIHN5bWJvbC4KCShnZmNfZHVtcF9tb2R1bGUpOiBDaGFuZ2UgRzk1PT5HRk9SVFJBTi4KCjIwMDMtMDgtMDUgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogb3B0aW9ucy5jOiBGb3JjZSAtZmc3Ny1jYWxscy4KCjIwMDMtMDgtMDIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogTWFrZWxhbmcuaW46IFJlbmFtZSBHOTVfKiB0byBHRk9SVFJBTl8qLgoJKiBBbGwgc291cmNlczogUmVuYW1lIEc5NV8qIHRvIEdGQ18qLgoKMjAwMy0wOC0wMSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBmb3J0cmFuL01ha2UtbGFuZy5pbjogVXNlIEdNUExJQlMuCgkqIGZvcnRyYW4vY29uZmlnLWxhbmcuaW46IFNldCBuZWVkX2dtcC4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl92YXJpYWJsZSk6IFJlbW92ZSBpbmNvcnJlY3QgYXNzZXJ0aW9uLgoKMjAwMy0wNy0yNyAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogdHJhbnMtZGVjbC5jIChnZmNfZ2VuZXJhdGVfY29uc3RydWN0b3JzKTogQ29udmVydCBwcm90b3R5cGUgdG8KCUlTTyBDOTAuCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19pbml0X2NvbnN0YW50cyk6IExpa2V3aXNlLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2J1aWxkX2ludHJpbnNpY19saWJfZm5kZWNscyk6IExpa2V3aXNlLgoKCSogZ2ZvcnRyYW5zcGVjLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4KCShsYW5nX3NwZWNpZmljX2RyaXZlcik6IENvcnJlY3QgY29weXJpZ2h0LCByZW1vdmUgQUxUX0xJQk0gdXNhZ2UuCgoyMDAzLTA3LTI2ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGxhbmcub3B0OiBBZGQgLWZkdW1wLXBhcnNlLXRyZWUuCgkqIG9wdGlvbnMuYyAoZ2ZjX2hhbmRsZV9vcHRpb24pOiBEaXR0by4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX2ZvcmFsbF9pdGVyYXRvcnMpOiBDb252ZXJ0IHRvIHByb3BlciB0eXBlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19mb3JhbGxfMSk6IENyZWF0ZSB0ZW1wIHZhciB3aXRoIGNvcnJlY3QgdHlwZS4KCjIwMDMtMDctMjYgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogTWFrZWZpbGUuaW46IEFkZCBidWlsZCBkZXBlbmRlbmNpZXMgb24gZmlsZXMgY29tbW9uIHdpdGggcmVzdCBvZiBnY2MuCgoyMDAzLTA3LTI2ICBMaWZhbmcgWmVuZyAgPHpsZjYwNUBob3RtYWlsLmNvbT4KCgkqIHRyYW5zLmg6IERlY2xhcmUgZzk1X3RyYW5zX3BvaW50ZXJfYXNzaWdubWVudC4KCSogdHJhbnMtZXhwci5jIChnOTVfdHJhbnNfcG9pbnRlcl9hc3NpZ25tZW50KTogTmV3IGZ1bmN0aW9uLgoJKGc5NV90cmFuc19wb2ludGVyX2Fzc2lnbik6IFVzZSBpdC4KCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfZm9yYWxsXzEpOiBIYW5kbGUgcG9pbnRlciBhc3NpZ25tZW50LgoJKGc5NV90cmFuc19wb2ludGVyX2Fzc2lnbl9uZWVkX3RlbXApOiBOZXcgZnVuY3Rpb24uCgoyMDAzLTA3LTI2ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGdmb3J0cmFuLnRleGk6IFJlcGxhY2UgcmVmZXJlbmNlcyB0byBnOTUuCgoyMDAzLTA3LTI2ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCglSZW5hbWUgZzk1XyogdG8gZ2ZjXyouCgoyMDAzLTA3LTI1ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGdmb3J0cmFuLmg6IFJlbmFtZSBmcm9tIGc5NS5oLgoJKiB0cmFucy10eXBlcy5jIChib29sZWFuX3R5cGVfbm9kZSwgYm9vZWxhbl90cnVlX25vZGUsCglib29sZWFuX2ZhbHNlX25vZGUpOiBSZW1vdmUuCgkqIHRyYW5zLXR5cGVzLmg6IERpdHRvLgoKMjAwMy0wNy0yNSAgQ2h1biBIdWFuZyAgPGNvbXBpbGVyQHNvaHUuY29tPgoKCSogcGFyc2UuYyAoYWNjZXB0X3N0YXRlbWVudCk6IEltcGxlbWVudCBCTE9DSyBEQVRBIHN0YXRlbWVudC4KCSogdHJhbnMtZXhwci5jIChnOTVfY29udl92YXJpYWJsZSk6IEZpeCBidWcgZm9yIGRlcmVmZXJlbmNlIHBvaW50ZXIKCXZhcmlhYmxlcy4KCjIwMDMtMDctMjQgIExpZmFuZyBaZW5nICA8emxmNjA1QGhvdG1haWwuY29tPgoKCSogdHJhbnMtc3RtdC5jICh0ZW1wb3JhcnlfbGlzdCk6IERlZmluZS4KCShnOTVfdHJhbnNfYXNzaWduX25lZWRfdGVtcCk6IE5ldyBmdW5jdGlvbi4KCShnOTVfdHJhbnNfZm9yYWxsXzEpOiBNb2RpZmllZCBmb3IgV0hFUkUuCgkoZzk1X3RyYW5zX3doZXJlX2Fzc2lnbik6IE1vZGlmaWVkLgoJKGc5NV90cmFuc193aGVyZV8yKTogTW9kaWZpZWQuCgkoZzk1X2V2YWx1YXRlX3doZXJlX21hc2spOiBNb2RpZmllZC4KCShnOTVfdHJhbnNfd2hlcmUpOiBNb2RpZmllZC4KCShnOTVfZ2V0X3RlbXBfZXhwcik6IFJlbW92ZWQuCgkoZzk1X2FkZF90b193aGVyZV9zdG10X2xpc3QpOiBSZW1vdmVkLgoJKGNvbXB1dGVfb3ZlcmFsbF9pdGVyX251bWJlcik6IE1vZGlmaWVkIGZvciBXSEVSRS4KCSogdHJhbnMuaDogUmVtb3ZlIHdoZXJlX3N0bXRfbGlzdC4KCjIwMDMtMDctMjQgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogbGFuZy5vcHQ6IENvcnJlY3QgZGVzY3JpcHRpb24gb2Ygb3B0aW9ucyAtSiBhbmQgLU0uCgoyMDAzLTA3LTIzICBTdGV2ZW4gQm9zc2NoZXIgICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogbGFuZy5vcHQ6IE1vdmUgaGVscCB0ZXh0IHRvIGhlcmUuCgkqIGxhbmctb3B0aW9ucy5oOiBSZW1vdmUuCgoyMDAzLTA3LTIzICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCSogaXJlc29sdmUuYyAoZzk1X3Jlc29sdmVfdHJhbnNwb3NlKTogUHJvcGVyIHZhcmlhYmxlIGluIHN3aXRjaC4KCSogc2ltcGxpZnkuYyAoZzk1X3NpbXBsaWZ5X25lYXJlc3QpOiBGaXggdHlwbyBhbmQgdXNlIGEgY29ycmVjdCB0ZXN0CglvbiBraW5kLgoKMjAwMy0wNy0yMiAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoJUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBjaGVjay5jIChjaGVja19yZXN0KTogVXNlIGdsb2JhbCBwZWRhbnRpYyBmbGFnLgoJKiBpby5jIChkYXRhX2Rlc2MpOiBEaXR0by4KCSogZXJyb3IuYyAoZzk1X3dhcm5pbmcsIGc5NV93YXJuaW5nX25vdyk6IFVzZSBnbG9iYWwgZmxhZy4KCSogZjk1LWxhbmcuYyAoTEFOR19IT09LU19IQU5ETEVfT1BUSU9OKTogUmVuYW1lIGZyb20gREVDT0RFLgoJKGV4cGFuZF9mdW5jdGlvbl9ib2R5KTogVXBkYXRlIHRvIG5ldyBwcm90b3R5cGVzLgoJKGc5NV9pbml0KTogVXNlIG5ldyBvcHRpb24gbmFtZXMuCgkqIGc5NS5oIChnOTVfb3B0aW9uX3QpOiBTdGFuZGFyZGl6ZSBuYW1lcy4KCShnOTVfaW5pdF9vcHRpb25zLCBnOTVfaGFuZGxlX29wdGlvbik6IFVwZGF0ZSBwcm90b3R5cGVzLgoJKiBpbnRlcmZhY2UuYzogVXNlIG5ldyBvcHRpb24gbmFtZXMuCgkqIG1hdGNoLmM6IERpdHRvLgoJKiBtb2R1bGUuYzogRGl0dG8uCgkqIHBhcnNlLmM6IERpdHRvLgoJKiBwcmltYXJ5LmM6IERpdHRvLgoJKiByZXNvbHZlLmM6IERpdHRvLgoJKiBzY2FubmVyLmM6IERpdHRvLgoJKiBzaW1wbGlmeS5jOiBEaXR0by4KCSogc3ltYm9sLmM6IERpdHRvLgoJKiB0cmFucy1hcnJheS5jOiBEaXR0by4KCSogdHJhbnMtZXhwci5jOiBEaXR0by4KCSogdHJhbnMtdHlwZXMuYzogRGl0dG8uCgkqIHRyYW5zLWRlY2wuYzogRGl0dG8uCgkoZzk1X2J1aWxkX2xpYnJhcnlfZnVuY3Rpb25fZGVjbCk6IFJlbW92ZSBvYnNvbGV0ZSBWUEFSQU1TLgoJKiB0cmFucy5oOiBEaXR0by4KCSogb3B0aW9ucy5jIChnOTVfZGlzcGxheV9oZWxwKTogUmVtb3ZlLgoJKGc5NV9pbml0X29wdGlvbnMpOiBDb252ZXJ0IHRvIG5ldyBzY2hlbWUuCgkoc2V0X1dhbGwpOiBEaXR0bwoJKGc5NW1vZHVsZV9vcHRpb24pOiBEaXR0bywgcmVuYW1lIGZyb20gZzk1X3BhcnNlX2FyZy4KCShnOTVfaGFuZGxlX21vZHVsZV9wYXRoX29wdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkqIHRyYW5zLWVxdWl2YWxlbmNlLmM6IEZpeCBlcnJvciBtZXNzYWdlLgoJKiBsYW5nLm9wdDogQ29ycmVjdGlvbnMuCgoyMDAzLTA3LTIxICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5AZ2NjLmdudS5vcmc+CgoJKiBsYW5nLm9wdDogTmV3IGZpbGUuCgoyMDAzLTA3LTIxICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCgkqIGRlY2wuYyAobWF0Y2hfYXR0cl9zcGVjKTogU2V0IGNvbG9uX3NlZW4uCgoyMDAzLTA3LTE0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmM6IFVwZGF0ZSBjb21tZW50LgoJKGc5NV90cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl9zdWJhcnJheSk6IENsZWFudXAgbG9vcGluZm8gZGF0YS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19hbnlhbGwsY291bnQsYXJpdGgsCgltaW5tYXhsb2MsbWlubWF4dmFsKTogRGl0dG8uCgkqIHRyYW5zLWlvLmMgKGc5NV90cmFuc190cmFuc2Zlcik6IERpdHRvLgoJKiB0cmFucy1zdG10LmM6IFJlbW92ZSB1bm5lZWRlZCBwcm90b3R5cGVzLgoJKGdlbmVyYXRlX2xvb3BfZm9yX2xoc190b19yaHMpOiBSZW5hbWUgdmFycy4gQWRkIGxvb3AgcG9zdCBjaGFpbi4KCShnZW5lcmF0ZV9sb29wX2Zvcl9yaHNfdG9fdGVtcCk6IFJlbmFtZSB2YXJzLiBEb24ndCBzaGFyZSBsb29waW5mby4KCShjb21wdXRlX2lubmVyX3RlbXBfc2l6ZSk6IFJlbW92ZSBiaXRzIG9mIGRlYWQgY29kZS4gQWRkIGNvbW1lbnRzLgoJRG9uJ3Qgc2hhcmUgbG9vcGluZm8uCgkoY29tcHV0ZV9vdmVyYWxsX2l0ZXJfbnVtYmVyKTogRGVjbGFyZSBhcyBzdGF0aWMuCgkoYWxsb2NhdGVfdGVtcF9mb3JfZm9yYWxsX25lc3QpOiBEaXR0by4KCShnOTVfdHJhbnNfZm9yYWxsXzEpOiBEb24ndCBwYXNzIHNoYXJlZCBsb29waW5mby4KCSogdHJhbnMuYyAoZzk1X3N0YXJ0X2Jsb2NrKTogRXhwYW5kIGNvbW1lbnQuCgoyMDAzLTA3LTEyICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGFyaXRoLmMgKGc5NV9pbmRleF9pbnRlZ2VyX2tpbmQpOiBSZW1vdmUgdW51c2VkIGluaXRpYWxpemVyLgoJKiB0cmFucy1zdG10LmMgKGdlbmVyYXRlX2xvb3BfZm9yX3RlbXBfdG9fbGhzKTogRG9uJ3QgbXVsdGlwbHkgYXJyYXkKCWluZGV4IGJ5IHNpemUgb2YgZWxlbWVudC4KCShnZW5lcmF0ZV9sb29wX2Zvcl9yaHNfdG9fdGVtcCk6IERpdHRvLgoJKGFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0KTogVXNlIGVsZW1lbnQgc2l6ZSwgbm90IGluZGV4IHNpemUuCgoyMDAzLTA3LTExICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCgkqIGFyaXRoLmMgKGc5NV9pbmRleF9pbnRlZ2VyX2tpbmQpOiBBZGQgYSBUT0RPLgoJKiBzaW1wbGlmeS5jIChnOTVfc2ltcGxpZnlfbmVhcmVzdCk6IEFkZCBhIFRPRE8uCgoyMDAzLTA3LTA5ICBDaHVuIEh1YW5nICA8Y29tcGlsZXJAc29odS5jb20+CgoJKiB0cmFucy5oOiBBZGQgZGVjbGFyYXRpb25zIGZvciBnZm9yX2ZuZGVjbF9zdHJpbmdfc2NhbiBhbmQKCWdmb3JfZm5kZWNsX3N0cmluZ192ZXJpZnkuCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9kZWNscyk6IEJ1aWxkIHRoZW0uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfc2Nhbik6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfdmVyaWZ5KTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbik6IEFkZCBTQ0FOIGFuZCBWRVJJRlkuCgkqIHNpbXBsaWZ5LmMgKGc5NV9zaW1wbGlmeV9zY2FuLCBnOTVfc2ltcGxpZnlfdmVyaWZ5KTogRml4IGJ1ZyBpbiBjYXNlCglvZiBwYXJhbWV0ZXIgJ0JBQ0s9LlRSVUUuJwoKMjAwMy0wNy0wNSAgTGlmYW5nIFplbmcgIDx6bGY2MDVAaG90bWFpbC5jb20+CgoJKiB0cmFucy1zdG10LmMgKGl0ZXJfaW5mbywgZm9yYWxsX2luZm8pOiBEZWZpbmUuCgkoZzk1X3RyYW5zX2ZvcmFsbF9ibG9jayk6IFJlbW92ZS4KCShnOTVfdHJhbnNfZm9yYWxsX2xvb3ApOiBVc2UgZm9yYWxsIGluZm8gYmxvY2tzLgoJKGc5NV90cmFuc19uZXN0ZWRfZm9yYWxsX2xvb3ApOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2RvX2FsbG9jYXRlKTogSGFuZGxlIHRoaW5ncyBvdGhlciB0aGFuIGxvZ2ljYWwgbWFza3MuCgkoZ2VuZXJhdGVfbG9vcF9mb3JfdGVtcF90b19saHMpOiBOZXcgZnVuY3Rpb24uCgkoZ2VuZXJhdGVfbG9vcF9mb3JfcnNoX3RvX3RlbXApOiBOZXcgZnVuY3Rpb24uCgkoY29tcHV0ZV9pbm5lcl90ZW1wX3NpemUpOiBOZXcgZnVuY3Rpb24uCgkoY29tcHV0ZV9vdmVyYWxsX2l0ZXJfbnVtYmVyKTogTmV3IGZ1bmN0aW9uLgoJKGFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0KTogTmV3IGZ1bmN0aW9uLgoJKGc5NV90cmFuc19mb3JhbGwpOiBNb3ZlIGJvZHkgLi4uCgkoZzk1X3RyYW5zX2ZvcmFsbF8xKTogLi4uIHRvIGhlcmUuICBIYW5kbGUgbG9vcHMgd2l0aCB0ZW1wb3Jhcmllcy4KCjIwMDMtMDctMDIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtZGVjbC5jIChjcmVhdGVfaW5kZXhfdmFyLCBnOTVfYnVpbGRfcXVhbGlmaWVkX2FycmF5KTogUHV0IHZhcnMKICAgICAgIAlpbiBjb3JyZWN0IHNjb3BlLiAgQ2hhbmdlIGNhbGxlcnMgdG8gbWF0Y2guCgkqIHRyYW5zLXR5cGVzLmMgKGc5NV9nZXRfZHR5cGVfY3N0KTogQWxsb3cgcmFuayA3IGFycmF5cy4KCSogaXJlc29sdmUuYyAoZzk1X3Jlc29sdmVfcmVzaGFwZSk6IE9ubHkgdXNlIGNvbnN0YW50IHNoYXBlcy4KCjIwMDMtMDctMDIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZzk1X2NvbnZfbG9vcF9zZXR1cCk6IFJlbW92ZSBkZWFkIHZhci4gIFVzZQoJZXhwcmVzc2lvbiBzaGFwZSBmb3IgYWxsIGV4cHJlc3Npb25zLgoJKiB0cmFucy1kZWNsLmMgKGc5NV9zeW1ib2xfaW5pdCk6IEFsbG93IGFkZGluZyBhdCB2ZXJ5IGVuZCBvZiBsaXN0LgoKMjAwMy0wNy0wMyAgQXJuYXVkIERlc2l0dGVyICA8YXJuYXVkLmRlc2l0dGVyQGdlb2dyYXBoeS5veGZvcmQuYWMudWs+CgoJKiBnOTUuaCAoZzk1X29wdGlvbl90KSwgbGFuZy1vcHRpb25zLmgsIG9wdGlvbnMuYyAoZzk1X2luaXRfb3B0aW9ucywKCWc5NV9wYXJzZV9hcmcpLCBpbnRyaW5zaWMuYyAoZzk1X2NvbnZlcnRfdHlwZSk6IHN1cHBvcnQgb2YKCS1XY29udmVyc2lvbi4KCSogaW50cmluc2ljLmMsIGc5NS5oOiBBZGQgZzk1X2NvbnZlcnRfdHlwZV93YXJuLAoJKiByZXNvbHZlLmMgKGc5NV9yZXNvbHZlX2luZGV4KTogQ2FsbCBpdC4KCjIwMDMtMDctMDIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaXJlc29sdmUuYyAoZzk1X3Jlc29sdmVfcmVzaGFwZSk6IFNldCBleHByZXNzaW9uIHNoYXBlLgoJKGc5NV9yZXNvbHZlX3NoYXBlKTogRGl0dG8uCgkqIHNpbXBsaWZ5LmMgKGc5NV9zaW1wbGlmeV9zaGFwZSk6IE1vdmUgY29tbW9uIGNvZGUgb3V0c2lkZSBjb25kaXRpb24uCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9jb252X2FycmF5X2luaXRpYWxpemVyKTogVGVhY2ggaXQgaG93IHRvIGNvdW50LgoKMjAwMy0wNy0wMSAgQXJuYXVkIERlc2l0dGVyICA8YXJuYXVkLmRlc2l0dGVyQGdlb2dyYXBoeS5veGZvcmQuYWMudWs+CgoJKiBhcnJheS5jIChnOTVfYXJyYXlfZGltZW5fc2l6ZSk6IERlYWwgd2l0aCBFWFBSX0FSUkFZIHRvIGltcHJvdmUKCWNvbmZvcm1hbmNlIGNoZWNrcy4KCjIwMDMtMDYtMjkgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogYXJyYXkuYyAoZzk1X3NpbXBsaWZ5X2l0ZXJhdG9yX3Zhcik6IERvbid0IGJvdGhlciB3aXRoIHJldHVybiB2YWx1ZS4KCSogZXhwci5jIChmaW5kX2FycmF5X2VsZW1lbnQsIGZpbmRfY29tcG9uZW50X3JlZik6IE5ldyBmdW5jdGlvbnMuCgkocmVtb3ZlX3N1Ym9iamVjdF9yZWYpOiBOZXcgZnVuY3Rpb24uCgkoc2ltcGxpZnlfY29uc3RfcmVmKTogVXNlIHRoZW0uICBSZW5hbWUgZnJvbSBzaW1wbGlmeV9jb21wb25lbnRfcmVmLgoJKHNpbXBsaWZ5X3JlZl9jaGFpbik6IE5ldyBmdW5jdGlvbi4KCShnOTVfc2ltcGxpZnlfZXhwcik6IFVzZSBpdC4gIFNpbXBsaWZ5IHBhcmFtZXRlciB2YXJpYWJsZSBzdWJvYmplY3RzLgoJKGc5NV9zcGVjaWZpY2F0aW9uX2V4cHIpOiBTaW1wbGlmeSB0aGUgZXhwcmVzc2lvbi4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX29wZXJhdG9yKTogQ2hlY2sgc2ltcGxpZmljYXRpb25zIHJldHVybiBjb2RlLgoJKGc5NV9yZXNvbHZlX2V4cHIpOiBEaXR0by4KCjIwMDMtMDYtMjYgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogZXhwci5jIChzaW1wbGlmeV9jb21wb25lbnRfcmVmKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9zaW1wbGlmeV9leHByKTogVXNlIGl0LgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3RydWN0dXJlX2NvbnMpOiBIYW5kbGUgcmVmZXJlbmNlcy4KCjIwMDMtMDYtMjUgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtaW8uYyAoYnVpbGRfZHQpOiBIYW5kbGUgaW50ZXJuYWwgdW5pdHMuCgoyMDAzLTA2LTI1ICBDYW5xdW4gWWFuZyAgPGNhbnF1bkB5YWhvby5jb20uY24+CgoJKiB0cmFucy1jb21tb24uYyAoZzk1X2J1aWxkX2NvbW1vbl9kZWNsKTogQXJyYXkgaW5kZXggcmFuZ2Ugc3RhcnRzIGF0IDAuCgkoZzk1X2J1aWxkX2NvbW1vbl9kZWNsLCBnOTVfbGF5b3V0X2dsb2JhbF9lcXVpdiwgZzk1X3RyYW5zX29uZV9jb21tb24pOgoJVXNlIGc5NV9hcnJheV9pbmRleF90eXBlIGluc3RlYWQgb2YgaW50ZWdlcl90eXBlX25vZGUuCgkoZzk1X2J1aWxkX2NvbW1vbl9kZWNsLCBnOTVfc2V0X2NvbW1vbl9tYXN0ZXJfdHlwZSk6IFVzZQoJZzk1X2NoYXJhY3RlcjFfdHlwZV9ub2RlIGluc3RlYWQgb2YgY2hhcl90eXBlX25vZGUuCgkqIHRyYW5zLWVxdWl2YWxlbmNlLmMgKGc5NV9sYXlvdXRfbG9jYWxfZXF1aXYpOiBBcyBhYm92ZS4KCjIwMDMtMDYtMjQgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0BhdHRiaS5jb20+CgoJKiBnOTUuaCAoZzk1X29wdGlvbl90KSwgb3B0aW9ucy5jIChnOTVfaW5pdF9vcHRpb25zLCBnOTVfcGFyc2VfYXJnKToKCXJlbW92ZSBsYXN0IHJlbWFpbnMgb2YgLWZxdWlldC4KCjIwMDMtMDYtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogcmVzb2x2ZS5jIChyZXNvbHZlX29wZXJhdG9yKTogRG9uJ3QgZmFpbCBpZiB3ZSBjYW4ndCBzaW1wbGlmeS4KCShnOTVfcmVzb2x2ZV9leHByKTogRGl0dG8uCgkocmVzb2xjZV9jb2RlKTogTWFyayBhcyBzdGF0aWMuCgkqIHRyYW5zLXN0bXQuYyAoZzk1X3RyYW5zX2NoYWFyYWN0ZXJfc2VsZWN0KTogTWFyayBsYWJlbHMgYmVjYXVzZSB0aGUKCWdpbXBsaWZlciBkb2Vzbid0ICh5ZXQpLgoKMjAwMy0wNi0yMCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBnOTUuaDogQWRkIFNUX1BBVVNFIGFuZCBFWEVDX1BBVVNFLgoJKiBtYXRjaC5jIChnOTVfbWF0Y2hfaWYpOiBBZGQgU1RfUEFVU0UuCgkoZzk1X21hdGNoX3N0b3Bjb2RlKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9tYXRjaF9wYXVzZSwgZzk1X21hdGNoX3N0b3ApOiBVc2UgaXQuCgkqIHBhcnNlLmMgKGc5NV9hc2NpaV9zdGF0ZW1lbnQpOiBIYW5kbGUgU1RfUEFVU0UuCgkoZGVjb2RlX3N0bXQsIG5leHRfc3RhdGVtZW50LCBwYXJzZV9leGVjdXRhYmxlKTogRGl0dG8uCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9jb2RlKTogRGl0dG8uCgkqIHN0LmMgKGc5NV9mcmVlX3N0YXRlbWVudCk6IERpdHRvLgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19wYXVzZSk6IE5ldyBmdW5jdGlvbi4KCSogdHJhbnMtc3RtdC5oOiBEZWNsYXJlIGl0LgoJKiB0cmFucy5jIChnOTVfdHJhbnNfY29kZSk6IFVzZSBpdC4KCSogdHJhbnMtZGVjbC5jIChnZm9yX2ZuZGVjbF9wYXVzZV9udW1lcmljLCBnZm9yX2ZuZGVjbF9wYXVzZV9zdHJpbmcpOgoJRGVjbGFyZS4KCShnOTVfYnVpbGRfYnVpbHRpbl9mdW5jdGlvbl9kZWNscyk6IEluaXRpYWxpemUgdGhlbS4KCSogdHJhbnMuaDogRGl0dG8uCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnOTVfc2hvd19jb2RlX25vZGUpOiBIYW5kbGUgRVhFQ19QQVVTRS4KCjIwMDMtMDYtMTggIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogaW8uYyAoZzk1X21hdGNoX29wZW4gLCBnOTVfbWF0Y2hfY2xvc2UsIGc5NV9tYXRjaF9pbnF1aXJlLAoJbWF0Y2hfZmlsZXBvcyk6IEZpeCBlcnJvciBoYW5kbGluZy4KCjIwMDMtMDYtMTggIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogYXJyYXkuYyAoc3BlY19kaW1lbl9zaXplLCByZWZfZGltZW5fc2l6ZSwgZzk1X2FycmF5X2RpbWVuX3NpemUpOgoJQWRkIGFzc2VydGlvbnMgb24gYXJndW1lbnRzLgoJKiByZXNvbHZlLmMgKGV4cHJlc3Npb25fc2hhcGUpOiBSZW1vdmUgdXNlbGVzcyAmLgoJKiBzaW1wbGlmeS5jIChnZXRfa2luZCwgZzk1X3NpbXBsaWZ5X2JpdF9zaXplLCBnOTVfc2ltcGxpZnlfZGlnaXRzLAoJZzk1X3NpbXBsaWZ5X2liY2xyLCBnOTVfc2ltcGxpZnlfaWJpdHMsIGc5NV9zaW1wbGlmeV9pYnNldCwKCWc5NV9zaW1wbGlmeV9pc2hmdCxnOTVfc2ltcGxpZnlfaXNoZnRjLCBnOTVfc2ltcGxpZnlfbWF4ZXhwb25lbnQsCglnOTVfc2ltcGxpZnlfbWluZXhwb25lbnQsIGc5NV9zaW1wbGlmeV9yYWRpeCwgZzk1X3NpbXBsaWZ5X3JhbmdlCglnOTVfc2ltcGxpZnlfcnJzcGFjaW5nLCBnOTVfc2ltcGxpZnlfc2NhbGUsIGc5NV9zaW1wbGlmeV9zcGFjaW5nLAoJZzk1X3NpbXBsaWZ5X3RhbiwgZzk1X3NpbXBsaWZ5X3RpbnkpOiBDbGVhbiBwcmVkaWNhdGVzIGFuZCBhc3NlcnRpb25zLgoJKGc5NV9zaW1wbGlmeV9ub3QsIGc5NV9zaW1wbGlmeV9zY2FsZSk6IEFkZCBhc3NlcnRpb25zLgoKMjAwMy0wNi0xNSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJQ2xlYW4gdXAgc3R1ZmYgdG8gd29yayB3aXRoIHRoZSBzc2Egb3B0aW1pemVycy4KCSogY29udmVydC5jIChjb252ZXJ0KTogSGFuZGxlIEJPT0xFQU5fVFlQRXMuCgkqIGY5NS1sYW5nLmMgKGc5NV90cnV0aHZhbHVlX2NvbnZlcnNpb24pOiBJbXBsZW1lbnQuCgkqIHRyYW5zLWFycmF5LmMgKGc5NV90cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSk6IEdyb3VwIG11bHRpcGxlCglzY2FsYXIgdmFsdWVzLgoJKiB0cmFucy5oIChnOTVfdHJ1dGh2YWx1ZV9jb252ZXJzaW9uKTogRGVjbGFyZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19hbnlhbGwpOiBVc2UgYm9vbCBjb25zdGFudHMuCgkqIHRyYW5zLXN0bXQuYyAoZzk1X3RyYW5zX2NoYXJhY3Rlcl9zZWxlY3QpOiBEb24ndCBjcmVhdGUgYXJyYXkKCWFzc2lnbm1lbnRzLiAgTWFyayBsYWJlbHMgYXMgaW5kaXJlY3QganVtcCB0YXJnZXRzLgoJKiB0cmFucy10eXBlcy5oIChnOTVfaW5pdF90eXBlcyk6IFVzZSBCT09MRUFOX1RZUEUgbm9kZXMuCgkoZzk1X2dldF9kdHlwZV9jc3QpOiBIYW5kbGUgTE9HSUNBTCB0eXBlcy4KCjIwMDMtMDYtMTQgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogZjk1LWxhbmcuYyAoZzk1X2dpbXBsaWZ5X2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkqIHRyYW5zLWFycmF5LmMgKGc5NV90cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSk6IERvbid0IGNyZWF0ZQoJYXJyYXkgYXNzaWdubWVudHMuCgkoZzk1X2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogUmVuYW1lIHNpbXBsZS0+Z2ltcGxlLgoJKiB0cmFucy1leHByLmMgKGNvbnZfZXhwcl9vcCk6IFVzZSBwcm9wZXIgbG9naWNhbCBvcGVyYXRvcnMuCgkqIHRyYW5zLWludHJpbnNpYy5jIChidWlsZF9maXhib3VuZF9leHByKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX2ZpeF9leHByKTogRGl0dG8uCgkoZzk1X2NvbnZfaW50aW5zaWNfYWludCk6IFVzZSB0aGVtLiBVc2UgYnVpbHRpbiBmdW5jdGlvbnMuCgkoZzk1X2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogQWRkIEZMT09SIGFuZCBDRUlMSU5HLgoKMjAwMy0wNi0xMCAgQXJuYXVkIERlc2l0dGVyICA8YXJuYXVkLmRlc2l0dGVyQGdlb2dyYXBoeS5veGZvcmQuYWMudWs+CgoJKiBhcnJheS5jIChnOTVfY29tcGFyZV9hcnJheV9zcGVjKTogUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUuCgkqIGV4cHIuYyAoZzk1X2NvcHlfZXhwcik6IExpa2V3aXNlLgoJKiBpbnRyaW5zaWMuYyAoZzk1X2NvbnZlcnRfdHlwZSk6IExpa2V3aXNlLgoJKiBtaXNjLmMgKGc5NV9jb2RlMnN0cmluZyk6IExpa2V3aXNlLgoJKiBzaW1wbGlmeS5jIChnOTVfc2ltcGxpZnlfaXNoZnQsIGc5NV9zaW1wbGlmeV9yZWFsLAoJZzk1X3NpbXBsaWZ5X3Jlc2hhcGUsIGc5NV9zaW1wbGlmeV9zaWduLCBnOTVfc2ltcGxpZnlfc3FydCk6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19zZWxlY3QpOiBMaWtld2lzZS4KCSogcHJpbWFyeS5jIChleHRlbmRfcmVmKTogQWRkIGFuIGFzc2VydGlvbi4KCSogc2ltcGxpZnkuYyAoZzk1X2NvbnZlcnRfY29uc3RhbnQpOiBBZGQgY29uc3QuCgkqIGludHJpbnNpYy5oOiBSZW1vdmUgZzk1X2NoZWNrX3hfbmkuCgkqIGY5NS1sYW5nLmMgKGc5NV9maW5pc2gpOiBDYWxsIGc5NV9yZWxlYXNlX2luY2x1ZGVfcGF0aC4KCjIwMDMtMDYtMTAgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogcmVzb2x2ZS5jIChyZXNvbHZlX2NvbnRhaW5lZF9mdW5jdGlvbnMpOiBGaXggdHlwbyBpbnRyb2R1Y2VkIG9uCgkyMDAzLTAxLTEzLgoKMjAwMy0wNi0wOSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBnOTUuaDogSW5jbHVkZSBzeXN0ZW0uaCBub3QgaHdpbnQuaC4KCSogbWFueTogdXNlIHNhZmUtY3R5cGUuaCBub3QgY3R5cGUuaC4gIENoYW5nZSBpc2FscGhhIC0+IElTQUxQSEEsIGV0Yy4KCSogbWlzYy5jIChnOTVfZ2V0bWVtKTogVXNlIHhtYWxsb2MvbWVtc2V0IGluc3RlYWQgb2YgY2FsbG9jLgoKMjAwMy0wNi0wOSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBnOTUuaCAoZzk1X3N5bWJvbCk6IEFkZCBmaWVsZHMgZm9yIENPTU1PTiBhbmQgRVFVSVZBTEVOQ0UgdmFyaWFibGVzLgoJKiBNYWtlLWxhbmcuaW4gKEY5NV9PQkpTKTogQWRkIGZpbGVzIGZvciBDT01NT04gYW5kIEVRVUlWQUxFTkNFLgoJKiB0cmFucy1kZWNsLmMgKGc5NV9hZGRfZGVjbF90b19mdW5jdGlvbnMpOiBNYWtlIG5vbi1zdGF0aWMuCgkoZzk1X2dldF9zeW1ib2xfZGVjbCk6IEhhbmRsZSBDT01NT04gYW5kIEVRVUlWQUxFTkNFIG9iamVjdHMuCgkoZzk1X2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBUcmFuc2xhdGUgQ09NTU9OIGFuZCBFUVVJVkFMRU5DRQoJb2JqZWN0cy4KCSogdHJhbnMuaCAoZzk1X3RyYW5zX2VxdWl2YWxlbmNlLCBnOTVfdHJhbnNfY29tbW9uLAoJZzk1X2FkZF9kZWNsX3RvX2Z1bmN0aW9uKTogRGVjbGFyZS4KCSogdHJhbnMtY29tbW9uLmMsIHRyYW5zLWVxdWl2YWxlbmNlLmM6IE5ldyBmaWxlcy4KCjIwMDMtMDYtMDggIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIGludHJpbnNpYy5jIChnOTVfaW50cmluc2ljX2V4dGVuc2lvbik6IFJlbW92ZS4KCShhZGRfZnVuY3Rpb25zKTogU3Vic3RpdHV0ZSBnOTVfY2hlY2tfeCBmb3IgZzk1X2NoZWNrX3hfbmkKCWV2ZXJ5d2hlcmUuCgkoZzk1X2luaXRfZXhwcl9leHRlbnNpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9pbnRyaW5zaWNfZnVuY19pbnRlcmZhY2UpOiBVc2UgaXQuCgkqIGludHJpbnNpYy5oOiBSZW1vdmUgZXh0ZXJuIGRlY2wgZm9yIGc5NV9pbnRyaW5zaWNfZXh0ZW5zaW9uLgoJKiBjaGVjay5jIChnOTVfY2hlY2tfZGlnaXQsIGc5NV9jaGVja19odWdlLCBnOTVfY2hlY2tfa2luZCwKCWc5NV9jaGVja19wcmVjaXNpb24sIGc5NV9jaGVja19wcmVzZW50LCBnOTVfY2hlY2tfcmFkaXgsCglnOTVfY2hlY2tfcmFuZ2UsIGc5NV9jaGVja19zZWxlY3RlZF9yZWFsX2tpbmQpOiBEbyBub3Qgc2V0CglnOTVfaW50cmluc2ljX2V4dGVuc2lvbi4KCShnOTVfY2hlY2tfeF9uaSk6IFJlbW92ZSBub3cgZHVwbGljYXRlIG9mIGc5NV9jaGVja194LgoKCSogZXhwci5jIChjaGVja19pbnF1aXJ5KTogQWRkIEZJWE1FLCBmaXh1cCBzb21lIGNvZGUgc3R5bGUuCgoyMDAzLTA2LTA2ICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCgkqIGc5NS5oIChyZWZfdHlwZSk6IE5hbWUgdGhpcyB0eXBlIGV4cGxpY2l0bHkuCgkqIG1vZHVsZS5jIChNSU9fTkFNRSk6IEFkZCBzcGVjaWFsaXNhdGlvbnMgb2YgbWlvX25hbWUuCgkobWlvX3N5bWJvbF9hdHRyaWJ1dGUsIG1pb190eXBlc3BlYywgbWlvX2FycmF5X3JlZiwKCW1pb19hcnJheV9zcGVjLCBtaW9fcmVmLCBtaW9fZXhwciwgbWlvX3N5bWJvbCk6IFVzZSB0aGVtLgoJKGFiX2F0dHJpYnV0ZSk6IE5hbWUgdGhpcyB0eXBlIGV4cGxpY2l0bHkuCgkobWlvX3N5bWJvbF9hdHRyaWJ1dGUsIG1pb19leHByKTogQWRkIGNhc3QgdG8gY2FsbCB0byBmaW5kX2VudW0uCgoyMDAzLTA2LTA1ICBLZWppYSBaaGFvICA8a2VqaWFfemhAeWFob28uY29tLmNuPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2FsbG9jYXRlZCk6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBNYWtlIEc5NV9JU1lNX0FMTE9DQVRFRCB3b3JrLgoKMjAwMy0wNi0wNSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogZjk1LWxhbmcuYzogRG9uJ3QgaW5jbHVkZSBnOTUtc3VwcG9ydC5oCgkoZzk1X21hcmtfYWRkcmVzc2FibGUpOiBBZGQgcHJvdG90eXBlLgoJKGc5NV9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlbW92ZSBDIGZyb250IGVuZCBoYWNrLgoJKiBmOTUtdHJlZS5jOiBSZW1vdmUgZmlsZS4KCSogc3VwcG9ydC5jOiBSZW1vdmUgZmlsZS4KCSogZzk1LXN1cHBvcnQuaDogUmVtb3ZlIGZpbGUuCgkqIHRyYW5zLXR5cGVzLmMgKGc5NV9pbml0X3R5cGVzKTogU2V0IHVwIGJvb2xlYW4KCXR5cGUgcmVsYXRlZCB0cmVlIG5vZGVzLgoJKiBNYWtlLWxhbmcuaW46IFJlbW92ZSBydWxlcyBmb3IgZGVhZCBmaWxlcyBhbmQKCWRlcGVuZGVuY2llcyBvbiB0aGVtLgoKMjAwMy0wNi0wNSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogTWFrZS1sYW5nLmluIChGOTVfQURESVRJT05BTF9PQkpTKTogUmVtb3ZlIHRoZSBmaW5hbAoJQyBmcm9udCBlbmQgZGVwZW5kZW5jeS4gIEFsc28sIGNvbnZlcnQuYyBkb2VzIG5vdCBkZXBlbmQgb24KCWc5NS1zdXBwb3J0LmggYW55bW9yZS4KCSogY29udmVydC5jOiBEb24ndCBpbmNsdWRlIGMtY29tbW9uLmggYW5kIGc5NS1zdXBwb3J0LmgKCSogZjk1LWxhbmcuYzogRG9uJ3QgaW5sdWRlIGMtY29tbW9uLmggYW5kIGMtY29tbW9uLmRlZiAoM3gpLgoJKGc5NV9zdG10X3RyZWUsIGc5NV9zY29wZV9zdG10X3N0YWNrLCBhbm9uX2FnZ3JfdHlwZV9wLAoJc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCwgY3VycmVudF9zdG10X3RyZWUsCgljdXJyZW50X3Njb3BlX3N0bXRfc3RhY2spOiBSZW1vdmUuCgkqIGc5NS1zdXBwb3J0LmggKHVuc2lnbmVkX2NvbnZlcnNpb25fd2FybmluZyk6IEtpbGwgcHJvdG8uCgkoYm9vbGVhbl90eXBlX25vZGUsIGJvb2xlYW5fdHJ1ZV9ub2RlLCBib29sZWFuX2ZhbHNlX25vZGUpOgoJRG9uJ3QgZGVmaW5lIGhlcmUuICBJbnN0ZWFkLCBtYWtlIHRoZW4gdHJ1ZSB0cmVlIG5vZGVzIGluCgl0cmFucy10eXBlcy4KCSogc3VwcG9ydC5jIChjX2dsb2JhbF90cmVlcyk6IERpZSwgQyBmcm9udCBlbmQsIGRpZSEhIQoJKGc5NV9pbml0X2NfZGVjbF9oYWNrcyk6IERvbid0IHRvdWNoIGludG1heF90eXBlX25vZGUsCiAJdWludG1heF90eXBlX25vZGUsIHN0cmluZ190eXBlX25vZGUgYW5kIGNvbnN0X3N0cmluZ190eXBlX25vZGUuCgkoZGVjbF9jb25zdGFudF92YWx1ZSwgb3ZlcmZsb3dfd2FybmluZyk6IE1ha2Ugc3RhdGljIGZ1bmN0aW9ucy4KCVRoZXkgYXJlIGluIGRlYXRoIHJvdyB0b28sIHRob3VnaC4KCShkZWZhdWx0X2NvbnZlcnNpb24sIGNfZXhwYW5kX2FzbV9vcGVyYW5kcyk6IFJlbW92ZS4KCSogdHJhbnMtYXJyYXkuYywgdHJhbnMtZXhwci5jLCB0cmFucy1pbnRyaW5zaWMuYywgdHJhbnMtc3RtdC5jLAoJdHJhbnMuYzogRG9uJ3QgaW5jbHVkZSBjLWNvbW1vbi5oLgoJKiB0cmFucy10eXBlcy5jIChib29sZWFuX3R5cGVfbm9kZSwgYm9vbGVhbl90cnVlX25vZGUsCglib29sZWFuX2ZhbHNlX25vZGUpOiBNYWtlIHRoZW0gcmVhbCB0cmVlIG5vZGVzLgoJKiB0cmFucy10eXBlcy5oIChpbnRtYXhfdHlwZV9ub2RlLCBzdHJpbmdfdHlwZV9ub2RlLAoJY29uc3Rfc3RyaW5nX3R5cGVfbm9kZSk6IEhhY2sgdG8gd29yayBhcm91bmQgQyBkZXBlbmRlbmNpZXMKCWluIGJ1aWx0aW4tdHlwZXMuZGVmLgoKMjAwMy0wNi0wNCAgQXJuYXVkIERlc2l0dGVyICA8YXJuYXVkLmRlc2l0dGVyQGdlb2dyYXBoeS5veGZvcmQuYWMudWs+CgoJKiBkZWNsLmMgKGRlY2xfdHlwZXMpOiBBZGQgc29tZSBpdGVyYXRvcnMtbGlrZSBzZW50aW5lbHMuCgkqIGRlY2wuYyAobWF0Y2hfYXR0cl9zcGVjKTogVXNlIHRoZW0uCglVc2UgImRlY2xfdHlwZXMiIGluc3RlYWQgb2YgImludCIuCglBZGQgY2FzdCBpbiBjYWxsIHRvIGc5NV9tYXRjaF9zdHJpbmdzLgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZzk1X3Nob3dfbmFtZXNwYWNlKTogIFVzZSAiZzk1X2ludHJpbnNpY19vcCIKCWluc3RlYWQgb2YgImludCIuCgkqIGc5NS5oIChnOTVfaW50cmluc2ljX29wKTogQWRkIHNvbWUgaXRlcmF0b3JzLWxpa2Ugc2VudGluZWxzLgoJKGc5NV9pbnRlcmZhY2VfaW5mbyk6IFVzZSAiZzk1X2ludHJpbnNpY19vcCIuCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnOTVfc2hvd19uYW1lc3BhY2UpOiBVc2UgdGhlbS4KCSogaW50ZXJmYWNlLmMgKGc5NV9jaGVja19pbnRlcmZhY2VzKTogVXNlIHRoZW0uCgkqIG1vZHVsZS5jIChyZWFkX21vZHVsZSwgd3JpdGVfbW9kdWxlKTogVXNlIHRoZW0uCgkqIHN5bWJvbC5jIChnOTVfZ2V0X25hbWVzcGFjZSwgZzk1X2ZyZWVfbmFtZXNwYWNlKTogVXNlIHRoZW0uCglVc2UgImc5NV9pbnRyaW5zaWNfb3AiLgoJKiBpbnRlcmZhY2UuYyAoY2hlY2tfb3BlcmF0b3JfaW50ZXJmYWNlKTogVXNlICJnOTVfaW50cmluc2ljX29wIi4KCUFkZCBhIGRlZmF1bHQgY2FzZSBpbiBzd2l0Y2ggc3RhdGVtZW50LgoJKiBpbnRyaW5zaWMuaCAoZzk1X2dlbmVyaWNfaXN5bV9pZCk6IE1vdmVkIHRvLi4uCgkqIGc5NS5oIChnOTVfZ2VuZXJpY19pc3ltX2lkKTogaGVyZS4KCShnOTVfaW50cmluc2ljX3N5bSk6IFVzZSAiZzk1X2dlbmVyaWNfaXN5bV9pZCIuCgkqIGludHJpbnNpYy5jIChtYWtlX2dlbmVyaWMpOiBVc2UgImc5NV9nZW5lcmljZV9pc3ltX2lkIi4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9pbnRyaW5zaWNfbWFwX3QsCgkgZzk1X2NvbnZfaW50cmluc2ljX2xpYl9mdW50aW9uKTogVXNlICJnOTVfZ2VuZXJpY2VfaXN5bV9pZCIuCgkqIG1hdGNoLmMgKGc5NV9tYXRjaF9pbnRyaW5zaWNfb3ApOiBBZGQgY2FzdCBpbiBjYWxsIHRvCglnOTVfbWF0Y2hfc3RyaW5ncy4KCjIwMDMtMDYtMDMgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIHN1cHBvcnQuYyAoc2tpcF9ldmFsdWF0aW9uLCB3YXJuX2NvbnZlcnNpb24sIGx2YWx1ZV9wLAoJbHZhbHVlX29yX2Vsc2UsIHBlZGFudGljX2x2YWx1ZV93YXJuaW5nLCB3YXJuX2Zvcl9hc3NpZ25tZW50LAoJY29uc3RhbnRfZml0c190eXBlX3AsIGNvbnZlcnRfYW5kX2NoZWNrLAoJdW5zaWduZWRfY29udmVyc2lvbl93YXJuaW5nKTogUmVtb3ZlIHRoZXNlIHVnbHkgcmVtbmFudHMKCXdlIGluaGVyaXRlZCBmcm9tIHRoZSBDIGZyb250IGVuZC4KCShmdW5jdGlvbl90eXBlc19jb21wYXRpYmxlKTogUmVtb3ZlICcjaWYgMCctZWRjb2RlLgoJKGJ1aWxkX21vZGlmeV9leHByKTogTGlrZXdpc2UuCgkoY29udmVydF9mb3JfYXNzaWdubWVudCk6IERvbid0IHVzZSB0aGUgZGVjZWFzZWQgZnVuY3Rpb25zLgoJVGhlIHBhcmFtZXRlciBmdW5kZWNsIGlzIG5vdyB1bnVzZWQuCgkoZGVjbF9jb25zdGFudF92YWx1ZSk6IEFsd2F5cyBqdXN0IHJldHVybiBkZWNsLiAgSW4gZmFjdAoJdGhpcyBmdW5jdGlvbiBpcyBub3QgdXNlZCBhdCBwcmVzZW50LCBidXQgaXQgbWlnaHQgYmUgaW4KCXRoZSBmdXR1cmUsIHdoZW4gd2Ugc3RhcnQgdXNpbmcgdGhlIHRyZWUgaW5saW5lci4KCShvdmVyZmxvd193YXJuaW5nLCBkZWZhdWx0X2NvbnZlcnNpb24sIGNfZXhwYW5kX2FzbV9vcGVyYW5kcyk6CglBYm9ydCB3aGVuIHRoZXNlIGFyZSBjYWxsZWQsIHRoZXkgYXJlIHBhcnQgb2YgdGhlIEMgdHlwZQoJY2hlY2tpbmcgaW1wbGVtZW50YXRpb24gYW5kIHRoZXJlZm9yZSBwb2lzb24gdG8gRm9ydHJhbi4KCjIwMDMtMDYtMDQgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoRjk1X0FERElUSU9OQUxfT0JKUyk6IERvbid0IGRlcGVuZCBvbgoJYy1wcmV0dHktcHJpbnQubyBhbmQgYy1kdW1wLm8uICBBZGQgYSBjb21tZW50IG9uIHdoeSB3ZQoJZGVwZW5kIG9uIGMtc2VtYW50aWNzLmMuCgkqIGY5NS1sYW5nLmMgKExBTkdfSE9PS1NfVFJFRV9EVU1QX0RVTVBfVFJFRV9GTik6CglEb24ndCB1c2UgdGhlIEMgZnJvbnQgZW5kIHRyZWUgZHVtcGVyIGhvb2sgdG8gZHVtcCB0aGUKCWxhbmd1YWdlIHNwZWNpZmljIHRyZWUgcmVwcmVzZW50YXRpb24gLS0gd2UgZG9uJ3QgaGF2ZQoJb25lLiAgU28gaW5zdGVhZCwgaW5oZXJpdCB0aGUgZGVmYXVsdCBsYW5naG9vay4KCjIwMDMtMDYtMDIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtZXhwci5jIChnOTVfY29udl92YXJpYWJsZSk6IFJlbW92ZSBpbmNvcnJlbnQgYXNzZXJ0aW9uLgoKMjAwMy0wNi0wMiAgQXJuYXVkIERlc2l0dGVyICA8YXJuYXVkLmRlc2l0dGVyQGdlb2dyYXBoeS5veGZvcmQuYWMudWs+CgoJKiBjaGVjay5jIChnOTVfY2hlY2tfYXNzb2NpYXRlZCk6IFVzZSBwcm9wZXIgdHlwZXMuICBSZW1vdmUKCWV4dHJhbmVvdXMgYXJndW1lbnQgaW4gY2FsbCB0byBnOTVfZXJyb3IoKS4KCjIwMDMtMDYtMDIgIEtlamlhIFpoYW8gIDxrZWppYV96aEB5YWhvby5jb20uY24+CgoJKiByZXNvbHZlLmMgKHJlc29sdmVfb3BlcmF0b3IpOiBNYWtlIGxvZ2ljYWwgb3BlcmFuZHMgY29udmVydCB0byB0aGUKCXR5cGUgd2l0aCBoaWdoZXIga2luZC4KCjIwMDMtMDYtMDIgIEtlamlhIFpoYW8gIDxrZWppYV96aEB5YWhvby5jb20uY24+CgoJKiBjaGVjay5jIChnOTVfY2hlY2tfYXNzb2NpYXRlZCk6IE1ha2Ugc3VyZSBib3RoIHBvaW50ZXIgYW5kIHRhcmdldCBoYXMKCXRoZSBzYW1lIHR5cGUgYW5kIHJhbmsuIE51bGwgcG9pbnRlciBvciBhcnJheSBzZWN0aW9uIHdpdGggdmVjdG9yCglzdWJzY3JpcHQgYXMgdGFyZ2V0IGFyZSBub3QgYWxsb3dlZC4KCSogdHJhbnMuaDogRGVjbGFyZSBnZm9yX2ZuZGVjbF9hc3NvY2lhdGVkLgoJKiB0cmFucy1kZWNsLmM6IChnOTVfYnVpbGRfYnVpbHRpbl9mdW5jdGlvbl9kZWNscyk6IEluaXRpYWxpemUKCWdmb3JfZm5kZWNsX2Fzc29jaWF0ZWQuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9hc3NvY2lhdGVkKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbik6IE1ha2UgRzk1X0lTWU1fQVNTT0NJQVRFRCB3b3JrLgoKMjAwMy0wNi0wMiAgS2VqaWEgWmhhbyAgPGtlamlhX3poQHlhaG9vLmNvbS5jbj4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9jb252X2V4cHJfZGVzY3JpcHRvcik6IFNldCB0aGUgYmFzZSBvZiBQT0lOVEVSCglhY2NvcmRpbmcgdG8gUE9JTlRFUiBpdHNlbGYgcmF0aGVyIHRoYW4gVEFSR0VULgoJKGc5NV9jb252X2V4cHJfZGVzY3JpcHRvcik6IE1ha2UgbGJvdW5kIHN0YXJ0IGF0IDEuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X3RyYW5zX3BvaW50ZXJfYXNzaWduKTogRml4IGEgYnVnIGZvciBOdWxsaWZ5LgoKMjAwMy0wNi0wMSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBleHByLmMgKGc5NV90eXBlX2NvbnZlcnRfYmluYXJ5KTogTWFrZSBpdCBtYXRjaCB0aGUgc3RhbmRhcmQuCgkqIGc5NS50ZXhpOiBSZW1vdmUgZGVhZCBsaW5rLgoKMjAwMy0wNi0wMSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogZzk1LnRleGk6IENsZWFudXAgc29tZXdoYXQgaW4gcHJlcGFyYXRpb24gZm9yIGluY2x1c2lvbgoJaW4gR0NDIENWUy4KCjIwMDMtMDUtMjMgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoJICAgIENhbnF1biBZYW5nICA8Y2FucXVuQHlhaG9vLmNvbS5jbj4KCgkqIHJlc29sdmUuYyAoY29tcGFyZV9ib3VuZF9pbnQsIHJlc29sdmVfd2hlcmVfc2hhcGUpOiBQcm9wZXIgcmV0dXJuCgl0eXBlLgoJKGc5NV9maW5kX2ZvcmFsbF9pbmRleCk6IFJldHVybiBwcm9wZXIgdmFsdWUuCgkoZzk1X3Jlc29sdmVfYXNzaWduX2luX2ZvcmFsbCwgZzk1X3Jlc29sdmVfZm9yYWxsKTogVXNlIHByb3BlciB0eXBlIHRvCgljb21wYXJlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBnOTVfZmluZF9mb3JhbGxfaW5kZXguCgoyMDAzLTA1LTIzICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCSogZzk1LmgsIGlvLmMgKGc5NV9zdF9sYWJlbCk6IFJlbW92ZSAibGVuZ3RoIi4KCShnOTVfc3ltdHJlZSk6IFJlbW92ZSAibGluayIuCgkoZzk1X2Nhc2UpOiBSZW1vdmUgImNvZGUiLgoJKiBhcml0aC5jLCBhcml0aC5oIChnOTVfY29tcGFyZV9zdHJpbmcsIGc5NV9jb252ZXJ0X2ludGVnZXIsCglnOTVfY29udmVydF9yZWFsKTogTWFrZSBhbiBhcmd1bWVudCBwb2ludGVyIHRvIGNvbnN0LgoJKiBkZWNsLmMgKGNvbG9uX3NlZW4pOiBBZGQgYSBUT0RPLgoJKiBpbnRlcmZhY2UuYyAoZzk1X2NvbXBhcmVfdHlwZXMpOiBGaXggdHlwby4KCSogaW50ZXJmYWNlLmMgKGNvbXBhcmVfaW50ZXJmYWNlcyk6IFByZXNlcnZlIHZhbHVlIG9mICJwIi4KCSogaW50cmluc2ljLmMgKHNvcnRfYWN0dWFsKTogUmVtb3ZlICJpIi4KCSogbWF0Y2guYyAoZzk1X21hdGNoX2Fzc2lnbik6IFByb3BlciB0eXBlIGluIGNhbGwgdG8gZzk1X21hdGNoKCkuCgkqIHBhcnNlLmMgKG5leHRfZnJlZSk6IEF2b2lkIGR1cGxpY2F0ZSBjYWxsIGR1ZSB0byBtYWNyby4KCSogcGFyc2UuYyAoY2hlY2tfc3RhdGVtZW50X2xhYmVsKTogd3JvbmcgdHlwZSBpbiBjYWxsIHRvIGc5NV9lcnJvci4KCSogcHJpbWFyeS5jIChtYXRjaF9yZWFsX2NvbnN0YW50KTogQWRkIGEgVE9ETy4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX3NlbGVjdCk6ICBSZW1vdmUgdXNlbGVzcyBjb25kaXRpb25hbC4KCSogc2ltcGxpZnkuYyAoZzk1X3NpbXBsaWZ5X3JlcGVhdCk6IFByb3BlciBhc3NpZ25tZW50IHRvCgkidmFsdWUuY2hhcmFjdGVyLnN0cmluZyIuCgkqIHNpbXBsaWZ5LmMgKGc5NV9zaW1wbGlmeV9yZXNoYXBlKTogV3JvbmcgdmFyaWFibGUgaW4gY2FsbCB0bwoJZzk1X2Vycm9yLgoKMjAwMy0wNS0yMCAgQ2FucXVuIFlhbmcgIDxjYW5xdW5AeWFob28uY29tLmNuPgoKCSogdHJhbnMtc3RtdC5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVkZSBmaWxlIGRlZmF1bHRzLmguCgoyMDAzLTA1LTE5ICBMaWZhbmcgWmVuZyAgPHpsZjYwNUBob3RtYWlsLmNvbT4KCgkqIHRyYW5zLXN0bXQuYyAoZzk1X3RyYW5zX2ZvcmFsbF9sb29wKTogSGFuZGxlIEZPUkFMTCB3aXRoIG5lZ2F0aXZlCglzdHJpZGUuCgkoZzk1X3RyYW5zX2ZvcmFsbCk6IEFsbG93IGFyYml0cmFyeSBudW1iZXIgb2YgRk9SQUxMIGluZGV4ZXMgYW5kCglhY3R1YWwgdmFyaWFibGVzIHVzZWQgYXMgRk9SQUxMIGluZGV4ZXMuCgoyMDAzLTA1LTE1ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV90cmFuc19zdGF0aWNfYXJyYXlfcG9pbnRlcik6IFVzZQoJbnVsbF9wb2ludGVyX25vZGUuCgkoZzk1X3RyYW5zX2RlZmVycmVkX2FycmF5KTogSW5pdGlhbGl6ZSBzdGF0aWMgYXJyYXkgcG9pbnRlcnMuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IFVzZSBmb3JtYWwgYXJnbGlzdCB0bwoJY29ycmVjdGx5IHBhc3MgUE9JTlRFUiBhbmQgYWJzZW50IENIQVJBQ1RFUiBhcmd1bWVudHMuCgoyMDAzLTA1LTE0ICBMaWZhbmcgWmVuZyAgPHpsZjYwNUBob3RtYWlsLmNvbT4KCgkqIHJlc29sdmUuYyAoZzk1X3Jlc29sdmVfZm9yYWxsKTogUmVzb2x2ZSBGT1JBTEwgY29uc3RydWN0L3N0YXRlbWVudC4KCShnOTVfcmVzb2x2ZV9mb3JhbGxfYm9keSk6IFJlc29sdmUgRk9SQUxMIGJvZHkuCgkoZzk1X3Jlc29sdmVfd2hlcmVfY29kZV9pbl9mb3JhbGwpOiBSZXNvbHZlIFdIRVJFIGluc2lkZSBGT1JBTEwuCgkoZzk1X3Jlc29sdmVfYXNzaWduX2luX2ZvcmFsbCk6IFJlc29sdmUgYXNzaWdubWVudCBpbnNpZGUgRk9SQUxMLgoJKGc5NV9maW5kX2ZvcmFsbF9pbmRleCk6IENoZWNrIHdoZXRoZXIgdGhlIEZPUkFMTCBpbmRleCBhcHBlYXJzIGluCgl0aGUgZXhwcmVzc2lvbiBvciBub3QuCgkocmVzb2x2ZV9jb2RlKTogTW9kaWZpZWQuCgoyMDAzLTA1LTE0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX3NwcmVhZCk6IENvbnZlcnQgbmNvcGllcyB0byBpbmRleF90eXBlLgoKMjAwMy0wNS0xMyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy10eXBlcy5jIChnOTVfbWF4X2FycmF5X2VsZW1lbnRfc2l6ZSk6IE5vdyBhIHRyZWUgbm9kZS4KCShnOTVfaW5pdF90eXBlcyk6IFdvcmsgb3V0IG1heCBzaXplIHByb3Blcmx5LgoJKGc5NV9nZXRfZHR5cGVfY3N0KTogTW9kaWZ5IHRvIG1hdGNoLgoKMjAwMy0wNS0xMSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1pby5jIChhZGRfY2FzZSk6IENyZWF0ZSBhIGxhYmVsIGRlY2wgZm9yIGNhc2UgbGFiZWxzLgoKMjAwMy0wNS0xMSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBhcml0aC5jIChnOTVfaW50ZWdlcl9pbmRleF9raW5kKTogTmV3IHZhcmlhYmxlLgoJKiBmOTUtbGFuZy5jIChnOTVfaW5pdCk6IE1vdmUgZnJvbnRlbmQgaW5pdGlhbGl6YXRpb24gaGVyZSAuLi4KCShnOTVfcG9zdF9vcHRpb25zKTogLi4uIGZyb20gaGVyZS4KCSogZzk1LmggKGc5NV9pbmRleF9pbnRlZ2VyX2tpbmQsIGc5NV9yZXNvbHZlX2luZGV4KTogRGVjbGFyZS4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBVc2UgaW5kZXgga2luZHMuCgkqIGlyZXNvbHZlLmM6IENvbnZlcnQgdG8gaW5kZXhfa2luZCB3aGVyZSBuZWVkZWQuCgkqIHJlc29sdmUuYyAoZzk1X3Jlc29sdmVfaW5kZXgpOiBNYWtlIHB1YmxpYywgdXNlIGluZGV4X2tpbmQuCgkocmVzb2x2ZV9hcnJheV9yZWYpOiBBZGp1c3QgdG8gbWF0Y2guCgkqIHRyYW5zLWFycmF5LmM6IFJlbmFtZSBnOTVfYXJyYXlfaW5kZXhfa2luZCB0byBnOTVfaW5kZXhfaW50ZWdlcl9raW5kLgoJKiB0cmFucy1zdG10LmM6IERpdHRvLgoJKiB0cmFucy10eXBlcy5jOiBEaXR0by4KCSogdHJhbnMtdHlwZXMuaCAoZzk1X2FycmF5X2luZGV4X2tpbmQpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZXhwcl9wcmVzZW50KTogVXNlIG51bGxfcG9pbnRlcl9ub2RlLgoKMjAwMy0wNS0wNyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1jb25zdC5jIChnOTVfY29udl9tcHpfdG9fdHJlZSk6IFR5cGVjYXN0IGNvbnN0YW50LgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZzk1X2NvbnZfaW50cmluc2ljX2JvdW5kKTogQ29udmVydCB0eXBlCglvZiBib3VuZCBpbmRpY2VzLgoKMjAwMy0wNS0wNyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jICh0cmFuc19zdGF0aWNfYXJyYXlfcG9pbnRlciwKCWc5NV90cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSwgZzk1X2NvbnZfYXJyYXlfaW5pdGlhbGl6ZXIsCglnOTVfY29udl9zdHJ1Y3R1cmUpOiBDT05TVFJVQ1RPUiBub2RlcyBvbmx5IGhhdmUgb25lIG9wZXJhbmQuCgkoZzk1X2FkZF9sb29wX3NzX2NvZGUpOiBDb252ZXJ0IHN1YnNjcmlwdHMgdG8gdGhlIGNvcnJlY3QgdHlwZS4KCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCk6IERpdHRvLgoJKiB0cmFucy10eXBlcy5jIChnOTVfaW5pdF90eXBlcyk6IERpdHRvLgoKMjAwMy0wNS0wNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogZjk1LWxhbmcuYyAoZXhwYW5kX2Z1bmN0aW9uX2JvZHkpOiBVc2UgaW5wdXRfbGluZSwgbm90IGxpbmVuby4KCSogdHJhbnMtZGVjbC5jIChnOTVfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSwKCWc5NV9nZW5lcmF0ZV9jb25zdHJ1Y3RvcnMpOiBMaWtld2lzZS4KCSogdHJhbnMuYyAoZzk1X3RyYW5zX3J1bnRpbWVfY2hlY2ssIGc5NV9hZGRfYmxvY2tfdG9fYmxvY2ssCglnOTVfZ2V0X2JhY2tlbmRfbG9jdXMsIGc5NV9zZXRfYmFja2VuZF9sb2N1cywgZzk1X3RyYW5zX2NvZGUpOgoJTGlrZXdpc2UuCgoyMDAzLTA1LTA3ICBLZWppYSBaaGFvICA8a2VqaWFfemhAeWFob28uY29tLmNuPgoJKiB0cmFucy10eXBlcy5jIChnOTVfZ2V0X2Rlcml2ZWRfdHlwZSk6IEZpeCBidWcgZm9yIERFUklWRUQgdHlwZQoJd2l0aCBjb21wb25lbnRzIHBvaW50IHRvIHRoZSBERVJJVkVEIHR5cGUgaXRzZWxmLCBhbmQgdHdvIERFUklWRUQKCXR5cGUgd2l0aCBjb21wb25lbnRzIHBvaW50IHRvIGVhY2ggb3RoZXIuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfY29tcG9uZXRfcmVmKTogTW9kaWZpZWQKCjIwMDMtMDUtMDcgIEtlamlhIFpoYW8gIDxrZWppYV96aEB5YWhvby5jb20uY24+CgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZXhwcik6IFRyYW5zbGF0ZSBFWFBSX05VTEwgaW50bwoJbnVsbF9wb2ludGVyX25vZGUuCgkoZzk1X3RyYW5zX3BvaW50ZXJfYXNzaWduKTogSW1wbGVtZW50IE51bGxpZnkuCgoyMDAzLTA1LTAxICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV93YWxrX2Z1bmN0aW9uX2V4cHIpOiBDb3BlIHdpdGggTlVMTCBlc3ltLgoJKiB0cmFucy1kZWNsLmMgKGc5NV9nZXRfc3ltYm9sX2RlY2wpOiBEb24ndCBtYW5nbGUgZHVtbXkgZnVuY3Rpb25zLgoKMjAwMy0wNS0wMSAgUGF1bCBCcm9vayAgPHBhdWxAbm93ci5vcmc+CgoJKiB0cmFucy1hcnJheS5jLCB0cmFucy5jLCB0cmFucy1leHByLmMsIHRyYW5zLWludHJpbnNpYy5jLAoJdHJhbnMtc3RtdC5jOiBSZXBsYWNlIGVtcHR5X3N0bXRfbm9kZSB3aXRoIGJ1aWxkX2VtcHR5X3N0bXQgKCkgYW5kCglJU19FTVBUWV9TVE1ULgoKMjAwMy0wNS0wMSAgQ2FucXVuIFlhbmcgIDxjYW5xdW5AeWFob28uY29tLmNuPgoKCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfaW50ZWdlcl9zZWxlY3QpOiBBZGQgYSBwYXJhbWV0ZXIgdG8gYnVpbGQKCUNBU0VfTEFCRUxfRVhQUi4KCjIwMDMtMDQtMjggIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaXJlc29sdmUuYyAoZzk1X3Jlc29sdmVfdHJhbnNwb3NlKTogQ09NUExFWCB0eXBlcyBhcmUgdHdpY2UgYXMgYmlnCglhcyB0aGVpciBraW5kIHN1Z2dlc3RzLgoJKGc5NV9yZXNvbHZlX3Jlc2hhcGUpOiBEaXR0by4KCjIwMDMtMDQtMjggIENodW4gSHVhbmcgIDxjb21waWxlckBzb2h1LmNvbT4KCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfc3Vic3RyaW5nX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfZXhwcik6IFVzZSBpdC4KCjIwMDMtMDQtMjggIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaXJlc29sdmUuYyAoZzk1X3Jlc29sdmVfdHJhbnNwb3NlKTogTWFrZSBpdCBtYXRjaCB0aGUKCWltcGxlbWVudGF0aW9uLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZzk1X2lzX2ludHJpbnNpY19saWJjYWxsKTogQWRkIFRSQU5TUE9TRS4KCjIwMDMtMDQtMTggIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIHRyYW5zLXR5cGVzLmMgKGc5NV9hZGRfZmllbGRfdG9fc3RydWN0KTogTmV3IGZ1bmN0aW9uIHRvCglhZGQgYSBmaWVsZCB0byBhIFVOSU9OX1RZUEUgb3IgUkVDT1JEX1RZUEUuCgkqIHRyYW5zLXR5cGVzLmggKGc5NV9hZGRfZmllbGRfdG9fc3RydWN0KTogUHJvdG90eXBlLgoJKGc5NV9nZXRfZGVyaXZlZF90eXBlKTogVXNlIGc5NV9hZGRfZmllbGRfdG9fc3RydWN0IHRvIGFkZAoJY29tcG9uZW50cy4KCSogdHJhbnMtaW8uYyAoZzk1X2FkZF9maWVsZCk6IFJlbW92ZS4KCShBRERfRklFTEQpOiBVc2UgbmV3IGc5NV9hZGRfZmllbGRfdG9fc3RydWN0IGZ1bmN0aW9uLgoJKEFERF9TVFJJTkcpOiBMaWtld2lzZS4KCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfc2VsZWN0KTogTGlrZXdpc2UuCgkoZzk1X2FkZF9maWVsZCk6IFJlbW92ZSBkdXBsaWNhdGVkIGZ1bmN0aW9uLgoKMjAwMy0wNC0xOCAgQ2FucXVuIFlhbmcgIDxjYW5xdW5AeWFob28uY29tLmNuPgoKCVBvcnQgaW1wbGVtZW50YXRpb24gZm9yIENIQVJBQ1RFUiBTRUxFQ1QgZnJvbSBBbmR5J3MgdHJlZS4KCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCk6IEltcGxlbWVudCBjaGFyYWN0ZXIKCXNlbGVjdC4gKGc5NV9hZGRfZmllbGQpOiBOZXcgZnVuY3Rpb24uCgkqIHRyYW5zLWRlY2wuYzogRGVjbGFyZSAnZ2Zvcl9nbmRlY2xfc2VsZWN0X3N0cmluZycuCgkoZzk1X2J1aWxkX2J1aWx0aW5fZnVuY3Rpb25fZGVjbHMpOiBBZGQgJ2dmb3JfZm5kZWNsX3NlbGVjdF9zdHJpbmcnLgoJKiBnOTUuaCAoc3RydWN0IGc5NV9jYXNlKTogQWRkIGZpZWxkICdpbnQgbicuCgkqIHRyYW5zLmg6IERlY2xhcmUgJ2dmb3JfZm5kZWNsX3NlbGVjdF9zdHJpbmcnLgoKMjAwMy0wNC0xOCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCSogYmJ0LmMgKGR1cGxpY2F0ZV9rZXksIGc5NV9pbnNlcnRfYmJ0X3dpdGhfb3ZlcmxhcCk6IFJlbW92ZS4KCShnOTVfaW5zZXJ0X2JiZCk6IERpZSBvbiBkdXBsaWNhdGVzLgoJKiBnOTUuaCAoZzk1X2luc2VydF9iYnRfd2l0aF9vdmVybGFwKTogRGVsZXRlIHByb3RvdHlwZS4KCjIwMDMtMDQtMTQgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIGc5NS50ZXhpOiBSZXF1aXJlIEdNUCA0LjAgLS0gbGlrZSB3ZSBhY3R1YWxseQoJZG8uICBFeHBsYWluIHRoZSB0ZXN0c3VpdGUgYW5kIHdoYXQtZ29lcy13aGVyZS4KCURvbid0IHVzZSB1bmRlZmluZWQgdGV4aW5mbyBzeW1ib2wuICBCcmVhayB2ZXJ5Cglsb25nIGxpbmUuICBSZW1vdmUgZmluaXNoZWQgaXRlbSBmcm9tIHRoZSBsaXN0CglvZiBvcGVuIHByb2plY3RzLgoKMjAwMy0wNC0xMSAgQ2FucXVuIFlhbmcgIDxjYW5xdW5AeWFob28uY29tLmNuPgoKCSogdHJhbnMtc3RtdC5jIChnOTVfZXZhbHVhdGVfd2hlcmVfbWFzayk6IEdpdmUgbWFzayB0ZW1wb3JhcmllcwoJTE9HSUNBTCB0eXBlLgoKMjAwMy0wNC0xMCAgQ2FucXVuIFlhbmcgIDxjYW5xdW5AeWFob28uY29tLmNuPgoKCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfZm9yYWxsKTogSW1wbGVtZW50IFdIRVJFIGluc2lkZSBGT1JBTEwuCgkoZzk1X3RyYW5zX2ZvcmFsbF9ib2R5KTogTmV3IGZ1bmN0aW9uLgoKMjAwMy0wNC0xMCAgQ2FucXVuIFlhbmcgIDxjYW5xdW5AeWFob28uY29tLmNuPgoKCSogcmVzb2x2ZS5jIChyZXNvdmVfd2hlcmUpOiBOZXcgZnVuY3Rpb24uCgkocmVzb2x2ZV93aGVyZV9zaGFwZSk6IE5ldyBmdW5jdGlvbi4KCShyZXNvbHZlX2NvZGUpOiBBZGQgY2FsbCB0byAncmVzb2x2ZV93aGVyZScKCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfd2hlcmUpOiBNb2RpZmllZC4KCShnOTVfdHJhbnNfd2hlcmVfMik6IE5ldyBmdW5jdGlvbi4KCShnOTVfdHJhbnNfd2hlcmVfYXNzaWduKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9ldmFsdWF0ZV93aGVyZV9tYXNrKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9hZGRfdG9fc3RtdF9saXN0KTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9nZXRfdGVtcF9leHByKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmFucy5oICh3aGVyZV9zdG10X2xpc3QpOiBOZXcgc3RydWN0dXJlLgoKMjAwMy0wNC0xMCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBnOTVzcGVjLmMgKERFRkFVTFRfU1dJVENIX1RBS0VTX0FSRyk6IFJlbW92ZS4KCShERUZBVUxUX1dPUkRfU1dJVENIX1RBS0VTX0FSRyk6IERpdHRvLgoKMjAwMy0wNC0xMCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCVVwZGF0ZSBhZnRlciBtYWlubGluZSAtPiB0cmVlLXNzYS1icmFuY2ggbWVyZ2UuCgkqIGY5NS1sYW5nLmMgKGc5NV9tYXJrX2FkZHJlc3NhYmxlKTogVXBkYXRlIHB1dF92YXJfaW50b19zdGFjawoJY2FsbC4KCShnOTVfaW5pdCk6IFVwZGF0ZSBmb3IgbmV3IGxhbmdfaG9va3MgZGVmaW5pdGlvbi4KCShnOTVfcG9zdF9vcHRpb25zKTogTmV3IGxhbmdob29rLgoJKExBTkdfSE9PS19QT1NUX09QVElPTlMpOiBDbGVhciwgdGhlbiBkZWZpbmUgdG8gZzk1X3Bvc3Rfb3B0aW9ucy4KCSogc2Nhbm5lci5jIChnOTVfbmV3X2ZpbGUpOiBDb21tZW50IHVwZGF0ZS4KCjIwMDMtMDQtMDkgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogZzk1LmgsIGxhbmctb3B0aW9ucy5oOiBBZGQgLVdpbXBsaWNpdC1pbnRlcmZhY2UuCgkqIG9wdGlvbnMuYyAoZzk1X2luaXRfb3B0aW9ucywgZzk1X3BhcnNlX2FyZyk6IFNldCBpdC4KCSogaW50ZXJmYWNlLmMgKGNoZWNrX2ludGVudHMpOiBXYXJuIGFib3V0IGNhbGwgd2l0aCBpbXBsaWNpdAoJaW50ZXJmYWNlLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfdW5rbm93bl9mLCByZXNvbHZlX3Vua25vd25fcyk6IENhbGwKCWc5NV9wcm9jZWR1cmVfdXNlLgoKMjAwMy0wNC0wNSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBpcmVzb2x2ZS5jIChnOTVfcmVzb2x2ZV9zcHJlYWQpOiBEb24ndCByZXNvbGUgYmFzZWQgb24gdHlwZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9pc19pbnRyaW5zaWNfbGliY2FsbCk6IEFkZCBHOTVfSVNZTV9TUFJFQUQuCgoyMDAzLTAzLTI5ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX3BhY2spOiBEb24ndCBib3RoZXIgcmVzb2x2aW5nIGJhc2VkIG9uIHR5cGUuCgkoZzk1X3Jlc29sdmVfdW5wYWNrKTogRGl0dG8uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfbWVyZ2UpOiBOZXcgRnVuY3Rpb24uCgkoZzk1X2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIGl0LiAgUmVtb3ZlIFBBQ0sgYW5kIFVOUEFDSy4KCShnOTVfaXNfaW50cmluc2ljX2xpYmNhbGwpOiBBZGQgUEFDSyBhbmQgVU5QQUNLLgoKMjAwMy0wMy0yNSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBhcml0aC5jIChnOTVfdW5hcnlfdXNlciwgZzk1X3VzZXIpOiBSZW1vdmUgZGVhZCBmdW5jdGlvbnMuCgkqIGFyaXRoLmg6IERpdHRvLgoJKiBhcnJheS5jIChnOTVfZnJlZV9hcnJheV9yZWYpOiBEaXR0by4KCSogZzk1Lmg6IERpdHRvLgoJKiBzeW1ib2wuYyAoZzk1X3VzZV9kZXJpdmVkX3RyZWUpOiBEaXR0by4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBVc2Ugc2ltcGxpZmljYXRpb24gZm9yIFNDQUxFLgoJKiBwcmltYXJ5LmMgKGc5NV9tYXRjaF9ydmFsdWUpOiBUZXN0IHN5bSwgbm90IHN5bXRyZWUuCgoyMDAzLTAzLTI1ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWRlY2wuYyAoYnVpbGRfZnVuY3Rpb25fZGVjbCk6IEFkZCBwYXJhbWV0ZXIgYmVmb3JlIGl0IGdldHMKCXR1cm5lZCBpbnRvIGEgY29uc3RhbnQuCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX2Vvc2hpZnQpOiBSZXNvbHZlIHRvIGEgdXNlZnVsIG5hbWUuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfaXNfaW50cmluc2ljX2xpYmNhbGwpOiBBZGQgRzk1X0lTWU1fRU9TSElGVC4KCSogdHJhbnMtZGVjbC5jIChnOTVfY3JlYXRlX21vZHVsZV92YXJpYWJsZSk6IERvbid0IHB1c2hkZWNsIGNvbnN0YW50cy4KCjIwMDMtMDMtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZzk1X2NvbnZfYXJyYXlfaW5pdGlhbGl6ZXIpOiBBbGxvdyBzY2FsYXIKCWV4cHJlc3Npb25zLgoJKiB0cmFucy1kZWNsLmMgKGc5NV9maW5pc2hfdmFyX2RlY2wpOiBSZXN1bHQgdmFyaWFibGVzIGFyZSBub3QKCW1vZHVsZSB2YXJpYWJsZXMuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfdHJhbnNmZXIpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIGl0LgoJKiB0cmFucy10eXBlcy5oIChnOTVfdHlwZV9zcGVjKTogUmVtb3ZlIGRlYWQgZGVjbGFyYXRpb24uCgoyMDAzLTAzLTIxICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBNYXJrIHN0cmluZyBwYXJhbWV0ZXJzLgoKMjAwMy0wMy0yMCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1kZWNsLmMgKGc5NV9idWlsZF9mdW5jdGlvbl9kZWNsKTogUHV0IGNoYXJhY3RlciBsZW5ndGgKCXBhcmFtZXRlcnMgYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IERpdHRvLgoJKiB0cmFucy10eXBlcy5jIChnOTVfZ2V0X2Z1bmN0aW9uX3R5cGUpOiBEaXR0by4KCjIwMDMtMDMtMjAgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogcmVzb2x2ZS5jIChyZXNvbHZlX2Zvcm1hbF9hcmdsaXN0KTogRG9uJ3QgaW1wb3NlIGludGVudCBmb3IKCXByb2NlZHVyZSBhcmd1bWVudHMgb2YgcHVyZSBmdW5jdGlvbnMuCgkocmVzb2x2ZV9zZWxlY3QpOiBSZW1vdmUgcmVkdW5kYW50IGFzc2lnbm1lbnQuCgoyMDAzLTAzLTE5ICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCgkqIGFyaXRoLmMgKHZhbGlkYXRlX2xvZ2ljYWwpLCBnOTUuaCwgb3B0aW9ucy5jIChnOTVfaW5pdF9vcHRpb25zKToKCVJlbW92ZSBvcHRpb24gbDEuCgkqIGc5NS5oLCBpbnRyaW5zaWMuYyhnOTVfZ2V0X2ludHJpbnNpY19zdWJfc3ltYm9sKTogQWRkIGNvbnN0LgoJKiBpcmVzb2x2ZS5jKGc5NV9yZXNvbHZlX2NwdV90aW1lLCBnOTVfcmVzb2x2ZV9yYW5kb21fbnVtYmVyKTogQWRkCgljb25zdC4KCSogbGFuZy1vcHRpb25zLmg6IFJlbW92ZSAtZmlubGluZS1yZXBhY2stYXJyYXlzLiBBZGQgLWZnNzctY2FsbHMuCglPcmRlciBsaXN0LgoJKiBzeW1ib2wuYyAoZzk1X2FkZF90eXBlKTogRml4IHR5cG8gaW4gY29tbWVudC4KCgoyMDAzLTAzLTE2ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnOTVfc2hvd19jb2RlX25vZGUpOiBQcmludCByZXNvbHZlZCBzeW0gbmFtZS4KCSogZXhwci5jIChnOTVfYnVpbGRfY2FsbCk6IFJlbW92ZS4KCSogZjk1LWxhbmcuYyAocHVjaGRlY2xfdG9wX2xldmVsKTogTmV3IGZ1bmN0aW9uLgoJKiBnOTUuaCAoZzk1X2NvZGUpOiBTdG9yZSByZXNvbHZlZCBzeW1ib2wsIG5vdCBqdXN0IHRoZSBuYW1lLgoJKiBpbnRyaW5zaWMuYyAoZzk1X2ludHJpbnNpY19uYW1lc3BhY2UpOiBOZXcgZ2xvYmFsIG5hbWVzcGFjZS4KCShnOTVfaW50aXJpbnNpY19pbml0XzEsIGc5NV9pbnRyaW5zaWNfZG9uZV8xKTogVXNlIGl0LgoJKGc5NV9nZXRfaW50cmluc2ljX3N1Yl9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX2NwdV90aW1lKTogVXNlIGl0LgoJKGc5NV9yZXNvbHZlX3JhbmRvbV9udW1iZXIpOiBEaXR0by4KCSogcmVzb2x2ZS5jOiBTZXQgY29kZS0+cmVzb2x2ZWRfc3ltIGluc3RlYWQgb2YgY29kZS0+c3ViX25hbWUuCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2dldF9leHRlcm5fZnVuY3Rpb25fZGVjbCk6IEdpdmUgZXh0ZXJuYWwgZGVjbHMKCXRoZSBjb3JyZWN0IERFQ0xfQ09OVEVYVC4gIEFkZCBnbG9iYWwgc3ltYm9sZCB0byB0aGUgZ2xvYmFsIHNjb3BlLgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19jb2RlKTogUmVtb3ZlIGhhY2tzIG5vdyB0aGUgZnJvbnRlZCBpcwoJZml4ZWQuCgoyMDAzLTAzLTE2ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGc5NS5oIChnOTVfb3B0aW9uX3QpOiBBZGQgZzc3X2NhbGxzLiBSZW1vdmUgaW5saW5lX3JlcGFja19hcnJheXMuCgkqIG9wdGlvbnMuYyAoZzk1X3BhcnNlX2FyZyk6IERpdHRvLgoJKiBtb2R1bGUuYyAobWlvX3N5bWJvbF9hdHRyaWJ1dGUpOiBIYW5kbGUgdGhlIGFsd2F5c19leHBsaWNpdCBiaXQuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9mb3JtYWxfYXJnbGlzdCk6IFRoZSBhbHdheXNfZXhwbGljaXQgc291bGQgYmUgc2V0Cglmb3IgdGhlIHByb2NlZHVyZSwgbm90IHRoZSBwYXJhbWV0ZXIuCgkqIHRyYW5zLWFycmF5LmMgKGc5NV90cmFuc19nNzdfYXJyYXkpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X3RyYW5zX2Fzc3VtZWRfc2l6ZSk6IFVzZSBpdC4KCShnOTVfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcyk6IERpdHRvLgoJKGc5NV9jb252X2FycmF5X3BhcmFtZXRlcik6IEhhbmRsZSBnNzcgYXJyYXlzLiBNb3ZlIGV4aXN0aW5nIGJvZHkgLi4uCgkoZzk1X2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogLi4uIHRvIGhlcmUuICBVcGRhdGUgY2FsbGVycy4KCSogdHJhbnMtZGVjbC5jIChnOTVfYnVpbGRfZHVtbXlfYXJyYXlfZGVjbCk6IEhhbmRsZSBnNzcgYXJyYXlzLgoJKGc5NV9nZXRfc3ltYm9sX2RlY2wpOiBBdm9pZCBwcm9jZXNzaW5nIGc3NyBhcnJheXMgbXVsdGlwbGUgdGltZXMuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IEhhbmRsZSBnNzcgYXJyYXlzLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZzk1X2dldF9zeW1ib2xfZm9yX2V4cHIpOiBOZXZlciB1c2UgZzc3IGFycmF5cy4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X2lzX25vZGVzY19hcnJheSk6IEhhbmRsZSBnNzcgYXJyYXlzLgoJKGc5NV9zeW1fdHlwZSk6IERpdHRvLgoKMjAwMy0wMy0xNSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfd2Fsa19lbGVtZW50YWxfZnVuY3Rpb25fYXJncyk6IERvbid0IGFtcHV0YXRlIHRoZQoJZmlyc3QgY2hhaW4uCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IFVzZSB0aGUgcmVzb2x2ZWQgc3ltYm9sLgoKMjAwMy0wMy0xNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfYXJyYXlfaXNfcGFja2VkKTogUmVtb3ZlLgoJKGc5NV9jb252X2FycmF5X2Jhc2UpOiBDb3JyZWN0bHkgaGFuZGxlIGFsbCBkZXNjcmlwdG9ybGVzcyBjYXNlcy4KCShnOTVfY29udl9hcnJheV9zdHJpZGUpOiBVc2UgZGVzY3JpcHRvcmxlc3Mgc3RyaWRlcy4KCShnOTVfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcyk6IERvbid0IGFsd2F5cyByZXBhY2sgdGhlIGFycmF5LgoJKGc5NV9idWlsZF9kdW1teV9hcnJheV9kZWNsKTogQXV0b21hdGljIGR1bW15IGFycmF5cyBhcmUgb25seSBwYXJ0aWFsCglwYWNrZWQuCgkqIHRyYW5zLXR5cGVzLmMgKGc5NV9nZXRfbm9kZXNjX2FycmF5X3R5cGUpOiBEaWZmZXJlbnRpYXRlIGJldHdlZW4KCWR1bW15IGFuZCBub24tZHVtbXkgYXJyYXlzLi4uCgkoZzk1X3N5bV90eXBlLCBnOTVfZ2V0X2Rlcml2ZWRfdHlwZSk6IC4uLiBsaWtlIHRoZXNlLgoJKGc5NV9nZXRfYXJyYXlfdHlwZV9ib3VuZHMpOiBBbGxvdyBkaXNjb250aWd1b3VzIGFycmF5cy4KCjIwMDMtMDMtMTIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogYXJyYXkuYyAoZzk1X3Jlc29sdmVfYXJyYXlfc3BlYyk6IEZpeCBjb21tZW50LgoJKiBnOTUuaCAoc3ltYm9sX2F0dHJpYnV0ZXMpOiBOZXcgZmxhZyBhbHdheXNfZXhwbGljaXQuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9mb3JtYWxfYXJnbGlzdCk6IFNldCBpdCBhbHdheXNfZXhwbGljaXQuCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX2xib3VuZCwgZzk1X3Jlc29sdmVfdWJvdW5kKTogU2ltcGxpZnkuCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9jb252X2Rlc2NyaXB0b3JfZGltZW5zaW9uKTogUmVtb3ZlIGRlYWQgYXNzZXJ0LgoJKGc5NV90cmFuc19hcnJheV9ib3VuZHMpOiBBbGxvdyBhc3N1bWVkIHNoYXBlIGFycmF5cy4KCShnOTVfdHJhbnNfcmVwYWNrX2FycmF5KTogUmVtb3ZlLgoJKGc5NV90cmFuc19kdW1teV9hcnJheV9iaWFzKTogUmV3aXRlIHRvIHVzZSBkZXNjcmlwdG9ybGVzcyBhcnJheXMuCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2J1aWxkX3F1YWxpZmllZF9hcnJheSk6IE9ubHkgaWdub3JlIGFic2VudAoJYm91bmRzIGZvciBhc3N1bWVkIHNpemUgYXJyYXlzLgoJKGc5NV9idWlsZF9kdW1teV9hcnJheV9kZWNsKTogVXNlIGRlc2NyaXB0b3JsZXNzIGFycmF5cy4KCSogdHJhbnMtZXhwci5jIChnOTVfY29udl9leHByX3ByZXNlbnQpOiBBbGxvdyBkZXNjcmlwdG9ybGVzcyBhcnJheXMuCgkoZzk1X3RyYW5zX3BvaW50ZXJfYXNzaWduKTogRml4IHR5cG8uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfZnVuY3Rpb25fYXJncyk6IFJlbW92ZSBkZWFkCgljb2RlLgoJKGc5NV9jb252X2ludHJpbnNpY19ib3VuZCk6IFJld3JpdGUgdG8gaGFuZGxlIGRlc2NyaXB0b3JsZXNzIGFycmF5cy4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IEFsbG93IG5vbi1wYWNrZWQgYXJyYXlzLgoJQWxzbyBtb2RpZnkgY2FsbGVycy4KCSogdHJhbnMtdHlwZXMuaCAoZzk1X2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IE1vZGlmeSBwcm90b3R5cGUuCgoyMDAzLTAzLTA4ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV93YWxrX2VsZW1lbnRhbF9mdW5jdGlvbnMpOiBEb24ndCByZXZlcnNlIHRoZSBTUy4KCShnOTVfY29udl9hcnJheV91Ym91bmQpOiBQcm92aWRlIGR1bW15IHZhbHVlIGZvciBhc3N1bWVkIHNpemUgYXJyYXlzLgoJKiByZXNvbHZlLmMgKGNvbXBhcmVfc3BlY190b19yZWYpOiBBbGxvdyBmdWxsIGFycmF5IHNlY3Rpb25zLgoKMjAwMy0wMy0wOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBleHByLmMgKGc5NV9zaW1wbGlmeV9leHByKTogQWxzbyBzaW1wbGlmeSBhcnJheSBpbmRleCBhbmQKCXN1YnN0cmluZyBleHByZXNzaW9ucy4KCSogcmVzb2x2ZS5jIChjb21wYXJlX3NwZWNfdG9fcmVmKTogQ2hlY2sgZm9yIGFzc3VtZWQgc2l6ZSBib3VuZHMuCgkqIHRyYW5zLWFycmF5LmMgKGc5NV90cmFuc19hcnJheV9ib3VuZHMpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbik6IFVzZSBpdC4KCShnOTVfdHJhbnNfYXNzdW1lZF9zaXplKTogUmV3cml0ZS4KCSogdHJhbnMtZGVjbC5jIChnZm9yX2ZuZGVjbF9pbl9wYWNrLCBnZm9yX2ZuZGVjbF9pbl91bnBhY2spOiBEZWNsYXJlLgoJKGdmb3JfZm5kZWNsX3JlcGFjayk6IFJlbW92ZS4KCShnOTVfYnVpbGRfcXVhbGlmaWVkX2FycmF5KTogSGFuZGxlIGFic2VudCB1cHBlciBib3VuZHMuCgkoZzk1X2J1aWxkX2R1bW15X2FycmF5X2RlY2wpOiBBc3N1bWVkIHNoYXBlIGFycmF5cyBhcmUgZGVzY3JpcHRvcmxlc3MuCgkoZzk1X2dldF9zeW1ib2xfZGVjbCk6IFVwZGF0ZS4KCShnOTVfYnVpbGRfaW50cmluc2ljX2Z1bmN0aW9uX2RlY2xzKTogSW5pdGlhbGl6ZSBuZXcgZGVjbHMuCgkqIHRyYW5zLmggKGdmb3JfZm5kZWNsX2luX3BhY2ssIGdmb3JfZm5kZWNsX2luX3VucGFjayk6IERlY2xhcmUuCgkoZ2Zvcl9mbmRlY2xfcmVwYWNrKTogUmVtb3ZlLgoJKiB0cmFucy1pby5jIChnOTVfYnVpbGRfaW9fbGlicmFyeV9mbmRlY2xzKTogQ29ycmVjdCBwcm90b3R5cGVzLgoJKiB0cmFucy10eXBlcy5jOiAoZzk1X2J1aWxkX2FycmF5X3R5cGUpOiBNZXJnZSBkdXBsaWNhdGVkIGNvZGUuLgoJKGc5NV9nZXRfbm9kZXNjX2FycmF5X3R5cGUpOiBIYW5kbGUgYWJzZW50IGJvdW5kcy4KCSogdHJhbnMtdHlwZXMuaCAoZzk1X2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IERlY2xhcmUuCgoyMDAzLTAzLTA0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGY5NS1sYW5nLmMgKERFRl9GVU5DVElPTl9UWVBFX1ZBUl8zKTogRGVmaW5lIGJlZm9yZSBpbmNsdWRpbmcKCWJ1aWx0aW4tdHlwZXMuZGVmLgoKMjAwMy0wMy0wMiAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBvcHRpb25zLmMgKGc5NV9pbml0X29wdGlvbnMpOiBEcmZhdWx0IHRvIDEuCgkoZzk1X3Bhc3JzZV9hcmcpOiBBZGQgLWZyZXBhY2stYXJyYXlzLCB1c2Ugc3RyY21wLgoJKiB0cmFucy1hcnJheS5jIChnOTVfY29udl9hcnJheV9kYXRhLCBnOTVfY29udl9hcnJheV9iYXNlLAoJZzk1X2NvbnZfYXJyYXlfc3RyaWRlLGc5NV9jb252X2FycmF5X2xib3VuZCwgZzk1X2NvbnZfYXJyYXlfdWJvdW5kKToKCUhhbmRsZSBub24tY29uc3RhbnQgc2l6ZSBhdXRvbWF0aWMgYXJyYXlzLgoJKGc5NV9jb252X3NlY3Rpb25fdXBwZXJfYm91bmQsIGc5NV9jb252X3NlY3Rpb25fc3RhcnRzdHJpZGUpOiBVc2UKCWdlbmVyaWMgYm91bmQgZnVuY3Rpb25zLgoJKGc5NV90cmFuc19hdXRvX2FycmF5X2FsbG9jYXRpb24pOiBEb24ndCBjcmVhdGUgYSBkZXNjcmlwdG9yLgoJKGc5NV90cmFuc19hc3N1bWVkX3NpemUpOiBOZXcgZnVuY3Rpb24gKGJyb2tlbikuCgkoZzk1X3RyYW5zX2R1bW15X2FycmF5X2JpYXMpOiBSZW1vdmUgdW51c2VkIHZhci4KCSogdHJhbnMtYXJyYXkuaCAoZzk1X3RyYW5zX2Fzc3VtZWRfc2l6ZSk6IERlY2xhcmUuCgkqIHRyYW5zLWRlY2wuYyAoY3JlYXRlX2luZGV4X3Zhcik6IE5ldyBmdWN0aW9uLgoJKGc5NV9idWlsZF9xdWFsaWZpZWRfYXJyYXkpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2dldF9zeW1ib2xfZGVjbCk6IFVzZSBpdC4KCShnOTVfdHJhbnNfZGVmZXJyZWRfdmFycyk6IEhhbmRsZSBhc3N1bWVkIHNoYXBlIHNlcGVyYXRlbHkuCgkqIHRyYW5zLXR5cGVzLmMgKGdldF9lbGVtZW50X3R5cGUpOiBIYW5kbGUgaGVhcCBhbGxvY2F0ZWQgYXJyYXlzLgoJKGc5NV9pc19ub2Rlc2NfYXJyYXkpOiBJbmNsdWRlIG5vbi1jb25zdCBzaXplIGFycmF5cy4KCShnOTVfZ2V0X25vZGVzY19hcnJheV90eXBlKTogRGl0dG8uCgoyMDAzLTAyLTIzICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9hcnJheV9pbml0X3NpemUpOiBTaG91bGQgdXNlIHN0cmlkZSwgbm90IHNpemUgb2YKCWxhc3QgZGltZW5zaW9uLgoKMjAwMy0wMi0xOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1leHByLmMgKGc5NV90cmFuc19hcnJheWZ1bmNfYXNzaWduKTogTm92ZSBlbGVtZW50YWwgY2hlY2sKCWFmdGVyIGludHJpbnNpYyBmdW5jdGlvbiBjaGVjay4KCjIwMDMtMDItMTggIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogaW8uYyAobWF0Y2hfaW8pOiBGaXggbWlzc2luZyByZXR1cm4gdmFsdWUgYW5kIHJlbW92ZSB1c2VsZXNzCglhc3NpZ25tZW50LgoJKiBtYXRjaC5jIChnOTVfbWF0Y2gpOiBSZW1vdmUgdXNlbGVzcyBhc3NpZ25tZW50LgoJKiBtb2R1bGUuYyAocGFyc2Vfc3RyaW5nKTogIFJlbW92ZSB1c2VsZXNzIHBvc3QgaW5jcmVtZW50LgoJKiBzaW1wbGlmeS5jIChnOTVfc2ltcGxpZnlfdmVyaWZ5KTogUmVtb3ZlIHVzZWxlc3MgYXNzaWdubWVudC4KCjIwMDMtMDItMTUgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogZXhwci5jIChyZXN0cmljdGVkX2ludHJpbnNpYyk6IEhhbmRsZSBiYWQgdmFsdWVzIGdyYWNlZnVsbHkuCgkqIGc5NS5oIChzeW1ib2xfYXR0cmlidXRlKTogQWRkIHJlZmVyZW5jZWQgbWVtYmVyLgoJKGc5NV9zeW1ib2wpOiBBZGQgZHVtbXlfb3JkZXIgbWVtYmVyLgoJKGc5NV9zZXRfc3ltX3JlZmVyZW5jZWQpOiBEZWNsYXJlLgoJKiBtYXRjaC5jIChnOTVfbWF0Y2hfYXNzaWdubWVudCwgZzk1X21hdGNoX2NhbGwpOiBVc2UgaXQKCSogcHJpbWFyeS5jIChtYXRjaF9hY3R1YWxfYXJnLCBnOTVfbWF0Y2hfcnZhbHVlLAoJZzk1X21hdGNoX3ZhcmlhYmxlKTogRGl0dG8uCgkqIHN5bWJvbC5jIChuZXh0X2R1bW15X29yZGVyKTogTmV3IHZhcmlhYmxlLgoJKGc5NV9zZXRfc3ltX3JlZmVyZW5jZWQpOiBOZXcgZnVuY3Rpb24uCgkoY2hlY2tfZG9uZSk6IE5ldyBmdW5jdGlvbi4KCShnOTVfYWRkXyopOiBVc2UgaXQuCgkqIHRyYW5zLWRlY2wuYzogTWFrZSBmb3JtYXR0aW5nIGNvbmZvcm0gdG8gR0NDIHN0YW5kYXJkcy4KCShnOTVfZGVmZXJfc3ltYm9sX2luaXQpOiBBZGQgZHVtbXkgdmFyaWFibGVzIGluIHRoZSByaWdodCBvcmRlci4KCShnOTVfZ2V0X3N5bWJvbF9kZWNsKTogT25seSBhY2NlcHQgcmVmZXJlbmNlZCB2YXJpYWJsZXMuCgkoZzk1X2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBNb2R1bGUgdmFyaWFibGVzIGFyZSBhbHdheXMgcmVxdWlyZWQuCgkoZ2VuZXJhdHJfbG9jYWxfZGVjbHMpOiBOZXcgZnVuY3Rpb24uCgkoZ2VuZXJhdGVfbG9jYWxfdmFycyk6IE5ldyBmdW5jdGlvbi4KCShnOTVfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IFVzZSBpdC4KCjIwMDMtMDItMTMgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtZGVjbC5jIChnOTVfY29udl9zdHJ1Y3RfY29ucyk6IFJlbW92ZS4KCShnOTVfZ2V0X3N5bWJvbF9kZWNsKTogVXNlIGc5NV9jb252X2V4cHIgZm9yIHN0cnVjdHVyZSBpbml0aWFsaXplcnMuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfc3RydWN0dXJlKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2V4cHIpOiBVc2UgaXQuCgoyMDAzLTAyLTA5ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9hcnJheV9pbml0X3NpemUpOiBEb24ndCBldmFsdWF0ZSB0aGUgbGluaXQKCWV4cHJlc3Npb25zIG11bHRpcGxlIHRpbWVzLgoJKGc5NV90cmFuc19hdXRvX2FycnlfYWxsb2NhdGlvbik6IFVzZSBwb2ludGVyIG5vdCB0bXAuCgoyMDAzLTAyLTA4ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIG1vZHVsZS5jIChtaW9fc3ltdHJlZV9yZWYpOiBEZWNsYXJlIGFzIHN0YXRpYy4KCShtaW9fZXhwcik6IFJlbW92ZSBkZWFkIGNvZGUuCgkocmVhZF9tb2R1bGUpOiBTZXQgdGhlIHN5bXRyZWUgbGluayBmb3IgZml4dXBzLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZzk1X2NvbnZfaW50cmluc2ljX3JvdW5kKTogUmVuYW1lLi4uCgkoYnVpbGRfcm91bmRfZXhwcik6IC4uLiB0byB0aGlzLgoJKGc5NV9jb252X2ludHJpbnNpY19haW50KTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVzZSBpdC4KCjIwMDMtMDItMDggIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZzk1X3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3ZhbHVlKTogVXNlIHRoZSBhY3V0YWwKCW9mZnNldCBhZnRlciBtb2RpZmljYXRvbiwgbm90IHRoZSBpbmNyZW1lbnQgZXhwcmVzc2lvbi4KCSogZGVwZW5kZW5jeS5jOiBLaWxsIGV4Y2VzcyB3aGl0ZXNwYWNlLgoKMjAwMy0wMi0wNyAgU2Fuaml2IEd1cHRhICA8c2Fuaml2Z0Bub2lkYS5oY2x0ZWNoLmNvbT4KCgkqIGRlcGVuZGVuY3kuaDogUmVtb3ZlIHNvbWUgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoJKiBkZXBlbmRlbmN5LmMgKGdldF9ub19vZl9lbGVtZW50cyk6IENoYW5nZSB0aGlzIGZ1bmN0aW9uIG5vdCB0bwoJcmV0dXJuIGludC4KCSogb3RoZXI6IEFkZCBjb21tZW50cyBmb3IgYWxsIG1vZGlmaWVkIGZ1bmN0aW9ucy4KCjIwMDMtMDItMDYgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogZzk1c3BlYy5jIChsYW5nX3NwZWNpZmljX2Z1bmN0aW9ucyk6IEZpeCBpbml0aWFsaXplciB3YXJuaW5nLgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZzk1X3Nob3dfZXhwcik6IFVzZSB0eXBlc3BlYyBpbnN0ZWFkIG9mIHN5bXRyZWUKCWZvciBzdHJ1Y3R1cmUgdHlwZSBuYW1lcy4KCSogdHJhbnMtZGVjbC5jIChnOTVfY29uc19zdHJ1Y3R1cmVfY29ucyk6IE5ldyBmdW5jdGlvbi4KCShnOTVfZ2V0X3N5bWJvbF9kZWNsKTogVXNlIGl0LgoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X2NvbXBvbmVudF9yZWYpOiBSZW1vdmUgZHVwbGljYXRlIHBvaW50ZXIKCXJlZmVyZW5jaW5nIGNvZGUuCgoyMDAzLTAyLTA2ICBBcm5hdWQgRGVzaXR0ZXIgIDxhcm5hdWQuZGVzaXR0ZXJAZ2VvZ3JhcGh5Lm94Zm9yZC5hYy51az4KCgkqIHJlc29sdmUuYyAoY29tcGFyZV9jYXNlcyk6IEFkZCBjb25zdCB0byBjYXN0cy4KCjIwMDMtMDEtMzAgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogZzk1LmggKGc5NV9jaGVja19mKTogQ2hhbmdlIGExIHRvIGYxbS4KCSogaW50cmluc2ljLmMgKGFkZF9zeW1fMW0sIGNoZWNrX3NwZWNpZmljLAoJZzk1X2ludHJpbnNpY19mdW5jX2ludGVyZmFjZSk6IFVzZSBpdC4KCgkqIG1vZHVsZS5jIChpbml0X3BpX3RyZWUpOiBSZW1vdmUgdXNlbGVzcyBjYXN0LgoJKGZwMik6IEZpeCBhcmd1bWVudCB0eXBlLgoKCSogcGFyc2UuYyAocGFyc2Vfc2VsZWN0X2Jsb2NrKTogQWRkIGNvbW1lbnQuCgoyMDAzLTAyLTA1ICBUb29uIE1vZW5lICA8dG9vbkBtb2VuZS5pbmRpdi5ubHV1Zy5ubD4KCgkqIGxhbmctb3B0aW9ucy5oOiBGaXggd2FybmluZyBpbnZvbHZpbmcgQzkwIGNvbmNhdGVuYXRlZAoJc3RyaW5ncy4KCjIwMDMtMDItMDYgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoJICAgIEFybmF1ZCBEZXNpdHRlciAgPGFybmF1ZC5kZXNpdHRlckBnZW9ncmFwaHkub3hmb3JkLmFjLnVrPgoKCSogaW8uYyAoZm9ybWF0X2FzdGVyaXNrKTogQ29tcGxldGUgaW5pdGlhbGl6ZXIgdG8ga2lsbCB3YXJuaW5nLgoJKiBhcml0aC5jIChERUZfRzk1X0lOVEVHRVJfS0lORCwgREVGX0c5NV9MT0dJQ0FMX0tJTkQsCglERUZfRzk1X1JFQUxfS0lORCwgTVBaX05VTEwsIE1QRl9OVUxMKTogTmV3ICNkZWZpbmVzLgoJKGc5NV9pbnRlZ2VyX2tpbmRzLCBnOTVfbG9naWNhbF9raW5kcywgZzk1X3JlYWxfa2luZHMpOiBVc2UgdGhlCgluZXcgZGVmaW5lcyB0byBjb21wbGV0ZSBpbml0aWFsaXplcnMuICBLaWxscyBhbGwgd2FybmluZ3MuCgoJKiBNYWtlLWxhbmcuaW46IENvbW1lbnQgY2xlYW51cC4KCjIwMDMtMDItMDUgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogYXJyYXkuYyAoZzk1X2ZyZWVfY29uc3RydWN0b3IpOiBIYW5kbGUgTlVMTCBleHByZXNzaW9ucy4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX3N0cnVjdHVyZV9jb25zKTogRGl0dG8uCgkqIGRlY2wuYyAoZzk1X21hdGNoX251bGwpOiBOZXcgRnVuY3Rpb24uCgkodmFyaWFibGVfZGVjbCk6IFVzZSBpdC4KCSogbW9kdWxlLmMgKG1pb19leHByKTogRG9uJ3QgYm90aGVyIHNhdmluZyBzeW10cmVlIGZvciBFWFBSX1NUUlVDVFVSRS4KCSogcHJpbWFyeS5jIChnOTVfbWF0Y2hfcnVudGltZSk6IERvbid0IHVzZSBzeW10cmVlIGZvciBFWFBSX1NUUlVDVFVSRS4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X3NldF9kZWNsX2F0dHJpYnV0ZXMpOiBSZW1vdmUgZW1wdHkgZnVuY3Rpb24uCgoyMDAzLTAyLTA1ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLmggKGJ1aWxkMV92KTogTmV3IG1hY3JvLgoJKGJ1aWxkX3YpOiBSZW1vdmUgcG9pbnRsZXNzIGFuZCBpbmNvcnJlY3QgcHJvdG90eXBlLgoJKiB2YXJpb3VzOiBVc2UgYnVpbGQxX3YgZm9yIEdPVE9fRVhQUiBhbmQgTEFCRUxfRVhQUnMuCgkqIGY5NS1sYW5nLmMgKGc5NV9pbml0X2J1aWx0aW5fZGVjbHMpOiBERUZfQlVJTFRJTiB0YWtlcyAxMCBhcmdzLgoKMjAwMy0wMi0wMSAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBNYWtlLWxhbmcuaW4gKEY5NV9PQkpTKTogUmVtb3ZlIG9uZSBtb3JlIGRlYWQgZmlsZS4KCjIwMDMtMDItMDEgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogbGFuZy1zcGVjcy5oOiBEb24ndCBwYXNzIC1mZml4ZWQtZm9ybSB0byB0aGUgbGlua2VyLgoJKiB0cmFucy1kZWNsLmMgKGc5NV9nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogQ2xlYXIgc2F2ZWQgZGVjbCBjaGFpbi4KCjIwMDMtMDItMDEgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogTWFrZS1sYW5nLmluIChGOTVfT0JKUyk6IFJlbW92ZSBkZWFkIGZpbGVzLgoJKiB0cmFucy1hcnJheS5jIChnOTVfYXJyYXlfaW5pdF9zaXplKTogRG8gdGhlIHJpZ2h0IHRoaW5nIHdoZW4KCXVib3VuZD1OVUxMLgoJKiB0cmFucy1kZWNsLmMgKGc5NV9nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogSW5pdGlhbGl6ZSBkZWZmZXJlZAoJc3ltYm9sIGxpc3QgYmVmb3JlIHRyYW5zbGF0aW5nIGNvbnRhaW5lZCBzdWJyb3V0aW5lcy4KCSogdHJhbnMtZXhwci5jIChnOTVfY29udl9leHByLCBnOTVfY29udl9leHByX3JlZmVyZW5jZSk6IFN1YnN0aXR1dGUKCXNjYWxhciBpbnZhcmlhbnQgdmFsdWVzCWhlcmUuLi4KCShnOTVfY29udl92YXJpYWJsZSwgZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IC4uLiBpbnN0ZWFkIG9mIGhlcmUgLi4uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfZnVuY3Rpb25fYXJncyk6IC4uIGFuZCBoZXJlLgoKMjAwMy0wMS0yOSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfYWRkX2xvb3BfY29kZSk6IFB1dCBwcmUgY29kZSBpbiB0aGUgcmlnaHQgYmxvY2suCgkoZzk1X3dhbGtfZWxlbWVudGFsX2Z1bmN0aW9uX2FyZ3MpOiBSZXZlcnNlIGNoYWlucyBiZWZvcmUgYWRkaW5nLgoJKGc5NV9yZXZlcnNlX3NzKTogTW92ZSBhYm91dCBhIGJpdC4KCSogdHJhbnMtZXhwci5jIChnOTVfY29udl9mdW5jdGlvbl9jYWxsKTogSGFuZGxlIHNjYWxhciBpbnRyaW5zaWMKCWZ1bmN0aW9uIGFyZ3VtZW50cy4KCjIwMDMtMDEtMjggIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaW50cmluc2ljLmMgKHJlc29sdmVfaW50cmluc2ljKTogVXNlIGNvcnJlY3QgdW5pb24gbWVtYmVyLgoJKiB0cmFucy1hcnJheS5jIChnOTVfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcyk6IERvbid0IHRvdWNoIGFic2VudAoJcGFyYW1ldGVycy4KCSogdHJhbnMtZGVjbC5jIChnOTVfZ2V0X3N5bWJvbF9kZWNsKTogRG9uJ3QgdHJhbnNsYXRlIGluaXRpYWxpemVycyBmb3IKCXVzZSBhc3NvY2lhdGVkIHZhcmlhYmxlcy4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19wcmVzZW50KTogTW92ZSBib2R5IC4uLgoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X2V4cHJfcHJlc2VudCk6IC4uLiB0byBoZXJlLgoJKiB0cmFucy5oOiBEZWNsYXJlIGl0LgoJKiB0cmFucy10eXBlcy5jIChnOTVfc3ltX3R5cGUpOiBBc3N1bWUgc3Vicm91dGluZSBpZiBub3Qgc3BlY2lmaWVkLgoKMjAwMy0wMS0yOCAgQXJuYXVkIERlc2l0dGVyICA8YXJuYXVkLmRlc2l0dGVyQGdlb2dyYXBoeS5veGZvcmQuYWMudWs+CgoJKiBhcnJheS5jIChleHBhbmRfaXRlcmF0b3IpOiBTdXBwcmVzcyB1c2VsZXNzIGFzc2lnbm1lbnQuCgkqIGRlY2wuYyAobWF0Y2hfY2hhcl9zcGVjKTogRGl0dG8uCgkqIGlvLmMgKG1hdGNoX2lvX2l0ZXJhdG9yKTogRGl0dG8uCgkqIHByaW1hcnkuYyAobWF0Y2hfcmVhbF9jb25zdGFudCk6IERpdHRvLgoJKiBpbnRlcmZhY2UuYyAoZm9sZF91bmFyeSwgZzk1X2ZyZWVfaW50ZXJmYWNlLCBnOTVfZXh0ZW5kX2V4cHIpOgoJRGl0dG8uICBBbHNvLCB1c2UgZzk1X2ludHJpbnNpY19vcCBub3QgaW50IGZvciBpbnRyaW5zaWMgb3BlcmF0b3JzLgoJKiBtYXRjaGV4cC5jIChtYXRjaF9hZGRfb3BlcmFuZCwgbWF0Y2hfbGV2ZWxfNSk6IExpa2V3aXNlLgoJKiBtb2R1bGUuYyAocGFyc2VfYXRvbSwgZmluZF9lbnVtKTogTGlrZXdpc2UuCgkqIHJlc29sdmUuYzogbW92ZSAjaW5jbHVkZSA8c3RyaW5nLmg+CgkocmVzb2x2ZV9zZWxlY3QpOiBGaXggc2VyaW91cyB0eXBvLgoKMjAwMy0wMS0yOCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubj4KCgkqIE1ha2UtbGFuZy5pbjogRG9uJ3QgYnVpbGQgd2l0aCBicm9rZW4gdHJlZS1zc2EtcHJlLgoKMjAwMy0wMS0yOCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiByZXNvbHZlLmMgKHJlc29sdmVfaW5kZXgpOiBBZGQgYSBUT0RPLgoJKiBzeW1ib2wuYzogUmVtb3ZlIHVzZWxlc3MgIiNpbmNsdWRlIDxjdHlwZS5oPiIuCgoyMDAzLTAxLTI3ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGNoZWNrLmMgKGNoZWNrX3Jlc3QpOiBBbGxvdyBkaWZmZXJlbnQgdHlwZSBraW5kcyBhcyBhbiBleHRlbnNpb24uCgkqIGc5NS5oIChnOTVfcmVzb2x2ZV9mKTogQWRkIGYxbS4KCSogaW50cmluc2ljLmMgKGFkZF9zeW1fMW0sIHJlc29sdmVfaW50cmluc2ljKTogVXNlIGl0LgoJKiBpbnRyaW5zaWMuaDogQ2hlbmdlIHByb3RvdHlwZXMgZm9yIE1JTiBhbmQgTUFYLgoJKiBpcmVzb2x2ZS5jIChnOTVfcmVzb2x2ZV9taW5tYXgpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X3Jlc29sdmVfbWluLCBnOTVfcmVzb2x2ZV9tYXgpOiBVc2UgaXQuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfdHJhbnNfaW50cmluc2ljX21pbm1heCk6IE9ubHkgZXZhbHVhdGUKCWFyZ3VtZW50cyBvbmNlLgoJKGc5NV9jb252X2ludHJpbnNpY19wcmVzZW50KTogRml4IGxvZ2ljLgoKMjAwMy0wMS0yNyAgU3RldmVuIEJvc3NjaGUgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGc5NS5oIChnOTVfY2FzZSk6IERvbid0IGJlIGEgdHJlZSwgYmUgYSBkb3VibGUgbGlua2VkIGxpc3QuCgkqIG1hdGNoLmMgKG1hdGNoX2Nhc2Vfc2VsZWN0b3IpOiBSZW1vdmUgcmVkdW5kYW50IHNlbWFudGljcyBjaGVjay4KCUNsZWFuIHVwIGEgZmV3IGdvdG8ncyB0byBtYWtlIGl0IGEgdGlueSBsaXR0bGUgYml0IGZhc3Rlci4KCSogcmVzb2x2ZS5jIChjYXNlX3RyZWUpOiBEaWUuCgkoY29tcGFyZV9jYXNlcyk6IEFjY2VwdCBhbmQgY29tcGFyZSB1bmJvdW5kZWQgY2FzZXMgdG9vLgoJKGNoZWNrX2Nhc2Vfb3ZlcmxhcCk6IERvbid0IGJ1aWxkIGEgdHJlZS4gIEluc3RlYWQsIG1lcmdlLXNvcnQgdGhlCgl3aG9sZSBsaXN0IG9mIGc5NV9jYXNlcyBwYXNzZWQgZnJvbSByZXNvbHZlX3NlbGVjdC4KCShzYW5lX2xvZ2ljYWxfc2VsZWN0KTogRGllLgoJKGNoZWNrX2Nhc2VfZXhwcik6IFJldHVybiBGQUlMVVJFIGlmIGEgQ0FTRSBsYWJlbCBpcyBvZiB0aGUgd3JvbmcKCXR5cGUga2luZC4KCShyZXNvbHZlX3NlbGVjdCk6IEZpeHVwIGNhc2UgZXhwcmVzc2lvbiBmb3IgY29tcHV0ZWQgR09UT3MsIHB1dCBpdAoJaW4gZXhwciwgbm90IGV4cHIyLCBmb3IgZWFzaWVyIGhhbmRpbmcgaW4gdGhlIHBhcnNlIHRyZWUgZHVtcGVyIGFuZAoJdGhlIGNvZGUgZ2VuZXJhdG9yLiAgUmV3cml0ZSB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb246IEtpbGwKCXVucmVhY2hhYmxlIGNhc2UgbGFiZWxzIGFuZCB1bnJlYWNoYWJsZSBjYXNlIGJsb2Nrcy4KCSogZHVtcC1wYXJzZS10cmVlLmMgKGc5NV9zaG93X2NvZGVfbm9kZSk6IEFsd2F5cyBkdW1wIGV4cHIgZm9yCglhbiBFWEVDX1NFTEVDVCwgbm90IGNhc2UyIGFueW1vcmUuCgkqIHRyYW5zLWNvbnN0LmMgKGc5NV9jb252X2NvbnN0YW50X3RvX3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfY29uc3RhbnQpOiBVc2UgaXQuCgkqIHRyYW5zLWNvbnN0Lmg6IERlY2xhcmUgcHJvdG90eXBlIGZvciB0aGUgbmV3IGZ1bmN0aW9uLgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19pbnRlZ2VyX3NlbGVjdCwgZzk1X3RyYW5zX2xvZ2ljYWxfc2VsZWN0LAoJZzk1X3RyYW5zX2NoYXJhY3Rlcl9zZWxlY3QpOiBOZXcgc3RhdGljIGZ1bmN0aW9ucy4KCShnOTVfdHJhbnNfc2VsZWN0KTogUmV3cml0ZS4KCjIwMDMtMDEtMjYgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaW50cmluc2ljLmMgKGFkZF9mbmN0aW9ucyk6IFByb3Blcmx5IGFkZCBkcmVhbC4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19wcmVzZW50KTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVzZSBpdC4KCSogdHJhbnMtaW8uYyAoYnVpbGRfZHQpOiBBYm9ydCBvbiBpbnRlcm5hbCBmaWxlcyAodW5pbXBsZW1lbnRlZCkuCgoyMDAzLTAxLTI2ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCglXaWRlc3ByZWFkIGNoYW5nZXMgdG8gdGhlIGhhbmRsaW5nIG9mIHN5bWJvbHMgaW4gZXhwcmVzc2lvbnMuICBUaGVzZQoJYXJlIG5vdyBsaW5rZWQgdmlhIGc5NV9zeW10cmVlIG5vZGVzLgoJKiBwYXJzZS5jIChnOTVfZml4dXBfc2libGluZyBzeW1ib2xzKTogTmV3IGZ1bmN0aW9uLgoJKHBhcnNlX2NvbnRhaW5lZCk6IFVzZSBpdC4KCSogZzk1LmggKHN5bWJvbF9hdHRyaWJ1dGUpOiBBZGQgY29udGFpbmVkLiAgSW5kaWNhdGVzIGEgc3ltYm9sIGlzIGEKCWNvbnRhaW5lZCBwcm9jZWR1cmUgdGhhdCBoYXMgYmVlIGNvcnJlY3RseSBmaXhlZCB1cC4KCShnOTVfY29kZSwgZzk1X2V4cHIpOiBQb2ludCB0byBhIGc5NV9zeW10cmVlLCBub3QgYSBnOTVfc3ltYm9sLgoKMjAwMy0wMS0yNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfd2Fsa19leHByKTogRnVuY3Rpb24gcmVzdWx0IGF0dHJpYnV0ZXMgYXJlIGluCglzeW0tPnJlc3VsdC4KCSogdHJhbnMtZXhwci5jIChnOTVfY29udl9mdW5jdGlvbl9jYWxsLAoJZzk1X3RyYW5zX2FycmF5ZnVuY19hc3NpZ24pOiBEaXR0by4KCSogdHJhbnMtZGVjbC5jIChnOTVfZ2V0X3N5bWJvbF9mb3JfZXhwcik6IFNldCBzeW0tPnJlc3VsdC4KCjIwMDMtMDEtMjMgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogZXhwci5jIChjaGVja19yZXN0cmljdGVkKTogRml4IGVycm9yIG1lc3NhZ2UuCgkqIHN5bWJvbC5jIChmcmVlX3N0X2xhYmVscyk6IFBsdWcgbWVtbGVhay4KCjIwMDMtMDEtMjIgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogYXJpdGguYyAocmVkdWNlX3VuYXJ5LCByZWR1Y2VfYmluYXJ5X2FjLCByZWR1Y2VfYmluYXJ5X2NhLAoJcmVkdWNlX2JpbmFyeV9hYSwgcmVkdWNlX2JpbmFyeSwgZXZhbF9pbnRyaW5zaWMsCglldmFsX2ludHJpbnNpY19mMik6IFVzZSB0eXBlc2FmZSBwcm90b3R5cGVzIGZvciBldmFsIGZ1bmN0aW9ucy4KCSogZzk1LmggKGc5NV9jaGVja19mLCBnOTVfc2ltcGxpZnlfZiwgZzk1X3Jlc29sdmVfZik6IE5ldyB1bmlvbnMKCWZvciB0eXBlc2FmZSBpbnRyaW5zaWNzIGhlbHBlciBmdW5jdGlvbnMuCgkoZzk1X2ludHJpbnNpY19zeW0pOiBVc2UgdGhlbS4KCSogaW50cmluc2ljLmMgKGRvX2NoZWNrLCBhZGRfc3ltLCBhZGRfc3ltXzAsIGFkZF9zeW1fMSwKCWFkZF9zeW1fMXMsIGFkZF9zeW1fMW0sIGFkZF9zeW1fMiwgYWRkX3N5bV8zLCBhZGRfc3ltXzQsCglhZGRfc3ltXzUsIGFkZF9jb252LCByZXNvbHZlX2ludHJpbnNpYywgZG9fc2ltcGxpZnksCgljaGVja19zcGVjaWZpYywgZzk1X2ludHJpbnNpY19mdW5jX2ludGVyZmFjZSwKCWc5NV9pbnRyaW5zaWNfc3ViX2ludGVyZmFjZSk6IEFkanVzdCBhbGwgY2FsbHMgdG8gaW50cmluc2ljcwoJaGVscGVyIGZ1bmN0aW9ucy4KCSogdHJhbnMtZGVjbC5jIChnOTVfZ2V0X2V4dGVybl9mdW5jdGlvbl9kZWNsKTogTGlrZXdpc2UuCgkqIE1ha2UtbGFuZy5pbjogRG9uJ3QgZGlzYWJsZSB3YXJuaW5ncyBmb3Igc3RyaWN0IHByb3RvdHlwZXMKCWFueSBsb25nZXIsIGV2ZXJ5dGhpbmcgaXMgdHlwZXNhZmUgbm93LgoKMjAwMy0wMS0yMiAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBiYnQuYyAoZHVwbGljYXRlX25vZGUpOiBNYWtlIHN0YXRpYy4KCSogbW9kdWxlLmMgKG1vZHVsZV9uYW1lKTogTWFrZSBzdGF0aWMuCgkqIHNjYW5uZXIuYyAoaW5jbHVkZV9kaXJzKTogTWFrZSBzdGF0aWMuCgoyMDAzLTAxLTIwICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCglIYXJkIGNvZGVkIF9nZm9yXydzIHNob3VsZCBub3Qgc2hvdyB1cCBhbnltb3JlLgoJKiBnOTUuaCAoUFJFRklYKTogTmV3IG1hY3JvLgoJKiBpcmVzb2x2ZS5jIChnOTVfcmVzb2x2ZV9jcHVfdGltZSk6IFVzZSBQUkVGSVgsIG5vdAoJaGFyZC1jb2RlZCAiX2dmb3IiLgoJKGc5NV9yZXNvbHZlX3JhbmRvbV9udW1iZXIpOiBMaWtld2lzZS4KCSogdHJhbnMtZGVjbC5jIChnOTVfYnVpbGRfaW50cmluc2ljX2Z1bmN0aW9uX2RlY2xzKTogTGlrZXdpc2UuCgkqIHRyYW5zLWlvLmM6IFJlbW92ZSAncHJlZml4JyBtYWNyby4gIFJlcGxhY2UgYWxsIHVzZXMgd2l0aAoJdGhlIG5ldyBQUkVGSVggbWFjcm8gZnJvbSBnOTUuaC4KCjIwMDMtMDEtMjAgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCVRoZSB0cm91YmxlcyBvZiBmb3JraW5nLi4uIEFuZHkgaW1wbGVtZW50ZWQgdGhpcyBqdXN0IG5vdyB0b28uCglMZXQncyBzdGljayB0byB0aGF0IGFuZCBrZWVwIHRoZSB0cmVlcyBjbG9zZS4KCSogZzk1LmggKGc5NV9zdF9sYWJlbCk6ICdmb3JtYXQnIG1lbWJlciBpcyBub3cgYSBnOTVfZXhwci4KCSogaW8uYzogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZXMuCgkoZzk1X21hdGNoX2Zvcm1hdCk6IE1hdGNoIHRoZSBmb3JtYXQgc3RyaW5nIGFzIGEgY2hhcmFjdGVyCglsaXRlcmFsIGV4cHJlc3Npb24uCgkqIG1hdGNoLmggKGc5NV9zdGF0ZW1lbnRfbGFiZWwpOiBEZWNsYXJlIGV4dGVybmFsLgoJKiBwYXJzZS5jOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcy4KCSogc3ltYm9sLmMgKGc5NV9mcmVlX3N0X2xhYmVsKTogRnJlZSBhIGc5NV9leHByIGluc3RlYWQKCWlmIGEgJ2NoYXIgKicuCgkqIHRyYW5zLWlvLmM6IFJldmVydCBwcmV2aW91cyBjaGFuZ2VzLgoJKGJ1aWxkX2R0KTogVXNlIHNldF9zdHJpbmcgdG8gc2V0IHRoZSBmb3JtYXQgc3RyaW5nLgoKMjAwMy0wMS0yMCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBpby5jIChmb3JtYXRfc3RyaW5nKTogTWFrZSBub24tc3RhdGljLgoJKGc5NV9tYXRjaF9mb3JtYXQpOiBSZW1lbWJlciB0aGUgZm9ybWF0IHN0cmluZy4KCSh0ZXJtaW5hdGVfaW8pOiBBZGQgSS9PIHRlcm1pbmF0aW9uIGZvciBlbXB0eSBJL08gbGlzdHMuCgkqIG1hdGNoLmg6IERlY2xhcmUgZXh0ZXJuYWwgZm9ybWF0X3N0cmluZy4KCSogcGFyc2UuYyAoY2hlY2tfc3RhdGVtZW50X2xhYmVsKTogQXR0YWNrIHRoZSBmb3JtYXQgc3RyaW5nCgl0byBhIGZvcm1hdCBsYWJlbCBmb3IgRk9STUFUIHN0YXRlbWVudHMuCgkqIHRyYW5zLWlvLmMgKGc5NV9hZGRfZmllbGQpOiBEZWZpbmUgcHJlZml4IG1hY3JvLiAgUmVwbGFjZQoJYWxsIHVzZXMgb2YgUFJFRklYIGRlZmluZSB3aXRoIGEgdXNlIG9mIHRoaXMgbWFjcm8uCgkoYnVpbGRfZHQpOiBJbXBsZW1lbnQgZm9ybWF0dGVkIEkvTyBmb3IgZm9ybWF0IGxhYmVscy4KCjIwMDMtMDEtMjAgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogbGFuZy1vcHRpb25zLmg6IEtpbGwgIi1zdGQ9RiIuCgkqIG9wdGlvbnMuYzogUmVtb3ZlIHVuaW1wbGVtZW50ZWQgIi1zdGQ9RiIuICBNb2RpZnkKCXdlYiBhZGRyZXNzLgoJKiBtaXNjLmMgKGc5NV90ZXJtaW5hbF93aWR0aCk6IE5ldyBmdW5jdGlvbi4KCSogZXJyb3IuYyAoZzk1X2Vycm9yX2luaXRfMSk6IFVzZSBnOTVfdGVybWluYWxfd2lkdGguCgkqIGc5NS5oOiBBZGQgcHJvdG90eXBlIGZvciBnOTVfdGVybWluYWxfd2lkdGgsIHJlbW92ZQoJZm1vZGUgZmxhZy4KCjIwMDMtMDEtMTkgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogTWFrZS1sYW5nLmluOiBGaXggdHlwby4KCjIwMDMtMDEtMTggIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogZzk1LmggKHN0cnVjdCBnOTVfY2FzZSk6IFJlbW92ZSB1bnVzZWQgY3J1ZnQsIG5ldyBtZW1iZXIKCSd3aGVyZScgdG8ga2VlcCB0cmFjayBvZiB0aGUgbG9jdXMgb2YgdGhlIGRlZmF1bHQgY2FzZS4KCSogbWF0Y2guYyAoZzk1X21hdGNoX2Nhc2UpOiBBZGQgbG9jdXMgdG8gdGhlIGN1cnJlbnQgY2FzZS4KCShtYXRjaF9jYXNlX3NlbGVjdG9yKTogTGlrZXdpc2UuCgkqIHBhcnNlLmMgKHBhcnNlX3NlbGVjdF9ibG9jayk6IE1vdmUgc2VtYW50aWNzIGNoZWNrIGZvcgoJbXVsdGlwbGUgREVGQVVMVCBjYXNlcyBvdXQgb2YgaGVyZSB0by4uLgoJKiByZXNvbHZlLmMgKGNoZWNrX2Nhc2Vfb3ZlcmxhcCk6IC4uLmhlcmUuICBSZXR1cm4gc29vbmVyCgl3aGVuIHBvc3NpYmxlLgoJKGNoZWNrX2Nhc2VfZXhwcik6IFRha2UgdHdvIGc5NV9jYXNlcyBub3csIHVzZSB0byBzdXJlIHRoZQoJZXhwcmVzc2lvbiBraW5kcyBhcmUgdGhlIHNhbWUuCgkocmVzb2x2ZV9zZWxlY3QpOiBDbGVhbnVwLgoKMjAwMy0wMS0xOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1pby5jOiBGaXggdHlwb3MgaW4gcG9ydGVkIElPIHdvcmsgKHNldF9mbGFbdGddKS4KCSogdHJhbnMtZGVjbC5jIChnOTVfc2V0X3N5bWJvbF9kZWNsKTogSGFuZGxlIG5vbi1hcnJheSByZXN1bHQKCXZhcmlhYmxlcy4KCShnOTVfZ2V0X2V4dGVybl9mdW5jdGlvbl9kZWNsKTogUHV0IGRlY2xzIGluIHRoZSBjb3JyZWN0IGNvbnRleHQuCgoyMDAzLTAxLTE4ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIHRyYW5zLWlvLmM6IFBvcnQgY2hhbmdlcyBmcm9tIEFuZHkgdG8gc2V0IEVSUiBmbGFnLgoKMjAwMy0wMS0xNyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jOiBBZGQgdmFyaW91cyBjb21tZW50cy4KCShnOTVfc3NfdGVybWluYXRvcik6IERlY2xhcmUgYXMgY29uc3QuCgkoZzk1X3dhbGtfZXhwcik6IFJlbW92ZSBmaXJzdCBwYXJhbWV0ZXIgYW5kIHVwZGF0ZSBhbGwgY2FsbGVycy4KCShnOTVfd2Fsa19vcF9leHByKTogSW5pdGlhbGl6ZSBzY2FsYXIgU1MgcHJvcGVybHkuCgkqIHRyYW5zLWFycmF5LmggKGc5NV93YWxrX2V4cHIpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiB0cmFucy1leHByLmM6IFVwZGF0ZSBmb3IgbmV3IGc5NV93YWxrX2V4cHIuCgkqIHRyYW5zLWludHJpbnNpYy5jOiBEaXR0by4KCSogdHJhbnMtaW8uYzogRGl0dG8uCgkqIHRyYW5zLmg6IFZhcmlvdXMgY29tbWVudHMgZm9yIFNTIGNoYWlucy4KCjIwMDMtMDEtMTcgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogaW50cmluc2ljLmggKGc5NV9nZW5lcmljX2lzeW1faWQpOiBBZGQgRzk1X0lTWU1fUz9fS0lORCwgU1BBQ0lORwoJYW5kIFJSU1BBQ0lORy4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBVc2UgdGhlbS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbik6IERpdHRvLgoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X2V4cHJfbGhzKTogQWJvcnQgb24gaW1wb3NzaWJsZSBlcnJvci4KCjIwMDMtMDEtMTcgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCUZhbGxvdXQgb2YgYSBzbWFsbCBtZXJnZSBjb25mbGljdDoKCSogaW50cmluc2ljLmM6IFVuLXJldmVydCBsb3N0IHBhdGNoIChHOTVfSVNZTV9TQ0FMRSkuCgoyMDAzLTAxLTE3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGluaXRyaW5zaWMuYzogTmV3IGFkZF9zeW1fKiBmdW5jdGlvbnMgZm9yIHN0cm9uZyB0eXBpbmcuCgkoYWRkX2NvbnYpOiBNYWtlIHByb3RvdHlwZSBzdHJpY3QuCgkqIGR1bXAtcGFyc2UtdHJlZS5jLCBkZXBlbmRlbmN5LmM6IEluY2x1ZGUgY29uZmlnLmgKCSogcmVzb2x2ZS5jLCB0cmFucy1pby5jOiBGaXggdHlwb3MuCgoyMDAzLTAxLTE3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnOTVfc2hvd19jb2RlX25vZGUpOiBTaG93IHRoZQoJY29uZGl0aW9uIGZvciBhIGNvbXB1dGVkIEdPVE8gdGhhdCB3YXMgdHJhbnNmb3JtZWQKCXRvIGEgU0VMRUNUIENBU0UgY29uc3RydWN0LgoJKiByZXNvbHZlLmMgKGNoZWNrX2Nhc2Vfb3ZlcmxhcCk6IFJldmVydCBwcmV2aW91cyBzd2l0Y2gKCXRvIHRyZWFwcywgaXQgd2FzIHRvbyBzbG93IGFuZCBkaWRuJ3QgY2F0Y2ggYWxsIHRyb3VibGUuCgkocmVzb2x2ZV9zeW1ib2wpOiBCZSBtb3JlIGZsZXhpYmxlIGFib3V0IG1vZHVsZSBwcm9jZWR1cmVzLgoJKiBzeW1ib2wuYyAoY2hlY2tfY29uZmxpY3QpOiBQb2ludCB0byByZWxldmFudCBzZWN0aW9uIGluCgl0aGUgc3RhbmRhcmQgZm9yIGR1YmlvdXMgY29uZmxpY3QuICBBbGxvdyBwcm9jZWR1cmUKCWR1bW15IGFyZ3VtZW50cyB0byBiZSBvcHRpb25hbCBhZ2Fpbi4KCSogdHJhbnMtaW8gKGFkZF9maWVsZCk6IFJlbmFtZSB0byBnOTVfYWRkX2ZpZWxkLiAgQ2hhbmdlCglhbGwgY2FsbGVycy4KCSogdHJhbnMtc3RtdCAodHJhbnNfc2VsZWN0KTogSGFuZGxlIHVuYm91bmRlZCBjYXNlcyBmb3IKCWludGVnZXIgU0VMRUNUIENBU0UgY29uc3RydWN0cy4gIEZpeC9hZGQgbW9yZSBjb21tZW50LgoKMjAwMy0wMS0xNyAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBnOTUuaDogVXNlcyBHQ0MncyBmdW5jdGlvbiBhdHRyaWJ1dGUgbWFjcm9zLgoJKiBlcnJvci5jLCBtb2R1bGUuYywgcGFyc2UuYywgZzk1Lmg6IE1vcmUgZnVuY3Rpb24gYXR0cmlidXRlcy4KCjIwMDMtMDEtMTYgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoJRm9yZ290IGEgZmlsZS4uLgoJKiB0cmFucy1kZWNsLmMgKGdldF9sYWJlbF9kZWNsKTogVXNlIFRSRUVfTElORU5PIGluc3RlYWQKCW9mIERFQ0xfU09VUkNFX0xJTkUsIGFuZCBUUkVFX0ZJTEVOQU1FIGluc3RlYWQgb2YKCURFQ0xfU09VUkNFX0ZJTEUuCgoyMDAzLTAxLTE2ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGY5NS1sYW5nLmMgKHB1c2hkZWNsKTogVXNlIFRSRUVfTElORU5PIGluc3RlYWQgb2YKCURFQ0xfU09VUkNFX0xJTkUuCgkqIHRyYW5zLmMgKGc5NV90cmFuc19jb2RlKTogVXNlIGFubm90YXRlX2FsbF93aXRoX2ZpbGVfbGluZQoJaW5zdGVhZCBvZiBub3dkZWFkIHdyYXBfYWxsX3dpdGhfd2ZsLgoKMjAwMy0wMS0xNCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBwYXJzZS5jIChnOTVfcGFyc2VfZmlsZSk6IEluIHZlcmJvc2UgbW9kZSwgZHVtcCB0aGUgcGFyc2UgdHJlZQoJYmVmb3JlIGdlbmVyYXRpbmcgY29kZSwgc28gd2UgY2FuIHN0aWxsIHNlZSBpdCBldmVuIGlmIHRoZSBjb2RlCglnZW5lcmF0aW9uIHBoYXNlIGRpZXMuCgoyMDAzLTAxLTE0ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGRlY2wuYyAoYnVpbGRfc3ltKTogU3BsaXQgb3V0IGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24gcGFydHMuLi4KCShhZGRfaW5pdF9leHByX3RvX3N5bSk6IC4uLnRvIGhlcmUuCgkodmFyaWFibGVfZGVjbCk6IEFkZCB0aGUgc3ltYm9sIGZvbGxvd2luZyBhbiBhdHRyaWJ1dGUgbGlzdCB0byB0aGUKCXN5bWJvbCB0cmVlIGJlZm9yZSBwYXJzaW5nIHRoZSBvcHRpb25hbCBpbml0aWFsaXphdGlvbiBleHByZXNzaW9uCglpZiB0aGUgc3ltYm9sIGlzIG5vdCBvZiBhIGRlcml2ZWQgdHlwZS4KCSogcHJpbWFyeS5jIChnOTVfbWF0Y2hfcnZhbHVlKTogRG9uJ3QgYXNzdW1lIGEgc3ltYm9sIGFsd2F5cyBoYXMKCWEgdmFsdWUgaWYgaXQgaXMgYSBQQVJBTUVURVIuCgoyMDAzLTAxLTE0ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIG1pc2MuYzogRG9uJ3QgI2luY2x1ZGUgPG1jaGVjay5oPgoJKiBtb2R1bGUuYzogRGl0dG8uICBLaWxsIHVzZXMgb2YgbXRyYWNlLCBtdW50cmFjZS4gIElmIHRoZXJlCglldmVyIHdhcyBhIGdsaWJjIGJ1ZywgdGhlbiBlaXRoZXIgdGhpcyB3YXMgbmV2ZXIgcmVwb3J0ZWQgdG8KCWdsaWJjIHBlb3BsZSwgb3IgaXQgaGFzIGJlZW4gZml4ZWQgZm9yIHNvIGxvbmcgdGhhdCB0aGVyZSdzCglubyBpbmZvcm1hdGlvbiB5b3UgY2FuIGZpbmQgYWJvdXQgaXQsIGFueXdoZXJlLgoKMjAwMy0wMS0xNCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJRml4IHdhcm5pbmdzOgoJKiBtb2R1bGUuYyAoYXR0cl9iaXRzLCBidF90eXBlcywgYXJyYXlfc3BlY190eXBlcyk6CglTd2l0Y2ggJ2NvbnN0JyBhbmQgJ3N0YXRpYycuCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX3Jlc2hhcGUpOiBNYWtlIF9fcmVzb2x2ZTAgbm9uLSdjb25zdCcuCgoJR05VJ2lmeSBzb3VyY2UgY29kZToKCSogdHJhbnMtaW8uYzogTnVtZXJvdXMgZml4ZXMsIG9uZSBmaXhlZCB3YXJuaW5nIGFuZCBhIGZldwoJVE9ETyBtYXJrZXJzIHNvIHRoYXQgd2UgZG9uJ3QgZm9yZ2V0IGFib3V0IHRoZW0uCgoyMDAzLTAxLTEzICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogQWRkIEc5NV9JU1lNX1NDQUxFLgoJKiBpbnRyaW5zaWMuaCAoZzk1X2dlbmVyaWNfaXN5bV9pZCk6IFJlbW92ZSBib2d1cyBHOTVfSVNZTV9BTklOSVQuCglBZGQgRzk1X0lTWU1fU0NBTEUuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBEaXR0bwoJKiBtYXRjaC5jIChnOTVfbWF0Y2hfc3RvcCk6IEZpeCBkdW1iID09IC0+ICE9IGVycm9yLgoKMjAwMy0wMS0xMyAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoc2hvd19pbmRlbnQpOiBBZGQgbGluZSBicmVha3MuICBUaGlzCgl3aG9sZSBkdW1waW5nIHByb2Nlc3MgbmVlZHMgY2xlYW51cHMuCgkqIGY5NS1sYW5nLmMgKGc5NV9tYXJrX2FkZHJlc3NhYmxlKTogRml4IHByb3RvdHlwZSB0byBtYXRjaAoJdGhlIGxhbmdob29rLiAgRml4ICdyZXR1cm4ncyBhY2NvcmRpbmdseS4KCSogZzk1LXN1cHBvcnQuaDogQWRqdXN0IHByb3RvdHlwZS4KCSogZzk1Lmg6IEFkZCAnbm9fYmFja2VuZCcgbWVtYmVyIHRvICdnOTVfb3B0aW9uX3QnIHN0cnVjdC4KCSogbGFuZy1vcHRpb25zLmg6IEFkZCAnLWZzeW50YXgtb25seScuCgkqIG9wdGlvbnMuYyAoZzk1X2luaXRfb3B0aW9ucyk6IEluaXQgJ25vX2JhY2tlbmQnLgoJKGc5NV9wYXJzZV9hcmcpOiBEZWFsIHdpdGggJy1mc3ludGF4LW9ubHknLgoJKiBwYXJzZS5jIChnOTVfcGFyc2VfZmlsZSk6IERvIG5vdCBnZW5lcmF0ZSBjb2RlIGlmICdub19iYWNrZW5kJwoJaXMgc2V0LgoKMjAwMy0wMS0xMyAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CglQYXRjaCBmcm9tIEFybmF1ZAoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQXNzdW1lZCBzaGFwZSBhcnJheXMgbXVzdCBiZSBkdW1teQoJYXJndW1lbnRzLiAgQWxzbyBtYWtlIHN1cmUgdGhhdCBpZiBhIHN5bWJvbCBpcyBtYXJrZWQgSU5UUklOU0lDLAoJYW4gaW50cmluc2ljIHdpdGggdGhlIHN5bWJvbCdzIG5hbWUgYWN0dWFsbHkgZXhpc3RzLgoJKGNoZWNrX2NvbmZsaWN0KTogTWFrZSBFWFRFUk5BTCBhbmQgRElNRU5TSU9OIGF0dHJpYnV0ZXMgY29uZmxpY3QuCglEbyBub3QgYWxsb3cgUFJPQ0VEVVJFUyB0byBoYXZlIHRoZSBTQVZFLCBQT0lOVEVSLCBUQVJHRVQsCglBTExPQ0FUQUJMRSwgUkVTVUxULCBJTl9OQU1FU1BBQ0UsIE9QVElPTkFMIG9yIEZVTkNUSU9OIGF0dHJpYnV0ZS4KCjIwMDMtMDEtMTMgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogcmVzb2x2ZS5jIChyZXNvbHZlX2NvbnRhaW5lZF9mdW5jdGlvbnMpOiBGaXggY29uZGl0aW9uLCBkb24ndAoJdGhyb3cgaW50ZXJuYWxfZXJyb3IgaWYgYSBjaGlsZCBuYW1lc3BhY2UgaGFzIG5vIG5hbWUuICBBcHBhcmVudGx5Cgl0aGlzIGNhbiBiZSB0aGUgY2FzZT8KCjIwMDMtMDEtMTEgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCVBvcnQgY2hhbmdlcyBmcm9tIEFuZHkncyB0cmVlOgoJKiBnOTUuaCAoZzk1X2NvZGUpOiBBZGQgc3RvcF9jb2RlLgoJKiBtYXRjaC5jIChnOTVfbWF0Y2hfc3RvcCk6IERldHRlciBzeW50YXggY2hlY2tpbmcuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9nZW5lcmljX2YwKTogUmV0dXJuIG1hdGNoIHR5cGUuCgkocmVzb2x2ZV9nZW5lcmljX2YpOiBSZW1vdmUgZGVhZC9kdXBsaWNhdGVkIGNvZGUuCgkocmVzb2x2ZV9zcGVjaWZpY19mKTogRGl0dG8uCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnOTVfc2hvd19jb2RlX25vZGUpOiBIYW5kbGUgbmV3IFNUT1AgZm9ybWF0LgoJKiB0cmFucy1kZWNsLmMgKGdmb3JfZm5kZWxfc3RvcF8qKTogTmV3IGZuZGVjbCBub2Rlcy4KCSogdHJhbnMtc3RtdC5jIChnOTVfdHJhbnNfc3RvcCk6IEhhbmRsZSBuZXcgU1RPUCBmb3JtYXQuCgoyMDAzLTAxLTExICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmM6IFZhcmlvdXMgZG9jdW1lbnRhdGlvbi9jb21tZW50IGNoYW5nZXMuCgkqIHRyYW5zLXN0bXQuYzogRGl0dG8uCgoKMjAwMy0wMS0xMCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBvcHRpb25zLmMvaDogQWRkIC1mZHVtcC1wYXJzZS10cmVlIGFzIGFsaWFzIG9mIC12LgoKMjAwMy0wMS0xMCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZzk1X3Nob3dfbmFtZXNwYWNlKTogRml4ZWQgYW5vdGhlcgoJdHlwby4gIFNvcnJ5LCBpdCdzIEZyaWRheS4uLgoKMjAwMy0wMS0xMCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJU3BvdHRlZCBieSBUb2JpOgoJKiB0cmFucy1hcnJheS5jLCB0cmFucy1hcnJheS5oLCB0cmFucy5jLCB0cmFucy1jb25zdC5jLAoJdHJhbnMtY29uc3QuaCwgdHJhbnMtZGVjbC5jLCB0cmFucy1leHByLmMsIHRyYW5zLmgKCXRyYW5zLWludHJpbnNpYy5jLCB0cmFucy1pby5jLCB0cmFucy1zdG10LmMsIHRyYW5zLXN0bXQuaAoJdHJhbnMtdHlwZXMuYzogRml4IGJvZ3VzIGNvcHlyaWdodCB5ZWFycywgYWRkIDIwMDMuCgkqIHRyYW5zLXR5cGVzLmg6IEdpdmUgY29weXJpZ2h0IGhlYWRlci4KCjIwMDMtMDEtMTAgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogZHVtcC1wYXJzZS10cmVlLmMgKGc5NV9zaG93X25hbWVzcGFjZSk6IEZpeGVkIHR5cG8uCgkqIGV4cHIuYywgb3B0aW9ucy5jLCBzY2FubmVyLmM6IEFkZCBzb21lIG1vcmUgJ2NvbnN0JyBtYXJrZXJzLgoJKiBpbnRyaW5zaWMuYzogU29tZSBjb25zdGFudCBzdHJpbmdzIG1vdmVkIHRvIHJlYWQtb25seSBtZW1vcnkuCgkqIGlvLmMgKGZvcm1hdF9hc3Rlcmlzayk6IE1vdmUgdG8uLi4KCSogZzk1Lmg6IC4uLmhlcmUuCgoyMDAzLTAxLTEwICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGR1bXAtcGFyc2UtdHJlZS5jIChnOTVfc2hvd19uYW1lc3BhY2UpOiBEdW1wIGltcGxpY2l0Cgl0eXBlcyBmb3IgcmFuZ2VzIGluc3RlYWQgb2YgcGVyLWxldHRlci4gIEluZGVudCB0aGUKCSdDT05UQUlOUycganVzdCBsaWtlIGV2ZXJ5dGhpbmcgZWxzZS4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX2NvbnRhaW5lZF9mdW5jdGlvbnMpOiBDbGFyaWZ5IGNvbW1lbnQuCglFeHBsYWluIG5vbi1vYnZpb3VzIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24uICBJbXByb3ZlCglkaWFnbm9zdGljcyBpZiB0eW9lIGNhbm5vdCBiZSByZXNvbHZlZC4KCVBvcnQgc2VtaS1maXggZnJvbSBBbmR5J3MgdHJlZToKCSh3YXNfZGVjbGFyZWQpOiBNb3ZlIHVwIGJlZm9yZSBmaXJzdCB1c2UuCgkoZ2VuZXJpY19zeW0sIHNwZWNpZmljX3N5bSk6IE5ldyBmdW5jdGlvbnMuICBDb2RlIG1vdmVkCglvdXQgaWYgcHJvY2VkdXJlX2tpbmQuCgkocHJvY2VkdXJlX2tpbmQpOiBTaW1wbGlmeSB1c2luZyBuZXcgZnVuY3Rpb25zLgoJKHJlc29sdmVfZ2VuZXJpY19mKTogTWFrZSBzdXJlIHRoZSBmdW5jdGlvbnMgd2UgZmluZCBpbgoJYSBwYXJlbnQgbmFtZXNwYWNlIGlzIGdlbmVyaWMuCgkocmVzb2x2ZV9zcGVjaWZpY19mKTogRGl0dG8gZm9yIHNwZWNpZmljIGZ1bmN0aW9ucy4KCjIwMDMtMDEtMTAgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogdHJhbnMtc3RtdC5jLCB0cmFucy5jOiBGaXggc29tZSBjb2RlIHN0eWxlIGlzc3Vlcy4gQWRkCglzb21lIG1vcmUgY29tbWVudCAoYnV0IHN0aWxsIG5vdCBlbm91Z2ghKS4KCjIwMDMtMDEtMTAgIFN0ZXZlbiBCb3NzY2hlciAgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogc3ltYm9sLmMgKGZsYXZvcnMsIHByb2NlZHVyZXMsIGludGVudHMsIGFjY2VzX3R5cGVzLAoJYWNjZXNzX3R5cGVzLCBpZnNyY190eXBlcyk6IE1ha2UgY29uc3QuCgkqIG1pc2MuYyAoZzk1X3N0cmluZzJjb2RlKTogTWFrZSAnbScgcGFyYW0gJ2NvbnN0Jy4KCSogbW9kdWxlLmMgKGZpbmRfZW51bSwgd3JpdGVfYXRvbSwgbWlvX25hbWUpOiBNYWtlCgknbScgcGFyYW0gJ2NvbnN0Jy4KCShhdHRyX2JpdHMsIGJ0X3R5cGVzLCBhcnJheV9zcGVjX3R5cGVzLCBhcnJheV9yZWZfdHlwZXMsCglyZWZfdHlwZXMsIGV4cHJfdHlwZXMpOiBNYWtlIGNvbnN0LgoJKiBnOTUuaDogQWRqdXN0IGV4dGVybmFsIGRlY2xzLgoKMjAwMy0wMS0wOSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBUZXN0c3VpdGU6IEFkZCBhIGxvYWQgb2YgbmV3IGNhc2VzLgoKMjAwMy0wMS0wOCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBNYWtlLWZpbGUuaW46IEFkZCBkZXBlbmRlbmN5IG9uIGJhY2sgZW5kIGhlYWRlciBmaWxlczsKCWEgcGFyYWxsZWwgYnVpbGQgc2hvdWxkIHdvcmsgbm93LgoJKiBmOTUtbGFuZy1jIChsYW5nX2lkZW50aWZpZXIpOiBSZW1vdmUgYm9ndXMgY29tbWVudC4KCShnOTVfYmVfcGFyc2VfZmlsZSk6IEZpeCBwcm90b3R5cGUuCgkoZzk1X2luaXQpOiBNYWtlIHN0YXRpYy4KCShnOTVfZmluaXNoKTogTWFrZSBzdGF0aWMuCgkqIGVycm9yLmMgKGc5NV9zeW50YXhfZXJyb3IpOiBLaWxsLiBNYWtlIGRlZmluZSBpbi4uLgoJKiBnOTUuaCAoZzk1X3N5bnRheF9lcnJvcik6IERlZmluZS4KCShnOTUub3B0aW9ucyk6IE1ha2UgJ3NvdXJjZScgbWVtYmVyICdjb25zdCcuCgkqIGludGVyZmFjZS5jIChnOTVfbWF0Y2hfaW50ZXJmYWNlKTogRXhwbGFpbgoJaGFyZC10by1yZWFkIGNvbmRpdGlvbi4KCShnOTVfbWF0Y2hfZW5kX2ludGVyZmFjZSk6IERpdHRvLgoJKiB0cmFuc19jb25zdC5jIChnOTVfYnVpbGRfc3RyaW5nX2NvbnN0KTogTWFrZSAncycgcGFyYW1ldGVyCgknY29uc3QnLgoJKiB0cmFuc19jb25zdC5oOiBBZGp1c3QgcHJvdG95cGUgYWNjb3JkaW5nbHkuCgkqIHRyYW5zLWRlY2wuYzogSW5jbHVkZSB0cmVlLWR1bXAuaAoJKGc5NV9nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogQnVpbGQgZml4ZXMgZm9yIHJlY2VudCBjaGFuZ2VzCglpbiB0aGUgdHJlZS1zc2EgYnJhbmNoLgoKMjAwMy0wMS0wOCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBmb3JtYXQuYzogS2lsbCwgbW92ZSBjb2RlIGZyb20gaGVyZS4uLgoJKiBpby5jOiAuLi50byBoZXJlLgoJKiBNYWtlLWxhbmcuaW46IEFkanVzdC4KCSogTUFOSUZFU1Q6IERpdHRvLgoJKiBtYXRjaC5oOiBEaXR0by4KCSogQlVHUzogTWVudGlvbiB3aGVyZSB0byBzdWJtaXQgYnVncy4gIE1vdmUgb2xkIGNvbnRlbnQuLi4KCSogVE9ETzogLi4udG8gaGVyZS4gIE5ldyBmaWxlLgoKMjAwMy0wMS0wOCAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CglGaXggbW9zdCB3YXJuaW5ncywgYW5kIHN1cHByZXNzIHRoZSBvbmVzIHdlIGNhbid0IGZpeCBmb3Igbm93LgoJKiBNYWtlLWxhbmcuaW46IFN1cHByZXNzIHdhcm5pbmdzIGFib3V0IGJhZCBwcm90bydzIGluIGc5NS5oLAoJdGhlc2Ugd2FybmluZ3MganVzdCBjbHV0dGVyIHRoZSBzY3JlZW4gYW5kIHRoZXJlJ3Mgbm90IG11Y2gKCXdlIGNhbiBkbyBhYm91dCB0aGVtIGZvciBub3cgYW55d2F5LgoJKiBjaGVjay5jLCBpcmVzb2x2ZS5jOiBNYXJrIHVudXNlZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZzk1X3Nob3dfYXJyYXlfc3BlYyk6IFB1bnQgb24gQVNfVU5LTk9XTiwKCXRoZXkgc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSB0aGV5IGdldCBoZXJlLgoJKiBlcnJvci5jOiBSZW1vdmUgdW51c2VkIEZJTEUgKnN0YXR1c19vdXQuCgkqIGY5NS1sYW5nLmMgKGc5NV9pbml0KTogUmVtb3ZlIGJvZ3VzIGNhc3QuCgkqIE1hbnkgZmlsZXM6IE1ha2UgdGhpbmdzICdjb25zdCcgd2hlcmUgcmVxdWlyZWQuCgkqIGc5NS5oOiBGaXggcHJvdG90eXBlcyBmb3IgYWxsIG1vZGlmaWVkIGZ1bmN0aW9ucyBhYm92ZS4KCShnOTVfb3B0aW9ucyk6IFJlbW92ZSAnb2JqZWN0JyBtZW1iZXIuCgoyMDAzLTAxLTA3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIE1ha2UtZmlsZS5pbjogQ2xlYW51cCBib2d1cyB0YXJnZXRzLiAgQWRkIG1vcmUgY29tbWVudC4KCSogbGFuZy1vcHRpb25zLmg6IE5ldyBvcHRpb24gJy13Jy4KCSogZzk1Lmg6IGFkZCBub19vcHRpb25zIGZpZWxkIHRvIHN0cnVjdCBnOTVfb3B0aW9ucy4KCSogb3B0aW9ucy5jIChnOTVfaW5pdF9vcHRpb25zKTogRGVmYXVsdCBub193YXJuaW5ncyB0byBvZmYuCgkoZzk1X3BhcnNlX2FyZyk6IFJlY29nbmlzZSB0aGUgJy13JyBzd2l0Y2ggYW5kIGl0cyBhbGlhcywKCSctZm5vLXdhcm5pbmdzJy4KCSogZXJyb3IuYyAoZzk1X3dhcm5pbmcsIGc5NV93YXJuaW5nX25vdyk6IERvbid0IGVtaXQgd2FybmluZyBpZgoJbm9fd2FybmluZyBvcHRpb24gaXMgc2V0LgoJKiBpcmVzb2x2ZS5jIChnOTVfcmVzb2x2ZV9zaGFwZSk6IEZpeCB3YXJuaW5nLgoKMjAwMy0wMS0wNyAgU3RldmVuIEJvc3NjaGVyICA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBwcmltYXJ5LmMgKGc5NV9uZXh0X3N0cmluZ19jaGFyKTogUmVuYW1lIG5leHRfc3RyaW5nX2NoYXIsIGFuZAoJbWFrZSBzdGF0aWMuICBBZGp1c3QgY2FsbGVycyBhY2NvcmRpbmdseS4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX2dlbmVyaWNfZjApOiBSZXR1cm4gdHJ5LCBub3QgbWF0Y2guICBBZGp1c3QKCWNhbGxlcnMgYWNjb3JkaW5nbHkuCgkqIGc5NS5oOiBTcGxpdCBvdXQgYWxsIGc5NV9tYXRjaCogZnVuY3Rpb25zIHRvLi4uCgkqIG1hdGNoLmg6IC4uLmhlcmUuIE5ldyBmaWxlLgoJKiBhcnJheS5jLCBkZWNsLmMsIGV4cHIuYywgZm9ybWF0LmMsIGludGVyZmFjZS5jLCBpby5jLCBtYXRjaC5jLAoJbWF0Y2hleHAuYywgbW9kdWxlLmMsIHBhcnNlLmMsIHByaW1hcnkuYzogSW5sY3VkZSBtYXRjaC5oCgoyMDAzLTAxLTA3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIHN5bWJvbC5jIChnOTVfY2xlYXJfbmV3X2ltcGxpY2l0LCBnOTVfYWRkX25ld19pbXBsaWNpdF9yYW5nZSwKCWc5NV9tZXJnZV9uZXdfaW1wbGljaXQpOiBOZXcgZnVuY3Rpb25zLgoJKGc5NV9tYXRjaF9pbXBsaWNpdF9ub25lLCBnOTVfbWF0Y2hfaW1wbGljaXQpOiBNb3ZlIGZyb20gaGVyZS4uLgoJKiBtYXRjaC5jIChnOTVfbWF0Y2hfaW1wbGljaXRfbm9uZSwgZzk1X21hdGNoX2ltcGxpY2l0KTogLi4uIHRvIGhlcmUuCglNb2RpZnkgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb25zIGluIHN5bWJvbC5jLgoJKiBnOTUuaDogQWRkIGFuZCBtb3ZlIHByb3RvdHlwZXMuCgoyMDAzLTAxLTA2ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGJidC5jIChpbnNlcnQpOiBVc2UgYSB0eXBlZGVmJ2VkIGNvbXBhcmVfZm4gcHJvdG90eXBlIGZvciB0aGUKCW5vZGUgY29tcGFyZSBmdW5jdGlvbi4KCShnOTVfaW5zZXJ0X2JidCk6IExpa2V3aXNlLgoJKGc5NV9pbnNlcnRfYmJ0X3dpdGhfb3ZlcmxhcCk6IExpa2V3aXNlLgoJKGc5NV9kZWxldGVfYmJ0KTogTGlrZXdpc2UuCgkoZGVsZXRlX3RyZWFwKTogTGlrZXdpc2UuIEFsc28gZml4IGEgcG90ZW50aWFsIGJ1ZyB3aGVuIGNhbGxpbmcgaXQuCgkqIG1vZHVsZS5jIChjb21wYXJlX3BvaW50ZXJzKTogQ2hhbmdlIHByb3RvIHRvIGNvbXBhcmVfZm4uCgkoY29tcGFyZV9pbnRlZ2Vycyk6IExpa2V3aXNlLgoJKGNvbXBhcmVfdHJ1ZV9uYW1lcyk6IExpa2V3aXNlLgoJKGZpbmRfdHJ1ZV9uYW1lKTogQWRqdXN0IGNhbGwgdG8gY29tcGFyZV90cnVlX25hbWVzIHRvIG1hdGNoIHByb3RvLgoJKHJlcXVpcmVfYXRvbSwgd3JpdGVfYXRvbSwgbWlvX25hbWUpOiBGaXggJ2NvbnN0JyB3YXJuaW5ncy4KCShpbml0X3BpX3RyZWUpOiBNYWtlIGNvbXBhcmUgYSBjb21wYXJlX2ZuIGluc3RlYWQgb2YgKGludCAqKS4KCSogcmVzb2x2ZS5jIChjb21wYXJlX2Nhc2VzKTogQ2hhbmdlIHByb3RvIHRvIGNvbXBhcmVfZm4uCgkqIHN5bWJvbC5jIChnOTVfY29tcGFyZV9zeW10cmVlKTogQ2hhbmdlIHByb3RvIHRvIGNvbXBhcmVfZm4sIG1ha2UKCWl0IHN0YXRpYywgYW5kIHJlbmFtZSB0byBjb21wYXJlX3N5bXRyZWUuCgkoZGVsZXRlX3N5bXRyZWUsIGc5NV91bmRvX3N5bWJvbHMsIGc5NV9uZXdfc3ltdHJlZSk6IFVzZSByZW5hbWVkCglmdW5jdGlvbi4KCSogZzk1Lmg6IEtpbGwgZzk1X2NvbXBhcmVfc3ltdHJlZSBwcm90b3R5cGUuIEFkanVzdCBwcm90b3R5cGVzCglvZiBnOTVfaW5zZXJ0X2JidCwgZzk1X2luc2VydF9iYnRfd2l0aF9vdmVybGFwLCBhbmQgZzk1X2RlbGV0ZV9iYnQuCgoyMDAzLTAxLTA2ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCSogTWFrZS1sYW5nLmluOiBGaXggc3BhY2VzL3RhYnMgaXNzdWVzIGZyb20gcHJldmlvdXMgcGF0Y2guCgkqIHBhdGNoLm9wdGlvbnM6IEJsb3cgYXdheSBQYXVsJ3MgY2hlY2tpbiBtaXN0YWtlIDotKQoJKiBpby5jICh0ZXJtaW5hdGVfaW8pOiBGaXggbWVtb3J5IGxlYWsgKEFybmF1ZCkuCgoyMDAzLTAxLTA2ICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIE1ha2UtbGFuZy5pbjogVGVhY2ggYWJvdXQgYnVpbGRpbmcgRFZJLCBpbmZvIG1hbnVhbC4KCSogZzk1LnRleGk6IE5ldyBmaWxlLgoKMjAwMy0wMS0wMiAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfcmV2ZXJzZV9zcyk6IE1ha2Ugc3RhdGljIGFuZCBkb24ndCB1c2UuCgkoZzk1X2NvbnZfc3NfZGVzY3JpcHRvcik6IERvbid0IHVzZSBnOTVfbG9vcGluZm8KCShnOTVfY29udl9hcnJheV9wYXJhbWV0ZXJzKTogTW9kaWZ5IGZvciBwb2ludGVyIGFzc2lnbm1lbnRzLgoJKGc5NV93YWxrX3N1YmV4cHIpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X3dhbGtfZXhwciopOiBVc2UgaXQuCgkqIHRyYW5zLWFycmF5LmggKGc5NV9yZXZlcnNlX3NzKTogUmVtb3ZlIHByb3RvdHlwZS4KCSogdHJhbnMtZXhwci5jIChnOTVfdHJhbnNfcG9pbnRlcl9hc3NpZ24pOiBJbXBsZW1lbnQuCgkoTWFueSk6IFNldCBzZS53YW50X3BvaW50ZXIgYmVmb3JlIGNhbGxpbmcgZzk1X2NvbnZfYXJyYXlfcGFyYW1ldGVyLgoJKiB0cmFucy1pbnRyaW5zaWMuYzogU3luYyB3aXRoIHNjYWxhcml6ZXIgY2hhbmdlcy4KCSogdHJhbnMtaW8uYzogRGl0dG8uCgoyMDAyLTEyLTI5ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmM6IERvY3VtZW50IGNhbGxpbmcgY29udmVudGlvbiBmb3IgYXJyYXlzLgoKMjAwMi0xMi0xOSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZzk1X2NvbnZfaW50cnNpbnNpY19mdW5jdGlvbik6IFJlbW92ZSBpbmNvcnJlY3QKCWFzc2VydGlvbi4gUmVtb3ZlIGludHJpbnNpYyBzdWJyb3V0aW5lIEc5NV9JU1lNXyogY2FzZXMuIEFsd2F5cyBwYXNzCglvcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBzb21lIGludHJpbnNpY3MuCgkoZzk1X2lzX2ludHJpbnNpY19saWJjYWxsKTogQWRkIEc5NV9JU1lNX1JFU0hBUEUuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IFBhc3MgTlVMTCBmb3IgYWJzZW50CglvcHRpb25hbCBwYXJhbWV0ZXJzLgoJKiB0cmFucy5oIChnOTVfc2UpOiBBZGQgaWdub3JlX29wdGlvbmFsIGZsYWcuCgoyMDAyLTEyLTE1ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9jb252X2FycmF5X3BhcmFtZXRlcik6IEZpeCBwYXJ0aWFsIHJhbmsgc2VjdGlvbnMuCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBVc2UgVERJX29yaWdpbmFsLgoKMjAwMi0xMi0xNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19jYWxsKTogVXNlIHJlc29sdmVkIHN5bWJvbCBuYW1lLgoKMjAwMi0xMi0xMiAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfdHJhbnNfYXJyYXlfY29uc3RydWN0b3Jfc3ViYXJyYXkpOiBGdWxseQoJaW5pdGlhbGl6ZSB0aGUgc2NhbGFyaXplci4KCSh2YXJpb3VzKTogVXBkYXRlIHRvIG5ldyBmb3JtYXQgb2YgZzk1X2V4cHItPnZhbHVlLmNvbnN0cnVjdG9yLgoKMjAwMi0xMi0wOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfcHV0X29mZnNldF9pbnRvX3Zhcik6IE5ldyBmdW5jdGlvbi4KCShnOTVfdHJhbnNfYXJyYXlfY29uc3RydWN0b3Jfc3ViYXJyYXkpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3ZhbHVlKTogVXNlIGl0LgoJKGc5NV9hcnJheV9jb25zX3NpemUpOiBEb24ndCBhYm9ydCgpIG9uIGFycmF5IGNvbXBvbmVudHMuCgoyMDAyLTEyLTA4ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoRjk1X0FERElUSU9OQUxfT0JKUyk6IFJlbW92ZSB0cmVlLWRjaGFpbi5vLgoJKiBzdXBwb3J0LmM6IFVwZGF0ZSAjaW5jbHVkZXMuCgkoc3RhdGVtZW50X2NvZGVfcCwgY19zaXplX2luX2J5dGVzLCBzX3NpemVfdHlwZV9ub2RlKTogUmVtb3ZlLgoJKiB0cmFucy1hcnJheS5jOiBVcGRhdGUgI2luY2x1ZGVzLgoJKiB0cmFucy5jOiBEaXR0by4KCSogdHJhbnMtY29uc3QuYzogRGl0dG8uCgkqIHRyYW5zLWlvLmM6IERpdHRvLgoJKiB0cmFucy10eXBlcy5jOiBEaXR0by4KCShnOTVfaW5pdF90eXBlcyk6IFNldCBzaXplX3R5cGVfbm9kZS4KCSogdHJhbnMtZGVjbC5jOiBVcGRhdGUgI2luY2x1ZGVzLgoJKGdmb3JfZm5kZWNsX2FkanVzdHtsLHJ9KTogRGVjbGFyZSBhbmQgaW5pdGlhbGl6ZS4KCSogdHJhbnMtc3RtdC5jOiBVcGRhdGUgI2luY2x1ZGVzLgoJKGc5NV90cmFuc19kb193aGlsZSk6IEdlbmVyYXRlIExBQkVMX0VYUFIsIG5vdCBHT1RPX0VYUFIuCgkoZzk1X3RyYW5zX3NlbGVjdCk6IEZpeCBjaGVjayBmb3IgdW5ib3VuZGVkIHJhbmdlcy4KCSogdHJhbnMtZXhwci5jOiBVcGRhdGUgI2luY2x1ZGVzLgoJKGc5NV9jb252X3N0cmluZ190bXApOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfY29uY2F0X29wKTogVXNlIGl0LgoJKiB0cmFucy5oIChnOTVfY29udl9zdHJpbmdfdG1wLCBnZm9yX2ZuZGVjbF9hZGp1c3R7bCxyfSk6IERlY2xhcmUuCgkqIFRyYW5zLWludHJpc2ljLmM6IFVwZGF0ZSAjaW5jbHVkZXMuCgkoZzk1X2NvbnZfaW50cmluc2ljX3N0cmNtcCk6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfYWRqdXN0KTogRGl0dG8uCgkoZzk1X2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uOiBVc2UgdGhlbS4KCjIwMDItMTEtMzAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZzk1X3dhbGtfZnVuY3Rpb25fZXhwcik6IEhhbmRsZSBub24tYXJyYXkgcmV0dXJuIGJ5CglyZWZlcmVuY2UuCgkqIHRyYW5zLWRlYy5jIChnOTVfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IEhhbmRsZSBjaGFyYWN0ZXIgcmV0dXJuCglwYXJhbW1ldGVycy4KCShnOTVfZ2V0X2Zha2VfcmVzdWx0X2RlY2wpOiBEaXR0by4KCShnOTVfdHJhbnNfZGVmZXJyZWRfdmFycyk6IERpdHRvLgoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X2Z1bmN0aW9uX2NhbGwpOiBEaXR0by4KCShnOTVfdHJhbnNfYXJyYXlmdW5jX2Fzc2lnbikgTGltaXQgdG8gYXJyYXkgdmFsdWVkIGZ1bmN0aW9ucy4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19jaGFyKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbik6IFVzZSBpdC4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X3N5bV90eXBlKTogSGFuZGxlIGZ1bmN0aW9ucyByZXR1cm5pbmcgc3RyaW5ncy4KCShnOTVfcmV0dXJuX2J5X3JlZmVyZW5jZSk6IERpdHRvLgoJKGc5NV9nZXRfZnVuY3Rpb25fdHlwZSk6IERpdHRvLgoKMjAwMi0xMS0xOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19pZik6IEZpeCBJRiBzdGF0ZW1lbnRzIHdoZW4gdGhlIGNvbmRpdGlvbgoJcmVxdWlyZXMgYSB0ZW1wb3JhcnkuCgkoZzk1X3RyYW5zX3NlbGVjdCk6IEhhbmRsZSBjb21wdXRlZCBnb3Rvcy4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X2J1aWxkX2FycmF5X3R5cGUpOiBXYXJuIGFib3V0IG5vbi1mdW5jdGlvbmFsCglhc3N1bWVkIHNoYXBlIGFycmF5cy4KCSogdHJhbnMtZXhwci5jIChnOTVfdHJhbnNfc2NhbGFyX2Fzc2lnbik6IENvcnJlY3RseSBoYW5kbGUgcG9zdAoJYmxvY2tzLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZzk1X2NvbnZfaW50cmluc2ljX3JvdW5kKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9jb252X2ludHJpbnNpY19pbnQpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfaW50cmluc2ljX21vZCk6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfaWNoYXIpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIHRoZW0uCgkoZzk1X2NvbnZfaW50cmluc2ljX2RpbSk6IFVzZSBnOTVfZXZhbHVhdGVfbm93LgoKMjAwMi0xMS0xNyAgVG9vbiBNb2VuZSAgPHRvb25AbW9lbmUuaW5kaXYubmx1dWcubmw+CgoJKiB0cmFucy10eXBlcy5jIChnOTVfYnVpbGRfYXJyYXlfdHlwZSk6IEFzc3VtZWQKCXNpemVkIGFycmF5cyBjYW4gaGF2ZSByYW5rID4gMS4KCSogdHJhbnMuYyAoZzk1X3RyYW5zX2NvZGUpOiBSZW1vdmUgZXJyb25lb3VzCgl3YXJuaW5nIGFib3V0IENPTlRJTlVFLgoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X3ZhcmlhYmxlKTogUmVtb3ZlCgllcnJvbmVvdXMgYXNzZXJ0LgoKMjAwMi0xMS0xNSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jIChnOTVfY29udl9hcnJheV9wYXJhbWV0ZXIpOiBDaGVjayBmb3IgTlVMTCBzdHJpZGUuCgoyMDAyLTEwLTMxICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIGY5NS10cmVlLmM6IFJlbW92ZSB0cmVlIGNvcHlpbmcgc3R1ZmYgdGhhdCdzIG5vdyBpbiBnaW1wbGUuYwoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X2NvbXBvbmVudF9yZWYpOiBIYW5kbGUgY2hhcmFjdGVyIHN0cmluZwoJY29tcG9uZW50cy4KCShnOTVfY29udl9zdHJpbmdfcGFyYW1ldGVyKTogRGl0dG8uCgkqIHRyYW5zLXR5cGVzLmMgKGc5NV9nZXRfZGVyaXZlZF90eXBlKTogQWRkIGxlbmd0aCBkZWNsIHRvIGNhcmFjdGVyCglzdHJpbmcgY29tcG9uZW50cy4KCjIwMDItMTAtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtZGVjbC5jIChnZm9yX2ZuZGVjbF9zaXplPyk6IERlY2xhcmUgYW5kIGluaXRpYWxpemUuCgkqIHRyYW5zLWV4cHIuYyAoZzk1X2NvbnZfZnVuY3Rpb25fY2FsbCk6IFJlbW92ZSB1bnJlbGlhYmxlIHJldHVybiB2YWx1ZQoJY2hlY2suCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfc2l6ZSk6IE5ldyBmdW5jdGlvbi4KCShnOTVfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBIYW5kbGUgc2l6ZSBhbmQgc2hhcGUgaW50cmluc2ljcy4KCShnOTVfaXNfaW50cmluc2ljX2xpYmNhbGwpOiBBZGQgRzk1X0lTWU1fU0hBUEUuCgkqIHRyYW5zLXR5cGVzLmMgKHB2b2lkX3R5cGVfbm9kZSk6IERlY2xhcmUgYW5kIGluaXRpYWxpemUuCgkqIHRyYW5zLWFycmF5LmM6IEZpeCB0eXBvIENPTVBPTkVOVF9SRUYtPlJFRl9DT01QT05FTlQKCShnOTVfYXJyYXlfYWxsb2NhdGUpOiBGaXggd2hlbiBiYXNlPT1kYXRhLgoJKGc5NV9jb252X2FycmF5X3BhcmFtZXRlcik6IENvcnJlY3RseSBoYW5kbGUgcmVkdWNlZCByYW5rIHNlY3Rpb25zLgoJKiB0cmFucy1pby5jIChnOTVfdHJhbnNfd3JpdGUpOiBDb3JyZWN0bHkgaGFuZGxlIHN0cmluZyBtb2RpZmllcnMuCgoyMDAyLTEwLTA5ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIChnOTVfY29udl9leHByX3JlZmVyZW5jZSk6IEhhbmRsZSBjaGFyYWN0ZXIgc3RyaW5ncyBjb3JyZWN0bHkuCgoyMDAyLTEwLTA3ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkoZzk1X2V4cGFuZF9kZWNsKTogUmVuYW1lIGZyb20gZjk1X2V4cGFuZF9kZWNsX3N0bXQgYW5kIHVzZSBhcwoJbGFuZ2hvb2suCgkqIHRyYW5zLWFycmF5LmMgKGc5NV9idWlsZF9hcnJheV9pbml0aWFsaXplcik6IFJlbW92ZS4KCShnOTVfY29udl9hcnJheV9pbml0aWFsaXplcik6IE5ldyBGdW5jdGlvbi4KCShnOTVfdHJhbnNfYXV0b19hcnJ5X2FsbG9jYXRpb24pOiBDbGVhbnVwLgoJKGc5NV90cmFuc19pbml0X2NoYXJhY3Rlcl9hcnJheSk6IFJlbW92ZS4KCSogZzk1c3BlYy5jOiBMaW5rIGluIGxpYmdmb3JiZWdpbi4KCSogdHJhbnMuYyAoZzk1X2dlbmVyYXRlX2NvZGUpOiBSZW5hbWUgbWFpbiBmdW5jdGlvbiB0byBNQUlOX18uCgkoZzk1X2NyZWF0ZV92YXIpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NyZWF0ZV92YXJfbnApOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2V2YWx1YXRlX25vdyk6IE5ldyBmdW5jdGlvbi4KCShnOTVfc3RhcnRfYmxvY2spOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2ZpbmlzaF9ibG9jayk6IE5ldyBmdW5jdGlvbi4KCShnOTVfYWRkX2V4cHJfdG9fYmxvY2spOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2FkZF9ibG9ja190b19ibG9jayk6IE5ldyBmdW5jdGlvbi4KCSogdHJhbnMtZXhwci5jIChnOTVfY29udl9jb21wb25lbl9yZWYpOiBOZXcgZnVuY3Rpb24uCgkqIE1ha2UtbGFuZy5pbiAoRjk1X0FERElUSU9OQUxfT0JKUyk6IEFkZCBnaW1wbGlmeS5vLgoJKEY5NV9PQkpTKTogQWRkIGRlcGVuZGVuY3kuby4KCSogZjk1LWxhbmcuYyAoZzk1X2lzX3NpbXBsZV9zdG10KTogUmVtb3ZlLgoJKiBmOTUtdHJlZS5jIChtYXJrX25vdF9zaW1wbGUpOiBOZXcgZnVuY3Rpb24uCgkodW5zaGFyZV9hbGxfdHJlZXMpOiBOZXcgZnVuY3Rpb24uCgkoY3JlYXRlX3RtcF92YXIsIGNyZWF0ZV90bXBfYWxpYXNfdmFyKTogUmVtb3ZlLgoJKiBzdXBwb3J0LmMgKGRlY2xhcmVfdG1wX3ZhcnMsIHRyZWVfbGFzdF9kZWNsKTogUmVtb3ZlLgoJKiB0cmFucyo6IENvbnZlcnQgdG8gbmV3IElSIHVzaW5nIEdFTkVSSUMgdHJlZXMuICBEb24ndCBib3RoZXIgYWJvdXQKCVNJTVBMRS9HSU1QTEUgcnVsZXMsIHRoaXMgaXMgbm93IGRvbmUgYnkgTGFuZy1pbmRlcGVuZGFudCBjb2RlLgoKMjAwMi0xMC0wMSAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1hcnJheS5jOiBBZGQgc3VwcG9ydCBmb3IgZGVzY3JpcHRvcmxlc3MgYXJyYXlzLgoJKGc5NV9jb252X2FycmF5X2RhdGEpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfYXJyYXlfYmFzZSk6IE5ldyBmdW5jdGlvbi4KCSogdHJhbnMtYXJyYXkuaDogRGVjbGFyZSB0aGVzZSBoZXJlLgoJKiB0cmFucy1kZWNsLmMoZzk1X2NyZWF0ZV9tb3BkdWxlX3ZhcmlhYmxlKTogUGVyZm9ybSB2YXJpYWJsZQoJaW5pdGlhbGl6YXRpb24gYW5kIGNyZWF0aW9uIGhlcmUuCgkoZzk1X2NyZWF0ZV9tb2R1bGVfdmFycyk6IEluc3RlYWQgb2YgaGVyZS4KCSogdHJhbnMuaCAoRzk1X1RZUEVfQVJSQVlfKjogUmVuYW1lIGZyb20gRzk1X1RZUEVfREVTQ1JJUFRPUl8qLgoJKiB0cmFucy1pbnRyaW5zaWMuYzogRGl0dG8uCgkqIHRyYW5zLXR5cGVzLmMgKGc5NV9pc19ub2Rlc2NfYXJyYXkpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCShnOTVfc3ltX3R5cGUsIGc5NV9nZXRfZGVyaXZlZF90eXBlKTogVXNlIHRoZW0uCgkqIHRyYW5zLWNvbnN0LmMgKGc5NV9jb252X21wZl90b190cmVlKTogUmVtb3ZlIHdvcmthcm91bmQuCgoyMDAyLTA5LTI4ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWNvbnN0LmMgKGc5NV9jb252X21wZl90b190cmVlKTogV29yayBhcm91bmQgYmFja2VuZCBidWcuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnOTVfY29udl9pbnRyaW5zaWNfYWJzKTogQ29ycmVjdGx5IGRldGVjdCBjb21wbGV4CglwYXJhbWV0ZXJzLgoKMjAwMi0wOS0yNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBmOTUtbGFuZy5jIChsaXN0aWZ5KTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGV4cGFuZF9mdW5jdGlvbl9ib2R5KTogVXNlIG9wdGltaXplID49MSBpbnN0ZWFkIG9mIGZsYWdfdHJlZV9zYWEuCgkobGlzdGlmeSkKCSogZjk1LXRyZWUuYyAoZ2V0X25hbWUpOiBOZXcgZnVuY3Rpb24uCgkqIHRyYW5zLmMgKG1vZHVsZV9uYW1lc3BhY2UpOiBSZW1vdmUuCgkqIHRyYW5zLWRlY2wuYzogVXNlIGc5NV9jaGFpbm9uX2xpc3QgcmF0aGVyIHRoYW4gY2hhaW5vbihsaXN0aWZ5KCkpLgoJKiB0cmFucy10eXBlcy5jOiBEaXR0by4KCjIwMDItMDktMTkgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYyAoZzk1X2dldF9hcnJheV9jb25zX3NpemUpOiBOZXcgRnVuY3Rpb24uCgkoZzk1X2Nvbl9zc19zdGFydHN0cmlkZSk6IEhhbmRsZSBBcnJheSBjb25zdHJ1Y3RvcnMuCgkoZzk1X2NvbnZfbG9vcF9zZXR1cCk6IERpdHRvLgoJKGc5NV9jb252X2FycmF5X3BhcmFtZXRlcik6IERpdHRvLgoJKiB0cmFzLWRlY2wuYyAoZzk1X2ZpbmlzaF92YXJfZGVjbCk6IE1ha2UgaW5pdGlhbGl6ZXMgdmFyaWFibGVzCglzdGF0aWMuCgoyMDAyLTA5LTE5ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLmMgKGc5NV9zaW1wbGVfZm9sZF90bXApOiBEZXRlY3QgdmFyaWFibGVzIGluc2lkZQoJTk9OX0xWQUxVRV9FWFBSLgoJKiB0cmFucy1zdG10LmMgKGc5NV90cmFuc19hcml0aG1ldGljX2lmKTogSW1wbGVtZW50IHRoaXMuCgoyMDAyLTA5LTE4ICBTdGV2ZW4gQm9zc2NoZXIgPHMuYm9zc2NoZXJAc3R1ZGVudC50dWRlbGZ0Lm5sPgoKCSogTWFrZS1sYW5nLmluIChGOTVfQURESVRJT05BTF9PQkpTKTogQWRkIHRyZWUtc3NhLWRjZS5vCgoyMDAyLTA5LTE0ICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLmMgKGc5NV9jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlKTogTW92ZSB0byB0cmFucy1kZWNsLmMuCgkqIHRyYW5zLWNvbnN0LmMgKGc5NV9jb252X3N0cmluZ19pbml0KTogTmV3IEZ1bmN0aW9uLgoJKiB0cmFucy1jb25zdC5oOiBEZWNsYXJlIGl0LgoJKiB0cmFucy1kZWNsLmMgKGc5NV9nZXRfc3ltYm9sX2RlY2wpOiBIYW5kbGUgaW5pdGlhbGl6ZXJzIGZvciBzdGF0aWMKCXZhcmlhYmxlcy4gRG9uJ3QgYmFpbCBvbiBpbnRyaW5zaWMgc3ltYm9scy4KCShnZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wpOiBIYW5kbGUgc3BlY2lmaWMgaW50cmluc2ljIGZ1bmN0aW9ucy4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X3N5bV90eXBlKTogRHVtbXkgZnVuY3Rpb25zIGRvbid0IHJldHVybgoJcmVmZXJlbmNlIHR5cGVzLgoJKiB0cmFucy1hcnJheS5jIChnOTVfYnVpbGRfYXJyYXlfaW5pdGlhbGl6ZXIpOiBOZXcgRnVuY3Rpb24uCgkoZzk1X3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbik6IEJ1aWxkIGluaXRpYWxpemVyIGZvciBzdGF0aWMgZGVjbHMuCglEb24ndCB1c2UgbXB6X2FkZG11bCwgaXQncyBHTVA0IG9ubHkuCgoyMDAyLTA5LTEyICBQYXVsIEJyb29rICA8cGF1bEBub3d0Lm9yZz4KCgkqIHRyYW5zLWRlY2wuYyAoZzk1X2dlbmVyYXRlX2NvZGUpOiBGaXggdGhpbmtvIHdpdGggcmV0dXJuIHZhcmlhYmxlLgoJKGc5NV9nZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wsIGc5NV9idWlsZF9mdW5jdGlvbl9kZWNsKTogTWFuZ2xlCglhc3NlbWJsZXIgbmFtZXMgZm9yIG1vZHVsZSBwcm9jZWR1cmVzLgoKMjAwMi0wOS0xMSAgVG9iaWFzIFNjaGx1ZXRlciAgPFRvYmlhcy5TY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWFycmF5LmMsaCB0cmFucy1leHByLmMsIHRyYW5zLXN0bXQuYzogQ29ycmVjdCBzcGVsbGluZyBvZgoJZGVwZW5kZW5jeS8KCjIwMDItMDktMTAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtYXJyYXkuYzogQ2hhbmdlIGZvcm1hdCBvZiBHOTVfU1NfVEVNUCBzdHJpY3R1cmVzLgoJKGc5NV9jaGVja19mbmNhbGxfZGVwZW5kYW5jeSk6IE5ldyBmdW5jdGlvbi4KCSh0cmFuc19kdW1teV9hcnJheV9iaWFzKTogc3RyaWRlW25dLCBub3Qgc3RyaWRlW24tMV0uIGZvciBjYWxjdWxhdGluZwoJb2Zmc2V0cy4KCSogdHJhbnMtZGVjbC5jIChnOTVfZ2V0X3N5bWJvbF9kZWNsKTogbW92ZSBhc3NlcnRpb24gYWZ0ZXIgaGFuZGxpbmcgb2YKCXJlc3VsdCB2YXJpYWJsZXMuCgkoZzk1X2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBEb24ndCBhc3N1bWUgcmVzdWx0IGFycmF5cyBhcmUgcGFja2VkLgoJKGc5NV90cmFucy1kZWZlcnJlZC12YXJzKTogSGFuZGxlIGFycmF5IHJlc3VsdCB2YXJpYWJsZXMuCgkoZzk1X2dlbmVyYXRlX2Z1Y3Rpb25fY29kZSk6IENsZWFyIHNhdmVkX2Z1bmN0aW9uX2RlY2xzLgoJKiB0cmFucy1leHByLmMgKGc5NV9jb252X2ZuY3Rpb25fY2FsbCk6IEhhbmRsZSBkaXJlY3QgYXJyYXkgcmV0dXJuIGJ5CglyZWZlcmVuY2UuCgkoZzk1X3RyYW5zX2FycmF5ZnVuY19hc3NpZ24pOiBOZXcgZnVuY3Rpb24uCgkoZzk1X3RyYW5zX2Fzc2lnbm1lbnQpOiBVc2UgaXQuCgkqIHRyYW5zLmggKGc5NV9zcyk6IEFkZCB0ZW1wIHN0cnVjdCBmb3IgRzk1X1NTX1RFTVAuCgkoZzk1X3NlKTogQWRkIGRpcmVjdF9ieXJlZi4KCSogdHJhbnMtdHlwZXMuYzogVXNlIHN5bS0+cmVzdWx0IHJhdGhlciB0aGFuIHN5bSB3aGVyZSBhcHByb3ByaWF0ZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19mdW5jYWxsKTogTmV3IGZ1bmN0aW9uLgoJVXBkYXRlIG90aGVyIGZ1bmN0aW9ucyB0byB1c2UgdGhpcy4KCShnOTVfaXNfaW50cmluc2ljX2xpYmNhbGwpOiBOZXcgZnVuY3Rpb24uCgkoZzk1X2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogQWRkIE1BVE1VTCBhbmQgUFJPRFVDVCBpbnRyaW5zaWNzLgoJKGc5NV93YWxrX2ludHJpbnNpY19mdW5jdGlvbik6IERpdHRvLgoKMjAwMi0wOS0wOCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy10eXBlcy5jOiBDaGFuZ2UgcmFuayBmaWVsZCB0byBkdHlwZSBmaWVsZCBpbiBhcnJheSBkZXNjcmlwdG9yLgoJKiB0cmFucy1hcnJheS5jOiBJbXBsZW1lbnQgZmlsbGluZyBvZiBkdHlwZSBhcnJheSBkZXNjcmlwdG9yIGZpZWxkLgoJKiB0cmFucy1pbnRyaW5zaWMuYzogRml4IGJyb2tlbiBMRU4gaW50cmluc2ljLgoKMjAwMi0wOS0wNyAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiB0cmFucy1pbnRyaW5zaWMuYzogUmVtb3ZlIG91dGRhdGVkIHRvZG8gaW50cmluc2ljIGxpc3QuCgkoZzk1X2dldF9zeW1ib2xfZm9yX2V4cHIpOiBSZW1vdmUgaGFjayBmb3IgZm9ydHJhbiBiYXNlZCBpbnRyaW5zaWNzLgoJKGc5NV93YWxrX2ludHJpbnNpY19mdW5jdGlvbik6IEFkZCBNSU5MT0MgYW5kIE1BWExPQy4KCjIwMDItMDktMDYgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogTWFrZS1sYW5nLmluIChGOTVfQURESVRJT05BTF9PQkpTKTogQWRkIHRyZWVfYWxpYXNfY29tb24uby4KCShndC1mOTUtdHJhbnMtdHlwZXMuaCk6IEFkZCBkZXBlbmRhbmN5IGluZm9ybWF0aW9uLgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IEFkZCB0cmFucy10eXBlcy5jCgkqIGY5NS1sYW5nLmMgKGc5NV9iZV9wYXJzZV9maWxlKTogUGFzcyBlcnJvciBhbmQgd2FybmluZyBjb3VudHMKCWJhY2sgdG8gdG9wLWxldmVsIGNvZGUuCgkqIHRyYW5zLWFycmF5LmMsIHRyYW5zLXR5cGVzLmM6IENoYW5nZSBmb3JtYXQgb2YgYXJyYXkgZGVzY3JpcHRvci4KCShnOTVfY29udl9kZXNjcmlwdG9yX2RpbWVuc2lvbik6IE5ldyBmdW5jdGlvbi4KCSogdHJhbnMtdHlwZXMuaCAoZzk1X2NvbnZfZGVzY3JpcHRvcl9yYW5rKTogZGVmaW5lLgoJKiB0cmFucy1pbnRyaW5zaWMuYzogSW1wbGVtZW50IFBST0RVQ1QsIENPVU5ULiBNSU5MT0MgYW5kIE1BWExPQwoJaW50cmluc2ljcy4KCjIwMDItMDktMDIgIFN0ZXZlbiBCb3NzY2hlciA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiB0cmFucy1hcnJheS5jLCB0cmFucy10eXBlcy5jOglBZGQgcmFuayBpbmZvcm1hdGlvbiB0byBkZXNjcmlwdG9yLgoKMjAwMi0wOS0wNiAgVG9iaWFzIFNjaGx1ZXRlciAgPFRvYmlhcy5TY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLXN0bXQuYyAoZzk1X3RyYW5zX2FsbG9jYXRlKTogRml4IHdoZW4gcmVmPT1OVUxMLgoKMjAwMi0wOS0wNCAgUGF1bCBCcm9vayAgPHBhdWxAbm93dC5vcmc+CgoJKiBmOTUtbGFuZy5jIChnOTVfY3JlYXRlX2RlY2xzKTogTmV3IGZ1bmN0aW9uLgoJKGc5NV9pbml0KTogIE1vdmUgaW5pdGlhbGl6YXRpb24gb2YgZXh0ZXJuYWwgZGVjbHMgdG8gYWJvdmUsIGFuZCBjYWxsCglmcm9tIGc5NV9iZV9wYXJzZV9maWxlLgoJKiB0cmFucy5jIChnOTVfZmluaXNoX3N0bXQpOiBEb24ndCBhbXB1dGF0ZSB0aGUgZGVjbCBjaGFpbi4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X2luaXRfdHlwZXMpOiBBbHdheXMgbmFtZSBpbnRlZ2VyIGFuZCBjaGFyIHR5cGVzLgoJKGc5NV9nZXRfYXJyYXlfdHlwZV9ib3VuZHMpOiBUWVBFX05BTUUgbWF5IGJlIGEgVFlQRV9ERUNMLgoKMjAwMi0wOS0wMiAgU3RldmVuIEJvc3NjaGVyIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIE1ha2UtbGFuZy5pbjogQWRkIG9wdGlvbnMuYyB0byBGOTVfUEFSU0VSX09CSlMKCjIwMDItMDktMDIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogZzk1X2dlbmVyYXRlX2NvZGU6IENsZWFyIHRoZSBhdHRyIGZvciBfX2ZvcnRyYW5fbWFpbi4KCSogdHJhbnMtdHlwZXMuYyAoZzk1X2ZpbmlzaF90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKiBnOTVfaW5pdF9pb19zdGF0ZV90eXBlOiBVc2UgZzk1X2ZpbmlzaF90eXBlLgoJKiBnOTVfY29udl9pbnRyaW5zaWNfYW55YWxsOiBGaXggdGhpbmtvIGluIHJlc3VsdCBpbml0aWFsaXphdGlvbi4KCjIwMDItMDktMDEgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogUkVBRE1FLmJhY2tlbmQ6IFdhcm4gYWJvdXQgdGhlIGRhbmdlcnMgb2YgZXh0cmEgY29uZmlnLmggZmlsZXMuCglSZW1vdmUgb2Jzb2xldGUgbGliZ2ZvciBzdHVmZi4KCSogY29uZmlnLWxhbmcuaW46IEFkZCB0YXJnZXQtbGliZ2ZvciBkZXBlbmRhbmN5LgoJKiBnOTVfY29udl9tcGZfdG9fdHJlZTogVXNlICYgZnJlZSBhbGxvY2F0ZWQgYnVmZmVyIHAgcmF0aGVyIHRoYW4gYnVmZi4KCjIwMDItMDktMDEgIFRvb24gTW9lbmUgIDx0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sPgoKCSogZzk1X2NvbnZfbXB6X3RvX3RyZWU6IEZyZWUgc3RvcmFnZSBwb2ludGVkIHRvIGJ5IHEsCglub3QgYnkgYnVmZi4KCjIwMDItMDgtMzAgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGc5NV9jb252X2ludHJpbnNpY19mdW5jdGlvbiwKCWc5NV93YWxrX2ludHJpbnNpY19mdW5jdGlvbik6IEFkZGVkIEFOWSBhbmQgQUxMLgoJKGc5NV9jb252X2ludHJpbnNpY19hbnlhbGwpOiBOZXcgZnVuY3Rpb24uCgkqIGlyZXNvbHZlLmMgKGc5NV9yZXNvbHZlX2FueSwgZzk1X3Jlc29sdmVfYWxsKTogSW5jbHVkZSByYW5rIGluCgltYW5nbGVkIG5hbWUK