KnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjEuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMTEKCgoJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKCgpXZWxjb21lIHRvIFZpbSBWZXJzaW9uIDYuMCEgIEEgbGFyZ2UgbnVtYmVyIG9mIGZlYXR1cmVzIGhhcyBiZWVuIGFkZGVkLiAgVGhpcwpmaWxlIG1lbnRpb25zIGFsbCB0aGUgbmV3IGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIGFkZGVkLCBjaGFuZ2VzIHRvIGV4aXN0aW5nCmZlYXR1cmVzIGFuZCBidWcgZml4ZXMgY29tcGFyZWQgdG8gVmltIDUueC4KClNlZSB8dmlfZGlmZi50eHR8IGZvciBhbiBvdmVydmlldyBvZiBkaWZmZXJlbmNlcyBiZXR3ZWVuIFZpIGFuZCBWaW0gNi4wLgpTZWUgfHZlcnNpb240LnR4dHwgZm9yIGRpZmZlcmVuY2VzIGJldHdlZW4gVmltIDMuMCBhbmQgVmltIDQuMC4KU2VlIHx2ZXJzaW9uNS50eHR8IGZvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIFZpbSA0LjAgYW5kIFZpbSA1LjAuCgpJTkNPTVBBVElCTEUgQ0hBTkdFUwkJCXxpbmNvbXBhdGlibGUtNnwKCkN1cnNvciBwb3NpdGlvbiBpbiBWaXN1YWwgbW9kZQkJfGN1cnBvcy12aXN1YWx8CnN1YnN0aXR1dGUgY29tbWFuZCBWaSBjb21wYXRpYmxlCXxzdWJzdGl0dXRlLUNSfApnbG9iYWwgb3B0aW9uIHZhbHVlcyBpbnRyb2R1Y2VkCQl8bmV3LWdsb2JhbC12YWx1ZXN8CidmaWxlZW5jb2RpbmcnIGNoYW5nZWQJCQl8ZmlsZWVuY29kaW5nLWNoYW5nZWR8CkRpZ3JhcGhzIGNoYW5nZWQJCQl8ZGlncmFwaHMtY2hhbmdlZHwKRmlsZXR5cGUgZGV0ZWN0aW9uIGNoYW5nZWQJCXxmaWxldHlwZWRldGVjdC1jaGFuZ2VkfApVbmxpc3RlZCBidWZmZXJzIGludHJvZHVjZWQJCXxuZXctdW5saXN0ZWQtYnVmZmVyc3wKQ1RSTC1VIGluIENvbW1hbmQtbGluZSBtb2RlIGNoYW5nZWQJfENUUkwtVS1jaGFuZ2VkfApDdGFncyBnb25lCQkJCXxjdGFncy1nb25lfApEb2N1bWVudGF0aW9uIHJlb3JnYW5pemVkCQl8ZG9jdW1lbnRhdGlvbi02fApNb2RlbGVzcyBzZWxlY3Rpb24gYW5kIGNsaXBib2FyZAl8bW9kZWxlc3MtYW5kLWNsaXBib2FyZHwKU21hbGwgaW5jb21wYXRpYmlsaXRpZXMJCQl8aW5jb21wLXNtYWxsLTZ8CgpORVcgRkVBVFVSRVMJCQkJfG5ldy02fAoKRm9sZGluZwkJCQkJfG5ldy1mb2xkaW5nfApWZXJ0aWNhbGx5IHNwbGl0IHdpbmRvd3MJCXxuZXctdmVydHNwbGl0fApEaWZmIG1vZGUJCQkJfG5ldy1kaWZmLW1vZGV8CkVhc3kgVmltOiBjbGljay1hbmQtdHlwZQkJfG5ldy1ldmltfApVc2VyIG1hbnVhbAkJCQl8bmV3LXVzZXItbWFudWFsfApGbGV4aWJsZSBpbmRlbnRpbmcJCQl8bmV3LWluZGVudC1mbGV4fApFeHRlbmRlZCBzZWFyY2ggcGF0dGVybnMJCXxuZXctc2VhcmNocGF0fApVVEYtOCBzdXBwb3J0CQkJCXxuZXctdXRmLTh8Ck11bHRpLWxhbmd1YWdlIHN1cHBvcnQJCQl8bmV3LW11bHRpLWxhbmd8ClBsdWdpbiBzdXBwb3J0CQkJCXxuZXctcGx1Z2luc3wKRmlsZXR5cGUgcGx1Z2lucwkJCXxuZXctZmlsZXR5cGUtcGx1Z2luc3wKRmlsZSBicm93c2VyCQkJCXxuZXctZmlsZS1icm93c2VyfApFZGl0aW5nIGZpbGVzIG92ZXIgYSBuZXR3b3JrCQl8bmV3LW5ldHdvcmstZmlsZXN8CldpbmRvdyBmb3IgY29tbWFuZC1saW5lIGVkaXRpbmcJCXxuZXctY21kd2lufApEZWJ1Z2dpbmcgbW9kZQkJCQl8bmV3LWRlYnVnLW1vZGV8CkN1cnNvciBpbiB2aXJ0dWFsIHBvc2l0aW9uCQl8bmV3LXZpcnRlZGl0fApEZWJ1Z2dlciBpbnRlcmZhY2UJCQl8bmV3LWRlYnVnLWl0ZnwKQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZpbXMJCXxuZXctdmltLXNlcnZlcnwKQnVmZmVyIHR5cGUgb3B0aW9ucwkJCXxuZXctYnVmdHlwZXwKUHJpbnRpbmcJCQkJfG5ldy1wcmludGluZ3wKUG9ydHMJCQkJCXxwb3J0cy02fApRdWlja2ZpeCBleHRlbmRlZAkJCXxxdWlja2ZpeC02fApPcGVyYXRvciBtb2RpZmllcnMJCQl8bmV3LW9wZXJhdG9yLW1vZHwKU2VhcmNoIFBhdGgJCQkJfG5ldy1zZWFyY2gtcGF0aHwKV3JpdGluZyBmaWxlcyBpbXByb3ZlZAkJCXxuZXctZmlsZS13cml0aW5nfApBcmd1bWVudCBsaXN0CQkJCXxuZXctYXJndW1lbnQtbGlzdHwKUmVzdG9yZSBhIFZpZXcJCQkJfG5ldy1WaWV3fApDb2xvciBzY2hlbWVzCQkJCXxuZXctY29sb3Itc2NoZW1lc3wKVmFyaW91cyBuZXcgaXRlbXMJCQl8bmV3LWl0ZW1zLTZ8CgpJTVBST1ZFTUVOVFMJCQkJfGltcHJvdmVtZW50cy02fAoKQ09NUElMRSBUSU1FIENIQU5HRVMJCQl8Y29tcGlsZS1jaGFuZ2VzLTZ8CgpCVUcgRklYRVMJCQkJfGJ1Zy1maXhlcy02fAoKVkVSU0lPTiA2LjEJCQl8dmVyc2lvbi02LjF8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuMXwKQWRkZWQJCQkJCXxhZGRlZC02LjF8CkZpeGVkCQkJCQl8Zml4ZWQtNi4xfAoKVkVSU0lPTiA2LjIJCQl8dmVyc2lvbi02LjJ8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuMnwKQWRkZWQJCQkJCXxhZGRlZC02LjJ8CkZpeGVkCQkJCQl8Zml4ZWQtNi4yfAoKVkVSU0lPTiA2LjMJCQl8dmVyc2lvbi02LjN8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuM3wKQWRkZWQJCQkJCXxhZGRlZC02LjN8CkZpeGVkCQkJCQl8Zml4ZWQtNi4zfAoKVkVSU0lPTiA2LjQJCQl8dmVyc2lvbi02LjR8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuNHwKQWRkZWQJCQkJCXxhZGRlZC02LjR8CkZpeGVkCQkJCQl8Zml4ZWQtNi40fAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklOQ09NUEFUSUJMRSBDSEFOR0VTCQkJCSppbmNvbXBhdGlibGUtNioKClRoZXNlIGNoYW5nZXMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHByZXZpb3VzIHJlbGVhc2VzLiAgQ2hlY2sgdGhpcyBsaXN0IGlmIHlvdQpydW4gaW50byBhIHByb2JsZW0gd2hlbiB1cGdyYWRpbmcgZnJvbSBWaW0gNS54IHRvIDYuMAoKCkN1cnNvciBwb3NpdGlvbiBpbiBWaXN1YWwgbW9kZQkJCSpjdXJwb3MtdmlzdWFsKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCldoZW4gZ29pbmcgZnJvbSBvbmUgd2luZG93IHRvIGFub3RoZXIgd2luZG93IG9uIHRoZSBzYW1lIGJ1ZmZlciB3aGlsZSBpbgpWaXN1YWwgbW9kZSwgdGhlIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgb3RoZXIgd2luZG93IGlzIGFkanVzdGVkIHRvIGtlZXAgdGhlCnNhbWUgVmlzdWFsIGFyZWEuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc3RhcnQgb2YgdGhlIFZpc3VhbCBhcmVhIGluIG9uZQp3aW5kb3cgYW5kIHRoZSBlbmQgaW4gYW5vdGhlci4gIEluIHZpbSA1LnggdGhlIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgb3RoZXIKd2luZG93IHdvdWxkIGJlIHVzZWQsIHdoaWNoIGNvdWxkIGJlIGFueXdoZXJlIGFuZCB3YXMgbm90IHZlcnkgdXNlZnVsLgoKClN1YnN0aXR1dGUgY29tbWFuZCBWaSBjb21wYXRpYmxlCQkqc3Vic3RpdHV0ZS1DUioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBzdWJzdGl0dXRlIHN0cmluZyAodGhlICJ0byIgcGFydCBvZiB0aGUgc3Vic3RpdHV0ZSBjb21tYW5kKSBoYXMgYmVlbiBtYWRlClZpIGNvbXBhdGlibGUuICBQcmV2aW91c2x5IGEgQ1RSTC1WIGhhZCBhIHNwZWNpYWwgbWVhbmluZyBhbmQgY291bGQgYmUgdXNlZCB0bwpwcmV2ZW50IGEgPENSPiB0byBpbnNlcnQgYSBsaW5lIGJyZWFrLiAgVGhpcyBtYWRlIGl0IGltcG9zc2libGUgdG8gaW5zZXJ0IGEKQ1RSTC1WIGJlZm9yZSBhIGxpbmUgYnJlYWsuICBOb3cgYSBiYWNrc2xhc2ggaXMgdXNlZCB0byBwcmV2ZW50IGEgPENSPiB0bwpjYXVzZSBhIGxpbmUgYnJlYWsuICBTaW5jZSB0aGUgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIGlzIGhhbHZlZCwgaXQgaXMgc3RpbGwKcG9zc2libGUgdG8gaW5zZXJ0IGEgbGluZSBicmVhayBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAgVGhpcyBub3cgd29ya3MganVzdApsaWtlIFZpLCBidXQgaXQncyBub3QgY29tcGF0aWJsZSB3aXRoIFZpbSB2ZXJzaW9ucyBiZWZvcmUgNi4wLgoKV2hlbiBhICI6cyIgY29tbWFuZCBkb2Vzbid0IG1ha2UgYW55IHN1YnN0aXR1dGlvbnMsIGl0IG5vIGxvbmdlciBzZXRzIHRoZSAnWwphbmQgJ10gbWFya3MuICBUaGlzIGlzIG5vdCByZWxhdGVkIHRvIFZpLCBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgdGhlc2UgbWFya3MuCgoKR2xvYmFsIG9wdGlvbiB2YWx1ZXMgaW50cm9kdWNlZAkJCSpuZXctZ2xvYmFsLXZhbHVlcyoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgYXJlIG5vdyBnbG9iYWwgdmFsdWVzIGZvciBvcHRpb25zIHdoaWNoIGFyZSBsb2NhbCB0byBhIGJ1ZmZlciBvciB3aW5kb3cuClByZXZpb3VzbHkgdGhlIGxvY2FsIG9wdGlvbnMgd2VyZSBjb3BpZWQgZnJvbSBvbmUgYnVmZmVyIHRvIGFub3RoZXIuICBXaGVuCmVkaXRpbmcgYW5vdGhlciBmaWxlIHRoaXMgY291bGQgY2F1c2Ugb3B0aW9uIHZhbHVlcyBmcm9tIGEgbW9kZWxpbmUgdG8gYmUgdXNlZApmb3IgdGhlIHdyb25nIGZpbGUuICBOb3cgdGhlIGdsb2JhbCB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBlbnRlcmluZyBhIGJ1ZmZlcgp0aGF0IGhhcyBub3QgYmVlbiB1c2VkIGJlZm9yZS4gIEFsc28sIHdoZW4gZWRpdGluZyBhbm90aGVyIGJ1ZmZlciBpbiBhIHdpbmRvdywKdGhlIGxvY2FsIHdpbmRvdyBvcHRpb25zIGFyZSByZXNldCB0byB0aGVpciBnbG9iYWwgdmFsdWVzLiAgVGhlICI6c2V0IiBjb21tYW5kCnNldHMgYm90aCB0aGUgbG9jYWwgYW5kIGdsb2JhbCB2YWx1ZXMsIHRoaXMgaXMgc3RpbGwgY29tcGF0aWJsZS4gIEJ1dCBhCm1vZGVsaW5lIG9ubHkgc2V0cyB0aGUgbG9jYWwgdmFsdWUsIHRoaXMgaXMgbm90IGJhY2t3YXJkcyBjb21wYXRpYmxlLgoKIjpsZXQgJm9wdCA9IHZhbCIgbm93IHNldHMgdGhlIGxvY2FsIGFuZCBnbG9iYWwgdmFsdWVzLCBsaWtlICI6c2V0Ii4gIE5ldwpjb21tYW5kcyBoYXZlIGJlZW4gYWRkZWQgdG8gc2V0IHRoZSBnbG9iYWwgb3IgbG9jYWwgdmFsdWU6Cgk6bGV0ICZvcHQgPSB2YWwJCWxpa2UgIjpzZXQiCgk6bGV0ICZnOm9wdCA9IHZhbAlsaWtlICI6c2V0Z2xvYmFsIgoJOmxldCAmbDpvcHQgPSB2YWwJbGlrZSAiOnNldGxvY2FsIgoKCidmaWxlZW5jb2RpbmcnIGNoYW5nZWQJCQkJKmZpbGVlbmNvZGluZy1jaGFuZ2VkKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgonZmlsZWVuY29kaW5nJyB3YXMgdXNlZCBpbiBWaW0gNS54IHRvIHNldCB0aGUgZW5jb2RpbmcgdXNlZCBpbnNpZGUgYWxsIG9mIFZpbS4KVGhpcyB3YXMgYSBiaXQgc3RyYW5nZSwgYmVjYXVzZSBpdCB3YXMgbG9jYWwgdG8gYSBidWZmZXIgYW5kIHdvcmtlZCBmb3IgYWxsCmJ1ZmZlcnMuICBJdCBjb3VsZCBuZXZlciBiZSBkaWZmZXJlbnQgYmV0d2VlbiBidWZmZXJzLCBiZWNhdXNlIGl0IGNoYW5nZWQgdGhlCndheSB0ZXh0IGluIGFsbCBidWZmZXJzIHdhcyBpbnRlcnByZXRlZC4KSXQgaXMgbm93IHVzZWQgZm9yIHRoZSBlbmNvZGluZyBvZiB0aGUgZmlsZSByZWxhdGVkIHRvIHRoZSBidWZmZXIuICBJZiB5b3UKc3RpbGwgc2V0ICdmaWxlZW5jb2RpbmcnIGl0IGlzIGxpa2VseSB0byBiZSBvdmVyd3JpdHRlbiBieSB0aGUgZGV0ZWN0ZWQKZW5jb2RpbmcgZnJvbSAnZmlsZWVuY29kaW5ncycsIHRodXMgaXQgaXMgIm1vc3RseSBoYXJtbGVzcyIuClRoZSBvbGQgRmlsZUVuY29kaW5nIGF1dG9jb21tYW5kIG5vdyBkb2VzIHRoZSBzYW1lIGFzIHRoZSBuZXcgRW5jb2RpbmdDaGFuZ2VkCmV2ZW50LgoKCkRpZ3JhcGhzIGNoYW5nZWQJCQkJKmRpZ3JhcGhzLWNoYW5nZWQqCi0tLS0tLS0tLS0tLS0tLS0KClRoZSBkZWZhdWx0IGRpZ3JhcGhzIG5vdyBjb3JyZXNwb25kIHRvIFJGQzEzNDUuICBUaGlzIGlzIHZlcnkgZGlmZmVyZW50IGZyb20Kd2hhdCB3YXMgdXNlZCBpbiBWaW0gNS54LiB8ZGlncmFwaHN8CgoKRmlsZXR5cGUgZGV0ZWN0aW9uIGNoYW5nZWQJCQkqZmlsZXR5cGVkZXRlY3QtY2hhbmdlZCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBmaWxldHlwZSBkZXRlY3Rpb24gcHJldmlvdXNseSB3YXMgdXNpbmcgdGhlICJmaWxldHlwZSIgYXV0b2NvbW1hbmQgZ3JvdXAuClRoaXMgY2F1c2VkIGNvbmZ1c2lvbiB3aXRoIHRoZSBGaWxlVHlwZSBldmVudCBuYW1lIChjYXNlIGlzIGlnbm9yZWQpLiAgVGhlCmdyb3VwIGlzIG5vdyBjYWxsZWQgImZpbGV0eXBlZGV0ZWN0Ii4gIEl0IHN0aWxsIHdvcmtzLCBidXQgaWYgdGhlICJmaWxldHlwZSIKZ3JvdXAgaXMgdXNlZCB0aGUgYXV0b2NvbW1hbmRzIHdpbGwgbm90IGJlIHJlbW92ZWQgYnkgIjpmaWxldHlwZSBvZmYiLgogICBUaGUgc3VwcG9ydCBmb3IgJ3J1bnRpbWVwYXRoJyBoYXMgbWFkZSB0aGUgIm15ZmlsZXR5cGVmaWxlIiBhbmQKIm15c3ludGF4ZmlsZSIgbWVjaGFuaXNtIG9ic29sZXRlLiAgVGhleSBhcmUgc3RpbGwgdXNlZCBmb3IgYmFja3dhcmRzCmNvbXBhdGliaWxpdHkuCgpUaGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBGaWxlVHlwZSBldmVudCBhbmQgc2V0dGluZyB0aGUgJ3N5bnRheCcgb3B0aW9uIHdhcwpwcmV2aW91c2x5IGluIHRoZSAic3ludGF4IiBhdXRvY29tbWFuZCBncm91cC4gIFRoYXQgY2F1c2VkIGNvbmZ1c2lvbiB3aXRoIHRoZQpTeW50YXggZXZlbnQgbmFtZS4gIFRoZSBncm91cCBpcyBub3cgY2FsbGVkICJzeW50YXhzZXQiLgoKVGhlIGRpc3RyaWJ1dGVkIHN5bnRheCBmaWxlcyBubyBsb25nZXIgY29udGFpbiAic3ludGF4IGNsZWFyIi4gIFRoYXQgbWFrZXMgaXQKcG9zc2libGUgdG8gaW5jbHVkZSBvbmUgaW4gdGhlIG90aGVyIHdpdGhvdXQgdHJpY2tzLiAgVGhlIHN5bnRheCBpcyBub3cKY2xlYXJlZCB3aGVuIHRoZSAnc3ludGF4JyBvcHRpb24gaXMgc2V0IChieSBhbiBhdXRvY29tbWFuZCBhZGRlZCBmcm9tCnN5bmxvYWQudmltKS4gIFRoaXMgbWFrZXMgdGhlIHN5bnRheCBjbGVhcmVkIHdoZW4gdGhlIHZhbHVlIG9mICdzeW50YXgnIGRvZXMKbm90IGNvcnJlc3BvbmQgdG8gYSBzeW50YXggZmlsZS4gIFByZXZpb3VzbHkgdGhlIGV4aXN0aW5nIGhpZ2hsaWdodGluZyB3YXMKa2VwdC4KCgpVbmxpc3RlZCBidWZmZXJzIGludHJvZHVjZWQJCQkqbmV3LXVubGlzdGVkLWJ1ZmZlcnMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgaXMgbm93IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGJ1ZmZlcnMgd2hpY2ggZG9uJ3QgYXBwZWFyIGluIHRoZSBidWZmZXIKbGlzdCBhbmQgYnVmZmVycyB3aGljaCBhcmUgcmVhbGx5IG5vdCBpbiB0aGUgYnVmZmVyIGxpc3QuICBDb21tYW5kcyBsaWtlCiI6bHMiLCAiOmJuZXh0IiwgIjpibGFzdCIgYW5kIHRoZSBCdWZmZXJzIG1lbnUgd2lsbCBza2lwIGJ1ZmZlcnMgbm90IGluIHRoZQpidWZmZXIgbGlzdC4gfHVubGlzdGVkLWJ1ZmZlcnwKVGhlICdidWZsaXN0ZWQnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBtYWtlIGEgYnVmZmVyIGFwcGVhciBpbiB0aGUgYnVmZmVyIGxpc3QKb3Igbm90LgoKU2V2ZXJhbCBjb21tYW5kcyB0aGF0IHByZXZpb3VzbHkgYWRkZWQgYSBidWZmZXIgdG8gdGhlIGJ1ZmZlciBsaXN0IG5vdyBjcmVhdGUKYW4gdW5saXN0ZWQgYnVmZmVyLiAgVGhpcyBtZWFucyB0aGF0IGEgIjpibmV4dCIgYW5kICI6YmFsbCIgd2lsbCBub3QgZmluZCB0aGVzZQpmaWxlcyB1bnRpbCB0aGV5IGhhdmUgYWN0dWFsbHkgYmVlbiBlZGl0ZWQuICBGb3IgZXhhbXBsZSwgYnVmZmVycyB1c2VkIGZvciB0aGUKYWx0ZXJuYXRpdmUgZmlsZSBieSAiOndyaXRlIGZpbGUiIGFuZCAiOnJlYWQgZmlsZSIuCiAgIE90aGVyIGNvbW1hbmRzIHByZXZpb3VzbHkgY29tcGxldGVseSBkZWxldGVkIGEgYnVmZmVyIGFuZCBub3cgb25seSByZW1vdmUKdGhlIGJ1ZmZlciBmcm9tIHRoZSBidWZmZXIgbGlzdC4gIENvbW1hbmRzIHJlbHlpbmcgb24gYSBidWZmZXIgbm90IHRvIGJlCnByZXNlbnQgbWlnaHQgZmFpbC4gIEZvciBleGFtcGxlLCBhICI6YmRlbGV0ZSIgY29tbWFuZCBpbiBhbiBhdXRvY29tbWFuZCB0aGF0CnJlbGllZCBvbiBzb21ldGhpbmcgZm9sbG93aW5nIHRvIGZhaWwgKHdhcyB1c2VkIGluIHRoZSBhdXRvbWF0aWMgdGVzdHMpLgp8OmJ3aXBlb3V0fCBjYW4gYmUgdXNlZCBmb3IgdGhlIG9sZCBtZWFuaW5nIG9mICI6YmRlbGV0ZSIuCgpUaGUgQnVmRGVsZXRlIGF1dG9jb21tYW5kIGV2ZW50IGlzIG5vdyB0cmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyByZW1vdmVkIGZyb20KdGhlIGJ1ZmZlciBsaXN0LiAgVGhlIEJ1ZkNyZWF0ZSBldmVudCBpcyBvbmx5IHRyaWdnZXJlZCB3aGVuIGEgYnVmZmVyIGlzCmNyZWF0ZWQgdGhhdCBpcyBhZGRlZCB0byB0aGUgYnVmZmVyIGxpc3QsIG9yIHdoZW4gYW4gZXhpc3RpbmcgYnVmZmVyIGlzIGFkZGVkCnRvIHRoZSBidWZmZXIgbGlzdC4gIEJ1ZkFkZCBpcyBhIG5ldyBuYW1lIGZvciBCdWZDcmVhdGUuClRoZSBuZXcgQnVmTmV3IGV2ZW50IGlzIGZvciBjcmVhdGluZyBhbnkgYnVmZmVyIGFuZCBCdWZXaXBlb3V0IGZvciByZWFsbHkKZGVsZXRpbmcgYSBidWZmZXIuCgpXaGVuIGRvaW5nIEluc2VydCBtb2RlIGNvbXBsZXRpb24sIG9ubHkgYnVmZmVycyBpbiB0aGUgYnVmZmVyIGxpc3QgYXJlCnNjYW5uZWQuICBBZGRlZCB0aGUgJ1UnIGZsYWcgdG8gJ2NvbXBsZXRlJyB0byBkbyBjb21wbGV0aW9uIGZyb20gdW5saXN0ZWQKYnVmZmVycy4KClVubGlzdGVkIGJ1ZmZlcnMgYXJlIG5vdCBzdG9yZWQgaW4gYSB2aW1pbmZvIGZpbGUuCgoKQ1RSTC1VIGluIENvbW1hbmQtbGluZSBtb2RlIGNoYW5nZWQJCSpDVFJMLVUtY2hhbmdlZCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClVzaW5nIENUUkwtVSB3aGVuIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSBjbGVhcmVkIHRoZSB3aG9sZSBsaW5lLiAgTW9zdApzaGVsbHMgb25seSBkZWxldGUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBjdXJzb3IuICBNYWRlIGl0IHdvcmsgbGlrZSB0aGF0LgooU3RldmUgV2FsbCkKCllvdSBjYW4gZ2V0IHRoZSBvbGQgYmVoYXZpb3Igd2l0aCBDVFJMLUUgQ1RSTC1VOiA+Cgk6Y25vcmVtYXAgPEMtVT4gPEMtRT48Qy1VPgoKCkN0YWdzIGdvbmUJCQkJCSpjdGFncy1nb25lKgotLS0tLS0tLS0tCgpDdGFncyBpcyBubyBsb25nZXIgcGFydCBvZiB0aGUgVmltIGRpc3RyaWJ1dGlvbi4gIEl0J3Mgbm93IGEgZ3Jvd24tdXAgcHJvZ3JhbQpieSBpdHNlbGYsIGl0IGRlc2VydmVzIHRvIGJlIGRpc3RyaWJ1dGVkIHNlcGFyYXRlbHkuCkN0YWdzIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwOi8vY3RhZ3Muc2YubmV0Ly4KCgpEb2N1bWVudGF0aW9uIHJlb3JnYW5pemVkCQkJKmRvY3VtZW50YXRpb24tNioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gcmVvcmdhbml6ZWQsIGFuIGl0ZW0gbWF5IG5vdCBiZSB3aGVyZSB5b3UgZm91bmQgaXQKaW4gVmltIDUueC4KLSBUaGUgdXNlciBtYW51YWwgd2FzIGFkZGVkLCBzb21lIGl0ZW1zIGhhdmUgYmVlbiBtb3ZlZCB0byBpdCBmcm9tIHRoZQogIHJlZmVyZW5jZSBtYW51YWwuCi0gVGhlIHF1aWNrIHJlZmVyZW5jZSBpcyBub3cgaW4gYSBzZXBhcmF0ZSBmaWxlIChzbyB0aGF0IGl0IGNhbiBiZSBwcmludGVkKS4KClRoZSBleGFtcGxlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3ZXJlIHByZXZpb3VzbHkgbWFya2VkIHdpdGggYSAiPiIgaW4gdGhlCmZpcnN0IGNvbHVtbi4gIFRoaXMgbWFkZSBpdCBkaWZmaWN1bHQgdG8gY29weS9wYXN0ZSB0aGVtLiAgVGhlcmUgaXMgbm93IGEKc2luZ2xlICI+IiBiZWZvcmUgdGhlIGV4YW1wbGUgYW5kIGl0IGVuZHMgYXQgYSAiPCIgb3IgYSBub24tYmxhbmsgaW4gdGhlIGZpcnN0CmNvbHVtbi4gIFRoaXMgYWxzbyBsb29rcyBiZXR0ZXIgd2l0aG91dCBoaWdobGlnaHRpbmcuCgonaGVscGZpbGUnIGlzIG5vIGxvbmdlciB1c2VkIHRvIGZpbmQgdGhlIGhlbHAgdGFncyBmaWxlLiAgVGhpcyBhbGxvd3MgYSB1c2VyCnRvIGFkZCBpdHMgb3duIGhlbHAgZmlsZXMgKGUuZy4sIGZvciBwbHVnaW5zKS4KCgpNb2RlbGVzcyBzZWxlY3Rpb24gYW5kIGNsaXBib2FyZAkJKm1vZGVsZXNzLWFuZC1jbGlwYm9hcmQqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgbW9kZWxlc3Mgc2VsZWN0aW9uIGlzIHVzZWQgdG8gc2VsZWN0IHRleHQgd2hlbiBWaXN1YWwgbW9kZSBjYW4ndCBiZSB1c2VkLApmb3IgZXhhbXBsZSB3aGVuIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSBvciBhdCB0aGUgbW9yZSBwcm9tcHQuCkluIFZpbSA1LnggdGhlIG1vZGVsZXNzIHNlbGVjdGlvbiB3YXMgYWx3YXlzIHVzZWQuICBPbiBNUy1XaW5kb3dzIHRoaXMgY2F1c2VkCnRoZSBjbGlwYm9hcmQgdG8gYmUgb3ZlcndyaXR0ZW4sIHdpdGggbm8gd2F5IHRvIGF2b2lkIHRoYXQuICBUaGUgbW9kZWxlc3MKc2VsZWN0aW9uIG5vdyBvYmV5cyB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgaW4gJ2d1aW9wdGlvbnMnIGFuZCAiYXV0b3NlbGVjdCIgYW5kCiJhdXRvc2VsZWN0bWwiIGluICdjbGlwYm9hcmQnLiAgQnkgZGVmYXVsdCB0aGVyZSBpcyBubyBhdXRvbWF0aWMgY29weSBvbgpNUy1XaW5kb3dzLiAgVXNlIHRoZSB8Y19DVFJMLVl8IGNvbW1hbmQgdG8gbWFudWFsbHkgY29weSB0aGUgc2VsZWN0aW9uLgoKVG8gZ2V0IHRoZSBvbGQgYmVoYXZpb3IgYmFjaywgZG8gdGhpczogPgoKCTpzZXQgY2xpcGJvYXJkXj1hdXRvc2VsZWN0bWwgZ3Vpb3B0aW9ucys9QQoKClNtYWxsIGluY29tcGF0aWJpbGl0aWVzCQkJCSppbmNvbXAtc21hbGwtNioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCidiYWNrdXBkaXInLCAnY2RwYXRoJywgJ2RpcmVjdG9yeScsICdlcXVhbHByZycsICdlcnJvcmZpbGUnLCAnZm9ybWF0cHJnJywKJ2dyZXBwcmcnLCAnaGVscGZpbGUnLCAnbWFrZWVmJywgJ21ha2VwcmcnLCAna2V5d29yZHByZycsICdjc2NvcGVwcmcnLAondmltaW5mbycgYW5kICdydW50aW1lcGF0aCcgY2FuIG5vIGxvbmdlciBiZSBzZXQgZnJvbSBhIG1vZGVsaW5lLCBmb3IgYmV0dGVyCnNlY3VyaXR5LgoKUmVtb3ZlZCAnXycgZnJvbSB0aGUgJ2JyZWFrYXQnIGRlZmF1bHQ6IEl0J3MgY29tbW9ubHkgdXNlZCBpbiBrZXl3b3Jkcy4KClRoZSBkZWZhdWx0IGZvciAnbW91c2VoaWRlJyBpcyBvbiwgYmVjYXVzZSB0aGlzIHdvcmtzIHdlbGwgZm9yIG1vc3QgcGVvcGxlLgoKVGhlIEFtaWdhIGJpbmFyeSBpcyBub3cgYWx3YXlzIGNvbXBpbGVkIHdpdGggImJpZyIgZmVhdHVyZXMuICBUaGUgImJpZyIgYmluYXJ5CmFyY2hpdmUgbm8gbG9uZ2VyIGV4aXN0cy4KClRoZSBpdGVtcyAiW1JPXSIsICJbK10iLCAiW2hlbHBdIiwgIltQcmV2aWV3XSIgYW5kICJbZmlsZXR5cGVdIiBpbgonc3RhdHVzbGluZScgbm8gbG9uZ2VyIGhhdmUgYSBsZWFkaW5nIHNwYWNlLgoKTm9uLVVuaXggc3lzdGVtczogV2hlbiBleHBhbmRpbmcgd2lsZGNhcmRzIGZvciB0aGUgVmltIGFyZ3VtZW50cywgZG9uJ3QgdXNlCidzdWZmaXhlcycuICBJdCBub3cgd29ya3MgYXMgaWYgdGhlIHNoZWxsIGhhZCBleHBhbmRlZCB0aGUgYXJndW1lbnRzLgoKVGhlICdsaXNwJywgJ3NtYXJ0aW5kZW50JyBhbmQgJ2NpbmRlbnQnIG9wdGlvbnMgYXJlIG5vdCBzd2l0Y2hlZCBvZmYgd2hlbgoncGFzdGUnIGlzIHNldC4gIFRoZSBhdXRvLWluZGVudGluZyBpcyBkaXNhYmxlZCB3aGVuICdwYXN0ZScgaXMgc2V0LCBidXQKbWFudWFsIGluZGVudGluZyB3aXRoICI9IiBzdGlsbCB3b3Jrcy4KCldoZW4gZm9ybWF0dGluZyB3aXRoICI9IiB1c2VzICdjaW5kZW50JyBvciAnaW5kZW50ZXhwcicgaW5kZW50aW5nLCBhbmQgdGhlcmUKaXMgbm8gY2hhbmdlIGluIGluZGVudCwgdGhpcyBpcyBub3QgY291bnRlZCBhcyBhIGNoYW5nZSAoJ21vZGlmaWVkJyBpc24ndCBzZXQKYW5kIHRoZXJlIGlzIG5vdGhpbmcgdG8gdW5kbykuCgpSZXBvcnQgJ21vZGlmaWVkJyBhcyBjaGFuZ2VkIHdoZW4gJ2ZpbGVlbmNvZGluZycgb3IgJ2ZpbGVmb3JtYXQnIHdhcyBzZXQuClRodXMgaXQgcmVmbGVjdHMgdGhlIHBvc3NpYmlsaXR5IHRvIGFiYW5kb24gdGhlIGJ1ZmZlciB3aXRob3V0IGxvc2luZyBjaGFuZ2VzLgoKVGhlICJTYXZlIEFzIiBtZW51IGVudHJ5IG5vdyBlZGl0cyB0aGUgc2F2ZWQgZmlsZS4gIE1vc3QgcGVvcGxlIGV4cGVjdCBpdCB0bwp3b3JrIGxpa2UgdGhpcy4KCkEgYnVmZmVyIGZvciBhIGRpcmVjdG9yeSBpcyBubyBsb25nZXIgYWRkZWQgdG8gdGhlIEJ1ZmZlcnMgbWVudS4KClJlbmFtZWQgPFJldHVybj4gdG8gPEVudGVyPiwgc2luY2UgdGhhdCdzIHdoYXQgaXQncyBjYWxsZWQgb24gbW9zdCBrZXlib2FyZHMuClRodXMgaXQncyBub3cgdGhlIGhpdC1lbnRlciBwcm9tcHQgaW5zdGVhZCBvZiB0aGUgaGl0LXJldHVybiBwcm9tcHQuCkNhbiBtYXAgPEVudGVyPiBqdXN0IGxpa2UgPENSPiBvciA8UmV0dXJuPi4KClRoZSBkZWZhdWx0IGZvciB0aGUgJ3ZpbWluZm8nIG9wdGlvbiBpcyBub3cgJzIwLCI1MCxoIHdoZW4gJ2NvbXBhdGlibGUnIGlzbid0CnNldC4gIE1vc3QgcGVvcGxlIHdpbGwgd2FudCB0byB1c2UgaXQsIGluY2x1ZGluZyBiZWdpbm5lcnMsIGJ1dCBpdCByZXF1aXJlZApzZXR0aW5nIHRoZSBvcHRpb24sIHdoaWNoIGlzbid0IHRoYXQgZWFzeS4KCkFmdGVyIHVzaW5nICI6Y29sZGVyIiB0aGUgbmV3ZXIgZXJyb3IgbGlzdHMgYXJlIG92ZXJ3cml0dGVuLiAgVGhpcyBtYWtlcyBpdApwb3NzaWJsZSB0byB1c2UgIjpncmVwIiB0byBicm93c2UgaW4gYSB0cmVlLWxpa2Ugd2F5LiAgTXVzdCB1c2UgIjpjbmV3ZXIgOTkiCnRvIGdldCB0aGUgb2xkIGJlaGF2aW9yLgoKVGhlIHBhdHRlcm5zIGluICdlcnJvcmZvcm1hdCcgd291bGQgc29tZXRpbWVzIGlnbm9yZSBjYXNlIChNUy1XaW5kb3dzKSBhbmQKc29tZXRpbWVzIG5vdCAoVW5peCkuICBOb3cgY2FzZSBpcyBhbHdheXMgaWdub3JlZC4gIEFkZCAiXEMiIHRvIHRoZSBwYXR0ZXJuIHRvCm1hdGNoIGNhc2UuCgpUaGUgMTYgYml0IE1TLURPUyB2ZXJzaW9uIGlzIG5vdyBjb21waWxlZCB3aXRob3V0IHRoZSArbGlzdGNtZHMgZmVhdHVyZQooYnVmZmVyIGxpc3QgbWFuaXB1bGF0aW9uIGNvbW1hbmRzKS4gIFRoZXkgYXJlIG5vdCBvZnRlbiBuZWVkZWQgYW5kIHRoaXMKZXhlY3V0YWJsZSBuZWVkcyB0byBiZSBzbWFsbGVyLgoKJ3Nlc3Npb25vcHRpb25zJyBub3cgaW5jbHVkZXMgImN1cmRpciIgYnkgZGVmYXVsdC4gIFRoaXMgbWVhbnMgdGhhdCByZXN0b3JpbmcKYSBzZXNzaW9uIHdpbGwgcmVzdWx0IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBiZWluZyByZXN0b3JlZCwgaW5zdGVhZCBvZgpnb2luZyB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBzZXNzaW9uIGZpbGUgaXMgbG9jYXRlZC4KCkEgc2Vzc2lvbiBkZWxldGVkIGFsbCBidWZmZXJzLCBkZWxldGluZyBhbGwgbWFya3MuICBOb3cga2VlcCB0aGUgYnVmZmVyIGxpc3QsCml0IHNob3VsZG4ndCBodXJ0IGZvciBzb21lIGV4aXN0aW5nIGJ1ZmZlcnMgdG8gcmVtYWluIHByZXNlbnQuCldoZW4gdGhlIGFyZ3VtZW50IGxpc3QgaXMgZW1wdHkgIjphcmdkZWwgKiIgY2F1c2VkIGFuIGVycm9yIG1lc3NhZ2UuCgpObyBsb25nZXIgcHV0IHRoZSBzZWFyY2ggcGF0dGVybiBmcm9tIGEgdGFnIGp1bXAgaW4gdGhlIGhpc3RvcnkuCgpVc2UgIlNwZWNpYWxLZXkiIGhpZ2hsaWdodGluZyBmb3IgdW5wcmludGFibGUgY2hhcmFjdGVycyBpbnN0ZWFkIG9mICJOb25UZXh0Ii4KVGhlIGlkZWEgaXMgdGhhdCB1bnByaW50YWJsZSB0ZXh0IG9yIGFueSB0ZXh0IHRoYXQncyBkaXNwbGF5ZWQgZGlmZmVyZW50bHkKZnJvbSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZmlsZSBpcyB1c2luZyAiU3BlY2lhbEtleSIsIGFuZCAiTm9uVGV4dCIgaXMgdXNlZApmb3IgdGV4dCB0aGF0IGRvZXNuJ3QgcmVhbGx5IGV4aXN0IGluIHRoZSBmaWxlLgoKTW90aWYgbm93IHVzZXMgdGhlIHN5c3RlbSBkZWZhdWx0IGNvbG9ycyBmb3IgdGhlIG1lbnUgYW5kIHNjcm9sbGJhci4gIFVzZWQgdG8KYmUgZ3JleS4gIEl0J3Mgc3RpbGwgcG9zc2libGUgdG8gc2V0IHRoZSBjb2xvcnMgd2l0aCAiOmhpZ2hsaWdodCIgY29tbWFuZHMgYW5kCnJlc291cmNlcy4KCkZvcm1hdHRpbmcgdGV4dCB3aXRoICJncSIgYnJlYWtzIGEgcGFyYWdyYXBoIGF0IGEgbm9uLWVtcHR5IGJsYW5rIGxpbmUuClByZXZpb3VzbHkgdGhlIGxpbmUgd291bGQgYmUgcmVtb3ZlZCwgd2hpY2ggd2Fzbid0IHZlcnkgdXNlZnVsLgoKIjpub3JtYWwiIGRvZXMgbm8gbG9uZ2VyIGhhbmcgd2hlbiB0aGUgYXJndW1lbnQgZW5kcyBpbiBoYWxmIGEgY29tbWFuZC4KUHJldmlvdXNseSBWaW0gd291bGQgd2FpdCBmb3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGJlIHR5cGVkLCB3aXRob3V0IHVwZGF0aW5nCnRoZSBzY3JlZW4uICBOb3cgaXQgcHJldGVuZHMgYW4gPEVzYz4gd2FzIHR5cGVkLgoKQml0bWFwcyBmb3IgdGhlIHRvb2xiYXIgYXJlIG5vIGxvbmdlciBzZWFyY2hlZCBmb3IgaW4gIiRWSU0vYml0bWFwcyIgYnV0IGluCnRoZSAiYml0bWFwcyIgZGlyZWN0b3JpZXMgaW4gJ3J1bnRpbWVwYXRoJy4KCk5vdyB1c2UgdGhlIENtZGxpbmUtbW9kZSBtZW51cyBmb3IgdGhlIGhpdC1lbnRlciBwcm9tcHQgaW5zdGVhZCBvZiB0aGUgTm9ybWFsCm1vZGUgbWVudXMuICBUaGlzIGdlbmVyYWxseSB3b3JrcyBiZXR0ZXIgYW5kIGFsbG93cyB1c2luZyB0aGUgIkNvcHkiIG1lbnUgdG8KcHJvZHVjZSBDVFJMLVkgdG8gY29weSB0aGUgbW9kZWxlc3Mgc2VsZWN0aW9uLgoKTW92ZWQgdGhlIGZvbnQgc2VsZWN0aW9uIGZyb20gdGhlIFdpbmRvdyB0byB0aGUgRWRpdCBtZW51LCB0b2dldGhlciB3aXRoIHRoZQpvdGhlciBzZXR0aW5ncy4KClRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgJ2lzZm5hbWUnIGluY2x1ZGUgbW9yZSBjaGFyYWN0ZXJzIHRvIG1ha2UgImdmIiB3b3JrCmJldHRlci4KCkNoYW5nZWQgdGhlIGxpY2Vuc2UgZm9yIHRoZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBPcGVuIFB1YmxpY2F0aW9uIExpY2Vuc2UuClRoaXMgc2VlbWVkIGZhaXIsIGNvbnNpZGVyaW5nIHRoZSBpbmNsdXNpb24gb2YgcGFydHMgb2YgdGhlIFZpbSBib29rLCB3aGljaCBpcwphbHNvIHB1Ymxpc2hlZCB1bmRlciB0aGUgT1BMLiAgVGhlIGRvd25zaWRlIGlzIHRoYXQgd2UgY2FuJ3QgZm9yY2Ugc29tZW9uZSB3aG8Kd291bGQgc2VsbCBjb3BpZXMgb2YgdGhlIG1hbnVhbCB0byBjb250cmlidXRlIHRvIFVnYW5kYS4KCkFmdGVyICAiYXl5ICBkb24ndCBsZXQgICIieXkgIG9yICA6bGV0IEAiID0gdmFsICBvdmVyd3JpdGUgdGhlICJhIHJlZ2lzdGVyLgpVc2UgdGhlIHVubmFtZWQgcmVnaXN0ZXIgaW5zdGVhZC4KCk1TRE9TOiBBIHBhdHRlcm4gIiouKiIgcHJldmlvdXNseSBhbHNvIG1hdGNoZWQgYSBmaWxlIG5hbWUgd2l0aG91dCBhIGRvdC4KVGhpcyB3YXMgaW5jb25zaXN0ZW50IHdpdGggb3RoZXIgdmVyc2lvbnMuCgpJbiBJbnNlcnQgbW9kZSwgQ1RSTC1PIENUUkwtXCBDVFJMLU4ge2NtZH0gcmVtYWlucyBpbiBOb3JtYWwgbW9kZS4gIFByZXZpb3VzbHkKaXQgd291bGQgZ28gYmFjayB0byBJbnNlcnQgbW9kZSwgdGh1cyBjb25mdXNpbmcgdGhlIG1lYW5pbmcgb2YgQ1RSTC1cIENUUkwtTiwKd2hpY2ggaXMgc3VwcG9zZWQgdG8gdGFrZSB1cyB0byBOb3JtYWwgbW9kZSAoZXNwZWNpYWxseSBpbiAiOmFtZW51IikuCgpBbGxvdyB1c2luZyAiOiIgY29tbWFuZHMgYWZ0ZXIgYW4gb3BlcmF0b3IuICBDb3VsZCBiZSB1c2VkIHRvIGltcGxlbWVudCBhIG5ldwptb3ZlbWVudCBjb21tYW5kLiAgVGh1cyBpdCBubyBsb25nZXIgYWJvcnRzIGEgcGVuZGluZyBvcGVyYXRvci4KCkZvciB0aGUgQW1pZ2EgdGhlICItZCB7ZGV2aWNlfSIgYXJndW1lbnQgd2FzIHBvc3NpYmxlLiAgV2hlbiBjb21waWxlZCB3aXRoIHRoZQpkaWZmIGZlYXR1cmUsIHRoaXMgbm8gbG9uZ2VyIHdvcmtzLiAgVXNlICItZGV2IHtkZXZpY2V9IiBpbnN0ZWFkLiB8LWRldnwKCk1hZGUgdGhlIGRlZmF1bHQgbWFwcGluZ3MgZm9yIDxTLUluc2VydD4gaW4gSW5zZXJ0IG1vZGUgaW5zZXJ0IHRoZSB0ZXh0CmxpdGVyYWxseSwgYXZvaWRzIHRoYXQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgQlMgY2F1c2Ugc2lkZSBlZmZlY3RzLgoKVXNpbmcgIjpjb25maXJtIiBhcHBsaWVkIHRvIHRoZSByZXN0IG9mIHRoZSBsaW5lLiAgTm93IGl0IGFwcGxpZXMgb25seSB0byB0aGUKY29tbWFuZCByaWdodCBhZnRlciBpdC4gIFRodXMgIjpjb25maXJtIGlmIHggfCBlZGl0IHwgZW5kaWYiIG5vIGxvbmdlciB3b3JrcywKdXNlICI6aWYgeCB8IGNvbmZpcm0gZWRpdCB8IGVuZGlmIi4gIFRoaXMgd2FzIHRoZSBvcmlnaW5hbCBpbnRlbnRpb24sIHRoYXQgaXQKd29ya2VkIGRpZmZlcmVudGx5IHdhcyBhIGJ1Zy4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpORVcgRkVBVFVSRVMJCQkJCQkqbmV3LTYqCgpGb2xkaW5nCQkJCQkJCSpuZXctZm9sZGluZyoKLS0tLS0tLQoKVmltIGNhbiBub3cgZGlzcGxheSBhIGJ1ZmZlciB3aXRoIHRleHQgZm9sZGVkLiAgVGhpcyBhbGxvd3Mgb3ZlcnZpZXdpbmcgdGhlCnN0cnVjdHVyZSBvZiBhIGZpbGUgcXVpY2tseS4gIEl0IGlzIGFsc28gcG9zc2libGUgdG8geWFuaywgZGVsZXRlIGFuZCBwdXQKZm9sZGVkIHRleHQsIGZvciBleGFtcGxlIHRvIG1vdmUgYSBmdW5jdGlvbiB0byBhbm90aGVyIHBvc2l0aW9uLgoKVGhlcmUgaXMgYSB3aG9sZSBidW5jaCBvZiBuZXcgY29tbWFuZHMgYW5kIG9wdGlvbnMgcmVsYXRlZCB0byBmb2xkaW5nLgpTZWUgfGZvbGRpbmd8LgoKClZlcnRpY2FsbHkgc3BsaXQgd2luZG93cwkJCQkqbmV3LXZlcnRzcGxpdCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpXaW5kb3dzIGNhbiBhbHNvIGJlIHNwbGl0IHZlcnRpY2FsbHkuICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgd2luZG93cwpzaWRlIGJ5IHNpZGUuICBPbmUgbmljZSB1c2UgZm9yIHRoaXMgaXMgdG8gY29tcGFyZSB0d28gc2ltaWxhciBmaWxlcyAoc2VlCnxuZXctZGlmZi1tb2RlfCkuICBUaGUgJ3Njcm9sbGJpbmQnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzeW5jaHJvbml6ZQpzY3JvbGxpbmcuCgpBIHZlcnRpY2FsIHNwbGl0IGNhbiBiZSBjcmVhdGVkIHdpdGggdGhlIGNvbW1hbmRzOgoJOnZzcGxpdAkgIG9yICBDVFJMLVcgdiAgb3IgQ1RSTC1XIENUUkwtVgl8OnZzcGxpdHwKCTp2bmV3CQkJCQkJfDp2bmV3fAoJOnZlcnRpY2FsIHtjbWR9CQkJCQl8OnZlcnRpY2FsfApUaGUgbGFzdCBvbmUgaXMgYSBtb2RpZmllciwgd2hpY2ggaGFzIGEgbWVhbmluZyBmb3IgYW55IGNvbW1hbmQgdGhhdCBzcGxpdHMgYQp3aW5kb3cuICBGb3IgZXhhbXBsZTogPgoJOnZlcnRpY2FsIHN0YWcgbWFpbgpXaWxsIHZlcnRpY2FsbHkgc3BsaXQgdGhlIHdpbmRvdyBhbmQganVtcCB0byB0aGUgdGFnICJtYWluIiBpbiB0aGUgbmV3IHdpbmRvdy4KCk1vdmluZyBmcm9tIHdpbmRvdyB0byB3aW5kb3cgaG9yaXpvbnRhbGx5IGNhbiBiZSBkb25lIHdpdGggdGhlIHxDVFJMLVdfaHwgYW5kCnxDVFJMLVdfbHwgY29tbWFuZHMuICBUaGUgfENUUkwtV19rfCBhbmQgfENUUkwtV19qfCBjb21tYW5kcyBoYXZlIGJlZW4gY2hhbmdlZAp0byBqdW1wIHRvIHRoZSB3aW5kb3cgYWJvdmUgb3IgYmVsb3cgdGhlIGN1cnNvciBwb3NpdGlvbi4KClRoZSB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzcGxpdHMgY2FuIGJlIG1peGVkIGFzIHlvdSBsaWtlLiAgUmVzaXppbmcgd2luZG93cwppcyBlYXN5IHdoZW4gdXNpbmcgdGhlIG1vdXNlLCBqdXN0IHBvc2l0aW9uIHRoZSBwb2ludGVyIG9uIGEgc3RhdHVzIGxpbmUgb3IKdmVydGljYWwgc2VwYXJhdG9yIGFuZCBkcmFnIGl0LiAgSW4gdGhlIEdVSSBhIHNwZWNpYWwgbW91c2UgcG9pbnRlciBzaGFwZQppbmRpY2F0ZXMgd2hlcmUgeW91IGNhbiBkcmFnIGEgc3RhdHVzIG9yIHNlcGFyYXRvciBsaW5lLgoKVG8gcmVzaXplIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cyB1c2UgdGhlIHxDVFJMLVdfPHwgYW5kIHxDVFJMLVdfPnwgY29tbWFuZHMuClRvIG1ha2UgYSB3aW5kb3cgdGhlIG1heGltdW0gd2lkdGggdXNlIHRoZSBDVFJMLVcgfCBjb21tYW5kIHxDVFJMLVdfYmFyfC4KClRvIGZvcmNlIGEgbmV3IHdpbmRvdyB0byB1c2UgdGhlIGZ1bGwgd2lkdGggb3IgaGVpZ2h0IG9mIHRoZSBWaW0gd2luZG93LAp0aGVzZSB0d28gbW9kaWZpZXJzIGFyZSBhdmFpbGFibGU6Cgk6dG9wbGVmdCB7Y21kfQkJTmV3IHdpbmRvdyBhcHBlYXJzIGF0IHRoZSB0b3Agd2l0aCBmdWxsCgkJCQl3aWR0aCBvciBhdCB0aGUgbGVmdCB3aXRoIGZ1bGwgaGVpZ2h0LgoJOmJvdHJpZ2h0IHtjbWR9CQlOZXcgd2luZG93IGFwcGVhcnMgYXQgdGhlIGJvdHRvbSB3aXRoIGZ1bGwKCQkJCXdpZHRoIG9yIGF0IHRoZSByaWdodCB3aXRoIGZ1bGwgaGVpZ2h0LgpUaGlzIGNhbiBiZSBjb21iaW5lZCB3aXRoICI6dmVydGljYWwiIHRvIGZvcmNlIGEgdmVydGljYWwgc3BsaXQ6ID4KCTp2ZXJ0IGJvdCBkc3BsaXQgREVCVUcKVGhpcyB3aWxsIG9wZW4gYSB3aW5kb3cgYXQgdGhlIGZhciByaWdodCwgb2NjdXB5aW5nIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgVmltCndpbmRvdywgd2l0aCB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCBkZWZpbml0aW9uIG9mICJERUJVRyIuClRoZSBoZWxwIHdpbmRvdyBpcyBvcGVuZWQgYXQgdGhlIHRvcCwgbGlrZSAiOnRvcGxlZnQiIHdhcyB1c2VkLCBpZiB0aGUgY3VycmVudAp3aW5kb3cgaXMgZmV3ZXIgdGhhbiA4MCBjaGFyYWN0ZXJzIHdpZGUuCgpBIGZldyBvcHRpb25zIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgcHJlZmVyZW5jZXMgZm9yIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cy4KVGhleSB3b3JrIHNpbWlsYXIgdG8gdGhlaXIgZXhpc3RpbmcgaG9yaXpvbnRhbCBlcXVpdmFsZW50czoKCWhvcml6b250YWwJdmVydGljYWwgfgoJJ3NwbGl0YmVsb3cnCSdzcGxpdHJpZ2h0JwoJJ3dpbmhlaWdodCcJJ3dpbndpZHRoJwoJJ3dpbm1pbmhlaWdodCcJJ3dpbm1pbndpZHRoJwpJdCdzIHBvc3NpYmxlIHRvIHNldCAnd2lubWlud2lkdGgnIHRvIHplcm8sIHNvIHRoYXQgdGVtcG9yYXJpbHkgdW51c2VkIHdpbmRvd3MKaGFyZGx5IHRha2UgdXAgc3BhY2Ugd2l0aG91dCBjbG9zaW5nIHRoZW0uCgpUaGUgbmV3ICdlYWRpcmVjdGlvbicgb3B0aW9uIHRlbGxzIHdoZXJlICdlcXVhbGFsd2F5cycgYXBwbGllczoKCTpzZXQgZWFkaXJlY3Rpb249Ym90aAkJYm90aCBkaXJlY3Rpb25zCgk6c2V0IGVhZGlyZWN0aW9uPXZlcgkJZXF1YWxpemUgd2luZG93IGhlaWdodHMKCTpzZXQgZWFkaXJlY3Rpb249aG9yCQllcXVhbGl6ZSB3aW5kb3dzIHdpZHRocwpUaGlzIGNhbiBiZSB1c2VkIHRvIGF2b2lkIGNoYW5naW5nIHdpbmRvdyBzaXplcyB3aGVuIHlvdSB3YW50IHRvIGtlZXAgdGhlbS4KClNpbmNlIHdpbmRvd3MgY2FuIGJlY29tZSBxdWl0ZSBuYXJyb3cgd2l0aCB2ZXJ0aWNhbCBzcGxpdHMsIHRleHQgbGluZXMgd2lsbApvZnRlbiBub3QgZml0LiAgVGhlICdzaWRlc2Nyb2xsb2ZmJyBoYXMgYmVlbiBhZGRlZCB0byBrZWVwIHNvbWUgY29udGV4dCBsZWZ0CmFuZCByaWdodCBvZiB0aGUgY3Vyc29yLiAgVGhlICdsaXN0Y2hhcnMnIG9wdGlvbiBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIHRoZQoicHJlY2VkZXMiIGl0ZW0sIHRvIHNob3cgYSAiPCIgZm9yIGV4YW1wbGUsIHdoZW4gdGhlcmUgaXMgdGV4dCBsZWZ0IG9mZiB0aGUKc2NyZWVuLiAoVXR6LVV3ZSBIYXVzKQoKIi1PIiBjb21tYW5kIGxpbmUgYXJndW1lbnQ6IExpa2UgIi1vIiBidXQgc3BsaXQgd2luZG93cyB2ZXJ0aWNhbGx5LiAoU2NvdHQKVXJiYW4pCgpBZGRlZCBjb21tYW5kcyB0byBtb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgdmVyeSB0b3AgKENUUkwtVyBLKSwgYm90dG9tCihDVFJMLVcgSiksIGxlZnQgKENUUkwtVyBIKSBhbmQgcmlnaHQgKENUUkwtVyBMKS4gIEluIHRoZSBuZXcgcG9zaXRpb24gdGhlCndpbmRvdyB1c2VzIHRoZSBmdWxsIHdpZHRoL2hlaWdodCBvZiB0aGUgc2NyZWVuLgoKV2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gaW4gdGhlIHN0YXR1cyBsaW5lIGZvciBib3RoIHRoZSBmaWxlIG5hbWUgYW5kCnRoZSBydWxlciwgdXNlIHVwIHRvIGhhbGYgdGhlIHdpZHRoIGZvciB0aGUgcnVsZXIuICBVc2VmdWwgZm9yIG5hcnJvdyB3aW5kb3dzLgoKCkRpZmYgbW9kZQkJCQkJCSpuZXctZGlmZi1tb2RlKgotLS0tLS0tLS0KCkluIGRpZmYgbW9kZSBWaW0gc2hvd3MgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvLCB0aHJlZSBvciBmb3VyIGZpbGVzLgpGb2xkaW5nIGlzIHVzZWQgdG8gaGlkZSB0aGUgcGFydHMgb2YgdGhlIGZpbGUgdGhhdCBhcmUgZXF1YWwuCkhpZ2hsaWdodGluZyBpcyB1c2VkIHRvIHNob3cgZGVsZXRlZCBhbmQgY2hhbmdlZCBsaW5lcy4KU2VlIHxkaWZmLW1vZGV8LgoKQW4gZWFzeSB3YXkgdG8gc3RhcnQgaW4gZGlmZiBtb2RlIGlzIHRvIHN0YXJ0IFZpbSBhcyAidmltZGlmZiBmaWxlMSBmaWxlMiIuCkFkZGVkIHRoZSB2aW1kaWZmIG1hbnBhZ2UuCgpJbiBhIHJ1bm5pbmcgVmltIHRoZSB8OmRpZmZzcGxpdHwgY29tbWFuZCBzdGFydHMgZGlmZiBtb2RlIGZvciB0aGUgY3VycmVudApmaWxlIGFuZCBhbm90aGVyIGZpbGUuICBUaGUgfDpkaWZmcGF0Y2h8IGNvbW1hbmQgc3RhcnRzIGRpZmYgbW9kZSB1c2luZyB0aGUKY3VycmVudCBmaWxlIGFuZCBhIHBhdGNoIGZpbGUuICBUaGUgfDpkaWZmdGhpc3wgY29tbWFuZCBzdGFydHMgZGlmZiBtb2RlIGZvcgp0aGUgY3VycmVudCB3aW5kb3cuCgpEaWZmZXJlbmNlcyBjYW4gYmUgcmVtb3ZlZCB3aXRoIHRoZSB8OmRpZmZnZXR8IGFuZCB8OmRpZmZwdXR8IGNvbW1hbmRzLgoKLSBUaGUgJ2RpZmYnIG9wdGlvbiBzd2l0Y2hlcyBkaWZmIG1vZGUgb24gaW4gYSB3aW5kb3cuCi0gVGhlIHw6ZGlmZnVwZGF0ZXwgY29tbWFuZCByZWZyZXNoZXMgdGhlIGRpZmZzLgotIFRoZSAnZGlmZm9wdCcgb3B0aW9uIGNoYW5nZXMgaG93IGRpZmZzIGFyZSBkaXNwbGF5ZWQuCi0gVGhlICdkaWZmZXhwcicgb3B0aW9uIGNhbiBiZSBzZXQgaG93IGEgZGlmZiBpcyB0byBiZSBjcmVhdGVkLgotIFRoZSAncGF0Y2hleHByJyBvcHRpb24gY2FuIGJlIHNldCBob3cgcGF0Y2ggaXMgYXBwbGllZCB0byBhIGZpbGUuCi0gQWRkZWQgdGhlICJkaWZmIiBmb2xkaW5nIG1ldGhvZC4gIFdoZW4gb3BlbmluZyBhIHdpbmRvdyBmb3IgZGlmZi1tb2RlLCBzZXQKICAnZm9sZGxldmVsJyB0byB6ZXJvIGFuZCAnZm9sZGVuYWJsZScgb24sIHRvIGNsb3NlIHRoZSBmb2xkcy4KLSBBZGRlZCB0aGUgRGlmZkFkZCwgRGlmZkNoYW5nZSwgRGlmZkRlbGV0ZSBhbmQgRGlmZlRleHQgaGlnaGxpZ2h0IGdyb3VwcyB0bwogIHNwZWNpZnkgdGhlIGhpZ2hsaWdodGluZyBmb3IgZGlmZmVyZW5jZXMuICBUaGUgZGVmYXVsdHMgYXJlIHVnbHkuLi4KLSBVbml4OiBtYWtlIGEgdmltZGlmZiBzeW1ib2xpYyBsaW5rIGZvciAibWFrZSBpbnN0YWxsIi4KLSBSZW1vdmVkIHRoZSBub3cgb2Jzb2xldGUgInZpbWRpZmYudmltIiBzY3JpcHQgZnJvbSB0aGUgZGlzdHJpYnV0aW9uLgotIEFkZGVkIHRoZSAiW2MiIGFuZCAiXWMiIGNvbW1hbmRzIHRvIG1vdmUgdG8gdGhlIG5leHQvcHJldmlvdXMgY2hhbmdlIGluIGRpZmYKICBtb2RlLgoKCkVhc3kgVmltOiBjbGljay1hbmQtdHlwZQkJCQkqbmV3LWV2aW0qCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZVZpbSBzdGFuZHMgZm9yICJFYXN5IFZpbSIuICBUaGlzIGlzIGEgc2VwYXJhdGUgcHJvZ3JhbSwgYnV0IGNhbiBhbHNvIGJlCnN0YXJ0ZWQgYXMgInZpbSAteSIuCgpUaGlzIHN0YXJ0cyBWaW0gd2l0aCAnaW5zZXJ0bW9kZScgc2V0IHRvIGFsbG93IGNsaWNrLWFuZC10eXBlIGVkaXRpbmcuICBUaGUKJFZJTVJVTlRJTUUvZXZpbS52aW0gc2NyaXB0IGlzIHVzZWQgdG8gYWRkIG1hcHBpbmdzIGFuZCBzZXQgb3B0aW9ucyB0byBiZSBhYmxlCnRvIGRvIG1vc3QgdGhpbmdzIGxpa2UgTm90ZXBhZC4gIFRoaXMgaXMgb25seSBmb3IgcGVvcGxlIHdobyBjYW4ndCBzdGFuZCB0d28KbW9kZXMuCgplVmlldyBkb2VzIHRoZSBzYW1lIGJ1dCBpbiByZWFkb25seSBtb2RlLgoKSW4gdGhlIEdVSSBhIENUUkwtQyBub3cgb25seSBpbnRlcnJ1cHRzIHdoZW4gYnVzeSB3aXRoIHNvbWV0aGluZywgbm90IHdoZW4Kd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuICBBbGxvd3MgdXNpbmcgQ1RSTC1DIHRvIGNvcHkgdGV4dCB0byB0aGUgY2xpcGJvYXJkLgoKClVzZXIgbWFudWFsCQkJCQkJKm5ldy11c2VyLW1hbnVhbCoKLS0tLS0tLS0tLS0KClRoZSB1c2VyIG1hbnVhbCBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIG9yZ2FuaXNlZCBhcm91bmQgZWRpdGluZyB0YXNrcy4gIEl0CnJlYWRzIGxpa2UgYSBib29rLCBmcm9tIHN0YXJ0IHRvIGVuZC4gIEl0IHNob3VsZCBhbGxvdyBiZWdpbm5lcnMgdG8gc3RhcnQKbGVhcm5pbmcgVmltLiAgSXQgaGVscHMgZXZlcnlib2R5IHRvIGxlYXJuIHVzaW5nIHRoZSBtb3N0IHVzZWZ1bCBWaW0gZmVhdHVyZXMuCkl0IGlzIG11Y2ggZWFzaWVyIHRvIHJlYWQgdGhhbiB0aGUgcmVmZXJlbmNlIG1hbnVhbCwgYnV0IG9taXRzIGRldGFpbHMuICBTZWUKfHVzZXItbWFudWFsfC4KClRoZSB1c2VyIG1hbnVhbCBpbmNsdWRlcyBwYXJ0cyBvZiB0aGUgVmltIGJvb2sgYnkgU3RldmUgT3VhbGxpbmUgfGZyb21ib29rfC4KSXQgaXMgcHVibGlzaGVkIHVuZGVyIHRoZSBPUEwgfG1hbnVhbC1jb3B5cmlnaHR8LgoKV2hlbiBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIG5vdCBlbmFibGVkLCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgaGVscCBmaWxlIHdoaWNoCm1hcmsgZXhhbXBsZXMgKCc+JyBhbmQgJzwnKSBhbmQgaGVhZGVyIGxpbmVzICgnficpIGFyZSByZXBsYWNlZCB3aXRoIGEgc3BhY2UuCgpXaGVuIGNsb3NpbmcgdGhlIGhlbHAgd2luZG93LCB0aGUgd2luZG93IGxheW91dCBpcyByZXN0b3JlZCBmcm9tIGJlZm9yZQpvcGVuaW5nIGl0LCBpZiB0aGUgd2luZG93IGxheW91dCBkaWRuJ3QgY2hhbmdlIHNpbmNlIHRoZW4uCldoZW4gb3BlbmluZyB0aGUgaGVscCB3aW5kb3csIHB1dCBpdCBhdCB0aGUgdG9wIG9mIHRoZSBWaW0gd2luZG93IGlmIHRoZQpjdXJyZW50IHdpbmRvdyBpcyBmZXdlciB0aGFuIDgwIGNoYXJhY3RlcnMgYW5kIG5vdCBmdWxsIHdpZHRoLgoKCkZsZXhpYmxlIGluZGVudGluZwkJCQkJKm5ldy1pbmRlbnQtZmxleCoKLS0tLS0tLS0tLS0tLS0tLS0tCgpBdXRvbWF0aWMgaW5kZW50aW5nIGlzIG5vdyBwb3NzaWJsZSBmb3IgYW55IGxhbmd1YWdlLiAgSXQgd29ya3Mgd2l0aCBhIFZpbQpzY3JpcHQsIHdoaWNoIG1ha2VzIGl0IHZlcnkgZmxleGlibGUgdG8gY29tcHV0ZSB0aGUgaW5kZW50LgoKVGhlICI6ZmlsZXR5cGUgaW5kZW50IG9uIiBjb21tYW5kIGVuYWJsZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGluZGVudCBzY3JpcHRzLgpUaGlzIGlzIGV4cGxhaW5lZCBpbiB0aGUgdXNlciBtYW51YWw6IHwzMC4zfC4KClRoZSAnaW5kZW50ZXhwcicgb3B0aW9uIGlzIGV2YWx1YXRlZCB0byBnZXQgdGhlIGluZGVudCBmb3IgYSBsaW5lLiAgVGhlCidpbmRlbnRrZXlzJyBvcHRpb24gdGVsbHMgd2hlbiB0byB0cmlnZ2VyIHJlLWluZGVudGluZy4gIE5vcm1hbGx5IHRoZXNlCm9wdGlvbnMgYXJlIHNldCBmcm9tIGFuIGluZGVudCBzY3JpcHQuICBMaWtlIFN5bnRheCBmaWxlcywgaW5kZW50IHNjcmlwdHMgd2lsbApiZSBjcmVhdGVkIGFuZCBtYWludGFpbmVkIGJ5IG1hbnkgcGVvcGxlLgoKCkV4dGVuZGVkIHNlYXJjaCBwYXR0ZXJucwkJCQkqbmV3LXNlYXJjaHBhdCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gbWF0Y2ggbW9yZSB0aGFuIG9uZSBsaW5lIHdpdGggYSBwYXR0ZXJuLiAocGFydGx5IGJ5CkxvaWMgR3JlbmllKQpOZXcgaXRlbXMgaW4gYSBzZWFyY2ggcGF0dGVybiBmb3IgbXVsdGktbGluZSBtYXRjaGVzOgpcbgkJbWF0Y2ggZW5kLW9mLWxpbmUsIGFsc28gaW4gW10KXF9bXQkJbWF0Y2ggY2hhcmFjdGVycyBpbiByYW5nZSBhbmQgZW5kLW9mLWxpbmUKXF94CQltYXRjaCBjaGFyYWN0ZXIgY2xhc3MgYW5kIGVuZC1vZi1saW5lClxfLgkJbWF0Y2ggYW55IGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQpcX14JCW1hdGNoIHN0YXJ0LW9mLWxpbmUsIGNhbiBiZSB1c2VkIGFueXdoZXJlIGluIHRoZSByZWdleHAKXF8kCQltYXRjaCBlbmQtb2YtbGluZSwgY2FuIGJlIHVzZWQgYW55d2hlcmUgaW4gdGhlIHJlZ2V4cAoKVmFyaW91cyBvdGhlciBuZXcgaXRlbXMgaW4gc2VhcmNoIHBhdHRlcm5zOgpcYwkJaWdub3JlIGNhc2UgZm9yIHRoZSB3aG9sZSBwYXR0ZXJuClxDCQltYXRjaCBjYXNlIGZvciB0aGUgd2hvbGUgcGF0dGVybgpcbQkJbWFnaWMgb24gZm9yIHRoZSBmb2xsb3dpbmcKXE0JCW1hZ2ljIG9mZiBmb3IgdGhlIGZvbGxvd2luZwpcdgkJbWFrZSBmb2xsb3dpbmcgY2hhcmFjdGVycyAidmVyeSBtYWdpYyIKXFYJCW1ha2UgZm9sbG93aW5nIGNoYXJhY3RlcnMgInZlcnkgbm9tYWdpYyIKClxAIQkJZG9uJ3QgbWF0Y2ggYXRvbSBiZWZvcmUgdGhpcy4KCQlFeGFtcGxlOiAiZm9vXChiYXJcKVxAISIgbWF0Y2hlcyAiZm9vICIgYnV0IG5vdCAiZm9vYmFyIi4KXEA9CQltYXRjaCBhdG9tLCByZXN1bHRpbmcgaW4gIHplcm8td2lkdGggbWF0Y2gKCQlFeGFtcGxlOiAiZm9vXChiYXJcKVxAPSIgbWF0Y2hlcyAiZm9vIiBpbiAiZm9vYmFyIi4KXEA8IQkJZG9uJ3QgbWF0Y2ggcHJlY2VkaW5nIGF0b20gYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uClxAPD0JCW1hdGNoIHByZWNlZGluZyBhdG9tIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbgpcQD4JCW1hdGNoIHByZWNlZGluZyBhdG9tIGFzIGEgc3ViZXhwcmVzc2lvbgoKXCYJCW1hdGNoIG9ubHkgd2hlbiBicmFuY2ggYmVmb3JlIGFuZCBhZnRlciBpdCBtYXRjaAoKXCVbXQkJb3B0aW9uYWxseSBtYXRjaCBhIGxpc3Qgb2YgYXRvbXM7ICJlbmRcJVtpZl0iIG1hdGNoZXMgImVuZCIsCgkJImVuZGkiIGFuZCAiZW5kaWYiClwlKFwpCQlsaWtlIFwoXCksIGJ1dCB3aXRob3V0IGNyZWF0aW5nIGEgYmFjay1yZWZlcmVuY2U7IHRoZXJlIGNhbiBiZQoJCWFueSBudW1iZXIgb2YgdGhlc2UsIG92ZXJjb21lcyB0aGUgbGltaXQgb2YgbmluZSBcKCBcKSBwYWlycwpcJV4JCW1hdGNoIHN0YXJ0LW9mLWZpbGUgKENoYXNlIFRpbmdsZXkpClwlJAkJbWF0Y2ggZW5kLW9mLWZpbGUgKENoYXNlIFRpbmdsZXkpClwlIwkJTWF0Y2ggd2l0aCB0aGUgY3Vyc29yIHBvc2l0aW9uLiAoQ2hhc2UgVGluZ2xleSkKXD8JCUp1c3QgbGlrZSAiXD0iIGJ1dCBjYW4ndCBiZSB1c2VkIGluIGEgIj8iIGNvbW1hbmQuCgpcJTIzbAkJbWF0Y2ggaW4gbGluZSAyMwpcJTwyM2wJCW1hdGNoIGJlZm9yZSBsaW5lIDIzClwlPjIzbAkJbWF0Y2ggYWZ0ZXIgbGluZSAyMwpcJTIzYywgXCU8MjNjLCBcJT4yM2MgICBtYXRjaCBpbi9iZWZvcmUvYWZ0ZXIgY29sdW1uIDIzClwlMjN2LCBcJTwyM3YsIFwlPjIzdgltYXRjaCBpbi9iZWZvcmUvYWZ0ZXIgdmlydHVhbCBjb2x1bW4gMjMKCgpGb3Igc3ludGF4IGl0ZW1zOgpceiguLi5cKQlleHRlcm5hbCByZWZlcmVuY2UgbWF0Y2ggc2V0IChpbiByZWdpb24gc3RhcnQgcGF0dGVybikKXHoxIC0gXHo5CWV4dGVybmFsIHJlZmVyZW5jZSBtYXRjaCB1c2UgKGluIHJlZ2lvbiBza2lwIG9yIGVuZCBwYXR0ZXJuKQoJKFNjb3R0IEJpZ2hhbSkKClx6cwkJdXNlIHBvc2l0aW9uIGFzIHN0YXJ0IG9mIG1hdGNoClx6ZQkJdXNlIHBvc2l0aW9uIGFzIGVuZCBvZiBtYXRjaAoKUmVtb3ZlZCBsaW1pdCBvZiBtYXRjaGluZyBvbmx5IHVwIHRvIDMyNzY3IHRpbWVzIHdpdGggKiwgXCssIGV0Yy4KCkFkZGVkIHN1cHBvcnQgdG8gbWF0Y2ggbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAocGFydGx5IGJ5IE11cmFva2EgVGFybykKTWFkZSAiXDwiIGFuZCAiXD4iIHdvcmsgZm9yIFVURi04LiAoTXVyYW9rYSBUYXJvKQoKClVURi04IHN1cHBvcnQJCQkJCQkqbmV3LXV0Zi04KgotLS0tLS0tLS0tLS0tCgpWaW0gY2FuIG5vdyBlZGl0IGZpbGVzIGluIFVURi04IGVuY29kaW5nLiAgVXAgdG8gMzEgYml0IGNoYXJhY3RlcnMgY2FuIGJlCnVzZWQsIGJ1dCBvbmx5IDE2IGJpdCBjaGFyYWN0ZXJzIGFyZSBkaXNwbGF5ZWQuICBVcCB0byB0d28gY29tYmluaW5nCmNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZCwgdGhleSBvdmVycHJpbnQgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuCkRvdWJsZS13aWRlIGNoYXJhY3RlcnMgYXJlIGFsc28gc3VwcG9ydGVkLiAgU2VlIHxVVEYtOHwuCgpVQ1MtMiwgVUNTLTQgYW5kIFVURi0xNiBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCB0b28sIHRoZXkgYXJlIGNvbnZlcnRlZCB0bwpVVEYtOCBpbnRlcm5hbGx5LiAgVGhlcmUgaXMgYWxzbyBzdXBwb3J0IGZvciBlZGl0aW5nIFVuaWNvZGUgZmlsZXMgaW4gYSBMYXRpbjEKZW52aXJvbm1lbnQuICBPdGhlciBlbmNvZGluZ3MgYXJlIGNvbnZlcnRlZCB3aXRoIGljb252KCkgb3IgYW4gZXh0ZXJuYWwKY29udmVydGVyIHNwZWNpZmllZCB3aXRoICdjaGFyY29udmVydCcuCgpNYW55IG5ldyBpdGVtcyBmb3IgTXVsdGktYnl0ZSBzdXBwb3J0OgotIEFkZGVkICdlbmNvZGluZycgb3B0aW9uOiBzcGVjaWZpZXMgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgaW5zaWRlIFZpbS4gIEl0CiAgY2FuIGJlIGFueSA4LWJpdCBlbmNvZGluZywgc29tZSBkb3VibGUtYnl0ZSBlbmNvZGluZ3Mgb3IgVW5pY29kZS4KICBJdCBpcyBpbml0aWFsaXplZCBmcm9tIHRoZSBlbnZpcm9ubWVudCB3aGVuIGEgc3VwcG9ydGVkIHZhbHVlIGlzIGZvdW5kLgotIEFkZGVkICdmaWxlZW5jb2RpbmcnIGFuZCAnZmlsZWVuY29kaW5ncyc6IHNwZWNpZnkgY2hhcmFjdGVyIGNvZGluZyBpbiBhCiAgZmlsZSwgc2ltaWxhciB0byAnZmlsZWZvcm1hdCcgYW5kICdmaWxlZm9ybWF0cycuCiAgV2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIgYW5kICdmaWxlZW5jb2RpbmdzJyBpcyAidXRmLTgsbGF0aW4xIiB0aGlzIHdpbGwKICBhdXRvbWF0aWNhbGx5IHN3aXRjaCB0byBsYXRpbjEgaWYgYSBmaWxlIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgVVRGLTguCi0gQWRkZWQgJ2JvbWInIG9wdGlvbiBhbmQgZGV0ZWN0aW9uIG9mIGEgQk9NIGF0IHRoZSBzdGFydCBvZiBhIGZpbGUuICBDYW4gYmUKICB1c2VkIHdpdGggInVjcy1ib20iIGluICdmaWxlZW5jb2RpbmdzJyB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCBhIFVuaWNvZGUKICBmaWxlIGlmIGl0IHN0YXJ0cyB3aXRoIGEgQk9NLiAgRXNwZWNpYWxseSB1c2VmdWwgb24gTVMtV2luZG93cyAoTlQgYW5kCiAgMjAwMCksIHdoaWNoIHVzZXMgdWNzLTJsZSBmaWxlcyB3aXRoIGEgQk9NIChlLmcuLCB3aGVuIGV4cG9ydGluZyB0aGUKICByZWdpc3RyeSkuCi0gQWRkZWQgdGhlICd0ZXJtZW5jb2RpbmcnIG9wdGlvbjogU3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciB0aGUKICB0ZXJtaW5hbC4gIFVzZWZ1bCB0byBwdXQgVmltIGluIHV0Zi04IG1vZGUgd2hpbGUgaW4gYSBub24tVW5pY29kZSBsb2NhbGU6ID4KICAgIDpsZXQgJnRlcm1lbmNvZGluZyA9ICZlbmNvZGluZwogICAgOnNldCBlbmNvZGluZz11dGYtOAotIFdoZW4gJ3ZpbWluZm8nIGNvbnRhaW5zIHRoZSAnYycgZmxhZywgdGhlIHZpbWluZm8gZmlsZSBpcyBjb252ZXJ0ZWQgZnJvbSB0aGUKICAnZW5jb2RpbmcnIGl0IHdhcyB3cml0dGVuIHdpdGggdG8gdGhlIGN1cnJlbnQgJ2VuY29kaW5nJy4KLSBBZGRlZCAiOnNjcmlwdGVuY29kaW5nIiBjb21tYW5kOiBjb252ZXJ0IGxpbmVzIGluIGEgc291cmNlZCBzY3JpcHQgdG8KICAnZW5jb2RpbmcnLiAgVXNlZnVsIGZvciBtZW51IGZpbGVzLgotIEFkZGVkICdndWlmb250d2lkZScgdG8gc3BlY2lmeSBhIGZvbnQgZm9yIGRvdWJsZS13aWRlIGNoYXJhY3RlcnMuCi0gQWRkZWQgS29yZWFuIHN1cHBvcnQgZm9yIGNoYXJhY3RlciBjbGFzcyBkZXRlY3Rpb24uICBBbHNvIGZpeCBjbHMoKSBpbgogIHNlYXJjaC5jLiAoQ2hvbmctRGFlIFBhcmspCi0gV2luMzI6IFR5cGluZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgd2l0aG91dCBJTUUuIChBbGV4YW5kZXIgU21pc2hsYWpldikKLSBXaW4zMiB3aXRoIE1pbmd3OiBjb21waWxlIHdpdGggaWNvbnYgbGlicmFyeS4gKFJvbiBBYXJvbikKLSBXaW4zMiB3aXRoIE1TVkM6IGR5bmFtaWNhbGx5IGxvYWQgaWNvbnYuZGxsIGxpYnJhcnkuIChNdXJhb2thIFRhcm8pCi0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBhIHZlcnNpb24gd2l0aCBtdWx0aS1ieXRlIGFuZCBpY29udiBzdXBwb3J0IHdpdGgKICBCb3JsYW5kIDUuNS4gIChZYXN1aGlybyBNYXRzdW1vdG8pCi0gQWRkZWQgJ2RlbGNvbWJpbmUnIG9wdGlvbjogRGVsZXRlIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VwYXJhdGVseS4gKFJvbgogIEFhcm9uKQotIFRoZSAieGZvbnRzZXQiIGZlYXR1cmUgaXNuJ3QgcmVxdWlyZWQgZm9yICJ4aW0iLiAgVGhlc2UgYXJlIG5vdyB0d28KICBpbmRlcGVuZGVudCBmZWF0dXJlcy4KLSBYSU06IGVuYWJsZSBYSU0gd2hlbiB0eXBpbmcgYSBsYW5ndWFnZSBjaGFyYWN0ZXIgKEluc2VydCBtb2RlLCBTZWFyY2gKICBwYXR0ZXJuLCAiZiIgb3IgInIiIGNvbW1hbmQpLiAgRGlzYWJsZSBYSU0gd2hlbiB0eXBpbmcgYSBOb3JtYWwgbW9kZQogIGNvbW1hbmQuCi0gV2hlbiB0aGUgWElNIGlzIGFjdGl2ZSwgc2hvdyAiWElNIiBpbiB0aGUgJ3Nob3dtb2RlJyBtZXNzYWdlLiAoTmFtIFN1bmdIeXVuKQotIFN1cHBvcnQgIkN1cnNvcklNIiBmb3IgWElNLiAgKE5hbSBTdW5nSHl1bikKLSBBZGRlZCAnbScgZmxhZyB0byAnZm9ybWF0b3B0aW9ucyc6IFdoZW4gd3JhcHBpbmcgd29yZHMsIGFsbG93IHNwbGl0dGluZyBhdAogIGVhY2ggbXVsdGlieXRlIGNoYXJhY3Rlciwgbm90IG9ubHkgYXQgYSBzcGFjZS4KLSBNYWRlICI6c3ludGF4IGtleXdvcmQiIHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCi0gQWRkZWQgc3VwcG9ydCBmb3IgVW5pY29kZSB1cHBlci9sb3dlcmNhc2UgZmxpcHBpbmcgYW5kIGNvbXBhcmluZy4gKGJhc2VkIG9uCiAgcGF0Y2ggYnkgUmFwaGFlbCBGaW5rZWwpCiAgTGV0ICJ+IiBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGEgdGhpcmQgY2FzZSAoInRpdGxlIGNhc2UiKQogIHN3aXRjaCBiZXR3ZWVuIHRoZSB0aHJlZSBjYXNlcy4gKFJhcGhhZWwgRmlua2VsKQoKQWxsb3cgZGVmaW5pbmcgZGlncmFwaHMgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KQWRkZWQgUkZDMTM0NSBkaWdyYXBocyBmb3IgVW5pY29kZS4KTW9zdCBOb3JtYWwgbW9kZSBjb21tYW5kcyB0aGF0IGFjY2VwdCBhIGNoYXJhY3RlciBhcmd1bWVudCwgbGlrZSAiciIsICJ0IiBhbmQKImYiIG5vdyBhY2NlcHQgYSBkaWdyYXBoLiAgVGhlICdEJyBmbGFnIGluICdjcG9wdGlvbnMnIGRpc2FibGVzIHRoaXMgdG8gcmVtYWluClZpIGNvbXBhdGlibGUuCgpBZGRlZCBMYW5ndWFnZSBtYXBwaW5nIGFuZCAna2V5bWFwJyB0byBiZSBhYmxlIHRvIHR5cGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzOgotIEFkZGVkIHRoZSAiOmxtYXAiIGNvbW1hbmQgYW5kIGZyaWVuZHM6IERlZmluZSBtYXBwaW5ncyB0aGF0IGFyZSB1c2VkIHdoZW4KICB0eXBpbmcgY2hhcmFjdGVycyBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQuICBBbHNvIGZvciAiciIsICJ0IiwgZXRjLiAgSW4KICBJbnNlcnQgYW5kIENvbW1hbmQtbGluZSBtb2RlIENUUkwtXiBzd2l0Y2hlcyB0aGUgdXNlIG9mIHRoZSBtYXBwaW5ncyBvbi9vZmYuCiAgQ1RSTC1eIGFsc28gdG9nZ2xlcyB0aGUgdXNlIG9mIGFuIGlucHV0IG1ldGhvZCB3aGVuIG5vIGxhbmd1YWdlIG1hcHBpbmdzIGFyZQogIHByZXNlbnQuICBBbGxvd3Mgc3dpdGNoaW5nIHRoZSBJTSBiYWNrIG9uIGhhbGZ3YXkgdHlwaW5nLgotICI8Y2hhci0xMjM+IiBhcmd1bWVudCB0byAiOm1hcCIsIGFsbG93cyB0byBzcGVjaWZ5IHRoZSBkZWNpbWFsLCBvY3RhbCBvcgogIGhleGFkZWNpbWFsIHZhbHVlIG9mIGEgY2hhcmFjdGVyLgotIEltcGxlbWVudGVkIHRoZSAna2V5bWFwJyBvcHRpb246IExvYWQgYSBrZXltYXAgZmlsZS4gIFVzZXMgIjpsbm9yZW1hcCIgdG8KICBkZWZpbmUgbWFwcGluZ3MgZm9yIHRoZSBrZXltYXAuICBUaGUgbmV3ICI6bG9hZGtleW1hcCIgY29tbWFuZCBpcyB1c2VkIGluCiAgdGhlIGtleW1hcCBmaWxlLgotIEFkZGVkICdrJyBmbGFnIGluICdzdGF0dXNsaW5lJzogVmFsdWUgb2YgImI6a2V5bWFwX25hbWUiIG9yICdrZXltYXAnIHdoZW4KICBpdCdzIGJlaW5nIHVzZWQuICBVc2VzICI8bGFuZz4iIHdoZW4gbm8ga2V5bWFwIGlzIGxvYWRlZCBhbmQgIjpsbWFwInMgYXJlCiAgYWN0aXZlLiAgU2hvdyB0aGlzIHRleHQgaW4gdGhlIGRlZmF1bHQgc3RhdHVzbGluZSB0b28uCi0gQWRkZWQgdGhlICdpbWluc2VydCcgYW5kICdpbXNlYXJjaCcgb3B0aW9uczogU3BlY2lmeSB1c2Ugb2YgbGFuZ21hcCBtYXBwaW5ncwogIGFuZCBJbnB1dCBNZXRob2Qgd2l0aCBhbiBvcHRpb24uIChNdXJhb2thIFRhcm8pCiAgQWRkZWQgJ2ltY21kbGluZScgb3B0aW9uOiBXaGVuIHNldCB0aGUgaW5wdXQgbWV0aG9kIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4KICBzdGFydGluZyB0byBlZGl0IGEgY29tbWFuZCBsaW5lLiAgVXNlZnVsIGZvciBhIFhJTSB0aGF0IHVzZXMgZGVhZCBrZXlzIHRvCiAgdHlwZSBhY2NlbnRlZCBjaGFyYWN0ZXJzLgogIEFkZGVkICdpbWFjdGl2YXRla2V5JyBvcHRpb24gdG8gYmV0dGVyIGNvbnRyb2wgWElNLiAgKE11cmFva2EgVGFybykKLSBXaGVuIHR5cGluZyBhIG1hcHBpbmcgdGhhdCdzIG5vdCBmaW5pc2hlZCB5ZXQsIGRpc3BsYXkgdGhlIGxhc3QgY2hhcmFjdGVyCiAgdW5kZXIgdGhlIGN1cnNvciBpbiBJbnNlcnQgbW9kZSBhbmQgQ29tbWFuZC1saW5lIG1vZGUuICBMb29rcyBnb29kIGZvciBkZWFkCiAgY2hhcmFjdGVycy4KLSBNYWRlIHRoZSAnbGFuZ21hcCcgb3B0aW9uIHJlY29nbml6ZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuICBCdXQgbWFwcGluZyBvbmx5CiAgd29ya3MgZm9yIDgtYml0IGNoYXJhY3RlcnMuICBIZWxwcyB3aGVuIHVzaW5nIFVURi04LgotIFVzZSBhIGRpZmZlcmVudCBjdXJzb3IgZm9yIHdoZW4gIjpsbWFwIiBtYXBwaW5ncyBhcmUgYWN0aXZlLiAgQ2FuIHNwZWNpZnkKICB0d28gaGlnaGxpZ2h0IGdyb3VwcyBmb3IgYW4gaXRlbSBpbiAnZ3VpY3Vyc29yJy4gIEJ5IGRlZmF1bHQgImxDdXJzb3IiIGFuZAogICJDdXJzb3IiIGFyZSBlcXVhbCwgdGhlIHVzZXIgbXVzdCBzZXQgYSBjb2xvciBoZSBsaWtlcy4KICBVc2UgdGhlIGN1cnNvciBjb2xvciBmb3IgaGFuZ3VsIGlucHV0IGFzIHdlbGwuIChTdW5nLUh5dW4gTmFtKQotIFNob3cgIihsYW5nKSIgZm9yICdzaG93bW9kZScgd2hlbiBsYW5ndWFnZSBtYXBwaW5nIGlzIGVuYWJsZWQuCi0gVVRGLTg6IE1hZGUgInIiIHdvcmsgd2l0aCBhICI6bG1hcCIgdGhhdCBpbmNsdWRlcyBhIGNvbXBvc2luZyBjaGFyYWN0ZXIuCiAgQWxzbyB3b3JrcyBmb3IgImYiLCB3aGljaCBub3cgd29ya3MgdG8gZmluZCBhIGNoYXJhY3RlciB0aGF0IGluY2x1ZGVzIGEKICBjb21wb3NpbmcgY2hhcmFjdGVyLgoKT3RoZXIgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgYWRkaXRpb25zOgotIFN1cHBvcnQgZG91YmxlLWJ5dGUgc2luZ2xlLXdpZHRoIGNoYXJhY3RlcnMgZm9yIGV1Yy1qcDogQ2hhcmFjdGVycyBzdGFydGluZwogIHdpdGggMHg4RS4gIEFkZGVkIFNjcmVlbkxpbmVzMltdIHRvIHN0b3JlIHRoZSBzZWNvbmQgYnl0ZS4KCgpNdWx0aS1sYW5ndWFnZSBzdXBwb3J0CQkJCQkqbmV3LW11bHRpLWxhbmcqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBtZXNzYWdlcyB1c2VkIGluIFZpbSBjYW4gYmUgdHJhbnNsYXRlZC4gIFNldmVyYWwgdHJhbnNsYXRpb25zIGFyZQphdmFpbGFibGUuICBUaGlzIHVzZXMgdGhlIGdldHRleHQgbWVjaGFuaXNtLiAgSXQgYWxsb3dzIGFkZGluZyBhIHRyYW5zbGF0aW9uCndpdGhvdXQgcmVjb21waWxpbmcgVmltLiAgfG11bHRpLWxhbmd8IChwYXJ0bHkgYnkgTWFyY2luIERhbGVja2kpCgpUaGUgdHJhbnNsYXRpb24gZmlsZXMgYXJlIGluIHRoZSBzcmMvcG8gZGlyZWN0b3J5LiAgVGhlIHNyYy9wby9SRUFETUUudHh0IGZpbGUKZXhwbGFpbnMgYSBmZXcgdGhpbmdzIGFib3V0IGRvaW5nIGEgdHJhbnNsYXRpb24uCgpNZW51IHRyYW5zbGF0aW9ucyBhcmUgYXZhaWxhYmxlIGFzIHdlbGwuICBUaGlzIHVzZXMgdGhlIG5ldyB8Om1lbnV0cmFuc2xhdGV8CmNvbW1hbmQuICBUaGUgdHJhbnNsYXRpb25zIGFyZSBmb3VuZCBpbiB0aGUgcnVudGltZSBkaXJlY3RvcnkgImxhbmciLiAgVGhpcwphbGxvd3MgYSB1c2VyIHRvIGFkZCBhIHRyYW5zbGF0aW9uLgoKQWRkZWQgfDpsYW5ndWFnZXwgY29tbWFuZCB0byBzZXQgdGhlIGxhbmd1YWdlIChsb2NhbGUpIGZvciBtZXNzYWdlcywgdGltZSBhbmQKY2hhcmFjdGVyIHR5cGUuICBUaGlzIGFsbG93cyBzd2l0Y2hpbmcgbGFuZ3VhZ2VzIGluIFZpbSB3aXRob3V0IGNoYW5naW5nIHRoZQpsb2NhbGUgb3V0c2lkZSBvZiBWaW0uCgpNYWRlIGl0IHBvc3NpYmxlIHRvIGhhdmUgdmltdHV0b3IgdXNlIGRpZmZlcmVudCBsYW5ndWFnZXMuICAoRWR1YXJkbyBGZXJuYW5kZXopClNwYW5pc2ggKEVkdWFyZG8gRmVybmFuZGV6KSwgSXRhbGlhbiAoQW50b25pbyBDb2xvbWJvKSwgSmFwYW5lc2UgKFlhc3VoaXJvCk1hdHN1bW90bykgYW5kIEZyZW5jaCAoQWRyaWVuIEJlYXUpIHRyYW5zbGF0aW9ucyBhcmUgaW5jbHVkZWQuCkFkZGVkICJ2aW10dXRvci5iYXQiOiBzY3JpcHQgdG8gc3RhcnQgVmltIG9uIGEgY29weSBvZiB0aGUgdHV0b3IgZmlsZSBmb3IKTVMtV2luZG93cy4gKERhbiBTaGFycCkKCi0gQWRkZWQgdjpsYW5nIHZhcmlhYmxlIHRvIGJlIGFibGUgdG8gZ2V0IGN1cnJlbnQgbGFuZ3VhZ2Ugc2V0dGluZy4KICAoTWFyY2luIERhbGVja2kpICBBbHNvIHY6bGNfdGltZSBhbmQgdjpjdHlwZS4KLSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRyYW5zbGF0ZSB0aGUgZGlhbG9ncyB1c2VkIGJ5IHRoZSBtZW51cy4gIFVzZXMgZ2xvYmFsCiAgIm1lbnV0cmFuc18iIHZhcmlhYmxlcy4gICI6bWVudXRyYW5zIGNsZWFyIiBkZWxldGVzIHRoZW0uCi0gcmVtb3ZlZCAiYnJva2VuIGxvY2FsZSIgKE1hcmNpbiBEYWxlY2tpKS4KLSBEb24ndCB1c2UgY29sb3IgbmFtZXMgaW4gaWNvbnMsIHVzZSBSR0IgdmFsdWVzLiAgVGhlIG5hbWVzIGNvdWxkIGJlCiAgdHJhbnNsYXRlZC4KLSBXaW4zMjogQWRkZWQgZ2xvYmFsIElNRSBzdXBwb3J0IChNdXJhb2thKQotIFdpbjMyOiBBZGRlZCBkeW5hbWljIGxvYWRpbmcgb2YgSU1FIHN1cHBvcnQuCi0gIjptZXNzYWdlcyIgcHJpbnRzIGEgbWVzc2FnZSBhYm91dCB3aG8gbWFpbnRhaW5zIHRoZSBtZXNzYWdlcyBvciB0aGUKICB0cmFuc2xhdGlvbnMuICBVc2VmdWwgdG8gZmluZCBvdXQgd2hlcmUgdG8gbWFrZSBhIHJlbWFyayBhYm91dCBhIHdyb25nCiAgdHJhbnNsYXRpb24uCi0gLS1kaXNhYmxlLW5scyBhcmd1bWVudCBmb3IgY29uZmlndXJlOiBEaXNhYmxlIHVzZSBvZiBnZXR0ZXh0KCkuIChTdW5nLUh5dW4KICBOYW0pCi0gQWRkZWQgTkxTIHN1cHBvcnQgZm9yIFdpbjMyIHdpdGggdGhlIE1pbmdXIGNvbXBpbGVyLiAoRWR1YXJkbyBGZXJuYW5kZXopCi0gV2hlbiBhdmFpbGFibGUsIGNhbGwgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoKSB0byBoYXZlIGdldHRleHQoKSB0cmFuc2xhdGUKICBtZXNzYWdlcyB0byAnZW5jb2RpbmcnLiAgVGhpcyByZXF1aXJlcyBHTlUgZ2V0dGV4dCAwLjEwLjM2IG9yIGxhdGVyLgotIEFkZGVkIGdldHRleHQgc3VwcG9ydCBmb3IgV2luMzIuICBUaGlzIG1lYW5zIG1lc3NhZ2VzIHdpbGwgYmUgdHJhbnNsYXRlZAogIHdoZW4gdGhlIGxvY2FsZSBpcyBzZXQgYW5kIGxpYmludGwuZGxsIGNhbiBiZSBmb3VuZC4gIChNdXJhb2thIFRhcm8pCiAgQWxzbyBtYWRlIGl0IHdvcmsgd2l0aCBNaW5nVyBjb21waWxlci4gIChFZHVhcmRvIEZlcm5hbmRleikKICBEZXRlY3QgdGhlIGxhbmd1YWdlIGFuZCBzZXQgJExBTkcgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSB0cmFuc2xhdGVkIG1lc3NhZ2VzCiAgKGlmIHN1cHBvcnRlZCkuICBBbHNvIHVzZSAkTEFORyB0byBzZWxlY3QgYSBsYW5ndWFnZSwgdjpsYW5nIGlzIGEgdmVyeQogIGRpZmZlcmVudCBraW5kIG9mIG5hbWUuCi0gTWFkZSBndmltZXh0LmRsbCB1c2UgdHJhbnNsYXRlZCBtZXNzYWdlcywgaWYgcG9zc2libGUuIChZYXN1aGlybyBNYXRzdW1vdG8pCgoKUGx1Z2luIHN1cHBvcnQJCQkJCSpuZXctcGx1Z2lucyoKLS0tLS0tLS0tLS0tLS0KClRvIG1ha2UgaXQgcmVhbGx5IGVhc3kgdG8gbG9hZCBhIFZpbSBzY3JpcHQgd2hlbiBzdGFydGluZyBWaW0sIHRoZSAicGx1Z2luIgpydW50aW1lIGRpcmVjdG9yeSBjYW4gYmUgdXNlZC4gIEFsbCAiKi52aW0iIGZpbGVzIGluIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseQpsb2FkZWQuICBGb3IgVW5peCwgdGhlIGRpcmVjdG9yeSAifi8udmltL3BsdWdpbiIgaXMgdXNlZCBieSBkZWZhdWx0LiAgVGhlCidydW50aW1lcGF0aCcgb3B0aW9uIGNhbiBiZSBzZXQgdG8gbG9vayBpbiBvdGhlciBkaXJlY3RvcmllcyBmb3IgcGx1Z2lucy4KfGxvYWQtcGx1Z2luc3wgfGFkZC1wbHVnaW58CgpUaGUgfDpydW50aW1lfCBjb21tYW5kIGhhcyBiZWVuIGFkZGVkIHRvIGxvYWQgb25lIG9yIG1vcmUgZmlsZXMgaW4KJ3J1bnRpbWVwYXRoJy4KClN0YW5kYXJkIHBsdWdpbnM6Cm5ldHJ3LnZpbSAtIEVkaXQgZmlsZXMgb3ZlciBhIG5ldHdvcmsgfG5ldy1uZXR3b3JrLWZpbGVzfApnemlwLnZpbSAtIEVkaXQgY29tcHJlc3NlZCBmaWxlcwpleHBsb3Jlci52aW0gLSBCcm93c2UgZGlyZWN0b3JpZXMgfG5ldy1maWxlLWJyb3dzZXJ8CgpBZGRlZCBzdXBwb3J0IGZvciBsb2NhbCBoZWxwIGZpbGVzLiB8YWRkLWxvY2FsLWhlbHB8LgpXaGVuIHNlYXJjaGluZyBmb3IgaGVscCB0YWdzLCBhbGwgImRvYy90YWdzIiBmaWxlcyBpbiAncnVudGltZXBhdGgnIGFyZSB1c2VkLgpBZGRlZCB0aGUgIjpoZWxwdGFncyIgY29tbWFuZDogR2VuZXJhdGUgYSB0YWdzIGZpbGUgZm9yIGEgaGVscCBkaXJlY3RvcnkuClRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggaGVscCBmaWxlIGlzIGF1dG9tYWdpY2FsbHkgYWRkZWQgdG8gdGhlICJMT0NBTApBRERJVElPTlMiIHNlY3Rpb24gaW4gZG9jL2hlbHAudHh0LgoKQWRkZWQgdGhlIDx1bmlxdWU+IGFyZ3VtZW50IHRvICI6bWFwIjogb25seSBhZGQgYSBtYXBwaW5nIHdoZW4gaXQgd2Fzbid0CmRlZmluZWQgYmVmb3JlLgoKV2hlbiBkaXNwbGF5aW5nIGFuIG9wdGlvbiB2YWx1ZSB3aXRoICd2ZXJib3NlJyBzZXQgd2lsbCBnaXZlIGEgbWVzc2FnZSBhYm91dAp3aGVyZSB0aGUgb3B0aW9uIHdhcyBsYXN0IHNldC4gIFZlcnkgdXNlZnVsIHRvIGZpbmQgb3V0IHdoaWNoIHNjcmlwdCBkaWQgc2V0CnRoZSB2YWx1ZS4KClRoZSBuZXcgfDpzY3JpcHRuYW1lc3wgY29tbWFuZCBkaXNwbGF5cyBhIGxpc3Qgb2YgYWxsIHNjcmlwdHMgdGhhdCBoYXZlIGJlZW4Kc291cmNlZC4KCkdVSTogRm9yIEF0aGVuYSwgTW90aWYgYW5kIEdUSyBsb29rIGZvciBhIHRvb2xiYXIgYml0bWFwIGluIHRoZSAiYml0bWFwcyIKZGlyZWN0b3JpZXMgaW4gJ3J1bnRpbWVwYXRoJy4gIEFsbG93cyBhZGRpbmcgeW91ciBvd24gYml0bWFwcy4KCgpGaWxldHlwZSBwbHVnaW5zCQkJCSpuZXctZmlsZXR5cGUtcGx1Z2lucyoKLS0tLS0tLS0tLS0tLS0tLS0KCkEgbmV3IGdyb3VwIG9mIGZpbGVzIGhhcyBiZWVuIGFkZGVkIHRvIGRvIHNldHRpbmdzIGZvciBzcGVjaWZpYyBmaWxlIHR5cGVzLgpUaGVzZSBjYW4gYmUgb3B0aW9ucyBhbmQgbWFwcGluZ3Mgd2hpY2ggYXJlIHNwZWNpZmljYWxseSB1c2VkIGZvciBvbmUgdmFsdWUgb2YKJ2ZpbGV0eXBlJy4KClRoZSBmaWxlcyBhcmUgbG9jYXRlZCBpbiAiJFZJTVJVTlRJTUUvZnRwbHVnaW4iLiAgVGhlICdydW50aW1lcGF0aCcgb3B0aW9uCm1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBzZXZlcmFsIHNldHMgb2YgcGx1Z2luczogWW91ciBvd24sIHN5c3RlbS13aWRlLAppbmNsdWRlZCBpbiB0aGUgVmltIGRpc3RyaWJ1dGlvbiwgZXRjLgoKVG8gYmUgYWJsZSB0byBtYWtlIHRoaXMgd29yaywgc2V2ZXJhbCBmZWF0dXJlcyB3ZXJlIGFkZGVkOgotIEFkZGVkIHRoZSAiczoiIHZhcmlhYmxlcywgbG9jYWwgdG8gYSBzY3JpcHQuICBBdm9pZHMgbmFtZSBjb25mbGljdHMgd2l0aAogIGdsb2JhbCB2YXJpYWJsZXMuICBUaGV5IGNhbiBiZSB1c2VkIGluIHRoZSBzY3JpcHQgYW5kIGluIGZ1bmN0aW9ucywKICBhdXRvY29tbWFuZHMgYW5kIHVzZXIgY29tbWFuZHMgZGVmaW5lZCBpbiB0aGUgc2NyaXB0LiAgVGhleSBhcmUga2VwdCBiZXR3ZWVuCiAgaW52b2NhdGlvbnMgb2YgdGhlIHNhbWUgc2NyaXB0LiAgfHM6dmFyfAotIEFkZGVkIHRoZSBnbG9iYWwgdmFsdWUgZm9yIGxvY2FsIG9wdGlvbnMuICBUaGlzIHZhbHVlIGlzIHVzZWQgd2hlbiBvcGVuaW5nCiAgYSBuZXcgYnVmZmVyIG9yIGVkaXRpbmcgYW5vdGhlciBmaWxlLiAgVGhlIG9wdGlvbiB2YWx1ZSBzcGVjaWZpZWQgaW4gYQogIG1vZGVsaW5lIG9yIGZpbGV0eXBlIHNldHRpbmcgaXMgbm90IGNhcnJpZWQgb3ZlciB0byBhbm90aGVyIGJ1ZmZlci4KICAiOnNldCIgc2V0cyBib3RoIHRoZSBsb2NhbCBhbmQgdGhlIGdsb2JhbCB2YWx1ZS4KICAiOnNldGxvY2FsIiBzZXRzIHRoZSBsb2NhbCBvcHRpb24gdmFsdWUgb25seS4KICAiOnNldGdsb2JhbCIgc2V0cyBvciBkaXNwbGF5cyB0aGUgZ2xvYmFsIHZhbHVlIGZvciBhIGxvY2FsIG9wdGlvbi4KICAiOnNldGxvY2FsIG5hbWU8IiBzZXRzIGEgbG9jYWwgb3B0aW9uIHRvIGl0cyBnbG9iYWwgdmFsdWUuCi0gQWRkZWQgdGhlIGJ1ZmZlci1sb2NhbCB2YWx1ZSBmb3Igc29tZSBnbG9iYWwgb3B0aW9uczogJ2VxdWFscHJnJywgJ21ha2VwcmcnLAogICdlcnJvcmZvcm1hdCcsICdncmVwcHJnJywgJ3BhdGgnLCAnZGljdGlvbmFyeScsICd0aGVzYXVydXMnLCAndGFncycsCiAgJ2luY2x1ZGUnIGFuZCAnZGVmaW5lJy4gIFRoaXMgYWxsb3dzIHNldHRpbmcgYSBsb2NhbCB2YWx1ZSBmb3IgdGhlc2UgZ2xvYmFsCiAgb3B0aW9ucywgd2l0aG91dCBtYWtpbmcgaXQgaW5jb21wYXRpYmxlLgotIEFkZGVkIG1hcHBpbmdzIGFuZCBhYmJyZXZpYXRpb25zIGxvY2FsIHRvIGEgYnVmZmVyOiAiOm1hcCA8YnVmZmVyPiIuCi0gSW4gYSBtYXBwaW5nICI8TGVhZGVyPiIgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgIm1hcGxlYWRlciIKICB2YXJpYWJsZS4gIFRoaXMgc2ltcGxpZmllcyBtYXBwaW5ncyB0aGF0IHVzZSAibWFwbGVhZGVyIi4gICI8TGVhZGVyPiIKICBkZWZhdWx0cyB0byAiXCIuICAiPExvY2FsTGVhZGVyPiIgZG9lcyB0aGUgc2FtZSB3aXRoICJtYXBsb2NhbGxlYWRlciIuICBUaGlzCiAgaXMgdG8gYmUgdXNlZCBmb3IgbWFwcGluZ3MgbG9jYWwgdG8gYSBidWZmZXIuCi0gQWRkZWQgPFNJRD4gU2NyaXB0IElEIHRvIGRlZmluZSBmdW5jdGlvbnMgYW5kIG1hcHBpbmdzIGxvY2FsIHRvIGEgc2NyaXB0LgotIEFkZGVkIDxzY3JpcHQ+IGFyZ3VtZW50IHRvICI6bm9yZW1hcCIgYW5kICI6bm9yZW1lbnUiOiBPbmx5IHJlbWFwCiAgc2NyaXB0LWxvY2FsIG1hcHBpbmdzLiAgQXZvaWRzIHRoYXQgbWFwcGluZ3MgZnJvbSBvdGhlciBzY3JpcHRzIGdldCBpbiB0aGUKICB3YXksIGJ1dCBkb2VzIGFsbG93IHVzaW5nIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhlIHNjcmlwdC4KLSBVc2VyIGNvbW1hbmRzIGNhbiBiZSBsb2NhbCB0byBhIGJ1ZmZlcjogIjpjb21tYW5kIC1idWZmZXIiLgoKVGhlIG5ldyAiOnNldGZpbGV0eXBlIiBjb21tYW5kIGlzIHVzZWQgaW4gdGhlIGZpbGV0eXBlIGRldGVjdGlvbiBhdXRvY29tbWFuZHMsCnRvIGF2b2lkIHRoYXQgJ2ZpbGV0eXBlJyBpcyBzZXQgdHdpY2UuCgoKRmlsZSBicm93c2VyCQkJCQkJKm5ldy1maWxlLWJyb3dzZXIqCi0tLS0tLS0tLS0tLQoKV2hlbiBlZGl0aW5nIGEgZGlyZWN0b3J5LCB0aGUgZXhwbG9yZXIgcGx1Z2luIHdpbGwgbGlzdCB0aGUgZmlsZXMgaW4gdGhlCmRpcmVjdG9yeS4gIFByZXNzaW5nIDxFbnRlcj4gb24gYSBmaWxlIG5hbWUgZWRpdHMgdGhhdCBmaWxlLiAgUHJlc3NpbmcgPEVudGVyPgpvbiBhIGRpcmVjdG9yeSBtb3ZlcyB0aGUgYnJvd3NlciB0byB0aGF0IGRpcmVjdG9yeS4KClRoZXJlIGFyZSBzZXZlcmFsIG90aGVyIHBvc3NpYmlsaXRpZXMsIHN1Y2ggYXMgb3BlbmluZyBhIGZpbGUgaW4gdGhlIHByZXZpZXcKd2luZG93LCByZW5hbWluZyBmaWxlcyBhbmQgZGVsZXRpbmcgZmlsZXMuCgoKRWRpdGluZyBmaWxlcyBvdmVyIGEgbmV0d29yawkJCQkqbmV3LW5ldHdvcmstZmlsZXMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkZpbGVzIHN0YXJ0aW5nIHdpdGggc2NwOi8vLCByY3A6Ly8sIGZ0cDovLyBhbmQgaHR0cDovLyBhcmUgcmVjb2duaXplZCBhcwpyZW1vdGUgZmlsZXMuICBBbiBhdHRlbXB0IGlzIG1hZGUgdG8gYWNjZXNzIHRoZXNlIGZpbGVzIHdpdGggdGhlIGluZGljYXRlZAptZXRob2QuICBGb3IgaHR0cDovLyBvbmx5IHJlYWRpbmcgaXMgcG9zc2libGUsIGZvciB0aGUgb3RoZXJzIHdyaXRpbmcgaXMgYWxzbwpzdXBwb3J0ZWQuICBVc2VzIHRoZSBuZXRydy52aW0gc2NyaXB0IGFzIGEgc3RhbmRhcmQgInBsdWdpbiIuIHxuZXRyd3wKCk1hZGUgImdmIiB3b3JrIG9uIGEgVVJMLiAgSXQgbm8gbG9uZ2VyIGFzc3VtZXMgdGhlIGZpbGUgaXMgbG9jYWwgb24gdGhlCmNvbXB1dGVyIChtb3N0bHkgZGlkbid0IHdvcmsgYW55d2F5LCBiZWNhdXNlIHRoZSBmdWxsIHBhdGggd2FzIHJlcXVpcmVkKS4KQWRqdXN0ZWQgdGVzdDIgZm9yIHRoaXMuCgpBbGxvdyB1c2luZyBhIFVSTCBpbiAncGF0aCcuICBNYWtlcyAiOmZpbmQgaW5kZXguaHRtbCIgd29yay4KCkdUSzogQWxsb3cgZHJvcHBpbmcgYSBodHRwOi8vIGFuZCBmdHA6Ly8gVVJMIG9uIFZpbS4gIFRoZSBuZXRydyBwbHVnaW4gdGFrZXMKY2FyZSBvZiBkb3dubG9hZGluZyB0aGUgZmlsZS4gKE1pS2FlbCBCZXJ0aGUpCgoKV2luZG93IGZvciBjb21tYW5kLWxpbmUgZWRpdGluZwkJCQkqbmV3LWNtZHdpbioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIENvbW1hbmQtbGluZSB3aW5kb3cgY2FuIGJlIHVzZWQgdG8gZWRpdCBhIGNvbW1hbmQtbGluZSB3aXRoIE5vcm1hbCBhbmQKSW5zZXJ0IG1vZGUgY29tbWFuZHMuICBXaGVuIGl0IGlzIG9wZW5lZCBpdCBjb250YWlucyB0aGUgaGlzdG9yeS4gIFRoaXMgYWxsb3dzCmNvcHlpbmcgcGFydHMgb2YgcHJldmlvdXMgY29tbWFuZCBsaW5lcy4gfGNtZHdpbnwKClRoZSBjb21tYW5kLWxpbmUgd2luZG93IGNhbiBiZSBvcGVuZWQgZnJvbSB0aGUgY29tbWFuZC1saW5lIHdpdGggdGhlIGtleQpzcGVjaWZpZWQgYnkgdGhlICdjZWRpdCcgb3B0aW9uIChsaWtlIE52aSkuICBJdCBjYW4gYWxzbyBiZSBvcGVuZWQgZGlyZWN0bHkKZnJvbSBOb3JtYWwgbW9kZSB3aXRoICJxOiIsICJxLyIgYW5kICJxPyIuCgpUaGUgJ2NtZHdpbmhlaWdodCcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBpbml0aWFsIGhlaWdodCBvZiB0aGUgd2luZG93LgoKSW4gSW5zZXJ0IG1vZGUgQ1RSTC1YIENUUkwtViBjYW4gYmUgdXNlZCB0byBjb21wbGV0ZSBhbiBFeCBjb21tYW5kIGxpbmUsIGxpa2UKaXQncyBkb25lIG9uIHRoZSBjb21tYW5kLWxpbmUuICBUaGlzIGlzIGFsc28gdXNlZnVsIGZvciB3cml0aW5nIFZpbSBzY3JpcHRzIQoKQWRkaXRpb25hbGx5LCB0aGVyZSBpcyAiaW1wcm92ZWQgRXggbW9kZSIuICBFbnRlcmVkIHdoZW4gVmltIGlzIHN0YXJ0ZWQgYXMKImV4aW0iIG9yICJ2aW0gLUUiLCBhbmQgd2l0aCB0aGUgImdRIiBjb21tYW5kLiAgV29ya3MgbGlrZSByZXBlYXRlZCB1c2Ugb2YKIjoiLCB3aXRoIGZ1bGwgY29tbWFuZC1saW5lIGVkaXRpbmcgYW5kIGNvbXBsZXRpb24uIChVbGYgQ2FybHNzb24pCgoKRGVidWdnaW5nIG1vZGUJCQkJCQkqbmV3LWRlYnVnLW1vZGUqCi0tLS0tLS0tLS0tLS0tCgpJbiBkZWJ1Z2dpbmcgbW9kZSBzb3VyY2VkIHNjcmlwdHMgYW5kIHVzZXIgZnVuY3Rpb25zIGNhbiBiZSBleGVjdXRlZCBsaW5lIGJ5CmxpbmUuICBUaGVyZSBhcmUgY29tbWFuZHMgdG8gc3RlcCBvdmVyIGEgY29tbWFuZCBvciBzdGVwIGludG8gaXQuIHxkZWJ1Zy1tb2RlfAoKQnJlYWtwb2ludHMgY2FuIGJlIHNldCB0byBydW4gdW50aWwgYSBjZXJ0YWluIGxpbmUgaW4gYSBzY3JpcHQgb3IgdXNlcgpmdW5jdGlvbiBpcyBleGVjdXRlZC4gfDpicmVha2FkZHwKCkRlYnVnZ2luZyBjYW4gYmUgc3RhcnRlZCB3aXRoICI6ZGVidWcge2NtZH0iIHRvIGRlYnVnIHdoYXQgaGFwcGVucyB3aGVuIGEKY29tbWFuZCBleGVjdXRlcy4gIFRoZSB8LUR8IGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHdoaWxlIHN0YXJ0aW5nIHVwLgoKCkN1cnNvciBpbiB2aXJ0dWFsIHBvc2l0aW9uCQkJCSpuZXctdmlydGVkaXQqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZGRlZCB0aGUgJ3ZpcnR1YWxlZGl0JyBvcHRpb246IEFsbG93IHBvc2l0aW9uaW5nIHRoZSBjdXJzb3Igd2hlcmUgdGhlcmUgaXMgbm8KYWN0dWFsIGNoYXJhY3RlciBpbiBJbnNlcnQgbW9kZSwgVmlzdWFsIG1vZGUgb3IgYWx3YXlzLiAoTWF0dGhpYXMgS3JhbW0pClRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgaW4gVmlzdWFsLWJsb2NrIG1vZGUuICBJdCBhbGxvd3MgcG9zaXRpb25pbmcgYQpjb3JuZXIgb2YgdGhlIGFyZWEgd2hlcmUgdGhlcmUgaXMgbm8gdGV4dCBjaGFyYWN0ZXIuICAoTWFueSBpbXByb3ZlbWVudHMgYnkKQ2hhc2UgVGluZ2xleSkKCgpEZWJ1Z2dlciBpbnRlcmZhY2UJCQkJCSpuZXctZGVidWctaXRmKgotLS0tLS0tLS0tLS0tLS0tLS0KClRoaXMgd2FzIG9yaWdpbmFsbHkgbWFkZSB0byB3b3JrIHdpdGggU3VuIFZpc3VhbCBXb3Jrc2hvcC4gKEdvcmRvbiBQcmlldXIpClNlZSB8ZGVidWdnZXIudHh0fCwgfHNpZ24udHh0fCBhbmQgfHdvcmtzaG9wLnR4dHwuCgpBZGRlZCB0aGUgIjpzaWduIiBjb21tYW5kIHRvIGRlZmluZSBhbmQgcGxhY2Ugc2lnbnMuICBUaGV5IGNhbiBiZSBkaXNwbGF5ZWQKd2l0aCB0d28gQVNDSUkgY2hhcmFjdGVycyBvciBhbiBpY29uLiAgVGhlIGxpbmUgYWZ0ZXIgaXQgY2FuIGJlIGhpZ2hsaWdodGVkLgpVc2VmdWwgdG8gZGlzcGxheSBicmVha3BvaW50cyBhbmQgdGhlIGN1cnJlbnQgUEMgcG9zaXRpb24uCgpBZGRlZCB0aGUgfDp3c3ZlcmJ8IGNvbW1hbmQgdG8gZXhlY3V0ZSBkZWJ1Z2dlciBjb21tYW5kcy4KCkFkZGVkIGJhbGxvb24gc3R1ZmY6ICdiYWxsb29uZGVsYXknIGFuZCAnYmFsbG9vbmV2YWwnIG9wdGlvbnMuCgpBZGRlZCAiaWNvbj0iIGFyZ3VtZW50IGZvciAiOm1lbnUiLiAgQWxsb3dzIGRlZmluaW5nIGEgc3BlY2lmaWMgaWNvbiBmb3IgYQpUb29sQmFyIGl0ZW0uCgoKQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZpbXMJCQkJKm5ldy12aW0tc2VydmVyKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQWRkZWQgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHR3byBWaW1zLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyBmcm9tCm9uZSBWaW0gdG8gYW5vdGhlci4gIFdvcmtzIGZvciBYLVdpbmRvd3MgYW5kIE1TLVdpbmRvd3MgfGNsaWVudHNlcnZlcnwuCgpVc2UgIi0tcmVtb3RlIiB0byBoYXZlIGZpbGVzIGJlIGVkaXRlZCBpbiBhbiBhbHJlYWR5IHJ1bm5pbmcgVmltLgpVc2UgIi0tcmVtb3RlLXdhaXQiIHRvIGRvIHRoZSBzYW1lIGFuZCB3YWl0IGZvciB0aGUgZWRpdGluZyB0byBmaW5pc2guClVzZSAiLS1yZW1vdGUtc2VuZCIgdG8gc2VuZCBjb21tYW5kcyBmcm9tIG9uZSBWaW0gdG8gYW5vdGhlci4KVXNlICItLXJlbW90ZS1leHByIiB0byBoYXZlIGFuIGV4cHJlc3Npb24gZXZhbHVhdGVkIGluIGFub3RoZXIgVmltLgpVc2UgIi0tc2VydmVybGlzdCIgdG8gbGlzdCB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBWaW0gc2VydmVycy4gIChYIG9ubHkpClRoZXJlIGFyZSBhbHNvIGZ1bmN0aW9ucyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQuCnxyZW1vdGVfc2VuZCgpfCB8cmVtb3RlX2V4cHIoKXwKCihYLXdpbmRvd3MgdmVyc2lvbiBpbXBsZW1lbnRlZCBieSBGbGVtbWluZyBNYWRzZW4sIE1TLVdpbmRvd3MgdmVyc2lvbiBieSBQYXVsCk1vb3JlKQoKQWRkZWQgdGhlIGNvbW1hbmQgc2VydmVyIG5hbWUgdG8gdGhlIHdpbmRvdyB0aXRsZSwgc28geW91IGNhbiBzZWUgd2hpY2ggc2VydmVyCm5hbWUgYmVsb25ncyB0byB3aGljaCBWaW0uCgpSZW1vdmVkIHRoZSBPbGVWaW0gZGlyZWN0b3J5IGFuZCBTZW5kVG9WaW0uZXhlIGFuZCBFZGl0V2l0aFZpbS5leGUgZnJvbSB0aGUKZGlzdHJpYnV0aW9uLiAgQ2FuIG5vdyB1c2UgImd2aW0gLS1yZW1vdGUiIGFuZCAiZ3ZpbSAtLXJlbW90ZS1zZW5kIiwgd2hpY2ggaXMKcG9ydGFibGUuCgpHVEsrOiBTdXBwb3J0IHJ1bm5pbmcgVmltIGluc2lkZSBhbm90aGVyIHdpbmRvdy4gIFVzZXMgdGhlIC0tc29ja2V0aWQgYXJndW1lbnQKKE5laWwgQmlyZCkKCgpCdWZmZXIgdHlwZSBvcHRpb25zCQkJCQkqbmV3LWJ1ZnR5cGUqCi0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSAnYnVmdHlwZScgYW5kICdidWZoaWRkZW4nIG9wdGlvbnMgaGF2ZSBiZWVuIGFkZGVkLiAgVGhleSBjYW4gYmUgc2V0IHRvCmhhdmUgZGlmZmVyZW50IGtpbmRzIG9mIGJ1ZmZlcnMuICBGb3IgZXhhbXBsZToKLSAnYnVmdHlwZScgPSAicXVpY2tmaXgiOiBidWZmZXIgd2l0aCBlcnJvciBsaXN0Ci0gJ2J1ZnR5cGUnID0gIm5vZmlsZSIgYW5kICdidWZoaWRkZW4nID0gImRlbGV0ZSI6IHNjcmF0Y2ggYnVmZmVyIHRoYXQgd2lsbCBiZQogIGRlbGV0ZWQgYXMgc29vbiBhcyB0aGVyZSBpcyBubyB3aW5kb3cgZGlzcGxheWluZyBpdC4KCididWZoaWRkZW4nIGNhbiBiZSB1c2VkIHRvIG92ZXJydWxlIHRoZSAnaGlkZGVuJyBvcHRpb24gZm9yIG9uZSBidWZmZXIuCgpJbiBjb21iaW5hdGlvbiB3aXRoICdidWZsaXN0ZWQnIGFuZCAnc3dhcGZpbGUnIHRoaXMgb2ZmZXJzIHRoZSBwb3NzaWJpbGl0eSB0bwp1c2UgdmFyaW91cyBraW5kcyBvZiBzcGVjaWFsIGJ1ZmZlcnMuICBTZWUgfHNwZWNpYWwtYnVmZmVyc3wuCgoKUHJpbnRpbmcJCQkJCQkqbmV3LXByaW50aW5nKgotLS0tLS0tLQoKSW5jbHVkZWQgZmlyc3QgaW1wbGVtZW50YXRpb24gb2YgdGhlICI6aGFyZGNvcHkiIGNvbW1hbmQgZm9yIHByaW50aW5nCnRvIHBhcGVyLiAgRm9yIE1TLVdpbmRvd3MgYW55IGluc3RhbGxlZCBwcmludGVyIGNhbiBiZSB1c2VkLiAgRm9yIG90aGVyCnN5c3RlbXMgYSBQb3N0U2NyaXB0IGZpbGUgaXMgZ2VuZXJhdGVkLCB3aGljaCBjYW4gYmUgcHJpbnRlZCB3aXRoIHRoZQoncHJpbnRleHByJyBvcHRpb24uCihNUy1XaW5kb3dzIHBhcnQgYnkgVmluY2UgTmVncmksIFZpcGluIEFyYXZpbmQsIFBvc3RTY3JpcHQgYnkgVmluY2UgTmVncmkgYW5kCk1pa2UgV2lsbGlhbXMpCgpNYWRlICI6aGFyZGNvcHkiIHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChNdXJhb2thIFRhcm8sIFlhc3VoaXJvCk1hdHN1bW90bykKCkFkZGVkIG9wdGlvbnMgdG8gdHVuZSB0aGUgd2F5IHByaW50aW5nIHdvcmtzOiAoVmluY2UgTmVncmkpCi0gJ3ByaW50b3B0aW9ucycgZGVmaW5lcyB2YXJpb3VzIHRoaW5ncy4KLSAncHJpbnRoZWFkZXInIHNwZWNpZmllcyB0aGUgaGVhZGVyIGZvcm1hdC4gIEFkZGVkICJOIiBmaWVsZCB0byAnc3RhdHVzbGluZScKICBmb3IgdGhlIHBhZ2UgbnVtYmVyLgotICdwcmludGZvbnQnIHNwZWNpZmllcyB0aGUgZm9udCBuYW1lIGFuZCBhdHRyaWJ1dGVzLgotICdwcmludGRldmljZScgZGVmaW5lcyB0aGUgZGVmYXVsdCBwcmludGVyIGZvciAiOmhhcmRjb3B5ISIuCgoKUG9ydHMJCQkJCQkJKnBvcnRzLTYqCi0tLS0tCgpQb3J0IHRvIE9TLzM5MCBVbml4IChSYWxmIFNjaGFuZGwpCi0gQSBsb3Qgb2YgY2hhbmdlcyB0byBoYW5kbGUgRUJDRElDIGVuY29kaW5nLgotIENoYW5nZWQgQ3RybCgneCcpIHRvIEN0cmxfeCBkZWZpbmUuCgpJbmNsdWRlZCBqc2Jtb3VzZSBzdXBwb3J0LiAoRGFycmVuIEdhcnRoKQpTdXBwb3J0IGZvciBkZWMgbW91c2UgaW4gVW5peC4gKFN0ZXZlIFdhbGwpCgpQb3J0IHRvIDE2LWJpdCBNUyBXaW5kb3dzIChXaW5kb3dzIDMuMXgpIChWaW5jZSBOZWdyaSkKClBvcnQgdG8gUU5YLiAgU3VwcG9ydHMgdGhlIFBob3RvbiBHVUksIG1vdXNlLCBldGMuIChKdWxpYW4gS2lucmFpZCkKCkFsbG93IGNyb3NzLWNvbXBpbGluZyB0aGUgV2luMzIgdmVyc2lvbiB3aXRoIE1ha2VfbWluZy5tYWsuIChSb24gQWFyb24pCkFkZGVkIFB5dGhvbiBzdXBwb3J0IGZvciBjb21waWxpbmcgd2l0aCBNaW5ndy4gKFJvbiBBYXJvbikKCkRvcyAzMiBiaXQ6IEFkZGVkIHN1cHBvcnQgdGhlIFdpbmRvd3MgY2xpcGJvYXJkLiAoRGF2aWQgS290Y2hhbikKCldpbjMyOiBEeW5hbWljYWxseSBsb2FkIFBlcmwgYW5kIFB5dGhvbi4gIEFsbG93cyBjb21waWxpbmcgVmltIHdpdGggdGhlc2UKaW50ZXJmYWNlcyBhbmQgd2lsbCB0cnkgdG8gZmluZCB0aGUgRExMcyBhdCBydW50aW1lLiAoTXVyYW9rYSBUYXJvKQoKQ29tcGlsaW5nIHRoZSBXaW4zMiBHVUkgd2l0aCBDeWd3aW4uICBBbHNvIGNvbXBpbGUgdmltcnVuLCBkb3NpbnN0IGFuZAp1bmluc3RhbGwuICAoR2VyZnJpZWQpCgpNYWM6IE1ha2UgVmltIGNvbXBpbGUgd2l0aCB0aGUgZnJlZSBNUFcgY29tcGlsZXIgc3VwcGxpZWQgYnkgQXBwbGUuICBBbmQKdXBkYXRlcyBmb3IgQ29kZVdhcnJpb3IuIChBeGVsIEtpZWxob3JuKQoKQWRkZWQgdHlwZWNhc3RzIGFuZCBpZmRlZnMgYXMgYSBzdGFydCB0byBtYWtlIFZpbSB3b3JrIG9uIFdpbjY0IChHZW9yZ2UKUmVpbGx5KQoKClF1aWNrZml4IGV4dGVuZGVkCQkJCQkqcXVpY2tmaXgtNioKLS0tLS0tLS0tLS0tLS0tLS0KCkFkZGVkIHRoZSAiZXJyb3Igd2luZG93Ii4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgZXJyb3JzIG9mIHRoZSBjdXJyZW50IGVycm9yCmxpc3QuICBQcmVzc2luZyA8RW50ZXI+IGluIGEgbGluZSBtYWtlcyBWaW0ganVtcCB0byB0aGF0IGxpbmUgKGluIGFub3RoZXIKd2luZG93KS4gIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBlcnJvciBsaXN0Lgp8cXVpY2tmaXgtd2luZG93fC4KCi0gfDpjb3Blbnwgb3BlbnMgdGhlIHF1aWNrZml4IHdpbmRvdy4KLSB8OmNjbG9zZXwgY2xvc2VzIHRoZSBxdWlja2ZpeCB3aW5kb3cuCi0gfDpjd2luZG93fCB0YWtlcyBjYXJlIHRoYXQgdGhlcmUgaXMgYSBxdWlja2ZpeCB3aW5kb3cgb25seSB3aGVuIHRoZXJlIGFyZQogIHJlY29nbml6ZWQgZXJyb3JzLiAoRGFuIFNoYXJwKQoKLSBRdWlja2ZpeCBhbHNvIGtub3dzICJpbmZvIiwgbmV4dCB0byAid2FybmluZyIgYW5kICJlcnJvciIgdHlwZXMuICAiJUkiIGNhbiBiZQogIHVzZWQgZm9yIHRoZSBzdGFydCBvZiBhIG11bHRpLWxpbmUgaW5mb3JtYXRpb25hbCBtZXNzYWdlLiAoVG9ueSBMZW5laXMpCi0gVGhlICIlcCIgYXJndW1lbnQgY2FuIGJlIHVzZWQgaW4gJ2Vycm9yZm9ybWF0JyB0byBnZXQgdGhlIGNvbHVtbiBudW1iZXIgZnJvbQogIGEgbGluZSB3aGVyZSAiXiIgcG9pbnRzIHRvIHRoZSBjb2x1bW4uIChTdGVmYW4gUm9lbWVyKQotIFdoZW4gdXNpbmcgIiVmIiBpbiAnZXJyb3Jmb3JtYXQnIG9uIGEgRE9TL1dpbmRvd3Mgc3lzdGVtLCBhbHNvIGluY2x1ZGUgImM6IgogIGluIHRoZSBmaWxlbmFtZSwgZXZlbiB3aGVuIHVzaW5nICIlZjoiLgoKCk9wZXJhdG9yIG1vZGlmaWVycwkJCQkJKm5ldy1vcGVyYXRvci1tb2QqCi0tLS0tLS0tLS0tLS0tLS0tLQoKSW5zZXJ0ICJ2IiwgIlYiIG9yIENUUkwtViBiZXR3ZWVuIGFuIG9wZXJhdG9yIGFuZCBhIG1vdGlvbiBjb21tYW5kIHRvIGZvcmNlCnRoZSBvcGVyYXRvciB0byB3b3JrIGNoYXJhY3Rlcndpc2UsIGxpbmV3aXNlIG9yIGJsb2Nrd2lzZS4gfG9fdnwKCgpTZWFyY2ggUGF0aAkJCQkJCSpuZXctc2VhcmNoLXBhdGgqCi0tLS0tLS0tLS0tCgpWaW0gY2FuIHNlYXJjaCBpbiBhIGRpcmVjdG9yeSB0cmVlIG5vdCBvbmx5IGluIGRvd253YXJkcyBidXQgYWxzbyB1cHdhcmRzLgpXb3JrcyBmb3IgdGhlICdwYXRoJywgJ2NkcGF0aCcgYW5kICd0YWdzJyBvcHRpb25zLiAoUmFsZiBTY2hhbmRsKQoKQWxzbyB1c2UgIioqIiBmb3IgJ3RhZ3MnIG9wdGlvbi4gKFJhbGYgU2NoYW5kbCkKCkFkZGVkICdpbmNsdWRlZXhwcicsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSBmaWxlIG5hbWUgZm91bmQgYnkgJ2luY2x1ZGUnCm9wdGlvbi4KQWxzbyB1c2UgJ2luY2x1ZGVleHByJyBmb3IgImdmIiBhbmQgIjxjZmlsZT4iIHdoZW4gdGhlIGZpbGUgY2FuJ3QgYmUgZm91bmQKd2l0aG91dCBtb2RpZmljYXRpb24uICBVc2VmdWwgZm9yIGRvaW5nICJnZiIgb24gdGhlIG5hbWUgYWZ0ZXIgYW4gaW5jbHVkZSBvcgppbXBvcnQgc3RhdGVtZW50LgoKQWRkZWQgdGhlICdjZHBhdGgnIG9wdGlvbjogTG9jYXRpb25zIHRvIGZpbmQgYSAiOmNkIiBhcmd1bWVudC4gKFJhZikKCkFkZGVkIHRoZSAnc3VmZml4ZXNhZGQnIG9wdGlvbjogU3VmZml4ZXMgdG8gYmUgYWRkZWQgdG8gYSBmaWxlIG5hbWUgd2hlbgpzZWFyY2hpbmcgZm9yIGEgZmlsZSBmb3IgdGhlICJnZiIsICJbSSIsIGV0Yy4gY29tbWFuZHMuCgoKV3JpdGluZyBmaWxlcyBpbXByb3ZlZAkJCQkJKm5ldy1maWxlLXdyaXRpbmcqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFkZGVkIHRoZSAnYmFja3VwY29weScgb3B0aW9uOiBTZWxlY3Qgd2hldGhlciBhIGZpbGUgaXMgdG8gYmUgY29waWVkIG9yCnJlbmFtZWQgdG8gbWFrZSBhIGJhY2t1cCBmaWxlLiAgVXNlZnVsIG9uIFVuaXggdG8gc3BlZWQgdXAgd3JpdGluZyBhbiBvcmRpbmFyeQpmaWxlLiAgVXNlZnVsIG9uIG90aGVyIHN5c3RlbXMgdG8gcHJlc2VydmUgZmlsZSBhdHRyaWJ1dGVzIGFuZCB3aGVuIGVkaXRpbmcgYQpmaWxlIG9uIGEgVW5peCBmaWxlc3lzdGVtLgoKQWRkZWQgdGhlICdhdXRvd3JpdGVhbGwnIG9wdGlvbi4gIFdvcmtzIGxpa2UgJ2F1dG93cml0ZScgYnV0IGZvciBtb3JlCmNvbW1hbmRzLgoKQWRkZWQgdGhlICdiYWNrdXBza2lwJyBvcHRpb246IEEgbGlzdCBvZiBmaWxlIHBhdHRlcm5zIHRvIHNraXAgbWFraW5nIGEgYmFja3VwCmZpbGUgd2hlbiBpdCBtYXRjaGVzLiAgVGhlIGRlZmF1bHQgZm9yIFVuaXggaW5jbHVkZXMgIi90bXAvKiIsIHRoaXMgbWFrZXMKImNyb250YWIgLWUiIHdvcmsuCgpBZGRlZCBzdXBwb3J0IGZvciBBY2Nlc3MgQ29udHJvbCBMaXN0cyAoQUNMKSBmb3IgRnJlZUJTRCBhbmQgV2luMzIuICBUaGUgQUNMCmlzIGNvcGllZCBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlIHRvIHRoZSBuZXcgZmlsZSAob3IgdGhlIGJhY2t1cCBpZiBpdCdzCmNvcGllZCkuCkFDTCBpcyBhbHNvIHN1cHBvcnRlZCBmb3IgQUlYLCBTb2xhcmlzIGFuZCBnZW5lcmljIFBPU0lYLiAoVG9tYXMgT2dyZW4pCkFuZCBvbiBTR0kuCgoKQXJndW1lbnQgbGlzdAkJCQkJCSpuZXctYXJndW1lbnQtbGlzdCoKLS0tLS0tLS0tLS0tLQoKVGhlIHN1cHBvcnQgZm9yIHRoZSBhcmd1bWVudCBsaXN0IGhhcyBiZWVuIGV4dGVuZGVkLiAgSXQgY2FuIG5vdyBiZQptYW5pcHVsYXRlZCB0byBjb250YWluIHRoZSBmaWxlcyB5b3Ugd2FudCBpdCB0byBjb250YWluLgoKVGhlIGFyZ3VtZW50IGxpc3QgY2FuIG5vdyBiZSBsb2NhbCB0byBhIHdpbmRvdy4gIEl0IGlzIGNyZWF0ZWQgd2l0aCB0aGUKfDphcmdsb2NhbHwgY29tbWFuZC4gIFRoZSB8OmFyZ2dsb2JhbHwgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBnbyBiYWNrIHRvIHRoZQpnbG9iYWwgYXJndW1lbnQgbGlzdC4KClRoZSB8OmFyZ2RvfCBjb21tYW5kIGV4ZWN1dGVzIGEgY29tbWFuZCBvbiBhbGwgZmlsZXMgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCgpGaWxlIG5hbWVzIGNhbiBiZSBhZGRlZCB0byB0aGUgYXJndW1lbnQgbGlzdCB3aXRoIHw6YXJnYWRkfC4gIEZpbGUgbmFtZXMgY2FuCmJlIHJlbW92ZWQgd2l0aCB8OmFyZ2RlbGV0ZXwuCgoiIyMiIGNhbiBiZSB1c2VkIGxpa2UgIiMiLCBpdCBpcyByZXBsYWNlZCBieSBhbGwgdGhlIG5hbWVzIGluIHRoZSBhcmd1bWVudApsaXN0IGNvbmNhdGVuYXRlZC4gIFVzZWZ1bCBmb3IgIjpncmVwIGZvbyAjIyIuCgpUaGUgfDphcmdlZGl0fCBhZGRzIGEgZmlsZSB0byB0aGUgYXJndW1lbnQgbGlzdCBhbmQgZWRpdHMgaXQuICBMaWtlICI6YXJnYWRkIgphbmQgdGhlbiAiOmVkaXQiLgoKClJlc3RvcmUgYSBWaWV3CQkJCQkJKm5ldy1WaWV3KgotLS0tLS0tLS0tLS0tLQoKVGhlICI6bWt2aWV3IiBjb21tYW5kIHdyaXRlcyBhIFZpbSBzY3JpcHQgd2l0aCB0aGUgc2V0dGluZ3MgYW5kIG1hcHBpbmdzIGZvcgpvbmUgd2luZG93LiAgV2hlbiB0aGUgY3JlYXRlZCBmaWxlIGlzIHNvdXJjZWQsIHRoZSB2aWV3IG9mIHRoZSB3aW5kb3cgaXMKcmVzdG9yZWQuICBJdCdzIGxpa2UgIjpta3Nlc3Npb24iIGZvciBvbmUgd2luZG93LgpUaGUgVmlldyBhbHNvIGNvbnRhaW5zIHRoZSBsb2NhbCBhcmd1bWVudCBsaXN0IGFuZCBtYW51YWxseSBjcmVhdGVkLCBvcGVuZWQKYW5kIGNsb3NlZCBmb2xkcy4KCkFkZGVkIHRoZSAiOmxvYWR2aWV3IiBjb21tYW5kIGFuZCB0aGUgJ3ZpZXdkaXInIG9wdGlvbjogQWxsb3dzIGZvciBzYXZpbmcgYW5kCnJlc3RvcmluZyB2aWV3cyBvZiBhIGZpbGUgd2l0aCBzaW1wbGUgY29tbWFuZHMuICAiOm1rdmlldyAxIiBzYXZlcyB2aWV3IDEgZm9yCnRoZSBjdXJyZW50IGZpbGUsICI6bG9hZHZpZXcgMSIgbG9hZHMgaXQgYWdhaW4uICBBbHNvIGFsbG93cyBxdWlja2x5IHN3aXRjaGluZwpiZXR3ZWVuIHR3byB2aWV3cyBvbiBvbmUgZmlsZS4gIEFuZCBzYXZpbmcgYW5kIHJlc3RvcmluZyBtYW51YWwgZm9sZHMgYW5kIHRoZQpmb2xkaW5nIHN0YXRlLgoKQWRkZWQgJ3ZpZXdvcHRpb25zJyB0byBzcGVjaWZ5IGhvdyAiOm1rdmlldyIgd29ya3MuCgoiOm1rc2Vzc2lvbiIgbm93IGFsc28gd29ya3MgZmluZSB3aXRoIHZlcnRpY2FsIHNwbGl0cy4gIEl0IGhhcyBiZWVuIGZ1cnRoZXIKaW1wcm92ZWQgYW5kIHJlc3RvcmVzIHRoZSB2aWV3IG9mIGVhY2ggd2luZG93LiAgSXQgYWxzbyB3b3JrcyBwcm9wZXJseSB3aXRoCnByZXZpZXcgYW5kIHF1aWNrZml4IHdpbmRvd3MuCgonc2Vzc2lvbm9wdGlvbnMnIGlzIHVzZWQgZm9yICI6bWt2aWV3IiBhcyB3ZWxsLgpBZGRlZCAiY3VyZGlyIiBhbmQgInNlc2RpciIgdG8gJ3Nlc3Npb25vcHRpb25zJy4gIEFsbG93cyBzZWxlY3Rpb24gb2Ygd2hhdAp0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSByZXN0b3JlZCB0by4KClRoZSBzZXNzaW9uIGZpbGUgbm93IGFsc28gY29udGFpbnMgdGhlIGFyZ3VtZW50IGxpc3QocykuCgoKQ29sb3Igc2NoZW1lcwkJCQkJCSpuZXctY29sb3Itc2NoZW1lcyoKLS0tLS0tLS0tLS0tLQoKU3VwcG9ydCBmb3IgbG9hZGluZyBhIGNvbG9yIHNjaGVtZS4gIEFkZGVkIHRoZSAiOmNvbG9yc2NoZW1lIiBjb21tYW5kLgpBdXRvbWF0aWNhbGx5IGFkZCBtZW51IGVudHJpZXMgZm9yIGF2YWlsYWJsZSBzY2hlbWVzLgpTaG91bGQgbm93IHByb3Blcmx5IHJlc2V0IHRoZSBjb2xvcnMgd2hlbiAnYmFja2dyb3VuZCcgb3IgJ3RfQ28nIGlzIGNoYW5nZWQuCiI6aGlnaGxpZ2h0IGNsZWFyIiBzZXRzIHRoZSBkZWZhdWx0IGNvbG9ycyBhZ2Fpbi4KIjpzeW50YXggcmVzZXQiIHNldHMgdGhlIHN5bnRheCBoaWdobGlnaHQgY29sb3JzIGJhY2sgdG8gdGhlIGRlZmF1bHRzLgpGb3IgIjpzZXQgYmcmIiBndWVzcyB0aGUgdmFsdWUuICBUaGlzIGFsbG93cyBhIGNvbG9yIHNjaGVtZSB0byBzd2l0Y2ggYmFjayB0bwp0aGUgZGVmYXVsdCBjb2xvcnMuCldoZW4gc3ludGF4IGhpZ2hsaWdodGluZyBpcyBzd2l0Y2hlZCBvbiBhbmQgYSBjb2xvciBzY2hlbWUgd2FzIGRlZmluZWQsIHJlbG9hZAp0aGUgY29sb3Igc2NoZW1lIHRvIGRlZmluZSB0aGUgY29sb3JzLgoKClZhcmlvdXMgbmV3IGl0ZW1zCQkJCQkqbmV3LWl0ZW1zLTYqCi0tLS0tLS0tLS0tLS0tLS0tCgpOb3JtYWwgbW9kZSBjb21tYW5kczogfgoKImdpIgkJSnVtcCB0byB0aGUgXiBtYXJrIGFuZCBzdGFydCBJbnNlcnQgbW9kZS4gIEFsc28gd29ya3Mgd2hlbiB0aGUKCQltYXJrIGlzIGp1c3QgYWZ0ZXIgdGhlIGxpbmUuIHxnaXwKCiJnJ20iIGFuZCAiZ2BtIgoJCUp1bXAgdG8gYSBtYXJrIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGp1bXBsaXN0LiAgTm93IHlvdSBjYW4gdXNlCgkJZ2AiIHRvIGp1bXAgdG8gdGhlIGxhc3Qga25vd24gcG9zaXRpb24gaW4gYSBmaWxlIHdpdGhvdXQgc2lkZQoJCWVmZmVjdHMuICBBbHNvIHVzZWZ1bCBpbiBtYXBwaW5ncy4KClsnLCBbYCwgXScgYW5kIF1gCgkJbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0L3ByZXZpb3VzIGxvd2VyY2FzZSBtYXJrLgoKZ18JCUdvIHRvIGxhc3Qgbm9uLWJsYW5rIGluIGxpbmUuIChTdGV2ZSBXYWxsKQoKCk9wdGlvbnM6IH4KCidhdXRvcmVhZCcJV2hlbiBkZXRlY3RlZCB0aGF0IGEgZmlsZSBjaGFuZ2VkIG91dHNpZGUgb2YgVmltLAoJCWF1dG9tYXRpY2FsbHkgcmVhZCBhIGJ1ZmZlciBhZ2FpbiB3aGVuIGl0J3Mgbm90IGNoYW5nZWQuCgkJSXQgaGFzIGEgZ2xvYmFsIGFuZCBhIGxvY2FsIHZhbHVlLiAgVXNlICI6c2V0bG9jYWwgYXV0b3JlYWQ8IgoJCXRvIGdvIGJhY2sgdG8gdXNpbmcgdGhlIGdsb2JhbCB2YWx1ZSBmb3IgJ2F1dG9yZWFkJy4KCidkZWJ1ZycJCVdoZW4gc2V0IHRvICJtc2ciIGl0IHdpbGwgcHJpbnQgZXJyb3IgbWVzc2FnZXMgdGhhdCB3b3VsZAoJCW90aGVyd2lzZSBiZSBvbWl0dGVkLiAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgJ2luZGVudGV4cHInIGFuZAoJCSdmb2xkZXhwcicuCgonbGlzcHdvcmRzJwlMaXN0IG9mIHdvcmRzIHVzZWQgZm9yIGxpc3AgaW5kZW50aW5nLiAgSXQgd2FzIHByZXZpb3VzbHkgaGFyZAoJCWNvZGVkLiAgQWRkZWQgYSBudW1iZXIgb2YgTGlzcCBuYW1lcyB0byB0aGUgZGVmYXVsdC4KCidmb2xkLi4uJwlNYW55IG5ldyBvcHRpb25zIGZvciBmb2xkaW5nLgoKJ21vZGlmaWFibGUnCVdoZW4gb2ZmLCBpdCBpcyBpbXBvc3NpYmxlIHRvIG1ha2UgY2hhbmdlcyB0byBhIGJ1ZmZlci4KCQlUaGUgJW0gYW5kICVNIGl0ZW1zIGluICdzdGF0dXNsaW5lJyBzaG93IGEgJy0nLgoKJ3ByZXZpZXd3aW5kb3cnIFNldCBpbiB0aGUgcHJldmlldyB3aW5kb3cuICBVc2VkIGluIGEgc2Vzc2lvbiBmaWxlIHRvIG1hcmsgYQoJCXdpbmRvdyBhcyB0aGUgcHJldmlldyB3aW5kb3cuCgoncHJpbnRmb250JwoncHJpbnRleHByJwoncHJpbnRoZWFkZXInCidwcmludGRldmljZScKJ3ByaW50b3B0aW9ucycJZm9yICI6aGFyZGNvcHkiLgoKJ2J1Zmxpc3RlZCcJTWFrZXMgYSBidWZmZXIgYXBwZWFyIGluIHRoZSBidWZmZXIgbGlzdCBvciBub3QuCgpVc2UgInZpbXt2ZXJzaW9ufToiIGZvciBtb2RlbGluZXMsIG9ubHkgdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgdmVyc2lvbiBpcwo+PSB7dmVyc2lvbn0uICBBbHNvICJ2aW0+e3ZlcnNpb259IiwgInZpbTx7dmVyc2lvbn0iIGFuZCAidmltPXt2ZXJzaW9ufSIuCgoKRXggY29tbWFuZHM6IH4KCjpzYXZbZWFzXVshXSB7ZmlsZX0KCQlXb3JrcyBsaWtlICI6dyBmaWxlIiBhbmQgIjplICMiLCBidXQgd2l0aG91dCBsb2FkaW5nIHRoZSBmaWxlCgkJYWdhaW4gYW5kIGF2b2lkaW5nIG90aGVyIHNpZGUgZWZmZWN0cy4gfDpzYXZlYXN8Cgo6c2lsZW50WyFdIHtjbWR9CgkJRXhlY3V0ZSBhIGNvbW1hbmQgc2lsZW50bHkuICBBbHNvIGRvbid0IHVzZSBhIGRlbGF5IHRoYXQgd291bGQKCQljb21lIGFmdGVyIHRoZSBtZXNzYWdlLiAgQW5kIGRvbid0IGRvICdzaG93bWF0Y2gnLgoJCVJJU0NPUzogUmVtb3ZlZCB0aGF0ICIhfmNtZCIgZGlkbid0IG91dHB1dCBhbnl0aGluZywgYW5kCgkJZGlkbid0IHdhaXQgZm9yIDxFbnRlcj4gYWZ0ZXJ3YXJkcy4gIENhbiB1c2UgIjpzaWxlbnQgIWNtZCIKCQlub3cuCjptZW51IDxzaWxlbnQ+ICBBZGQgYSBtZW51IHRoYXQgd29uJ3QgZWNobyBFeCBjb21tYW5kcy4KOm1hcCA8c2lsZW50PiAgIEFkZCBhIG1hcHBpbmcgdGhhdCB3b24ndCBlY2hvIEV4IGNvbW1hbmRzLgoKOmNoZWNrdGltZQlDaGVjayBmb3IgY2hhbmdlZCBidWZmZXJzLgoKOnZlcmJvc2Uge2NtZH0gIFNldCAndmVyYm9zZScgZm9yIG9uZSBjb21tYW5kLgoKOmVjaG9tc2cge2V4cHJ9CjplY2hvZXJyIHtleHByfSBMaWtlICI6ZWNobyIgYnV0IHN0b3JlIHRoZSBtZXNzYWdlIGluIHRoZSBoaXN0b3J5LiAoTWFyawoJCVdhZ2dvbmVyKQoKOmdyZXBhZGQJV29ya3MganVzdCBsaWtlICI6Z3JlcCIgYnV0IGFkZHMgdG8gdGhlIGN1cnJlbnQgZXJyb3IgbGlzdAoJCWluc3RlYWQgb2YgZGVmaW5pbmcgYSBuZXcgbGlzdC4gfDpncmVwYWRkfAoKOmZpbmlzaAkJRmluaXNoIHNvdXJjaW5nIGEgZmlsZS4gIENhbiBiZSB1c2VkIHRvIHNraXAgdGhlIHJlc3Qgb2YgYSBWaW0KCQlzY3JpcHQuIHw6ZmluaXNofAoKOmxlZnRhYm92ZQo6YWJvdmVsZWZ0CVNwbGl0IGxlZnQvYWJvdmUgY3VycmVudCB3aW5kb3cuCgo6cmlnaHRiZWxvdwo6YmVsb3dyaWdodAlTcGxpdCByaWdodC9iZWxvdyBjdXJyZW50IHdpbmRvdy4KCjpmaXJzdCwgOmJmaXJzdCwgOnB0Zmlyc3QsIGV0Yy4KCQlBbGlhcyBmb3IgIjpyZXdpbmQiLiAgSXQncyBtb3JlIGxvZ2ljYWwgY29tcGFyZWQgdG8gIjpsYXN0Ii4KCjplbmV3CQlFZGl0IGEgbmV3LCB1bm5hbWVkIGJ1ZmZlci4gIFRoaXMgaXMgbmVlZGVkLCBiZWNhdXNlICI6ZWRpdCIKCQlyZS1lZGl0cyB0aGUgc2FtZSBmaWxlLiAoV2FsbCkKCjpxdWl0YWxsCVNhbWUgYXMgIjpxYWxsIi4KCjptYXRjaAkJRGVmaW5lIG1hdGNoIGhpZ2hsaWdodGluZyBsb2NhbCB0byBhIHdpbmRvdy4gIEFsbG93cwoJCWhpZ2hsaWdodGluZyBhbiBpdGVtIGluIHRoZSBjdXJyZW50IHdpbmRvdyB3aXRob3V0IGludGVyZmVyaW5nCgkJd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nLgoKOm1lbnUgZW5hYmxlCjptZW51IGRpc2FibGUJQ29tbWFuZHMgdG8gZW5hYmxlL2Rpc2FibGUgbWVudSBlbnRyaWVzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlbS4KCQkoTW9uaXNoIFNoYWgpCgo6d2luZG8JCUV4ZWN1dGUgYSBjb21tYW5kIGluIGFsbCB3aW5kb3dzLgo6YnVmZG8JCUV4ZWN1dGUgYSBjb21tYW5kIGluIGFsbCBidWZmZXJzLgoKOndpbmNtZAkJV2luZG93IChDVFJMLVcpIGNvbW1hbmQuICBVc2VmdWwgd2hlbiBhIE5vcm1hbCBtb2RlIGNvbW1hbmQKCQljYW4ndCBiZSB1c2VkIChlLmcuLCBmb3IgYSBDdXJzb3JIb2xkIGF1dG9jb21tYW5kKS4gIFNlZQoJCXxDdXJzb3JIb2xkLWV4YW1wbGV8IGZvciBhIG5pY2UgYXBwbGljYXRpb24gd2l0aCBpdC4KCjpsY2QgYW5kIDpsY2hkaXIKCQlTZXQgbG9jYWwgZGlyZWN0b3J5IGZvciBhIHdpbmRvdy4gKEJlbmppZSBDaGVuKQoKOmhpZGUge2NvbW1hbmR9CgkJRXhlY3V0ZSB7Y29tbWFuZH0gd2l0aCAnaGlkZGVuJyBzZXQuCgo6ZW1lbnUJCWluIFZpc3VhbCBtb2RlIHRvIGV4ZWN1dGUgYSAiOnZtZW51IiBlbnRyeS4KCjpwb3B1cAkJUG9wIHVwIGEgcG9wdXAgbWVudS4KCjpyZWRyYXcJCVJlZHJhdyB0aGUgc2NyZWVuIGV2ZW4gd2hlbiBidXN5IHdpdGggYSBzY3JpcHQgb3IgZnVuY3Rpb24uCgo6aGFyZGNvcHkJUHJpbnQgdG8gcGFwZXIuCgo6Y29tcGlsZXIJTG9hZCBhIFZpbSBzY3JpcHQgdG8gZG8gc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWMgY29tcGlsZXIuCgo6eiMJCUxpc3QgbnVtYmVyZWQgbGluZXMuIChCb2hkYW4gVmxhc3l1aykKCgpOZXcgbWFya3M6IH4KCicoIGFuZCAnKQlCZWdpbiBvciBlbmQgb2YgY3VycmVudCBzZW50ZW5jZS4gIFVzZWZ1bCBpbiBFeCBjb21tYW5kcy4KJ3sgYW5kICd9CUJlZ2luIG9yIGVuZCBvZiBjdXJyZW50IHBhcmFncmFwaC4gIFVzZWZ1bCBpbiBFeCBjb21tYW5kcy4KJy4JCVBvc2l0aW9uIG9mIHRoZSBsYXN0IGNoYW5nZSBpbiB0aGUgY3VycmVudCBidWZmZXIuCideCQlQb3NpdGlvbiB3aGVyZSBJbnNlcnQgbW9kZSB3YXMgc3RvcHBlZC4KClN0b3JlIHRoZSBeIGFuZCAuIG1hcmtzIGluIHRoZSB2aW1pbmZvIGZpbGUuICBNYWtlcyBpdCBwb3NzaWJsZSB0byBqdW1wIHRvIHRoZQpsYXN0IGluc2VydCBwb3NpdGlvbiBvciBjaGFuZ2VkIHRleHQuCgoKTmV3IGZ1bmN0aW9uczogfgphcmdpZHgoKQlDdXJyZW50IGluZGV4IGluIGFyZ3VtZW50IGxpc3QuCmJ1Zmxpc3RlZCgpCUNoZWNrcyBpZiB0aGUgYnVmZmVyIGV4aXN0cyBhbmQgaGFzICdidWZsaXN0ZWQnIHNldC4KY2luZGVudCgpCUdldCBpbmRlbnQgYWNjb3JkaW5nIHRvICdjaW5kZW50Jy4KZXZlbnRoYW5kbGVyKCkJUmV0dXJucyAxIHdoZW4gaW5zaWRlIGFuIGV2ZW50IGhhbmRsZXIgYW5kIGludGVyYWN0aXZlCgkJY29tbWFuZHMgY2FuJ3QgYmUgdXNlZC4KZXhlY3V0YWJsZSgpCUNoZWNrcyBpZiBhIHByb2dyYW0gb3IgYmF0Y2ggc2NyaXB0IGNhbiBiZSBleGVjdXRlZC4KZmlsZXdyaXRhYmxlKCkJQ2hlY2tzIGlmIGEgZmlsZSBjYW4gYmUgd3JpdHRlbi4gKFJvbiBBYXJvbikKZm9sZGNsb3NlZCgpCUZpbmQgb3V0IGlmIHRoZXJlIGlzIGEgY2xvc2VkIGZvbGQuIChKb2hhbm5lcyBaZWxsbmVyKS4KZm9sZGNsb3NlZW5kKCkJRmluZCB0aGUgZW5kIG9mIGEgY2xvc2VkIGZvbGQuCmZvbGRsZXZlbCgpCUZpbmQgb3V0IHRoZSBmb2xkbGV2ZWwuIChKb2hhbm5lcyBaZWxsbmVyKQpmb3JlZ3JvdW5kKCkJTW92ZSB0aGUgR1VJIHdpbmRvdyB0byB0aGUgZm9yZWdyb3VuZC4KZ2V0Y2hhcigpCUdldCBvbmUgY2hhcmFjdGVyIGZyb20gdGhlIHVzZXIuICBDYW4gYmUgdXNlZCB0byBkZWZpbmUgYQoJCW1hcHBpbmcgdGhhdCB0YWtlcyBhbiBhcmd1bWVudC4KZ2V0Y2hhcm1vZCgpCUdldCBsYXN0IHVzZWQga2V5IG1vZGlmaWVyLgpnZXRidWZ2YXIoKQlnZXRzIHRoZSB2YWx1ZSBvZiBhbiBvcHRpb24gb3IgbG9jYWwgdmFyaWFibGUgaW4gYSBidWZmZXIgKFJvbgoJCUFhcm9uKQpnZXRmc2l6ZSgpCVJldHVybiB0aGUgc2l6ZSBvZiBhIGZpbGUuCmdldHdpbnZhcigpCWdldHMgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbiBvciBsb2NhbCB2YXJpYWJsZSBpbiBhIHdpbmRvdyAoUm9uCgkJQWFyb24pCmdsb2JwYXRoKCkJRmluZCBtYXRjaGluZyBmaWxlcyBpbiBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMuCmhhc21hcHRvKCkJRGV0ZWN0IGlmIGEgbWFwcGluZyB0byBhIHN0cmluZyBpcyBhbHJlYWR5IHByZXNlbnQuCmljb252KCkJCUNvbnZlcnQgYSBzdHJpbmcgZnJvbSBvbmUgZW5jb2RpbmcgdG8gYW5vdGhlci4KaW5kZW50KCkJZ2V0cyB0aGUgaW5kZW50IG9mIGEgbGluZSAoUm9uIEFhcm9uKQppbnB1dGRpYWxvZygpCUxpa2UgaW5wdXQoKSBidXQgdXNlIGEgR1VJIGRpYWxvZyB3aGVuIHBvc3NpYmxlLiAgQ3VycmVudGx5CgkJb25seSB3b3JrcyBmb3IgV2luMzIsIE1vdGlmLCBBdGhlbmEgYW5kIEdUSy4KCQlVc2UgaW5wdXRkaWFsb2coKSBmb3IgdGhlIEVkaXQvU2V0dGluZ3MvVGV4dCBXaWR0aCBtZW51LiAgQWxzbwoJCWZvciB0aGUgSGVscC9GaW5kLi4gYW5kIFRvb2xiYXIgRmluZEhlbHAgaXRlbXMuCgkJKFdpbjMyIHN1cHBvcnQgYnkgVGhvcmUgQi4gS2FybHNlbikKCQkoV2luMTYgc3VwcG9ydCBieSBWaW5jZSBOZWdyaSkKaW5wdXRzZWNyZXQoKQlBc2sgdGhlIHVzZXIgdG8gdHlwZSBhIHN0cmluZyB3aXRob3V0IHNob3dpbmcgdGhlIHR5cGVkIGtleXMuCgkJKENoYXJsZXMgQ2FtcGJlbGwpCmxpYmNhbGwoKQlmb3IgVW5peCAoTmVpbCBCaXJkLCBKb2hhbm5lcyBaZWxsbmVyLCBTdGVwaGVuIFdhbGwpCmxpYmNhbGxucigpCWZvciBXaW4zMiBhbmQgVW5peApsaXNwaW5kZW50KCkJR2V0IGluZGVudCBhY2NvcmRpbmcgdG8gJ2xpc3AnLgptb2RlKCkJCVJldHVybiBhIHN0cmluZyB0aGF0IGluZGljYXRlcyB0aGUgY3VycmVudCBtb2RlLgpuZXh0bm9uYmxhbmsoKQlTa2lwIGJsYW5rIGxpbmVzIGZvcndhcmRzLgpwcmV2bm9uYmxhbmsoKQlTa2lwIGJsYW5rIGxpbmVzIGJhY2t3YXJkcy4gIFVzZWZ1bCB0byBmb3IgaW5kZW50IHNjcmlwdHMuCnJlc29sdmUoKQlNUy1XaW5kb3dzOiByZXNvbHZlIGEgc2hvcnRjdXQgdG8gdGhlIGZpbGUgaXQgcG9pbnRzIHRvLgoJCVVuaXg6IHJlc29sdmUgYSBzeW1ib2xpYyBsaW5rLgpzZWFyY2goKQlTZWFyY2ggZm9yIGEgcGF0dGVybi4Kc2VhcmNocGFpcigpCVNlYXJjaCBmb3IgbWF0Y2hpbmcgcGFpci4gIENhbiBiZSB1c2VkIGluIGluZGVudCBmaWxlcyB0byBmaW5kCgkJdGhlICJpZiIgbWF0Y2hpbmcgYW4gZW5kaWYuCnNldGJ1ZnZhcigpCXNldHMgYW4gb3B0aW9uIG9yIHZhcmlhYmxlIGxvY2FsIHRvIGEgYnVmZmVyIChSb24gQWFyb24pCnNldHdpbnZhcigpCXNldHMgYW4gb3B0aW9uIG9yIHZhcmlhYmxlIGxvY2FsIHRvIGEgd2luZG93IChSb24gQWFyb24pCnN0cmlkeCgpCVNlYXJjaCBmb3IgZmlyc3Qgb2NjdXJyZW5jZSBvZiBvbmUgc3RyaW5nIGluIGFub3RoZXIuCnN0cnJpZHgoKQlTZWFyY2ggZm9yIGxhc3Qgb2NjdXJyZW5jZSBvZiBvbmUgc3RyaW5nIGluIGFub3RoZXIuCnRvbG93ZXIoKQlDb252ZXJ0IHN0cmluZyB0byBhbGwtbG93ZXJjYXNlLgp0b3VwcGVyKCkJQ29udmVydCBzdHJpbmcgdG8gYWxsLXVwcGVyY2FzZS4KdHlwZSgpCQlDaGVjayB0aGUgdHlwZSBvZiBhbiBleHByZXNzaW9uLgp3aW5jb2woKQl3aW5kb3cgY29sdW1uIG9mIHRoZSBjdXJzb3IKd2lud2lkdGgoKQlXaWR0aCBvZiBhIHdpbmRvdy4gKEpvaGFubmVzIFplbGxuZXIpCndpbmxpbmUoKQl3aW5kb3cgbGluZSBvZiB0aGUgY3Vyc29yCgoKQWRkZWQgZXhwYW5zaW9uIG9mIGN1cmx5IGJyYWNlcyBpbiB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXMuICBUaGlzIGNhbiBiZQp1c2VkIGZvciB2YXJpYWJsZSBuYW1lcyB0aGF0IGluY2x1ZGUgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbi4gIE9yIGEgcHJpbWl0aXZlCmZvcm0gb2YgYXJyYXlzLiAoVmluY2UgTmVncmkpCgoKTmV3IGF1dG9jb21tYW5kIGV2ZW50czogfgpCdWZXaW5FbnRlcglUcmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyBkaXNwbGF5ZWQgaW4gYSB3aW5kb3csIGFmdGVyIHVzaW5nCgkJdGhlIG1vZGVsaW5lcy4gIENhbiBiZSB1c2VkIHRvIGxvYWQgYSB2aWV3LgpCdWZXaW5MZWF2ZQlUcmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyBubyBsb25nZXIgaW4gYSB3aW5kb3cuICBBbHNvCgkJdHJpZ2dlcmVkIHdoZW4gZXhpdGluZyBWaW0uICBDYW4gYmUgdXNlZCB0byBzYXZlIHZpZXdzLgpGaWxlQ2hhbmdlZFJPCVRyaWdnZXJlZCBiZWZvcmUgbWFraW5nIHRoZSBmaXJzdCBjaGFuZ2UgdG8gYSByZWFkLW9ubHkgZmlsZS4KCQlDYW4gYmUgdXNlZCB0byBjaGVjay1vdXQgdGhlIGZpbGUuIChTY290dCBHcmFoYW0pClRlcm1SZXNwb25zZQlUcmlnZ2VyZWQgd2hlbiB0aGUgdGVybWluYWwgcmVwbGllcyB0byB0aGUgdmVyc2lvbi1yZXF1ZXN0LgoJCVRoZSB2OnRlcm1yZXNwb25zZSBpbnRlcm5hbCB2YXJpYWJsZSBob2xkcyB0aGUgcmVzdWx0LiAgQ2FuIGJlCgkJdXNlZCB0byByZWFjdCB0byB0aGUgdmVyc2lvbiBvZiB0aGUgdGVybWluYWwuICAoUm9uYWxkIFNjaGlsZCkKRmlsZVJlYWRDbWQJVHJpZ2dlcmVkIGJlZm9yZSByZWFkaW5nIGEgZmlsZS4KQnVmUmVhZENtZAlUcmlnZ2VyZWQgYmVmb3JlIHJlYWRpbmcgYSBmaWxlIGludG8gYSBidWZmZXIuCkZpbGVXcml0ZUNtZAlUcmlnZ2VyZWQgYmVmb3JlIHdyaXRpbmcgYSBmaWxlLgpCdWZXcml0ZUNtZAlUcmlnZ2VyZWQgYmVmb3JlIHdyaXRpbmcgYSBidWZmZXIgaW50byBhIGZpbGUuCkZpbGVBcHBlbmRDbWQJVHJpZ2dlcmVkIGJlZm9yZSBhcHBlbmRpbmcgdG8gYSBmaWxlLgpGdW5jVW5kZWZpbmVkCVRyaWdnZXJlZCB3aGVuIGEgdXNlciBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZC4gKFJvbiBBYXJvbikKClRoZSBhdXRvY29tbWFuZHMgZm9yIHRoZSAqQ21kIGV2ZW50cyByZWFkIG9yIHdyaXRlIHRoZSBmaWxlIGluc3RlYWQgb2Ygbm9ybWFsCmZpbGUgcmVhZC93cml0ZS4gIFVzZSB0aGlzIGluIG5ldHJ3LnZpbSB0byBiZSBhYmxlIHRvIGVkaXQgZmlsZXMgb24gYSByZW1vdGUKc3lzdGVtLiAoQ2hhcmxlcyBDYW1wYmVsbCkKCgpOZXcgU3ludGF4IGZpbGVzOiB+CgpiZGYJCUJERiBmb250IGRlZmluaXRpb24gKE5pa29sYWkgV2VpYnVsbCkKY2F0YWxvZwkJU0dNTCBjYXRhbG9nIChKb2hhbm5lcyBaZWxsbmVyKQpkZWJjaGFuZ2Vsb2cJRGViaWFuIENoYW5nZWxvZyAoV2ljaGVydCBBa2tlcm1hbikKZGViY29udHJvbAlEZWJpYW4gQ29udHJvbCAoV2ljaGVydCBBa2tlcm1hbikKZG90CQlkb3QgKE1hcmt1cyBNb3R0bCkKZHNsCQlEU1NTTCBzeW50YXggKEpvaGFubmVzIFplbGxuZXIpCmV0ZXJtCQlFdGVybSBjb25maWd1cmF0aW9uIChOaWtvbGFpIFdlaWJ1bGwpCmluZGVudAkJSW5kZW50IHByb2ZpbGUgKE5pa29sYWkgV2VpYnVsbCkKbGZ0cAkJTEZUUCAoTmlrb2xhaSBXZWlidWxsKQpseW54CQlMeW54IGNvbmZpZyAoRG91ZyBLZWFybnMpCm11c2gJCW11c2ggc291cmNlY29kZSAoQmVrIE9iZXJpbikKbmF0dXJhbAkJTmF0dXJhbCAoTWFya28gTGVpcGVydCkKcGlscmMJCVBhbCByZXNvdXJjZSBjb21waWxlciAoQnJpYW4gU2NoYXUpCnBsbQkJUEwvTSAoUGhpbGlwcGUgQ291bG9uZ2VzKQpwb3ZpbmkJCVBvdnJheSBjb25maWd1cmF0aW9uIChEYXZpZCBOZWNhcykKcmF0cG9pc29uCVJhdHBvaXNvbiBjb25maWcvY29tbWFuZCAoRG91ZyBLZWFybnMpCnJlYWRsaW5lCXJlYWRsaW5lIGNvbmZpZyAoTmlrb2xhaSBXZWlidWxsKQpzY3JlZW4JCVNjcmVlbiBSQyAoTmlrb2xhaSBXZWlidWxsKQpzcGVjbWFuCQlTcGVjbWFuIChPciBGcmV1bmQpCnNxbGZvcm1zCVNRTCpGb3JtcyAoQXVzdGluIFppZWdsZXIpCnRlcm1pbmZvCXRlcm1pbmZvIChOaWtvbGFpIFdlaWJ1bGwpCnRpZHkJCVRpZHkgY29uZmlndXJhdGlvbiAoRG91ZyBLZWFybnMpCndnZXQJCVdnZXQgY29uZmlndXJhdGlvbiAoRG91ZyBLZWFybnMpCgoKVXBkYXRlZCBtYW55IHN5bnRheCBmaWxlcyB0byB3b3JrIGJvdGggd2l0aCBWaW0gNS43IGFuZCA2LjAuCgpJbnRlcmZhY2UgdG8gUnVieS4gKFNodWdvIE1hZWRhKQpTdXBwb3J0IGR5bmFtaWMgbG9hZGluZyBvZiB0aGUgUnVieSBpbnRlcmZhY2Ugb24gTVMtV2luZG93cy4gKE11cmFva2EgVGFybykKU3VwcG9ydCB0aGlzIGZvciBNaW5ndyB0b28uIChCZW5vaXQgQ2VycmluYSkKCldpbjMyOiBBZGRlZCBwb3NzaWJpbGl0eSB0byBsb2FkIFRDTCBkeW5hbWljYWxseS4gKE11cmFva2EgVGFybykKQWxzbyBmb3IgQm9ybGFuZCA1LjUuIChEYW4gU2hhcnApCgpXaW4zMjogV2hlbiBlZGl0aW5nIGEgZmlsZSB0aGF0IGlzIGEgc2hvcnRjdXQgKCoubG5rIGZpbGUpLCBlZGl0IHRoZSBmaWxlIGl0CmxpbmtzIHRvLiAgVW5sZXNzICdiaW5hcnknIGlzIHNldCwgdGhlbiBlZGl0IHRoZSBzaG9ydGN1dCBmaWxlIGl0c2VsZi4KKFlhc3VoaXJvIE1hdHN1bW90bykKClRoZSAiOmNvbW1hbmQiIGNvbW1hbmQgbm93IGFjY2VwdHMgYSAiLWJhciIgYXJndW1lbnQuICBUaGlzIGFsbG93cyB0aGUgdXNlcgpjb21tYW5kIHRvIGJlIGZvbGxvd2VkIGJ5ICJ8IGNvbW1hbmQiLgoKVGhlIHByZXZpZXcgd2luZG93IGlzIG5vdyBhbHNvIHVzZWQgYnkgdGhlc2UgY29tbWFuZHM6Ci0gfDpwZWRpdHwgZWRpdHMgdGhlIHNwZWNpZmllZCBmaWxlIGluIHRoZSBwcmV2aWV3IHdpbmRvdwotIHw6cHNlYXJjaHwgc2VhcmNoZXMgZm9yIGEgd29yZCBpbiBpbmNsdWRlZCBmaWxlcywgbGlrZSB8OmlqdW1wfCwgYW5kCiAgZGlzcGxheXMgdGhlIGZvdW5kIHRleHQgaW4gdGhlIHByZXZpZXcgd2luZG93LgpBZGRlZCB0aGUgQ1RSTC1XIFAgY29tbWFuZDogZ28gdG8gcHJldmlldyB3aW5kb3cuCgpNUy1ET1MgYW5kIE1TLVdpbmRvd3MgYWxzbyByZWFkIHRoZSBzeXN0ZW0td2lkZSB2aW1yYyBmaWxlICRWSU0vdmltcmMuICBNb3N0bHkKZm9yIE5UIHN5c3RlbXMgd2l0aCBtdWx0aXBsZSB1c2Vycy4KCkEgZG91YmxlLWNsaWNrIG9mIHRoZSBtb3VzZSBvbiBhIGNoYXJhY3RlciB0aGF0IGhhcyBhICIlIiBtYXRjaCBzZWxlY3RzIGZyb20KdGhhdCBjaGFyYWN0ZXIgdG8gdGhlIG1hdGNoLiAgU2ltaWxhciB0byAidiUiLgoKIi1TIHNlc3Npb24udmltIiBhcmd1bWVudDogU291cmNlIGEgc2NyaXB0IGZpbGUgd2hlbiBzdGFydGluZyB1cC4gIENvbnZlbmllbnQKd2F5IHRvIHN0YXJ0IFZpbSB3aXRoIGEgc2Vzc2lvbiBmaWxlLgoKQWRkZWQgIi0tY21kIHtjb21tYW5kfSIgVmltIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYSBjb21tYW5kIGJlZm9yZSBhIHZpbXJjIGZpbGUKaXMgbG9hZGVkLiAoVmluY2UgTmVncmkpCgpBZGRlZCB0aGUgIi1NIiBWaW0gYXJndW1lbnQ6IHJlc2V0ICdtb2RpZmlhYmxlJyBhbmQgJ3dyaXRlJywgdGh1cyBkaXNhbGxvdwptYWtpbmcgY2hhbmdlcyBhbmQgd3JpdGluZyBmaWxlcy4KCkFkZGVkIHJ1bnRpbWUvZGVsbWVudS52aW0uICBTb3VyY2UgdGhpcyB0byByZW1vdmUgYWxsIG1lbnVzIGFuZCBwcmVwYXJlIGZvcgpsb2FkaW5nIG5ldyBtZW51cy4gIFVzZWZ1bCB3aGVuIGNoYW5naW5nICdsYW5nbWVudScuCgpQZXJsIHNjcmlwdCB0byBmaWx0ZXIgUGVybCBlcnJvciBtZXNzYWdlcyB0byBxdWlja2ZpeCB1c2FibGUgZm9ybWF0LiAoSm9lcmcKWmllZmxlKQoKQWRkZWQgcnVudGltZS9tYWNyb3MvbGVzcy52aW06IFZpbSBzY3JpcHQgdG8gc2ltdWxhdGUgbGVzcywgYnV0IHdpdGggc3ludGF4CmhpZ2hsaWdodGluZy4KCk1TLVdpbmRvd3MgaW5zdGFsbCBwcm9ncmFtOiAoSm9uIE1lcnopCi0gVGhlIFdpbjMyIHByb2dyYW0gY2FuIG5vdyBjcmVhdGUgc2hvcnRjdXRzIG9uIHRoZSBkZXNrdG9wIGFuZCBpbnN0YWxsIFZpbSBpbgogIHRoZSBTdGFydCBtZW51LgotIFBvc3NpYmx5IHJlbW92ZSBvbGQgIkVkaXQgd2l0aCBWaW0iIGVudHJpZXMuCi0gVGhlIFZpbSBleGVjdXRhYmxlIGlzIG5ldmVyIG1vdmVkIG9yICRQQVRIIGNoYW5nZWQuICBBIHNtYWxsIGJhdGNoIGZpbGUgaXMKICBjcmVhdGVkIGluIGEgZGlyZWN0b3J5IGluICRQQVRILiAgRmV3ZXIgY2hvaWNlcyB0byBiZSBtYWRlLgotIERldGVjdCBhbHJlYWR5IGluc3RhbGxlZCBWaW0gdmVyc2lvbnMgYW5kIG9mZmVyIHRvIHVuaW5zdGFsbCB0aGVtIGZpcnN0LgoKSW1wcm92ZWQgdGhlIE1TLVdpbmRvd3MgdW5pbnN0YWwgcHJvZ3JhbS4gIEl0IG5vdyBhbHNvIGRlbGV0ZXMgdGhlIGVudHJpZXMgaW4KdGhlIFN0YXJ0IG1lbnUsIGljb25zIGZyb20gdGhlIGRlc2t0b3AgYW5kIHRoZSBjcmVhdGVkIGJhdGNoIGZpbGVzLiAoSm9uIE1lcnopCkFsc28gbWFkZSBpdCBwb3NzaWJsZSB0byBkZWxldGUgb25seSBzb21lIG9mIHRoZXNlLiAgQWxzbyB1bnJlZ2lzdGVyIGd2aW0gZm9yCk9MRS4KCkdlbmVyYXRlIGEgc2VsZi1pbnN0YWxsaW5nIFZpbSBwYWNrYWdlIGZvciBNUy1XaW5kb3dzLiAgVGhpcyB1c2VzIE5TSVMuIChKb24KTWVyeiBldCBhbC4pCgpBZGRlZCAiOmZpbGV0eXBlIGRldGVjdCIuICBUcnkgZGV0ZWN0aW5nIHRoZSBmaWxldHlwZSBhZ2Fpbi4gIEhlbHBzIHdoZW4Kd3JpdGluZyBhIG5ldyBzaGVsbCBzY3JpcHQsIGFmdGVyIGFkZGluZyAiIyEvYmluL2NzaCIuCgpBZGRlZCAiOmF1Z3JvdXAhIG5hbWUiIHRvIGRlbGV0ZSBhbiBhdXRvY29tbWFuZCBncm91cC4gIE5lZWRlZCBmb3IgdGhlCmNsaWVudC1zZXJ2ZXIgIi0tcmVtb3RlLXdhaXQiLgoKQWRkIHRoZSBWaW0gdmVyc2lvbiBudW1iZXIgdG8gdGhlIHZpbWluZm8gZmlsZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSU1QUk9WRU1FTlRTCQkJCQkJKmltcHJvdmVtZW50cy02KgoKQWRkZWQgdGhlICduJyBmbGFnIGluICdjcG9wdGlvbnMnOiBXaGVuIG9taXR0ZWQgdGV4dCBvZiB3cmFwcGVkIGxpbmVzIGlzIG5vdApwdXQgYmV0d2VlbiBsaW5lIG51bWJlcnMgZnJvbSAnbnVtYmVyJyBvcHRpb24uICBNYWtlcyBpdCBhIGxvdCBlYXNpZXIgdG8gcmVhZAp3cmFwcGVkIGxpbmVzLgoKV2hlbiB0aGVyZSBpcyBhIGZvcm1hdCBlcnJvciBpbiBhIHRhZ3MgZmlsZSwgdGhlIGJ5dGUgcG9zaXRpb24gaXMgcmVwb3J0ZWQgc28KdGhhdCB0aGUgZXJyb3IgY2FuIGJlIGxvY2F0ZWQuCgoiZ2YiIHdvcmtzIGluIFZpc3VhbCBtb2RlOiBVc2UgdGhlIHNlbGVjdGVkIHRleHQgYXMgdGhlIGZpbGUgbmFtZS4gKENoYXNlClRpbmdsZXkpCgpBbGxvdyBhbWJpZ3VvdXMgbWFwcGluZ3MuICBUaHVzICJhYSIgYW5kICJhYWEiIGNhbiBib3RoIGJlIG1hcHBlZCwgdGhlIGxvbmdlc3QKbWF0Y2hpbmcgb25lIGlzIHVzZWQuICBFc3BlY2lhbGx5IHVzZWZ1bCBmb3IgIjpsbWFwIiBhbmQgJ2tleW1hcCcuCgpFbmNyeXB0aW9uOiBBc2sgdGhlIGtleSB0byBiZSB0eXBlZCB0d2ljZSB3aGVuIGNyeXB0aW5nIHRoZSBmaXJzdCB0aW1lLgpPdGhlcndpc2UgYSB0eXBvIG1pZ2h0IGNhdXNlIHRoZSB0ZXh0IHRvIGJlIGxvc3QgZm9yZXZlci4gKENoYXNlIFRpbmdsZXkpCgpUaGUgd2luZG93IHRpdGxlIG5vdyBoYXMgIlZJTSIgb24gdGhlIGVuZC4gIFRoZSBmaWxlIG5hbWUgY29tZXMgZmlyc3QsIHVzZWZ1bAppbiB0aGUgdGFza2Jhci4gIEEgIisiIGlzIGFkZGVkIHdoZW4gdGhlIGZpbGUgaXMgbW9kaWZpZWQuICAiPSIgaXMgYWRkZWQgZm9yCmEgcmVhZC1vbmx5IGZpbGUuICAiLSIgaXMgYWRkZWQgZm9yIGEgZmlsZSB3aXRoICdtb2RpZmlhYmxlJyBvZmYuCgpJbiBWaXN1YWwgbW9kZSwgbWVudGlvbiB0aGUgc2l6ZSBvZiB0aGUgc2VsZWN0ZWQgYXJlYSBpbiB0aGUgJ3Nob3djbWQnCnBvc2l0aW9uLgoKQWRkZWQgdGhlICJiOmNoYW5nZWR0aWNrIiB2YXJpYWJsZS4gIEluY3JlbWVudGVkIGF0IGVhY2ggY2hhbmdlLCBhbHNvIGZvcgp1bmRvLiAgQ2FuIGJlIHVzZWQgdG8gdGFrZSBhY3Rpb24gb25seSBpZiB0aGUgYnVmZmVyIGhhcyBiZWVuIGNoYW5nZWQuCgpJbiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nIG9mIGEgIjpzIiBjb21tYW5kICJcPSIgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB3aXRoCnRoZSByZXN1bHQgb2YgYW4gZXhwcmVzc2lvbi4gIEZyb20gdGhpcyBleHByZXNzaW9uIHRoZSBzdWJtYXRjaCgpIGZ1bmN0aW9uIGNhbgpiZSB1c2VkIHRvIGFjY2VzcyBzdWJtYXRjaGVzLgoKV2hlbiBkb2luZyAiOnFhbGwiIGFuZCB0aGVyZSBpcyBhIGNoYW5nZSBpbiBhIGJ1ZmZlciB0aGF0IGlzIGJlaW5nIGVkaXRlZCBpbgphbm90aGVyIHdpbmRvdywganVtcCB0byB0aGF0IHdpbmRvdywgaW5zdGVhZCBvZiBlZGl0aW5nIHRoYXQgYnVmZmVyIGluIHRoZQpjdXJyZW50IHdpbmRvdy4KCkFkZGVkIHRoZSAiKytlbmM9IiBhbmQgIisrZmY9IiBhcmd1bWVudHMgdG8gZmlsZSByZWFkL3dyaXRlIGNvbW1hbmRzIHRvIGZvcmNlCnVzaW5nIHRoZSBnaXZlbiAnZW5jb2RpbmcnIG9yICdmaWxlZm9ybWF0Jy4gIEFuZCBhZGRlZCB0aGUgInY6Y21kYXJnIgp2YXJpYWJsZSwgdG8gYmUgdXNlZCBmb3IgRmlsZVJlYWRDbWQgYXV0b2NvbW1hbmRzIHRoYXQgcmVhZC93cml0ZSB0aGUgZmlsZQp0aGVtc2VsdmVzLgoKV2hlbiByZWFkaW5nIHN0ZGluLCBmaXJzdCByZWFkIHRoZSB0ZXh0IGluIGJpbmFyeSBtb2RlIGFuZCB0aGVuIHJlLXJlYWQgaXQKd2l0aCBhdXRvbWF0aWMgc2VsZWN0aW9uIG9mICdmaWxlZm9ybWF0JyBhbmQgJ2ZpbGVlbmNvZGluZycuICBUaGlzIGF2b2lkcwpwcm9ibGVtcyB3aXRoIG5vdCBiZWluZyBhYmxlIHRvIHJld2luZCB0aGUgZmlsZSAoZS5nLiwgd2hlbiBhIGxpbmUgbmVhciB0aGUKZW5kIG9mIHRoZSBmaWxlIGVuZHMgaW4gTEYgaW5zdGVhZCBvZiBDUi1MRikuCldoZW4gcmVhZGluZyB0ZXh0IGZyb20gc3RkaW4gYW5kIHRoZSBidWZmZXIgaXMgZW1wdHksIGRvbid0IG1hcmsgaXQgY2hhbmdlZC4KQWxsb3dzIGV4aXRpbmcgd2l0aG91dCB0cm91YmxlLgoKQWRkZWQgYW4gSUQgdG8gbWFueSBlcnJvciBtZXNzYWdlcy4gIFRoaXMgd2lsbCBtYWtlIGl0IGVhc2llciB0byBmaW5kIGhlbHAgZm9yCmEgbWVzc2FnZS4KCkluc2VydCBtb2RlOgotICJDVFJMLUcgaiIgYW5kICJDVFJMLUcgayIgY2FuIGJlIHVzZWQgdG8gaW5zZXJ0IGluIGFub3RoZXIgbGluZSBpbiB0aGUgc2FtZQogIGNvbHVtbi4gIFVzZWZ1bCBmb3IgZWRpdGluZyBhIHRhYmxlLgotIEFkZGVkIFRoZXNhdXJ1cyBjb21wbGV0aW9uIHdpdGggQ1RSTC1YIENUUkwtVC4gKFZpbmNlIE5lZ3JpKQotIEFkZGVkIHRoZSAndGhlc2F1cnVzJyBvcHRpb24sIHRvIHVzZSBpbnN0ZWFkIG9mICdkaWN0aW9uYXJ5JyBmb3IgdGhlc2F1cnVzCiAgY29tcGxldGlvbi4gIEFkZGVkIHRoZSAncycgZmxhZyBpbiAnY29tcGxldGUnLgotIE1hZGUgQ1RSTC1YIENUUkwtTCBpbiBJbnNlcnQgbW9kZSB1c2UgdGhlICdjb21wbGV0ZScgb3B0aW9uLiAgSXQgbm93IGFsc28KICBzY2FucyBvdGhlciBsb2FkZWQgYnVmZmVycyBmb3IgbWF0Y2hpbmcgbGluZXMuCi0gQ1RSTC1SIG5vdyBhbHNvIHdvcmtzIGluIEluc2VydCBtb2RlIHdoaWxlIGRvaW5nIGNvbXBsZXRpb24gd2l0aCBDVFJMLVggb3IKICBDVFJMLU4uIChOZWlsIEJpcmQpCi0gV2hlbiBkb2luZyBJbnNlcnQgbW9kZSBjb21wbGV0aW9uLCB3aGVuIGNvbXBsZXRpb24gaXMgZmluaXNoZWQgY2hlY2sgZm9yIGEKICBtYXRjaCB3aXRoIHdvcmRzIGZyb20gJ2NpbmtleXMnIG9yICdpbmRlbnRrZXlzJy4KClBlcmZvcm1hbmNlOgotIE1hZGUgZGlzcGxheSB1cGRhdGluZyBtb3JlIGVmZmljaWVudC4gIEluc2VydC9kZWxldGUgbGluZXMgbWF5IGJlIHVzZWQgZm9yCiAgYWxsIGNoYW5nZXMsIGFsc28gZm9yIHVuZG8vcmVkby4KLSBUaGUgZGlzcGxheSBpcyBub3QgcmVkcmF3biB3aGVuIHRoZXJlIGlzIHR5cGVhaGVhZCBpbiBJbnNlcnQgbW9kZS4gIFNwZWVkcwogIHVwIENUUkwtUiBhIGxvdC4KLSBJbXByb3ZlZCBzcGVlZCBvZiBzY3JlZW4gb3V0cHV0IGZvciAzMiBiaXQgRE9TIHZlcnNpb24uIChWaW5jZSBOZWdyaSkKLSBXaGVuIGRyYWdnaW5nIHdpdGggdGhlIG1vdXNlLCB0aGVyZSBpcyBhIGxvb2thaGVhZCB0byBza2lwIG1vdXNlIGNvZGVzIHdoZW4KICB0aGVyZSBpcyBhbm90aGVyIG9uZSBuZXh0LiAgTWFrZXMgZHJhZ2dpbmcgd2l0aCB0aGUgbW91c2UgYSBsb3QgZmFzdGVyLgotIEFsc28gYSBtZW1vcnkgdXNhZ2UgaW1wcm92ZW1lbnQ6IFdoZW4gY2FsbGluZyB1X3NhdmUgd2l0aCBhIHNpbmdsZSBsaW5lLAogIGRvbid0IHNhdmUgaXQgaWYgdGhlIGxpbmUgd2FzIHJlY2VudGx5IHNhdmVkIGZvciB0aGUgc2FtZSB1bmRvIGFscmVhZHkuCi0gV2hlbiB1c2luZyBhIHNjcmlwdCB0aGF0IGFwcGVuZHMgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUsIHRoZSBhbW91bnQgb2YKICBhbGxvY2F0ZWQgbWVtb3J5IHdhcyBncm93aW5nIHN0ZWFkaWx5LiAgQWxzbyB3aGVuICd1bmRvbGV2ZWxzJyBpcyAtMS4KICBDYXVzZWQgYnkgdGhlIGxpbmUgc2F2ZWQgZm9yICJVIiBuZXZlciB0byBiZSBmcmVlZC4gIE5vdyBmcmVlIGFuIHVuZG8gYmxvY2sKICB3aGVuIGl0IGJlY29tZXMgZW1wdHkuCi0gR1VJIGFuZCBEb3MzMjogVXNlIGEgdmVydGljYWwgc2Nyb2xsIHJlZ2lvbiwgdG8gbWFrZSBzY3JvbGxpbmcgaW4gYQogIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IGZhc3Rlci4gIE5vIG5lZWQgdG8gcmVkcmF3IHRoZSB3aG9sZSB3aW5kb3cuCi0gV2hlbiBzY3JvbGxpbmcgaXNuJ3QgcG9zc2libGUgd2l0aCB0ZXJtaW5hbCBjb2RlcyAoZS5nLiwgZm9yIGEgdmVydGljYWxseQogIHNwbGl0IHdpbmRvdykgcmVkcmF3IGZyb20gU2NyZWVuTGluZXNbXS4gIFRoYXQgc2hvdWxkIGJlIGZhc3RlciB0aGFuIGdvaW5nCiAgdGhyb3VnaCB0aGUgbGluZXMgd2l0aCB3aW5fbGluZSgpLCBlc3BlY2lhbGx5IHdoZW4gdXNpbmcgc3ludGF4CiAgaGlnaGxpZ2h0aW5nLgotIFRoZSBTeW50YXggbWVudSBpcyBub3cgcHJlLWdlbmVyYXRlZCBieSBhIHNlcGFyYXRlIHNjcmlwdC4gIE1ha2VzIGxvYWRpbmcKICB0aGUgbWVudSA3MCUgZmFzdGVyLiAgVGhpcyBjYW4gaGFsdmUgdGhlIHN0YXJ0dXAgdGltZSBvZiBndmltLgotIFdoZW4gZG9pbmcgIjpoZWxwIHRhZyIsIGRvbid0IG9wZW4gaGVscC50eHQgZmlyc3QsIGp1bXAgZGlyZWN0bHkgdG8gdGhlIGhlbHAKICB0YWcuICBJdCdzIGZhc3RlciBhbmQgYXZvaWRzIGFuIGV4dHJhIG1lc3NhZ2UuCi0gV2luMzI6IFdoZW4gYSBmaWxlIG5hbWUgZG9lc24ndCBlbmQgaW4gIi5sbmsiIGRvbid0IHRyeSByZXNvbHZpbmcgYQogIHNob3J0Y3V0LCBpdCB0YWtlcyBxdWl0ZSBhIGJpdCBvZiB0aW1lLgotIERvbid0IHVwZGF0ZSB0aGUgbW91c2UgcG9pbnRlciBzaGFwZSB3aGlsZSB0aGVyZSBhcmUgdHlwZWFoZWFkIGNoYXJhY3RlcnMuCi0gQ2hhbmdlIE1FVEFbXSBmcm9tIGEgc3RyaW5nIGludG8gYW4gYXJyYXksIGF2b2lkcyB1c2luZyBzdHJjaHIoKSBvbiBpdC4KLSBEb24ndCBjbGVhciB0aGUgY29tbWFuZCBsaW5lIHdoZW4gYWRkaW5nIGNoYXJhY3RlcnMsIGF2b2lkcyB0aGF0IHNjcmVlbl9maWxsCiAgaXMgY2FsbGVkIGJ1dCBkb2Vzbid0IGRvIGFueXRoaW5nLgoKUm9idXN0bmVzczoKLSBVbml4OiBDaGVjayBmb3IgcnVubmluZyBvdXQgb2Ygc3RhY2sgc3BhY2Ugd2hlbiBleGVjdXRpbmcgYSByZWdleHAuICBBdm9pZHMKICBhIG5hc3R5IGNyYXNoLiAgT25seSB3b3JrcyB3aGVuIHRoZSBzeXN0ZW0gc3VwcG9ydHMgcnVubmluZyB0aGUgc2lnbmFsCiAgZnVuY3Rpb24gb24gYW5vdGhlciBzdGFjay4KLSBEaXNhbGxvdyAiOnNvdXJjZSA8ZGlybmFtZT4iLiAgT24gdW5peCBpdCdzIHBvc3NpYmxlIHRvIHJlYWQgYSBkaXJlY3RvcnksCiAgZG9lcyBub3QgbWFrZSBzZW5zZSB0byB1c2UgaXQgYXMgVmltIGNvbW1hbmRzLgoKU2VjdXJpdHk6Ci0gV2hlbiByZWFkaW5nIGZyb20gb3Igd3JpdGluZyB0byBhIHRlbXBvcmFyeSBmaWxlLCBjaGVjayB0aGF0IGl0IGlzbid0IGEKICBzeW1ib2xpYyBsaW5rLiAgR2l2ZXMgc29tZSBwcm90ZWN0aW9uIGFnYWluc3Qgc3ltbGluayBhdHRhY2tzLgotIFdoZW4gY3JlYXRpbmcgYSBiYWNrdXAgZmlsZSBjb3B5IG9yIGEgc3dhcCBmaWxlLCBjaGVjayBmb3IgaXQgYWxyZWFkeQogIGV4aXN0aW5nIHRvIGF2b2lkIGEgc3ltbGluayBhdHRhY2suIChDb2xpbiBQaGlwcHMpCi0gRXZhbHVhdGluZyBvcHRpb25zIHdoaWNoIGFyZSBhbiBleHByZXNzaW9uIGlzIGRvbmUgaW4gYSB8c2FuZGJveHwuICBJZiB0aGUKICBvcHRpb24gd2FzIHNldCBieSBhIG1vZGVsaW5lLCBpdCBjYW5ub3QgY2F1c2UgZGFtYWdlLgotIFVzZSBhIHNlY3VyZSB3YXkgdG8gZ2VuZXJhdGUgdGVtcCBmaWxlIG5hbWVzOiBDcmVhdGUgYSBwcml2YXRlIGRpcmVjdG9yeSBmb3IKICB0ZW1wIGZpbGVzLiAgVXNlZCBmb3IgVW5peCwgTVMtRE9TIGFuZCBPUy8yLgotICdtYWtlZWYnIGNhbiBiZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhhdCBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZCBmaWxlIG5hbWUgaXMKICB1c2VkLiAgVGhlIG9sZCBkZWZhdWx0IHdhcyAiL3RtcC9maWxlIiwgd2hpY2ggaXMgYSBzZWN1cml0eSByaXNrLgogIFdyaXRpbmcgJ21ha2VlZicgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGZhaWxzIGluIGEgcmVhZC1vbmx5IGRpcmVjdG9yeSBhbmQKICBjYXVzZXMgdHJvdWJsZSB3aGVuIHVzaW5nICI6Z3JlcCIgb24gYWxsIGZpbGVzLiAgTWFkZSB0aGUgZGVmYXVsdCBlbXB0eSBmb3IKICBhbGwgc3lzdGVtcywgc28gdGhhdCBhIHRlbXAgZmlsZSBpcyB1c2VkLgotIFRoZSBjb21tYW5kIGZyb20gYSB0YWdzIGZpbGUgaXMgZXhlY3V0ZWQgaW4gdGhlIHNhbmRib3ggZm9yIGJldHRlciBzZWN1cml0eS4KLSBUaGUgUnVieSwgVGNsIGFuZCBQeXRob24gaW50ZXJmYWNlcyBjYW5ub3QgYmUgdXNlZCBmcm9tIHRoZSBzYW5kYm94LiAgVGhleQogIG1pZ2h0IGRvIGRhbmdlcm91cyB0aGluZ3MuICBQZXJsIGlzIHN0aWxsIHBvc3NpYmxlLCBidXQgbGltaXRlZCB0byB0aGUgU2FmZQogIGVudmlyb25tZW50LiAoRG9ubmllIFNtaXRoKQoKU3ludGF4IGhpZ2hsaWdodGluZzoKLSBPcHRpbWl6ZWQgdGhlIHNwZWVkIGJ5IGNhY2hpbmcgdGhlIHN0YXRlIHN0YWNrIGFsbCBvdmVyIHRoZSBmaWxlLCBub3QganVzdAogIHRoZSBwYXJ0IGJlaW5nIGRpc3BsYXllZC4gIFJlcXVpcmVkIGZvciBmb2xkaW5nLgotIEFkZGVkICI6c3ludGF4IHN5bmMgZnJvbXN0YXJ0IjogQWx3YXlzIHBhcnNlIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLgotIEFkZGVkIHRoZSAiZGlzcGxheSIgYXJndW1lbnQgZm9yIHN5bnRheCBpdGVtczogdXNlIHRoZSBpdGVtIG9ubHkgd2hlbgogIGRpc3BsYXlpbmcgdGhlIHJlc3VsdC4gIENhbiBtYWtlIHBhcnNpbmcgZmFzdGVyIGZvciB0ZXh0IHRoYXQgaXNuJ3QgZ29pbmcgdG8KICBiZSBkaXNwbGF5ZWQuCi0gV2hlbiB1c2luZyBDVFJMLUwsIHRoZSBjYWNoZWQgc3RhdGVzIGFyZSBkZWxldGVkLCB0byBmb3JjZSBwYXJzaW5nIHRoZSB0ZXh0CiAgYWdhaW4uCi0gVXNlIGVsZmhhc2ggYWxnb3JpdGhtIGZvciB0YWJsZSBvZiBrZXl3b3Jkcy4gIFRoaXMgc2hvdWxkIGdpdmUgYSBiZXR0ZXIKICBkaXN0cmlidXRpb24gYW5kIHNwZWVkdXAga2V5d29yZCBsb29rdXAuIChDYW1wYmVsbCkKLSBBbHNvIGFsbG93IHRoZSAibGMiIGxlYWRpbmcgY29udGV4dCBmb3Igc2tpcCBhbmQgZW5kIHBhdHRlcm5zLiAoU2NvdHQKICBCaWdoYW0pCi0gU3ludGF4IGl0ZW1zIGNhbiBoYXZlIHRoZSAiZXh0ZW5kIiBhcmd1bWVudCB0byB1bmRvIHRoZSBlZmZlY3Qgb2YgYQogICJrZWVwZW5kIiBhcmd1bWVudCBvZiBhbiBpdGVtIGl0IGlzIGNvbnRhaW5lZCBpbi4gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUKICBzb21lIGNvbnRhaW5lZCBpdGVtcyBleHRlbmQgYSByZWdpb24gd2hpbGUgb3RoZXJzIGRvbid0LgotICI6c3ludGF4IGNsZWFyIiBub3cgZGVsZXRlcyB0aGUgYjpjdXJyZW50X3N5bnRheCB2YXJpYWJsZS4gIFRoYXQncyBsb2dpY2FsLAogIHNpbmNlIG5vIHN5bnRheCBpcyBkZWZpbmVkIGFmdGVyIHRoaXMgY29tbWFuZC4KLSBBZGRlZCAiOnN5bnRheCBlbmFibGUiOiBzd2l0Y2ggb24gc3ludGF4IGhpZ2hsaWdodGluZyB3aXRob3V0IGNoYW5naW5nIHRoZQogIGNvbG9ycy4gIFRoaXMgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGNvbG9ycyBpbiB0aGUgLnZpbXJjIGZpbGUgd2l0aG91dCB0aGUKICBuZWVkIGZvciBhIG15c3ludGF4ZmlsZS4KLSBBZGRlZCAiOnN5bnRheCByZXNldCI6IHJlc2V0IHRoZSBjb2xvcnMgdG8gdGhlaXIgZGVmYXVsdHMuCi0gQWRkZWQgdGhlICJjb250YWlucz1UT1AiIGFuZCAiY29udGFpbnM9Q09OVEFJTkVEIiBhcmd1bWVudHMuICBNYWtlcyBpdAogIHBvc3NpYmxlIHRvIGRlZmluZSBhIHRyYW5zcGFyZW50IGl0ZW0gdGhhdCBkb2Vzbid0IGNvbnRhaW4gaXRzZWxmLgotIEFkZGVkIGEgImNvbnRhaW5lZGluIiBhcmd1bWVudCB0byBzeW50YXggaXRlbXMuICBBbGxvd3MgYWRkaW5nIGEgY29udGFpbmVkCiAgaXRlbSB0byBhbiBleGlzdGluZyBpdGVtIChlLmcuLCB0byBoaWdobGlnaHQgYSBuYW1lIGluIGEgY29tbWVudCkuCgpNb2RlbGVzcyBzZWxlY3Rpb246Ci0gV2hlbiBpbiB0aGUgY29tbWFuZC1saW5lIHdpbmRvdywgdXNlIG1vZGVsZXNzIHNlbGVjdGlvbiBpbiB0aGUgb3RoZXIKICB3aW5kb3dzLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gY29weSB2aXNpYmxlIHRleHQgdG8gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cuCi0gU3VwcG9ydCBtb2RlbGVzcyBzZWxlY3Rpb24gb24gdGhlIGNtZGxpbmUgaW4gYSB0ZXJtaW5hbC4gIFByZXZpb3VzbHkgaXQgd2FzCiAgb25seSBwb3NzaWJsZSBmb3IgdGhlIEdVSS4KLSBNYWtlIGRvdWJsZS1yaWdodC1jbGljayBpbiBtb2RlbGVzcyBzZWxlY3Rpb24gc2VsZWN0IGEgd2hvbGUgd29yZC4gIFNpbmdsZQogIHJpZ2h0IGNsaWNrIGRvZXNuJ3QgdXNlIHRoZSB3b3JkIHNlbGVjdGlvbiBzdGFydGVkIGJ5IGEgZG91YmxlLWxlZnQtY2xpY2suCiAgTWFrZXMgaXQgd29yayBsaWtlIGluIFZpc3VhbCBtb2RlLgotIFRoZSBtb2RlbGVzcyBzZWxlY3Rpb24gbm8gbG9uZ2VyIGhhcyBhbiBpbXBsaWVkIGF1dG9tYXRpYyBjb3B5IHRvIHRoZQogIGNsaXBib2FyZC4gIEl0IG5vdyBvYmV5cyB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgaW4gJ2d1aW9wdGlvbnMnIG9yCiAgImF1dG9zZWxlY3QiIGFuZCAiYXV0b3NlbGVjdG1sIiBpbiAnY2xpcGJvYXJkJy4KLSBBZGRlZCB0aGUgQ1RSTC1ZIGNvbW1hbmQgaW4gQ21kbGluZS1tb2RlIHRvIGNvcHkgdGhlIG1vZGVsZXNzIHNlbGVjdGlvbiB0bwogIHRoZSBjbGlwYm9hcmQuICBBbHNvIHdvcmtzIGF0IHRoZSBoaXQtZW50ZXIgcHJvbXB0IGFuZCB0aGUgbW9yZSBwcm9tcHQuCiAgUmVtb3ZlZCB0aGUgbWFwcGluZ3MgaW4gcnVudGltZS9tc3dpbi52aW0gZm9yIENUUkwtWSBhbmQgQ1RSTC1aIGluCiAgY21kbGluZS1tb2RlIHRvIGJlIGFibGUgdG8gdXNlIENUUkwtWSBpbiB0aGUgbmV3IHdheS4KClJlZHVjZWQgdGhlIGFtb3VudCBvZiBzdGFjayBzcGFjZSB1c2VkIGJ5IHJlZ21hdGNoKCkgdG8gYWxsb3cgaXQgdG8gaGFuZGxlCmNvbXBsaWNhdGVkIHBhdHRlcm5zIG9uIGEgbG9uZ2VyIHRleHQuCgonaXNmbmFtZScgbm93IGluY2x1ZGVzICclJyBhbmQgJyMnLiAgTWFrZXMgInZpbSBkaXJcI2ZpbGUiIHdvcmsgZm9yIE1TLURPUy4KCkFkZGVkIGtleXBhZCBzcGVjaWFsIGtleXMgPGtFbnRlcj4sIDxrMD4gLSA8azk+LiAgV2hlbiBub3QgbWFwcGVkIHRoZXkgYmVoYXZlCmxpa2UgdGhlIEFTQ0lJIGVxdWl2YWxlbnQuIChJdmFuIFdlbGxlc3ogYW5kIFZpbmNlIE5lZ3JpKQpSZWNvZ25pemUgYSBmZXcgbW9yZSB4dGVybSBrZXlzOiA8Qy1SaWdodD4sIDxDLUxlZnQ+LCA8Qy1FbmQ+LCA8Qy1Ib21lPgoKQWxzbyB0cmlnZ2VyIHRoZSBCdWZVbmxvYWQgZXZlbnQgd2hlbiBWaW0gaXMgZ29pbmcgdG8gZXhpdC4gIFBlcmhhcHMgYSBzY3JpcHQKbmVlZHMgdG8gZG8gc29tZSBjbGVhbmluZyB1cC4KCkV4cGFuZCBleHByZXNzaW9uIGluIGJhY2t0aWNrczogYD17ZXhwcn1gLiAgQ2FuIGJlIHVzZWQgd2hlcmUgYmFja3RpY2sKZXhwYW5zaW9uIGlzIGRvbmUuIChWaW5jZSBOZWdyaSkKCkdVSToKLSBBZGRlZCAnTCcgYW5kICdSJyBmbGFncyBpbiAnZ3Vpb3B0aW9ucyc6IEFkZCBhIGxlZnQgb3IgcmlnaHQgc2Nyb2xsYmFyIG9ubHkKICB3aGVuIHRoZXJlIGlzIGEgdmVydGljYWxseSBzcGxpdCB3aW5kb3cuCi0gWDExOiBXaGVuIGEgY29sb3IgY2FuJ3QgYmUgYWxsb2NhdGVkLCB1c2UgdGhlIG5lYXJlc3QgbWF0Y2ggZnJvbSB0aGUKICBjb2xvcm1hcC4gIFRoaXMgYXZvaWRzIHRoYXQgYmxhY2sgaXMgdXNlZCBmb3IgbWFueSB0aGluZ3MuIChNb25pc2ggU2hhaCkKICBBbHNvIGRvIHRoaXMgZm9yIHRoZSBtZW51IGFuZCBzY3JvbGxiYXIsIHRvIGF2b2lkIHRoYXQgdGhleSBiZWNvbWUgYmxhY2suCi0gV2luMzIgYW5kIFgxMTogQWRkZWQgJ21vdXNlc2hhcGUnIG9wdGlvbjogQWRqdXN0IHRoZSBtb3VzZSBwb2ludGVyIHNoYXBlIHRvCiAgdGhlIGN1cnJlbnQgbW9kZS4gKFZpbmNlIE5lZ3JpKQotIEFkZGVkIHRoZSAnbGluZXNwYWNlJyBvcHRpb246IEluc2VydCBhIHBpeGVsIGxpbmUgYmV0d2VlbiBsaW5lcy4gKE5hbSkKLSBBbGxvdyBtb2RlbGVzcyBzZWxlY3Rpb24gKHdpdGhvdXQgbW92aW5nIHRoZSBjdXJzb3IpIGJ5IGtlZXBpbmcgQ1RSTCBhbmQKICBTSElGVCBwcmVzc2VkLiAoSXZhbiBXZWxsZXN6KQotIE1vdGlmOiBhZGRlZCB0b29sYmFyLiAoR29yZG9uIFByaWV1cikgIEFsc28gYWRkZWQgdG9vbHRpcHMuCi0gQXRoZW5hOiBhZGRlZCB0b29sYmFyIGFuZCB0b29sdGlwcy4gKERhdmlkIEhhcnJpc29uIC0tIGJhc2VkIG9uIEdvcmRvbgogIFByaWV1cidzIHdvcmspCi0gTWFkZSB0aGUgJ3Rvb2xiYXInIG9wdGlvbiB3b3JrIGZvciBBdGhlbmEgYW5kIE1vdGlmLiAgQ2FuIG5vdyBzd2l0Y2ggYmV0d2VlbgogIHRleHQgYW5kIGljb25zIG9uIHRoZSBmbHkuICAoRGF2aWQgSGFycmlzb24pCi0gU3VwcG9ydCBtZW51IHNlcGFyYXRvciBsaW5lcyBmb3IgQXRoZW5hLiAgKERhdmlkIEhhcnJpc29uKQotIEF0aGVuYTogQWRqdXN0IHRoZSBhcnJvdyBwaXhtYXAgdXNlZCBpbiBhIHB1bGxyaWdodCBtZW51IHRvIHRoZSBzaXplIG9mIHRoZQogIGZvbnQuIChEYXZpZCBIYXJyaXNvbikKLSBXaW4zMjogQWRkZWQgImMiIGZsYWcgdG8gJ2d1aWZvbnQnIHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGUgY2hhcnNldC4gKEFydGVtCiAgS2hvZHVzaCkKLSBXaGVuIG5vIC0tZW5hYmxlLXhpbSBhcmd1bWVudCBpcyBnaXZlbiwgYXV0b21hdGljYWxseSBlbmFibGUgaXQgd2hlbiBhIFggR1VJCiAgaXMgdXNlZC4gIFJlcXVpcmVkIGZvciBkZWFkIGtleSBzdXBwb3J0IChhbmQgbXVsdGktYnl0ZSBpbnB1dCkuCi0gQWZ0ZXIgYSBmaWxlIHNlbGVjdGlvbiBkaWFsb2csIGNoZWNrIHRoYXQgdGhlIGVkaXRlZCBmaWxlcyB3ZXJlIG5vdCBjaGFuZ2VkCiAgb3IgZGVsZXRlZC4gIFRoZSBXaW4zMiBkaWFsb2cgYWxsb3dzIGRlbGV0aW5nIGFuZCByZW5hbWluZyBmaWxlcy4KLSBNb3RpZiBhbmQgQXRoZW5hOiBBZGRlZCBzdXBwb3J0IGZvciAiZWRpdHJlcyIuIChNYXJjaW4gRGFsZWNraSkKLSBNb3RpZiBhbmQgQXRoZW5hOiBBZGRlZCAibWVudUZvbnQiIHRvIGJlIGFibGUgdG8gc3BlY2lmeSBhIGZvbnQgb3IgZm9udHNldAogIGZvciB0aGUgbWVudXMuICBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgIk1lbnUiIGhpZ2hsaWdodCBncm91cC4gIFVzZWZ1bAogIHdoZW4gdGhlIGxvY2FsZSBpcyBkaWZmZXJlbnQgZnJvbSAnZW5jb2RpbmcnLiAoRGF2aWQgSGFycmlzb24pCiAgV2hlbiBGT05UU0VUX0FMV0FZUyBpcyBkZWZpbmVkLCBhbHdheXMgdXNlIGEgZm9udHNldCBmb3IgdGhlIG1lbnVzLiAgU2hvdWxkCiAgYXZvaWQgdHJvdWJsZSB3aXRoIGNoYW5naW5nIGZyb20gYSBmb250IHRvIGEgZm9udHNldC4gIChEYXZpZCBIYXJyaXNvbikKLSBIaWdobGlnaHRpbmcgYW5kIGZvbnQgZm9yIHRoZSB0b29sdGlwcyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlICJUb29sdGlwIgogIGhpZ2hsaWdodCBncm91cC4gKERhdmlkIEhhcnJpc29uKQotIFRoZSBDbWRsaW5lLW1vZGUgbWVudXMgY2FuIGJlIHVzZWQgYXQgdGhlIG1vcmUtcHJvbXB0LiAgVGhpcyBtb3N0bHkgd29ya3MKICBmaW5lLCBiZWNhdXNlIHRoZXkgc3RhcnQgd2l0aCBhIENUUkwtQy4gIFRoZSAiQ29weSIgbWVudSB3b3JrcyB0byBjb3B5IHRoZQogIG1vZGVsZXNzIHNlbGVjdGlvbi4gIEFsbG93cyBjb3B5aW5nIHRoZSBvdXRwdXQgb2YgIjpzZXQgYWxsIiBvciAiOmludHJvIgogIHdpdGhvdXQgYXV0by1zZWxlY3Rpb24uCi0gV2hlbiBzdGFydGluZyB0aGUgR1VJIHdoZW4gdGhlcmUgaXMgbm8gdGVybWluYWwgY29ubmVjdGVkIHRvIHN0ZG91dCBhbmQKICBzdGRlcnIsIGRpc3BsYXkgZXJyb3IgbWVzc2FnZXMgaW4gYSBkaWFsb2cuICBQcmV2aW91c2x5IHRoZXkgd291bGRuJ3QgYmUKICBkaXNwbGF5ZWQgYXQgYWxsLgotIEFsbG93IHNldHRpbmcgJ2Jyb3dzZWRpcicgdG8gdGhlIG5hbWUgb2YgYSBkaXJlY3RvcnksIHRvIGJlIHVzZWQgZm9yIHRoZQogIGZpbGUgZGlhbG9nLiAoRGFuIFNoYXJwKQotIGI6YnJvd3NlZmlsdGVyIGFuZCBnOmJyb3dzZWZpbHRlciBjYW4gYmUgc2V0IHRvIHRoZSBmaWx0ZXJzIHVzZWQgZm9yIHRoZQogIGZpbGUgZGlhbG9nLiAgU3VwcG9ydGVkIGZvciBXaW4zMiBhbmQgTW90aWYgR1VJLiAoRGFuIFNoYXJwKQoKWDExOgotIFN1cHBvcnQgZm9yIHRoZSBjbGlwYm9hcmQgc2VsZWN0aW9uIGFzIHJlZ2lzdGVyICIrLiAgV2hlbiBleGl0aW5nIG9yCiAgc3VzcGVuZGluZyBjb3B5IHRoZSBzZWxlY3Rpb24gdG8gY3V0IGJ1ZmZlciAwLiAgU2hvdWxkIGFsbG93IGNvcHkvcGFzdGUgd2l0aAogIG1vcmUgYXBwbGljYXRpb25zIGluIGEgWDExLXN0YW5kYXJkIHdheS4gIChOZWlsIEJpcmQpCi0gVXNlIHRoZSBYIGNsaXBib2FyZCBpbiBhbnkgdGVybWluYWwsIG5vdCBqdXN0IGluIGFuIHh0ZXJtLgogIEFkZGVkICJleGNsdWRlOiIgaW4gJ2NsaXBib2FyZCc6IFNwZWNpZnkgYSBwYXR0ZXJuIHRvIG1hdGNoIGFnYWluc3QgdGVybWluYWwKICBuYW1lcyBmb3Igd2hpY2ggbm8gY29ubmVjdGlvbiBzaG91bGQgYmUgbWFkZSB0byB0aGUgWCBzZXJ2ZXIuICBUaGUgZGVmYXVsdAogIGN1cnJlbnRseSB3b3JrIGZvciBGcmVlQlNEIGFuZCBMaW51eCBjb25zb2xlcy4KLSBBZGRlZCBhIGZldyBtZXNzYWdlcyBmb3Igd2hlbiAndmVyYm9zZScgaXMgbm9uLXplcm8gdG8gc2hvdyB3aGF0IGhhcHBlbnMKICB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIHRoZSBYIHNlcnZlci4gIFNob3VsZCBoZWxwIHdoZW4gdHJ5aW5nIHRvIGZpbmQgb3V0CiAgd2h5IHN0YXJ0dXAgaXMgc2xvdy4KCkdUSyBHVUk6IChwYXJ0bHkgYnkgTWFyY2luIERhbGVja2kpCi0gV2l0aCBzb21lIGZvbnRzIHRoZSBjaGFyYWN0ZXJzIGNhbiBiZSB0YWxsZXIgdGhhbiBhc2NlbnQgKyBkZXNjZW50LiAgRS5nLiwKICAiLW1pc2MtZml4ZWQtKi0qLSotKi0xOC0qLSotKi0qLSotaXNvMTA2NDYtMSIuICBBZGQgb25lIHRvIHRoZSBjaGFyYWN0ZXIKICBjZWxsIGhlaWdodC4KLSBJbXBsZW1lbnQgIm5vIiB2YWx1ZSBmb3IgJ3dpbmFsdGtleXMnOiBkb24ndCB1c2UgQWx0LUtleSBhcyBhIG1lbnUgc2hvcnRjdXQsCiAgd2hlbiAnd2FrJyBjaGFuZ2VkIGFmdGVyIGNyZWF0aW5nIHRoZSBtZW51cy4KLSBTZXR0aW5nICd3YWsnIGFmdGVyIHRoZSBHVUkgc3RhcnRlZCB3b3Jrcy4KLSByZWN5Y2xlIHRleHQgR0MncyB0byByZWR1Y2UgY29tbXVuaWNhdGlvbi4KLSBBZGp1c3QgaWNvbiBzaXplIHRvIHdpbmRvdyBtYW5hZ2VyLgotIENsZWFudXAgaW4gZm9udCBoYW5kbGluZy4KLSBSZXBsYWNlIFhRdWVyeUNvbG9yIHdpdGggR0RLIGNhbGxzLgotIEdub21lIHN1cHBvcnQuICBEZXRlY3RzIEdub21lIGluIGNvbmZpZ3VyZSBhbmQgdXNlcyBkaWZmZXJlbnQgd2lkZ2V0cy4KICBPdGhlcndpc2UgaXQncyBtdWNoIGxpa2UgR1RLLiAoQW5keSBLYWhuKQogIEl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGJlY2F1c2UgaXQgY2F1c2VzIGEgZmV3IHByb2JsZW1zLgotIFJlbW92ZWQgdGhlIHNwZWNpYWwgY29kZSB0byBmb3JrIGZpcnN0IGFuZCB0aGVuIHN0YXJ0IHRoZSBHVUkuICBOb3cgdXNlCiAgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSwgdGhpcyB3b3JrcyBmaW5lIHdpdGhvdXQgc3BlY2lhbCB0cmlja3MuCi0gRGlhbG9ncyBzb21ldGltZXMgYXBwZWFyZWQgYSBiaXQgZmFyIGF3YXkuICBQb3NpdGlvbiB0aGUgZGlhbG9ncyBpbnNpZGUKICB0aGUgZ3ZpbSB3aW5kb3cuIChCcmVudCBWZXJuZXIpCi0gV2hlbiBkcm9wcGluZyBhIGZpbGUgb24gVmltLCByZW1vdmUgZXh0cmEgc2xhc2hlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUKICBwYXRoLiAgQWxzbyBzaG9ydGVuIHRoZSBmaWxlIG5hbWUgaWYgcG9zc2libGUuCgpNb3RpZjogKE1hcmNpbiBEYWxlY2tpKQotIE1hZGUgdGhlIGRpYWxvZyBsYXlvdXQgYmV0dGVyLgotIEFkZGVkIGZpbmQgYW5kIGZpbmQvcmVwbGFjZSBkaWFsb2dzLgotIEZvciB0aGUgbWVudXMsIGNoYW5nZSAiaXNvLTg4NTkiIHRvICJpc29fODg1OSIsIExpbnV4IGFwcGVhcnMgdG8gbmVlZCB0aGlzLgotIEFkZGVkIGljb24gdG8gZGlhbG9ncywgbGlrZSBmb3IgR1RLLgotIFVzZSBYUE0gYml0bWFwcyBmb3IgdGhlIGljb24gd2hlbiBwb3NzaWJsZS4gIFVzZSB0aGUgU29sYXJpcyBYcG1QLmggaW5jbHVkZQogIGZpbGUgd2hlbiBpdCdzIGF2YWlsYWJsZS4KLSBDaGFuZ2UgdGhlIHNoYWRvdyBvZiB0aGUgdG9vbGJhciBpdGVtcyB0byBnZXQgYSB2aXN1YWwgZmVlZGJhY2sgb2YgaXQgYmVpbmcKICBwcmVzc2VkIG9uIG5vbi1MZXNzVGlmLgotIFVzZSBnYWRnZXRzIGluc3RlYWQgb2Ygd2luZG93cyBmb3Igc29tZSBpdGVtcyBmb3Igc3BlZWQuCgpDb21tYW5kIGxpbmUgY29tcGxldGlvbjoKLSBDb21wbGV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lcy4gKE1pa2UgU3RlZWQpCi0gRm9yICI6Y29tbWFuZCIsIGFkZGVkIGEgZmV3IGNvbXBsZXRpb24gbWV0aG9kczogIm1hcHBpbmciLCAiZnVuY3Rpb24iLAogICJleHByZXNzaW9uIiBhbmQgImVudmlyb25tZW50Ii4KLSBXaGVuIGEgZnVuY3Rpb24gZG9lc24ndCB0YWtlIGFyZ3VtZW50cywgbGV0IGNvbXBsZXRpb24gYWRkICgpIGluc3RlYWQgb2YgKC4KCkZvciBNUy1ET1MsIE1TLVdpbmRvd3MgYW5kIE9TLzI6IEV4cGFuZCAlVkFSJSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbGlrZSAkVkFSLgooV2FsdGVyIEJyaXNjb2UpCgpSZWRpcmVjdCBtZXNzYWdlcyB0byB0aGUgY2xpcGJvYXJkICI6cmVkaXIgQCoiIGFuZCB0byB0aGUgdW5uYW1lZCByZWdpc3RlcgoiOnJlZGlyIEAiIi4gKFdhbGwpCgoiOmxldCBALyA9ICcnIiBjbGVhcnMgdGhlIHNlYXJjaCBwYXR0ZXJuLCBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgdG8gYW4gZW1wdHkKc3RyaW5nLgoKRXhwcmVzc2lvbiBldmFsdWF0aW9uOgotICI/IDoiIGNhbiBiZSB1c2VkIGxpa2UgaW4gQy4KLSBjb2woIiQiKSByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGN1cnNvciBsaW5lIHBsdXMgb25lLiAoU3RlcGhlbiBQLiBXYWxsKQotIE9wdGlvbmFsIGV4dHJhIGFyZ3VtZW50IGZvciBtYXRjaCgpLCBtYXRjaGVuZCgpIGFuZCBtYXRjaHN0cigpOiBPZmZzZXQgdG8KICBzdGFydCBsb29raW5nIGZvciBhIG1hdGNoLgotIE1hZGUgdGhpcmQgYXJndW1lbnQgdG8gc3RycGFydCgpIG9wdGlvbmFsLiAgKFBhdWwgTW9vcmUsIFpkZW5layBTZWtlcmEpCi0gZXhpc3RzKCkgY2FuIGFsc28gYmUgdXNlZCB0byBjaGVjayBmb3IgRXggY29tbWFuZHMgYW5kIGRlZmluZWQgYXV0b2NvbW1hbmRzLgotIEFkZGVkIGV4dHJhIGFyZ3VtZW50IHRvIGlucHV0KCk6IERlZmF1bHQgdGV4dC4KLSBBbHNvIHNldCAidjplcnJtc2ciIHdoZW4gdXNpbmcgIjpzaWxlbnQhIGNtZCIuCi0gQWRkZWQgdGhlIHY6cHJldmNvdW50IHZhcmlhYmxlOiB2OmNvdW50IGZvciB0aGUgcHJldmlvdXMgY29tbWFuZC4KLSBBZGRlZCAidjpwcm9nbmFtZSIsIG5hbWUgd2l0aCB3aGljaCBWaW0gd2FzIHN0YXJ0ZWQuIChWaW5jZSBOZWdyaSkKLSBJbiB0aGUgdmVyYm9zZSBtZXNzYWdlIGFib3V0IHJldHVybmluZyBmcm9tIGEgZnVuY3Rpb24sIGFsc28gc2hvdyB0aGUgcmV0dXJuCiAgdmFsdWUuCgpDc2NvcGU6Ci0gQWRkZWQgdGhlIGNzY29wZV9jb25uZWN0aW9uKCkgZnVuY3Rpb24uIChBbmR5IEthaG4pCi0gIjpjc2NvcGUga2lsbCAtMSIga2lsbHMgYWxsIGNzY29wZSBjb25uZWN0aW9ucy4gKEFuZHkgS2FobikKLSBBZGRlZCB0aGUgJ2NzY29wZXBhdGhjb21wJyBvcHRpb24uIChTY290dCBIYXVjaykKLSBBZGRlZCAiOnNjc2NvcGUiIGNvbW1hbmQsIHNwbGl0IHdpbmRvdyBhbmQgZXhlY3V0ZSBDc2NvcGUgY29tbWFuZC4gKEphc29uCiAgRHVlbGwpCgpWTVM6Ci0gQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBhcmUgYWx3YXlzIHVwcGVyY2FzZS4gIEludGVycHJldCBhICItWCIgYXJndW1lbnQgYXMKICAiLXgiIGFuZCAiLS9YIiBhcyAiLVgiLgotIFNldCAnbWFrZXByZycgYW5kICdncmVwcHJnJyB0byBtZWFuaW5nZnVsIGRlZmF1bHRzLiAoWm9sdGFuIEFycGFkZmZ5KQotIFVzZSB0aGUgWC1jbGlwYm9hcmQgZmVhdHVyZSBhbmQgdGhlIFggY29tbWFuZCBzZXJ2ZXIuIChab2x0YW4gQXJwYWRmZnkpCgpNYWNpbnRvc2g6IChEYW55IFN0LUFtYW50KQotIEFsbG93IGEgdGFncyBmaWxlIHRvIGhhdmUgQ1IsIENSLUxGIG9yIExGIGxpbmUgc2VwYXJhdG9yLiAoQXhlbCBLaWVsaG9ybikKLSBDYXJib25pemVkICh3aGlsZSBrZWVwaW5nIG5vbiBDYXJib24gY29kZSkKICAoU29tZSB3b3JrICJzdG9sZW4iIGZyb20gQW1tb24gU2tpZG1vcmUpCi0gSW1wcm92ZWQgdGhlIG1lbnUgaXRlbSBpbmRleCBoYW5kbGluZyAoc2hvdWxkIGJlIGZhc3RlcikKLSBSdW50aW1lIGNvbW1hbmRzIG5vdyBoYW5kbGUgLyBpbiBmaWxlIG5hbWUgKE1hY09TIDkgdmVyc2lvbikKLSBBZGRlZCAiOndpbnBvcyIgc3VwcG9ydC4KLSBTdXBwb3J0IHVzaW5nICJ+IiBpbiBmaWxlIG5hbWVzIGZvciBob21lIGRpcmVjdG9yeS4KCk9wdGlvbnM6Ci0gV2hlbiB1c2luZyBzZXQgKz0gb3IgXj0gLCBjaGVjayBmb3IgaXRlbXMgdXNlZCB0d2ljZS4gIER1cGxpY2F0ZXMgYXJlCiAgcmVtb3ZlZC4gIChWaW5jZSBOZWdyaSkKLSBXaGVuIHNldHRpbmcgYW4gb3B0aW9uIHRoYXQgaXMgYSBsaXN0IG9mIGZsYWdzLCByZW1vdmUgZHVwbGljYXRlIGZsYWdzLgotIElmIHBvc3NpYmxlLCB1c2UgZ2V0cmxpbWl0KCkgdG8gc2V0ICdtYXhtZW10b3QnIGFuZCAnbWF4bWVtJy4gKFBpbmEpCi0gQWRkZWQgImFscGhhIiB0byAnbnJmb3JtYXRzJzogaW5jcmVtZW50IG9yIGRlY3JlbWVudCBhbiBhbHBoYWJldGljIGNoYXJhY3RlcgogIHdpdGggQ1RSTC1BIGFuZCBDVFJMLVguCi0gIjpzZXQgb3B0JnZpIiBzZXRzIGFuIG9wdGlvbiB0byBpdHMgVmkgZGVmYXVsdCwgIjpzZXQgb3B0JnZpbSIgdG8gaXRzIFZpbQogIGRlZmF1bHQuICBVc2VmdWwgdG8gc2V0ICdjcG8nIHRvIGl0cyBWaW0gZGVmYXVsdCB3aXRob3V0IGtub3dpbmcgd2hhdCBmbGFncwogIHRoYXQgaW5jbHVkZXMuCi0gJ3Njcm9sbG9mZicgbm93IGFsc28gYXBwbGllcyB0byBhIGxvbmcsIHdyYXBwZWQgbGluZSB0aGF0IGRvZXNuJ3QgZml0IGluIHRoZQogIHdpbmRvdy4KLSBBZGRlZCBtb3JlIG9wdGlvbiBzZXR0aW5ncyB0byB0aGUgZGVmYXVsdCBtZW51cy4KLSBVcGRhdGVkIHRoZSBvcHRpb24gd2luZG93IHdpdGggbmV3IG9wdGlvbnMuICBNYWRlIGl0IGEgYml0IGVhc2llciB0byByZWFkLgoKSW50ZXJuYWwgY2hhbmdlczoKLSBTcGxpdCBsaW5lIHBvaW50ZXJzIGluIHRleHQgcGFydCBhbmQgYXR0cmlidXRlcyBwYXJ0LiAgQWxsb3dzIGZvciBmdXR1cmUKICBjaGFuZ2UgdG8gbWFrZSBhdHRyaWJ1dGUgbW9yZSB0aGFuIG9uZSBieXRlLgotIFByb3ZpZGUgYSBxc29ydCgpIGZ1bmN0aW9uIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBpdC4KLSBDaGFuZ2VkIHRoZSBiaWcgc3dpdGNoIGZvciBOb3JtYWwgbW9kZSBjb21tYW5kcyBpbnRvIGEgdGFibGUuICBUaGlzIGNsZWFucwogIHVwIHRoZSBjb2RlIGNvbnNpZGVyYWJseSBhbmQgYXZvaWRzIHRyb3VibGUgZm9yIHNvbWUgb3B0aW1pemluZyBjb21waWxlcnMuCi0gQXNzaWduZWQgYSBuZWdhdGl2ZSB2YWx1ZSB0byBzcGVjaWFsIGtleXMsIHRvIGF2b2lkIHRoZW0gYmVpbmcgbWl4ZWQgdXAgd2l0aAogIFVuaWNvZGUgY2hhcmFjdGVycy4KLSBHbG9iYWwgdmFyaWFibGVzIGV4cGFuZF9jb250ZXh0IGFuZCBleHBhbmRfcGF0dGVybiB3ZXJlIG5vdCBzdXBwb3NlZCB0byBiZQogIGdsb2JhbC4gIFBhc3MgdGhlbSB0byBFeHBhbmRPbmUoKSBhbmQgYWxsIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQuCi0gTm8gbG9uZ2VyIHVzZSB0aGUgZ2xvYmFsIHJlZ19pYyBmbGFnLiAgSXQgY2F1c2VkIHRyb3VibGUgYW5kIGluIGEgZmV3IHBsYWNlcwogIGl0IHdhcyBub3Qgc2V0LgotIFJlbW92ZWQgdGhlIHVzZSBvZiB0aGUgc3R1ZmYgYnVmZmVyIGZvciAiKiIsICJLIiwgQ1RSTC1dLCBldGMuICBBdm9pZHMKICBwcm9ibGVtIHdpdGggYXV0b2NvbW1hbmRzLgotIE1vdmVkIHNvbWUgY29kZSBmcm9tIGV4X2RvY21kLmMgdG8gZXhfY21kczIuYy4gIFRoZSBmaWxlIHdhcyBnZXR0aW5nIHRvbwogIGJpZy4gIEFsc28gbW92ZWQgc29tZSBjb2RlIGZyb20gc2NyZWVuLmMgdG8gbW92ZS5jLgotIERvbid0IGluY2x1ZGUgdGhlIENSQyB0YWJsZSBmb3IgZW5jcnlwdGlvbiwgZ2VuZXJhdGUgaXQuICBTYXZlcyBxdWl0ZSBhIGJpdAogIG9mIHNwYWNlIGluIHRoZSBzb3VyY2UgY29kZS4gKE1hdHRoaWFzIEtyYW1tKQotIFJlbmFtZWQgbXVsdGlieXRlLmMgdG8gbWJ5dGUuYyB0byBhdm9pZCBhIHByb2JsZW0gd2l0aCA4LjMgZmlsZXN5c3RlbXMuCi0gUmVtb3ZlZCB0aGUgR1RLIGltcGxlbWVudGF0aW9uIG9mICI6ZmluZGhlbHAiLCBpdCBub3cgdXNlcyB0aGUKICBUb29sQmFyLkZpbmRIZWxwICBtZW51IGVudHJ5LgotIFJlbmFtZWQgbWNoX3dpbmRleGl0KCkgdG8gbWNoX2V4aXQoKSwgbWNoX2luaXQoKSB0byBtY2hfZWFybHlfaW5pdCgpIGFuZAogIG1jaF9zaGVsbGluaXQoKSB0byBtY2hfaW5pdCgpLgoKSGlnaGxpZ2h0aW5nOgotIEluIGEgIjpoaWdobGlnaHQiIGxpc3RpbmcsIHNob3cgInh4eCIgd2l0aCB0aGUgaGlnaGxpZ2h0IGNvbG9yLgotIEFkZGVkIHN1cHBvcnQgZm9yIHh0ZXJtIHdpdGggODggb3IgMjU2IGNvbG9ycy4gIFRoZSByaWdodCBjb2xvciBudW1iZXJzIHdpbGwKICBiZSB1c2VkIGZvciB0aGUgbmFtZSB1c2VkIGluIGEgIjpoaWdobGlnaHQiIGNvbW1hbmQuIChTdGV2ZSBXYWxsKQotIEFkZGVkICJkZWZhdWx0IiBhcmd1bWVudCBmb3IgIjpoaWdobGlnaHQiLiAgV2hlbiBpbmNsdWRlZCwgdGhlIGNvbW1hbmQgaXMKICBpZ25vcmVkIGlmIGhpZ2hsaWdodGluZyBmb3IgdGhlIGdyb3VwIHdhcyBhbHJlYWR5IGRlZmluZWQuCiAgQWxsIHN5bnRheCBmaWxlcyBub3cgdXNlICI6aGkgZGVmYXVsdCAuLi4iIHRvIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkKICBjb2xvcnMgaW4gaGlzIHZpbXJjIGZpbGUuICBBbHNvLCB0aGUgImlmIGRpZF94eHhfc3ludGF4X2luaXRzIiBpcyBub3QgbmVlZGVkCiAgYW55bW9yZS4gIFRoaXMgZ3JlYXRseSBzaW1wbGlmaWVzIHVzaW5nIG5vbi1kZWZhdWx0IGNvbG9ycyBmb3IgYSBzcGVjaWZpYwogIGxhbmd1YWdlLgotIEFkanVzdGVkIGNvbG9ydGVzdC52aW06IEluY2x1ZGVkIGNvbG9ycyBvbiBub3JtYWwgYmFja2dyb3VuZCBhbmQgcmVkdWNlZCB0aGUKICBzaXplIGJ5IHVzaW5nIGEgd2hpbGUgbG9vcC4gKFJhZmFlbCBHYXJjaWEtU3VhcmV6KQotIEFkZGVkIHRoZSAiRGFya1llbGxvdyIgY29sb3IgbmFtZS4gIEp1c3QgdG8gbWFrZSB0aGUgbGlzdCBvZiBzdGFuZGFyZCBjb2xvcnMKICBjb25zaXN0ZW50LCBpdCdzIG5vdCByZWFsbHkgYSBuaWNlIGNvbG9yIHRvIHVzZS4KCldoZW4gYW4geHRlcm0gaXMgaW4gOC1iaXQgbW9kZSB0aGlzIGlzIGRldGVjdGVkIGJ5IHRoZSBjb2RlIHJldHVybmVkIGZvcgp8dF9SVnwuICBBbGwga2V5IGNvZGVzIGFyZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byB0aGVpciA4LWJpdCB2ZXJzaW9ucy4KClRoZSBPUFRfVENBUF9RVUVSWSBpbiB4dGVybSBwYXRjaCBsZXZlbCAxNDEgYW5kIGxhdGVyIGlzIHVzZWQgdG8gb2J0YWluIHRoZQphY3R1YWwga2V5IGNvZGVzIHVzZWQgYW5kIHRoZSBudW1iZXIgb2YgY29sb3JzIGZvciB0X0NvLiAgT25seSB3aGVuIHx0X1JWfCBpcwphbHNvIHVzZWQuCgoiOmJyb3dzZSBzZXQiIG5vdyBhbHNvIHdvcmtzIGluIHRoZSBjb25zb2xlIG1vZGUuICAiOmJyb3dzZSBlZGl0IiB3aWxsIGdpdmUgYW4KZXJyb3IgbWVzc2FnZS4KCiI6YmRlbGV0ZSIgYW5kICI6YnVubG9hZCIgb25seSByZXBvcnQgdGhlIG51bWJlciBvZiBkZWxldGVkL3VubG9hZGVkIGJ1ZmZlcnMKd2hlbiBtb3JlIHRoYW4gJ3JlcG9ydCcuICBUaGUgbWVzc2FnZSB3YXMgYW5ub3lpbmcgd2hlbiBkZWxldGluZyBhIGJ1ZmZlciBpbiBhCnNjcmlwdC4KCkp1bXAgbGlzdDoKLSBUaGUgbnVtYmVyIG9mIG1hcmtzIGtlcHQgaW4gdGhlIGp1bXBsaXN0IGhhcyBiZWVuIGluY3JlYXNlZCBmcm9tIDUwIHRvIDEwMC4KLSBUaGUganVtcGxpc3QgaXMgbm93IHN0b3JlZCBpbiB0aGUgdmltaW5mbyBmaWxlLiAgQ1RSTC1PIGNhbiBiZSB1c2VkIHRvIGp1bXAKICB0byBwb3NpdGlvbnMgZnJvbSBhIHByZXZpb3VzIGVkaXQgc2Vzc2lvbi4KLSBXaGVuIGRvaW5nICI6c3BsaXQiIGNvcHkgdGhlIGp1bXBsaXN0IHRvIHRoZSBuZXcgd2luZG93LgoKQWxzbyBzZXQgdGhlICdbIGFuZCAnXSBtYXJrcyBmb3IgdGhlICJ+IiBhbmQgInIiIGNvbW1hbmRzLiAgVGhlc2UgbWFya3MgYXJlCm5vdyBhbHdheXMgc2V0IHdoZW4gbWFraW5nIGEgY2hhbmdlIHdpdGggYSBOb3JtYWwgbW9kZSBjb21tYW5kLgoKUHl0aG9uIGludGVyZmFjZTogQWxsb3cgc2V0dGluZyB0aGUgd2lkdGggb2YgYSB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvdy4gKEpvaG4KQ29vaykKCkFkZGVkICI9d29yZCIgYW5kICI9fndvcmQiIHRvICdjaW5rZXlzJyAoYWxzbyB1c2VkIGluICdpbmRlbnRrZXlzJykuCgpBZGRlZCAiajEiIGFyZ3VtZW50IGluICdjaW5vcHRpb25zJzogaW5kZW50IHt9IGluc2lkZSAoKSBmb3IgSmF2YS4gKEpvaGFubmVzClplbGxuZXIpCkFkZGVkIHRoZSAibCIgZmxhZyBpbiAnY2lub3B0aW9ucycuIChBbmR1aW4gV2l0aGVycykKQWRkZWQgJ0MnLCAnVScsICd3JyBhbmQgJ20nIGZsYWdzIHRvICdjaW5vcHRpb25zJy4gKFNlcnZhdGl1cyBCcmFuZHQpCgpXaGVuIGRvaW5nICI6d2FsbCIgb3IgIjp3cWFsbCIgYW5kIGEgbW9kaWZpZWQgYnVmZmVyIGRvZXNuJ3QgaGF2ZSBhIG5hbWUsCm1lbnRpb24gaXRzIGJ1ZmZlciBudW1iZXIgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCgoiOmZ1bmN0aW9uIE5hbWUiIGxpc3RzIHRoZSBmdW5jdGlvbiB3aXRoIGxpbmUgbnVtYmVycy4gIE1ha2VzIGl0IGVhc2llciB0bwpmaW5kIG91dCB3aGVyZSBhbiBlcnJvciBoYXBwZW5lZC4KCkluIG5vbi1ibG9ja3dpc2UgVmlzdWFsIG1vZGUsICJyIiByZXBsYWNlcyBhbGwgc2VsZWN0ZWQgY2hhcmFjdGVycyB3aXRoIHRoZQp0eXBlZCBvbmUsIGxpa2UgaW4gYmxvY2t3aXNlIFZpc3VhbCBtb2RlLgoKV2hlbiBlZGl0aW5nIHRoZSBsYXN0IGZpbGUgaW4gdGhlIGFyZ3VtZW50IGxpc3QgaW4gYW55IHdheSwgYWxsb3cgZXhpdGluZy4KUHJldmlvdXNseSB0aGlzIHdhcyBvbmx5IHBvc3NpYmxlIHdoZW4gZ2V0dGluZyB0byB0aGF0IGZpbGUgd2l0aCAiOm5leHQiIG9yCiI6bGFzdCIuCgpBZGRlZCB0aGUgJzEnIGZsYWcgdG8gJ2Zvcm1hdG9wdGlvbnMnLiAoVml0IFN0cmFkYWwpCkFkZGVkICduJyBmbGFnIGluICdmb3JtYXRvcHRpb25zJzogZm9ybWF0IGEgbnVtYmVyZWQgbGlzdC4KClN3YXAgZmlsZToKLSBXaGVuIGEgc3dhcCBmaWxlIGFscmVhZHkgZXhpc3RzLCBhbmQgdGhlIHVzZXIgc2VsZWN0cyAiRGVsZXRlIiBhdCB0aGUKICBBVFRFTlRJT04gcHJvbXB0LCB1c2UgdGhlIHNhbWUgIi5zd3AiIHN3YXBmaWxlLCB0byBhdm9pZCBjcmVhdGluZyBhICIuc3dvIgogIGZpbGUgd2hpY2ggd29uJ3QgYWx3YXlzIGJlIGZvdW5kLgotIFdoZW4gZ2l2aW5nIHRoZSBBVFRFTlRJT04gbWVzc2FnZSBhbmQgdGhlIGRhdGUgb2YgdGhlIGZpbGUgaXMgbmV3ZXIgdGhhbiB0aGUKICBkYXRlIG9mIHN3YXAgZmlsZSwgZ2l2ZSBhIHdhcm5pbmcgYWJvdXQgdGhpcy4KLSBNYWRlIHRoZSBpbmZvIGZvciBhbiBleGlzdGluZyBzd2FwIGZpbGUgYSBiaXQgc2hvcnRlciwgc28gdGhhdCBpdCBzdGlsbCBmaXRzCiAgb24gYSAyNCBsaW5lIHNjcmVlbi4KLSBJdCB3YXMgcG9zc2libGUgdG8gbWFrZSBhIHN5bWxpbmsgd2l0aCB0aGUgbmFtZSBvZiBhIHN3YXAgZmlsZSwgbGlua2luZyB0byBhCiAgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QuICBWaW0gd291bGQgdGhlbiBzaWxlbnRseSB1c2UgYW5vdGhlciBmaWxlIChpZiBvcGVuCiAgd2l0aCBPX0VYQ0wgcmVmdXNlcyBhIHN5bWxpbmspLiAgTm93IGNoZWNrIGZvciBhIHN5bWxpbmsgdG8gZXhpc3QuICBBbHNvIGRvCiAgYW5vdGhlciBjaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlIGp1c3QgYmVmb3JlIGNyZWF0aW5nIGl0IHRvIGNhdGNoIGEKICBzeW1saW5rIGF0dGFjay4KClRoZSBnIENUUkwtRyBjb21tYW5kIGFsc28gd29ya3MgaW4gVmlzdWFsIG1vZGUgYW5kIGNvdW50cyB0aGUgbnVtYmVyIG9mIHdvcmRzLgooQ2hhc2UgVGluZ2xleSkKCkdpdmUgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIHVzaW5nICdzaGVsbCcgYW5kIGl0J3MgZW1wdHkuCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSAiJXMiIGluICdzaGVsbHBpcGUnLgoKQWRkZWQgInVoZXgiIHZhbHVlIGZvciAnZGlzcGxheSc6IHNob3cgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGFzIDx4eD4uClNob3cgdW5wcmludGFibGUgY2hhcmFjdGVycyB3aXRoIE5vblRleHQgaGlnaGxpZ2h0aW5nLCBhbHNvIGluIHRoZSBjb21tYW5kCmxpbmUuCgpXaGVuIGFza2VkIHRvIGRpc3BsYXkgdGhlIHZhbHVlIG9mIGEgaGlkZGVuIG9wdGlvbiwgdGVsbCBpdCdzIG5vdCBzdXBwb3J0ZWQuCgpXaW4zMjoKLSBXaGVuIGRyb3BwaW5nIGEgc2hvcnRjdXQgb24gZ3ZpbSAoLmxuayBmaWxlKSBlZGl0IHRoZSB0YXJnZXQsIG5vdCB0aGUKICBzaG9ydGN1dCBpdHNlbGYuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQotIEFkZGVkIEMgdmVyc2lvbnMgb2YgdGhlIE9wZW5XaXRoVmltIGFuZCBTZW5kVG9WaW0gcHJvZ3JhbXMuIChXYWx0ZXIgQnJpc2NvZSkKLSBXaGVuICdzaGVsbCcgaXMgImNtZCIgb3IgImNtZC5leGUiLCBzZXQgJ3NoZWxscmVkaXInIHRvIHJlZGlyZWN0IHN0ZGVyciB0b28uCiAgQWxzbyBjaGVjayBmb3IgdGhlIFVuaXggc2hlbGwgbmFtZXMuCi0gV2hlbiAkSE9NRURSSVZFIGFuZCAkSE9NRVBBVEggYXJlIGRlZmluZWQsIHVzZSB0aGVtIHRvIGRlZmluZSAkSE9NRS4gIChDcmFpZwogIEJhcmtob3VzZSkKCldpbjMyIGNvbnNvbGUgdmVyc2lvbjoKLSBJbmNsdWRlcyB0aGUgdXNlciBhbmQgc3lzdGVtIG5hbWUgaW4gdGhlICI6dmVyc2lvbiIgbWVzc2FnZSwgd2hlbiBhdmFpbGFibGUuCiAgSXQgZ2VuZXJhdGVzIGEgcGF0aGRlZi5jIGZpbGUgZm9yIHRoaXMuICAoSm9uIE1pbmVyKQotIFNldCB0aGUgd2luZG93IGljb24gdG8gVmltJ3MgaWNvbiAob25seSBmb3IgV2luZG93cyAyMDAwKS4gIFdoaWxlIGV4ZWN1dGluZwogIGEgc2hlbGwgY29tbWFuZCwgbW9kaWZ5IHRoZSB3aW5kb3cgdGl0bGUgdG8gc2hvdyB0aGlzLiAgV2hlbiBleGl0aW5nLAogIHJlc3RvcmUgdGhlIGN1cnNvciBwb3NpdGlvbiB0b28uICAoQ3JhaWcgQmFya2hvdXNlKQotIFRoZSBXaW4zMiBjb25zb2xlIHZlcnNpb24gY2FuIGJlIGNvbXBpbGVkIHdpdGggT0xFIHN1cHBvcnQuICBJdCBjYW4gb25seQogIGZ1bmN0aW9uIGFzIGEgY2xpZW50LCBub3QgYXMgYW4gT0xFIHNlcnZlci4KCkVycm9yZm9ybWF0OgotIExldCAiJXAiIGluICdlcnJvcmZvcm1hdCcgKGNvbHVtbiBvZiBlcnJvciBpbmRpY2F0ZWQgYnkgYSByb3cgb2YgY2hhcmFjdGVycykKICBhbHNvIGFjY2VwdCBhIGxpbmUgb2YgZG90cy4KLSBBZGRlZCAiJXYiIGl0ZW0gaW4gJ2Vycm9yZm9ybWF0JzogVmlydHVhbCBjb2x1bW4gbnVtYmVyLiAoRGFuIFNoYXJwKQotIEFkZGVkIGEgZGVmYXVsdCAnZXJyb3Jmb3JtYXQnIHZhbHVlIGZvciBWTVMuIChKaW0gQnVzaCkKClRoZSAicCIgY29tbWFuZCBjYW4gbm93IGJlIHVzZWQgaW4gVmlzdWFsIG1vZGUuICBJdCBvdmVyd3JpdGVzIHRoZSBzZWxlY3RlZAp0ZXh0IHdpdGggdGhlIGNvbnRlbnRzIG9mIGEgcmVnaXN0ZXIuCgpIaWdobGlnaHQgdGhlIDw+IGl0ZW1zIGluIHRoZSBpbnRybyBtZXNzYWdlIHRvIG1ha2UgY2xlYXIgdGhleSBhcmUgc3BlY2lhbC4KCldoZW4gdXNpbmcgdGhlICJjIiBmbGFnIGZvciAiOnN1YnN0aXR1dGUiLCBhbGxvdyB0eXBpbmcgImwiIGZvciByZXBsYWNpbmcgdGhpcwppdGVtIGFuZCB0aGVuIHN0b3A6ICJsYXN0Ii4KCldoZW4gcHJpbnRpbmcgYSB2ZXJib3NlIG1lc3NhZ2UgYWJvdXQgc291cmNpbmcgYW5vdGhlciBmaWxlLCBwcmludCB0aGUgbGluZQpudW1iZXIuCgpXaGVuIHJlc2l6aW5nIHRoZSBWaW0gd2luZG93LCBkb24ndCB1c2UgJ2VxdWFsYWx3YXlzJy4gIEF2b2lkcyB0aGF0IG1ha2luZyB0aGUKVmltIHdpbmRvdyBzbWFsbGVyIG1ha2VzIHNwbGl0IHdpbmRvd3MgYmlnZ2VyLiAgQW5kIGl0J3Mgd2hhdCB0aGUgZG9jcyBzYXkuCgpXaGVuIHR5cGluZyBDVFJMLUQgaW4gSW5zZXJ0IG1vZGUsIGp1c3QgYWZ0ZXIgYW4gYXV0b2luZGVudCwgdGhlbiBoaXR0aW5nIENSCmtlcHQgdGhlIHJlbWFpbmluZyB3aGl0ZSBzcGFjZS4gIE5vdyBtYWRlIGl0IHdvcmsgbGlrZSBCUzogZGVsZXRlIHRoZQphdXRvaW5kZW50IHRvIGF2b2lkIGEgYmxhbmsgbm9uLWVtcHR5IGxpbmUgcmVzdWx0cy4KCkFkZGVkIGEgR2V0SHduZCgpIGNhbGwgdG8gdGhlIE9MRSBpbnRlcmZhY2UuICAoVmluY2UgTmVncmkpCgpNYWRlICI6bm9ybWFsIiB3b3JrIGluIGFuIGV2ZW50IGhhbmRsZXIuICBVc2VmdWwgd2hlbiBkcm9wcGluZyBhIGZpbGUgb24gVmltCmFuZCBmb3IgQ3Vyc29ySG9sZCBhdXRvY29tbWFuZHMuCgpGb3IgdGhlIE1TLVdpbmRvd3MgdmVyc2lvbiwgZG9uJ3QgY2hhbmdlIHRvIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGZpbGUgd2hlbiBhCnNsYXNoIGlzIHVzZWQgaW5zdGVhZCBvZiBhIGJhY2tzbGFzaC4gIEV4cGxvcmVyIHNob3VsZCBhbHdheXMgdXNlIGEgYmFja3NsYXNoLAp0aGUgdXNlciBjYW4gdXNlIGEgc2xhc2ggd2hlbiB0eXBpbmcgdGhlIGNvbW1hbmQuCgpUaW1lc3RhbXBzOgotIFdoZW4gYSBidWZmZXIgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0gYW5kIHJlZ2FpbmluZyBmb2N1cywgZ2l2ZSBhIGRpYWxvZwogIHRvIGFsbG93IHRoZSB1c2VyIHRvIHJlbG9hZCB0aGUgZmlsZS4gIE5vdyBhbHNvIGZvciBvdGhlciBHVUlzIHRoYW4KICBNUy1XaW5kb3dzLiAgQW5kIGFsc28gdXNlZCBpbiB0aGUgY29uc29sZSwgd2hlbiBjb21waWxlZCB3aXRoIGRpYWxvZwogIHN1cHBvcnQuCi0gSW5zcGVjdCB0aGUgZmlsZSBjb250ZW50cyB0byBmaW5kIG91dCBpZiBpdCByZWFsbHkgY2hhbmdlZCwgaWdub3JlCiAgc2l0dWF0aW9ucyB3aGVyZSBvbmx5IHRoZSB0aW1lIHN0YW1wIGNoYW5nZWQgKGUuZy4sIGNoZWNraW5nIHRoZSBmaWxlIG91dAogIGZyb20gQ1ZTKS4KLSBXaGVuIGNoZWNraW5nIHRoZSB0aW1lc3RhbXAsIGZpcnN0IGNoZWNrIGlmIHRoZSBmaWxlIHNpemUgY2hhbmdlZCwgdG8gYXZvaWQKICBhIGZpbGUgY29tcGFyZSB0aGVuLiAgTWFrZXMgaXQgcXVpY2tlciBmb3IgbGFyZ2UgKGxvZykgZmlsZXMgdGhhdCBhcmUKICBhcHBlbmRlZCB0by4KLSBEb24ndCBnaXZlIGEgd2FybmluZyBmb3IgYSBjaGFuZ2VkIG9yIGRlbGV0ZWQgZmlsZSB3aGVuICdidWZ0eXBlJyBpcyBzZXQuCi0gTm8gbG9uZ2VyIHdhcm4gZm9yIGEgY2hhbmdlZCBkaXJlY3RvcnkuICBUaGlzIGF2b2lkcyB0aGF0IHRoZSBmaWxlIGV4cGxvcmVyCiAgcHJvZHVjZXMgd2FybmluZ3MuCi0gQ2hlY2tpbmcgdGltZXN0YW1wcyBpcyBvbmx5IGRvbmUgZm9yIGJ1ZmZlcnMgdGhhdCBhcmUgbm90IGhpZGRlbi4gIFRoZXNlCiAgd2lsbCBiZSBjaGVja2VkIHdoZW4gdGhleSBiZWNvbWUgdW5oaWRkZW4uCi0gV2hlbiBjaGVja2luZyBmb3IgYSBmaWxlIGJlaW5nIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0sIGFsc28gY2hlY2sgaWYgdGhlCiAgZmlsZSBwZXJtaXNzaW9ucyBjaGFuZ2VkLiAgV2hlbiB0aGUgZmlsZSBjb250ZW50cyBkaWRuJ3QgY2hhbmdlIGJ1dCB0aGUKICBwZXJtaXNzaW9ucyBkaWQsIGdpdmUgYSB3YXJuaW5nLgotIEF2b2lkIGNoZWNraW5nIHRvbyBvZnRlbiwgb3RoZXJ3aXNlIHRoZSBkaWFsb2cga2VlcHMgcG9wcGluZyB1cCBmb3IgYSBsb2cKICBmaWxlIHRoYXQgc3RlYWRpbHkgZ3Jvd3MuCgpNYXBwaW5nIDxNLUE+IHdoZW4gJ2VuY29kaW5nJyBpcyAibGF0aW4xIiBhbmQgdGhlbiBzZXR0aW5nICdlbmNvZGluZycgdG8KInV0Zi04IiBjYXVzZXMgdGhlIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aS1ieXRlIHRvIGJlIG1hcHBlZC4gIENhbiBjYXVzZSB2ZXJ5CmhhcmQgdG8gZmluZCBwcm9ibGVtcy4gIERpc2FsbG93IG1hcHBpbmcgcGFydCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgoKRm9yICI6cHl0aG9uIiBhbmQgIjp0Y2wiIGFjY2VwdCBhbiBpbi1saW5lIHNjcmlwdC4gKEpvaGFubmVzIFplbGxuZXIpCkFsc28gZm9yICI6cnVieSIgYW5kICI6cGVybCIuIChCZW5vaXQgQ2VycmluYSkKCk1hZGUgIjpzeW4gaW5jbHVkZSIgdXNlICdydW50aW1lcGF0aCcgd2hlbiB0aGUgZmlsZSBuYW1lIGlzIG5vdCBhIGZ1bGwgcGF0aC4KCldoZW4gJ3N3aXRjaGJ1ZicgY29udGFpbnMgInNwbGl0IiBhbmQgdGhlIGN1cnJlbnQgd2luZG93IGlzIGVtcHR5LCBkb24ndCBzcGxpdAp0aGUgd2luZG93LgoKVW5peDogQ2F0Y2ggU0lHUFdSIHRvIHByZXNlcnZlIGZpbGVzIHdoZW4gdGhlIHBvd2VyIGlzIGFib3V0IHRvIGdvIGRvd24uCgpTbmlmZiBpbnRlcmZhY2U6IChBbnRvbiBMZWhlcmJhdWVyKQotIGZpeGVkIHdpbmRvd3MgY29kZSwgZXNwLiB0aGUgZXZlbnQgaGFuZGxpbmcgc3R1ZmYKLSBhZGFwdGF0aW9ucyBmb3Igc25pZmYgNC54ICgkU05JRkZfRElSNCkKLSBzdXBwb3J0IGZvciBhZGRpbmcgc25pZmYgcmVxdWVzdHMgYXQgcnVudGltZQoKU3VwcG9ydCB0aGUgbm90YXRpb24gPEEteD4gYXMgYW4gYWxpYXMgZm9yIDxNLXg+LiAgVGhpcyBsb2dpY2FsLCBzaW5jZSB0aGUgQWx0CmtleSBpcyB1c2VkLgoKIjpmaW5kIiBhY2NlcHRzIGEgY291bnQsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGNvdW50J3RoIG1hdGNoIGluICdwYXRoJyBpcwp1c2VkLgoKIjpscyIgYW5kICI6YnVmZmVycyIgb3V0cHV0IHNob3dzIG1vZGlmaWVkL3JlYWRvbmx5L21vZGlmaWFibGUgZmxhZy4gIFdoZW4gYQpidWZmZXIgaXMgYWN0aXZlIHNob3cgImEiIGluc3RlYWQgb2Ygbm90aGluZy4gIFdoZW4gYSBidWZmZXIgaXNuJ3QgbG9hZGVkCnNob3cgbm90aGluZyBpbnN0ZWFkIG9mICItIi4KClVuaXggaW5zdGFsbDoKLSBXaGVuIGluc3RhbGxpbmcgdGhlIHRvb2xzLCBzZXQgYWJzb2x1dGUgcGF0aHMgaW4gdG9vbHMgc2NyaXB0cyBlZm1fcGVybC5wbAogIGFuZCBtdmUuYXdrLiAgQXZvaWRzIHRoYXQgdGhlIHVzZXIgaGFzIHRvIGVkaXQgdGhlc2UgZmlsZXMuCi0gSW5zdGFsbCBJY29ucyBmb3IgS0RFIHdoZW4gdGhlIGRpcmVjdG9yaWVzIGV4aXN0IGFuZCB0aGUgaWNvbnMgZG8gbm90IGV4aXN0CiAgeWV0LgoKQWRkZWQgaGFzKCJ3aW45NSIpLCB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTVMtV2luZG93cyA5NS85OC9NRSBhbmQKTlQvMjAwMC9YUCBpbiBhIFZpbSBzY3JpcHQuCgpXaGVuIGEgIjpjZCIgY29tbWFuZCB3YXMgdHlwZWQsIGVjaG8gdGhlIG5ldyBjdXJyZW50IGRpcmVjdG9yeS4gKERhbiBTaGFycCkKCldoZW4gdXNpbmcgIjp3aW5wb3MiIGJlZm9yZSB0aGUgR1VJIHdpbmRvdyBoYXMgYmVlbiBvcGVuZWQsIHJlbWVtYmVyIHRoZQp2YWx1ZXMgdW50aWwgaXQgaXMgb3BlbmVkLgoKSW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LCBhZGQgIi9keW4iIGZvciBmZWF0dXJlcyB0aGF0IGFyZSBkeW5hbWljYWxseSBsb2FkZWQuClRoaXMgaW5kaWNhdGVzIHRoZSBmZWF0dXJlIG1heSBub3QgYWx3YXlzIHdvcmsuCgpPbiBXaW5kb3dzIE5UIGl0IGlzIHBvc3NpYmxlIHRoYXQgYSBkaXJlY3RvcnkgaXMgcmVhZC1vbmx5LCBidXQgYSBmaWxlIGNhbiBiZQpkZWxldGVkLiAgV2hlbiBtYWtpbmcgYSBiYWNrdXAgYnkgcmVuYW1pbmcgdGhlIGZpbGUgYW5kICdiYWNrdXBkaXInIGRvZXNuJ3QKdXNlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgdGhpcyBjYXVzZXMgdGhlIG9yaWdpbmFsIGZpbGUgdG8gYmUgZGVsZXRlZCwKd2l0aG91dCB0aGUgcG9zc2liaWxpdHkgdG8gY3JlYXRlIGEgbmV3IGZpbGUuICBHaXZlIGFuIGV4dHJhIGVycm9yIG1lc3NhZ2UKdGhlbiB0byB3YXJuIHRvIHVzZXIgYWJvdXQgdGhpcy4KCk1hZGUgQ1RSTC1SIENUUkwtTyBhdCB0aGUgY29tbWFuZCBsaW5lIHdvcmsgbGlrZSBDVFJMLVIgQ1RSTC1SLCBzbyB0aGF0IGl0J3MKY29uc2lzdGVudCB3aXRoIEluc2VydCBtb2RlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNPTVBJTEUgVElNRSBDSEFOR0VTCQkJCQkqY29tcGlsZS1jaGFuZ2VzLTYqCgpBbGwgZ2VuZXJhdGVkIGZpbGVzIGhhdmUgYmVlbiBtb3ZlZCBvdXQgb2YgdGhlICJzcmMiIGRpcmVjdG9yeS4gIFRoaXMgbWFrZXMgaXQKZWFzeSB0byBzZWUgd2hpY2ggZmlsZXMgYXJlIG5vdCBlZGl0ZWQgYnkgaGFuZC4gIFRoZSBmaWxlcyBnZW5lcmF0ZWQgYnkKY29uZmlndXJlIGFyZSBub3cgaW4gdGhlICJzcmMvYXV0byIgZGlyZWN0b3J5LiAgRm9yIFVuaXgsIGNvbXBpbGVkIG9iamVjdApmaWxlcyBnbyBpbiB0aGUgb2JqZWN0cyBkaXJlY3RvcnkuCgpUaGUgc291cmNlIGFyY2hpdmUgd2FzIG92ZXIgdGhlIDEuNE0gZmxvcHB5IGxpbWl0LiAgVGhlIGFyY2hpdmVzIGFyZSBub3cgc3BsaXQKdXAgaW50byB0d28gcnVudGltZSBhbmQgdHdvIHNvdXJjZSBhcmNoaXZlcy4gIEFsc28gcHJvdmlkZSBhIGJ6aXAyIGNvbXByZXNzZWQKYXJjaGl2ZSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgc291cmNlcyBhbmQgcnVudGltZSBmaWxlcy4KCkFkZGVkICJyZWNvbmZpZyIgYXMgYSB0YXJnZXQgZm9yIG1ha2UuICBVc2VmdWwgd2hlbiBjaGFuZ2luZyBzb21lIG9mIHRoZQphcmd1bWVudHMgdGhhdCByZXF1aXJlIGZsdXNoaW5nIHRoZSBjYWNoZSwgc3VjaCBhcyBzd2l0Y2hpbmcgZnJvbSBHVEsgdG8KTW90aWYuICBBZGp1c3RlZCB0aGUgbWVhbmluZyBvZiBHVUlfSU5DX0xPQyBhbmQgR1VJX0xJQl9MT0MgdG8gYmUgY29uc2lzdGVudApvdmVyIGRpZmZlcmVudCBHVUlzLgoKQWRkZWQgc3JjL1JFQURNRS50eHQgdG8gZ2l2ZSBhbiBvdmVydmlldyBvZiB0aGUgbWFpbiBwYXJ0cyBvZiB0aGUgc291cmNlIGNvZGUuCgpUaGUgVW5peCBNYWtlZmlsZSBub3cgZnVsbHkgc3VwcG9ydHMgdXNpbmcgJChERVNURElSKSB0byBpbnN0YWxsIHRvIGEgc3BlY2lmaWMKbG9jYXRpb24uICBSZXBsYWNlcyB0aGUgbWFudWFsIHNldHRpbmcgb2YgKkVORExPQyB2YXJpYWJsZXMuCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgZm9yIGEgbWFpbnRhaW5lciBvZiBhIGJpbmFyeSB2ZXJzaW9uIHRvIGluY2x1ZGUgaGlzCmUtbWFpbCBhZGRyZXNzIHdpdGggdGhlIC0td2l0aC1jb21waWxlZGJ5IGNvbmZpZ3VyZSBhcmd1bWVudC4KCkluY2x1ZGVkIGZlYXR1cmVzIGFyZSBub3cgZ3JvdXBlZCBpbiAidGlueSIsICJzbWFsbCIsICJub3JtYWwiLCAiYmlnIiBhbmQKImh1Z2UiLiAgVGhpcyByZXBsYWNlcyAibWluLWZlYXR1cmVzIiBhbmQgIm1heC1mZWF0dXJlcyIuICBVc2luZyAidGlueSIKZGlzYWJsZXMgbXVsdGlwbGUgd2luZG93cyBmb3IgYSByZWFsbHkgc21hbGwgVmltLgoKRm9yIHRoZSB0aW55IHZlcnNpb24gb3Igd2hlbiBGRUFUX1dJTkRPV1MgaXMgbm90IGRlZmluZWQ6IEZpcnN0d2luIGFuZCBsYXN0d2luCmFyZSBlcXVhbCB0byBjdXJ3aW4gYW5kIGRvbid0IHVzZSB3X25leHQgYW5kIHdfcHJldi4KCkFkZGVkIHRoZSArbGlzdGNtZHMgZmVhdHVyZS4gIENhbiBiZSB1c2VkIHRvIGNvbXBpbGUgd2l0aG91dCB0aGUgVmltIGNvbW1hbmRzCnRoYXQgbWFuaXB1bGF0ZSB0aGUgYnVmZmVyIGxpc3QgYW5kIGFyZ3VtZW50IGxpc3QgKHRoZSBidWZmZXIgbGlzdCBpdHNlbGYgaXMKc3RpbGwgdGhlcmUsIGNhbid0IGRvIHdpdGhvdXQgaXQpLgoKQWRkZWQgdGhlICt2cmVwbGFjZSBmZWF0dXJlLiAgSXQgaXMgZGlzYWJsZWQgaW4gdGhlICJzbWFsbCIgdmVyc2lvbiB0byBhdm9pZAp0aGF0IHRoZSAxNiBiaXQgRE9TIHZlcnNpb24gcnVucyBvdXQgb2YgbWVtb3J5LgoKUmVtb3ZlZCBHVEsrIHN1cHBvcnQgZm9yIHZlcnNpb25zIG9sZGVyIHRoYW4gMS4xLjE2LgoKVGhlIGNvbmZpZ3VyZSBjaGVja3MgZm9yIHVzaW5nIFBUWXMgaGF2ZSBiZWVuIGltcHJvdmVkLiAgQ29kZSB0YWtlbiBmcm9tIGEKcmVjZW50IHZlcnNpb24gb2Ygc2NyZWVuLgoKQWRkZWQgY29uZmlndXJlIG9wdGlvbnMgdG8gaW5zdGFsbCBWaW0sIEV4IGFuZCBWaWV3IHVuZGVyIGFub3RoZXIgbmFtZSAoZS5nLiwKdmltNiwgZXg2IGFuZCB2aWV3NikuCgpBZGRlZCAiLS13aXRoLWdsb2JhbC1ydW50aW1lIiBjb25maWd1cmUgYXJndW1lbnQuICBBbGxvd3Mgc3BlY2lmeWluZyB0aGUKZ2xvYmFsIGRpcmVjdG9yeSB1c2VkIGluIHRoZSAncnVudGltZXBhdGgnIGRlZmF1bHQuCgpNYWRlIGVuYWJsaW5nIHRoZSBTTmlGRisgaW50ZXJmYWNlIHBvc3NpYmxlIHdpdGggYSBjb25maWd1cmUgYXJndW1lbnQuCgpDb25maWd1cmUgbm93IGFsd2F5cyBjaGVja3MgL3Vzci9sb2NhbC9saWIgZm9yIGxpYnJhcmllcyBhbmQKL3Vzci9sb2NhbC9pbmNsdWRlIGZvciBpbmNsdWRlIGZpbGVzLiAgSGVscHMgZmluZGluZyB0aGUgc3R1ZmYgZm9yIGljb252KCkgYW5kCmdldHRleHQoKS4KCk1vdmVkIHRoZSBjb21tYW5kIGxpbmUgaGlzdG9yeSBzdHVmZiBpbnRvIHRoZSArY21kbGluZV9oaXN0IGZlYXR1cmUsIHRvCmV4Y2x1ZGUgdGhlIGNvbW1hbmQgbGluZSBoaXN0b3J5IGZyb20gdGhlIHRpbnkgdmVyc2lvbi4KCk1TLVdpbmRvd3M6IE1vdmVkIGNvbW1vbiBmdW5jdGlvbnMgZnJvbSBXaW4xNiBhbmQgV2luMzIgdG8gb3NfbXN3aW4uYy4gIEF2b2lkcwpoYXZpbmcgdG8gY2hhbmdlIHR3byBmaWxlcyBmb3Igb25lIHByb2JsZW0uICAoVmluY2UgTmVncmkpCgpNb3ZlZCBjb21tb24gY29kZSBmcm9tIGd1aV93MTYuYyBhbmQgZ3VpX3czMi5jIHRvIGd1aV93NDguYyAoVmluY2UgTmVncmkpCgpUaGUganVtcGxpc3QgaXMgbm93IGEgc2VwYXJhdGUgZmVhdHVyZS4gIEl0IGlzIGRpc2FibGVkIGZvciB0aGUgInNtYWxsIgp2ZXJzaW9uICgxNiBiaXQgTVMtRE9TKS4KClJlbmFtZWQgYWxsIHR5cGVzIGVuZGluZyBpbiBfdCB0byBlbmQgaW4gX1QuICBBdm9pZHMgcG90ZW50aWFsIHByb2JsZW1zIHdpdGgKc3lzdGVtIHR5cGVzLgoKQWRkZWQgYSBjb25maWd1cmUgY2hlY2sgZm9yIFgxMSBoZWFkZXIgZmlsZXMgdGhhdCBpbXBsaWNpdGx5IGRlZmluZSB0aGUgcmV0dXJuCnR5cGUgdG8gaW50LiAoU3RldmUgV2FsbCkKCiJtYWtlIGRvc2xhbmciIGluIHRoZSB0b3AgZGlyZWN0b3J5IG1ha2VzIGFuIGFyY2hpdmUgd2l0aCB0aGUgbWVudSBhbmQgLm1vCmZpbGVzIGZvciBXaW5kb3dzLiAgVGhpcyB1c2VzIHRoZSBmaWxlcyBnZW5lcmF0ZWQgb24gVW5peCwgdGhlc2Ugc2hvdWxkIHdvcmsKb24gTVMtV2luZG93cyBhcyB3ZWxsLgoKTWVyZ2VkIGEgbGFyZ2UgcGFydCBvZiBvc192bXMuYyB3aXRoIG9zX3VuaXguYy4gIFRoZSBjb2RlIHdhcyBkdXBsaWNhdGVkIGluCnRoZSBwYXN0IHdoaWNoIG1hZGUgbWFpbnRlbmFuY2UgbW9yZSB3b3JrLiAgKFpvbHRhbiBBcnBhZGZmeSkKClVwZGF0ZWQgdGhlIEJvcmxhbmQgQyB2ZXJzaW9uIDUgTWFrZWZpbGU6IChEYW4gU2hhcnApCi0gRml4ZWQgdGhlIFBlcmwgYnVpbGQKLSBBZGRlZCBweXRob24gYW5kIHRjbCBidWlsZHMKLSBBZGRlZCBkeW5hbWljIHBlcmwgYW5kIGR5bmFtaWMgcHl0aG9uIGJ1aWxkcwotIEFkZGVkIHVuaW5zdGFsLmV4ZSBidWlsZAotIFVzZSAieWVzIiBhbmQgIm5vIiBmb3IgdGhlIG9wdGlvbnMsIGxpa2UgaW4gTWFrZV9tdmMubWFrLgoKV2luMzI6IE1lcmdlZCBNYWtlX2d2Yy5tYWsgYW5kIE1ha2Vfb3ZjLm1hayBpbnRvIG9uZSBmaWxlOiBNYWtlX2l2Yy5tYWsuICBJdCdzCm11Y2ggc21hbGxlciwgbWFueSB1bm5lY2Vzc2FyeSB0ZXh0IGhhcyBiZWVuIHJlbW92ZWQuIChXYWx0ZXIgQnJpc2NvZSkKQWRkZWQgTWFrZV9kdmMubWFrIHRvIGJlIGFibGUgdG8gZGVidWcgZXhlIGdlbmVyYXRlZCB3aXRoIE1ha2VfbXZjLm1hayBpbgpNUy1EZXZzdHVkaW8uIChXYWx0ZXIgQnJpc2NvZSkKCk1TLVdpbmRvd3M6IFRoZSBiaWcgZ3ZpbS5leGUsIHdoaWNoIGluY2x1ZGVzIE9MRSwgbm93IGFsc28gaW5jbHVkZXMKZHluYW1pY2FsbHkgbG9hZGVkIFRjbCwgUGVybCBhbmQgUHl0aG9uLiAgVGhpcyB1c2VzIEFjdGl2ZVBlcmwgNS42LjEsCkFjdGl2ZVB5dGhvbiAyLjEuMSBhbmQgQWN0aXZlVENMIDguMy4zCgpBZGRlZCBBQ19FWEVFWFQgdG8gY29uZmlndXJlLmluLCB0byBjaGVjayBpZiB0aGUgZXhlY3V0YWJsZSBuZWVkcyAiLmV4ZSIgZm9yCkN5Z3dpbiBvciBNaW5nVy4gIFJlbmFtZWQgU1VGRklYIHRvIEVYRUVYVCBpbiBNYWtlZmlsZS4KCldpbjMyOiBMb2FkIGNvbWRsZzMyLmRsbCBkZWxheWVkIGZvciBmYXN0ZXIgc3RhcnR1cC4gIE9ubHkgd2hlbiB1c2luZyBWQyA2LgooVmlwaW4gQXJhdmluZCkKCldpbjMyOiBXaGVuIGNvbXBpbGluZyB3aXRoIEJvcmxhbmQsIGFsbG93IHVzaW5nIElNRS4gKFlhc3VoaXJvIE1hdHN1bW90bykKCldpbjMyOiBBZGRlZCBNYWtlZmlsZSBmb3IgQm9ybGFuZCA1IHRvIGNvbXBpbGUgZ3ZpbWV4dC5kbGwuIChZYXN1aGlybwpNYXRzdW1vdG8pCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQlVHIEZJWEVTCQkJCQkJKmJ1Zy1maXhlcy02KgoKV2hlbiBjaGVja2luZyB0aGUgY29tbWFuZCBuYW1lIGZvciAiZ3ZpbSIsICJleCIsIGV0Yy4gaWdub3JlIGNhc2UuICBSZXF1aXJlZApmb3Igc3lzdGVtcyB3aGVyZSBjYXNlIGlzIGlnbm9yZWQgaW4gY29tbWFuZCBuYW1lcy4KClNlYXJjaCBwYXR0ZXJuICJbYS1jLWVdIiBhbHNvIG1hdGNoZWQgYSAnZCcgYW5kIGRpZG4ndCBtYXRjaCBhICctJy4KCldoZW4gZG91YmxlLWNsaWNraW5nIGluIGFub3RoZXIgd2luZG93LCB3YXNuJ3QgcmVjb2duaXplZCBhcyBkb3VibGUgY2xpY2ssCmJlY2F1c2UgdG9wbGluZSBpcyBkaWZmZXJlbnQuICBBZGRlZCBzZXRfbW91c2VfdG9wbGluZSgpLgoKVGhlIEJST0tFTl9MT0NBTEUgY2hlY2sgd2FzIGJyb2tlbi4gIChNYXJjaW4gRGFsZWNraSkKCldoZW4gInRfQ28iIGlzIHNldCwgdGhlIGRlZmF1bHQgY29sb3JzIHJlbWFpbiB0aGUgc2FtZSwgdGh1cyB3cm9uZy4gIFJlc2V0IHRoZQpjb2xvcnMgYWZ0ZXIgY2hhbmdpbmcgInRfQ28iLiAoU3RldmUgV2FsbCkKCldoZW4gZXhpdGluZyB3aXRoICI6d3FhbGwiIHRoZSBtZXNzYWdlcyBhYm91dCB3cml0aW5nIGZpbGVzIGNvdWxkIG92ZXJ3cml0ZQplYWNoIG90aGVyIGFuZCBiZSBsb3N0IGZvcmV2ZXIuCgpXaGVuIHN0YXJ0aW5nIFZpbSB3aXRoIGFuIGV4dHJlbWVseSBsb25nIGZpbGUgbmFtZSAoYXJvdW5kIDEwMjQgY2hhcmFjdGVycykgaXQKd291bGQgY3Jhc2guICBBZGRlZCBhIGZldyBjaGVja3MgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93cy4KCkNUUkwtRSBjb3VsZCBnZXQgc3R1Y2sgaW4gYSBmaWxlIHdpdGggdmVyeSBsb25nIGxpbmVzLgoKIjphdSBzeW50YXg8VGFiPiIgZXhwYW5kZWQgZXZlbnQgbmFtZXMgd2hpbGUgaXQgc2hvdWxkIGV4cGFuZCBncm91cHMgc3RhcnRpbmcKd2l0aCAic3ludGF4Ii4KCldoZW4gZXhwYW5kaW5nIGEgZmlsZSBuYW1lIGNhdXNlZCBhbiBlcnJvciAoZS5nLiwgZm9yIDxhbWF0Y2g+KSBpdCB3YXMKcHJvZHVjZWQgZXZlbiB3aGVuIGluc2lkZSBhbiAiaWYgMCIuCgonY2luZGVudCcgZm9ybWF0dGVkIEMgY29tbWVudHMgZGlmZmVyZW50bHkgZnJvbSB3aGF0IHRoZSAnY29tbWVudHMnIG9wdGlvbgpzcGVjaWZpZWQuIChTdGV2ZSBXYWxsKQoKRGVmYXVsdCBmb3IgJ2dyZXBwcmcnIGRpZG4ndCBpbmNsdWRlIHRoZSBmaWxlIG5hbWUgd2hlbiBvbmx5IGdyZXBwaW5nIGluIG9uZQpmaWxlLiAgTm93IC9kZXYvbnVsbCBoYXMgYmVlbiBhZGRlZCBmb3IgVW5peC4KCk9wZW5pbmcgdGhlIG9wdGlvbiB3aW5kb3cgdHdpY2UgY2F1c2VkIHRyb3VibGUuICBOb3cgdGhlIGN1cnNvciBnb2VzIHRvIHRoZQpleGlzdGluZyBvcHRpb24gd2luZG93LgoKIjpzdmlldyIgYW5kICI6dmlldyIgZGlkbid0IHNldCAncmVhZG9ubHknIGZvciBhbiBleGlzdGluZyBidWZmZXIuICBOb3cgZG8gc2V0CidyZWFkb25seScsIHVubGVzcyB0aGUgYnVmZmVyIGlzIGFsc28gZWRpdGVkIGluIGFub3RoZXIgd2luZG93LgoKR1RLIEdVSTogV2hlbiAnZ3Vpb3B0aW9ucycgZXhjbHVkZWQgJ2cnLCB0aGUgbW9yZSBwcm9tcHQgY2F1c2VkIHRoZSB0b29sYmFyCmFuZCBtZW51YmFyIHRvIGRpc2FwcGVhciBhbmQgcmVzaXplIHRoZSB3aW5kb3cgKHdoaWNoIGNsZWFycyB0aGUgdGV4dCkuCk5vdyBhbHdheXMgZ3JleS1vdXQgdGhlIHRvcGxldmVsIG1lbnVzIHRvIGF2b2lkIHRoYXQgdGhlIG1lbnViYXIgY2hhbmdlcyBzaXplCm9yIGRpc2FwcGVhcnMuCgpXaGVuIHJlLXVzaW5nIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgYSBuZXcgYnVmZmVyLCBidWZmZXItbG9jYWwgdmFyaWFibGVzIHdlcmUKbm90IGRlbGV0ZWQuCgpHVUk6IHdoZW4gJ3Njcm9sbG9mZicgaXMgMCBkcmFnZ2luZyB0aGUgbW91c2UgYWJvdmUgdGhlIHdpbmRvdyBkaWRuJ3QgY2F1c2UgYQpkb3duIHNjcm9sbC4gIE5vdyBwYXNzIG9uIGEgbW91c2UgZXZlbnQgd2l0aCBtb3VzZV9yb3cgc2V0IHRvIC0xLgoKV2luMzI6IENvbnNvbGUgdmVyc2lvbiBkaWRuJ3Qgd29yayBvbiB0ZWxuZXQsIGJlY2F1c2Ugb2Ygc3dpdGNoaW5nIGJldHdlZW4gdHdvCmNvbnNvbGUgc2NyZWVucy4gIE5vdyB1c2Ugb25lIGNvbnNvbGUgc2NyZWVuIGFuZCBzYXZlL3Jlc3RvcmUgdGhlIGNvbnRlbnRzCndoZW4gbmVlZGVkLiAgKENyYWlnIEJhcmtob3VzZSkKCldoZW4gcmVhZGluZyBhIGZpbGUgdGhlIG1hZ2ljIG51bWJlciBmb3IgZW5jcnlwdGlvbiB3YXMgaW5jbHVkZWQgaW4gdGhlIGZpbGUKbGVuZ3RoLiAoQW50b25pbyBDb2xvbWJvKQoKVGhlIHF1aWNrZml4IHdpbmRvdyBjb250YWluZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBOVUxzIGZvciBtdWx0aS1saW5lCm1lc3NhZ2VzLiAoRGF2aWQgSGFycmlzb24pCgpXaGVuIHVzaW5nIGNzY29wZSwgcmVkdW5kYW50IHRhZ3Mgd2VyZSByZW1vdmVkLiAgVGhpcyBjYXVzZWQgYSBudW1iZXJpbmcKcHJvYmxlbSwgYmVjYXVzZSB0aGV5IHdlcmUgYWxsIGxpc3RlZC4gIERvbid0IHJlbW92ZSByZWR1bmRhbnQgY3Njb3BlIHRhZ3MuCihEYXZpZCBCdXN0b3MpLgoKQ3Njb3BlOiBUZXN0IGZvciB3aGljaCBtYXRjaGVzIGFyZSBpbiB0aGUgY3VycmVudCBidWZmZXIgc29tZXRpbWVzIGZhaWxlZCwKY2F1c2luZyBhIGp1bXAgdG8gYW5vdGhlciBtYXRjaCB0aGFuIHNlbGVjdGVkLiAoRGF2aWQgQnVzdG9zKQoKV2luMzI6IEJ1ZmZlciBvdmVyZmxvdyB3aGVuIGFkZGluZyBhIGNoYXJzZXQgbmFtZSBpbiBhIGZvbnQuCgondGl0bGVzdHJpbmcnIGFuZCAnaWNvbnN0cmluZycgd2VyZSBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24gaW4gdGhlIGN1cnJlbnQKY29udGV4dCwgd2hpY2ggY291bGQgYmUgYSB1c2VyIGZ1bmN0aW9uLCB3aGljaCBpcyBhIHByb2JsZW0gZm9yIGxvY2FsCnZhcmlhYmxlcyB2cyBnbG9iYWwgdmFyaWFibGVzLgoKV2luMzIgR1VJOiBNYXBwaW5nIDxNLUY+IGRpZG4ndCB3b3JrLiAgTm93IGhhbmRsZSBTSElGVCBhbmQgQ1RSTCBpbgpfT25TeXNDaGFyKCkuCgpXaW4zMiBHVUk6IChvbiBubyBmaWxlKSwgOnZzPENSPjpxPENSPiBsZWZ0IGEgdHJhaWwgb2YgcGl4ZWxzIGRvd24gdGhlIG1pZGRsZS4KQ291bGQgYWxzbyBoYXBwZW4gZm9yIHRoZSBydWxlci4gIHNjcmVlbl9wdXRzKCkgZGlkbid0IGNsZWFyIHRoZSByaWdodCBjaGFyIGluClNjcmVlbkxpbmVzW10gZm9yIHRoZSBib2xkIHRyaWNrLgoKV2luMzI6ICI6JSFzb3J0fHVuaXEiIGRpZG4ndCB3b3JrLCBiZWNhdXNlIHRoZSBpbnB1dCBmaWxlIG5hbWUgdG91Y2hlcyB0aGUKInwiLiAgSW5zZXJ0IGEgc3BhY2UgYmVmb3JlIHRoZSAifCIuCgpPUy8yOiBFeHBhbmRpbmcgd2lsZGNhcmRzIGluY2x1ZGVkIG5vbi1leGlzdGluZyBmaWxlcy4gIENhdXNlZCAiOnJ1bnRpbWUiIHRvCmZhaWwsIHdoaWNoIGNhdXNlZCBzeW50YXggaGlnaGxpZ2h0aW5nIHRvIGZhaWwuCgpQYXN0aW5nIGEgcmVnaXN0ZXIgY29udGFpbmluZyBDVFJMLVIgb24gdGhlIGNvbW1hbmQgbGluZSBjb3VsZCBjYXVzZSBhbgplbmRsZXNzIGxvb3AgdGhhdCBjYW4ndCBiZSBpbnRlcnJ1cHRlZC4gIE5vdyBpdCBjYW4gYmUgc3RvcHBlZCB3aXRoIENUUkwtQy4KCldoZW4gJ3ZlcmJvc2UnIGlzIHNldCwgYSBtZXNzYWdlIGZvciBmaWxlIHJlYWQvd3JpdGUgY291bGQgb3ZlcndyaXRlIHRoZQpwcmV2aW91cyBtZXNzYWdlLgpXaGVuICd2ZXJib3NlJyBpcyBzZXQsIHRoZSBoZWFkZXIgZnJvbSAiOnNlbGVjdCIgd2FzIHB1dCBhZnRlciB0aGUgbGFzdAptZXNzYWdlLiAgTm93IHN0YXJ0IGEgbmV3IGxpbmUuCgpUaGUgaGl0LWVudGVyIHByb21wdCByZWFjdGVkIHRvIHRoZSByZXNwb25zZSBvZiB0aGUgdF9SViBzdHJpbmcsIGNhdXNpbmcKbWVzc2FnZXMgYXQgc3RhcnR1cCB0byBkaXNhcHBlYXIuCgpXaGVuIHRfQ28gd2FzIHNldCB0byAxLCBjb2xvcnMgd2VyZSBzdGlsbCB1c2VkLiAgTm93IG9ubHkgdXNlIGNvbG9yIHdoZW4gdF9Dbwo+IDEuCgpMaXN0aW5nIGZ1bmN0aW9ucyB3aXRoICI6ZnVuY3Rpb24iIGRpZG4ndCBxdWl0IHdoZW4gJ3EnIG9yICc6JyB3YXMgdHlwZWQgYXQKdGhlIG1vcmUgcHJvbXB0LgoKVXNlIG1rc3RlbXAoKSBpbnN0ZWFkIG9mIG1rdGVtcCgpIHdoZW4gaXQncyBhdmFpbGFibGUsIGF2b2lkcyBhIHdhcm5pbmcgZm9yCmxpbmtpbmcgb24gRnJlZUJTRC4KCldoZW4gZG9pbmcgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiBpdCdzIHBvc3NpYmxlIHRoYXQgYl9zZm5hbWUgaXMgTlVMTC4gIERvbid0CmdpdmUgaXQgdG8gcHJpbnRmKCkgZm9yIHRoZSAiU2Nhbm5pbmciIG1lc3NhZ2UuCgoiOnNldCBydW50aW1lcGF0aC09JFZJTVJVTlRJTUUiIGRpZG4ndCB3b3JrLCBiZWNhdXNlIGV4cGFuc2lvbiBvZiB3aWxkY2FyZHMKd2FzIGRvbmUgYWZ0ZXIgdHJ5aW5nIHRvIHJlbW92ZSB0aGUgc3RyaW5nLiAgTm93IGZvciAiOnNldCBvcHQrPXZhbCIgYW5kICI6c2V0Cm9wdC09dmFsIiB0aGUgZXhwYW5zaW9uIG9mIHdpbGRjYXJkcyBpcyBkb25lIGJlZm9yZSBhZGRpbmcgb3IgcmVtb3ZpbmcgInZhbCIuCgpVc2luZyBDVFJMLVYgd2l0aCB0aGUgInIiIGNvbW1hbmQgd2l0aCBhIGJsb2Nrd2lzZSBWaXN1YWwgc2VsZWN0aW9uIGluc2VydGVkIGEKQ1RSTC1WIGluc3RlYWQgb2YgZ2V0dGluZyBhIHNwZWNpYWwgY2hhcmFjdGVyLgoKVW5peDogQ2hhbmdlZCB0aGUgb3JkZXIgb2YgbGlicmFyaWVzOiBQdXQgLWxYZG1jcCBhZnRlciAtbFgxMSBhbmQgLWxTTSAtbElDRQphZnRlciAtbFhkbWNwLiAgU2hvdWxkIGZpeCBsaW5rIHByb2JsZW0gb24gSFAtVVggMTAuMjAuCgpEb24ndCByZW1vdmUgdGhlIGxhc3QgIi1sbSIgZnJvbSB0aGUgbGluayBsaW5lLiAgVmltIG1heSBsaW5rIGJ1dCBmYWlsIGxhdGVyCndoZW4gdGhlIEdVSSBzdGFydHMuCgpXaGVuIHRoZSBzaGVsbCByZXR1cm5zIHdpdGggYW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gZXhwYW5kIHdpbGRjYXJkcywgZG8KaW5jbHVkZSB0aGUgcGF0dGVybiB3aGVuIHRoZSAiRVdfTk9URk9VTkQiIGZsYWcgd2FzIHNldC4KV2hlbiBleHBhbmRpbmcgd2lsZGNhcmRzIHdpdGggdGhlIHNoZWxsIGZhaWxzLCBnaXZlIGEgY2xlYXIgZXJyb3IgbWVzc2FnZQppbnN0ZWFkIG9mIGp1c3QgIjEgcmV0dXJuZWQiLgoKU2VsZWN0aW5nIGEgVmlzdWFsIGJsb2NrLCB3aXRoIHRoZSBzdGFydCBwYXJ0bHkgb24gYSBUYWIsIGRlbGV0aW5nIGl0IGxlYXZlcwp0aGUgY3Vyc29yIHRvbyBmYXIgdG8gdGhlIGxlZnQuICBDYXVzZXMgInMiIHRvIHdvcmsgaW4gdGhlIHdyb25nIHBvc2l0aW9uLgoKUG91bmQgc2lnbiBpbiBub3JtYWwuYyBjYXVzZWQgdHJvdWJsZSBvbiBzb21lIGNvbXBpbGVycy4gIFVzZSAweEEzIGluc3RlYWQuCgpXYXJuaW5nIGZvciBjaGFuZ2luZyBhIHJlYWQtb25seSBmaWxlIHdhc24ndCBnaXZlbiB3aGVuICdpbnNlcnRtb2RlJyB3YXMgc2V0LgoKV2luMzI6IFdoZW4gJ3NoZWxseHF1b3RlJyBpcyBzZXQgdG8gYSBkb3VibGUgcXVvdGUgKGUuZy4sIHVzaW5nIGNzaCksICI6IXN0YXJ0Cm5vdGVwYWQgZmlsZSIgZG9lc24ndCB3b3JrLiAgUmVtb3ZlIHRoZSBkb3VibGUgcXVvdGVzIGFkZGVkIGJ5ICdzaGVsbHhxdW90ZScKd2hlbiB1c2luZyAiOiFzdGFydCIuIChQYXZvbCBKdWhhcykKClRoZSAiPGYtYXJncz4iIGFyZ3VtZW50IG9mICI6Y29tbWFuZCIgZGlkbid0IGFjY2VwdCBUYWJzIGZvciB3aGl0ZSBzcGFjZS4KQWxzbywgZG9uJ3QgYWRkIGFuIGVtcHR5IGFyZ3VtZW50IHdoZW4gdGhlcmUgYXJlIHRyYWlsaW5nIGJsYW5rcy4KCiI6ZSB0ZXN0XFxqZSIgZWRpdGVkICJ0ZXN0XGplIiwgYnV0ICI6bmV4dCB0ZXN0XFxqZSIgZWRpdGVkICJ0ZXN0amUiLgpCYWNrc2xhc2hlcyB3ZXJlIHJlbW92ZWQgb25lIHRpbWUgdG9vIG1hbnkgZm9yICI6bmV4dCIuCgpWTVM6ICJnZiIgZGlkbid0IHdvcmsgcHJvcGVybHkuICBVc2Ugdm1zX2ZpeGZpbGVuYW1lKCkgdG8gdHJhbnNsYXRlIHRoZSBmaWxlCm5hbWUuIChab2x0YW4gQXJwYWRmZnkpCgpBZnRlciAiOmhpIE5vcm1hbCBjdGVybWJnPWJsYWNrIGN0ZXJtZmc9d2hpdGUiIGFuZCBzdXNwZW5kaW5nIFZpbSBub3QgYWxsCmNoYXJhY3RlcnMgYXJlIHJlZHJhd24gd2l0aCB0aGUgcmlnaHQgYmFja2dyb3VuZC4KCldoZW4gZG9pbmcgIm1ha2UgdGVzdCIgd2l0aG91dCArZXZhbCBvciArd2luZG93cyBmZWF0dXJlLCBtYW55IHRlc3RzIGZhaWxlZC4KTm93IGhhdmUgdGVzdDEgZ2VuZXJhdGUgYSBzY3JpcHQgdG8gY29weSB0aGUgY29ycmVjdCBvdXRwdXQsIHNvIHRoYXQgYSB0ZXN0CnRoYXQgZG9lc24ndCB3b3JrIGlzIHNraXBwZWQuCgpPbiBGcmVlQlNEIHRoZSBQZXJsIGludGVyZmFjZSBhZGRlZCAiLWxjIiB0byB0aGUgbGluayBjb21tYW5kIGFuZCBQeXRob24gYWRkZWQKIi1wdGhyZWFkIi4gIFRoZXNlIHR3byBkb24ndCB3b3JrIHRvZ2V0aGVyLCBiZWNhdXNlIHRoZSBsaWJjX3IgbGlicmFyeSBzaG91bGQKYmUgdXNlZC4gIFJlbW92ZWQgIi1sYyIgZnJvbSBQZXJsLCBpdCBzaG91bGQgbm90IGJlIG5lZWRlZC4KQWxzbzogQWRkICItcHRocmVhZCIgdG8gJExJQlMsIHNvIHRoYXQgdGhlIGNoZWNrcyBmb3IgZnVuY3Rpb25zIGlzIGRvbmUgd2l0aApsaWJjX3IuICBTaWdhbHRzdGFjaygpIGFwcGVhcnMgdG8gYmUgbWlzc2luZyBmcm9tIGxpYmNfci4KClRoZSBTeW50YXggc3ViLW1lbnVzIHdlcmUgZ2V0dGluZyB0b28gbG9uZywgcmVvcmdhbml6ZWQgdGhlbSBhbmQgYWRkZWQgYW5vdGhlcgpsZXZlbCBmb3Igc29tZSBsYW5ndWFnZXMuCgpWaXN1YWwgYmxvY2sgInIiZXBsYWNlIGRpZG4ndCB3b3JrIHdlbGwgd2hlbiBhIFRhYiBpcyBwYXJ0bHkgaW5jbHVkZWQuCihNYXR0aGlhcyBLcmFtbSkKCldoZW4geWFua2luZyBhIFZpc3VhbCBibG9jaywgd2hlcmUgc29tZSBsaW5lcyBlbmQgaGFsZndheSB0aGUgYmxvY2ssIHB1dHRpbmcKdGhlIHRleHQgc29tZXdoZXJlIGVsc2UgZG9lc24ndCBpbnNlcnQgYSBibG9jay4gIFBhZGQgd2l0aCBzcGFjZXMgZm9yIG1pc3NpbmcKY2hhcmFjdGVycy4gIEFkZGVkICJ5X3dpZHRoIiB0byBzdHJ1Y3QgeWFua3JlZy4gKE1hdHRoaWFzIEtyYW1tKQoKSWYgYSBzdWJzdGl0dXRlIHN0cmluZyBoYXMgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGFmdGVyIGEgYmFja3NsYXNoIG9ubHkgdGhlCmZpcnN0IGJ5dGUgb2YgaXQgd2FzIHNraXBwZWQuIChNdXJhb2thIFRhcm8pCgpXaW4zMjogTnVtZXJpYyBrZXlwYWQga2V5cyB3ZXJlIG1pc3NpbmcgZnJvbSB0aGUgYnVpbHRpbiB0ZXJtY2FwIGVudHJ5LgoKV2hlbiBhIGZpbGUgd2FzIHJlYWQtb25seSAiOndhISIgZGlkbid0IGZvcmNlIGl0IHRvIGJlIHdyaXR0ZW4uIChWaW5jZSBOZWdyaSkKCkFtaWdhOiBBIGZpbGUgbmFtZSBzdGFydGluZyB3aXRoIGEgY29sb24gd2FzIGNvbnNpZGVyZWQgYWJzb2x1dGUgYnV0IGl0IGlzbid0LgpBbWlnYTogIjpwd2QiIGFkZGVkIGEgc2xhc2ggd2hlbiBpbiB0aGUgcm9vdCBvZiBhIGRyaXZlLgoKRG9uJ3QgbGV0ICd0dHltb3VzZScgZGVmYXVsdCB0byAiZGVjIiB3aGVuIGNvbXBpbGVkIHdpdGggZGVjIG1vdXNlIHN1cHBvcnQuCkl0IGJyZWFrcyB0aGUgZ3BtIG1vdXNlIChMaW51eCBjb25zb2xlKS4KClRoZSBwcm90b3R5cGVzIGZvciB0aGUgUGVybCBpbnRlcmZhY2UgZGlkbid0IHdvcmsgZm9yIHRocmVhZGVkIFBlcmwuICBBZGRlZCBhCnNlZCBjb21tYW5kIHRvIHJlbW92ZSB0aGUgcHJvdG90eXBlcyBmcm9tIHByb3RvL2lmX3BlcmwucHJvIGFuZCBhZGRlZCB0aGVtCm1hbnVhbGx5IHRvIGlmX3BlcmwueHMuCgpXaGVuICI6dyEiIHJlc2V0cyB0aGUgJ3JlYWRvbmx5JyBvcHRpb24gdGhlIHRpdGxlIGFuZCBzdGF0dXMgbGluZXMgd2VyZSBub3QKdXBkYXRlZC4KCiI6YXJncyIgc2hvd2VkIHRoZSBjdXJyZW50IGZpbGUgd2hlbiB0aGUgYXJndW1lbnQgbGlzdCB3YXMgZW1wdHkuICBNYWRlIHRoaXMKd29yayBsaWtlIFZpOiBkaXNwbGF5IG5vdGhpbmcuCgoiOTk6PEMtVT5lY2hvIHY6Y291bnQiIGVjaG9lZCAiOTkiIGluIE5vcm1hbCBtb2RlLCBidXQgMCBpbiBWaXN1YWwgbW9kZS4KRG9uJ3Qgc2V0IHY6Y291bnQgd2hlbiBleGVjdXRpbmcgYSBzdHVmZmVkIGNvbW1hbmQuCgpBbWlnYTogR290IGEgcmVxdWVzdGVyIGZvciAiaG9tZToiIGJlY2F1c2UgaXQncyBpbiB0aGUgZGVmYXVsdCBydW50aW1lIHBhdGguCkRvbid0IGJyaW5nIHVwIGEgcmVxdWVzdGVyIHdoZW4gc2VhcmNoaW5nIGZvciBhIGZpbGUgaW4gJ3BhdGgnLCBzb3VyY2luZyB0aGUKLnZpbXJjIGZpbGUgb3IgdXNpbmcgIjpydW50aW1lIi4KCldpbjE2IGFuZCBXaW4zMjogQ29uc2lkZXJlZCBhIGZpbGUgIlxwYXRoXGZpbGUiIGFic29sdXRlLiAgQ2FuIGNhdXNlIHRoZSBzYW1lCmZpbGUgdG8gYXBwZWFyIGFzIHR3byBkaWZmZXJlbnQgYnVmZmVycy4KCldpbjMyOiBSZW5hbWluZyBhIGZpbGUgdG8gYW4gZW1wdHkgc3RyaW5nIGNyYXNoZWQgVmltLiAgSGFwcGVuZWQgd2hlbiB1c2luZwpleHBsb3Jlci52aW0gYW5kIGhpdHRpbmcgRVNDIGF0IHRoZSByZW5hbWUgcHJvbXB0LgoKV2luMzI6IHN0cmZ0aW1lKCkgY3Jhc2hlZCB3aGVuIGNhbGxlZCB3aXRoIGEgIi0xIiB2YWx1ZSBmb3IgdGhlIHRpbWUuCgpXaW4zMiB3aXRoIEJvcmxhbmQgY29tcGlsZXI6IG1jaF9GdWxsTmFtZSgpIGRpZG4ndCB3b3JrLCBjYXVzZWQgdGFnIGZpbGUgbm90CnRvIGJlIGZvdW5kLgoKQ3Njb3BlIHNvbWV0aW1lcyBqdW1wZWQgdG8gdGhlIHdyb25nIHRhZy4gKERhdmlkIEJ1c3RvcykKCk9TLzI6IENvdWxkIG5vdCBmaW5kIHRoZSB0YWdzIGZpbGUuICBtY2hfZXhwYW5kX3dpbGRjYXJkcygpIGFkZGVkIGFub3RoZXIKc2xhc2ggdG8gYSBkaXJlY3RvcnkgbmFtZS4KCldoZW4gdXNpbmcgIj4+IiB0aGUgYF0gbWFyayB3YXMgbm90IGluIHRoZSBsYXN0IGNvbHVtbi4KCldoZW4gVmltIHdhcyBjb21waWxlZCB3aXRob3V0IG1lbnUgc3VwcG9ydCwgZmlsZXR5cGUudmltIHdhcyBzdGlsbCB0cnlpbmcgdG8Kc291cmNlIHRoZSBtZW51LnZpbSBzY3JpcHQuIChSYWZhZWwgR2FyY2lhLVN1YXJleikKCiI6cHRhZyIgYWRkZWQgYW4gaXRlbSB0byB0aGUgdGFnIHN0YWNrLgoKV2luMzIgSU1FOiAiZ3IiIGRpZG4ndCB1c2UgSU1FIG1vZGUuCgpJbiB0aGUgInZpbSAtLWhlbHAiIG1lc3NhZ2UgdGhlIHRlcm0gIm9wdGlvbnMiIHdhcyB1c2VkIGZvciBhcmd1bWVudHMuICBUaGF0J3MKY29uZnVzaW5nLCBjYWxsIHRoZW0gImFyZ3VtZW50cyIuCgpXaGVuIHRoZXJlIGFyZSB0d28gd2luZG93cywgYW5kIGEgQnVmVW5sb2FkIGF1dG9jb21tYW5kIGZvciBjbG9zaW5nIHdpbmRvdyAjMQpjbG9zZWQgd2luZG93ICMyLCBWaW0gd291bGQgY3Jhc2guCgpXaGVuIHRoZXJlIGlzIGEgcHJldmlldyB3aW5kb3cgYW5kIG9ubHkgb25lIG90aGVyIHdpbmRvdywgIjpxIiB3b3VsZG4ndCBleGl0LgoKSW4gSW5zZXJ0IG1vZGUsIHdoZW4gY2FuY2VsbGluZyBhIGRpZ3JhcGggd2l0aCBFU0MsIHRoZSAnPycgd2Fzbid0IHJlbW92ZWQuCgpPbiBVbml4IGdsb2IoIi4qIikgcmV0dXJuZWQgIi4iIGFuZCAiLi4iLCBvbiBXaW5kb3dzIGl0IGRpZG4ndC4gIE9uIFdpbmRvd3MKZ2xvYigiKiIpIGFsc28gcmV0dXJuZWQgZmlsZXMgc3RhcnRpbmcgd2l0aCBhIGRvdC4gIE1hZGUgdGhpcyB3b3JrIGxpa2UgVW5peApvbiBhbGwgc3lzdGVtcy4KCldpbjMyOiBSZW1vdmVkIG9sZCBjb2RlIHRvIG9wZW4gYSBjb25zb2xlLiAgVmltcnVuIGlzIG5vdyB1c2VkIGFuZCB3b3JrcyBmaW5lLgoKQ29tcHV0ZSB0aGUgcm9vbSBuZWVkZWQgYnkgdGhlIGludHJvIG1lc3NhZ2UgYWNjdXJhdGVseSwgc28gdGhhdCBpdCBhbHNvIGZpdHMKb24gYSAyNSBsaW5lIGNvbnNvbGUuIChDcmFpZyBCYXJraG91c2UpCgoiOnB0bmV4dCIgd2FzIGJyb2tlbi4gIE5vdyByZW1lbWJlciB0aGUgbGFzdCB0YWcgdXNlZCBpbiB0aGUgcHJldmlldyB3aW5kb3cKc2VwYXJhdGVseSBmcm9tIHRoZSB0YWdzdGFjay4KCkRpZG4ndCBjaGVjayBmb3IgIi1kaXNwbGF5IiBiZWluZyB0aGUgbGFzdCBhcmd1bWVudC4gKFdpY2hlcnQgQWtrZXJtYW4pCgpHVEsgR1VJOiBXaGVuIHN0YXJ0aW5nICJndmltIiB1bmRlciBzb21lIGNvbmRpdGlvbnMgdGhlcmUgd291bGQgYmUgYW4gWCBlcnJvci4KRG9uJ3QgcmVwbGFjZSB0aGUgZXJyb3IgaGFuZGxlciB3aGVuIGNyZWF0aW5nIHRoZSB4dGVybSBjbGlwYm9hcmQuIChXaWNoZXJ0CkFra2VybWFuKQoKQWRkaW5nIGEgc3BhY2UgYWZ0ZXIgYSBoZWxwIHRhZyBjYXVzZWQgdGhlIHRhZyBub3QgdG8gYmUgZm91bmQuICBFLmcuLCAiOmhlCmF1dG9pbmRlbnQgIi4KCldhcyB0cnlpbmcgdG8gZXhwYW5kIGEgVVJMIGludG8gYSBmdWxsIHBhdGggbmFtZS4gIE9uIFdpbmRvd3MgdGhpcyByZXN1bHRlZCBpbgp0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gYmUgcHJlcGVuZGVkIHRvIHRoZSBVUkwuICBBZGRlZCB2aW1faXNBYnNOYW1lKCkgYW5kCnZpbV9GdWxsTmFtZSgpIHRvIGF2b2lkIHRoYXQgdmFyaW91cyBtYWNoaW5lIHNwZWNpZmljIGZ1bmN0aW9ucyBkbyBpdApkaWZmZXJlbnRseS4KCiI6biAqLmMiICI6Y2QgLi4iICI6biIgZGlkbid0IHVzZSB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5IG9mIHRoZSBmaWxlLiAgVmkgb25seQpkb2VzIGl0IGZvciB0aGUgY3VycmVudCBmaWxlIChsb29rcyBsaWtlIGEgYnVnKS4gIE5vdyByZW1lbWJlciB0aGUgYnVmZmVyIHVzZWQKZm9yIHRoZSBlbnRyeSBpbiB0aGUgYXJndW1lbnQgbGlzdCBhbmQgdXNlIGl0J3MgbmFtZSAoYWRqdXN0ZWQgd2hlbiBkb2luZwoiOmNkIiksIHVubGVzcyBpdCdzIGRlbGV0ZWQuCgpXaGVuIGluc2VydGluZyBhIHNwZWNpYWwga2V5IGFzIGl0cyBuYW1lICgiPEY4PiIgYXMgZm91ciBjaGFyYWN0ZXJzKSBhZnRlcgptb3ZpbmcgYXJvdW5kIGluIEluc2VydCBtb2RlLCB1bmRvIGRpZG4ndCB3b3JrIHByb3Blcmx5LgoKTW90aWYgR1VJOiBXaGVuIHVzaW5nIHRoZSByaWdodCBtb3VzZSBidXR0b24sIGZvciBzb21lIHBlb3BsZSBndmltIGZyb3plIGZvcgphIGNvdXBsZSBvZiBzZWNvbmRzIChNb3RpZiAxLjI/KS4gIFRoaXMgZG9lc24ndCBoYXBwZW4gd2hlbiB0aGVyZSBpcyBubyBQb3B1cAptZW51LiAgU29sdmVkIGJ5IG9ubHkgY3JlYXRpbmcgYSBwb3B1cCBtZW51IHdoZW4gJ21vdXNlbW9kZWwnIGlzICJwb3B1cCIgb3IKInBvcHVwX3NldHBvcyIuIChEYXZpZCBIYXJyaXNvbikKCk1vdGlmOiBXaGVuIGFkZGluZyBtYW55IG1lbnUgaXRlbXMsIHRoZSAiSGVscCIgbWVudSBkaXNhcHBlYXJlZCBidXQgdGhlCm1lbnViYXIgZGlkbid0IHdyYXAuICBOb3cgbWFudWFsbHkgc2V0IHRoZSBtZW51YmFyIGhlaWdodC4KCldoZW4gdXNpbmcgPEJTPiBpbiBJbnNlcnQgbW9kZSB0byByZW1vdmUgYSBsaW5lIGJyZWFrLCBvciB1c2luZyAiSiIgdG8gam9pbgpsaW5lcywgdGhlIGN1cnNvciBjb3VsZCBlbmQgdXAgaGFsZndheSBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLiAoTXVyYW9rYSBUYXJvKQoKUmVtb3ZlZCBkZWZpbmluZyBTVlI0IGluIGNvbmZpZ3VyZS4gIEl0IGNhdXNlcyBwcm9ibGVtcyBmb3Igc29tZSBYIGhlYWRlcgpmaWxlcyBhbmQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdXNlZCBhbnl3aGVyZS4KCldoZW4gJ3dpbGRpZ25vcmUnIGlzIHVzZWQsICdpZ25vcmVjYXNlJyBmb3IgYSB0YWcgbWF0Y2ggd2FzIG5vdCB3b3JraW5nLgoKV2hlbiAnd2lsZGlnbm9yZScgY29udGFpbnMgIip+IiBpdCB3YXMgaW1wb3NzaWJsZSB0byBlZGl0IGEgZmlsZSBlbmRpbmcgaW4gYQoifiIuICBOb3cgZG9uJ3QgcmVjb2duaXplIGEgZmlsZSBlbmRpbmcgaW4gIn4iIGFzIGNvbnRhaW5pbmcgd2lsZGNhcmRzLgoKRGlzYWJsZWQgdGhlIG1vdXNlIGNvZGUgZm9yIE9TLzIuICBJdCB3YXMgbm90IHJlYWxseSB1c2VkLgoKIjpta3Nlc3Npb24iIGFsd2F5cyB1c2VkIHRoZSBmdWxsIHBhdGggbmFtZSBmb3IgYSBidWZmZXIsIGFsc28gd2hlbiB0aGUgc2hvcnQKbmFtZSBjb3VsZCBiZSB1c2VkLgoiOm1rdmltcmMiIGFuZCAiOm1rc2Vzc2lvbiIgZGlkbid0IHNhdmUgJ3dpbGRjaGFyJyBhbmQgJ3Bhc3RldG9nZ2xlJyBpbiBzdWNoIGEKd2F5IHRoYXQgdGhleSB3b3VsZCBiZSByZXN0b3JlZC4gIE5vdyB1c2UgdGhlIGtleSBuYW1lIGlmIHBvc3NpYmxlLCB0aGlzIGlzCnBvcnRhYmxlLgoKQWZ0ZXIgcmVjb3ZlcmluZyBhIGZpbGUgYW5kIGFiYW5kb25pbmcgaXQsIGFuICI6ZWRpdCIgY29tbWFuZCBkaWRuJ3QgZ2l2ZSB0aGUKQVRURU5USU9OIHByb21wdCBhZ2Fpbi4gIFdvdWxkIGJlIHVzZWZ1bCB0byBiZSBhYmxlIHRvIGRlbGV0ZSB0aGUgZmlsZSBpbiBhbgplYXN5IHdheS4gIFJlc2V0IHRoZSBCRl9SRUNPVkVSRUQgZmxhZyB3aGVuIHVubG9hZGluZyB0aGUgYnVmZmVyLgoKaGlzdGRlbCgpIGNvdWxkIG1hdGNoIG9yIGlnbm9yZSBjYXNlLCBkZXBlbmRpbmcgb24gd2hhdCBoYXBwZW5lZCBiZWZvcmUgaXQuCk5vdyBhbHdheXMgbWF0Y2ggY2FzZS4KCldoZW4gYSB3aW5kb3cgc2l6ZSB3YXMgc3BlY2lmaWVkIHdoZW4gc3BsaXR0aW5nIGEgd2luZG93LCBpdCB3b3VsZCBzdGlsbCBnZXQKdGhlIHNpemUgZnJvbSAnd2luaGVpZ2h0JyBvciAnd2lud2lkdGgnIGlmIGl0J3MgbGFyZ2VyLgoKV2hlbiB1c2luZyAiYXBwZW5kIiBvciAiaW5zZXJ0IiBpbnNpZGUgYSBmdW5jdGlvbiBkZWZpbml0aW9uLCBhIGxpbmUgc3RhcnRpbmcKd2l0aCAiZnVuY3Rpb24iIG9yICJlbmRmdW5jdGlvbiIgY2F1c2VkIGNvbmZ1c2lvbi4gIE5vdyByZWNvZ25pemUgdGhlIGNvbW1hbmRzCmFuZCBza2lwIGxpbmVzIHVudGlsIGEgIi4iLgoKQXQgdGhlIGVuZCBvZiBhbnkgZnVuY3Rpb24gb3Igc291cmNlZCBmaWxlIG5lZWRfd2FpdF9yZXR1cm4gY291bGQgYmUgcmVzZXQsCmNhdXNpbmcgbWVzc2FnZXMgdG8gZGlzYXBwZWFyIHdoZW4gcmVkcmF3aW5nLgoKV2hlbiBpbiBhIHdoaWxlIGxvb3AgdGhlIGxpbmUgbnVtYmVyIGZvciBlcnJvciBtZXNzYWdlcyBzdGF5ZWQgZml4ZWQuICBOb3cgdGhlCmxpbmUgbnVtYmVyIGlzIHJlbWVtYmVyZWQgaW4gdGhlIHdoaWxlIGxvb3AuCgoiY2QgYzovIiBkaWRuJ3Qgd29yayBvbiBNUy1ET1MuICBtY2hfaXNkaXIoKSByZW1vdmVkIGEgdHJhaWxpbmcgc2xhc2guCgpNUy1XaW5kb3dzOiBnZXRmdGltZSgpIGRpZG4ndCB3b3JrIHdoZW4gYSBkaXJlY3RvcnkgaGFkIGEgdHJhaWxpbmcgc2xhc2ggb3IKYmFja3NsYXNoLiAgRGlkbid0IHNob3cgdGhlIHRpbWUgaW4gdGhlIGV4cGxvcmVyIGJlY2F1c2Ugb2YgdGhpcy4KCldoZW4gZG9pbmcgd2lsZGNhcmQgY29tcGxldGlvbiwgYSBkaXJlY3RvcnkgImEvIiBzb3J0ZWQgYWZ0ZXIgImEtYiIuICBOb3cKcmVjb2duaXplIHBhdGggc2VwYXJhdG9ycyB3aGVuIHNvcnRpbmcgZmlsZXMuCgpOb24tVW5peCBzeXN0ZW1zOiBXaGVuIGVkaXRpbmcgImM6L2Rpci8uLi9maWxlIiBhbmQgImM6L2ZpbGUiIHRoZXkgd2VyZQpjcmVhdGVkIGFzIGRpZmZlcmVudCBidWZmZXJzLCBhbHRob3VnaCBpdCdzIHRoZSBzYW1lIGZpbGUuICBFeHBhbmQgdG8gYSBmdWxsCmZpbGUgbmFtZSBhbHNvIHdoZW4gYW4gYWJzb2x1dGUgbmFtZSBjb250YWlucyAiLi4iLgoKImcmIiBkaWRuJ3QgcmVwZWF0IHRoZSBsYXN0IHN1YnN0aXR1dGUgcHJvcGVybHkuCgpXaGVuICdjbGlwYm9hcmQnIHdhcyBzZXQgdG8gInVubmFtZWQiLCBhICJZIiBjb21tYW5kIHdvdWxkIG5vdCB3cml0ZSB0byAiMC4KTm93IG1ha2UgYSBjb3B5IG9mIHJlZ2lzdGVyIDAgdG8gdGhlIGNsaXBib2FyZCByZWdpc3Rlci4KCldoZW4gdGhlIHNlYXJjaCBwYXR0ZXJuIG1hdGNoZXMgaW4gbWFueSB3YXlzLCBpdCBjb3VsZCBub3QgYWx3YXlzIGJlCmludGVycnVwdGVkIHdpdGggYSBDVFJMLUMuICBBbmQgQ1RSTC1DIHdvdWxkIGhhdmUgdG8gYmUgaGl0IG9uY2UgZm9yIGV2ZXJ5CmxpbmUgd2hlbiAnaGxzZWFyY2gnIGlzIG9uLgpXaGVuICdpbmNzZWFyY2gnIGlzIG9uIGFuZCBpbnRlcnJ1cHRpbmcgdGhlIHNlYXJjaCBmb3IgYSBtYXRjaCwgZG9uJ3QgYWJhbmRvbgp0aGUgY29tbWFuZCBsaW5lLgoKV2hlbiB0dXJuaW5nIGEgZGlyZWN0b3J5IG5hbWUgaW50byBhIGZ1bGwgcGF0aCwgZS5nLiwgd2l0aCBmbmFtZW1vZGlmeSgpLApzb21ldGltZXMgYSBzbGFzaCB3YXMgYWRkZWQuICBNYWtlIHRoaXMgY29uc2lzdGVudDogRG9uJ3QgYWRkIGEgc2xhc2guCgpXaGVuIGEgZmlsZSBuYW1lIGNvbnRhaW5zIGEgIiEiLCB1c2luZyBpdCBpbiBhIHNoZWxsIGNvbW1hbmQgd2lsbCBjYXVzZQp0cm91YmxlOiAiOiFjYXQgJSIuICBFc2NhcGUgdGhlICIhIiB0byBhdm9pZCB0aGF0LiAgRXNjYXBlIGl0IGFub3RoZXIgdGltZQp3aGVuICdzaGVsbCcgY29udGFpbnMgInNoIi4KCkNvbXBsZXRpbmcgYSBmaWxlIG5hbWUgdGhhdCBoYXMgYSB0YWlsIHRoYXQgc3RhcnRzIHdpdGggYSAifiIgZGlkbid0IHdvcms6CiI6ZSB2aWV3L348VGFiPiIuCgpVc2luZyBhICI6Y29tbWFuZCIgYXJndW1lbnQgdGhhdCBjb250YWlucyA8IGFuZCA+IGJ1dCBub3QgZm9yIGEgc3BlY2lhbAphcmd1bWVudCB3YXMgbm90IHNraXBwZWQgcHJvcGVybHkuCgpUaGUgRE9TIGluc3RhbGwgcHJvZ3JhbTogT24gV2luMjAwMCB0aGUgY2hlY2sgZm9yIGEgdmltLmV4ZSBvciBndmltLmV4ZSBpbgokUEFUSCBkaWRuJ3Qgd29yaywgaXQgYWx3YXlzIGZvdW5kIGl0IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KUmVuYW1lIHRoZSB2aW0uZXhlIGluIHRoZSBjdXJyZW50IGRpciB0byBhdm9pZCB0aGlzLiAoV2FsdGVyIEJyaXNjb2UpCgpJbiB0aGUgTVMtRE9TL1dpbmRvd3MgaW5zdGFsbCBwcm9ncmFtLCB1c2UgJVZJTSUgaW5zdGVhZCBvZiBhbiBhYnNvbHV0ZSBwYXRoLApzbyB0aGF0IG1vdmluZyBWaW0gcmVxdWlyZXMgb25seSBvbmUgY2hhbmdlIGluIHRoZSBiYXRjaCBmaWxlLgoKTWFjOiBtY2hfRnVsbE5hbWUoKSBjaGFuZ2VkIHRoZSAiZm5hbWUiIGFyZ3VtZW50IGFuZCBkaWRuJ3QgYWx3YXlzIGluaXRpYWxpemUKdGhlIGJ1ZmZlci4KCk1TLURPUzogbWNoX0Z1bGxOYW1lKCkgZGlkbid0IGZpeCBmb3J3YXJkL2JhY2t3YXJkIHNsYXNoZXMgaW4gYW4gYWJzb2x1dGUgZmlsZQpuYW1lLgoKImVjaG8gZXhwYW5kKCIlOnA6aCIpIiB3aXRoIGFuIGVtcHR5IGZpbGUgbmFtZSByZW1vdmVkIG9uZSBkaXJlY3RvcnkgbmFtZSBvbgpNUy1ET1MuICBGb3IgVW5peCwgd2hlbiB0aGUgZmlsZSBuYW1lIGlzIGEgZGlyZWN0b3J5LCB0aGUgZGlyZWN0b3J5IG5hbWUgd2FzCnJlbW92ZWQuICBOb3cgbWFrZSBpdCBjb25zaXN0ZW50OiAiJTpwIiBhZGRzIGEgcGF0aCBzZXBhcmF0b3IgZm9yIGFsbCBzeXN0ZW1zLApidXQgbm8gcGF0aCBzZXBhcmF0b3IgaXMgYWRkZWQgaW4gb3RoZXIgc2l0dWF0aW9ucy4KClVuaXg6IFdoZW4gY2hlY2tpbmcgZm9yIGEgQ1RSTC1DIChjb3VsZCBoYXBwZW4gYW55IHRpbWUpIGFuZCB0aGVyZSBpcyBhbiBYCmV2ZW50IChlLmcuLCBjbGlwYm9hcmQgdXBkYXRlZCkgYW5kIHRoZXJlIGlzIHR5cGVhaGVhZCwgVmltIHdvdWxkIGhhbmcgdW50aWwgYQpjaGFyYWN0ZXIgd2FzIHR5cGVkLgoKTVMtRE9TLCBNUy1XaW5kb3dzIGFuZCBBbWlnYTogZXhwYW5kaW5nICIkRU5WL2ZvbyIgd2hlbiAkRU5WIGVuZHMgaW4gYSBjb2xvbiwKaGFkIHRoZSBzbGFzaCByZW1vdmVkLgoKIjpoZSBcXj0iIGdhdmUgYW4gZXJyb3IgZm9yIHVzaW5nIFxfLiAgIjpoZSBePSIgZGlkbid0IGZpbmQgdGFnIDpzZXRePS4gIEV2ZW4KImhlIDpzZXRePSIgZGlkbid0IGZpbmQgaXQuCgpBIHRhZ3MgZmlsZSBuYW1lICJEOi90YWdzIiB3YXMgdXNlZCBhcyBmaWxlICJ0YWdzIiBpbiAiRDoiLiAgVGhhdCBkb2Vzbid0IHdvcmsKd2hlbiB0aGUgY3VycmVudCBwYXRoIGZvciBEOiBpc24ndCB0aGUgcm9vdCBvZiB0aGUgZHJpdmUuCgpSZW1vdmVkIGNhbGxzIHRvIFh0SW5pdGlhbGl6ZVdpZGdldENsYXNzKCksIHRoZXkgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeS4KCldoZW4gdXNpbmcgYSBkdHRlcm0gb3IgdmFyaW91cyBvdGhlciBjb2xvciB0ZXJtaW5hbHMsIGFuZCB0aGUgTm9ybWFsIGdyb3VwIGhhcwpiZWVuIHNldCB0byB1c2UgYSBkaWZmZXJlbnQgYmFja2dyb3VuZCBjb2xvciwgdGhlIGJhY2tncm91bmQgd291bGRuJ3QgYWx3YXlzCmJlIGRpc3BsYXllZCB3aXRoIHRoYXQgY29sb3IuICBBZGRlZCBjaGVjayBmb3IgInV0IiB0ZXJtY2FwIGVudHJ5OiBJZiBpdCdzCm1pc3NpbmcsIGNsZWFyaW5nIHRoZSBzY3JlZW4gd29uJ3QgZ2l2ZSB1cyB0aGUgY3VycmVudCBiYWNrZ3JvdW5kIGNvbG9yLiAgTmVlZAp0byBkcmF3IGVhY2ggY2hhcmFjdGVyIGluc3RlYWQuICBWaW0gbm93IGFsc28gd29ya3Mgd2hlbiB0aGUgImNsIiAoY2xlYXIKc2NyZWVuKSB0ZXJtY2FwIGVudHJ5IGlzIG1pc3NpbmcuCgpXaGVuIHJlcGVhdGluZyBhICIvIiBzZWFyY2ggY29tbWFuZCB3aXRoIGEgbGluZSBvZmZzZXQsIHRoZSAibiIgZGlkIHVzZSB0aGUKb2Zmc2V0IGJ1dCBkaWRuJ3QgbWFrZSB0aGUgbW90aW9uIGxpbmV3aXNlLiAgTWFkZSAiZC9wYXQvKzIiIGFuZCAiZG4iIGRvIHRoZQpzYW1lLgoKV2luMzI6IFRyeWluZyB0byB1c2UgIjp0ZWFyb2ZmIiBmb3IgYSBtZW51IHRoYXQgZG9lc24ndCBleGlzdCBjYXVzZWQgYSBjcmFzaC4KCk9wZW5QVFkoKSBkaWRuJ3Qgd29yayBvbiBTZXF1ZW50LiAgQWRkIGEgY29uZmlndXJlIGNoZWNrIGZvciBnZXRwc2V1ZG90dHkoKS4KCkMtaW5kZW50aW5nOiBJbmRlbnRlZCBhIGxpbmUgc3RhcnRpbmcgd2l0aCAiKSIgd2l0aCB0aGUgbWF0Y2hpbmcgIigiLCBidXQgbm90CmEgbGluZSBzdGFydGluZyB3aXRoICJ4KSIgbG9va3Mgc3RyYW5nZS4gIEFsc28gY29tcHV0ZSB0aGUgaW5kZW50IGZvciBhbGlnbmluZwp3aXRoIGl0ZW1zIGluc2lkZSB0aGUgKCkgYW5kIHVzZSB0aGUgbG93ZXN0IGluZGVudC4KCk1TLURPUyBhbmQgV2luZG93czogIjpuICoudmltIiBhbHNvIG1hdGNoZWQgZmlsZXMgZW5kaW5nIGluICJ+Ii4KTW92ZWQgbWNoX2V4cGFuZHBhdGgoKSBmcm9tIG9zX3dpbjE2LmMgYW5kIG9zX21zZG9zLmMgdG8gbWlzYzEuYywgdGhleSBhcmUKZXF1YWwuCgpNYWNpbnRvc2g6IChEYW55IFN0LUFtYW50KQotIEluIFZpLWNvbXBhdGlibGUgbW9kZSBkaWRuJ3QgcmVhZCBmaWxlcyB3aXRoIENSIGxpbmUgc2VwYXJhdG9ycy4KLSBGaXhlZCBhIGJ1ZyBpbiB0aGUgaGFuZGxpbmcgb2YgQWN0aXZhdGUvRGVhY3RpdmF0ZSBFdmVudAotIEZpeGVkIGEgYnVnIGluIGd1aV9tY2hfZGlhbG9nICh1c2luZyB3cm9uZyBwb2ludGVyKQoKTXVsdGlieXRlIEdESyBYSU06IFdoaWxlIGNvbXBvc2luZyBhIG11bHRpYnl0ZS13b3JkLCBpZiB1c2VyIHByZXNzZXMgYQptb3VzZSBidXR0b24sIHRoZW4gdGhlIHdvcmQgaXMgcmVtb3ZlZC4gIEl0IHNob3VsZCByZW1haW4gYW5kIGNvbXBvc2luZyBlbmQuCihTdW5nLUh5dW4gTmFtKQoKTVMtRE9TLCBNUy1XaW5kb3dzIGFuZCBPUy8yOiBXaGVuIHJlYWRpbmcgZnJvbSBzdGRpbiwgYXV0b21hdGljIENSLUxGCmNvbnZlcnNpb24gYnkgdGhlIEMgbGlicmFyeSBnb3QgaW4gdGhlIHdheSBvZiBkZXRlY3RpbmcgYSAiZG9zIiAnZmlsZWZvcm1hdCcuCgpXaGVuICdzbWFydGNhc2UnIGlzIHNldCwgcGF0dGVybnMgd2l0aCAiXFMiIHdvdWxkIGFsc28gbWFrZSAnaWdub3JlY2FzZScKcmVzZXQuCgpXaGVuIGNsaWNraW5nIHRoZSBtb3VzZSBpbiBhIGNvbHVtbiBsYXJnZXIgdGhhbiAyMjIsIGl0IG1vdmVkIHRvIHRoZSBmaXJzdApjb2x1bW4uICBDYW4ndCBlbmNvZGUgYSBsYXJnZXIgbnVtYmVyIGluIGEgY2hhcmFjdGVyLiAgTm93IGxpbWl0IHRoZSBudW1iZXIgdG8KMjIyLCBkb24ndCBqdW1wIGJhY2sgdG8gdGhlIGZpcnN0IGNvbHVtbi4KCkdVSTogSW4gc29tZSB2ZXJzaW9ucyBDU0kgd291bGQgY2F1c2UgdHJvdWJsZSwgZWl0aGVyIHdoZW4gdHlwZWQgZGlyZWN0bHkgb3IKd2hlbiBwYXJ0IG9mIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZS4KCldoZW4gdXNpbmcgbXVsdGlieXRlIGNoYXJhY3RlcnMgaW4gYSAiOm5vcm1hbCIgY29tbWFuZCwgYSB0cmFpbGluZyBieXRlIHRoYXQKaXMgQ1NJIG9yIEtfU1BFQ0lBTCBjYXVzZWQgcHJvYmxlbXMuCgpXaWxkbWVudSBkaWRuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KCiI6c2xlZXAgMTAiIGNvdWxkIG5vdCBiZSBpbnRlcnJ1cHRlZCBvbiBXaW5kb3dzLCB3aGlsZSAiZ3MiIGNvdWxkLiAgTWFkZSB0aGVtCmJvdGggd29yayB0aGUgc2FtZS4KClVuaXg6IFdoZW4gd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIgaXMgaW50ZXJydXB0ZWQgYnkgYW4gWC13aW5kb3dzIGV2ZW50IChlLmcuLAp0byBvYnRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBzZWxlY3Rpb24pLCB0aGUgd2FpdCB0aW1lIHdvdWxkIG5vdCBiZSBob25vcmVkLgpBIG1lc3NhZ2UgY291bGQgYmUgb3ZlcndyaXR0ZW4gcXVpY2tseS4gIE5vdyBjb21wdXRlIHRoZSByZW1haW5pbmcgd2FpdGluZwp0aW1lLgoKV2luZG93czogQ29tcGxldGluZyAiXFxzaGFyZVxjJFxTIiBpbnNlcnRlZCBhIGJhY2tzbGFzaCBiZWZvcmUgdGhlICQgYW5kIHRoZW4KdGhlIG5hbWUgaXMgaW52YWxpZC4gIERvbid0IGluc2VydCB0aGUgYmFja3NsYXNoLgoKV2hlbiBkb2luZyBhbiBhdXRvLXdyaXRlIGJlZm9yZSAiOm1ha2UiLCBJT2J1ZmYgd2FzIG92ZXJ3cml0dGVuIGFuZCB0aGUgd3JvbmcKdGV4dCBkaXNwbGF5ZWQgbGF0ZXIuCgpPbiB0aGUgTWFjIHRoZSBkaXJlY3RvcmllcyAiYzovdG1wIiBhbmQgImM6L3RlbXAiIHdlcmUgdXNlZCBpbiB0aGUgZGVmYXVsdHMKZm9yICdiYWNrdXBkaXInIGFuZCAnZGlyZWN0b3J5JywgdGhleSBkb24ndCBleGlzdC4KClRoZSBjaGVjayBmb3IgYSBuZXcgZmlsZSBub3QgdG8gYmUgb24gYW4gTVMtRE9TIGZpbGVzeXN0ZW0gY3JlYXRlZCB0aGUgZmlsZQp0ZW1wb3JhcmlseSwgd2hpY2ggY2FuIGJlIHNsb3cuICBEb24ndCBkbyB0aGlzIGlmIHRoZXJlIGlzIGFub3RoZXIgY2hlY2sgZm9yCnRoZSBzd2FwIGZpbGUgYmVpbmcgb24gYW4gTVMtRE9TIGZpbGVzeXN0ZW0uCgpEb24ndCBnaXZlIHRoZSAiQ2hhbmdpbmcgYSByZWFkb25seSBmaWxlIiB3YXJuaW5nIHdoZW4gcmVhZGluZyBmcm9tIHN0ZGluLgoKV2hlbiB1c2luZyB0aGUgIlNhdmUgQXMiIG1lbnUgZW50cnkgYW5kIG5vdCBlbnRlcmluZyBhIGZpbGUgbmFtZSwgd291bGQgZ2V0IGFuCmVycm9yIG1lc3NhZ2UgZm9yIHRoZSB0cmFpbGluZyAiOmVkaXQgIyIuICBOb3cgb25seSBkbyB0aGF0IHdoZW4gdGhlCmFsdGVybmF0ZSBmaWxlIG5hbWUgd2FzIGNoYW5nZWQuCgpXaGVuIFZpbSBvd25zIHRoZSBYMTEgc2VsZWN0aW9uIGFuZCBpcyBiZWluZyBzdXNwZW5kZWQsIGFuIGFwcGxpY2F0aW9uIHRoYXQKdHJpZXMgdG8gdXNlIHRoZSBzZWxlY3Rpb24gaGFuZ3MuICBXaGVuIFZpbSBjb250aW51ZXMgaXQgY291bGQgbm8gbG9uZ2VyCm9idGFpbiB0aGUgc2VsZWN0aW9uLiAgTm93IGdpdmUgdXAgdGhlIHNlbGVjdGlvbiB3aGVuIHN1c3BlbmRpbmcuCgpvcHRpb24uaCBhbmQgZ2xvYmFscy5oIHdlcmUgaW5jbHVkZWQgaW4gc29tZSBmaWxlcywgd2hpbGUgdGhleSB3ZXJlIGFscmVhZHkKaW5jbHVkZWQgaW4gdmltLmguICBNb3ZlZCB0aGUgZGVmaW5pdGlvbiBvZiBFWFRFUk4gdG8gdmltLmggdG8gYXZvaWQgZG9pbmcgaXQKdHdpY2UuCgpXaGVuIHJlcGVhdGluZyBhbiBvcGVyYXRvciB0aGF0IHVzZWQgYSBzZWFyY2ggcGF0dGVybiBhbmQgdGhlIHNlYXJjaCBwYXR0ZXJuCmNvbnRhaW5lZCBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBhIHNwZWNpYWwgbWVhbmluZyBvbiB0aGUgY21kbGluZSAoZS5nLiwgQ1RSTC1VKQppdCBkaWRuJ3Qgd29yay4KCkZpeGVkIHZhcmlvdXMgcHJvYmxlbXMgd2l0aCB1c2luZyBLX1NQRUNJQUwgKDB4ODApIGFuZCBDU0kgKDB4OWIpIGFzIGEgYnl0ZSBpbgphIChtdWx0aWJ5dGUpIGNoYXJhY3Rlci4gIEZvciBleGFtcGxlLCB0aGUgInIiIGNvbW1hbmQgY291bGQgbm90IGJlIHJlcGVhdGVkLgoKVGhlIERPUy9XaW5kb3dzIGluc3RhbGwgcHJvZ3JhbSBkaWRuJ3QgYWx3YXlzIHdvcmsgZnJvbSBhIGRpcmVjdG9yeSB3aXRoIGEKbG9uZyBmaWxlbmFtZSwgYmVjYXVzZSAkVklNIGFuZCB0aGUgZXhlY3V0YWJsZSBuYW1lIHdvdWxkIG5vdCBoYXZlIHRoZSBzYW1lCnBhdGguCgpNdWx0aS1ieXRlOgotIFVzaW5nIGFuIGFueS1idXQgY2hhcmFjdGVyIHJhbmdlIFteeF0gaW4gYSByZWdleHAgZGlkbid0IHdvcmsgZm9yIFVURi04LgogIChNdXJhb2thIFRhcm8pCi0gV2hlbiBiYWNrc3BhY2luZyBvdmVyIGluc2VydGVkIGNoYXJhY3RlcnMgaW4gUmVwbGFjZSBtb2RlIG11bHRpLWJ5dGUKICBjaGFyYWN0ZXJzIHdlcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5LiAoTXVyYW9rYSBUYXJvKQotIFNlYXJjaCBjb21tYW5kcyAiIyIgYW5kICIqIiBkaWRuJ3Qgd29yayB3aXRoIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLiAoTXVyYW9rYQogIFRhcm8pCi0gV29yZCBjb21wbGV0aW9uIGluIEluc2VydCBtb2RlIGRpZG4ndCB3b3JrIHdpdGggbXVsdGlieXRlIGNoYXJhY3RlcnMuCiAgKE11cmFva2EgVGFybykKLSBBdGhlbmEvTW90aWYgR1VJOiB3aGVuICdsaW5lc3BhY2UnIGlzIG5vbi16ZXJvIHRoZSBjdXJzb3Igd291bGQgYmUgZHJhd24gdG9vCiAgd2lkZSAobnVtYmVyIG9mIGJ5dGVzIGluc3RlYWQgb2YgY2VsbCB3aWR0aCkuCi0gV2hlbiBjaGFuZ2luZyAnZW5jb2RpbmcnIHRvICJldWMtanAiIGFuZCBpbnNlcnRpbmcgYSBjaGFyYWN0ZXIgVmltIHdvdWxkCiAgY3Jhc2guCi0gRm9yIGV1Yy1qcCBjaGFyYWN0ZXJzIHBvc2l0aW9uaW5nIHRoZSBjdXJzb3Igd291bGQgc29tZXRpbWVzIGJlIHdyb25nLgogIEFsc28sIHdpdGggdHdvIGNoYXJhY3RlcnMgd2l0aCAweDhlIGxlYWRpbmcgYnl0ZSBvbmx5IHRoZSBmaXJzdCBvbmUgd291bGQgYmUKICBkaXNwbGF5ZWQuCi0gV2hlbiB1c2luZyBEWU5BTUlDX0lDT05WIG9uIFdpbjMyIGNvbnZlcnNpb24gbWlnaHQgZmFpbCBiZWNhdXNlIG9mIHVzaW5nIHRoZQogIHdyb25nIGVycm9yIG51bWJlci4gKE11cmFva2EgVGFybykKLSBVc2luZyBBbHQteCBpbiB0aGUgR1VJIHdoaWxlICdlbmNvZGluZycgd2FzIHNldCB0byAidXRmLTgiIGRpZG4ndCBwcm9kdWNlCiAgdGhlIHJpZ2h0IGNoYXJhY3Rlci4KLSBXaGVuIHVzaW5nIFZpc3VhbCBibG9jayBzZWxlY3Rpb24gYW5kIG9ubHkgdGhlIGxlZnQgaGFsdmUgb2YgYSBkb3VibGUtd2lkZQogIGNoYXJhY3RlciBpcyBzZWxlY3RlZCwgdGhlIGhpZ2hsaWdodGluZyBjb250aW51ZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KLSBWaXN1YWwtYmxvY2sgZGVsZXRlIGRpZG4ndCB3b3JrIHByb3Blcmx5IHdoZW4gZGVsZXRpbmcgdGhlIHJpZ2h0IGhhbHZlIG9mIGEKICBkb3VibGUtd2lkZSBjaGFyYWN0ZXIuCi0gT3ZlcnN0cmlrZSBtb2RlIGZvciB0aGUgY21kbGluZSByZXBsYWNlZCBvbmx5IHRoZSBmaXJzdCBieXRlIG9mIGEgbXVsdGlieXRlCiAgY2hhcmFjdGVyLgotIFRoZSBjdXJzb3IgaW4gUmVwbGFjZSBtb2RlIChhbHNvIGluIHRoZSBjbWRsaW5lKSB3YXMgdG8gc21hbGwgb24gYQogIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4KLSBXaGVuIGEgbXVsdGlieXRlIGNoYXJhY3RlciBjb250YWluZWQgYSAweDgwIGJ5dGUsIGl0IGRpZG4ndCB3b3JrICh3YXMgdXNpbmcKICBhIENTSSBieXRlIGluc3RlYWQpLiAoTXVyYW9rYSBUYXJvKQotIFdvcmR3aXNlIHNlbGVjdGlvbiB3aXRoIHRoZSBtb3VzZSBkaWRuJ3Qgd29yay4KLSBZYW5raW5nIGEgbW9kZWxlc3Mgc2VsZWN0aW9uIG9mIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBkaWRuJ3Qgd29yay4KLSBXaGVuICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCBzZWxlY3RpbmcgYSB3b3JkIHRoYXQgZW5kcyBpbiBhIG11bHRpLWJ5dGUKICBjaGFyYWN0ZXIgdXNlZCB3cm9uZyBoaWdobGlnaHRpbmcgZm9yIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyLgoKV2luMzIgd2l0aCBNYWtlX212Yy5tYWs6IERpZG4ndCBjb21waWxlIGZvciBkZWJ1Z2dpbmcuIChDcmFpZyBCYXJraG91c2UpCgpXaW4zMiBHVUk6IFdoZW4gInZpbXJ1bi5leGUiIGlzIHVzZWQgdG8gZXhlY3V0ZSBhbiBleHRlcm5hbCBjb21tYW5kLCBkb24ndApnaXZlIGEgbWVzc2FnZSBib3ggd2l0aCB0aGUgcmV0dXJuIHZhbHVlLCBpdCB3YXMgYWxyZWFkeSBwcmludGVkIGJ5IHZpbXJ1bi4KQWxzbyBhdm9pZCBwcmludGluZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBzaGVsbCB3aGVuICI6c2lsZW50ISIgaXMgdXNlZC4KCldpbjMyOiBzZWxlY3RpbmcgYSBsb3Qgb2YgdGV4dCBhbmQgdXNpbmcgdGhlICJmaW5kL3JlcGxhY2UiIGRpYWxvZyBjYXVzZWQgYQpjcmFzaC4KClgxMSBHVUk6IFdoZW4gdHlwaW5nIGEgY2hhcmFjdGVyIHdpdGggdGhlIDh0aCBiaXQgc2V0IGFuZCB0aGUgTWV0YS9BbHQKbW9kaWZpZXIsIHRoZSBtb2RpZmllciB3YXMgcmVtb3ZlZCB3aXRob3V0IGNoYW5naW5nIHRoZSBjaGFyYWN0ZXIuCgpUcnVuY2F0aW5nIGEgbWVzc2FnZSB0byBtYWtlIGl0IGZpdCBvbiB0aGUgY29tbWFuZCBsaW5lLCB1c2luZyAiLi4uIiBmb3IgdGhlCm1pZGRsZSwgZGlkbid0IGFsd2F5cyBjb21wdXRlIHRoZSBzcGFjZSBjb3JyZWN0bHkuCgpDb3VsZCBub3QgaW1hcCA8Qy1APi4gIE5vdyBpdCB3b3JrcyBsaWtlIDxOdWw+LgoKVk1TOgotIEZpeGVkIGEgZmV3IHRoaW5ncyBmb3IgVkFYQy4gIG9zX3Ztc19maXguY29tIGhhZCBzb21lIHN0cmFuZ2UgQ1RSTC1NCiAgY2hhcmFjdGVycy4gKFpvbHRhbiBBcnBhZGZmeSBhbmQgSm9obiBXLiBIYW1pbGwpCi0gQWRkZWQgVk1TLXNwZWNpZmljIGRlZmF1bHRzIGZvciB0aGUgJ2lzZm5hbWUnIGFuZCAnaXNwcmludCcgb3B0aW9ucy4KICAoWm9sdGFuIEFycGFkZmZ5KQotIFJlbW92ZWQgb3Nfdm1zX29zZGVmLmgsIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgpUaGUgZ3ppcCBwbHVnaW4gdXNlZCBhICI6bm9ybWFsIiBjb21tYW5kLCB0aGlzIGRvZXNuJ3Qgd29yayB3aGVuIGRyb3BwaW5nIGEKY29tcHJlc3NlZCBmaWxlIG9uIFZpbS4KCkluIHZlcnkgcmFyZSBzaXR1YXRpb25zIGEgYmluYXJ5IHNlYXJjaCBmb3IgYSB0YWcgd291bGQgZmFpbCwgYmVjYXVzZSBhbgp1bmluaXRpYWxpemVkIHZhbHVlIGhhcHBlbnMgdG8gYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgdGFnIGZpbGUuIChOYXJlbmRyYW4pCgpXaGVuIHVzaW5nIEJ1ZkVudGVyIGFuZCBCdWZMZWF2ZSBhdXRvY29tbWFuZHMgdG8gZW5hYmxlL2Rpc2FibGUgYSBtZW51LCBpdAp3YXNuJ3QgdXBkYXRlZCByaWdodCBhd2F5LgoKV2hlbiBkb2luZyBhIHJlcGxhY2Ugd2l0aCB0aGUgImMib25maXJtIGZsYWcsIHRoZSBjdXJzb3Igd2FzIHBvc2l0aW9uZWQgYWZ0ZXIKdGhlIHJ1bGVyLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSBxdWVzdGlvbi4gIFdpdGggYSBsb25nIHJlcGxhY2VtZW50IHN0cmluZyB0aGUKc2NyZWVuIGNvdWxkIHNjcm9sbCB1cCBhbmQgY2F1c2UgYSAibW9yZSIgcHJvbXB0LiAgTm93IHRoZSBtZXNzYWdlIGlzCnRydW5jYXRlZCB0byBtYWtlIGl0IGZpdC4KCk1vdGlmOiBUaGUgYXV0b2NvbmYgY2hlY2sgZm9yIHRoZSBYcCBsaWJyYXJ5IGRpZG4ndCB3b3JrLgoKV2hlbiAndmVyYm9zZScgaXMgc2V0IHRvIGxpc3QgbGluZXMgb2YgYSBzb3VyY2VkIGZpbGUsIGRlZmluaW5nIGEgZnVuY3Rpb24Kd291bGQgcmVzZXQgdGhlIGNvdW50ZXIgdXNlZCBmb3IgdGhlICJtb3JlIiBwcm9tcHQuCgpJbiB0aGUgV2luMzIgZmluZC9yZXBsYWNlIGRpYWxvZywgYSAnLycgY2hhcmFjdGVyIGNhdXNlZCBwcm9ibGVtcy4gIEVzY2FwZSBpdAp3aXRoIGEgYmFja3NsYXNoLgoKU3RhcnRpbmcgYSBzaGVsbCB3aXRoICI6c2giIHdhcyBkaWZmZXJlbnQgZnJvbSBzdGFydGluZyBhIHNoZWxsIGZvciBDVFJMLVoKd2hlbiBzdXNwZW5kaW5nIGRvZXNuJ3Qgd29yay4gIFRoZXkgbm93IHdvcmsgdGhlIHNhbWUgd2F5LgoKSnVtcGluZyB0byBhIGZpbGUgbWFyayB3aGlsZSBpbiBhIGNoYW5nZWQgYnVmZmVyIGdhdmUgYSAibWFyayBub3Qgc2V0IiBlcnJvci4KCiI6ZXhlY3V0ZSBoaXN0Z2V0KCJjbWQiKSIgY2F1c2VzIGFuIGVuZGxlc3MgbG9vcCBhbmQgY3Jhc2hlZCBWaW0uICBOb3cgY2F0Y2gKYWxsIGNvbW1hbmRzIHRoYXQgY2F1c2UgdG9vIG11Y2ggcmVjdXJzaXZlbmVzcy4KClJlbW92ZWQgIkZhaWxlZCB0byBvcGVuIGlucHV0IG1ldGhvZCIgZXJyb3IgbWVzc2FnZSwgdG9vIG1hbnkgcGVvcGxlIGdvdCB0aGlzCndoZW4gdGhleSBkaWRuJ3Qgd2FudCB0byB1c2UgYSBYSU0uCgpHVUk6IFdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK3dpbmRvd3MgZmVhdHVyZSwgdGhlIHNjcm9sbGJhciB3b3VsZCBzdGFydApiZWxvdyBsaW5lIG9uZS4KClJlbW92ZWQgdGhlIHRyaWNrIHdpdGggcmVkZWZpbmluZyBjaGFyYWN0ZXIgY2xhc3MgZnVuY3Rpb25zIGZyb20gcmVnZXhwLmMuCgpXaW4zMiBHVUk6IEZpbmQgZGlhbG9nIGdpdmVzIGZvY3VzIGJhY2sgdG8gbWFpbiB3aW5kb3csIHdoZW4gdHlwaW5nIGEKY2hhcmFjdGVyIG1vdXNlIHBvaW50ZXIgaXMgYmxhbmtlZCwgaXQgZGlkbid0IHJlYXBwZWFyIHdoZW4gbW92aW5nIGl0IGluIHRoZQpkaWFsb2cgd2luZG93LiAoVmluY2UgTmVncmkpCgpXaGVuIHJlY29yZGluZyBhbmQgdHlwaW5nIGEgQ1RSTC1DLCBubyBjaGFyYWN0ZXIgd2FzIHJlY29yZGVkLiAgV2hlbiBpbiBJbnNlcnQKbW9kZSBvciBjYW5jZWxsaW5nIGhhbGYgYSBjb21tYW5kLCBwbGF5aW5nIGJhY2sgdGhlIHJlY29yZGVkIHNlcXVlbmNlIHdvdWxkbid0CndvcmsuICBOb3cgcmVjb3JkIHRoZSBDVFJMLUMuCgpXaGVuIHRoZSBHVUkgd2FzIHN0YXJ0ZWQsIG1vdXNlIGNvZGVzIGZvciBERUMgYW5kIG5ldHRlcm0gd2VyZSBzdGlsbCBjaGVja2VkCmZvci4KCkdVSTogV2hlbiBzY3JvbGxpbmcgYW5kICd3cml0ZWRlbGF5JyBpcyBub24temVybywgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUKY3Vyc29yIHdhcyBkaXNwbGF5ZWQgaW4gdGhlIHdyb25nIHBvc2l0aW9uIChvbmUgbGluZSBhYm92ZS9iZWxvdyB3aXRoCkNUUkwtRS9DVFJMLVkpLgoKQSAiOm5vcm1hbCIgY29tbWFuZCB3b3VsZCByZXNldCB0aGUgJ3Njcm9sbGJpbmQnIGluZm8uICBDYXVzZXMgcHJvYmxlbXMgd2hlbgp1c2luZyBhICI6bm9ybWFsIiBjb21tYW5kIGluIGFuIGF1dG9jb21tYW5kIGZvciBvcGVuaW5nIGEgZmlsZS4KCldpbmRvd3MgR1VJOiBhIHBvaW50IHNpemUgd2l0aCBhIGRvdCwgbGlrZSAiNy41Iiwgd2Fzbid0IHJlY29nbml6ZWQuIChNdXJhb2thClRhcm8pCgpXaGVuICdzY3JvbGxiaW5kJyB3YXNuJ3Qgc2V0IHdvdWxkIHN0aWxsIHJlbWVtYmVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLAp3YXN0aW5nIHRpbWUuCgpHVEs6IENyYXNoIHdoZW4gJ3NoZWxsJyBkb2Vzbid0IGV4aXN0IGFuZCBkb2luZyI6IWxzIi4gIFVzZSBfZXhpdCgpIGluc3RlYWQgb2YKZXhpdCgpIHdoZW4gdGhlIGNoaWxkIGNvdWxkbid0IGV4ZWN1dGUgdGhlIHNoZWxsLgoKTXVsdGktYnl0ZToKLSBHVUkgd2l0aCBkb3VibGUtYnl0ZSBlbmNvZGluZzogYSBtb3VzZSBjbGljayBpbiBsZWZ0IGhhbHZlIG9mIGRvdWJsZS13aWRlCiAgY2hhcmFjdGVyIHB1dCB0aGUgY3Vyc29yIGluIHByZXZpb3VzIGNoYXIuCi0gVXNpbmcgZG91YmxlLWJ5dGUgZW5jb2RpbmcgYW5kICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiOiAidmV5IiBhbmQgIl5WZXkiCiAgaW5jbHVkZWQgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgd29yZC4KLSBXaGVuIHVzaW5nIGEgZG91YmxlLWJ5dGUgZW5jb2RpbmcgYW5kIHRoZXJlIGlzIGEgbGVhZCBieXRlIGF0IHRoZSBlbmQgb2YgdGhlCiAgbGluZSwgdGhlIHByZWNlZGluZyBsaW5lIHdvdWxkIGJlIGRpc3BsYXllZC4gICJnYSIgYWxzbyBzaG93ZWQgd3JvbmcgaW5mby4KLSAiZ2YiIGRpZG4ndCBpbmNsdWRlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGN1cnNvciBwcm9wZXJseS4KICAoTXVyYW9rYSBUYXJvKQoKR1VJOiBUaGUgY3Vyc29yIHdhcyBzb21ldGltZXMgbm90IHJlbW92ZWQgd2hlbiBzY3JvbGxpbmcuICBDaGFuZ2VkIHRoZSBwb2xpY3kKZnJvbSByZWRyYXdpbmcgdGhlIGN1cnNvciBhZnRlciBlYWNoIGNhbGwgdG8gZ3VpX3dyaXRlKCkgdG8gb25seSB1cGRhdGUgaXQgYXQKdGhlIGVuZCBvZiB1cGRhdGVfc2NyZWVuKCkgb3Igd2hlbiBzZXR0aW5nIHRoZSBjdXJzb3IgcG9zaXRpb24uICBBbHNvIG9ubHkKdXBkYXRlIHRoZSBzY3JvbGxiYXJzIGF0IHRoZSBlbmQgb2YgdXBkYXRlX3NjcmVlbigpLCB0aGF0J3MgdGhlIG9ubHkgcGxhY2UKd2hlcmUgdGhlIHdpbmRvdyB0ZXh0IG1heSBoYXZlIGJlZW4gc2Nyb2xsZWQuCgpGb3JtYXR0aW5nICIvKjxUYWI+bG9uZyB0ZXh0IiwgcHJvZHVjZWQgIiogPFRhYj4iIGluIHRoZSBuZXh0IGxpbmUuICBOb3cKcmVtb3ZlIHRoZSBzcGFjZSBiZWZvcmUgdGhlIFRhYi4KRm9ybWF0dGluZyAiLyo8VGFiPiAgbG9uZyB0ZXh0IiwgcHJvZHVjZWQgIiogPFRhYj4gbG9uZyB0ZXh0IiBpbiB0aGUgbmV4dApsaW5lLiAgTm93IGtlZXAgdGhlIHNwYWNlIGFmdGVyIHRoZSBUYWIuCgpJbiBzb21lIHBsYWNlcyBub24tQVNDSUkgYWxwaGFiZXRpY2FsIGNoYXJhY3RlcnMgd2VyZSBhY2NlcHRlZCwgd2hpY2ggY291bGQKY2F1c2UgcHJvYmxlbXMuICBGb3IgZXhhbXBsZSwgIjpYIiAoWCBiZWluZyBzdWNoIGEgY2hhcmFjdGVyKS4KCldoZW4gYSBwYXR0ZXJuIG1hdGNoZXMgdGhlIGVuZCBvZiB0aGUgbGluZSwgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lIHdhcwpoaWdobGlnaHRlZCBmb3IgJ2hsc2VhcmNoJy4gIFRoYXQgbG9va3Mgd3JvbmcgZm9yICIvXCUzYyIuICBOb3cgaGlnaGxpZ2h0IHRoZQpjaGFyYWN0ZXIganVzdCBhZnRlciB0aGUgbGluZS4KCk1vdGlmOiBJZiBhIGRpYWxvZyB3YXMgY2xvc2VkIGJ5IGNsaWNraW5nIG9uIHRoZSAiWCIgb2YgdGhlIHdpbmRvdyBmcmFtZSBWaW0Kd291bGQgbm8gbG9uZ2VyIHJlc3BvbmQuCgpXaGVuIHVzaW5nIENUUkwtWCBvciBDVFJMLUEgb24gYSBudW1iZXIgd2l0aCBtYW55IGxlYWRpbmcgemVyb3MsIFZpbSB3b3VsZApjcmFzaC4gKE1hdHN1bW90bykKCldoZW4gJ2luc2VydG1vZGUnIGlzIHNldCwgdGhlIG1hcHBpbmcgaW4gbXN3aW4udmltIGZvciBDVFJMLVYgZGlkbid0IHdvcmsgaW4KU2VsZWN0IG1vZGUuICBJbnNlcnQgbW9kZSB3YXNuJ3QgcmVzdGFydGVkIGFmdGVyIG92ZXJ3cml0aW5nIHRoZSB0ZXh0LgpOb3cgYWxsb3cgbmVzdGluZyBJbnNlcnQgbW9kZSB3aXRoIGluc2VydCBhbmQgY2hhbmdlIGNvbW1hbmRzLiAgQ1RSTC1PCmN3Zm9vPEVzYz4gbm93IGFsc28gd29ya3MuCgpDbGlja2luZyB3aXRoIHRoZSByaWdodCBtb3VzZSBidXR0b24gaW4gYW5vdGhlciB3aW5kb3cgc3RhcnRlZCBWaXN1YWwgbW9kZSwKYnV0IHVzZWQgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHdpbmRvdy4gIENhdXNlZCBtbF9nZXQgZXJyb3JzIHdoZW4KdGhlIGxpbmUgbnVtYmVyIHdhcyBpbnZhbGlkLiAgTm93IHN0YXkgaW4gdGhlIHNhbWUgd2luZG93LgoKV2hlbiAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgImd2IiBzb21ldGltZXMgc2VsZWN0ZWQgb25lIGNoYXJhY3RlciBmZXdlci4KCldoZW4gJ2NvbW1lbnRzJyBjb250YWlucyBtb3JlIHRoYW4gb25lIHN0YXJ0L21pZGRsZS9lbmQgdHJpcGxldCwgdGhlIG9wdGlvbmFsCmZsYWdzIGNvdWxkIGJlIG1peGVkIHVwLiAgQWxzbyBkaWRuJ3QgYWxpZ24gdGhlIGVuZCB3aXRoIHRoZSBtaWRkbGUgcGFydC4KCkRvdWJsZS1yaWdodC1jbGljayBpbiBWaXN1YWwgbW9kZSBkaWRuJ3QgdXBkYXRlIHRoZSBzaG93biBtb2RlLgoKV2hlbiB0aGUgTm9ybWFsIGdyb3VwIGhhcyBhIGZvbnQgbmFtZSwgaXQgd2FzIG5ldmVyIHVzZWQgd2hlbiBzdGFydGluZyB1cC4KTm93IHVzZSBpdCB3aGVuICdndWlmb250JyBhbmQgJ2d1aWZvbnRzZXQnIGFyZSBlbXB0eS4KU2V0dGluZyBhIGZvbnQgbmFtZSB0byBhIGhpZ2hsaWdodCBncm91cCBiZWZvcmUgdGhlIEdVSSB3YXMgc3RhcnRlZCBkaWRuJ3QKd29yay4KCiJtYWtlIHRlc3QiIGRpZG4ndCB1c2UgdGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBWaW0gZXhlY3V0YWJsZS4KCidjaW5kZW50JyBwcm9ibGVtczoKLSBBbGlnbmVkIHdpdGggYW4gImVsc2UiIGluc2lkZSBhIGRvLXdoaWxlIGxvb3AgZm9yIGEgbGluZSBiZWxvdyB0aGF0IGxvb3AuCiAgKE1laWtlbCBCcmFuZG1leWVyKQotIEEgbGluZSBiZWZvcmUgYSBmdW5jdGlvbiB3b3VsZCBiZSBpbmRlbnRlZCBldmVuIHdoZW4gdGVybWluYXRlZCB3aXRoIGEKICBzZW1pY29sb24uIChNZWlrZWwgQnJhbmRtZXllcikKLSAnY2luZGVudCcgZ2F2ZSB0b28gbXVjaCBpbmRlbnQgdG8gYSBsaW5lIGFmdGVyIGEgIn07IiB0aGF0IGVuZHMgYW4gYXJyYXkKICBpbml0LgotIFN1cHBvcnQgZGVjbGFyYXRpb24gbGluZXMgZW5kaW5nIGluICIsIiBhbmQgIlwiLiAgKE1laWtlbCBCcmFuZG1leWVyKQotIEEgY2FzZSBzdGF0ZW1lbnQgaW5zaWRlIGEgZG8td2hpbGUgbG9vcCB3YXMgdXNlZCBmb3IgaW5kZW50aW5nIGEgbGluZSBhZnRlcgogIHRoZSBkby13aGlsZSBsb29wLiAoTWVpa2VsIEJyYW5kbWV5ZXIpCi0gV2hlbiBza2lwcGluZyBhIHN0cmluZyBpbiBhIGxpbmUgd2l0aCBvbmUgZG91YmxlIHF1b3RlIGl0IGNvdWxkIGNvbnRpbnVlIGluCiAgdGhlIHByZXZpb3VzIGxpbmUuIChNZWlrZWwgQnJhbmRtZXllcikKCldoZW4gJ2xpc3QnIGlzIHNldCwgJ2hsc2VhcmNoJyBkaWRuJ3QgaGlnaGxpZ2h0IGEgbWF0Y2ggYXQgdGhlIGVuZCBvZiB0aGUKbGluZS4gIE5vdyBoaWdobGlnaHQgdGhlICckJy4KClRoZSBQYXN0ZSBtZW51IGl0ZW0gaW4gdGhlIG1lbnUgYmFyLCB0aGUgcG9wdXAgbWVudSBhbmQgdGhlIHRvb2xiYXIgd2VyZSBhbGwKZGlmZmVyZW50LiAgTm93IG1hZGUgdGhlbSBhbGwgZXF1YWwgdG8gaG93IGl0IHdhcyBkb25lIGluIG1zd2luLnZpbS4KCnN0X2RldiBjYW4gYmUgc21hbGxlciB0aGFuICJ1bnNpZ25lZCIuICBUaGUgY29tcGlsZXIgbWF5IGdpdmUgYW4gb3ZlcmZsb3cKd2FybmluZy4gIEFkZGVkIGEgY29uZmlndXJlIGNoZWNrIGZvciBkZXZfdC4KCkF0aGVuYTogY2xvc2luZyBhIGNvbmZpcm0oKSBkaWFsb2cga2lsbGVkIFZpbS4KClZhcmlvdXMgdHlwb3MgaW4gdGhlIGRvY3VtZW50YXRpb24uIChNYXR0IER1bmZvcmQpCgpQeXRob24gaW50ZXJmYWNlOiBUaGUgZGVmaW5pdGlvbiBvZiBfREVCVUcgY291bGQgY2F1c2UgdHJvdWJsZSwgdW5kZWZpbmUgaXQuClRoZSBlcnJvciBtZXNzYWdlIGZvciBub3QgYmVpbmcgYWJsZSB0byBsb2FkIHRoZSBzaGFyZWQgbGlicmFyeSB3YXNuJ3QKdHJhbnNsYXRlZC4gIChNdXJhb2thIFRhcm8pCgpNYWM6IChEYW55IFN0LUFtYW50IGFuZCBBeGVsIEtpZWxob3JuKQotIFNldmVyYWwgZml4ZXMuCi0gVmltIHdhcyBlYXRpbmcgODAlIG9mIHRoZSBDUFUgdGltZS4KLSBUaGUgcHJvamVjdCBvc19tYWMucGJ4cHJvaiBkaWRuJ3Qgd29yaywgIE1vdmVkIGl0IHRvIGEgc3ViZGlyZWN0b3J5LgotIE1hZGUgdGhlIG1lbnUgcHJpb3JpdHkgd29yayBmb3IgdGhlIG1lbnViYXIuCi0gRml4ZWQgYSBwcm9ibGVtIHdpdGggZHJhZ2dpbmcgdGhlIHNjcm9sbGJhci4KLSBDbGVhbmVkIHVwIHRoZSB2YXJpb3VzICNpZmRlZnMuCgpVbml4OiBXaGVuIGNhdGNoaW5nIGEgZGVhZGx5IHNpZ25hbCBhbmQgd2Uga2VlcCBnZXR0aW5nIG9uZSB1c2UgX2V4aXQoKSB0bwpleGl0IGluIGEgcXVpY2sgYW5kIGRpcnR5IHdheS4KCkF0aGVuYSBtZW51IG9yZGVyaW5nIGRpZG4ndCB3b3JrIGNvcnJlY3RseS4gKERhdmlkIEhhcnJpc29uKQoKQSAiOm1ha2UiIG9yICI6Z3JlcCIgY29tbWFuZCB3aXRoIGEgbG9uZyBhcmd1bWVudCBjb3VsZCBjYXVzZSBhIGNyYXNoLgoKRG9pbmcgIjpuZXcgZmlsZSIgYW5kIHVzaW5nICJRdWl0IiBmb3IgdGhlIEFUVEVOVElPTiBkaWFsb2cgc3RpbGwgb3BlbmVkIGEgbmV3CndpbmRvdy4KCkdUSzogV2hlbiBzdGFydGluZyB0aGUgR1VJIGFuZCB0aGVyZSBpcyBhbiBlcnJvciBpbiB0aGUgLnZpbXJjIGZpbGUsIGRvbid0CnByZXNlbnQgdGhlIHdhaXQtcmV0dXJuIHByb21wdCwgc2luY2UgdGhlIG1lc3NhZ2Ugd2FzIGdpdmVuIGluIHRoZSB0ZXJtaW5hbC4KCldoZW4gdGhlcmUgd2FzIGFuIGVycm9yIGluIGEgLnZpbXJjIGZpbGUgdGhlIHRlcm1pbmFsIHdoZXJlIGd2aW0gd2FzIHN0YXJ0ZWQKY291bGQgYmUgY2xlYXJlZC4gIFNldCBtc2dfcm93IGluIG1haW4uYyBiZWZvcmUgd3JpdGluZyBhbnkgbWVzc2FnZXMuCgpHVEsgYW5kIFgxMSBHVUk6IFdoZW4gdHJ5aW5nIHRvIHJlYWQgY2hhcmFjdGVycyBmcm9tIHRoZSB1c2VyIChlLmcuIHdpdGgKaW5wdXQoKSkgYmVmb3JlIHRoZSBWaW0gd2luZG93IHdhcyBvcGVuZWQgY2F1c2VkIFZpbSB0byBoYW5nIHdoZW4gaXQgd2FzCnN0YXJ0ZWQgZnJvbSB0aGUgZGVza3RvcC4KCk9TLzM5MCB1c2VzIDMxIGJpdCBwb2ludGVycy4gIFRoYXQgYnJva2Ugc29tZSBjb21wdXRhdGlvbnMgd2l0aCBNQVhfQ09MLgpSZWR1Y2UgTUFYX0NPTCBieSBvbmUgYml0IGZvciBPUy8zOTAuIChSYWxmIFNjaGFuZGwpCgpXaGVuIGRlZmluaW5nIGEgZnVuY3Rpb24gYW5kIGl0IGFscmVhZHkgZXhpc3RzLCBWaW0gZGlkbid0IHNheSBpdCBleGlzdGVkCnVudGlsIGFmdGVyIHR5cGluZyBpdC4gIE5vdyBkbyB0aGlzIHJpZ2h0IGF3YXkgd2hlbiB0eXBpbmcgaXQuCgpUaGUgbWVzc2FnZSByZW1lbWJlcmVkIGZvciBkaXNwbGF5aW5nIGxhdGVyIChrZWVwX21zZykgd2FzIHNvbWV0aW1lcyBwb2ludGluZwppbnRvIGEgZ2VuZXJpYyBidWZmZXIsIHdoaWNoIG1pZ2h0IGJlIGNoYW5nZWQgYnkgdGhlIHRpbWUgdGhlIG1lc3NhZ2UgaXMKZGlzcGxheWVkLiAgTm93IG1ha2UgYSBjb3B5IG9mIHRoZSBtZXNzYWdlLgoKV2hlbiB1c2luZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gYSBtZW51IGFuZCBhIHRyYWlsaW5nIGJ5dGUgaXMgYSBiYWNrc2xhc2gsCnRoZSBtZW51IHdvdWxkIG5vdCBiZSBjcmVhdGVkIGNvcnJlY3RseS4gIChNdXJhb2thIFRhcm8pClVzaW5nIGEgbXVsdGlieXRlIGNoYXJhY3RlciBpbiB0aGUgc3Vic3RpdHV0ZSBzdHJpbmcgd2hlcmUgYSB0cmFpbCBieXRlIGlzIGEKYmFja3NsYXNoIGRpZG4ndCB3b3JrLiAgKE11cmFva2EgVGFybykKCldoZW4gc2V0dGluZyAidF9DbyIgaW4gYSB2aW1yYyBmaWxlLCB0aGVuIHNldHRpbmcgaXQgYXV0b21hdGljYWxseSBmcm9tIGFuCnh0ZXJtIHRlcm1yZXNwb25zZSBhbmQgdGhlbiBzZXR0aW5nIGl0IGFnYWluIG1hbnVhbGx5IGNhdXNlZCBhIGNyYXNoLgoKV2hlbiBnZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIHN0cmluZyBvcHRpb24gdGhhdCBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgbnVtYmVyCnplcm8gd2FzIHJldHVybmVkLiAgVGhpcyBicmVha3MgYSBjaGVjayBsaWtlICImZW5jID09ICJhc2RmIi4gIE5vdyBhbiBlbXB0eQpzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIHN0cmluZyBvcHRpb25zLgoKQ3Jhc2hlZCB3aGVuIHN0YXJ0aW5nIHRoZSBHVEsgR1VJIHdoaWxlIHVzaW5nICdub3RpdGxlJyBpbiB0aGUgdmltcmMsIHNldHRpbmcKJ3RpdGxlJyBpbiB0aGUgZ3ZpbXJjIGFuZCBzdGFydGluZyB0aGUgR1VJIHdpdGggIjpndWkiLiAgQ2xvc2VkIHRoZSBjb25uZWN0aW9uCnRvIHRoZSBYIHNlcnZlciBhY2NpZGVudGFsbHkuCgpIYWQgdG8gaGl0IHJldHVybiBhZnRlciBzZWxlY3RpbmcgYW4gZW50cnkgZm9yICI6dHMiLgoKVGhlIG1lc3NhZ2UgZnJvbSAiOmNuIiBtZXNzYWdlIHdhcyBzb21ldGltZXMgY2xlYXJlZC4gIE5vdyBkaXNwbGF5IGl0IGFmdGVyCnJlZHJhd2luZyBpZiBpdCBkb2Vzbid0IGNhdXNlIGEgc2Nyb2xsICh0cnVuY2F0ZWQgd2hlbiBuZWNlc3NhcnkpLgoKaGFuZ3VsaW4uYyBkaWRuJ3QgY29tcGlsZSB3aGVuIHRoZSBHVUkgd2FzIGRpc2FibGVkLiAgRGlzYWJsZSBpdCB3aGVuIGl0IHdvbid0CndvcmsuCgpXaGVuIHNldHRpbmcgYSB0ZXJtY2FwIG9wdGlvbiBsaWtlICJ0X0NPIiwgdGhlIHZhbHVlIGNvdWxkIGJlIGRpc3BsYXllZCBhcwpiZWluZyBmb3IgYSBub3JtYWwga2V5IHdpdGggYSBtb2RpZmllciwgbGlrZSAiPE0tPT4iLgoKV2hlbiBleHBhbmRpbmcgdGhlIGFyZ3VtZW50IGxpc3QsIGVudHJpZXMgd2hpY2ggYXJlIGEgZGlyZWN0b3J5IG5hbWUgZGlkIG5vdApnZXQgaW5jbHVkZWQuICBUaGlzIHN0b3BwZWQgInZpbSBjOi8iIGZyb20gb3BlbmluZyB0aGUgZmlsZSBleHBsb3Jlci4KCiI6c3luIG1hdGNoIHNkICJeIiBuZXh0Z3JvdXA9YXNkZiIgc2tpcHBlZCB0aGUgZmlyc3QgY29sdW1uIGFuZCBtYXRjaGVkIHRoZQpuZXh0Z3JvdXAgaW4gdGhlIHNlY29uZCBjb2x1bW4uCgpHVUk6IFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCwgJ3Nob3dtYXRjaCcgZGlkbid0IHdvcmsuICBSZXF1aXJlZCBmbHVzaGluZwp0aGUgb3V0cHV0LgoKRG9uJ3QgZGVmaW5lIHRoZSA8TmV0TW91c2U+IHRlcm1jb2RlIGluIGFuIHh0ZXJtLCByZWR1Y2VzIHRoZSBwcm9ibGVtIHdoZW4Kc29tZW9uZSB0eXBlcyA8RXNjPiB9IGluIEluc2VydCBtb2RlLgoKTWFkZSBzbGFzaF9hZGp1c3QoKSB3b3JrIGNvcnJlY3RseSBmb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAoWWFzdWhpcm8KTWF0c3Vtb3RvKQpVc2luZyBhIGZpbGVuYW1lIGluIEJpZzUgZW5jb2RpbmcgZm9yIGF1dG9jb21tYW5kcyBkaWRuJ3Qgd29yayAoYmFja3NsYXNoIGluCnRyYWlsYnl0ZSkuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKRE9TIGFuZCBXaW5kb3dzOiBFeHBhbmRpbmcgKi52aW0gYWxzbyBtYXRjaGVkIGZpbGUudmltZm9vLiAgRXhwYW5kIHBhdGggbGlrZQpVbml4IHRvIGF2b2lkIHByb2JsZW1zIHdpdGggV2luZG93cyBkaXIgZnVuY3Rpb25zLiAgTWVyZ2VkIHRoZSBET1MgYW5kIFdpbjMyCmZ1bmN0aW9ucy4KCldpbjMyOiBHdmltZXh0IGNvdWxkIG5vdCBlZGl0IG1vcmUgdGhhbiBhIGZldyBmaWxlcyBhdCBvbmNlLCB0aGUgbGVuZ3RoIG9mIHRoZQphcmd1bWVudCB3YXMgZml4ZWQuCgoibHMgLTEgKiB8IHhhcmdzIHZpbSIgd29ya2VkLCBidXQgdGhlIGlucHV0IHdhcyBpbiBjb29rZWQgbW9kZS4gIE5vdyBzd2l0Y2ggdG8KcmF3IG1vZGUgd2hlbiBuZWVkZWQuICBVc2UgZHVwKCkgdG8gY29weSB0aGUgc3RkZXJyIGZpbGUgZGVzY3JpcHRvciB0byBzdGRpbgp0byBtYWtlIHNoZWxsIGNvbW1hbmRzIHdvcmsuICBObyBsb25nZXIgcmVxdWlyZXMgYW4gZXh0ZXJuYWwgcHJvZ3JhbSB0byBkbwp0aGlzLgoKV2hlbiB1c2luZyAiOmZpbGV0eXBlIG9mZiIsIGZ0cGx1Z2luIGFuZCBpbmRlbnQgdXNhZ2Ugd291bGQgYmUgc3dpdGNoZWQgb2ZmIGF0CnRoZSBzYW1lIHRpbWUuICBEb24ndCBkbyB0aGlzLCBzZXR0aW5nICdmaWxldHlwZScgbWFudWFsbHkgY2FuIHN0aWxsIHVzZSB0aGVtLgoKR1VJOiBXaGVuIHdyaXRpbmcgYSBkb3VibGUtYnl0ZSBjaGFyYWN0ZXIsIGl0IGNvdWxkIGJlIHNwbGl0IHVwIGluIHR3byBjYWxscwp0byBndWlfd3JpdGUoKSwgd2hpY2ggZG9lc24ndCB3b3JrLiAgTm93IGZsdXNoIGJlZm9yZSB0aGUgb3V0cHV0IGJ1ZmZlcgpiZWNvbWVzIGZ1bGwuCgpXaGVuICdsYXN0c3RhdHVzJyBpcyBzZXQgYW5kICdjbWRoZWlnaHQnIGlzIHR3byBvciBiaWdnZXIsIHRoZSBpbnRybyBtZXNzYWdlCndvdWxkIGJlIHdyaXR0ZW4gb3ZlciB0aGUgc3RhdHVzIGxpbmUuClRoZSAiOmludHJvIiBjb21tYW5kIGRpZG4ndCB3b3JrIHdoZW4gdGhlcmUgd2Fzbid0IGVub3VnaCByb29tLgoKQ29uZmlndXJpbmcgZm9yIFJ1YnkgZmFpbGVkIHdpdGggYSByZWNlbnQgdmVyc2lvbiBvZiBSdWJ5LiAoQWtpbm9yaSBNdXNoYSkKCkF0aGVuYTogV2hlbiBkZWxldGluZyB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIFZpbSB3YXMgc3RhcnRlZCwgdXNpbmcgdGhlIGZpbGUKYnJvd3NlciBtYWRlIFZpbSBleGl0LiAgUmVtb3ZlZCB0aGUgdXNlIG9mIFh0QXBwRXJyb3IoKS4KCldoZW4gdXNpbmcgYXV0b2NvbmYgMi41MCwgVU5JWCB3YXMgbm90IGRlZmluZWQuICBNb3ZlZCB0aGUgY29tbWVudCBmb3IgIiN1bmRlZgpVTklYIiB0byBhIHNlcGFyYXRlIGxpbmUuCgpXaW4zMjogRGlzYWJsZWQgX09uV2luZG93UG9zQ2hhbmdpbmcoKSB0byBtYWtlIG1heGltaXplIHdvcmsgYmV0dGVyLgoKV2luMzI6IENvbXBpbGluZyB3aXRoIFZDIDQuMCBkaWRuJ3Qgd29yay4gKFdhbHRlciBCcmlzY29lKQoKQXRoZW5hOgotIEZpbmFsbHkgZml4ZWQgdGhlIHByb2JsZW1zIHdpdGggZGVsZXRpbmcgYSBtZW51LiAoRGF2aWQgSGFycmlzb24pCi0gQXRoZW5hOiBXaGVuIGNsb3NpbmcgdGhlIGNvbmZpcm0oKSBkaWFsb2csIHdvcmtlZCBsaWtlIE9LIHdhcyBwcmVzc2VkLAogIGluc3RlYWQgb2YgQ2FuY2VsLgoKVGhlIGZpbGUgZXhwbG9yZXIgZGlkbid0IHdvcmsgaW4gY29tcGF0aWJsZSBtb2RlLCBiZWNhdXNlIG9mIGxpbmUKY29udGludWF0aW9uLgoKRGlkbid0IGdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3IgIjpkaWdyYXBoIGEiLgoKV2hlbiB1c2luZyBFeCBtb2RlIGluIHRoZSBHVUkgYW5kIHR5cGluZyBhIHNwZWNpYWwga2V5LCA8QlM+IGRpZG4ndCBkZWxldGUgaXQKY29ycmVjdGx5LiAgTm93IGRpc3BsYXkgJz8nIGZvciBhIHNwZWNpYWwga2V5LgoKV2hlbiBhbiBvcGVyYXRvciBpcyBwZW5kaW5nLCBjbGlja2luZyBpbiBhbm90aGVyIHdpbmRvdyBtYWRlIGl0IGFwcGx5IHRvIHRoYXQKd2luZG93LCBldmVuIHRob3VnaCB0aGUgbGluZSBudW1iZXJzIGNvdWxkIGJlIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCgpXaGVuIGEgZnVuY3Rpb24gY2FsbCBkb2Vzbid0IGhhdmUgYSB0ZXJtaW5hdGluZyAiKSIgVmltIGNvdWxkIGNyYXNoLgoKUGVybCBpbnRlcmZhY2U6IGNvdWxkIGNyYXNoIG9uIGV4aXQgd2l0aCBwZXJsIDUuNi4xLiAoQW5kdWluIFdpdGhlcnMpCgpVc2luZyAlUCBpbiAnZXJyb3Jmb3JtYXQnIHdhc24ndCBoYW5kbGVkIGNvcnJlY3RseS4gKFRvbWFzIFplbGxlcmluKQoKVXNpbmcgYSBzeW50YXggY2x1c3RlciB0aGF0IGluY2x1ZGVzIGl0c2VsZiBtYWRlIFZpbSBjcmFzaC4KCkdVSTogV2l0aCAnbHMnIHNldCB0byAyLCBkcmFnZ2luZyB0aGUgc3RhdHVzIGxpbmUgYWxsIHRoZSB3YXkgdXAsIHRoZW4gbWFraW5nCnRoZSBWaW0gd2luZG93IHNtYWxsZXI6IENvdWxkIG5vdCB0aGUgZHJhZyBzdGF0dXMgbGluZSBhbnltb3JlLgoKInZpbSAtYyBzdGFydGluc2VydCEgZmlsZSIgcGxhY2VkIGN1cnNvciBvbiBsYXN0IGNoYXIgb2YgYSBsaW5lLCBpbnN0ZWFkIG9mCmFmdGVyIGl0LiAgQSAiOnNldCIgY29tbWFuZCBpbiB0aGUgYnVmZmVyIG1lbnUgc2V0IHdfc2V0X2N1cnN3YW50LiAgTm93IGRvbid0CmRvIHRoaXMgd2hlbiB3X2N1cnN3YW50IGlzIE1BWENPTC4KCldpbjMyOiBXaGVuIHRoZSBndmltIHdpbmRvdyB3YXMgbWF4aW1pemVkIGFuZCBzZWxlY3RpbmcgYW5vdGhlciBmb250LCB0aGUKd2luZG93IHdvdWxkIG5vIGxvbmdlciBmaWxsIHRoZSBzY3JlZW4uCgpUaGUgbGluZSB3aXRoICdwYXN0ZXRvZ2dsZScgaW4gIjpvcHRpb25zIiBkaWRuJ3Qgc2hvdyB0aGUgcmlnaHQgdmFsdWUgd2hlbiBpdAppcyBhIHNwZWNpYWwga2V5LiAgSGl0dGluZyA8Q1I+IGRpZG4ndCB3b3JrIGVpdGhlci4KCkZvcm1hdHRpbmcgdGV4dCwgcmVzdWx0aW5nIGluIGEgJSBsYW5kaW5nIGluIHRoZSBmaXJzdCBsaW5lLCByZXBlYXRlZCB0aGUgJSBpbgp0aGUgZm9sbG93aW5nIGxpbmVzLCBsaWtlIGl0J3MgdGhlIHN0YXJ0IG9mIGEgY29tbWVudC4KCkdUSzogV2hlbiBhZGRpbmcgYSB0b29sYmFyIGl0ZW0gd2hpbGUgZ3ZpbSBpcyBhbHJlYWR5IHJ1bm5pbmcsIGl0IHdhc24ndApwb3NzaWJsZSB0byB1c2UgdGhlIHRvb2x0aXAuICBOb3cgaXQgd29ya3MgYnkgYWRkaW5nIHRoZSB0b29sdGlwIGZpcnN0LgoKVGhlIG91dHB1dCBvZiAiZyBDVFJMLUciIG1lbnRpb25lZCAiQ2hhciIgYnV0IGl0J3MgYWN0dWFsbHkgYnl0ZXMuCgpTZWFyY2hpbmcgZm9yIHRoZSBlbmQgb2YgYSBvbmVsaW5lIHJlZ2lvbiBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgd2hlbiB0aGVyZSBpcwphbiBvZmZzZXQgZm9yIHRoZSBoaWdobGlnaHRpbmcuCgpTeW50YXggaGlnaGxpZ2h0aW5nOiBXaGVuIHN5bmNocm9uaXppbmcgb24gQy1jb21tZW50cywgLy8qLyB3YXMgc2VlbiBhcyB0aGUKc3RhcnQgb2YgYSBjb21tZW50LgoKV2luMzI6IFdpdGhvdXQgc2Nyb2xsYmFycyBwcmVzZW50LCB0aGUgTVMgbW91c2Ugc2Nyb2xsIHdoZWVsIGRpZG4ndCB3b3JrLgpBbHNvIGhhbmRsZSB0aGUgc2Nyb2xsYmFycyB3aGVuIHRoZXkgYXJlIG5vdCB2aXNpYmxlLgoKTW90aWY6IFdoZW4gdGhlcmUgaXMgbm8gcmlnaHQgc2Nyb2xsYmFyLCB0aGUgYm90dG9tIHNjcm9sbGJhciB3b3VsZCBzdGlsbApsZWF2ZSByb29tIGZvciBpdC4gIChNYXJjaW4gRGFsZWNraSkKCldoZW4gY2hhbmdpbmcgJ2d1aWN1cnNvcicgYW5kIHRoZSB2YWx1ZSBpcyBpbnZhbGlkLCBzb21lIG9mIHRoZSBlZmZlY3RzIHdvdWxkCnN0aWxsIHRha2UgcGxhY2UuICBOb3cgZmlyc3QgY2hlY2sgZm9yIGVycm9ycyBhbmQgb25seSBtYWtlIHRoZSBuZXcgdmFsdWUKZWZmZWN0aXZlIHdoZW4gaXQncyBPSy4KClVzaW5nICJBIiBJbiBWaXN1YWwgYmxvY2sgbW9kZSwgYXBwZW5kaW5nIHRvIGxpbmVzIHRoYXQgZG9uJ3QgZXh0ZW5kIGludG8gdGhlCmJsb2NrLCBwYWRkaW5nIHdhcyB3cm9uZy4KCldoZW4gcGFzdGluZyBhIGJsb2NrIG9mIHRleHQsIGEgY2hhcmFjdGVyIHRoYXQgb2NjdXBpZXMgbW9yZSB0aGFuIG9uZSBzY3JlZW4KY29sdW1uIGNvdWxkIGJlIGRlbGV0ZWQgYW5kIHNwYWNlcyBpbnNlcnRlZCBpbnN0ZWFkLiAgTm93IG9ubHkgZG8gdGhhdCB3aXRoIGEKdGFiLgoKRml4ZWQgY29udmVyc2lvbiBvZiBkb2N1bWVudGF0aW9uIHRvIEhUTUwgdXNpbmcgUGVybC4gKERhbiBTaGFycCkKCkdpdmUgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGEgbWVudSBuYW1lIHN0YXJ0cyB3aXRoIGEgZG90LgoKQXZvaWQgYSBoYW5nIHdoZW4gZXhlY3V0aW5nIGEgc2hlbGwgZnJvbSB0aGUgR1VJIG9uIEhQLVVYIGJ5IHB1c2hpbmcgInB0ZW0iCmV2ZW4gd2hlbiBzeXMvcHRlbS5oIGlzbid0IHByZXNlbnQuCgpXaGVuIGNyZWF0aW5nIHRoZSB0ZW1wIGRpcmVjdG9yeSwgbWFrZSBzdXJlIHVtYXNrIGlzIDA3Nywgb3RoZXJ3aXNlIHRoZQpkaXJlY3RvcnkgaXMgbm90IGFjY2Vzc2libGUgd2hlbiBpdCB3YXMgc2V0IHRvIDAxNzcuCgpVbml4OiBXaGVuIHJlc2l6aW5nIHRoZSB3aW5kb3cgYW5kIGEgcmVkcmF3IGlzIGEgYml0IHNsb3csIGNvdWxkIGdldCBhIHdpbmRvdwpyZXNpemUgZXZlbnQgd2hpbGUgcmVkcmF3aW5nLCByZXN1bHRpbmcgaW4gYSBtZXNzZWQgdXAgd2luZG93LiAgQW55IGlucHV0CihlLmcuLCBhIG1vdXNlIGNsaWNrKSB3b3VsZCByZWRyYXcuCgpUaGUgIiVCIiBpdGVtIGluIHRoZSBzdGF0dXMgbGluZSBiZWNhbWUgemVybyBpbiBJbnNlcnQgbW9kZSAodGhhdCdzIG5vcm1hbCkKZm9yIGFub3RoZXIgdGhhbiB0aGUgY3VycmVudCB3aW5kb3cuCgpUaGUgbWVudSBlbnRyaWVzIHRvIGNvbnZlcnQgdG8geHhkIGFuZCBiYWNrIGRpZG4ndCB3b3JrIGluIEluc2VydCBtb2RlLgoKV2hlbiAiOnZnbG9iYWwiIGRpZG4ndCBmaW5kIGEgbGluZSB3aGVyZSB0aGUgcGF0dGVybiBkb2Vzbid0IG1hdGNoLCB0aGUgZXJyb3IKbWVzc2FnZSB3b3VsZCBiZSB0aGUgd3Jvbmcgd2F5IGFyb3VuZC4KCldoZW4gaWdub3JpbmcgYSBtdWx0aS1saW5lIGVycm9yIG1lc3NhZ2Ugd2l0aCAiJS1BIiwgdGhlIGNvbnRpbnVhdGlvbiBsaW5lcwp3b3VsZCBiZSB1c2VkIGFueXdheS4gKFNlcnZhdGl1cyBCcmFuZHQpCgoiZ3J4IiBvbiBhIGRvdWJsZS13aWRlIGNoYXJhY3RlciBpbnNlcnRlZCAieCIsIGluc3RlYWQgb2YgcmVwbGFjaW5nIHRoZQpjaGFyYWN0ZXIgd2l0aCAieCAiLiAgImdSIiBvbiA8eHg+ICgnZGlzcGxheScgc2V0IHRoZSAidWhleCIpIGRpZG4ndCByZXBsYWNlCmF0IGFsbC4gIFdoZW4gZG9pbmcgImdSeHgiIG9uIGEgY29udHJvbCBjaGFyYWN0ZXIgdGhlIGZpcnN0ICJ4IiB3b3VsZCBiZQppbnNlcnRlZCwgYnJlYWtpbmcgdGhlIGFsaWdubWVudC4KCkFkZGVkICIwKSIgdG8gJ2NpbmtleXMnLCBzbyB0aGF0IHdoZW4gdHlwaW5nIGEgKSBpdCBpcyBwdXQgaW4gdGhlIHNhbWUgcGxhY2UKYXMgd2hlcmUgIj09IiB3b3VsZCBwdXQgaXQuCgpXaW4zMjogV2hlbiBtYXhpbWl6ZWQsIGFkZGluZy9yZW1vdmluZyB0b29sYmFyIGRpZG4ndCByZXNpemUgdGhlIHRleHQgYXJlYS4KCldoZW4gdXNpbmcgPEMtUmlnaHRNb3VzZT4gYSBjb3VudCB3YXMgZGlzY2FyZGVkLgoKV2hlbiB0eXBpbmcgQ1RSTC1WIGFuZCA8UmlnaHRNb3VzZT4gaW4gdGhlIGNvbW1hbmQgbGluZSwgd291bGQgaW5zZXJ0CjxMZWZ0TW91c2U+LgoKVXNpbmcgInZpcyIgb3IgInZhcyIgd2hlbiAnc2VsZWN0aW9uJyBpcyBleGNsdXNpdmUgZGlkbid0IGluY2x1ZGUgdGhlIGxhc3QKY2hhcmFjdGVyLgoKV2hlbiBhZGRpbmcgdG8gYW4gb3B0aW9uIGxpa2UgJ2dyZXBwcmcnLCBsZWFkaW5nIHNwYWNlIHdvdWxkIGJlIGxvc3QuICBEb24ndApleHBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdoZW4gdGhlcmUgaXMgbm8gY29tbWEgc2VwYXJhdGluZyB0aGUgaXRlbXMuCgpHVUk6IFdoZW4gdXNpbmcgYSBib2xkLWl0YWxpYyBmb250LCB3b3VsZCBzdGlsbCB1c2UgdGhlIGJvbGQgdHJpY2sgYW5kCnVuZGVybGluaW5nLgoKTW90aWY6IFRoZSBkZWZhdWx0IGJ1dHRvbiBkaWRuJ3Qgd29yayBpbiBkaWFsb2dzLCB0aGUgZmlyc3Qgb25lIHdhcyBhbHdheXMKdXNlZC4gIEhhZCB0byBnaXZlIGlucHV0IGZvY3VzIHRvIHRoZSBkZWZhdWx0IGJ1dHRvbi4KCldoZW4gdXNpbmcgQ1RSTC1UIHRvIGp1bXAgd2l0aGluIHRoZSBzYW1lIGZpbGUsIHRoZSAnJyBtYXJrIHdhc24ndCBzZXQuCgpVbmRvIHdhc24ndCBWaSBjb21wYXRpYmxlIHdoZW4gdXNpbmcgdGhlICdjJyBmbGFnIGZvciAiOnMiLiAgTm93IGl0IHVuZG9lcyB0aGUKd2hvbGUgIjpzIiBjb21tYW5kIGluc3RlYWQgb2YgZWFjaCBjb25maXJtZWQgcmVwbGFjZW1lbnQuCgpUaGUgQnVmZmVycyBtZW51LCB3aGVuIHRvcm4tb2ZmLCBkaXNhcHBlYXJlZCB3aGVuIGJlaW5nIHJlZnJlc2hlZC4gIEFkZCBhCmR1bW15IGl0ZW0gdG8gYXZvaWQgdGhpcy4KClJlbW92ZWQgY2FsbGluZyBtc2dfc3RhcnQoKSBpbiBtYWluKCksIGl0IHNob3VsZCBub3QgYmUgbmVlZGVkLgoKdmltX3N0cnBicmsoKSBkaWQgbm90IHN1cHBvcnQgbXVsdGlieXRlIGNoYXJhY3RlcnMuIChNdXJhb2thIFRhcm8pCgpUaGUgQW1pZ2EgdmVyc2lvbiBkaWRuJ3QgY29tcGlsZSwgdGhlIGNvZGUgd2FzIHRvbyBiaWcgZm9yIHJlbGF0aXZlIGp1bXBzLgpNb3ZlZCBhIGZldyBmaWxlcyBmcm9tIGV4X2RvY21kLmMgdG8gZXhfY21kczIuYwoKV2hlbiBldmFsdWF0aW5nIHRoZSAiPSByZWdpc3RlciByZXN1bHRlZCBpbiB0aGUgIj0gcmVnaXN0ZXIgYmVpbmcgY2hhbmdlZCwgVmltCndvdWxkIGNyYXNoLgoKV2hlbiBkb2luZyAiOnZpZXcgZmlsZSIgYW5kIGl0IGZhaWxzLCB0aGUgY3VycmVudCBidWZmZXIgd2FzIG1hZGUgcmVhZC1vbmx5LgoKTW90aWY6IEZvciBzb21lIHBlb3BsZSB0aGUgc2VwYXJhdG9ycyBpbiB0aGUgdG9vbGJhciBkaXNhcHBlYXJlZCB3aGVuIHJlc2l6aW5nCnRoZSBWaW0gd2luZG93LiAoTWFyY2luIERhbGVja2kpCgpXaW4zMiBHVUk6IHdoZW4gc2V0dGluZyAnbGluZXMnIHRvIGEgaHVnZSBudW1iZXIsIHdvdWxkIG5vdCBjb21wdXRlIHRoZQphdmFpbGFibGUgc3BhY2UgY29ycmVjdGx5LiAgV2FzIGNvdW50aW5nIHRoZSBtZW51IGhlaWdodCB0d2ljZS4KCkNvbnZlcnNpb24gb2YgdGhlIGRvY3MgdG8gSFRNTCBkaWRuJ3QgaGFuZGxlIHRoZSBsaW5lIHdpdGggdGhlICtxdWlja2ZpeCB0YWcKY29ycmVjdGx5LiAoQW50b25pbyBDb2xvbWJvKQoKV2luMzI6IGZuYW1lX2Nhc2UoKSBkaWRuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBjb3JyZWN0bHkuIChZYXN1aGlybwpNYXRzdW1vdG8pCgpUaGUgQ3lnd2luIHZlcnNpb24gaGFkIHRyb3VibGUgd2l0aCBmY2hkaXIoKS4gIERvbid0IHVzZSB0aGF0IGZ1bmN0aW9uIGZvcgpDeWd3aW4uCgpUaGUgZ2VuZXJpYyBjaGVjayBpbiBzY3JpcHRzLnZpbSBmb3IgImNvbmYiIHN5bnRheCB3YXMgZG9uZSBiZWZvcmUgc29tZSBjaGVja3MKaW4gZmlsZXR5cGUudmltLCByZXN1bHRpbmcgaW4gImNvbmYiIHN5bnRheCB0b28gb2Z0ZW4uCgpEb3MzMjogVHlwaW5nIGxhZ2dlZCBiZWhpbmQuICBXb3VsZCB3YWl0IGZvciBvbmUgYmlvc3RpY2sgd2hlbiBjaGVja2luZyBpZiBhCmNoYXJhY3RlciBpcyBhdmFpbGFibGUuCgpHVEs6IFdoZW4gc2V0dGluZyAnY29sdW1ucycgd2hpbGUgc3RhcnRpbmcgdXAgImd2aW0iLCB3b3VsZCBzZXQgdGhlIHdpZHRoIG9mCnRoZSB0ZXJtaW5hbCBpdCB3YXMgc3RhcnRlZCBpbi4KCldoZW4gdXNpbmcgRVNDIGluIEluc2VydCBtb2RlLCBhbiBhdXRvaW5kZW50IHRoYXQgd3JhcHMgdG8gdGhlIG5leHQgbGluZQpjYXVzZWQgdGhlIGN1cnNvciB0byBtb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUgdGVtcG9yYXJpbHkuICBXaGVuIHRoZQpjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjdXJzb3Igd2FzIGEgZG91YmxlLXdpZGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgdGhlIGN1cnNvcgp3b3VsZCBiZSBvbiB0aGUgcmlnaHQgaGFsdmUsIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyB3aXRoIHNvbWUgdGVybWluYWxzLgoKRGlkbid0IGhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgY29ycmVjdGx5IHdoZW4gZXhwYW5kaW5nIGEgZmlsZSBuYW1lLgooWWFzdWhpcm8gTWF0c3Vtb3RvKQoKV2luMzIgR1VJOiBFcnJvcnMgZ2VuZXJhdGVkIGJlZm9yZSB0aGUgR1VJIGlzIGRlY2lkZWQgdG8gc3RhcnQgd2VyZSBub3QKcmVwb3J0ZWQuCgpnbG9icGF0aCgpIGRpZG4ndCByZXNlcnZlIGVub3VnaCByb29tIGZvciBjb25jYXRlbmF0ZWQgcmVzdWx0cy4gKEFuZHVpbgpXaXRoZXJzKQoKV2hlbiBleHBhbmRpbmcgYW4gb3B0aW9uIHRoYXQgaXMgdmVyeSBsb25nIGFscmVhZHksIGRvbid0IGRvIHRoZSBleHBhbnNpb24sIGl0CndvdWxkIGJlIHRydW5jYXRlZCB0byBNQVhQQVRITC4gKEFuZHVpbiBXaXRoZXJzKQoKV2hlbiAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgdXNpbmcgIkZ4IiBpbiBWaXN1YWwgbW9kZSBvbmx5IG1vdmVkIHVudGlsCmp1c3QgYWZ0ZXIgdGhlIGNoYXJhY3Rlci4KCldoZW4gdXNpbmcgSU1FIG9uIHRoZSBjb25zb2xlIHRvIGVudGVyIGEgZmlsZSBuYW1lLCB0aGUgc2NyZWVuIG1heSBzY3JvbGwgdXAuClJlZHJhdyB0aGUgc2NyZWVuIHRoZW4uIChZYXN1aGlybyBNYXRzdW1vdG8pCgpNb3RpZjogSW4gdGhlIGZpbmQvcmVwbGFjZSBkaWFsb2cgdGhlICJSZXBsYWNlIiBidXR0b24gZGlkbid0IHdvcmsgZmlyc3QgdGltZSwKc2Vjb25kIHRpbWUgaXQgcmVwbGFjZWQgYWxsIG1hdGNoZXMuICBSZW1vdmVkIHRoZSB1c2Ugb2YgIjpzLy8vYyIuCkdUSzogU2ltaWxhciBwcm9ibGVtcyB3aXRoIHRoZSBmaW5kL3JlcGxhY2UgZGlhbG9nLCBtb3ZlZCB0aGUgY29kZSB0byBhIGNvbW1vbgpmdW5jdGlvbi4KClgxMTogVXNlIHNoYXJlZCBHQydzIGZvciB0ZXh0LiAoTWFyY2luIERhbGVja2kpCgoiXWkiIGZvdW5kIHRoZSBtYXRjaCB1bmRlciB0aGUgY3Vyc29yLCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBvbmUgYmVsb3cgaXQuClNhbWUgZm9yICJdSSIsICJdIENUUkwtSSIsICJdZCIsICJdRCIgYW5kICJdIENUUkwtRCIuCgpXaW4xNjogV2hlbiBtYXhpbWl6ZWQgYW5kIHRoZSBmb250IGlzIGNoYW5nZWQsIGRvbid0IGNoYW5nZSB0aGUgd2luZG93IHNpemUuCihWaW5jZSBOZWdyaSkKCldoZW4gJ2xicicgaXMgc2V0LCBkZWxldGluZyBhIGJsb2NrIG9mIHRleHQgY291bGQgbGVhdmUgdGhlIGN1cnNvciBpbiB0aGUKd3JvbmcgcG9zaXRpb24uCgpXaW4zMjogV2hlbiBvcGVuaW5nIGEgZmlsZSB3aXRoIHRoZSAiRWRpdCB3aXRoIFZpbSIgcG9wdXAgbWVudSBlbnRyeSwKd2lsZGNhcmRzIHdvdWxkIGNhdXNlIHRyb3VibGUuICBBZGRlZCB0aGUgIi0tbGl0ZXJhbCIgYXJndW1lbnQgdG8gYXZvaWQKZXhwYW5kaW5nIGZpbGUgbmFtZXMuCgpXaGVuIHVzaW5nICJndiIsIGl0IGRpZG4ndCByZXN0b3JlIHRoYXQgIiQiIHdhcyB1c2VkIGluIFZpc3VhbCBibG9jayBtb2RlLgoKV2luMzIgR1VJOiBXaGlsZSB3YWl0aW5nIGZvciBhIHNoZWxsIGNvbW1hbmQgdG8gZmluaXNoLCB0aGUgd2luZG93IHdhc24ndApyZWRyYXduIGF0IGFsbC4gKFlhc3VoaXJvIE1hdHN1bW90bykKClN5bnRheCBoaWdobGlnaHRpbmc6IEEgbWF0Y2ggdGhhdCBjb250aW51ZXMgb24gYSBuZXh0IGxpbmUgYmVjYXVzZSBvZiBhCmNvbnRhaW5lZCByZWdpb24gZGlkbid0IGVuZCB3aGVuIHRoYXQgcmVnaW9uIGVuZGVkLgoKVGhlICI6cyIgY29tbWFuZCBkaWRuJ3QgYWxsb3cgZmxhZ3MgbGlrZSAnZScgYW5kICdpJyByaWdodCBhZnRlciBpdC4KCldoZW4gdXNpbmcgIjpzIiB0byBzcGxpdCBhIGxpbmUsIG1hcmtzIHdlcmUgbW92ZWQgdG8gdGhlIG5leHQgbGluZS4gIFZpIGtlZXBzCnRoZW0gaW4gdGhlIGZpcnN0IGxpbmUuCgpXaGVuIHVzaW5nICI6biIgIjpyZXciLCB0aGUgcHJldmlvdXMgY29udGV4dCBtYXJrIHdhcyBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLAp3aGlsZSBWaSBwdXRzIGl0IGluIHRoZSBzYW1lIHBsYWNlIGFzIHRoZSBjdXJzb3IuICBNYWRlIGl0IFZpIGNvbXBhdGlibGUuCgpGaXhlZCBWaSBpbmNvbXBhdGliaWxpdHk6IFRleHQgd2FzIG5vdCBwdXQgaW4gcmVnaXN0ZXIgMSB3aGVuIHVzaW5nICJjIiBhbmQKImQiIHdpdGggYSBtb3Rpb24gY2hhcmFjdGVyLCB3aGVuIGRlbGV0aW5nIHdpdGhpbiBvbmUgbGluZSB3aXRoIG9uZSBvZiB0aGUKY29tbWFuZHM6ICUgKCApIGA8Y2hhcmFjdGVyPiAvID8gTiBuIHsgfQoKV2luMzIgR1VJOiBUaGUgdG9vbHRpcCBmb3IgdGVhci1vZmYgaXRlbXMgcmVtYWluZWQgd2hlbiB0aGUgdGVhci1vZmYgaXRlbSB3YXMKbm8gbG9uZ2VyIHNlbGVjdGVkLgoKR1VJOiBXaGVuIHR5cGluZyAiOiIgYXQgdGhlIG1vcmUgcHJvbXB0LCB3b3VsZCByZXR1cm4gdG8gTm9ybWFsIG1vZGUgYW5kIG5vdApyZWRyYXcgdGhlIHNjcmVlbi4KCldoZW4gc3RhcnRpbmcgVmltIHdpdGggYW4gYXJndW1lbnQgIi1jIGcvYXQvcCIgdGhlIHByaW50ZWQgbGluZXMgd291bGQKb3ZlcndyaXRlIGVhY2ggb3RoZXIuCgpCZU9TOiBEaWRuJ3QgY29tcGlsZS4gIENvbmZpZ3VyZSBkaWRuJ3QgYWRkIHRoZSBvc19iZW9zIGZpbGVzLCB0aGUgUU5YIGNoZWNrCnJlbW92ZWQgdGhlbS4gIFZhcmlvdXMgY2hhbmdlcyB0byBvc19iZW9zLmNjLiAoSm9zaHVhIEhhYmVybWFuKQpSZW1vdmVkIHRoZSBjaGVjayBmb3IgdGhlIGhhcmR3YXJlIHBsYXRmb3JtLCB0aGUgQmVCb3ggaGFzIG5vdCBiZWVuIHByb2R1Y2VkCmZvciBhIGxvbmcgdGltZSBub3cuCgpXaW4zMiBHVUk6IGRvbid0IHVzZSBhIG1lc3NhZ2UgYm94IHdoZW4gdGhlIHNoZWxsIHJldHVybnMgYW4gZXJyb3IgY29kZSwKZGlzcGxheSB0aGUgbWVzc2FnZSBpbiB0aGUgVmltIHdpbmRvdy4KCk1ha2VfbXZjLm1hayBhbHdheXMgaW5jbHVkZWQgIi9kZWJ1ZyIgZm9yIGxpbmtpbmcuICAiR1VJPW5vIiBhcmd1bWVudCBkaWRuJ3QKd29yay4gIFVzZSAiREVCVUc9eWVzIiBpbnN0ZWFkIG9mICJERUJVRz0xIiB0byBtYWtlIGl0IGNvbnNpc3RlbnQuIChEYW4gU2hhcnApCgpXaGVuIGEgbGluZSBpbiB0aGUgdGFncyBmaWxlIGVuZGVkIGluIDsiIChubyBUQUIgZm9sbG93aW5nKSB0aGUgY29tbWFuZCB3b3VsZApub3QgYmUgcmVjb2duaXplZCBhcyBhIHNlYXJjaCBjb21tYW5kLgoKWDExOiBUaGUgaW5wdXRNZXRob2QgcmVzb3VyY2UgbmV2ZXIgd29ya2VkLiAgRG9uJ3QgdXNlIHRoZSAibm9uZSIgaW5wdXQgbWV0aG9kCmZvciBTR0ksIGl0IGFwcGFyZW50bHkgbWFrZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBJbnB1dCBtZXRob2QgZHJvcHBlZC4KCkZpeGVkIGluY29ycmVjdCB0ZXN0cyBpbiBvc19tYWMuaC4gKEF4ZWwgS2llbGhvcm4pCgpXaW4zMiBjb25zb2xlOiBXaGVuIHRoZSBjb25zb2xlIHdoZXJlIFZpbSBydW5zIGluIGlzIGNsb3NlZCwgVmltIGNvdWxkIGhhbmcgaW4KdHJ5aW5nIHRvIHJlc3RvcmUgdGhlIHdpbmRvdyBpY29uLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKV2hlbiB1c2luZyAiOjNjYWxsIGZ1bmMoKSIgb3IgIjozLDNjYWxsIGZ1bmMoKSB0aGUgbGluZSBudW1iZXIgd2FzIGlnbm9yZWQuCgpXaGVuICdzaG93YnJlYWsnIGFuZCAnbGluZWJyZWFrJyB3ZXJlIGJvdGggc2V0LCBWaXN1YWwgaGlnaGxpZ2h0aW5nIHNvbWV0aW1lcwpjb250aW51ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbGluZS4KCkdUSyBHVUk6IFRlYXJvZmYgaXRlbXMgd2VyZSBhZGRlZCBldmVuIHdoZW4gJ2d1aW9wdGlvbnMnIGRpZG4ndCBjb250YWluICd0Jwp3aGVuIHN0YXJ0aW5nIHVwLgoKTVMtV2luZG93czogV2hlbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgaW5jbHVkZXMgYSAifiIsIHNlYXJjaGluZyBmaWxlcyB3aXRoCiJnZiIgb3IgIjpmaW5kIiBkaWRuJ3Qgd29yay4gIEEgIiQiIGluIHRoZSBkaXJlY3RvcnkgaGFkIHRoZSBzYW1lIHByb2JsZW0uCkFkZGVkIG1jaF9oYXNfZXhwX3dpbGRjYXJkKCkgZnVuY3Rpb25zLgoKV2hlbiByZWR1Y2luZyB0aGUgVmltIHdpbmRvdyBoZWlnaHQgd2hpbGUgc3RhcnRpbmcgdXAsIHdvdWxkIGdldCBhbgpvdXQtb2YtbWVtb3J5IGVycm9yIG1lc3NhZ2UuCgpXaGVuIGVkaXRpbmcgYSB2ZXJ5IGxvbmcgc2VhcmNoIHBhdHRlcm4sICdpbmNzZWFyY2gnIGNhdXNlZCB0aGUgcmVkcmF3IG9mIHRoZQpjb21tYW5kIGxpbmUgdG8gZmFpbC4KCk1vdGlmIEdVSTogT24gc29tZSBzeXN0ZW1zIHRoZSAiSGVscCIgbWVudSB3b3VsZCBub3QgYmUgb24gdGhlIGZhciByaWdodCwgYXMKaXQgc2hvdWxkIGJlLiAgT24gc29tZSBvdGhlciBzeXN0ZW1zIChlc3AuIElSSVgpIHRoZSBjb21tYW5kIGxpbmUgd291bGQgbm90CmNvbXBsZXRlbHkgc2hvdy4gIFNvbHV0aW9uIGlzIHRvIG9ubHkgcmVzaXplIHRoZSBtZW51YmFyIGZvciBMZXNzdGlmLgoKVXNpbmcgIiUiIGluIGEgbGluZSB0aGF0IGNvbnRhaW5zICJcXCIgdHdpY2UgZGlkbid0IHRha2UgY2FyZSBvZiB0aGUgcXVvdGVzCnByb3Blcmx5LiAgTm93IG1ha2UgYSBkaWZmZXJlbmNlIGJldHdlZW4gXCIgYW5kIFxcIi4KCkZvciBub24tVW5peCBzeXN0ZW1zIGEgZHVtbXkgZmlsZSBpcyBjcmVhdGVkIHdoZW4gZmluZGluZyBhIHN3YXAgbmFtZSB0bwpkZXRlY3QgYSA4LjMgZmlsZXN5c3RlbS4gIFdoZW4gdGhlcmUgaXMgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlLCB3b3VsZCBnZXQgYQp3YXJuaW5nIGZvciB0aGUgZmlsZSBiZWluZyBjcmVhdGVkIG91dHNpZGUgb2YgVmltLiAgQWxzbywgd2hlbiBjbG9zaW5nIHRoZSBWaW0Kd2luZG93IHRoZSBmaWxlIHdvdWxkIHJlbWFpbi4KCk1vdGlmOiBUaGUgbWVudSBoZWlnaHQgd2FzIGFsd2F5cyBjb21wdXRlZCwgdXNpbmcgYSAiLW1lbnVoZWlnaHQiIGFyZ3VtZW50CndhcyBzZXR0aW5nIHRoZSByb29tIGZvciB0aGUgY29tbWFuZCBsaW5lLiAgTm93IG1ha2UgY2xlYXIgdGhlIGFyZ3VtZW50IGlzIG5vdApzdXBwb3J0ZWQuCgpGb3Igc29tZSAoRUJDRElDKSBzeXN0ZW1zLCBQT1VORCB3YXMgZXF1YWwgdG8gJyMnLiAgQWRkZWQgYW4gI2lmIGZvciB0aGF0IHRvCmF2b2lkIGEgZHVwbGljYXRlIGNhc2UgaW4gYSBzd2l0Y2guCgpUaGUgR1VJIG1heSBoYXZlIHByb2JsZW1zIHdoZW4gZm9ya2luZy4gIEFsd2F5cyBjYWxsIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkKaW4gdGhlIHBhcmVudCwgdGhlIGNoaWxkIHdpbGwgY2FsbCBleGl0KCkuCgpXaW4zMiBHVUk6IEFjY2VudGVkIGNoYXJhY3RlcnMgd2VyZSBvZnRlbiB3cm9uZyBpbiBkaWFsb2dzIGFuZCB0ZWFyb2ZmIG1lbnVzLgpOb3cgdXNlIENQX0FDUCBpbnN0ZWFkIG9mIENQX09FTUNQLiAoVmluY2UgTmVncmkpCgpXaGVuIGRpc3BsYXlpbmcgdGV4dCB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgY2F1c2VzIGFuIGVycm9yIChlLmcuLCBydW5uaW5nCm91dCBvZiBzdGFjaykgdGhlIHN5bnRheCBoaWdobGlnaHRpbmcgaXMgZGlzYWJsZWQgdG8gYXZvaWQgZnVydGhlciBtZXNzYWdlcy4KCldoZW4gYSBjb21tYW5kIGluIGEgLnZpbXJjIG9yIC5ndmltcmMgY2F1c2VzIGFuIEFUVEVOVElPTiBwcm9tcHQsIGFuZCBWaW0gd2FzCnN0YXJ0ZWQgZnJvbSB0aGUgZGVza3RvcCAobm8gcGxhY2UgdG8gZGlzcGxheSBtZXNzYWdlcykgaXQgd291bGQgaGFuZy4gIE5vdwpvcGVuIHRoZSBHVUkgd2luZG93IGVhcmx5IHRvIGJlIGFibGUgdG8gZGlzcGxheSB0aGUgbWVzc2FnZXMgYW5kIHBvcCB1cCB0aGUKZGlhbG9nLgoKInI8Q1I+IiBvbiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGRlbGV0ZWQgb25seSB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUKY2hhcmFjdGVyLiAgIjNyPENSPiIgZGVsZXRlZCB0aHJlZSBieXRlcyBpbnN0ZWFkIG9mIHRocmVlIGNoYXJhY3RlcnMuCgpXaGVuIGludGVycnVwdGluZyByZWFkaW5nIGEgZmlsZSwgVmkgY29uc2lkZXJzIHRoZSBidWZmZXIgbW9kaWZpZWQuICBBZGRlZCB0aGUKJ2knIGZsYWcgaW4gJ2Nwb3B0aW9ucycgZmxhZyBmb3IgdGhpcyAod2UgZG9uJ3Qgd2FudCBpdCBtb2RpZmllZCB0byBiZSBhYmxlIHRvCmRvICI6cSIpLgoKV2hlbiB1c2luZyBhbiBpdGVtIGluICdndWljdXJzb3InIHRoYXQgc3RhcnRzIHdpdGggYSBjb2xvbiwgVmltIHdvdWxkIGdldApzdHVjayBvciBjcmFzaC4KCldoZW4gcHV0dGluZyBhIGZpbGUgbWFyayBpbiBhIGhlbHAgZmlsZSBhbmQgbGF0ZXIganVtcGluZyBiYWNrIHRvIGl0LCB0aGUKb3B0aW9ucyB3b3VsZCBub3QgYmUgc2V0LiAgRXh0ZW5kZWQgdGhlIG1vZGVsaW5lIGluIGFsbCBoZWxwIGZpbGVzIHRvIG1ha2UKdGhpcyB3b3JrIGJldHRlci4KCldoZW4gYSBtb2RlbGluZSBjb250YWluZWQgIjo6IiB0aGUgbG9jYWwgb3B0aW9uIHZhbHVlcyB3b3VsZCBiZSBwcmludGVkLiAgTm93Cmlnbm9yZSBpdC4KClNvbWUgaGVscCBmaWxlcyBkaWQgbm90IHVzZSBhIDguMyBuYW1lcywgd2hpY2ggY2F1c2VzIHByb2JsZW1zIHdoZW4gdXNpbmcKTVMtRE9TIHVuemlwLiAgUmVuYW1lZCAibXVsdGlieXRlLnR4dCIgdG8gIm1ieXRlLnR4dCIsICJyaWdodGxlZnQudHh0IiB0bwoicmlsZWZ0LnR4dCIsICJ0YWdzZWFyY2gudHh0IiB0byAidGFnc3JjaC50eHQiLCAib3NfcmlzY29zLnR4dCIgdG8KIm9zX3Jpc2MudHh0Ii4KCldoZW4gVmlzdWFsIG1vZGUgaXMgYmxvY2t3aXNlLCB1c2luZyAiaXciIG9yICJhdyIgbWFkZSBpdCBjaGFyYWN0ZXJ3aXNlLiAgVGhhdApkb2Vzbid0IHNlZW0gcmlnaHQsIG9ubHkgZG8gdGhpcyB3aGVuIGluIGxpbmV3aXNlIG1vZGUuICBCdXQgdGhlbiBkbyBpdAphbHdheXMsIG5vdCBvbmx5IHdoZW4gc3RhcnQgYW5kIGVuZCBvZiBWaXN1YWwgbW9kZSBhcmUgZXF1YWwuCgpXaGVuIHVzaW5nICJ2aXciIG9uIGEgc2luZ2xlLWxldHRlciB3b3JkIGFuZCAnc2VsZWN0aW9uJyBpcyBleGNsdXNpdmUsIHdvdWxkCm5vdCBpbmNsdWRlIHRoZSB3b3JkLgoKV2hlbiBmb3JtYXR0aW5nIHRleHQgZnJvbSBJbnNlcnQgbW9kZSwgdXNpbmcgQ1RSTC1PLCBjb3VsZCBtZXNzIHVwIHVuZG8KaW5mb3JtYXRpb24uCgpXaGlsZSB3cml0aW5nIGEgZmlsZSAoYWxzbyBmb3IgdGhlIGJhY2t1cCBmaWxlKSB0aGVyZSB3YXMgbm8gY2hlY2sgZm9yIGFuCmludGVycnVwdCAoaGl0dGluZyBDVFJMLUMpLiAgVmltIGNvdWxkIGhhbmcgd2hlbiB3cml0aW5nIGEgbGFyZ2UgZmlsZSBvdmVyIGEKc2xvdyBuZXR3b3JrLCBhbmQgbW92aW5nIHRoZSBtb3VzZSBkaWRuJ3QgbWFrZSBpdCBhcHBlYXIgKHdoZW4gJ21vdXNlaGlkZScgaXMKc2V0KSBhbmQgdGhlIHNjcmVlbiB3YXNuJ3QgdXBkYXRlZCBpbiB0aGUgR1VJLiAgQWxzbyBhbGxvdyBpbnRlcnJ1cHRpbmcgd2hlbgpzeW5jaW5nIHRoZSBzd2FwIGZpbGUsIGl0IGNhbiB0YWtlIGEgbG9uZyB0aW1lLgoKV2hlbiB1c2luZyAiOm1rc2Vzc2lvbiIgd2hpbGUgdGhlcmUgaXMgaGVscCB3aW5kb3csIGl0IHdvdWxkIGxhdGVyIGJlIHJlc3RvcmVkCnRvIHRoZSByaWdodCBmaWxlIGJ1dCBub3QgbWFya2VkIGFzIGEgaGVscCBidWZmZXIuICAiOmhlbHAiIHdvdWxkIHRoZW4gb3Blbgphbm90aGVyIHdpbmRvdy4gIE5vdyB1c2UgdGhlIHZhbHVlICJoZWxwIiBmb3IgJ2J1ZnR5cGUnIHRvIG1hcmsgYSBoZWxwIGJ1ZmZlci4KClRoZSBzZXNzaW9uIGZpbGUgY29udGFpbmVkIGFic29sdXRlIHBhdGggbmFtZXMgaW4gb3B0aW9uIHZhbHVlcywgdGhhdCBkb2Vzbid0Cndvcmsgd2hlbiB0aGUgaG9tZSBkaXJlY3RvcnkgZGVwZW5kcyBvbiB0aGUgc2l0dWF0aW9uLiAgUmVwbGFjZSB0aGUgaG9tZQpkaXJlY3Rvcnkgd2l0aCB+LyB3aGVuIHBvc3NpYmxlLgoKV2hlbiB1c2luZyAnc2hvd2JyZWFrJyBhIFRBQiBqdXN0IGFmdGVyIHRoZSBzaG93biBicmVhayB3b3VsZCBub3QgYmUgY291bnRlZApjb3JyZWN0bHksIHRoZSBjdXJzb3Igd291bGQgYmUgcG9zaXRpb25lZCB3cm9uZy4KCldpdGggJ3Nob3dicmVhaycgc2V0IHRvICItLS0+IiBvciAiLS0tLS0tLT4iIGFuZCAnc3RzJyBzZXQgdG8gNCwgaW5zZXJ0aW5nCnRhYnMgZGlkIG5vdCB3b3JrIHJpZ2h0LiAgQ291bGQgY2F1c2UgYSBjcmFzaC4gIEJhY2tzcGFjaW5nIHdhcyBhbHNvIHdyb25nLApjb3VsZCBnZXQgc3R1Y2sgYXQgYSBsaW5lIGJyZWFrLgoKV2luMzI6IGNyYXNoZWQgd2hlbiB0ZWFyaW5nIG9mZiBhIG1lbnUgd2l0aCBvdmVyIDMwMCBpdGVtcy4KCkdVSTogQSBtZW51IG9yIHRvb2xiYXIgaXRlbSB3b3VsZCBhcHBlYXIgd2hlbiBvbmx5IGEgdG9vbHRpcCB3YXMgZGVmaW5lZCBmb3IKaXQuCgpXaGVuICdzY3JvbGxvZmYnIGlzIG5vbi16ZXJvIGFuZCAiJCIgaXMgaW4gJ2Nwb3B0aW9ucycsIHVzaW5nICJzIiB3aGlsZSB0aGUKbGFzdCBsaW5lIG9mIHRoZSBmaWxlIGlzIHRoZSBmaXJzdCBsaW5lIG9uIHNjcmVlbiwgdGhlIHRleHQgd2Fzbid0IGRpc3BsYXllZC4KCldoZW4gcnVubmluZyAiYXV0b2NvbmYiLCBkZWxldGUgdGhlIGNvbmZpZ3VyZSBjYWNoZSB0byBmb3JjZSBzdGFydGluZyBjbGVhbmx5CndoZW4gY29uZmlndXJlIGlzIHJ1biBhZ2Fpbi4KCldoZW4gY2hhbmdpbmcgdGhlIE5vcm1hbCBjb2xvcnMgZm9yIGN0ZXJtLCB0aGUgdmFsdWUgb2YgJ2JhY2tncm91bmQnIHdhcwpjaGFuZ2VkIGV2ZW4gd2hlbiB0aGUgR1VJIHdhcyB1c2VkLgoKVGhlIHdhcm5pbmcgZm9yIGEgbWlzc2luZyB2aW1ydW4uZXhlIHdhcyBhbHdheXMgZ2l2ZW4gb24gc3RhcnR1cCwgYnV0IHNvbWUKcGVvcGxlIGp1c3QgZWRpdGluZyBhIGZpbGUgZG9uJ3QgbmVlZCB0byBiZSBib3RoZXJlZCBieSBpdC4gIE9ubHkgc2hvdyBpdCB3aGVuCnZpbXJ1biB3b3VsZCBiZSB1c2VkLgoKV2hlbiB1c2luZyAiJSIgaW4gYSBtdWx0aWJ5dGUgdGV4dCBpdCBjb3VsZCBnZXQgY29uZnVzZWQgYnkgdHJhaWxieXRlcyB0aGF0Cm1hdGNoLiAoTXVyYW9rYSBUYXJvKQoKVGVybWNhcCBlbnRyeSBmb3IgUmlzY09TIHdhcyB3cm9uZywgdXNpbmcgNyBhbmQgOCBpbiBvY3RhbCBjb2Rlcy4KCkF0aGVuYTogVGhlIHRpdGxlIG9mIGEgZGlhbG9nIHdpbmRvdyBhbmQgdGhlIGZpbGUgc2VsZWN0b3Igd2luZG93IHdlcmUgbm90CnNldC4gKERhdmlkIEhhcnJpc29uKQoKVGhlICJodG1sTGluayIgaGlnaGxpZ2h0IGdyb3VwIHNwZWNpZmllZCBjb2xvcnMsIHdoaWNoIGdpdmVzIHByb2JsZW1zIHdoZW4KdXNpbmcgYSBjb2xvciBzY2hlbWUuICBBZGRlZCB0aGUgIlVuZGVybGluZWQiIGhpZ2hsaWdodCBncm91cCBmb3IgdGhpcy4KCkFmdGVyIHVzaW5nICI6aW5zZXJ0IiBvciAiOmNoYW5nZSIgdGhlICdbIG1hcmsgd291bGQgYmUgb25lIGxpbmUgdG9vIGxvdy4KCldoZW4gbG9va2luZyBmb3IgdGhlIGZpbGUgbmFtZSBhZnRlciBhIG1hdGNoIHdpdGggJ2luY2x1ZGUnIG9uZSBjaGFyYWN0ZXIgd2FzCnNraXBwZWQuICBTYW1lIGZvciAnZGVmaW5lJy4KCldpbjMyIGFuZCBESkdQUDogV2hlbiBlZGl0aW5nIGEgZmlsZSB3aXRoIGEgc2hvcnQgbmFtZSBpbiBhIGRpcmVjdG9yeSwgYW5kCmVkaXRpbmcgdGhlIHNhbWUgZmlsZSBidXQgdXNpbmcgdGhlIGxvbmcgbmFtZSwgd291bGQgZW5kIHVwIHdpdGggdHdvIGJ1ZmZlcnMKb24gdGhlIHNhbWUgZmlsZS4KCiJnZiIgb24gYSBmaWxlbmFtZSB0aGF0IHN0YXJ0cyB3aXRoICIuLi8iIG9ubHkgd29ya2VkIHdoZW4gdGhlIGZpbGUgYmVpbmcKZWRpdGVkIGlzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIEFuIGluY2x1ZGUgZmlsZSBzZWFyY2ggZGlkbid0IHdvcmsKcHJvcGVybHkgZm9yIGZpbGVzIHN0YXJ0aW5nIHdpdGggIi4uLyIgb3IgIi4iLiAgTm93IHNlYXJjaCBib3RoIHJlbGF0aXZlIHRvCnRoZSBmaWxlIGFuZCB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgpXaGVuICdwcmludGhlYWRlcicsICd0aXRsZXN0cmluZycsICdpY29uc3RyaW5nJywgJ3J1bGVyZm9ybWF0JyBvciAnc3RhdHVzbGluZScKY29udGFpbmVkICIleyIgYnV0IG5vIGZvbGxvd2luZyAifSIgbWVtb3J5IHdhcyBjb3JydXB0ZWQgYW5kIGEgY3Jhc2ggY291bGQKaGFwcGVuLgoKIjowYXBwZW5kIiBhbmQgdGhlbiBpbnNlcnRpbmcgdHdvIGxpbmVzIGRpZCBub3QgcmVkcmF3IHRoZSBibGFuayBsaW5lcyB0aGF0CndlcmUgc2Nyb2xsZWQgYmFjayBkb3duLgoKV2hlbiB1c2luZyBpbnNlcnQgbW9kZSBjb21wbGV0aW9uIGluIGEgbmFycm93IHdpbmRvdywgdGhlIG1lc3NhZ2UgY2F1c2VkIGEKc2Nyb2xsIHVwLiAgTm93IHNob3J0ZW4gdGhlIG1lc3NhZ2UgaWYgaXQgZG9lc24ndCBmaXQgYW5kIGF2b2lkIHdyaXRpbmcgdGhlCnJ1bGVyIG92ZXIgdGhlIG1lc3NhZ2UuCgpYSU0gc3RpbGwgZGlkbid0IHdvcmsgY29ycmVjdGx5IG9uIHNvbWUgc3lzdGVtcywgZXNwZWNpYWxseSBTR0kvSVJJWC4gIEFkZGVkCnRoZSAnaW1kaXNhYmxlJyBvcHRpb24sIHdoaWNoIGlzIHNldCBieSBkZWZhdWx0IGZvciB0aGF0IHN5c3RlbS4KClBhdGNoIDYuMGF3LjAwOApQcm9ibGVtOiAgICBXaGVuIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBmaWxlIG5hbWUgaXMgb3ZlciAxMjcsIHRoZSBCdWZmZXJzCgkgICAgbWVudSBlbnRyeSB3b3VsZCBnZXQgYSBuZWdhdGl2ZSBwcmlvcml0eSBhbmQgY2F1c2UgcHJvYmxlbXMuClNvbHV0aW9uOiAgIFJlZHVjZSB0aGUgbXVsdGlwbGllciBmb3IgdGhlIGZpcnN0IGNoYXJhY3RlciB3aGVuIGNvbXB1dGluZwoJICAgIHRoZSBoYXNoIHZhbHVlIGZvciBhIEJ1ZmZlcnMgbWVudSBlbnRyeS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjBhdy4wMTAKUHJvYmxlbTogICAgV2luMzI6ICI6YnJvd3NlIGVkaXQgZGlyL2RpciIgZGlkbid0IHdvcmsuIChWaWthcykKU29sdXRpb246ICAgQ2hhbmdlIHNsYXNoZXMgdG8gYmFja3NsYXNoZXMgaW4gdGhlIGRpcmVjdG9yeSBwYXNzZWQgdG8gdGhlIGZpbGUKCSAgICBicm93c2VyLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKCkF0aGVuYSBmaWxlIGJyb3dzZXI6IE9uIHNvbWUgc3lzdGVtcyB3Y3N0b21icygpIGNhbid0IGJlIHVzZWQgdG8gZ2V0IHRoZQpsZW5ndGggb2YgYSBtdWx0aS1ieXRlIHN0cmluZy4gIFVzZSB0aGUgbWF4aW11bSBsZW5ndGggdGhlbi4gKFlhc3VoaXJvCk1hdHN1bW90bykKClBhdGNoIDYuMGF4LjAwMQpQcm9ibGVtOiAgICBXaGVuICdwYXRjaG1vZGUnIGlzIHNldCwgYXBwZW5kaW5nIHRvIGEgZmlsZSBnaXZlcyBhbiBlbXB0eQoJICAgIG9yaWdpbmFsIGZpbGUuIChFZCBSYWxzdG9uKQpTb2x1dGlvbjogICBBbHNvIG1ha2UgYSBiYWNrdXAgY29weSB3aGVuIGFwcGVuZGluZyBhbmQgJ3BhdGNobW9kZScgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wYXguMDAyClByb2JsZW06ICAgIFdoZW4gJ3BhdGNobW9kZScgaXMgc2V0LCBhcHBlbmRpbmcgdG8gYSBjb21wcmVzc2VkIGZpbGUgZ2l2ZXMgYW4KCSAgICB1bmNvbXByZXNzZWQgb3JpZ2luYWwgZmlsZS4gKEVkIFJhbHN0b24pClNvbHV0aW9uOiAgIENyZWF0ZSB0aGUgb3JpZ2luYWwgZmlsZSBiZWZvcmUgZGVjb21wcmVzc2luZy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4wYXguMDA1ClByb2JsZW06ICAgIEF0aGVuYSBmaWxlIHNlbGVjdG9yIGtlZXBzIHRoZSB0aXRsZSBvZiB0aGUgZmlyc3QgaW52b2NhdGlvbi4KU29sdXRpb246ICAgU2V0IHRoZSB0aXRsZSBlYWNoIHRpbWUgdGhlIGZpbGUgc2VsZWN0b3IgaXMgb3BlbmVkLiAoRGF2aWQKCSAgICBIYXJyaXNvbikKRmlsZXM6CSAgICBzcmMvZ3VpX2F0X2ZzLmMKClBhdGNoIDYuMGF4LjAwNwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIEdQTSAobW91c2UgZHJpdmVyIGluIGEgTGludXggY29uc29sZSkgYSBkb3VibGUgY2xpY2sgaXMKCSAgICBpbnRlcnByZXRlZCBhcyBhIHNjcm9sbCB3aGVlbCBjbGljay4KU29sdXRpb246ICAgQ2hlY2sgaWYgR1BNIGlzIGJlaW5nIHVzZWQgd2hlbiBkZWNpZGluZyBpZiBhIG1vdXNlIGV2ZW50IGlzIGZvcgoJICAgIHRoZSBzY3JvbGwgd2hlZWwuCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4wYXguMDEwClByb2JsZW06ICAgIFRoZSBFZGl0LlNhdmUgbWVudSBhbmQgdGhlIFNhdmUgdG9vbGJhciBidXR0b24gZGlkbid0IHdvcmsgd2hlbgoJICAgIHRoZSBidWZmZXIgaGFzIG5vIGZpbGUgbmFtZS4KU29sdXRpb246ICAgVXNlIGEgZmlsZSBicm93c2VyIHRvIGFzayBmb3IgYSBmaWxlIG5hbWUuICBBbHNvIGZpeCB0aGUgdG9vbGJhcgoJICAgIEZpbmQgaXRlbSBpbiBWaXN1YWwgbW9kZS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjBheC4wMTIKUHJvYmxlbTogICAgV2hlbiAnY3BvcHRpb25zJyBjb250YWlucyAiJCIsIGJyZWFraW5nIGEgbGluZSBmb3IgJ3RleHR3aWR0aCcKCSAgICBkb2Vzbid0IHJlZHJhdyBwcm9wZXJseS4gKFN0ZWZhbiBTY2h1bHplKQpTb2x1dGlvbjogICBSZW1vdmUgdGhlIGRvbGxhciBiZWZvcmUgYnJlYWtpbmcgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wYXguMDE0ClByb2JsZW06ICAgIFdpbjMyOiBPbiBXaW5kb3dzIDk4ICI6bWFrZSAtZiBmaWxlIiBkb2Vzbid0IHdvcmsgd2hlbiAnc2hlbGwnIGlzCgkgICAgImNvbW1hbmQuY29tIiBhbmQgJ21ha2VwcmcnIGlzICJubWFrZSIuICBUaGUgZW52aXJvbm1lbnQgaXNuJ3QKCSAgICBwYXNzZWQgb24gdG8gIm5tYWtlIi4KU29sdXRpb246ICAgQWxzbyB1c2UgdmltcnVuLmV4ZSB3aGVuIHJlZGlyZWN0aW5nIHRoZSBvdXRwdXQgb2YgYSBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjBheC4wMTYKUHJvYmxlbTogICAgVGhlIHZlcnNpb24gbnVtYmVyIHdhcyByZXBvcnRlZCB3cm9uZyBpbiB0aGUgaW50cm8gc2NyZWVuLgpTb2x1dGlvbjogICBDaGVjayBmb3IgYSB2ZXJzaW9uIG51bWJlciB3aXRoIHR3byBhZGRpdGlvbmFsIGxldHRlcnMuCkZpbGVzOgkgICAgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4wYXguMDE5ClByb2JsZW06ICAgIFdoZW4gc2Nyb2xsaW5nIGEgd2luZG93IHdpdGggZm9sZHMgdXB3YXJkcywgc3dpdGNoaW5nIHRvIGFub3RoZXIKCSAgICB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvdyBhbmQgYmFjayBtYXkgbm90IHVwZGF0ZSB0aGUgc2Nyb2xsYmFyLgpTb2x1dGlvbjogICBMaW1pdCB3X2JvdGxpbmUgdG8gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgYnVmZmVyIHBsdXMgb25lLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVkVSU0lPTiA2LjEJCQkJCQkqdmVyc2lvbi02LjEqCgpUaGlzIHNlY3Rpb24gaXMgYWJvdXQgaW1wcm92ZW1lbnRzIG1hZGUgYmV0d2VlbiB2ZXJzaW9uIDYuMCBhbmQgNi4xLgoKVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgdGhlcmUgYXJlIG5vdCByZWFsbHkgYW55IG5ldyBmZWF0dXJlcy4KCgpDaGFuZ2VkCQkJCQkJCSpjaGFuZ2VkLTYuMSoKLS0tLS0tLQoKJ2ltaW5zZXJ0JyBhbmQgJ2ltc2VhcmNoJyBhcmUgbm8gbG9uZ2VyIHNldCBhcyBhIHNpZGUgZWZmZWN0IG9mIGRlZmluaW5nIGEKbGFuZ3VhZ2UtbWFwcGluZyB1c2luZyAiOmxtYXAiLgoKCkFkZGVkCQkJCQkJCSphZGRlZC02LjEqCi0tLS0tCgpTeW50YXggZmlsZXM6CmFtcGwJCUFNUEwgKERhdmlkIEtyaWVmKQphbnQJCUFudCAoSm9oYW5uZXMgWmVsbG5lcikKYmFhbgkJQmFhbiAoSGVyIHZhbiBkZSBWbGllcnQpCmNzCQlDIyAoSm9oYW5uZXMgWmVsbG5lcikKbGlmZWxpbmVzCUxpZmVsaW5lcyAoUGF0cmljayBUZXhpZXIpCmxzY3JpcHQJCUxvdHVzU2NyaXB0IChUYXJ5biBFYXN0KQptb28JCU1PTyAoVGltbyBGcmVuYXkpCm5zaXMJCU5TSVMgKEFsZXggSmFrdXNoZXYpCnBwZAkJUG9zdHNjcmlwdCBQcmludGVyIERlc2NyaXB0aW9uIChCam9lcm4gSmFja2UpCnJwbAkJUlBMLzIgKEpvZWwgQmVydHJhbmQpCnNjaWxhYgkJU2NpbGFiIChCZW5vaXQgSGFtZWxpbikKc3BsaW50CQlTcGxpbnQgKFJhbGYgV2lsZGVuaHVlcykKc3FsagkJU1FMSiAoQW5kcmVhcyBGaXNjaGJhY2gpCnd2ZGlhbAkJV3ZEaWFsIChQcmFobGFkIFZhaWR5YW5hdGhhbikKeGY4NmNvbmYJWEZyZWU4NiBjb25maWcgKE5pa29sYWkgV2VpYnVsbCkKeG1vZG1hcAkJWG1vZG1hcCAoTmlrb2xhaSBXZWlidWxsKQp4c2x0CQlYc2x0IChKb2hhbm5lcyBaZWxsbmVyKQptb25rCQlNb25rIChNaWtlIExpdGhlcmxhbmQpCnhzZAkJWHNkIChKb2hhbm5lcyBaZWxsbmVyKQpjZGwJCUNETCAoUmF1bCBTZWd1cmEgQWNldmVkbykKc2VuZHByCQlTZW5kLXByIChIZW5kcmlrIFNjaG9seikKCkFkZGVkIGluZGVudCBmaWxlIGZvciBTY2hlbWUuIChEb3JhaSBTaXRhcmFtKQpBZGRlZCBpbmRlbnQgZmlsZSBmb3IgUHJvbG9nLiAoS29udHJhIEdlcmdlbHkpCkFkZGVkIGluZGVudCBmaWxlIGZvciBQb3ZyYXkgKERhdmlkIE5lY2FzKQpBZGRlZCBpbmRlbnQgZmlsZSBmb3IgSURMIChBbGVrc2FuZGFyIEplbGVuYWspCkFkZGVkIEMjIGluZGVudCBhbmQgZnRwbHVnaW4gc2NyaXB0cy4KCkFkZGVkIFVrcmFpbmlhbiBtZW51IHRyYW5zbGF0aW9ucy4gKEJvaGRhbiBWbGFzeXVrKQpBZGRlZCBBU0NJSSB2ZXJzaW9uIG9mIHRoZSBDemVjaCBtZW51cy4gKEppcmkgQnJlemluYSkKCkFkZGVkIFNpbXBsaWZpZWQgQ2hpbmVzZSB0cmFuc2xhdGlvbiBvZiB0aGUgdHV0b3IuIChNZW5kZWwgTCBDaGFuKQoKQWRkZWQgUnVzc2lhbiBrZXltYXAgZm9yIHlhd2VydHkga2V5Ym9hcmQuCgpBZGRlZCBhbiBleHBsYW5hdGlvbiBvZiB1c2luZyB0aGUgdmltcmMgZmlsZSBpbiB0aGUgdHV0b3IuCkNoYW5nZWQgdHV0b3IudmltIHRvIGdldCB0aGUgcmlnaHQgZW5jb2RpbmcgZm9yIHRoZSBUYWl3YWluZXNlIHR1dG9yLgoKQWRkZWQgUnVzc2lhbiB0dXRvci4gKEFuZHJleSBLaXNlbGV2KQpBZGRlZCBQb2xpc2ggdHV0b3IuIChNaWtvbGFqIE1hY2hvd3NraSkKCkFkZGVkIGRhcmtibHVlIGNvbG9yIHNjaGVtZS4gKEJvaGRhbiBWbGFzeXVrKQoKV2hlbiBwYWNraW5nIHRoZSBkb3MgbGFuZ3VhZ2UgYXJjaGl2ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZSAubW8gZmlsZXMKdGhhdCBhcmUgcmVxdWlyZWQuCgpJbXByb3ZlZCBOU0lTIHNjcmlwdCB0byBzdXBwb3J0IE5TSVMgMTgwLiAgQWRkZWQgaWNvbnMgZm9yIHRoZQplbmFibGVkL2Rpc2FibGVkIHN0YXR1cy4gKE1pcmVrIFBydWNobmlrKQoKY3AxMjUwIHZlcnNpb24gb2YgdGhlIFNsb3ZhayBtZXNzYWdlIHRyYW5zbGF0aW9ucy4KCkNvbXBpbGVyIHBsdWdpbnMgZm9yIElSSVggY29tcGlsZXJzLiAoRGF2aWQgSGFycmlzb24pCgoKRml4ZWQJCQkJCQkJKmZpeGVkLTYuMSoKLS0tLS0KClRoZSBsaWNlbnNlIHRleHQgd2FzIHVwZGF0ZWQgdG8gbWFrZSB0aGUgbWVhbmluZyBjbGVhcmVyIGFuZCBtYWtlIGl0CmNvbXBhdGlibGUgd2l0aCB0aGUgR05VIEdQTC4gIE90aGVyd2lzZSBkaXN0cmlidXRvcnMgaGF2ZSBhIHByb2JsZW0gd2hlbgpsaW5raW5nIFZpbSB3aXRoIGEgR1BMJ2VkIGxpYnJhcnkuCgpXaGVuIGluc3RhbGxpbmcgdGhlICJsZXNzLnNoIiBzY3JpcHQgaXQgd2FzIG5vdCBtYWRlIGV4ZWN1dGFibGUuIChDaHVjayBCZXJnKQoKV2luMzI6IFRoZSAiOSIga2V5IG9uIHRoZSBudW1wYWQgd2Fzbid0IHdvcmtpbmcuIChKdWxpYW4gS2lucmFpZCkKClRoZSBOU0lTIGluc3RhbGwgc2NyaXB0IGRpZG4ndCB3b3JrIHdpdGggTlNJUyAxLjgwIG9yIGxhdGVyLiAgQWxzbyBhZGQKVmltLXNwZWNpZmljIGljb25zLiAoUHJ1Y2huaWspCgpUaGUgc2NyaXB0IGZvciBjb252ZXJzaW9uIHRvIEhUTUwgY29udGFpbmVkIGFuICJpZiIgaW4gdGhlIHdyb25nIHBsYWNlLgooTWljaGFlbCBHZWRkZXMpCgpBbGxvdyB1c2luZyAiOmFzY2lpIiBpbiB0aGUgc2FuZGJveCwgaXQncyBoYXJtbGVzcy4KClJlbW92ZWQgY3JlYXQoKSBmcm9tIG9zZGVmMi5oLmluLCBpdCB3YXNuJ3QgdXNlZCBhbmQgbWF5IGNhdXNlIGEgcHJvYmxlbSB3aGVuCml0J3MgcmVkZWZpbmVkIHRvIGNyZWF0NjQoKS4KClRoZSB0ZXh0IGZpbGVzIGluIHRoZSBWaXNWaW0gZGlyZWN0b3J5IHdlcmUgaW4gImRvcyIgZm9ybWF0LiAgVGhpcyBjYXVzZWQKcHJvYmxlbXMgd2hlbiBhcHBseWluZyBhIHBhdGNoLiAgTm93IGtlZXAgdGhlbSBpbiAidW5peCIgZm9ybWF0IGFuZCBjb252ZXJ0CnRoZW0gdG8gImRvcyIgZm9ybWF0IG9ubHkgZm9yIHRoZSBQQyBhcmNoaXZlcy4KCkFkZCBydWJ5IGZpbGVzIHRvIHRoZSBkb3Mgc291cmNlIGFyY2hpdmUsIHRoZXkgY2FuIGJlIHVzZWQgYnkgTWFrZV9tdmMubWFrLgooTWlyZWsgUHJ1Y2huaWspCgoiY3AgLWYiIGRvZXNuJ3Qgd29yayBvbiBhbGwgc3lzdGVtcy4gIENoYW5nZSAiY3AgLWYiIGluIHRoZSBNYWtlZmlsZSB0byAicm0KLWYiIGFuZCAiY3AiLgoKRGlkbid0IGNvbXBpbGUgb24gYSBDb21wYXEgVGFuZGVtIEhpbWFsYXlhIE9TUy4gKE1pY2hhZWwgQS4gQmVuemluZ2VyKQoKVGhlIEdUSyBmaWxlIHNlbGVjdGlvbiBkaWFsb2cgZGlkbid0IGluY2x1ZGUgdGhlICJDcmVhdGUgRGlyIiwgIkRlbGV0ZSBGaWxlIgphbmQgIlJlbmFtZSBGaWxlIiBidXR0b25zLgoKV2hlbiBkb2luZyAiOmJyb3dzZSBzb3VyY2UiIHRoZSBkaWFsb2cgaGFzIHRoZSB0aXRsZSAiUnVuIE1hY3JvIi4gIEJldHRlcgp3b3VsZCBiZSAiU291cmNlIFZpbSBzY3JpcHQiLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKCldpbjMyOiBEb24ndCB1c2UgdGhlIHByaW50ZXIgZm9udCBhcyBkZWZhdWx0IGZvciB0aGUgZm9udCBkaWFsb2cuCgoibWFrZSBkb3NsYW5nIiBkaWRuJ3Qgd29yayB3aGVuIGNvbmZpZ3VyZSBkaWRuJ3QgcnVuICh5ZXQpLiAgU2V0ICRNQUtFTU8gdG8KInllcyIuIChNaXJlayBQcnVjaG5paykKClRoZSBUb29sQmFyIFRhZ0p1bXAgaXRlbSB1c2VkICJnXSIsIHdoaWNoIHByb21wdHMgZm9yIGEgc2VsZWN0aW9uIGV2ZW4gd2hlbgp0aGVyZSBpcyBvbmx5IG9uZSBtYXRjaGluZyB0YWcuICBVc2UgImc8Qy1dPiIgaW5zdGVhZC4KClRoZSBtaW5nIG1ha2VmaWxlIGZvciBtZXNzYWdlIHRyYW5zbGF0aW9ucyBkaWRuJ3QgaGF2ZSB0aGUgcmlnaHQgbGlzdCBvZgpmaWxlcy4KClRoZSBNUy1XaW5kb3dzIDMuMSB2ZXJzaW9uIGNvbXBsYWlucyBhYm91dCBMSUJJTlRMLkRMTCBub3QgZm91bmQuICBDb21waWxlCnRoaXMgdmVyc2lvbiB3aXRob3V0IG1lc3NhZ2UgdHJhbnNsYXRpb25zLgoKVGhlIEJvcmxhbmQgNSBtYWtlZmlsZSBjb250YWluZWQgYSBjaGVjayBmb3IgUnVieSB3aGljaCBpcyBubyBsb25nZXIgbmVlZGVkLgpUaGUgVVJMcyBmb3IgdGhlIFRDTCBsaWJyYXJ5IHdhcyBvdXRkYXRlZC4gKERhbiBTaGFycCkKClRoZSBldmlzby5wcyBmaWxlIHdhcyBtaXNzaW5nIGZyb20gdGhlIERPUyBydW50aW1lIGFyY2hpdmUsIGl0J3MgbmVlZGVkIGZvcgpwcmludGluZyBQb3N0U2NyaXB0IGluIHRoZSAzMmJpdCBET1MgdmVyc2lvbi4KCkluIG1lbnUgZmlsZXMgIjpzY3JpcHRlbmNvZGluZyIgd2FzIHVzZWQgaW4gYSB3cm9uZyB3YXkgYWZ0ZXIgcGF0Y2ggNi4xYS4wMzIKTm93IHVzZSAiOnNjcmlwdGVuY29kaW5nIiBpbiB0aGUgZmlsZSB3aGVyZSB0aGUgdHJhbnNsYXRpb25zIGFyZSBnaXZlbi4gIERvCnRoZSBzYW1lIGZvciBhbGwgbWVudXMgaW4gbGF0aW4xIGVuY29kaW5nLgoKSW5jbHVkZWQgYSBsb3Qgb2YgZml4ZXMgZm9yIHRoZSBNYWNpbnRvc2gsIG1vc3RseSB0byBtYWtlIGl0IHdvcmsgd2l0aCBDYXJib24uCihEYW55IFN0QW1hbnQsIEF4ZWwgS2llbGhvcm4sIEJlbmppIEZpc2hlcikKCkltcHJvdmVkIHRoZSB2aW10dXRvciBzaGVsbCBzY3JpcHQgdG8gdXNlICRUTVBESVIgd2hlbiBpdCBleGlzdHMsIGFuZCBkZWxldGUKdGhlIGNvcGllZCBmaWxlIHdoZW4gZXhpdGluZyBpbiBhbiBhYm5vcm1hbCB3YXkuIChNYXggSXNjaGVua28pCgpXaGVuICJpY29udi5kbGwiIGNhbid0IGJlIGZvdW5kLCB0cnkgdXNpbmcgImxpYmljb252LmRsbCIuCgpXaGVuIGVuY3J5cHRpb24gaXMgdXNlZCwgZmlsdGVyaW5nIHdpdGggYSBzaGVsbCBjb21tYW5kIHdhc24ndCBwb3NzaWJsZS4KCkRKR1BQOiAiOmNkIGM6IiBhbHdheXMgZmFpbGVkLCBjYW4ndCBnZXQgcGVybWlzc2lvbnMgZm9yICJjOiIuCldpbjMyOiAiOmNkIGM6LyIgZmFpbGVkIGlmIHRoZSBwcmV2aW91cyBjdXJyZW50IGRpcmVjdG9yeSBvbiBjOiBoYWQgYmVjb21lCmludmFsaWQuCgpESkdQUDogU2hpZnQtRGVsIGFuZCBEZWwgYm90aCBwcm9kdWNlIFwzMTZcMTIzLiAgRGVmYXVsdCBtYXBwaW5nIGZvciBEZWwgaXMKd3JvbmcuICBEaXNhYmxlZCBpdC4KCkRlcGVuZGVuY2llcyBvbiBoZWFkZXIgZmlsZXMgaW4gTWluZ1cgbWFrZWZpbGUgd2FzIHdyb25nLgoKV2luMzI6IERvbid0IHVzZSBBQ0wgc3R1ZmYgZm9yIE1TVkMgNC4yLCBpdCdzIG5vdCBzdXBwb3J0ZWQuIChXYWx0ZXIgQnJpc2NvZSkKCldpbjMyIHdpdGggQm9ybGFuZDogYmNjLmNmZyB3YXMgY2FjaGluZyB0aGUgdmFsdWUgZm9yICQoQk9SKSwgYnV0IHByb3ZpZGluZyBhCmRpZmZlcmVudCBhcmd1bWVudCB0byBtYWtlIGRpZG4ndCByZWdlbmVyYXRlIGl0LgoKV2luMzIgd2l0aCBNU1ZDOiBNYWtlX2l2Yy5tYWsgZ2VuZXJhdGVzIGEgbmV3IGlmX29sZS5oIGluIGEgZGlmZmVyZW50CmRpcmVjdG9yeSwgdGhlIGlmX29sZS5oIGluIHRoZSBzcmMgZGlyZWN0b3J5IG1heSBiZSB1c2VkIGluc3RlYWQuICBEZWxldGUgdGhlCmRpc3RyaWJ1dGVkIGZpbGUuCgpXaGVuIGEgd2luZG93IGlzIHZlcnRpY2FsbHkgc3BsaXQgYW5kIHRoZW4gIjpiYWxsIiBpcyB1c2VkLCB0aGUgd2luZG93IGxheW91dAppcyBtZXNzZWQgdXAsIGNhbiBjYXVzZSBhIGNyYXNoLiAoTXVyYW9rYSBUYXJvKQoKV2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0LCB1c2luZyBGaWxlL05ldyBtZW51IGFuZCB0aGVuIGRvdWJsZSBjbGlja2luZywgImkiIGlzCnNvb24gaW5zZXJ0ZWQuIChNZXJsaW4gSGFuc2VuKQoKV2hlbiBTZWxlY3QgbW9kZSBpcyBhY3RpdmUgYW5kIHVzaW5nIHRoZSBCdWZmZXJzIG1lbnUgdG8gc3dpdGNoIHRvIGFub3RoZXIKYnVmZmVyLCBhbiBvbGQgc2VsZWN0aW9uIGNvbWVzIGJhY2suICBSZXNldCBWSXN1YWxfcmVzZWxlY3QgZm9yIGEgIjpidWZmZXIiCmNvbW1hbmQuCgpXaGVuIFNlbGVjdCBtb2RlIGlzIGFjdGl2ZSBhbmQgJ2luc2VydG1vZGUnIGlzIHNldCwgdXNpbmcgdGhlIEJ1ZmZlcnMgbWVudSB0bwpzd2l0Y2ggdG8gYW5vdGhlciBidWZmZXIsIGRpZCBub3QgcmV0dXJuIHRvIEluc2VydCBtb2RlLiAgTWFrZSBzdXJlCiJyZXN0YXJ0X2VkaXQiIGlzIHNldC4KCldoZW4gZG91YmxlIGNsaWNraW5nIG9uIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSB3b3JkIHdoaWxlICdzZWxlY3Rpb24nIGlzCiJleGNsdXNpdmUiIGRpZG4ndCBzZWxlY3QgdGhhdCB3b3JkLgoKClBhdGNoIDYuMC4wMDEKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgc2gudmltIHN5bnRheCBmaWxlIGNhdXNlcyBlcnJvciBtZXNzYWdlcyAuIChDb3Jpbm5hCgkgICAgVmluc2NoZW4pClNvbHV0aW9uOiAgIEFkZCBhbiAiaWYiLiAoQ2hhcmxlcyBDYW1wYmVsbCkKRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9zaC52aW0KClBhdGNoIDYuMC4wMDIKUHJvYmxlbTogICAgVXNpbmcgYSAnQCcgaXRlbSBpbiAndmltaW5mbycgZG9lc24ndCB3b3JrLiAoTWFya28gTGVpcGVydCkKU29sdXRpb246ICAgQWRkICdAJyB0byB0aGUgbGlzdCBvZiBhY2NlcHRlZCBpdGVtcy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4wMDMKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgQUNMcyBvbiBBSVggZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBGaXggdGhlIHRlc3QgcHJvZ3JhbSBzbyB0aGF0IGl0IGNvbXBpbGVzLiAoVG9tYXMgT2dyZW4pCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjAuMDA0ClByb2JsZW06ICAgIFRoZSBmaW5kL3JlcGxhY2UgZGlhbG9nIGRvZXNuJ3QgcmV1c2UgYSBwcmV2aW91cyBhcmd1bWVudAoJICAgIHByb3Blcmx5LgpTb2x1dGlvbjogICBBZnRlciByZW1vdmluZyBhICJcViIgdGVybWluYXRlIHRoZSBzdHJpbmcuIChad2FuZSBNd2Fpa2FtYm8pCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjAuMDA1ClByb2JsZW06ICAgIEluIEluc2VydCBtb2RlLCAiQ1RSTC1PIDpscyIgaGFzIGEgZGVsYXkgYmVmb3JlIHJlZHJhd2luZy4KU29sdXRpb246ICAgRG9uJ3QgZGVsYXkganVzdCBhZnRlciB3YWl0X3JldHVybigpIHdhcyBjYWxsZWQuICBBZGRlZCB0aGUKCSAgICBkaWRfd2FpdF9yZXR1cm4gZmxhZy4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvbWVzc2FnZS5jLCBzcmMvbm9ybWFsLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjAwNgpQcm9ibGVtOiAgICBXaXRoIGEgdmVydGljYWwgc3BsaXQsICdudW1iZXInIHNldCBhbmQgJ3Njcm9sbG9mZicgbm9uLXplcm8sCgkgICAgbWFraW5nIHRoZSB3aW5kb3cgd2lkdGggdmVyeSBzbWFsbCBjYXVzZXMgYSBjcmFzaC4gKE5pa2xhcwoJICAgIExpbmRzdHJvbSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgemVybyB3aWR0aC4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjAuMDA3ClByb2JsZW06ICAgIFdoZW4gc2V0dGluZyAnZmlsZXR5cGUnIHdoaWxlIHRoZXJlIGlzIG5vIEZpbGVUeXBlIGF1dG9jb21tYW5kLCBhCgkgICAgZm9sbG93aW5nICI6c2V0ZmlsZXR5cGUiIHdvdWxkIHNldCAnZmlsZXR5cGUnIGFnYWluLiAoS29idXMKCSAgICBSZXRpZWYpClNvbHV0aW9uOiAgIFNldCBkaWRfZmlsZXR5cGUgYWx3YXlzIHdoZW4gJ2ZpbGV0eXBlJyBoYXMgYmVlbiBzZXQuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMDA4ClByb2JsZW06ICAgICdpbWRpc2FibGUnIGlzIG1pc3NpbmcgZnJvbSB0aGUgb3B0aW9ucyB3aW5kb3cuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIEFkZCBhbiBlbnRyeSBmb3IgaXQuCkZpbGVzOgkgICAgcnVudGltZS9vcHR3aW4udmltCgpQYXRjaCA2LjAuMDA5ClByb2JsZW06ICAgIE5leHRzdGVwIGRvZXNuJ3QgaGF2ZSBTX0lTQkxLLiAoSm9obiBCZXBwdSkKU29sdXRpb246ICAgRGVmaW5lIFNfSVNCTEsgdXNpbmcgU19JRkJMSy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5oCgpQYXRjaCA2LjAuMDEwClByb2JsZW06ICAgIFVzaW5nICJnZiIgb24gYSBmaWxlIG5hbWUgc3RhcnRpbmcgd2l0aCAiLi8iIG9yICIuLi8iIGluIGEgYnVmZmVyCgkgICAgd2l0aG91dCBhIG5hbWUgY2F1c2VzIGEgY3Jhc2guIChSb3kgTGV3aXMpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIE5VTEwgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjAuMDExClByb2JsZW06ICAgIFB5dGhvbjogQWZ0ZXIgcmVwbGFjaW5nIG9yIGRlbGV0aW5nIGxpbmVzIGdldCBhbiBtbF9nZXQgZXJyb3IuCgkgICAgKExlbyBMaXBlbGlzKQpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGN1cnNvciBwb3NpdGlvbiBmb3IgZGVsZXRlZCBvciBhZGRlZCBsaW5lcy4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMC4wMTIKUHJvYmxlbTogICAgUG9saXNoIHRyYW5zbGF0aW9ucyBjb250YWluIHByaW50ZiBmb3JtYXQgZXJyb3JzLCB0aGlzIGNhbiByZXN1bHQKCSAgICBpbiBhIGNyYXNoIHdoZW4gdXNpbmcgb25lIG9mIHRoZW0uClNvbHV0aW9uOiAgIEZpeCBmb3IgdHJhbnNsYXRlZCBtZXNzYWdlcy4gKE1pY2hhbCBQb2xpdG93c2tpKQpGaWxlczoJICAgIHNyYy9wby9wbC5wbwoKUGF0Y2ggNi4wLjAxMwpQcm9ibGVtOiAgICBVc2luZyAiOnNpbGVudCEgY21kIiBzdGlsbCBnaXZlcyBzb21lIGVycm9yIG1lc3NhZ2VzLCBsaWtlIGZvciBhbgoJICAgIGludmFsaWQgcmFuZ2UuIChTYWxtYW4gSGFsaW0pClNvbHV0aW9uOiAgIFJlc2V0IGVtc2dfc2lsZW50IGFmdGVyIGNhbGxpbmcgZW1zZygpIGluIGRvX29uZV9jbWQoKS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjAxNApQcm9ibGVtOiAgICBXaGVuICdtb2RpZmlhYmxlJyBpcyBvZmYgYW5kICd2aXJ0dWFsZWRpdCcgaXMgImFsbCIsICJyeCIgb24gYSBUQUIKCSAgICBzdGlsbCBjaGFuZ2VzIHRoZSBidWZmZXIuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIENoZWNrIGlmIHNhdmluZyB0aGUgbGluZSBmb3IgdW5kbyBmYWlscy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wMTUKUHJvYmxlbTogICAgV2hlbiAnY3BvcHRpb25zJyBpbmNsdWRlcyAiUyIgYW5kICJmaWxldHlwZSBwbHVnaW4gb24iIGhhcyBiZWVuCgkgICAgdXNlZCwgY2FuIGdldCBhbiBlcnJvciBmb3IgZGVsZXRpbmcgdGhlIGI6ZGlkX2Z0cGx1Z2luIHZhcmlhYmxlLgoJICAgIChSYWxwaCBIZW5kZXJzb24pClNvbHV0aW9uOiAgIE9ubHkgZGVsZXRlIHRoZSB2YXJpYWJsZSB3aGVuIGl0IGV4aXN0cy4KRmlsZXM6CSAgICBydW50aW1lL2Z0cGx1Z2luLnZpbQoKUGF0Y2ggNi4wLjAxNgpQcm9ibGVtOiAgICBidWZucigpLCBidWZuYW1lKCkgYW5kIGJ1Zndpbm5yKCkgZG9uJ3QgZmluZCB1bmxpc3RlZCBidWZmZXJzIHdoZW4KCSAgICB0aGUgYXJndW1lbnQgaXMgYSBzdHJpbmcuIChIYXJpIEtyaXNobmEgRGFyYSkKCSAgICBBbHNvIGZvciBzZXRidWZ2YXIoKSBhbmQgZ2V0YnVmdmFyKCkuClNvbHV0aW9uOiAgIEFsc28gZmluZCB1bmxpc3RlZCBidWZmZXJzLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4wMTcKUHJvYmxlbTogICAgV2hlbiAndHR5YnVpbHRpbicgaXMgc2V0IGFuZCBhIGJ1aWx0aW4gdGVybWNhcCBlbnRyeSBkZWZpbmVzIHRfQ28KCSAgICBhbmQgdGhlIGV4dGVybmFsIG9uZSBkb2Vzbid0LCBpdCBnZXRzIHJlc2V0IHRvIGVtcHR5LiAoRGF2aWQKCSAgICBIYXJyaXNvbikKU29sdXRpb246ICAgT25seSBzZXQgdF9DbyB3aGVuIGl0IHdhc24ndCBzZXQgeWV0LgpGaWxlczoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMC4wMTgKUHJvYmxlbTogICAgSW5pdGlhbGl6aW5nICdlbmNvZGluZycgbWF5IGNhdXNlIGEgY3Jhc2ggd2hlbiBzZXRsb2NhbGUoKSBpcyBub3QKCSAgICB1c2VkLiAoRGFueSBTdC1BbWFudCkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgTlVMTCBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjAuMDE5ClByb2JsZW06ICAgIENvbnZlcnRpbmcgYSBzdHJpbmcgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdG8gYSBwcmludGFibGUKCSAgICBzdHJpbmcsIGUuZy4sIHdpdGggc3RydHJhbnMoKSwgbWF5IGNhdXNlIGEgY3Jhc2guIChUb21hcyBaZWxsZXJpbikKU29sdXRpb246ICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IGluIHRyYW5zc3RyKCkuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4wLjAyMApQcm9ibGVtOiAgICBXaGVuIG9idGFpbmluZyB0aGUgdmFsdWUgb2YgYSBnbG9iYWwgdmFyaWFibGUgaW50ZXJuYWxseSwgY291bGQKCSAgICBnZXQgdGhlIGZ1bmN0aW9uLWxvY2FsIHZhbHVlIGluc3RlYWQuICBBcHBsaWVzIHRvIHVzaW5nIDxMZWFkZXI+CgkgICAgYW5kIDxMb2NhbExlYWRlcj4gYW5kIHJlc2V0dGluZyBoaWdobGlnaHRpbmcgaW4gYSBmdW5jdGlvbi4KU29sdXRpb246ICAgUHJlcGVuZCAiZzoiIHRvIHRoZSB2YXJpYWJsZSBuYW1lLiAoQXJpYyBCbHVtZXIpCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjAuMDIxClByb2JsZW06ICAgIFRoZSAnY3Njb3BlcGF0aGNvbXAnIG9wdGlvbiBkaWRuJ3Qgd29yay4KU29sdXRpb246ICAgQ2hhbmdlIFVTRV9DU0NPUEUgdG8gRkVBVF9DU0NPUEUuIChNYXJrIEZlbmcpCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMDIyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlICdsYW5nbWFwJyBvcHRpb24sIHRoZSBzZWNvbmQgY2hhcmFjdGVyIG9mIGEgY29tbWFuZAoJICAgIHN0YXJ0aW5nIHdpdGggImciIGlzbid0IGFkanVzdGVkLgpTb2x1dGlvbjogICBBcHBseSAnbGFuZ21hcCcgdG8gdGhlIHNlY29uZCBjaGFyYWN0ZXIuIChBbGV4IEthcHJhbm9mZikKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wMjMKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgbGhhc2tlbGwgc3ludGF4IGRvZXNuJ3Qgd29yay4gKFRob3JlIEIuIEthcmxzZW4pClNvbHV0aW9uOiAgIFVzZSAiOnJ1bnRpbWUiIGluc3RlYWQgb2YgInNvdXJjZSIgdG8gbG9hZCBoYXNrZWxsLnZpbS4KRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9saGFza2VsbC52aW0KClBhdGNoIDYuMC4wMjQKUHJvYmxlbTogICAgVXNpbmcgIkNUUkwtViB1IDk5MDAiIGluIEluc2VydCBtb2RlIG1heSBjYXVzZSBhIGNyYXNoLiAoTm9haAoJICAgIExldml0dCkKU29sdXRpb246ICAgRG9uJ3QgaW5zZXJ0IGEgTlVMIGJ5dGUgaW4gdGhlIHRleHQsIHVzZSBhIG5ld2xpbmUuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMC4wMjUKUHJvYmxlbTogICAgVGhlIHBhdHRlcm4gIlx2eCgufCQpIiBkb2Vzbid0IG1hdGNoICJ4IiBhdCB0aGUgZW5kIG9mIGEgbGluZS4KCSAgICAoUHJlYmVuIFBlcHBlIEd1bGRiZXJnKQpTb2x1dGlvbjogICBBbHdheXMgc2VlIGEgIiQiIGFzIGVuZC1vZi1saW5lIGFmdGVyICJcdiIuICBEbyB0aGUgc2FtZSBmb3IgIl4iLgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjAyNgpQcm9ibGVtOiAgICBHVEs6IFdoZW4gdXNpbmcgYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBtZW51cywgdGhlCgkgICAgc2VwYXJhdG9ycyBhcmUgc2VsZWN0ZWQuClNvbHV0aW9uOiAgIFNldCB0aGUgc2VwYXJhdG9ycyAiaW5zZW5zaXRpdmUiLiAoUGF2ZWwgS2Fua292c2t5KQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjAuMDI3ClByb2JsZW06ICAgIFZNUzogUHJpbnRpbmcgZG9lc24ndCB3b3JrLCB0aGUgZmlsZSBpcyBkZWxldGVkIHRvbyBxdWlja2x5LgoJICAgIE5vIGxvbmdlciBuZWVkIHRoZSBWTVMgc3BlY2lmaWMgcHJpbnRpbmcgbWVudS4KCSAgICBnZXRob3N0bmFtZSgpIGlzIG5vdCBhdmFpbGFibGUgd2l0aCBWQVhDLgoJICAgIFRoZSBtYWtlZmlsZSB3YXMgbGFja2luZyBzZWxlY3Rpb24gb2YgdGhlIHRpbnktaHVnZSBmZWF0dXJlIHNldC4KU29sdXRpb246ICAgQWRqdXN0IHRoZSAncHJpbnRleHByJyBvcHRpb24gZGVmYXVsdC4gIEZpeCB0aGUgb3RoZXIgcHJvYmxlbXMgYW5kCgkgICAgdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vc192bXMudHh0LCBydW50aW1lL21lbnUudmltLCBzcmMvSU5TVEFMTHZtcy50eHQsCgkgICAgc3JjL01ha2Vfdm1zLm1tcywgc3JjL29wdGlvbi5jLCBzcmMvb3NfdW5peC5jLCBzcmMvb3Nfdm1zX2NvbmYuaAoKUGF0Y2ggNi4wLjAyOApQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGhvdXQgK3ZpcnR1YWxlZGl0IGFuZCB3aXRoICt2aXN1YWxleHRyYS4gKEdlemEKCSAgICBMYWtuZXIpClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYgZm9yICt2aXJ0dWFsZWRpdC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4wMjkKUHJvYmxlbTogICAgV2hlbiBtYWtpbmcgYSBjaGFuZ2UgaW4gbGluZSAxLCB0aGVuIGluIGxpbmUgMiBhbmQgdGhlbiBkZWxldGluZwoJICAgIGxpbmUgMSwgdW5kbyBpbmZvIGNvdWxkIGJlIHdyb25nLiAgT25seSB3aGVuIHRoZSBjaGFuZ2VzIGFyZSB1bmRvbmUKCSAgICBhdCBvbmNlLiAoR2VyaGFyZCBIb2NoaG9semVyKQpTb2x1dGlvbjogICBXaGVuIG5vdCBzYXZpbmcgYSBsaW5lIGZvciB1bmRvIGJlY2F1c2UgaXQgd2FzIGFscmVhZHkgZG9uZQoJICAgIGJlZm9yZSwgcmVtZW1iZXIgZm9yIHdoaWNoIGVudHJ5IHRoZSBsYXN0IGxpbmUgbXVzdCBiZSBjb21wdXRlZC4KCSAgICBBZGRlZCB1ZV9nZXRib3RfZW50cnkgcG9pbnRlciBmb3IgdGhpcy4gIFdoZW4gdGhlIG51bWJlciBvZiBsaW5lcwoJICAgIGNoYW5nZXMsIGFkanVzdCB0aGUgcG9zaXRpb24gb2YgbmV3ZXIgdW5kbyBlbnRyaWVzLgpGaWxlczoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy91bmRvLmMKClBhdGNoIDYuMC4wMzAKUHJvYmxlbTogICAgVXNpbmcgIjpzb3VyY2UhIGZpbGUiIGRvZXNuJ3Qgd29yayBpbnNpZGUgYSBsb29wIG9yIGFmdGVyCgkgICAgIjphcmdkbyIuIChQYXZvbCBKdWhhcykKU29sdXRpb246ICAgRXhlY3V0ZSB0aGUgY29tbWFuZHMgaW4gdGhlIGZpbGUgcmlnaHQgYXdheSwgZG8gbm90IGxldCB0aGUgbWFpbgoJICAgIGxvb3AgZG8gaXQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvZ2xvYmFscy5oLAoJICAgIHNyYy9wcm90by9leF9kb2NtZC5wcm8sIHNyYy9wcm90by9nZXRjaGFyLnBybwoKUGF0Y2ggNi4wLjAzMQpQcm9ibGVtOiAgICBOZXh0c3RlcCBkb2Vzbid0IGhhdmUgc2V0ZW52KCkgb3IgcHV0ZW52KCkuICAoSm9obiBCZXBwdSkKU29sdXRpb246ICAgTW92ZSBwdXRlbnYoKSBmcm9tIHB0eS5jIHRvIG1pc2MyLmMKRmlsZXM6CSAgICBzcmMvbWlzYzIuYywgc3JjL3B0eS5jCgpQYXRjaCA2LjAuMDMyClByb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgYSBzZXR0aW5nIHRoYXQgYWZmZWN0cyBhbGwgZm9sZHMsIHRoZXkgYXJlIG5vdAoJICAgIGRpc3BsYXllZCBpbW1lZGlhdGVseS4KU29sdXRpb246ICAgU2V0IHRoZSByZWRyYXcgZmxhZyBpbiBmb2xkVXBkYXRlQWxsKCkuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4wLjAzMwpQcm9ibGVtOiAgICBVc2luZyAnd2lsZG1lbnUnIG9uIE1TLVdpbmRvd3MsIGZpbGUgbmFtZXMgdGhhdCBpbmNsdWRlIGEgc3BhY2UKCSAgICBhcmUgb25seSBkaXNwbGF5ZWQgc3RhcnRpbmcgd2l0aCB0aGF0IHNwYWNlLiAoWGllIFl1aGVuZykKU29sdXRpb246ICAgRG9uJ3QgcmVjb2duaXplIGEgYmFja3NsYXNoIGJlZm9yZSBhIHNwYWNlIGFzIGEgcGF0aCBzZXBhcmF0b3IuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMDM0ClByb2JsZW06ICAgIENhbGxpbmcgc2VhcmNocGFpcigpIHdpdGggdGhyZWUgYXJndW1lbnRzIGNvdWxkIHJlc3VsdCBpbiBhIGNyYXNoCgkgICAgb3Igc3RyYW5nZSBlcnJvciBtZXNzYWdlLiAoS2FsbGUgQmpvcmtsaWQpClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgZmlmdGggYXJndW1lbnQgd2hlbiB0aGVyZSBpcyBubyBmb3VydGggYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjAzNQpQcm9ibGVtOiAgICBUaGUgbWVudSBpdGVtIEVkaXQvR2xvYmFsX1NldHRpbmdzL1RvZ2dsZV9Ub29sYmFyIGRvZXNuJ3Qgd29yawoJICAgIHdoZW4gJ2lnbm9yZWNhc2UnIGlzIHNldC4gKEFsbGVuIENhc3RhYmFuKQpTb2x1dGlvbjogICBBbHdheXMgbWF0Y2ggY2FzZSB3aGVuIGNoZWNraW5nIGlmIGEgZmxhZyBpcyBhbHJlYWR5IHByZXNlbnQgaW4KCSAgICAnZ3Vpb3B0aW9ucycuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4wLjAzNgpQcm9ibGVtOiAgICBPUy8yLCBNUy1ET1MgYW5kIE1TLVdpbmRvd3M6IFVzaW5nIGEgcGF0aCB0aGF0IHN0YXJ0cyB3aXRoIGEKCSAgICBzbGFzaCBpbiAndGFncycgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLiAoTWF0aGlhcyBLb2VocmVyKQpTb2x1dGlvbjogICBPbmx5IHVzZSB0aGUgZHJpdmUsIG5vdCB0aGUgd2hvbGUgcGF0aCB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgkgICAgQWxzbyBtYWtlIGl0IHdvcmsgZm9yICJjOmRpci9maWxlIi4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjAzNwpQcm9ibGVtOiAgICBXaGVuIHRoZSB1c2VyIGhhcyBzZXQgImRpZF9pbnN0YWxsX3N5bnRheF9tZW51IiB0byBhdm9pZCB0aGUKCSAgICBkZWZhdWx0IFN5bnRheCBtZW51IGl0IHN0aWxsIGFwcGVhcnMuIChWaXJnaWxpbykKU29sdXRpb246ICAgRG9uJ3QgYWRkIHRoZSB0aHJlZSBkZWZhdWx0IGl0ZW1zIHdoZW4gImRpZF9pbnN0YWxsX3N5bnRheF9tZW51IgoJICAgIGlzIHNldC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjAuMDM4ClByb2JsZW06ICAgIFdoZW4gJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIsIGRlbGV0aW5nIGEgYmxvY2sgb2YgdGV4dCBhdCB0aGUKCSAgICBlbmQgb2YgYSBsaW5lIGNhbiBsZWF2ZSB0aGUgY3Vyc29yIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBjdXJzb3IgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDM5ClByb2JsZW06ICAgICJnUCIgbGVhdmVzIHRoZSBjdXJzb3IgaW4gdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gJ3ZpcnR1YWxlZGl0JyBpcwoJICAgIHVzZWQuICBVc2luZyAiYyIgaW4gYmxvY2t3aXNlIFZpc3VhbCBtb2RlIGxlYXZlcyB0aGUgY3Vyc29yIGluIGEKCSAgICBzdHJhbmdlIHBvc2l0aW9uLgpTb2x1dGlvbjogICBGb3IgImdQIiByZXNldCB0aGUgImNvbGFkZCIgZmllbGQgZm9yIHRoZSAnXSBtYXJrLiAgRm9yICJjIiBsZWF2ZQoJICAgIHRoZSBjdXJzb3Igb24gdGhlIGxhc3QgaW5zZXJ0ZWQgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjA0MApQcm9ibGVtOiAgICBXaGVuICdmaWxlZW5jb2RpbmcnIGlzIGludmFsaWQgYW5kIHdyaXRpbmcgZmFpbHMgYmVjYXVzZSBvZgoJICAgIHRoaXMsIHRoZSBvcmlnaW5hbCBmaWxlIGlzIGdvbmUuIChFcmljIENhcmxpZXIpClNvbHV0aW9uOiAgIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGZpbGUgZnJvbSB0aGUgYmFja3VwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjA0MQpQcm9ibGVtOiAgICBVc2luZyAiOmxhbmd1YWdlIG1lc3NhZ2VzIGVuIiB3aGVuIExDX01FU1NBR0VTIGlzIHVuZGVmaW5lZAoJICAgIHJlc3VsdHMgaW4gc2V0dGluZyBMQ19DVFlQRS4gKEVyaWMgQ2FybGllcikKU29sdXRpb246ICAgU2V0ICRMQ19NRVNTQUdFUyBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjAuMDQyClByb2JsZW06ICAgICI6bWtzZXNzaW9uIiBjYW4ndCBoYW5kbGUgZmlsZSBuYW1lcyB3aXRoIGEgc3BhY2UuClNvbHV0aW9uOiAgIEVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lcyB3aXRoIGEgYmFja3NsYXNoLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjAuMDQzClByb2JsZW06ICAgIFBhdGNoIDYuMC4wNDEgd2FzIHdyb25nLgpTb2x1dGlvbjogICBVc2UgbWNoX2dldGVudigpIGluc3RlYWQgb2YgdmltX2dldGVudigpLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjAuMDQ0ClByb2JsZW06ICAgIFVzaW5nIGEgImNvbnRhaW5lZGluIiBsaXN0IGZvciBhIHN5bnRheCBpdGVtIGRvZXNuJ3Qgd29yayBmb3IgYW4KCSAgICBpdGVtIHRoYXQgZG9lc24ndCBoYXZlIGEgImNvbnRhaW5zIiBhcmd1bWVudC4gIEFsc28sICJjb250YWluZWRpbiIKCSAgICBkb2Vzbid0IGlnbm9yZSBhIHRyYW5zcGFyZW50IGl0ZW0uIChUaW1vIEZyZW5heSkKU29sdXRpb246ICAgV2hlbiB0aGVyZSBpcyBhICJjb250YWluZWRpbiIgYXJndW1lbnQgc29tZXdoZXJlLCBhbHdheXMgY2hlY2sgZm9yCgkgICAgY29udGFpbmVkIGl0ZW1zLiAgRG9uJ3QgY2hlY2sgZm9yIHRoZSB0cmFuc3BhcmVudCBpdGVtIGJ1dCB0aGUKCSAgICBpdGVtIGl0J3MgY29udGFpbmVkIGluLgpGaWxlczoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjA0NQpQcm9ibGVtOiAgICBBZnRlciBjcmVhdGluZyBhIGZvbGQgd2l0aCBhIFZpc3VhbCBzZWxlY3Rpb24sIGFub3RoZXIgd2luZG93CgkgICAgd2l0aCB0aGUgc2FtZSBidWZmZXIgc3RpbGwgaGFzIGludmVydGVkIHRleHQuIChTYW1pIFNhbG9uZW4pClNvbHV0aW9uOiAgIFJlZHJhdyB0aGUgaW52ZXJ0ZWQgdGV4dC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wNDYKUHJvYmxlbTogICAgV2hlbiBnZXRybGltaXQoKSByZXR1cm5zIGFuIDggYnl0ZSBudW1iZXIgdGhlIGNoZWNrIGZvciBydW5uaW5nCgkgICAgb3V0IG9mIHN0YWNrIG1heSBmYWlsLiAoQW50aG9ueSBNZWlqZXIpClNvbHV0aW9uOiAgIFNraXAgdGhlIHN0YWNrIGNoZWNrIGlmIHRoZSBsaW1pdCBkb2Vzbid0IGZpdCBpbiBhIGxvbmcuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlnLmguaW4sIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4wLjA0NwpQcm9ibGVtOiAgICBVc2luZyBhIHJlZ2V4cCB3aXRoICJcKFwpIiBpbnNpZGUgYSAiXCVbXSIgaXRlbSBjYXVzZXMgYSBjcmFzaC4KCSAgICAoU2FtdWVsIExhY2FzKQpTb2x1dGlvbjogICBEb24ndCBhbGxvdyBuZXN0ZWQgYXRvbXMgaW5zaWRlICJcJVtdIi4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4wNDgKUHJvYmxlbTogICAgV2luMzI6IEluIHRoZSBjb25zb2xlIHRoZSBtb3VzZSBkb2Vzbid0IGFsd2F5cyB3b3JrIGNvcnJlY3RseS4KCSAgICBTb21ldGltZXMgYWZ0ZXIgZ2V0dGluZyBmb2N1cyBhIG1vdXNlIG1vdmVtZW50IGlzIGludGVycHJldGVkIGxpa2UKCSAgICBhIGJ1dHRvbiBjbGljay4KU29sdXRpb246ICAgVXNlIGEgZGlmZmVyZW50IGZ1bmN0aW9uIHRvIG9idGFpbiB0aGUgbnVtYmVyIG9mIG1vdXNlIGJ1dHRvbnMuCgkgICAgQXZvaWQgcmVjb2duaXppbmcgYSBidXR0b24gcHJlc3MgZnJvbSB1bmRlZmluZWQgYml0cy4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjAuMDQ5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZXZpbSB0aGUgaW50cm8gc2NyZWVuIGlzIG1pc2xlYWRpbmcuIChBZHJpYW4gTmFnbGUpClNvbHV0aW9uOiAgIE1lbnRpb24gd2hldGhlciAnaW5zZXJ0bW9kZScgaXMgc2V0IGFuZCB0aGUgbWVudXMgdG8gYmUgdXNlZC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltLCBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjAuMDUwClByb2JsZW06ICAgIFVURi04OiAidml3IiBkb2Vzbid0IGluY2x1ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgYmVmb3JlIHRoZQoJICAgIGN1cnNvci4gKEJlcnRpbG8gV2VubmVyZ3JlbikKU29sdXRpb246ICAgVXNlIGRlY19jdXJzb3IoKSBpbnN0ZWFkIG9mIGRlY3JlbWVudGluZyB0aGUgY29sdW1uIG51bWJlci4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMC4wNTEKUHJvYmxlbTogICAgVVRGLTg6IFVzaW5nIENUUkwtUiBvbiB0aGUgY29tbWFuZCBsaW5lIGRvZXNuJ3QgaW5zZXJ0IGNvbXBvc2luZwoJICAgIGNoYXJhY3RlcnMuIChSb24gQWFyb24pClNvbHV0aW9uOiAgIEFsc28gaW5jbHVkZSB0aGUgY29tcG9zaW5nIGNoYXJhY3RlcnMgYW5kIGZpeCByZWRyYXdpbmcgdGhlbS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDUyClByb2JsZW06ICAgIFRoZSBjaGVjayBmb3IgcmxpbV90IGluIHBhdGNoIDYuMC4wNDYgZG9lcyBub3Qgd29yayBvbiBzb21lCgkgICAgc3lzdGVtcy4gKFpkZW5layBTZWtlcmEpClNvbHV0aW9uOiAgIEFsc28gbG9vayBpbiBzeXMvcmVzb3VyY2UuaCBmb3IgcmxpbV90LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4wLjA1MyAoZXh0cmEpClByb2JsZW06ICAgIFZhcmlvdXMgcHJvYmxlbXMgd2l0aCBRTlguClNvbHV0aW9uOiAgIE1pbm9yIGZpeCBmb3IgY29uZmlndXJlLiAgU3dpdGNoIG9uIHRlcm1pbmFsIGNsaXBib2FyZCBzdXBwb3J0IGluCgkgICAgbWFpbi5jLiAgRml4ICJwdGVybSIgbW91c2Ugc3VwcG9ydC4gIG9zX3FueC5jIGRpZG4ndCBidWlsZCB3aXRob3V0CgkgICAgcGhvdG9uLiAoSnVsaWFuIEtpbnJhaWQpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvZ3VpX3Bob3Rvbi5jLAoJICAgIHNyYy9tYWluLmMsIHNyYy9taXNjMi5jLCBzcmMvb3B0aW9uLmgsIHNyYy9vc19xbnguYywgc3JjL29zX3FueC5oLAoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjA1NApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIG1zd2luLnZpbSwgQ1RSTC1WIHBhc3RlcyBhIGJsb2NrIG9mIHRleHQgbGlrZSBpdCBpcwoJICAgIG5vcm1hbCB0ZXh0LiAgVXNpbmcgQ1RSTC1WIGluIGJsb2Nrd2lzZSBWaXN1YWwgbW9kZSBsZWF2ZXMgIngiCgkgICAgY2hhcmFjdGVycyBiZWhpbmQuClNvbHV0aW9uOiAgIE1ha2UgQ1RSTC1WIHdvcmsgYXMgaXQgc2hvdWxkLiAgRG8gdGhlIHNhbWUgZm9yIHRoZSBQYXN0ZSBtZW51CgkgICAgZW50cmllcy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltLCBydW50aW1lL21zd2luLnZpbQoKUGF0Y2ggNi4wLjA1NQpQcm9ibGVtOiAgICBHVEs6IFRoZSBzZWxlY3Rpb24gaXNuJ3QgY29waWVkIHRoZSBmaXJzdCB0aW1lLgpTb2x1dGlvbjogICBPd24gdGhlIHNlbGVjdGlvbiBhdCB0aGUgcmlnaHQgbW9tZW50LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjAuMDU2ClByb2JsZW06ICAgIFVzaW5nICJDVFJMLU8gY3ciIGluIEluc2VydCBtb2RlIHJlc3VsdHMgaW4gYSBuZXN0ZWQgSW5zZXJ0IG1vZGUuCgkgICAgPEVzYz4gZG9lc24ndCBsZWF2ZSBJbnNlcnQgbW9kZSB0aGVuLgpTb2x1dGlvbjogICBPbmx5IHVzZSBuZXN0ZWQgSW5zZXJ0IG1vZGUgd2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0IG9yIHdoZW4gYQoJICAgIG1hcHBpbmcgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wNTcKUHJvYmxlbTogICAgVXNpbmcgIjp3aW5jbWQgZ30iIGluIGEgZnVuY3Rpb24gZG9lc24ndCB3b3JrLiAgKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZGlyZWN0bHksIGluc3RlYWQgb2YgcHV0dGluZyBpdCBpbiB0aGUKCSAgICB0eXBlYWhlYWQgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL25vcm1hbC5wcm8sIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4wLjA1OApQcm9ibGVtOiAgICBXaGVuIGEgQ3Vyc29yaG9sZCBhdXRvY29tbWFuZCBtb3ZlZCB0aGUgY3Vyc29yLCB0aGUgcnVsZXIgd2Fzbid0CgkgICAgdXBkYXRlZC4gKEJvaGRhbiBWbGFzeXVrKQpTb2x1dGlvbjogICBVcGRhdGUgdGhlIHJ1bGVyIGFmdGVyIGV4ZWN1dGluZyB0aGUgYXV0b2NvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4wLjA1OQpQcm9ibGVtOiAgICBIaWdobGlnaHRpbmcgZm9yICdobHNlYXJjaCcgaXNuJ3QgdmlzaWJsZSBpbiBsaW5lcyB0aGF0IGFyZQoJICAgIGhpZ2hsaWdodGVkIGZvciBkaWZmIGhpZ2hsaWdodGluZy4gIChHYXJ5IEhvbGxvd2F5KQpTb2x1dGlvbjogICBMZXQgJ2hsc2VhcmNoJyBoaWdobGlnaHRpbmcgb3ZlcnJ1bGUgZGlmZiBoaWdobGlnaHRpbmcuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMDYwClByb2JsZW06ICAgIE1vdGlmOiBXaGVuIHRoZSB0b29sdGlwIGlzIHRvIGJlIHBvcHBlZCB1cCwgVmltIGNyYXNoZXMuCgkgICAgKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIE5VTEwgcmV0dXJuIHZhbHVlIGZyb20gZ3VpX21vdGlmX2ZvbnRzZXQyZm9udGxpc3QoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX2JldmFsLmMKClBhdGNoIDYuMC4wNjEKUHJvYmxlbTogICAgVGhlIHRvb2xiYXIgYnV0dG9ucyB0byBsb2FkIGFuZCBzYXZlIGEgc2Vzc2lvbiBkbyBub3QgY29ycmVjdGx5CgkgICAgdXNlIHY6dGhpc19zZXNzaW9uLgpTb2x1dGlvbjogICBDaGVjayBmb3Igdjp0aGlzX3Nlc3Npb24gdG8gYmUgZW1wdHkgaW5zdGVhZCBvZiBleGlzdGluZy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjAuMDYyClByb2JsZW06ICAgIENyYXNoIHdoZW4gJ3ZlcmJvc2UnIGlzID4gMyBhbmQgdXNpbmcgIjpzaGVsbCIuIChZZWdhcHBhbgoJICAgIExha3NobWFuYW4pClNvbHV0aW9uOiAgIEF2b2lkIGdpdmluZyBhIE5VTEwgcG9pbnRlciB0byBwcmludGYoKS4gIEFsc28gb3V0cHV0IGEgbmV3bGluZQoJICAgIGFuZCBzd2l0Y2ggdGhlIGN1cnNvciBvbi4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjA2MwpQcm9ibGVtOiAgICBXaGVuICdjcG9wdGlvbnMnIGluY2x1ZGVzICIkIiwgdXNpbmcgImN3IiB0byB0eXBlIGEgJyknIG9uIHRvcCBvZgoJICAgIHRoZSAiJCIgZG9lc24ndCB1cGRhdGUgc3ludGF4IGhpZ2hsaWdodGluZyBhZnRlciBpdC4KU29sdXRpb246ICAgU3RvcCBkaXNwbGF5aW5nIHRoZSAiJCIgd2hlbiB0eXBpbmcgYSAnKScgaW4gaXRzIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4wLjA2NCAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBOU0lTIGluc3RhbGwgc2NyaXB0IGRvZXNuJ3Qgd29yayB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIE5TSVMuCgkgICAgVGhlIGRpZmYgZmVhdHVyZSBkb2Vzbid0IHdvcmsgd2hlbiB0aGVyZSBpc24ndCBhIGdvb2QgZGlmZi5leGUgb24KCSAgICB0aGUgc3lzdGVtLgpTb2x1dGlvbjogICBSZXBsYWNlIHRoZSBHZXRQYXJlbnREaXIgaW5zdHJ1Y3Rpb24gYnkgYSB1c2VyIGZ1bmN0aW9uLgoJICAgIEZpeCBhIGZldyBjb3NtZXRpYyBwcm9ibGVtcy4gIFVzZSBkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlCgkgICAgdmVyc2lvbiBudW1iZXIsIHNvIHRoYXQgaXQncyBkZWZpbmVkIGluIG9uZSBwbGFjZSBvbmx5LgoJICAgIE9ubHkgYWNjZXB0IHRoZSBpbnN0YWxsIGRpcmVjdG9yeSB3aGVuIGl0IGVuZHMgaW4gInZpbSIuCgkgICAgKEVkdWFyZG8gRmVybmFuZGV6KQoJICAgIEFkZCBhIGRpZmYuZXhlIGFuZCB1c2UgaXQgZnJvbSB0aGUgZGVmYXVsdCBfdmltcmMuCkZpbGVzOgkgICAgbnNpcy9ndmltLm5zaSwgbnNpcy9SRUFETUUudHh0LCBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjAuMDY1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpub3JtYWwiIGluICdpbmRlbnRleHByJyBpdCBtYXkgdXNlIHJlZG8gY2hhcmFjdGVycwoJICAgIGJlZm9yZSBpdHMgYXJndW1lbnQuICAoTmVpbCBCaXJkKQpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIHRoZSBzdHVmZiBidWZmZXIgaW4gZXhfbm9ybWFsKCkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMC4wNjYKUHJvYmxlbTogICAgU29tZXRpbWVzIHVuZG8gZm9yIG9uZSBjb21tYW5kIGlzIHNwbGl0IGludG8gdHdvIHVuZG8gYWN0aW9ucy4KCSAgICAoSGFsaW0gU2FsbWFuKQpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIHVuZG8tc3luY2VkIGZsYWcgd2hlbiByZXVzaW5nIGEgbGluZSB0aGF0IHdhcwoJICAgIGFscmVhZHkgc2F2ZWQgZm9yIHVuZG8uCkZpbGVzOgkgICAgc3JjL3VuZG8uYwoKUGF0Y2ggNi4wLjA2NwpQcm9ibGVtOiAgICBpZl94Y21kc3J2LmMgZG9lc24ndCBjb21waWxlIG9uIHN5c3RlbXMgd2hlcmUgZmRfc2V0IGlzbid0IGRlZmluZWQKCSAgICBpbiB0aGUgdXN1YWwgaGVhZGVyIGZpbGUgKGUuZy4sIEFJWCkuIChNYXJrIFdhZ2dvbmVyKQpTb2x1dGlvbjogICBJbmNsdWRlIHN5cy9zZWxlY3QuaCBpbiBpZl94Y21kc3J2LmMgZm9yIHN5c3RlbXMgdGhhdCBoYXZlIGl0LgpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMKClBhdGNoIDYuMC4wNjgKUHJvYmxlbTogICAgV2hlbiBmb3JtYXR0aW5nIGEgVmlzdWFsbHkgc2VsZWN0ZWQgYXJlYSB3aXRoICJncSIgYW5kIHRoZSBudW1iZXIKCSAgICBvZiBsaW5lcyBpbmNyZWFzZXMgdGhlIGxhc3QgbGluZSBtYXkgbm90IGJlIHJlZHJhd24gY29ycmVjdGx5LgoJICAgIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBhcmVhIHRvIGJlIHJlZHJhd24gZm9yIGluc2VydGVkL2RlbGV0ZWQgbGluZXMuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDY5ClByb2JsZW06ICAgIFVzaW5nICJLIiBvbiBhIHdvcmQgdGhhdCBpbmNsdWRlcyBhICIhIiBjYXVzZXMgYSAiTm8gcHJldmlvdXMKCSAgICBjb21tYW5kIiBlcnJvciwgYmVjYXVzZSB0aGUgIiEiIGlzIGV4cGFuZGVkLiAoQ3JhaWcgSmVmZnJpZXMpClNvbHV0aW9uOiAgIFB1dCBhIGJhY2tzbGFzaCBiZWZvcmUgdGhlICIhIi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wNzAKUHJvYmxlbTogICAgV2luMzI6IFRoZSBlcnJvciBtZXNzYWdlIGZvciBhIGZhaWxlZCBkeW5hbWljIGxpbmtpbmcgb2YgYSBQZXJsLAoJICAgIFJ1YnksIFRjbCBhbmQgUHl0aG9uIGxpYnJhcnkgaXMgdW5jbGVhciBhYm91dCB3aGF0IHdlbnQgd3JvbmcuClNvbHV0aW9uOiAgIEdpdmUgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb3IgZnVuY3Rpb24gdGhhdCBjb3VsZCBub3QgYmUgbG9hZGVkLgoJICAgIEFsc28gZm9yIHRoZSBpY29udiBhbmQgZ2V0dGV4dCBsaWJyYXJpZXMgd2hlbiAndmVyYm9zZScgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9pZl9wZXJsLnhzLCBzcmMvaWZfcHl0aG9uLmMsIHNyYy9pZl9ydWJ5LmMsCgkgICAgc3JjL2lmX3RjbC5jLCBzcmMvbWJ5dGUuYywgc3JjL29zX3dpbjMyLmMsIHNyYy9wcm90by9pZl9wZXJsLnBybywKCSAgICBzcmMvcHJvdG8vaWZfcHl0aG9uLnBybywgc3JjL3Byb3RvL2lmX3J1YnkucHJvLAoJICAgIHNyYy9wcm90by9pZl90Y2wucHJvLCBzcmMvcHJvdG8vbWJ5dGUucHJvCgpQYXRjaCA2LjAuMDcxClByb2JsZW06ICAgIFRoZSAiaXJpcy1hbnNpIiBidWlsdGluIHRlcm1jYXAgaXNuJ3QgdmVyeSBnb29kLgpTb2x1dGlvbjogICBGaXggdGhlIHdyb25nIGVudHJpZXMuIChEYXZpZCBIYXJyaXNvbikKRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjAuMDcyClByb2JsZW06ICAgIFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCwgYSBtYXBwaW5nIHRoYXQgc3RvcHMgVmlzdWFsIG1vZGUsIG1vdmVzCgkgICAgdGhlIGN1cnNvciBhbmQgc3RhcnRzIFZpc3VhbCBtb2RlIGFnYWluIGNhdXNlcyBhIHJlZHJhdyBwcm9ibGVtLgoJICAgIChCcmlhbiBTaWx2ZXJtYW4pClNvbHV0aW9uOiAgIFJlZHJhdyBib3RoIHRoZSBvbGQgYW5kIHRoZSBuZXcgVmlzdWFsIGFyZWEgd2hlbiBuZWNlc3NhcnkuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4wNzMgKGV4dHJhKQpQcm9ibGVtOiAgICBESkdQUDogV2hlbiB1c2luZyBDVFJMLVogdG8gc3RhcnQgYSBzaGVsbCwgdGhlIHByb21wdCBpcyBoYWxmd2F5CgkgICAgdGhlIHRleHQuIChWb2xrZXIgS2llZmVsKQpTb2x1dGlvbjogICBQb3NpdGlvbiB0aGUgc3lzdGVtIGN1cnNvciBiZWZvcmUgc3RhcnRpbmcgdGhlIHNoZWxsLgpGaWxlczoJICAgIHNyYy9vc19tc2Rvcy5jCgpQYXRjaCA2LjAuMDc0ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIiYiIGluIGEgc3Vic3RpdHV0ZSBzdHJpbmcgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciB3aXRoCgkgICAgYSB0cmFpbGJ5dGUgMHg1YyBpcyBub3QgaGFuZGxlZCBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW5zaWRlIHRoZSAiJiIgcGFydC4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4wNzUKUHJvYmxlbTogICAgV2hlbiBjbG9zaW5nIGEgaG9yaXpvbnRhbGx5IHNwbGl0IHdpbmRvdyB3aGlsZSAnZWFkaXJlY3Rpb24nIGlzCgkgICAgImhvciIgYW5vdGhlciBob3Jpem9udGFsbHkgc3BsaXQgd2luZG93IGlzIHN0aWxsIHJlc2l6ZWQuIChBcm9uCgkgICAgR3JpZmZpcykKU29sdXRpb246ICAgT25seSByZXNpemUgd2luZG93cyBpbiB0aGUgc2FtZSB0b3AgZnJhbWUgYXMgdGhlIHdpbmRvdyB0aGF0IGlzCgkgICAgc3BsaXQgb3IgY2xvc2VkLgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9wcm90by93aW5kb3cucHJvLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMC4wNzYKUHJvYmxlbTogICAgV2FybmluZyBmb3Igd3JvbmcgcG9pbnRlciB0eXBlIHdoZW4gY29tcGlsaW5nLgpTb2x1dGlvbjogICBVc2UgY2hhciBpbnN0ZWFkIG9mIGNoYXJfdSBwb2ludGVyLgpGaWxlczoJICAgIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMC4wNzcKUHJvYmxlbTogICAgUGF0Y2ggNi4wLjA3NSB3YXMgaW5jb21wbGV0ZS4KU29sdXRpb246ICAgRml4IGFub3RoZXIgY2FsbCB0byB3aW5fZXF1YWwoKS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4wNzgKUHJvYmxlbTogICAgVXNpbmcgImRhdyIgYXQgdGhlIGVuZCBvZiBhIGxpbmUgb24gYSBzaW5nbGUtY2hhcmFjdGVyIHdvcmQgZGlkbid0CgkgICAgaW5jbHVkZSB0aGUgd2hpdGUgc3BhY2UgYmVmb3JlIGl0LiAgQXQgdGhlIGVuZCBvZiB0aGUgZmlsZSBpdAoJICAgIGRpZG4ndCB3b3JrIGF0IGFsbC4gIChHYXZpbiBTaW5jbGFpcikKU29sdXRpb246ICAgSW5jbHVkZSB0aGUgd2hpdGUgc3BhY2UgYmVmb3JlIHRoZSB3b3JkLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4wLjA3OQpQcm9ibGVtOiAgICBXaGVuICJXIiBpcyBpbiAnY3BvcHRpb25zJyBhbmQgJ2JhY2t1cGNvcHknIGlzICJubyIgb3IgImF1dG8iLCBjYW4KCSAgICBzdGlsbCBvdmVyd3JpdGUgYSByZWFkLW9ubHkgZmlsZSwgYmVjYXVzZSBpdCdzIHJlbmFtZWQuIChHYXJ5CgkgICAgSG9sbG93YXkpClNvbHV0aW9uOiAgIEFkZCBhIGNoZWNrIGZvciBhIHJlYWQtb25seSBmaWxlIGJlZm9yZSByZW5hbWluZyB0aGUgZmlsZSB0bwoJICAgIGJlY29tZSB0aGUgYmFja3VwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjA4MApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgc2Vzc2lvbiBmaWxlIHRoYXQgaGFzIHRoZSBzYW1lIGZpbGUgaW4gdHdvIHdpbmRvd3MsCgkgICAgdGhlIGZpbGVpbmZvKCkgY2FsbCBpbiBkb19lY21kKCkgY2F1c2VzIGEgc2Nyb2xsIGFuZCBhIGhpdC1lbnRlcgoJICAgIHByb21wdC4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBEb24ndCBzY3JvbGwgdGhpcyBtZXNzYWdlIHdoZW4gJ3Nob3J0bWVzcycgY29udGFpbnMgJ08nLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMC4wODEKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgIjpzYXZlYXMiIHRoZSBuZXcgYnVmZmVyIG5hbWUgaXMgYWRkZWQgdG8gdGhlIEJ1ZmZlcnMKCSAgICBtZW51IHdpdGggYSB3cm9uZyBudW1iZXIuIChDaGF1ay1NZWFuIFByb3VtKQpTb2x1dGlvbjogICBUcmlnZ2VyIEJ1ZkZpbGVQcmUgYW5kIEJ1ZkZpbGVQb3N0IGV2ZW50cyBmb3IgdGhlIHJlbmFtZWQgYnVmZmVyCgkgICAgYW5kIEJ1ZkFkZCBmb3IgdGhlIG9sZCBuYW1lICh3aGljaCBpcyB3aXRoIGEgbmV3IGJ1ZmZlcikuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4wLjA4MgpQcm9ibGVtOiAgICBXaGVuIHN3YXBwaW5nIHNjcmVlbnMgaW4gYW4geHRlcm0gYW5kIHRoZXJlIGlzIGFuIChlcnJvcikgbWVzc2FnZQoJICAgIGZyb20gdGhlIHZpbXJjIHNjcmlwdCwgdGhlIHNoZWxsIHByb21wdCBpcyBhZnRlciB0aGUgbWVzc2FnZS4KU29sdXRpb246ICAgT3V0cHV0IGEgbmV3bGluZSB3aGVuIHRoZXJlIHdhcyBvdXRwdXQgb24gdGhlIGFsdGVybmF0ZSBzY3JlZW4uCgkgICAgQWxzbyB3aGVuIHN0YXJ0aW5nIHRoZSBHVUkuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4wLjA4MwpQcm9ibGVtOiAgICBHVEs6IFdoZW4gY29tcGlsZWQgd2l0aG91dCBtZW51IHN1cHBvcnQgdGhlIGJ1dHRvbnMgaW4gYSBkaWFsb2cKCSAgICBkb24ndCBoYXZlIGFueSB0ZXh0LiAoRXJpayBFZGVsbWFubikKU29sdXRpb246ICAgQWRkIHRoZSB0ZXh0IGFsc28gd2hlbiBHVEtfVVNFX0FDQ0VMIGlzbid0IGRlZmluZWQuICBBbmQgZGVmaW5lCgkgICAgR1RLX1VTRV9BQ0NFTCBhbHNvIHdoZW4gbm90IHVzaW5nIG1lbnVzLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMC4wODQKUHJvYmxlbTogICAgVVRGLTg6IGEgInIiIGNvbW1hbmQgd2l0aCBhbiBhcmd1bWVudCB0aGF0IGlzIGEga2V5bWFwIGZvciBhCgkgICAgY2hhcmFjdGVyIHdpdGggYSBjb21wb3NpbmcgY2hhcmFjdGVyIGNhbid0IGJlIHJlcGVhdGVkIHdpdGggIi4iLgoJICAgIChSYXBoYWVsIEZpbmtlbCkKU29sdXRpb246ICAgQWRkIHRoZSBjb21wb3NpbmcgY2hhcmFjdGVycyB0byB0aGUgcmVkbyBidWZmZXIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDg1ClByb2JsZW06ICAgIFdoZW4gJ21vdXNlZm9jdXMnIGlzIHNldCwgdXNpbmcgInMiIHRvIGdvIHRvIEluc2VydCBtb2RlIGFuZCB0aGVuCgkgICAgbW92aW5nIHRoZSBtb3VzZSBwb2ludGVyIHRvIGFub3RoZXIgd2luZG93IHN0b3BzIEluc2VydCBtb2RlLAoJICAgIHdoaWxlIHRoaXMgZG9lc24ndCBoYXBwZW4gd2l0aCAiYSIgb3IgImkiLiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIFJlc2V0IGZpbmlzaF9vcCBiZWZvcmUgY2FsbGluZyBlZGl0KCkuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDg2ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgImd1IiB0aGUgbWVzc2FnZSBzYXlzICJ+ZWQiLgpTb2x1dGlvbjogICBNYWtlIHRoZSBtZXNzYWdlIHNheSAiY2hhbmdlZCIuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDg3IChsYW5nKQpQcm9ibGVtOiAgICBNZXNzYWdlIHRyYW5zbGF0aW9ucyBhcmUgaW5jb3JyZWN0LCB3aGljaCBtYXkgY2F1c2UgYSBjcmFzaC4KCSAgICAoUGV0ZXIgRmlndXJhKQoJICAgIFRoZSBUdXJraXNoIHRyYW5zbGF0aW9ucyBuZWVkZWQgbW9yZSB3b3JrIGFuZCB0aGUgbWFpbnRhaW5lcgoJICAgIGRpZG4ndCBoYXZlIHRpbWUuClNvbHV0aW9uOiAgIEZpeCBvcmRlciBvZiBwcmludGYgYXJndW1lbnRzLiAgUmVtb3ZlICUyJGQgY29uc3RydWN0cy4KCSAgICBBZGQgIi12IiB0byBtc2dmbXQgdG8gZ2V0IGEgd2FybmluZyBmb3Igd3JvbmcgdHJhbnNsYXRpb25zLgoJICAgIERvbid0IGluc3RhbGwgdGhlIFR1cmtpc2ggdHJhbnNsYXRpb25zIGZvciBub3cuCgkgICAgVXBkYXRlIGEgZmV3IG1vcmUgdHJhbnNsYXRpb25zLgpGaWxlczoJICAgIHNyYy9wby9NYWtlZmlsZSwgc3JjL3BvL2FmLnBvLCBzcmMvcG8vY3MucG8sIHNyYy9wby9jcy5jcDEyNTAucG8sCgkgICAgc3JjL3BvL2RlLnBvLCBzcmMvcG8vZXMucG8sIHNyYy9wby9mci5wbywgc3JjL3BvL2l0LnBvLAoJICAgIHNyYy9wby9qYS5wbywgc3JjL3BvL2phLnNqaXMucG8sIHNyYy9wby9rby5wbywgc3JjL3BvL3BsLnBvLAoJICAgIHNyYy9wby9zay5wbywgc3JjL3BvL3VrLnBvLCBzcmMvcG8vemhfQ04uVVRGLTgucG8sCgkgICAgc3JjL3BvL3poX0NOLmNwOTM2LnBvLCBzcmMvcG8vemhfQ04ucG8sIHNyYy9wby96aF9UVy5wbwoKUGF0Y2ggNi4wLjA4OApQcm9ibGVtOiAgICAiLiIgZG9lc24ndCB3b3JrIGFmdGVyIHVzaW5nICJyeCIgaW4gVmlzdWFsIG1vZGUuICAoQ2hhcmxlcwoJICAgIENhbXBiZWxsKQpTb2x1dGlvbjogICBBbHNvIHN0b3JlIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgaW4gdGhlIHJlZG8gYnVmZmVyLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjA4OQpQcm9ibGVtOiAgICBJbiBhIEMgZmlsZSwgdXNpbmcgIj09IiB0byBhbGlnbiBhIGxpbmUgc3RhcnRpbmcgd2l0aCAiKiAgIiBhZnRlcgoJICAgIGEgbGluZSB3aXRoICIqIC0iIGluZGVudHMgb25lIHNwYWNlIHRvbyBmZXcuICAoUGlldCBEZWxwb3J0KQpTb2x1dGlvbjogICBBbGlnbiB3aXRoIHRoZSBwcmV2aW91cyBsaW5lIGlmIHRoZSBjb21tZW50LXN0YXJ0LXN0cmluZyBtYXRjaGVzCgkgICAgdGhlcmUuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMC4wOTAKUHJvYmxlbTogICAgV2hlbiBhIHdyYXBwaW5nIGxpbmUgZG9lcyBub3QgZml0IGluIGEgd2luZG93IGFuZCAnc2Nyb2xsb2ZmJyBpcwoJICAgIGJpZ2dlciB0aGFuIGhhbGYgdGhlIHdpbmRvdyBoZWlnaHQsIG1vdmluZyB0aGUgY3Vyc29yIGxlZnQgb3IKCSAgICByaWdodCBjYXVzZXMgdGhlIHNjcmVlbiB0byBmbGFzaCBiYWRseS4gKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgV2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gdG8gc2hvdyAnc2Nyb2xsb2ZmJyBzY3JlZW4gbGluZXMgYW5kCgkgICAgbmVhciB0aGUgZW5kIG9mIHRoZSBsaW5lLCBzaG93IHRoZSBlbmQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4wLjA5MQpQcm9ibGVtOiAgICBVc2luZyBDVFJMLU8gaW4gSW5zZXJ0IG1vZGUsIHdoaWxlICd2aXJ0dWFsZWRpdCcgaXMgImFsbCIgYW5kIHRoZQoJICAgIGN1cnNvciBpcyBhZnRlciB0aGUgZW5kLW9mLWxpbmUsIG1vdmVzIHRoZSBjdXJzb3IgbGVmdC4gKFllZ2FwcGFuCgkgICAgTGFrc2htYW5hbikKU29sdXRpb246ICAgS2VlcCB0aGUgY3Vyc29yIGluIHRoZSBzYW1lIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4wOTIKUHJvYmxlbTogICAgVGhlIGV4cGxvcmVyIHBsdWdpbiBkb2Vzbid0IGlnbm9yZSBjYXNlIG9mICdzdWZmaXhlcycgb24KCSAgICBNUy1XaW5kb3dzLiAoTWlrZSBXaWxsaWFtcykKU29sdXRpb246ICAgTWF0Y2ggb3IgaWdub3JlIGNhc2UgYXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBPUy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0KClBhdGNoIDYuMC4wOTMKUHJvYmxlbTogICAgV2hlbiB0aGUgVGNsIGxpYnJhcnkgY291bGRuJ3QgYmUgbG9hZGVkIGR5bmFtaWNhbGx5LCBnZXQgYW4gZXJyb3IKCSAgICBtZXNzYWdlIHdoZW4gY2xvc2luZyBhIGJ1ZmZlciBvciB3aW5kb3cuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIE9ubHkgZnJlZSBzdHJ1Y3R1cmVzIGlmIGFscmVhZHkgdXNpbmcgdGhlIFRjbCBpbnRlcnByZXRlci4KRmlsZXM6CSAgICBzcmMvaWZfdGNsLmMKClBhdGNoIDYuMC4wOTQKUHJvYmxlbTogICAgQXRoZW5hOiBXaGVuIGNsaWNraW5nIGluIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBWaW0gY3Jhc2hlcy4KCSAgICAoUGF1bCBBY2tlcnN2aWxsZXIpClNvbHV0aW9uOiAgIFVzZSB0aGUgdGh1bWIgc2l6ZSBpbnN0ZWFkIG9mIHRoZSB3aW5kb3cgcG9pbnRlciBvZiB0aGUgc2Nyb2xsYmFyCgkgICAgKHdoaWNoIGlzIE5VTEwpLiAoRGF2aWQgSGFycmlzb24pCgkgICAgQWxzbyBhdm9pZCB0aGF0IHNjcm9sbGluZyBnb2VzIHRoZSB3cm9uZyB3YXkgaW4gYSBuYXJyb3cgd2luZG93LgpGaWxlczoJICAgIHNyYy9ndWlfYXRoZW5hLmMKClBhdGNoIDYuMC4wOTUKUHJvYmxlbTogICAgUGVybDogRGVsZXRpbmcgbGluZXMgbWF5IGxlYXZlIHRoZSBjdXJzb3IgYmV5b25kIHRoZSBlbmQgb2YgdGhlCgkgICAgZmlsZS4KU29sdXRpb246ICAgQ2hlY2sgdGhlIGN1cnNvciBwb3NpdGlvbiBhZnRlciBkZWxldGluZyBhIGxpbmUuIChTZXJndWVpKQpGaWxlczoJICAgIHNyYy9pZl9wZXJsLnhzCgpQYXRjaCA2LjAuMDk2ClByb2JsZW06ICAgIFdoZW4gIjpzYXZlYXMgZm5hbWUiIGZhaWxzIGJlY2F1c2UgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMsIHRoZQoJICAgIGZpbGUgbmFtZSBpcyBjaGFuZ2VkIGFueXdheSBhbmQgYSBmb2xsb3dpbmcgIjp3IiB3aWxsIG92ZXJ3cml0ZQoJICAgIHRoZSBmaWxlLiAoRXJpYyBDYXJsaWVyKQpTb2x1dGlvbjogICBEb24ndCBjaGFuZ2UgdGhlIGZpbGUgbmFtZSBpZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjAuMDk3ClByb2JsZW06ICAgIFJlLWluZGVudGluZyBpbiBJbnNlcnQgbW9kZSB3aXRoIENUUkwtRiBtYXkgY2F1c2UgYSBjcmFzaCB3aXRoIGEKCSAgICBtdWx0aS1ieXRlIGVuY29kaW5nLgpTb2x1dGlvbjogICBBdm9pZCB1c2luZyBhIGNoYXJhY3RlciBiZWZvcmUgdGhlIHN0YXJ0IG9mIGEgbGluZS4gKFNlcmdleQoJICAgIFZsYXNvdikKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMDk4ClByb2JsZW06ICAgIEdUSzogV2hlbiB1c2luZyBHbm9tZSB0aGUgIlNlYXJjaCIgYW5kICJTZWFyY2ggYW5kIFJlcGxhY2UiIGRpYWxvZwoJICAgIGJveGVzIGFyZSBub3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgRGVmaW5lIEVOQUJMRV9OTFMgYmVmb3JlIGluY2x1ZGluZyBnbm9tZS5oLiAoRWR1YXJkbyBGZXJuYW5kZXopCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMC4wOTkKUHJvYmxlbTogICAgQ3lnd2luOiBXaGVuIHJ1bm5pbmcgVmkgY29tcGF0aWJsZSBNUy1ET1MgbGluZSBlbmRpbmdzIGNhdXNlCgkgICAgdHJvdWJsZS4KU29sdXRpb246ICAgTWFrZSB0aGUgZGVmYXVsdCBmb3IgJ2ZpbGVmb3JtYXRzJyAidW5peCxkb3MiIGluIFZpIGNvbXBhdGlibGUKCSAgICBtb2RlLiAgKE1pY2hhZWwgU2NoYWFwKQpGaWxlczoJICAgIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4wLjEwMApQcm9ibGVtOiAgICAiOmJhZGQgKzAgdGVzdCVmaWxlIiBjYXVzZXMgYSBjcmFzaC4KU29sdXRpb246ICAgVGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUgIiswIiBpcyBOVUwgdGVybWluYXRlZCB3aGVuIGFsbG9jYXRpbmcKCSAgICByb29tIGZvciByZXBsYWNpbmcgdGhlICIlIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjEwMQpQcm9ibGVtOiAgICAiOm1rc2Vzc2lvbiIgZG9lc24ndCByZXN0b3JlIGVkaXRpbmcgYSBmaWxlIHRoYXQgaGFzIGEgJyMnIG9yICclJwoJICAgIGluIGl0cyBuYW1lLiAgKFdvbGZnYW5nIEJsYW5rZW5idXJnKQpTb2x1dGlvbjogICBQdXQgYSBiYWNrc2xhc2ggYmVmb3JlIHRoZSAnIycgYW5kICclJy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjEwMgpQcm9ibGVtOiAgICBXaGVuIGNoYW5naW5nIGZvbGRzIHRoZSBjdXJzb3IgbWF5IGFwcGVhciBoYWxmd2F5IGEgY2xvc2VkIGZvbGQuCgkgICAgKE5hbSBTdW5nSHl1bikKU29sdXRpb246ICAgU2V0IHdfY2xpbmVfZm9sZGVkIGNvcnJlY3RseS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjAuMTAzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgJ3Njcm9sbGJpbmQnIGEgbGFyZ2UgdmFsdWUgb2YgJ3Njcm9sbG9mZicgd2lsbCBtYWtlIHRoZQoJICAgIHNjcm9sbCBiaW5kaW5nIHN0b3AgbmVhciB0aGUgZW5kIG9mIHRoZSBmaWxlLiAoQ29lbiBFbmdlbGJhcnRzKQpTb2x1dGlvbjogICBEb24ndCB1c2UgJ3Njcm9sbG9mZicgd2hlbiBsaW1pdGluZyB0aGUgdG9wbGluZSBmb3Igc2Nyb2xsCgkgICAgYmluZGluZy4gKERhbnkgU3RBbWFudCkKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xMDQKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2hlbiAnJCcgaXMgaW4gJ2Nwb3B0aW9ucycsIHR5cGluZyBhIGRvdWJsZS13aWRlCgkgICAgY2hhcmFjdGVyIHRoYXQgb3ZlcndyaXRlcyB0aGUgbGVmdCBoYWx2ZSBvZiBhbiBvbGQgZG91YmxlLXdpZGUKCSAgICBjaGFyYWN0ZXIgY2F1c2VzIGEgcmVkcmF3IHByb2JsZW0gYW5kIHRoZSBjdXJzb3Igc3RvcHMgYmxpbmtpbmcuClNvbHV0aW9uOiAgIENsZWFyIHRoZSByaWdodCBoYWxmIG9mIHRoZSBvbGQgY2hhcmFjdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjEwNQpQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBJbiBhIHdpbmRvdyBvZiBvbmUgY29sdW1uIHdpZGUsIHdpdGggc3ludGF4CgkgICAgaGlnaGxpZ2h0aW5nIGVuYWJsZWQgYSBjcmFzaCBtaWdodCBoYXBwZW4uClNvbHV0aW9uOiAgIFNraXAgZ2V0dGluZyB0aGUgc3ludGF4IGF0dHJpYnV0ZSB3aGVuIHRoZSBjaGFyYWN0ZXIgZG9lc24ndCBmaXQKCSAgICBhbnl3YXkuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjEwNiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBwcmludGVyIGZvbnQgaXMgd3JvbmcsIHRoZXJlIGlzIG5vIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIEdpdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4wLjEwNyAoZXh0cmEpClByb2JsZW06ICAgIFZpc1ZpbTogV2hlbiBlZGl0aW5nIGFub3RoZXIgZmlsZSwgYSBtb2RpZmllZCBmaWxlIG1heSBiZSB3cml0dGVuCgkgICAgdW5leHBlY3RlZGx5IGFuZCB3aXRob3V0IHdhcm5pbmcuClNvbHV0aW9uOiAgIFNwbGl0IHRoZSB3aW5kb3cgaWYgYSBmaWxlIHdhcyBtb2RpZmllZC4KRmlsZXM6CSAgICBWaXNWaW0vQ29tbWFuZHMuY3BwCgpQYXRjaCA2LjAuMTA4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZm9sZGluZyBjb3VsZCB0cnkgZGlzcGxheWluZyBsaW5lIHplcm8sIHJlc3VsdGluZyBpbiBhbgoJICAgIGVycm9yIGZvciBhIE5VTEwgcG9pbnRlci4KU29sdXRpb246ICAgU3RvcCBkZWNyZW1lbnRpbmcgd190b3BsaW5lIHdoZW4gdGhlIGZpcnN0IGxpbmUgb2YgYSB3aW5kb3cgaXMgaW4KCSAgICBhIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4wLjEwOQpQcm9ibGVtOiAgICBYSU06IFdoZW4gdGhlIGlucHV0IG1ldGhvZCBpcyBlbmFibGVkLCByZXBlYXRpbmcgYW4gaW5zZXJ0aW9uIHdpdGgKCSAgICAiLiIgZGlzYWJsZXMgaXQuIChNYXJjZWwgU3ZpdGFsc2t5KQpTb2x1dGlvbjogICBEb24ndCBzdG9yZSB0aGUgaW5wdXQgbWV0aG9kIHN0YXR1cyB3aGVuIGEgY29tbWFuZCBjb21lcyBmcm9tIHRoZQoJICAgIHN0dWZmIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4wLjExMApQcm9ibGVtOiAgICBVc2luZyB1bmRvIGFmdGVyIGV4ZWN1dGluZyAiT3gbakF4G2tkZCIgZnJvbSBhIHJlZ2lzdGVyIGluCgkgICAgYW4gZW1wdHkgYnVmZmVyIGdpdmVzIGFuIGVycm9yIG1lc3NhZ2UuICAoR2VyaGFyZCBIb2NoaG9semVyKQpTb2x1dGlvbjogICBEb24ndCBhZGp1c3QgdGhlIGJvdHRvbSBsaW5lIG51bWJlciBvZiBhbiB1bmRvIGJsb2NrIHdoZW4gaXQncwoJICAgIHplcm8uICBBZGQgYSB0ZXN0IGZvciB0aGlzIHByb2JsZW0uCkZpbGVzOgkgICAgc3JjL3VuZG8uYywgc3JjL3Rlc3RkaXIvdGVzdDIwLmluLCBzcmMvdGVzdGRpci90ZXN0MjAub2sKClBhdGNoIDYuMC4xMTEKUHJvYmxlbTogICAgVGhlIHZpcnRjb2woKSBmdW5jdGlvbiBkb2Vzbid0IHRha2UgY2FyZSBvZiAndmlydHVhbGVkaXQnLgpTb2x1dGlvbjogICBBZGQgdGhlIGNvbHVtbiBvZmZzZXQgd2hlbiBuZWVkZWQuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xMTIKUHJvYmxlbTogICAgVGhlIGV4cGxvcmVyIHBsdWdpbiBkb2Vzbid0IHNvcnQgZGlyZWN0b3JpZXMgd2l0aCBhIHNwYWNlIG9yCgkgICAgc3BlY2lhbCBjaGFyYWN0ZXIgYWZ0ZXIgYSBkaXJlY3Rvcnkgd2l0aCBhIHNob3J0ZXIgbmFtZS4KU29sdXRpb246ICAgSWdub3JlIHRoZSB0cmFpbGluZyBzbGFzaCB3aGVuIGNvbXBhcmluZyBkaXJlY3RvcnkgbmFtZXMuICAoTWlrZQoJICAgIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4wLjExMwpQcm9ibGVtOiAgICAiOmVkaXQgfi9mbmFtZSIgZG9lc24ndCB3b3JrIGlmICRIT01FIGluY2x1ZGVzIGEgc3BhY2UuICBBbHNvLAoJICAgIGV4cGFuZGluZyB3aWxkY2FyZHMgd2l0aCB0aGUgc2hlbGwgbWF5IGZhaWwuIChKb2huIERhbmllbCkKU29sdXRpb246ICAgRXNjYXBlIHNwYWNlcyB3aXRoIGEgYmFja3NsYXNoIHdoZW4gbmVlZGVkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvbWlzYzEuYywgc3JjL3Byb3RvL21pc2MxLnBybywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4wLjExNApQcm9ibGVtOiAgICBVc2luZyAiOnAiIHdpdGggZm5hbWVtb2RpZnkoKSBkaWRuJ3QgZXhwYW5kICJ+LyIgb3IgIn51c2VyLyIgdG8gYQoJICAgIGZ1bGwgcGF0aC4gIEZvciBXaW4zMiB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2FzIHByZXBlbmRlZC4KCSAgICAoTWljaGFlbCBHZWRkZXMpClNvbHV0aW9uOiAgIEV4cGFuZCB0aGUgaG9tZSBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjExNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHVzaW5nIGEgZGlhbG9nIHdpdGggYSB0ZXh0ZmllbGQgaXQgY2Fubm90IHNjcm9sbCB0aGUKCSAgICB0ZXh0LgpTb2x1dGlvbjogICBBZGQgRVNfQVVUT0hTQ1JPTEwgdG8gdGhlIHRleHRmaWVsZCBzdHlsZS4gKFBlZHJvIEdvbWVzKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMC4xMTYgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzIE5ULzIwMDAvWFA6IGZpbGV3cml0YWJsZSgpIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgZm9yCgkgICAgZmlsZXN5c3RlbXMgdGhhdCB1c2UgQUNMcy4KU29sdXRpb246ICAgVXNlIEFDTCBmdW5jdGlvbnMgdG8gY2hlY2sgaWYgYSBmaWxlIGlzIHdyaXRhYmxlLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvbWFjcm9zLmgsIHNyYy9vc193aW4zMi5jLCBzcmMvcHJvdG8vb3Nfd2luMzIucHJvCgpQYXRjaCA2LjAuMTE3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IHdoZW4gZGlzYWJsaW5nIHRoZSBtZW51LCAic2V0IGxpbmVzPTk5OSIgZG9lc24ndCB1c2UgYWxsCgkgICAgdGhlIGF2YWlsYWJsZSBzY3JlZW4gc3BhY2UuClNvbHV0aW9uOiAgIERvbid0IHN1YnRyYWN0IHRoZSBmaXhlZCBjYXB0aW9uIGhlaWdodCBidXQgdGhlIHJlYWwgbWVudSBoZWlnaHQKCSAgICBmcm9tIHRoZSBhdmFpbGFibGUgc2NyZWVuIHNwYWNlLiAgQWxzbzogQXZvaWQgcmVjdXJzaW9uIGluCgkgICAgZ3VpX21zd2luX2dldF9tZW51X2hlaWdodCgpLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMC4xMTgKUHJvYmxlbTogICAgV2hlbiAkVE1QRElSIGlzIGEgcmVsYXRpdmUgcGF0aCwgdGhlIHRlbXAgZGlyZWN0b3J5IGlzIG1pc3NpbmcgYQoJICAgIHRyYWlsaW5nIHNsYXNoIGFuZCBpc24ndCBkZWxldGVkIHdoZW4gVmltIGV4aXRzLiAoUGV0ZXIgSG9sbSkKU29sdXRpb246ICAgQWRkIHRoZSBzbGFzaCBhZnRlciBleHBhbmRpbmcgdGhlIGRpcmVjdG9yeSB0byBhbiBhYnNvbHV0ZSBwYXRoLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjExOSAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE2KQpQcm9ibGVtOiAgICBWTVM6IGZpbGV3cml0YWJsZSgpIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgVXNlIHRoZSBzYW1lIG1ldGhvZCBhcyBmb3IgVW5peC4gKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTIwClByb2JsZW06ICAgIFRoZSBjb252ZXJzaW9uIHRvIGh0bWwgaXNuJ3QgY29tcGF0aWJsZSB3aXRoIFhIVE1MLgpTb2x1dGlvbjogICBRdW90ZSB0aGUgdmFsdWVzLiAoSmVzcyBUaHJ5c29lZSkKRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC8yaHRtbC52aW0KClBhdGNoIDYuMC4xMjEgKGV4dHJhKSAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE2KQpQcm9ibGVtOiAgICBXaW4zMjogQWZ0ZXIgcGF0Y2ggNi4wLjExNiBWaW0gZG9lc24ndCBjb21waWxlIHdpdGggbWluZ3czMi4KU29sdXRpb246ICAgQWRkIGFuICNpZmRlZiBIQVZFX0FDTC4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4wLjEyMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjE2OiBTYW1lIHJlc2l6ZSBwcm9ibGVtcyBhcyBwYXRjaCA2LjAuMTE3IGZpeGVkIGZvciBXaW4zMi4gIEFuZAoJICAgIGRpYWxvZyB0ZXh0ZmllbGQgcHJvYmxlbSBmcm9tIHBhdGNoIDYuMC4xMTUuClNvbHV0aW9uOiAgIFNldCBvbGRfbWVudV9oZWlnaHQgb25seSB3aGVuIHVzZWQuICBBZGQgRVNfQVVUT0hTQ1JPTEwgZmxhZy4KCSAgICAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL2d1aV93MTYuYwoKUGF0Y2ggNi4wLjEyMyAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE5KQpQcm9ibGVtOiAgICBXaW4xNjogQ29tcGlsYXRpb24gcHJvYmxlbXMuClNvbHV0aW9uOiAgIE1vdmUgIiYmIiB0byBvdGhlciBsaW5lcy4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xMjQKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhICI6c3Vic3RpdHV0ZSIgY29tbWFuZCB0aGF0IHN0YXJ0cyB3aXRoICJcPSIKCSAgICAoZXZhbHVhdGVkIGFzIGFuIGV4cHJlc3Npb24pLCAifiIgd2FzIHN0aWxsIHJlcGxhY2VkIHdpdGggdGhlCgkgICAgcHJldmlvdXMgc3Vic3RpdHV0ZSBzdHJpbmcuClNvbHV0aW9uOiAgIFNraXAgdGhlIHJlcGxhY2VtZW50IHdoZW4gdGhlIHN1YnN0aXR1dGUgc3RyaW5nIHN0YXJ0cyB3aXRoICJcPSIuCgkgICAgQWxzbyBhZGp1c3QgdGhlIGRvY3VtZW50YXRpb24gYWJvdXQgZG91YmxpbmcgYmFja3NsYXNoZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgcnVudGltZS9kb2MvY2hhbmdlLnR4dAoKUGF0Y2ggNi4wLjEyNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHVzaW5nIHRoZSBtdWx0aV9ieXRlX2ltZSBmZWF0dXJlIHByZXNzaW5nIHRoZSBzaGlmdAoJICAgIGtleSB3b3VsZCBiZSBoYW5kbGVkIGFzIGlmIGEgY2hhcmFjdGVyIHdhcyBlbnRlcmVkLCB0aHVzIG1hcHBpbmdzCgkgICAgd2l0aCBhIHNoaWZ0ZWQga2V5IGRpZG4ndCB3b3JrLiAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgSWdub3JlIHByZXNzaW5nIHRoZSBzaGlmdCwgY29udHJvbCBhbmQgYWx0IGtleXMuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMC4xMjYKUHJvYmxlbTogICAgVGhlIHB5dGhvbiBsaWJyYXJ5IHdhcyBhbHdheXMgc3RhdGljYWxseSBsaW5rZWQuClNvbHV0aW9uOiAgIExpbmsgdGhlIHB5dGhvbiBsaWJyYXJ5IGR5bmFtaWNhbGx5LiAoTWF0dGhpYXMgS2xvc2UpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjAuMTI3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSB0ZXJtaW5hbCB0aGF0IHN3YXBzIHNjcmVlbnMgYW5kIHRoZSBOb3JtYWwgYmFja2dyb3VuZAoJICAgIGNvbG9yIGhhcyBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kLCB1c2luZyBhbiBleHRlcm5hbCBjb21tYW5kIG1heQoJICAgIGNhdXNlIHRoZSBjb2xvciBvZiB0aGUgd3Jvbmcgc2NyZWVuIHRvIGJlIGNoYW5nZWQuIChNYXJrIFdhZ2dvbmVyKQpTb2x1dGlvbjogICBEb24ndCBjYWxsIHNjcmVlbl9zdG9wX2hpZ2hsaWdodCgpIGluIHN0b3B0ZXJtY2FwKCkuCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4wLjEyOApQcm9ibGVtOiAgICBXaGVuIG1vdmluZyBhIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IHRvIHRoZSBmYXIgbGVmdCBvciByaWdodCwKCSAgICB0aGUgc2Nyb2xsYmFycyBhcmUgbm90IGFkanVzdGVkLiAoU2NvdHQgRSBMZWUpICBXaGVuICdtb3VzZWZvY3VzJwoJICAgIGlzIHNldCB0aGUgbW91c2UgcG9pbnRlciB3YXNuJ3QgYWRqdXN0ZWQuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgc2Nyb2xsYmFycyBhbmQgdGhlIG1vdXNlIHBvaW50ZXIuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjAuMTI5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSB2ZXJ5IGxvbmcgZmlsZSBuYW1lLCAiOmxzIiAocmVwZWF0ZWQgYSBmZXcgdGltZXMpCgkgICAgY2F1c2VzIGEgY3Jhc2guICBUZXN0IHdpdGggInZpbSBgcGVybCAtZSAncHJpbnQgIkEieDEwMDAnYCIuCgkgICAgKFRlamVkYSkKU29sdXRpb246ICAgVGVybWluYXRlIGEgc3RyaW5nIGJlZm9yZSBnZXR0aW5nIGl0cyBsZW5ndGggaW4gYnVmbGlzdF9saXN0KCkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjAuMTMwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpjcHJldiIgd2hpbGUgdGhlIGVycm9yIHdpbmRvdyBpcyBvcGVuLCBhbmQgdGhlIG5ldwoJICAgIGxpbmUgYXQgdGhlIHRvcCB3cmFwcywgdGhlIHdpbmRvdyBpc24ndCBjb3JyZWN0bHkgZHJhd24uCgkgICAgKFllZ2FwcGFuIExha3NobWFuYW4pClNvbHV0aW9uOiAgIFdoZW4gcmVkcmF3aW5nIHRoZSB0b3BsaW5lIGRvbid0IHNjcm9sbCB0d2ljZS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4xMzEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBidWZuYW1lKCkgYW5kIHRoZXJlIGFyZSB0d28gbWF0Y2hlcyBmb3IgbGlzdGVkIGJ1ZmZlcnMKCSAgICBhbmQgb25lIG1hdGNoIGZvciBhbiB1bmxpc3RlZCBidWZmZXIsIHRoZSB1bmxpc3RlZCBidWZmZXIgaXMgdXNlZC4KCSAgICAoQXJpYyBCbHVtZXIpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgYSBtYXRjaCB3aXRoIGEgbGlzdGVkIGJ1ZmZlciwgZG9uJ3QgY2hlY2sgZm9yCgkgICAgdW5saXN0ZWQgYnVmZmVycy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4xMzIKUHJvYmxlbTogICAgV2hlbiBzZXR0aW5nICdpbWluc2VydCcgaW4gdGhlIHZpbXJjIGFuZCB1c2luZyBhbiB4dGVybSB3aXRoIHR3bwoJICAgIHNjcmVlbnMgdGhlIHJ1bGVyIGlzIGRyYXduIGluIHRoZSB3cm9uZyBzY3JlZW4uIChJZ29yIEdvbGRlbmJlcmcpClNvbHV0aW9uOiAgIE9ubHkgZHJhdyB0aGUgcnVsZXIgd2hlbiB1c2luZyB0aGUgcmlnaHQgc2NyZWVuLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjEzMwpQcm9ibGVtOiAgICBXaGVuIG9wZW5pbmcgYW5vdGhlciBidWZmZXIgd2hpbGUgJ2tleW1hcCcgaXMgc2V0IGFuZCAnaW1pbnNlcnQnCgkgICAgaXMgemVybywgJ2ltaW5zZXJ0JyBpcyBzZXQgdG8gb25lIHVuZXhwZWN0ZWRseS4gKElnb3IgR29sZGVuYmVyZykKU29sdXRpb246ICAgRG9uJ3Qgc2V0ICdpbWluc2VydCcgYXMgYSBzaWRlIGVmZmVjdCBvZiBkZWZpbmluZyBhICI6bG1hcCIKCSAgICBtYXBwaW5nLiAgT25seSBkbyB0aGF0IHdoZW4gJ2tleW1hcCcgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjEzNApQcm9ibGVtOiAgICBXaGVuIGNvbXBsZXRpbmcgIjpzZXQgdGFncz0iIGEgcGF0aCB3aXRoIGFuIGVtYmVkZGVkIHNwYWNlIGNhdXNlcwoJICAgIHRoZSBjb21wbGV0aW9uIHRvIHN0b3AuIChTZWt0b3IgdmFuIFNraWpsZW4pClNvbHV0aW9uOiAgIEVzY2FwZSBzcGFjZXMgd2l0aCBiYWNrc2xhc2hlcywgbGlrZSBmb3IgIjpzZXQgcGF0aD0iLiAgQWxzbyB0YWtlCgkgICAgYmFja3NsYXNoZXMgaW50byBhY2NvdW50IHdoZW4gc2VhcmNoaW5nIGZvciB0aGUgc3RhcnQgb2YgdGhlIHBhdGgKCSAgICB0byBjb21wbGV0ZSAoZS5nLiwgZm9yICdiYWNrdXBkaXInIGFuZCAnY3Njb3BlcHJnJykuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvb3B0aW9uLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMC4xMzUKUHJvYmxlbTogICAgTWVudXMgdGhhdCBhcmUgbm90IHN1cHBvc2VkIHRvIGRvIGFueXRoaW5nIHVzZWQgIjxOdWw+Iiwgd2hpY2gKCSAgICBzdGlsbCBwcm9kdWNlZCBhbiBlcnJvciBiZWVwLgoJICAgIFdoZW4gQ1RSTC1PIGlzIG1hcHBlZCBmb3IgSW5zZXJ0IG1vZGUsICI6YW1lbnUiIGNvbW1hbmRzIGRpZG4ndAoJICAgIHdvcmsgaW4gSW5zZXJ0IG1vZGUuCgkgICAgTWVudSBsYW5ndWFnZSBmYWxscyBiYWNrIHRvIEVuZ2xpc2ggd2hlbiAkTEFORyBlbmRzIGluICJAZXVybyIuClNvbHV0aW9uOiAgIFVzZSAiPE5vcD4iIGZvciBhIG1lbnUgaXRlbSB0aGF0IGRvZXNuJ3QgZG8gYW55dGhpbmcsIGp1c3QgbGlrZQoJICAgIG1hcHBpbmdzLgoJICAgIFVzZSAiOmFub3JlbWVudSIgaW5zdGVhZCBvZiAiOmFtZW51Ii4KCSAgICBJZ25vcmUgIkBldXJvIiBpbiB0aGUgbG9jYWxlIG5hbWUuCkZpbGVzOgkgICAgcnVudGltZS9tYWtlbWVudS52aW0sIHJ1bnRpbWUvbWVudS52aW0sIHNyYy9tZW51LmMKClBhdGNoIDYuMC4xMzYKUHJvYmxlbTogICAgV2hlbiBjb21wbGV0aW5nIGluIEluc2VydCBtb2RlLCBhIG1hcHBpbmcgY291bGQgYmUgdW5leHBlY3RlZGx5CgkgICAgYXBwbGllZC4KU29sdXRpb246ICAgRG9uJ3QgdXNlIG1hcHBpbmdzIHdoZW4gY2hlY2tpbmcgZm9yIGEgdHlwZWQgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4xMzcKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nIHRoZSBmaW5kIG9yIGZpbmQvcmVwbGFjZSBkaWFsb2cgZnJvbSBJbnNlcnQgbW9kZSwKCSAgICB0aGUgaW5wdXQgbW9kZSBpcyBzdG9wcGVkLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIGlucHV0IG1ldGhvZCBzdGF0dXMgd2hlbiB0aGUgbWFpbiB3aW5kb3cgZG9lc24ndAoJICAgIGhhdmUgZm9jdXMuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xMzgKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nIHRoZSBmaW5kIG9yIGZpbmQvcmVwbGFjZSBkaWFsb2cgZnJvbSBJbnNlcnQgbW9kZSwKCSAgICB0aGUgdGV4dCBpcyBpbnNlcnRlZCB3aGVuIENUUkwtTyBpcyBtYXBwZWQuIChBbmRyZSBQYW5nKQoJICAgIFdoZW4gb3BlbmluZyB0aGUgZGlhbG9nIGFnYWluLCBhIHdob2xlIHdvcmQgc2VhcmNoIGlzbid0CgkgICAgcmVjb2duaXplZC4KCSAgICBXaGVuIGRvaW5nICJyZXBsYWNlIGFsbCIgYSB3aG9sZSB3b3JkIHNlYXJjaCB3YXMgbmV2ZXIgZG9uZS4KU29sdXRpb246ICAgRG9uJ3QgcHV0IGEgc2VhcmNoIG9yIHJlcGxhY2UgY29tbWFuZCBpbiB0aGUgaW5wdXQgYnVmZmVyLAoJICAgIGV4ZWN1dGUgaXQgZGlyZWN0bHkuCgkgICAgUmVjb2duaXplICJcPCIgYW5kICJcPiIgYWZ0ZXIgcmVtb3ZpbmcgIlxWIi4KCSAgICBBZGQgIlw8IiBhbmQgIlw+IiBhbHNvIGZvciAicmVwbGFjZSBhbGwiLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4wLjEzOQpQcm9ibGVtOiAgICBXaGVuIHN0b3BwaW5nICd3aWxkbWVudScgY29tcGxldGlvbiwgdGhlIHN0YXR1c2xpbmUgb2YgdGhlCgkgICAgYm90dG9tLWxlZnQgdmVydGljYWxseSBzcGxpdCB3aW5kb3cgaXNuJ3QgcmVkcmF3bi4gKFllZ2FwcGFuCgkgICAgTGFrc2htYW5hbikKU29sdXRpb246ICAgUmVkcmF3IGFsbCB0aGUgYm90dG9tIHN0YXR1c2xpbmVzLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvcHJvdG8vc2NyZWVuLnBybywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMTQwClByb2JsZW06ICAgIE1lbW9yeSBhbGxvY2F0ZWQgZm9yIGxvY2FsIG1hcHBpbmdzIGFuZCBhYmJyZXZpYXRpb25zIGlzIGxlYWtlZAoJICAgIHdoZW4gdGhlIGJ1ZmZlciBpcyB3aXBlZCBvdXQuClNvbHV0aW9uOiAgIENsZWFyIHRoZSBsb2NhbCBtYXBwaW5ncyB3aGVuIGRlbGV0aW5nIGEgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2dldGNoYXIuYywgc3JjL3Byb3RvL2dldGNoYXIucHJvLCBzcmMvdmltLmgKClBhdGNoIDYuMC4xNDEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmVuZXciIGluIGFuIGVtcHR5IGJ1ZmZlciwgc29tZSBidWZmZXItbG9jYWwgdGhpbmdzCgkgICAgYXJlIG5vdCBjbGVhcmVkLiAgYjprZXltYXBfbmFtZSBpcyBub3Qgc2V0LgpTb2x1dGlvbjogICBDbGVhciB1c2VyIGNvbW1hbmRzIGFuZCBtYXBwaW5ncyBsb2NhbCB0byB0aGUgYnVmZmVyIHdoZW4gcmUtdXNpbmcKCSAgICB0aGUgY3VycmVudCBidWZmZXIuICBSZWxvYWQgdGhlIGtleW1hcC4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4xNDIKUHJvYmxlbTogICAgV2hlbiBQeXRob24gaXMgbGlua2VkIHN0YXRpY2FsbHksIGxvYWRpbmcgZHluYW1pYyBleHRlbnNpb25zIG1pZ2h0CgkgICAgZmFpbC4KU29sdXRpb246ICAgQWRkIGFuIGV4dHJhIGxpbmtpbmcgZmxhZyB3aGVuIG5lZWRlZC4gKEFuZHJldyBSb2Rpb25vZmYpCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjAuMTQzClByb2JsZW06ICAgIFdoZW4gYSBzeW50YXggaXRlbSBpbmNsdWRlcyBhIGxpbmUgYnJlYWsgaW4gYSBwYXR0ZXJuLCB0aGUgc3ludGF4CgkgICAgbWF5IG5vdCBiZSB1cGRhdGVkIHByb3Blcmx5IHdoZW4gbWFraW5nIGEgY2hhbmdlLgpTb2x1dGlvbjogICBBZGQgdGhlICJsaW5lYnJlYWtzIiBhcmd1bWVudCB0byAiOnN5biBzeW5jIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9zeW50YXgudHh0LCBzcmMvc2NyZWVuLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjE0NApQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjAuMDg4IHJlZG9pbmcgInZlVSIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBEb24ndCBhZGQgdGhlICJVIiB0byB0aGUgcmVkbyBidWZmZXIsIGl0IHdpbGwgYmUgdXNlZCBhcyBhbiB1bmRvCgkgICAgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xNDUKUHJvYmxlbTogICAgV2hlbiBWaW0gY2FuJ3QgcmVhZCBhbnkgaW5wdXQgaXQgbWlnaHQgZ2V0IHN0dWNrLiAgV2hlbgoJICAgIHJlZGlyZWN0aW5nIHN0ZGluIGFuZCBzdGRlcnIgVmltIHdvdWxkIG5vdCByZWFkIGNvbW1hbmRzIGZyb20gYQoJICAgIGZpbGUuICAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgV2hlbiByZXBlYXRlZGx5IHRyeWluZyB0byByZWFkIGEgY2hhcmFjdGVyIHdoZW4gaXQncyBub3QgcG9zc2libGUsCgkgICAgZXhpdCBWaW0uICBXaGVuIHN0ZGluIGFuZCBzdGRlcnIgYXJlIG5vdCBhIHR0eSwgc3RpbGwgdHJ5IHJlYWRpbmcKCSAgICBmcm9tIHRoZW0sIGJ1dCBkb24ndCBkbyBhIGJsb2NraW5nIHdhaXQuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xNDYKUHJvYmxlbTogICAgV2hlbiAnc3RhdHVzbGluZScgY29udGFpbnMgIiV7Jy0nfSIgdGhpcyByZXN1bHRzIGluIGEgemVyby4KCSAgICAoTWlsYW4gVmFuY3VyYSkKU29sdXRpb246ICAgRG9uJ3QgaGFuZGxlIG51bWJlcnMgd2l0aCBhIG1pbnVzIGFzIGEgbnVtYmVyLCB0aGV5IHdlcmUgbm90CgkgICAgZGlzcGxheWVkIGFueXdheS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4xNDcKUHJvYmxlbTogICAgSXQncyBub3QgZWFzeSB0byBtYXJrIGEgVmltIHZlcnNpb24gYXMgYmVpbmcgbW9kaWZpZWQuICBUaGUgbmV3CgkgICAgbGljZW5zZSByZXF1aXJlcyB0aGlzLgpTb2x1dGlvbjogICBBZGQgdGhlIC0tbW9kaWZpZWQtYnkgYXJndW1lbnQgdG8gY29uZmlndXJlIGFuZCB0aGUgTU9ESUZJRURfQlkKCSAgICBkZWZpbmUuICBJdCdzIHVzZWQgaW4gdGhlIGludHJvIHNjcmVlbiBhbmQgdGhlICI6dmVyc2lvbiIgb3V0cHV0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2NvbmZpZy5oLmluLAoJICAgIHNyYy9mZWF0dXJlLmgsIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMC4xNDgKUHJvYmxlbTogICAgQWZ0ZXIgInAiIGluIGFuIGVtcHR5IGxpbmUsIGBbIGdvZXMgdG8gdGhlIHNlY29uZCBjaGFyYWN0ZXIuCgkgICAgKEtvbnRyYSBHZXJnZWx5KQpTb2x1dGlvbjogICBEb24ndCBpbmNyZW1lbnQgdGhlIGNvbHVtbiBudW1iZXIgaW4gYW4gZW1wdHkgbGluZS4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4xNDkKUHJvYmxlbTogICAgVGhlIHBhdHRlcm4gIlwoLlx7LX1cKSoiIGNhdXNlcyBhIGhhbmcuICBXaGVuIHVzaW5nIGEgc2VhcmNoCgkgICAgcGF0dGVybiB0aGF0IGNhdXNlcyBhIHN0YWNrIG92ZXJmbG93IHRvIGJlIGRldGVjdGVkIFZpbSBjb3VsZAoJICAgIHN0aWxsIGhhbmcuClNvbHV0aW9uOiAgIENvcnJlY3RseSByZXBvcnQgIm9wZXJhbmQgY291bGQgYmUgZW1wdHkiIHdoZW4gdXNpbmcgIlx7LX0iLgoJICAgIENoZWNrIGZvciAib3V0X29mX3N0YWNrIiBpbnNpZGUgbG9vcHMgdG8gYXZvaWQgYSBoYW5nLgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjE1MApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgbXVsdGktYnl0ZSBlbmNvZGluZywgcGF0Y2ggNi4wLjE0OCBjYXVzZXMgInAiIHRvIHdvcmsKCSAgICBsaWtlICJQIi4gKFN1bmctSHl1biBOYW0pClNvbHV0aW9uOiAgIENvbXB1dGUgdGhlIGJ5dGUgbGVuZ3RoIG9mIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMTUxClByb2JsZW06ICAgIFJlZHJhd2luZyB0aGUgc3RhdHVzIGxpbmUgYW5kIHJ1bGVyIGNhbiBiZSB3cm9uZyB3aGVuIGl0IGNvbnRhaW5zCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBVc2UgY2hhcmFjdGVyIHdpZHRoIGFuZCBieXRlIGxlbmd0aCBjb3JyZWN0bHkuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMTUyClByb2JsZW06ICAgIHN0cnRyYW5zKCkgY291bGQgaGFuZyBvbiBhbiBpbGxlZ2FsIFVURi04IGJ5dGUgc2VxdWVuY2UuClNvbHV0aW9uOiAgIFNraXAgb3ZlciBpbGxlZ2FsIGJ5dGVzLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMC4xNTMKUHJvYmxlbTogICAgV2hlbiB1c2luZyAoaWxsZWdhbCkgZG91YmxlLWJ5dGUgY2hhcmFjdGVycyBhbmQgVmltIHN5bnRheAoJICAgIGhpZ2hsaWdodGluZyBWaW0gY2FuIGNyYXNoLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBJbmNyZWFzZSBhIHBvaW50ZXIgb3ZlciBhIGNoYXJhY3RlciBpbnN0ZWFkIG9mIGEgYnl0ZS4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4xNTQKUHJvYmxlbTogICAgTVMtRE9TIGFuZCBNUy1XaW5kb3dzOiBUaGUgbWVudSBlbnRyaWVzIGZvciB4eGQgZG9uJ3Qgd29yayB3aGVuCgkgICAgdGhlcmUgaXMgbm8geHhkIGluIHRoZSBwYXRoLgoJICAgIFdoZW4gY29udmVydGluZyBiYWNrIGZyb20gSGV4IHRoZSBmaWxldHlwZSBtYXkgcmVtYWluICJ4eGQiIGlmIGl0CgkgICAgaXMgbm90IGRldGVjdGVkLgpTb2x1dGlvbjogICBXaGVuIHh4ZCBpcyBub3QgaW4gdGhlIHBhdGggdXNlIHRoZSBvbmUgaW4gdGhlIHJ1bnRpbWUgZGlyZWN0b3J5LAoJICAgIHdoZXJlIHRoZSBpbnN0YWxsIHByb2dyYW0gaGFzIHB1dCBpdC4KCSAgICBDbGVhciB0aGUgJ2ZpbGV0eXBlJyBvcHRpb24gYmVmb3JlIGRldGVjdGluZyB0aGUgbmV3IHZhbHVlLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMC4xNTUKUHJvYmxlbTogICAgTWFjOiBjb21waWxhdGlvbiBwcm9ibGVtcyBpbiB1aS5jIGFmdGVyIHBhdGNoIDYuMC4xNDUuIChBeGVsCgkgICAgS2llbGhvcm4pClNvbHV0aW9uOiAgIERvbid0IGNhbGwgbWNoX2luY2hhcigpIHdoZW4gTk9fQ09OU09MRSBpcyBkZWZpbmVkLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjAuMTU2ClByb2JsZW06ICAgIFN0YXJ0aW5nIFZpbSB3aXRoIHRoZSAtYiBhcmd1bWVudCBhbmQgdHdvIGZpbGVzLCAiOm5leHQiIGRvZXNuJ3QKCSAgICBzZXQgJ2JpbmFyeScgaW4gdGhlIHNlY29uZCBmaWxlLCBsaWtlIFZpbSA1LjcuIChOb3JtYW4gRGlhbW9uZCkKU29sdXRpb246ICAgU2V0IHRoZSBnbG9iYWwgdmFsdWUgZm9yICdiaW5hcnknLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjE1NwpQcm9ibGVtOiAgICBXaGVuIGRlZmluaW5nIGEgdXNlciBjb21tYW5kIHdpdGggIi1jb21wbGV0ZT1kaXIiIGZpbGVzIHdpbGwgYWxzbwoJICAgIGJlIGV4cGFuZGVkLiAgQWxzbywgIi1jb21wbGV0ZT1tYXBwaW5nIiBkb2Vzbid0IGFwcGVhciB0byB3b3JrLgoJICAgIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIFVzZSB0aGUgZXhwYW5zaW9uIGZsYWdzIGRlZmluZWQgd2l0aCB0aGUgdXNlciBjb21tYW5kLgoJICAgIEhhbmRsZSBleHBhbmRpbmcgbWFwcGluZ3Mgc3BlY2lmaWNhbGx5LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjAuMTU4ClByb2JsZW06ICAgIFdoZW4gZ2V0dGluZyB0aGUgd2FybmluZyBmb3IgYSBmaWxlIGJlaW5nIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0KCSAgICBhbmQgcmVsb2FkaW5nIHRoZSBmaWxlLCB0aGUgJ3JlYWRvbmx5JyBvcHRpb24gaXMgcmVzZXQsIGV2ZW4gd2hlbgoJICAgIHRoZSBwZXJtaXNzaW9ucyBkaWRuJ3QgY2hhbmdlLiAoTWFyY2VsIFN2aXRhbHNreSkKU29sdXRpb246ICAgS2VlcCAncmVhZG9ubHknIHNldCB3aGVuIHJlbG9hZGluZyBhIGZpbGUgYW5kIHRoZSBwZXJtaXNzaW9ucwoJICAgIGRpZG4ndCBjaGFuZ2UuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMTU5ClByb2JsZW06ICAgIFdpbGRjYXJkIGV4cGFuc2lvbiBmb3IgIjplbWVudSIgYWxzbyBzaG93cyBzZXBhcmF0b3JzLgpTb2x1dGlvbjogICBTa2lwIG1lbnUgc2VwYXJhdG9ycyBmb3IgIjplbWVudSIsICI6cG9wdXAiIGFuZCAiOnRlYXJvZmYiLgoJICAgIEFsc28sIGRvbid0IGhhbmRsZSAiOnRtZW51IiBhcyBpZiBpdCB3YXMgIjp0ZWFyb2ZmIi4gIEFuZCBsZWF2ZQoJICAgIG91dCB0aGUgYWx0ZXJuYXRpdmVzIHdpdGggIiYiIGluY2x1ZGVkLgpGaWxlczoJICAgIHNyYy9tZW51LmMKClBhdGNoIDYuMC4xNjAKUHJvYmxlbTogICAgV2hlbiBjb21waWxpbmcgd2l0aCBHQ0MgMy4wLjIgYW5kIHVzaW5nIHRoZSAiLU8yIiBhcmd1bWVudCwgdGhlCgkgICAgb3B0aW1pemVyIGNhdXNlcyBhIHByb2JsZW0gdGhhdCBtYWtlcyBWaW0gY3Jhc2guClNvbHV0aW9uOiAgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBhdm9pZCAiLU8yIiBmb3IgdGhpcyB2ZXJzaW9uIG9mIGdjYy4KRmlsZXM6CSAgICBzcmMvY29uZmlndXJlLmluLCBzcmMvYXV0by9jb25maWd1cmUKClBhdGNoIDYuMC4xNjEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQml0bWFwcyBkb24ndCB3b3JrIHdpdGggc2lnbnMuClNvbHV0aW9uOiAgIE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIGJpdG1hcHMgd2l0aCBzaWducy4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3gxMS5jLAoJICAgIHNyYy9wcm90by9ndWlfdzMyLnBybywgc3JjL3Byb3RvL2d1aV94MTEucHJvCgpQYXRjaCA2LjAuMTYyClByb2JsZW06ICAgIENsaWVudC1zZXJ2ZXI6IEFuIGVycm9yIG1lc3NhZ2UgZm9yIGEgd3JvbmcgZXhwcmVzc2lvbiBhcHBlYXJzIGluCgkgICAgdGhlIHNlcnZlciBpbnN0ZWFkIG9mIHRoZSBjbGllbnQuClNvbHV0aW9uOiAgIFBhc3MgdGhlIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuICBBbHNvCgkgICAgYWRqdXN0IHRoZSBleGFtcGxlIGNvZGUuIChGbGVtbWluZyBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL2lmX3hjbWRzcnYuYywgc3JjL21haW4uYywgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL3Byb3RvL2lmX3hjbWRzcnYucHJvLCBzcmMvcHJvdG8vb3NfbXN3aW4ucHJvLAoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBydW50aW1lL3Rvb2xzL3hjbWRzcnZfY2xpZW50LmMKClBhdGNoIDYuMC4xNjMKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIEdVSSBkaWFsb2csIGEgZmlsZSBuYW1lIGlzIHNvbWV0aW1lcyB1c2VkIGxpa2UgaXQgd2FzCgkgICAgYSBkaXJlY3RvcnkuClNvbHV0aW9uOiAgIFNlcGFyYXRlIHBhdGggYW5kIGZpbGUgbmFtZSBwcm9wZXJseS4KCSAgICBGb3IgR1RLLCBNb3RpZiBhbmQgQXRoZW5hIGNvbmNhdGVuYXRlIGRpcmVjdG9yeSBhbmQgZmlsZSBuYW1lIGZvcgoJICAgIHRoZSBkZWZhdWx0IHNlbGVjdGlvbi4KRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2RvY21kLmMsCgkgICAgc3JjL2d1aV9hdGhlbmEuYywgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9tb3RpZi5jLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjAuMTY0ClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMC4xMzUgdGhlIG1lbnUgZW50cmllcyBmb3IgcGFzdGluZyBkb24ndCB3b3JrIGluCgkgICAgSW5zZXJ0IGFuZCBWaXN1YWwgbW9kZS4gKE11cmFva2EgVGFybykKU29sdXRpb246ICAgQWRkIDxzY3JpcHQ+IHRvIGFsbG93IHNjcmlwdC1sb2NhbCBtYXBwaW5ncy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjAuMTY1ClByb2JsZW06ICAgIFVzaW5nIC0tcmVtb3RlIGFuZCBleGVjdXRpbmcgbG9jYWxseSBnaXZlcyB1bmF2b2lkYWJsZSBlcnJvcgoJICAgIG1lc3NhZ2VzLgpTb2x1dGlvbjogICBBZGQgLS1yZW1vdGUtc2lsZW50IGFuZCAtLXJlbW90ZS13YWl0LXNpbGVudCB0byBzaWxlbnRseSBleGVjdXRlCgkgICAgbG9jYWxseS4KCSAgICBGb3IgV2luMzIgdGhlcmUgd2FzIG5vIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIHNlcnZlciBkaWRuJ3QgZXhpc3QuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2lmX3hjbWRzcnYuYywgc3JjL21haW4uYywgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL3Byb3RvL2lmX3hjbWRzcnYucHJvLCBzcmMvcHJvdG8vb3NfbXN3aW4ucHJvCgpQYXRjaCA2LjAuMTY2ClByb2JsZW06ICAgIEdVSTogVGhlcmUgaXMgbm8gd2F5IHRvIGF2b2lkIGRpYWxvZ3MgdG8gcG9wIHVwLgpTb2x1dGlvbjogICBBZGQgdGhlICdjJyBmbGFnIHRvICdndWlvcHRpb25zJzogVXNlIGNvbnNvbGUgZGlhbG9ncy4gIChZZWdhcHBhbgoJICAgIExha3NobWFuYW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHRpb24uaCwgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4wLjE2NwpQcm9ibGVtOiAgICBXaGVuICdmaWxlZW5jb2RpbmdzJyBpcyAibGF0aW4yIiBzb21lIGNoYXJhY3RlcnMgaW4gdGhlIGhlbHAgZmlsZXMKCSAgICBhcmUgZGlzcGxheWVkIHdyb25nLgpTb2x1dGlvbjogICBGb3JjZSB0aGUgJ2ZpbGVlbmNvZGluZycgZm9yIHRoZSBoZWxwIGZpbGVzIHRvIGJlICJsYXRpbjEiLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjE2OApQcm9ibGVtOiAgICAiOiVzL1xuLyMvIiBkb2Vzbid0IHJlcGxhY2UgYXQgYW4gZW1wdHkgbGluZS4gKEJydWNlIERlVmlzc2VyKQpTb2x1dGlvbjogICBEb24ndCBza2lwIG1hdGNoZXMgYWZ0ZXIgam9pbmluZyB0d28gbGluZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4wLjE2OQpQcm9ibGVtOiAgICBXaGVuIHJ1biBhcyBldmltIGFuZCB0aGUgR1VJIGNhbid0IGJlIHN0YXJ0ZWQgd2UgZ2V0IHN0dWNrIGluIGEKCSAgICB0ZXJtaW5hbCB3aXRob3V0IG1lbnVzIGluIEluc2VydCBtb2RlLgpTb2x1dGlvbjogICBFeGl0IHdoZW4gdXNpbmcgImV2aW0iIGFuZCAiZ3ZpbSAteSIgd2hlbiB0aGUgR1VJIGNhbid0IGJlCgkgICAgc3RhcnRlZC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjAuMTcwClByb2JsZW06ICAgIFdoZW4gcHJpbnRpbmcgZG91YmxlLXdpZHRoIGNoYXJhY3RlcnMgdGhlIHNpemUgb2YgdGFicyBhZnRlciB0aGVtCgkgICAgaXMgd3JvbmcuICAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBDb3JyZWN0bHkgY29tcHV0ZSB0aGUgY29sdW1uIGFmdGVyIGEgZG91YmxlLXdpZHRoIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4wLjE3MQpQcm9ibGVtOiAgICBXaXRoICdrZXltb2RlbCcgaW5jbHVkaW5nICJzdGFydHNlbCIsIGluIEluc2VydCBtb2RlIGFmdGVyIHRoZSBlbmQKCSAgICBvZiBhIGxpbmUsIHNoaWZ0LUxlZnQgZG9lcyBub3QgbW92ZSB0aGUgY3Vyc29yLiAoU3RldmUgSGFsbCkKU29sdXRpb246ICAgQ1RSTC1PIGRvZXNuJ3QgbW92ZSB0aGUgY3Vyc29yIGxlZnQsIG5lZWQgdG8gZG8gdGhhdCBleHBsaWNpdGx5LgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4xNzIKUHJvYmxlbTogICAgQ1RSTC1RIGRvZXNuJ3QgcmVwbGFjZSBDVFJMLVYgYWZ0ZXIgQ1RSTC1YIGluIEluc2VydCBtb2RlIHdoaWxlIGl0CgkgICAgZG9lcyBpbiBtb3N0IG90aGVyIHNpdHVhdGlvbnMuClNvbHV0aW9uOiAgIE1ha2UgQ1RSTC1YIENUUkwtUSB3b3JrIGxpa2UgQ1RSTC1YIENUUkwtViBpbiBJbnNlcnQgbW9kZS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMTczClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIlAiIHRvIGluc2VydCBhIGxpbmUgYnJlYWsgdGhlIGN1cnNvciByZW1haW5zIHBhc3QgdGhlCgkgICAgZW5kIG9mIHRoZSBsaW5lLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdGhlIGN1cnNvciBiZWluZyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgbGluZS4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4xNzQKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgImdkIiBvciAiZ0QiIHRoZSBzZWFyY2ggZGlyZWN0aW9uIGZvciAibiIgbWF5IHN0aWxsIGJlCgkgICAgYmFja3dhcmRzLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgUmVzZXQgdGhlIHNlYXJjaCBkaXJlY3Rpb24gdG8gZm9yd2FyZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9zZWFyY2guYywgc3JjL3Byb3RvL3NlYXJjaC5wcm8KClBhdGNoIDYuMC4xNzUKUHJvYmxlbTogICAgIjpoZWxwIC9ceihcKSIgZG9lc24ndCB3b3JrLiAoVGhvbWFzIEtvZWhsZXIpClNvbHV0aW9uOiAgIERvdWJsZSB0aGUgYmFja3NsYXNoZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4wLjE3NgpQcm9ibGVtOiAgICBXaGVuIGtpbGxlZCBieSBhIHNpZ25hbCBhdXRvY29tbWFuZHMgYXJlIHN0aWxsIHRyaWdnZXJlZCBhcyBpZgoJICAgIG5vdGhpbmcgaGFwcGVuZWQuClNvbHV0aW9uOiAgIEFkZCB0aGUgdjpkeWluZyB2YXJpYWJsZSB0byBhbGxvdyBhdXRvY29tbWFuZHMgdG8gd29yayBkaWZmZXJlbnRseQoJICAgIHdoZW4gYSBkZWFkbHkgc2lnbmFsIGhhcyBiZWVuIHRyYXBwZWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL29zX3VuaXguYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjAuMTc3ClByb2JsZW06ICAgIFdoZW4gJ2NvbW1lbnRzdHJpbmcnIGlzIGVtcHR5IGFuZCAnZm9sZG1ldGhvZCcgaXMgIm1hcmtlciIsICJ6ZiIKCSAgICBkb2Vzbid0IHdvcmsuIChUaG9tYXMgUy4gVXJiYW4pClNvbHV0aW9uOiAgIEFkZCB0aGUgbWFya2VyIGV2ZW4gd2hlbiAnY29tbWVudHN0cmluZycgaXMgZW1wdHkuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMTc4ClByb2JsZW06ICAgIFVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgZnJvbSB4cF9iYWNrc2xhc2ggZmllbGQuClNvbHV0aW9uOiAgIEluaXRpYWxpemUgeHBfYmFja3NsYXNoIGZpZWxkIHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL21pc2MxLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4wLjE3OQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBkaXNwbGF5aW5nIFVURi04IGNoYXJhY3RlcnMgbWF5IHJlYWQgdW5pbml0aWFsaXplZAoJICAgIG1lbW9yeS4KU29sdXRpb246ICAgQWRkIHV0ZmNfcHRyMmxlbl9jaGVja19sZW4oKSB0byBhdm9pZCByZWFkaW5nIHBhc3QgdGhlIGVuZCBvZiBhCgkgICAgc3RyaW5nLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjAuMTgwClByb2JsZW06ICAgIEV4cGFuZGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gYSBzdHJpbmcgdGhhdCBlbmRzIGluIGEKCSAgICBiYWNrc2xhc2ggY291bGQgZ28gcGFzdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuClNvbHV0aW9uOiAgIERldGVjdCB0aGUgdHJhaWxpbmcgYmFja3NsYXNoLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjAuMTgxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpjZCBkaXIiIG1lbW9yeSB3YXMgbGVha2VkLgpTb2x1dGlvbjogICBGcmVlIHRoZSBhbGxvY2F0ZWQgbWVtb3J5LiAgQWxzbyBhdm9pZCBhbiB1bmluaXRpYWxpemVkIG1lbW9yeQoJICAgIHJlYWQuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMC4xODIKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIHJlZ2V4cCBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMsIGNvdWxkIHRyeSB0byByZWFkIGEKCSAgICBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgbGluZS4KU29sdXRpb246ICAgRG9uJ3QgZGVjcmVtZW50IGEgcG9pbnRlciB0byBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjE4MwpQcm9ibGVtOiAgICBMZWFraW5nIG1lbW9yeSB3aGVuICI6ZnVuYyEiIHJlZGVmaW5lcyBhIGZ1bmN0aW9uLgpTb2x1dGlvbjogICBGcmVlIHRoZSBmdW5jdGlvbiBuYW1lIHdoZW4gaXQncyBub3QgdXNlZC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTg0ClByb2JsZW06ICAgIExlYWtpbmcgbWVtb3J5IHdoZW4gZXhwYW5kaW5nIG9wdGlvbiB2YWx1ZXMuClNvbHV0aW9uOiAgIERvbid0IGFsd2F5cyBjb3B5IHRoZSBleHBhbmRlZCBvcHRpb24gaW50byBhbGxvY2F0ZWQgbWVtb3J5LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjE4NQpQcm9ibGVtOiAgICBDcmFzaCBpbiBWaW0gd2hlbiBwYXN0aW5nIGEgc2VsZWN0aW9uIGluIGFub3RoZXIgYXBwbGljYXRpb24sIG9uIGEKCSAgICA2NCBiaXQgbWFjaGluZS4KU29sdXRpb246ICAgRml4IHRoZSBmb3JtYXQgZm9yIGFuIEF0b20gdG8gMzIgYml0cy4gKFBldGVyIERlcnIpCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xODYKUHJvYmxlbTogICAgWDExOiBUaHJlZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyB0aGUgY2xpZW50LXNlcnZlciBjb2RlLgpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdCB0byB1bnNpZ25lZCBjaGFyLgpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMKClBhdGNoIDYuMC4xODcKUHJvYmxlbTogICAgIkkiIGluIFZpc3VhbCBtb2RlIGFuZCB0aGVuICJ1IiByZXBvcnRzIHRvbyBtYW55IGNoYW5nZXMuIChBbmRyZXcKCSAgICBTdHJ5a2VyKQoJICAgICJJIiBpbiBWaXN1YWwgbGluZXdpc2UgbW9kZSBhZGp1c3RzIHRoZSBpbmRlbnQgZm9yIG5vIGFwcGFyZW50CgkgICAgcmVhc29uLgpTb2x1dGlvbjogICBPbmx5IHNhdmUgdGhvc2UgbGluZXMgZm9yIHVuZG8gdGhhdCBhcmUgY2hhbmdlZC4KCSAgICBEb24ndCBjaGFuZ2UgdGhlIGluZGVudCBhZnRlciBpbnNlcnRpbmcgaW4gVmlzdWFsIGxpbmV3aXNlIG1vZGUuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMTg4ClByb2JsZW06ICAgIFdpbjMyOiBBZnRlciBwYXRjaCA2LjAuMTYxIHNpZ25zIGRlZmluZWQgaW4gdGhlIHZpbXJjIGZpbGUgZG9uJ3QKCSAgICB3b3JrLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHRoZSBzaWduIGljb25zIGFmdGVyIGluaXRpYWxpemluZyB0aGUgR1VJLiAoVmluY2UKCSAgICBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMC4xODkKUHJvYmxlbTogICAgVGhlIHNpemUgb2YgdGhlIFZpc3VhbCBhcmVhIGlzbid0IGFsd2F5cyBkaXNwbGF5ZWQgd2hlbiBzY3JvbGxpbmcKCSAgICAoJ3J1bGVyJyBvZmYsICdzaG93Y21kJyBvbikuICBBbHNvIG5vdCB3aGVuIHVzaW5nIGEgc2VhcmNoCgkgICAgY29tbWFuZC4gKFN5bHZhaW4gSGl0aWVyKQpTb2x1dGlvbjogICBSZWRpc3BsYXkgdGhlIHNpemUgb2YgdGhlIHNlbGVjdGlvbiBhZnRlciBzaG93aW5nIHRoZSBtb2RlLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjE5MApQcm9ibGVtOiAgICBHVUk6IHdoZW4gJ21vdXNlJyBpcyBlbXB0eSBhIGNsaWNrIHdpdGggdGhlIG1pZGRsZSBidXR0b24gc3RpbGwKCSAgICBtb3ZlcyB0aGUgY3Vyc29yLgpTb2x1dGlvbjogICBQYXN0ZSBhdCB0aGUgY3Vyc29yIHBvc2l0aW9uIGluc3RlYWQgb2YgdGhlIG1vdXNlIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjE5MQpQcm9ibGVtOiAgICBXaGVuIG5vIHNlcnZlcnMgYXJlIGF2YWlsYWJsZSBzZXJ2ZXJsaXN0KCkgZ2l2ZXMgYW4gZXJyb3IgaW5zdGVhZAoJICAgIG9mIHJldHVybmluZyBhbiBlbXB0eSBzdHJpbmcuIChIYXJpIEtyaXNobmEpClNvbHV0aW9uOiAgIERvbid0IGdpdmUgYW4gZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTkyClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQsICJ5bGoiIGdvZXMgdG8gdGhlIHdyb25nIGNvbHVtbi4gKEFuZHJldwoJICAgIE5pa2l0aW4pClNvbHV0aW9uOiAgIFJlc2V0IHRoZSBmbGFnIHRoYXQgd192aXJ0Y29sIGlzIHZhbGlkIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IgYmFjawoJICAgIHRvIHRoZSBzdGFydCBvZiB0aGUgb3BlcmF0ZWQgYXJlYS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xOTMKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCwgY29sKCIuIikgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgbGluZQoJICAgIHNob3VsZCByZXR1cm4gb25lIGV4dHJhLgpTb2x1dGlvbjogICBBZGQgb25lIHRvIHRoZSBjb2x1bW4uCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjE5NApQcm9ibGVtOiAgICAiLS1yZW1vdGUtc2lsZW50IiB0cmllcyB0byBzZW5kIGEgcmVwbHkgdG8gdGhlIGNsaWVudCwgbGlrZSBpdCB3YXMKCSAgICAiLS1yZW1vdGUtd2FpdCIuClNvbHV0aW9uOiAgIFByb3Blcmx5IGNoZWNrIGZvciB0aGUgYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4wLjE5NQpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCBhIHNlYXJjaCBzdGFydHMgaW4gdmlydHVhbCBzcGFjZQoJICAgICI6Y2FsbCBzZWFyY2goJ3gnKSIgZ29lcyB0byB0aGUgd3JvbmcgcG9zaXRpb24uIChFcmljIExvbmcpClNvbHV0aW9uOiAgIFJlc2V0IGNvbGFkZCB3aGVuIGZpbmRpbmcgYSBtYXRjaC4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMC4xOTYKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCwgJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIgYW5kIHZpc3VhbGx5CgkgICAgc2VsZWN0aW5nIHBhcnQgb2YgYSB0YWIgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZSwgIngiIGpvaW5zIGl0IHdpdGgKCSAgICB0aGUgcHJldmlvdXMgbGluZS4gIEFsc28sIHdoZW4gdGhlIHNlbGVjdGlvbiBzcGFucyBtb3JlIHRoYW4gb25lCgkgICAgbGluZSB0aGUgd2hvbGUgdGFiIGlzIGRlbGV0ZWQuClNvbHV0aW9uOiAgIFRha2UgY29sYWRkIGludG8gYWNjb3VudCB3aGVuIGFkanVzdGluZyBmb3IgJ3NlbGVjdGlvbicgYmVpbmcKCSAgICAiZXhjbHVzaXZlIi4gIEFsc28gZXhwYW5kIGEgdGFiIGludG8gc3BhY2VzIHdoZW4gZGVsZXRpbmcgbW9yZQoJICAgIHRoYW4gb25lIGxpbmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMKClBhdGNoIDYuMC4xOTcKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCBhbmQgJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIsICJ2JHgiCgkgICAgZG9lc24ndCBkZWxldGUgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lLiAoRXJpYyBMb25nKQpTb2x1dGlvbjogICBEb24ndCByZXNldCB0aGUgaW5jbHVzaXZlIGZsYWcuIChIZWxtdXQgU3RpZWdsZXIpCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMTk4ClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kICdzaG93YnJlYWsnIGlzIG5vdCBlbXB0eSwgbW92aW5nIHRoZQoJICAgIGN1cnNvciBvdmVyIHRoZSBsaW5lIGJyZWFrIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4gKEVyaWMgTG9uZykKU29sdXRpb246ICAgTWFrZSBnZXR2aXNjb2woKSBhbmQgZ2V0dmlzY29sMigpIHVzZSBnZXR2dmNvbCgpIHRvIG9idGFpbiB0aGUKCSAgICB2aXJ0dWFsIGN1cnNvciBwb3NpdGlvbi4gIEFkanVzdCBjb2xhZHZhbmNlKCkgYW5kIG9uZWxlZnQoKSB0bwoJICAgIHNraXAgb3ZlciB0aGUgJ3Nob3dicmVhaycgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjE5OQpQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBjb3VsZCB1c2UgaWNvbnYoKSBhZnRlciBjYWxsaW5nIGljb252X2VuZCgpLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFN0b3AgY29udmVydGluZyBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbSBhZnRlciBjYWxsaW5nIGljb252X2VuZCgpLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjAuMjAwClByb2JsZW06ICAgIEEgc2NyaXB0IHRoYXQgc3RhcnRzIHdpdGggIiMhcGVybCIgaXNuJ3QgcmVjb2duaXplZCBhcyBhIFBlcmwKCSAgICBmaWxldHlwZS4KU29sdXRpb246ICAgSWdub3JlIGEgbWlzc2luZyBwYXRoIGluIGEgc2NyaXB0IGhlYWRlci4gIEFsc28sIHNwZWVkIHVwCgkgICAgcmVjb2duaXppbmcgc2NyaXB0cyBieSBzaW1wbGlmeWluZyB0aGUgcGF0dGVybnMgdXNlZC4KRmlsZXM6CSAgICBydW50aW1lL3NjcmlwdHMudmltCgpQYXRjaCA2LjAuMjAxClByb2JsZW06ICAgIFdoZW4gc2Nyb2xsYmluZGluZyBhbmQgZG9pbmcgYSBsb25nIGp1bXAsIHN3aXRjaGluZyB3aW5kb3dzIGp1bXBzCgkgICAgdG8gYW5vdGhlciBwb3NpdGlvbiBpbiB0aGUgZmlsZS4gIFNjcm9sbGluZyBhIGZldyBsaW5lcyBhdCBhIHRpbWUKCSAgICBpcyBPSy4gKEpvaGFubmVzIFplbGxuZXIpClNvbHV0aW9uOiAgIFdoZW4gc2V0dGluZyB3X3RvcGxpbmUgcmVzZXQgdGhlIGZsYWcgdGhhdCBpbmRpY2F0ZXMgd19ib3RsaW5lIGlzCgkgICAgdmFsaWQuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4wLjIwMgpQcm9ibGVtOiAgICBUaGUgImljb249IiBhcmd1bWVudCBmb3IgdGhlIG1lbnUgY29tbWFuZCB0byBkZWZpbmUgYSB0b29sYmFyIGljb24KCSAgICB3aXRoIGEgZmlsZSBkaWRuJ3Qgd29yayBmb3IgR1RLLiAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQoJICAgIEZvciBNb3RpZiBhbmQgQXRoZW5hIGEgZnVsbCBwYXRoIHdhcyByZXF1aXJlZC4KU29sdXRpb246ICAgU2VhcmNoIHRoZSBpY29uIGZpbGUgdXNpbmcgdGhlIHNwZWNpZmllZCBwYXRoLiAgRXhwYW5kIGVudmlyb25tZW50CgkgICAgdmFyaWFibGVzIGluIHRoZSBmaWxlIG5hbWUuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4wLjIwMwpQcm9ibGVtOiAgICBDYW4gY2hhbmdlICdmaWxlZm9ybWF0JyBldmVuIHRob3VnaCAnbW9kaWZpYWJsZScgaXMgb2ZmLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBDb3JyZWN0IGNoZWNrIGZvciBraW5kIG9mIHNldCBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjIwNApQcm9ibGVtOiAgICAiOnVubGV0IiBkb2Vzbid0IHdvcmsgZm9yIHZhcmlhYmxlcyB3aXRoIGN1cmx5IGJyYWNlcy4gKFRob21hcwoJICAgIFNjb3R0IFVyYmFuKQpTb2x1dGlvbjogICBIYW5kbGUgdmFyaWFibGUgbmFtZXMgd2l0aCBjdXJseSBicmFjZXMgcHJvcGVybHkuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMjA1IChleHRyYSkKUHJvYmxlbTogICAgImd2aW0gLWYiIHN0aWxsIGZvcmtzIHdoZW4gdXNpbmcgdGhlIGJhdGNoIHNjcmlwdCB0byBzdGFydCBWaW0uClNvbHV0aW9uOiAgIEFkZCBhbiBhcmd1bWVudCB0byAic3RhcnQiIHRvIHVzZSBhIGZvcmVncm91bmQgc2Vzc2lvbiAoTWljaGFlbAoJICAgIEdlZGRlcykKRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjAuMjA2ClByb2JsZW06ICAgIFVuaXg6IGlmIGV4cGFuZGluZyBhIHdpbGRjYXJkIGluIGEgZmlsZSBuYW1lIHJlc3VsdHMgaW4gYQoJICAgIHdpbGRjYXJkIGNoYXJhY3RlciBhbmQgdGhlcmUgYXJlIG1vcmUgcGFydHMgaW4gdGhlIHBhdGggd2l0aCBhCgkgICAgd2lsZGNhcmQsIGl0IGlzIGV4cGFuZGVkIGFnYWluLgoJICAgIFdpbmRvd3M6ICI6ZWRpdCBcW2FiY10iIGNvdWxkIG5ldmVyIGVkaXQgdGhlIGZpbGUgIlthYmNdIi4KU29sdXRpb246ICAgRG9uJ3QgZXhwYW5kIHdpbGRjYXJkcyBpbiBhbHJlYWR5IGV4cGFuZGVkIHBhcnRzLgoJICAgIERvbid0IHJlbW92ZSBiYWNrc2xhc2hlcyB1c2VkIHRvIGVzY2FwZSB0aGUgc3BlY2lhbCBtZWFuaW5nIG9mIGEKCSAgICB3aWxkY2FyZDsgY2FuIGVkaXQgIlthYmNdIiBpZiAnWycgaXMgcmVtb3ZlZCBmcm9tICdpc2ZuYW1lJy4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4wLjIwNyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgc2hvcnRjdXRzIGFuZCBzdGFydCBtZW51IGVudHJpZXMgbGV0IFZpbSBzdGFydHVwIGluIHRoZQoJICAgIGRlc2t0b3AgZGlyZWN0b3J5LCB3aGljaCBpcyBub3QgdmVyeSB1c2VmdWwuClNvbHV0aW9uOiAgIExldCBzaG9ydGN1dHMgc3RhcnQgVmltIGluICRIT01FIG9yICRIT01FRElSJEhPTUVQQVRILgpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMC4yMDgKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nIGEga2V5bWFwIGFuZCB0aGUgY3Vyc29yIGlzIG5vdCBibGlua2luZywgQ1RSTC1eIGluCgkgICAgSW5zZXJ0IG1vZGUgZG9lc24ndCBkaXJlY3RseSBjaGFuZ2UgdGhlIGN1cnNvciBjb2xvci4gIChBbGV4CgkgICAgU29sb3cpClNvbHV0aW9uOiAgIEZvcmNlIGEgcmVkcmF3IG9mIHRoZSBjdXJzb3IgYWZ0ZXIgQ1RSTC1eLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4yMDkKUHJvYmxlbTogICAgR1VJIEdUSzogQWZ0ZXIgc2VsZWN0aW5nIGEgJ2d1aWZvbnQnIHdpdGggdGhlIGZvbnQgZGlhbG9nIHRoZXJlCgkgICAgYXJlIHJlZHJhdyBwcm9ibGVtcyBmb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBTZXBhcmF0ZSB0aGUgZm9udCBkaWFsb2cgZnJvbSBzZXR0aW5nIHRoZSBuZXcgZm9udCBuYW1lIHRvIGF2b2lkCgkgICAgdGhhdCAiKiIgaXMgdXNlZCB0byBmaW5kIHdpZGUgYW5kIGJvbGQgZm9udHMuCgkgICAgV2hlbiByZWRyYXdpbmcgZXh0cmEgY2hhcmFjdGVycyBmb3IgdGhlIGJvbGQgdHJpY2ssIHRha2UgY2FyZSBvZgoJICAgIFVURi04IGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX2d0a194MTEuYywgc3JjL29wdGlvbi5jLCBzcmMvcHJvdG8vZ3VpLnBybywKCSAgICBzcmMvcHJvdG8vZ3VpX2d0a194MTEucHJvCgpQYXRjaCA2LjAuMjEwClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMC4xNjcgaXQncyBubyBsb25nZXIgcG9zc2libGUgdG8gZWRpdCBhIGhlbHAgZmlsZSBpbgoJICAgIGFub3RoZXIgZW5jb2RpbmcgdGhhbiBsYXRpbjEuClNvbHV0aW9uOiAgIExldCB0aGUgIisrZW5jPSIgYXJndW1lbnQgb3ZlcnJ1bGUgdGhlIGVuY29kaW5nLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjIxMQpQcm9ibGVtOiAgICBXaGVuIHJlYWRpbmcgYSBmaWxlIGZhaWxzLCB0aGUgYnVmZmVyIGlzIGVtcHR5LCBidXQgaXQgbWlnaHQgc3RpbGwKCSAgICBiZSBwb3NzaWJsZSB0byB3cml0ZSBpdCB3aXRoICI6dyIgbGF0ZXIuICBUaGUgb3JpZ2luYWwgZmlsZSBpcwoJICAgIGxvc3QgdGhlbi4gKFN0ZXZlIEFtZXJpZ2UpClNvbHV0aW9uOiAgIFNldCB0aGUgJ3JlYWRvbmx5JyBvcHRpb24gZm9yIHRoZSBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjEyClByb2JsZW06ICAgIEdVSSBHVEs6IGNvbmZpcm0oImZvbyIsICIiKSBjYXVzZXMgYSBjcmFzaC4KU29sdXRpb246ICAgRG9uJ3QgbWFrZSBhIG5vbi1leGlzdGluZyBidXR0b24gdGhlIGRlZmF1bHQuICBBZGQgYSBkZWZhdWx0ICJPSyIKCSAgICBidXR0b24gaWYgbm9uZSBpcyBzcGVjaWZpZWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4wLjIxMwpQcm9ibGVtOiAgICBXaGVuIGEgZmlsZSBuYW1lIGNvbnRhaW5zIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMsIENUUkwtRyBhbmQgb3RoZXIKCSAgICBjb21tYW5kcyBkb24ndCB3b3JrIHdlbGwuClNvbHV0aW9uOiAgIFR1cm4gdW5wcmludGFibGUgaW50byBwcmludGFibGUgY2hhcmFjdGVycy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMC4yMTQKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhIGJ1ZmZlciB3aXRob3V0IGEgbmFtZSwgZW1wdHkgZW50cmllcyBhcHBlYXIgaW4gdGhlCgkgICAganVtcGxpc3Qgc2F2ZWQgaW4gdGhlIHZpbWluZm8gZmlsZS4KU29sdXRpb246ICAgRG9uJ3Qgd3JpdGUganVtcGxpc3QgZW50cmllcyB3aXRob3V0IGEgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9tYXJrLmMKClBhdGNoIDYuMC4yMTUKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgIi8iIGZyb20gVmlzdWFsIG1vZGUgdGhlIFBhc3RlIG1lbnUgYW5kIFRvb2xiYXIKCSAgICBlbnRyaWVzIGRvbid0IHdvcmsuICBQYXN0aW5nIHdpdGggdGhlIG1pZGRsZSBtb3VzZSBkb2Vzbid0IHdvcmsKCSAgICBhbmQgbW9kZWxlc3Mgc2VsZWN0aW9uIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgVXNlIHRoZSBjb21tYW5kIGxpbmUgbW9kZSBtZW51cyBhbmQgdXNlIHRoZSBtb3VzZSBsaWtlIGluIHRoZQoJICAgIGNvbW1hbmQgbGluZS4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9tZW51LmMsIHNyYy91aS5jCgpQYXRjaCA2LjAuMjE2ClByb2JsZW06ICAgIEFmdGVyIHJlbG9hZGluZyBhIGZpbGUsIGRpc3BsYXllZCBpbiBhbm90aGVyIHdpbmRvdyB0aGFuIHRoZQoJICAgIGN1cnJlbnQgb25lLCB3aGljaCB3YXMgY2hhbmdlZCBvdXRzaWRlIG9mIFZpbSB0aGUgcGFydCBvZiB0aGUgZmlsZQoJICAgIGFyb3VuZCB0aGUgY3Vyc29yIHNldCBieSBhdXRvY29tbWFuZHMgbWF5IGJlIGRpc3BsYXllZCwgYnV0CgkgICAganVtcGluZyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjdXJzb3IgcG9zaXRpb24gd2hlbiBlbnRlcmluZyB0aGUKCSAgICB3aW5kb3cgYWdhaW4uClNvbHV0aW9uOiAgIFJlc3RvcmUgdGhlIHRvcGxpbmUgb2YgdGhlIHdpbmRvdy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yMTcKUHJvYmxlbTogICAgV2hlbiBnZXR0aW5nIGhlbHAgZnJvbSBhIGhlbHAgZmlsZSB0aGF0IHdhcyB1c2VkIGJlZm9yZSwgYW4gZW1wdHkKCSAgICB1bmxpc3RlZCBidWZmZXIgcmVtYWlucyBpbiB0aGUgYnVmZmVyIGxpc3QuIChFcmljIExvbmcpClNvbHV0aW9uOiAgIFdpcGUgb3V0IHRoZSBidWZmZXIgdXNlZCB0byBkbyB0aGUgdGFnIGp1bXAgZnJvbS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9wcm90by9idWZmZXIucHJvCgpQYXRjaCA2LjAuMjE4ClByb2JsZW06ICAgIFdpdGggZXhwbG9yZXIgcGx1Z2luOiAidmltIC1vIGZpbGVuYW1lIGRpcm5hbWUiIGRvZXNuJ3QgbG9hZCB0aGUKCSAgICBleHBsb3JlciB3aW5kb3cgdW50aWwgZW50ZXJpbmcgdGhlIHdpbmRvdy4KU29sdXRpb246ICAgQ2FsbCBzOkVkaXREaXIoKSBmb3IgZWFjaCB3aW5kb3cgYWZ0ZXIgc3RhcnRpbmcgdXAuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltCgpQYXRjaCA2LjAuMjE5ClByb2JsZW06ICAgICI6c2V0bG9jYWwiIGFuZCAiOnNldGdsb2JhbCIsIHdpdGhvdXQgYXJndW1lbnRzLCBkaXNwbGF5IHRlcm1pbmFsCgkgICAgb3B0aW9ucy4gKFpkZW5layBTZWtlcmEpClNvbHV0aW9uOiAgIFNraXAgdGVybWluYWwgb3B0aW9ucyBmb3IgdGhlc2UgdHdvIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjIyMApQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjAuMjE4IGdldCBhIGJlZXAgb24gc3RhcnR1cC4gKE11cmFva2EgVGFybykKU29sdXRpb246ICAgRG9uJ3QgdHJ5IGdvaW5nIHRvIGFub3RoZXIgd2luZG93IHdoZW4gdGhlcmUgaXNuJ3Qgb25lLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4wLjIyMQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6YmRlbCIgYW5kIGFsbCBvdGhlciBidWZmZXJzIGFyZSB1bmxvYWRlZCB0aGUgbG93ZXN0CgkgICAgbnVtYmVyZWQgYnVmZmVyIGlzIGp1bXBlZCB0byBpbnN0ZWFkIG9mIHRoZSBtb3N0IHJlY2VudCBvbmUuIChEYXZlCgkgICAgQ2VjaWwpClNvbHV0aW9uOiAgIFByZWZlciBhbiB1bmxvYWRlZCBidWZmZXIgZnJvbSB0aGUganVtcGxpc3QuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjAuMjIyClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kIHVzaW5nIGF1dG9pbmRlbnQsIHByZXNzaW5nIEVzYyBhZnRlcgoJICAgIHN0YXJ0aW5nIGEgbmV3IGxpbmUgbGVhdmVzIGJlaGluZCBwYXJ0IG9mIHRoZSBhdXRvaW5kZW50LiAoSGVsbXV0CgkgICAgU3RpZWdsZXIpClNvbHV0aW9uOiAgIEFmdGVyIGRlbGV0aW5nIHRoZSBsYXN0IGNoYXIgaW4gdGhlIGxpbmUgYWRqdXN0IHRoZSBjdXJzb3IKCSAgICBwb3NpdGlvbiBpbiBkZWxfYnl0ZXMoKS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL29wcy5jCgpQYXRjaCA2LjAuMjIzClByb2JsZW06ICAgIFdoZW4gc3BsaXR0aW5nIGEgd2luZG93IHRoYXQgY29udGFpbnMgdGhlIGV4cGxvcmVyLCBoaXR0aW5nIENSIG9uCgkgICAgYSBmaWxlIG5hbWUgZ2l2ZXMgZXJyb3IgbWVzc2FnZXMuClNvbHV0aW9uOiAgIFNldCB0aGUgd2luZG93IHZhcmlhYmxlcyBhZnRlciBzcGxpdHRpbmcgdGhlIHdpbmRvdy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0KClBhdGNoIDYuMC4yMjQKUHJvYmxlbTogICAgV2hlbiAnc2lkZXNjcm9sbCcgYW5kICdzaWRlc2Nyb2xsb2ZmJyBhcmUgc2V0IGluIGEgbmFycm93IHdpbmRvdwoJICAgIHRoZSB0ZXh0IG1heSBqdW1wIGxlZnQtcmlnaHQgYW5kIHRoZSBjdXJzb3IgaXMgZGlzcGxheWVkIGluIHRoZQoJICAgIHdyb25nIHBvc2l0aW9uLiAoQXJpYyBCbHVtZXIpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgbm90IGVub3VnaCByb29tLCBjb21wdXRlIHRoZSBsZWZ0IGNvbHVtbiBmb3IgdGhlCgkgICAgd2luZG93IHRvIHB1dCB0aGUgY3Vyc29yIGluIHRoZSBtaWRkbGUuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4wLjIyNQpQcm9ibGVtOiAgICBJbiBWaXN1YWwgbW9kZSAiZ2siIGdldHMgc3R1Y2sgaW4gYSBjbG9zZWQgZm9sZC4gKFNyaW5hdGgKCSAgICBBdmFkaGFudWxhKQpTb2x1dGlvbjogICBCZWhhdmUgZGlmZmVyZW50bHkgaW4gYSBjbG9zZWQgZm9sZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4yMjYKUHJvYmxlbTogICAgV2hlbiBkb2luZyAiOnJlY292ZXIgZmlsZSIgZ2V0IHRoZSBBVFRFTlRJT04gcHJvbXB0LgoJICAgIEFmdGVyIHJlY292ZXJpbmcgdGhlIHNhbWUgZmlsZSBmaXZlIHRpbWVzIGdldCBhIHJlYWQgZXJyb3Igb3IgYQoJICAgIGNyYXNoLiAgKEFsZXggRGF2aXMpClNvbHV0aW9uOiAgIFNldCB0aGUgcmVjb3Zlcnltb2RlIGZsYWcgYmVmb3JlIHNldHRpbmcgdGhlIGZpbGUgbmFtZS4KCSAgICBDb3JyZWN0IHRoZSBhbW91bnQgb2YgdXNlZCBtZW1vcnkgZm9yIHRoZSBzaXplIG9mIGJsb2NrIHplcm8uCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMC4yMjcgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgUklTQyBPUyBwb3J0IGhhcyBzZXZlcmFsIHByb2JsZW1zLgpTb2x1dGlvbjogICBVcGRhdGUgdGhlIG1ha2VmaWxlIGFuZCBmaXggc29tZSBvZiB0aGUgcHJvYmxlbXMuIChBbmR5IFdpbmdhdGUpCkZpbGVzOgkgICAgc3JjL01ha2Vfcm8ubWFrLCBzcmMvb3NfcmlzY29zLmMsIHNyYy9vc19yaXNjb3MuaCwKCSAgICBzcmMvcHJvdG8vb3NfcmlzY29zLnBybywgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjAuMjI4ClByb2JsZW06ICAgIEFmdGVyIHB1dHRpbmcgdGV4dCBpbiBWaXN1YWwgbW9kZSB0aGUgJ10gbWFyayBpcyBub3QgYXQgdGhlIGVuZCBvZgoJICAgIHRoZSBwdXQgdGV4dC4KCSAgICBVbmRvIGRvZXNuJ3Qgd29yayBwcm9wZXJseSB3aGVuIHB1dHRpbmcgYSB3b3JkIGludG8gYSBWaXN1YWwKCSAgICBzZWxlY3Rpb24gdGhhdCBzcGFucyBtb3JlIHRoYW4gb25lIGxpbmUuClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlICddIG1hcmsgZm9yIHRoZSBkZWxldGluZyB0aGUgVmlzdWFsbHkgc2VsZWN0ZWQgdGV4dC4KCSAgICAjaWZkZWYgY29kZSB0aGF0IGRlcGVuZHMgb24gRkVBVF9WSVNVQUwgcHJvcGVybHkuCgkgICAgQWxzbyBmaXggdGhhdCAiZCIgY3Jvc3NpbmcgbGluZSBib3VuZGFyeSBwdXRzICdbIGp1c3QgYmVmb3JlCgkgICAgZGVsZXRlZCB0ZXh0LgoJICAgIEZpeCB1bmRvIGJ5IHNhdmluZyBhbGwgZGVsZXRlZCBsaW5lcyBhdCBvbmNlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYywKCSAgICBzcmMvc3RydWN0cy5oLCBzcmMvdmltLmgKClBhdGNoIDYuMC4yMjkKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2l0aCAnbScgaW4gJ2Zvcm1hdG9wdGlvbnMnLCBmb3JtYXR0aW5nIGRvZXNuJ3QgYnJlYWsKCSAgICBhdCBhIG11bHRpLWJ5dGUgY2hhciBmb2xsb3dlZCBieSBhbiBBU0NJSSBjaGFyLCBhbmQgdGhlIG90aGVyIHdheQoJICAgIGFyb3VuZC4gKE11cmFva2EgVGFybykKCSAgICBXaGVuIGpvaW5pbmcgbGluZXMgYSBzcGFjZSBpcyBpbnNlcnRlZCBiZXR3ZWVuIG11bHRpLWJ5dGUKCSAgICBjaGFyYWN0ZXJzLCB3aGljaCBpcyBub3QgYWx3YXlzIHdhbnRlZC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGJyZWFrcG9pbnQuCgkgICAgRG9uJ3QgaW5zZXJ0IGEgc3BhY2UgYmVmb3JlIG9yIGFmdGVyIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgd2hlbgoJICAgIGpvaW5pbmcgbGluZXMgYW5kIHRoZSAnTScgZmxhZyBpcyBpbiAnZm9ybWF0b3B0aW9ucycuICBEb24ndAoJICAgIGluc2VydCBhIHNwYWNlIGJldHdlZW4gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHdoZW4gdGhlICdCJyBmbGFnIGlzCgkgICAgaW4gJ2Zvcm1hdG9wdGlvbnMnLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjAuMjMwClByb2JsZW06ICAgIFRoZSAiOiIgdXNlZCBhcyBhIG1vdGlvbiBhZnRlciBhbiBvcGVyYXRvciBpcyBleGNsdXNpdmUsIGJ1dAoJICAgIHNvbWV0aW1lcyBpdCBzaG91bGQgYmUgaW5jbHVzaXZlLgpTb2x1dGlvbjogICBNYWtlIHRoZSAidiIgaW4gYmV0d2VlbiBhbiBvcGVyYXRvciBhbmQgbW90aW9uIHRvZ2dsZQoJICAgIGluY2x1c2l2ZS9leGNsdXNpdmUuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21vdGlvbi50eHQsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjIzMQpQcm9ibGVtOiAgICAiZ2QiIGFuZCAiZ0QiIGRvbid0IHdvcmsgd2hlbiB0aGUgdmFyaWFibGUgbWF0Y2hlcyBpbiBhIGNvbW1lbnQKCSAgICBqdXN0IGFib3ZlIHRoZSBtYXRjaCB0byBiZSBmb3VuZC4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIENvbnRpbnVlIHNlYXJjaGluZyBpbiB0aGUgZmlyc3QgY29sdW1uIGJlbG93IHRoZSBjb21tZW50LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjIzMgpQcm9ibGVtOiAgICAidmltIC0tdmVyc2lvbiIgcHJpbnRzIG9uIHN0ZGVyciB3aGlsZSAidmltIC0taGVscCIgcHJpbnRzIG9uCgkgICAgc3Rkb3V0LgpTb2x1dGlvbjogICBNYWtlICJ2aW0gLS12ZXJzaW9uIiB1c2Ugc3Rkb3V0LgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCwgc3JjL2dsb2JhbHMuaCwgc3JjL21haW4uYywgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4wLjIzMwpQcm9ibGVtOiAgICAiXDFceyw4fSIgaW4gYSByZWdleHAgaXMgbm90IGFsbG93ZWQsIGJ1dCBpdCBzaG91bGQgd29yaywgYmVjYXVzZQoJICAgIHRoZXJlIGlzIGFuIHVwcGVyIGxpbWl0LiAgKEppbSBCYXR0bGUpClNvbHV0aW9uOiAgIEFsbG93IHVzaW5nICJce21pbixtYXh9IiBhZnRlciBhbiBhdG9tIHRoYXQgY2FuIGJlIGVtcHR5IGlmIHRoZXJlCgkgICAgaXMgYW4gdXBwZXIgbGltaXQuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMjM0ClByb2JsZW06ICAgIEl0J3Mgbm90IGVhc3kgdG8gc2V0IHRoZSBjdXJzb3IgcG9zaXRpb24gd2l0aG91dCBtb2RpZnlpbmcgbWFya3MuClNvbHV0aW9uOiAgIEFkZCB0aGUgY3Vyc29yKCkgZnVuY3Rpb24uIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMjM1ClByb2JsZW06ICAgIFdoZW4gd3JpdGluZyBhIGZpbGUgYW5kIHJlbmFtaW5nIHRoZSBvcmlnaW5hbCBmaWxlIHRvIG1ha2UgdGhlCgkgICAgYmFja3VwLCBwZXJtaXNzaW9ucyBjb3VsZCBjaGFuZ2Ugd2hlbiBzZXR0aW5nIHRoZSBvd25lci4KU29sdXRpb246ICAgT25seSBzZXQgdGhlIG93bmVyIHdoZW4gaXQncyBuZWVkZWQgYW5kIHNldCB0aGUgcGVybWlzc2lvbnMgYWdhaW4KCSAgICBhZnRlcndhcmRzLgoJICAgIFdoZW4gJ2JhY2t1cGNvcHknIGlzICJhdXRvIiBjaGVjayB0aGF0IHRoZSBvd25lciBhbmQgcGVybWlzc2lvbnMKCSAgICBvZiBhIG5ld2x5IGNyZWF0ZWQgZmlsZSBjYW4gYmUgc2V0IHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjIzNgpQcm9ibGVtOiAgICAiOmVkaXQiIHdpdGhvdXQgYXJndW1lbnQgc2hvdWxkIG1vdmUgY3Vyc29yIHRvIGxpbmUgMSBpbiBWaQoJICAgIGNvbXBhdGlibGUgbW9kZS4KU29sdXRpb246ICAgQWRkICdnJyBmbGFnIHRvICdjcG9wdGlvbnMnLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvZXhfZG9jbWQuYywgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjAuMjM3ClByb2JsZW06ICAgIEluIGEgQyBmaWxlLCB1c2luZyB0aGUgZmlsZXR5cGUgcGx1Z2luLCByZS1pbmRlbnRpbmcgYSBjb21tZW50CgkgICAgd2l0aCB0d28gc3BhY2VzIGFmdGVyIHRoZSBtaWRkbGUgIioiIGRvZXNuJ3QgYWxpZ24gcHJvcGVybHkuClNvbHV0aW9uOiAgIERvbid0IHVzZSBhIG1pZGRsZSBlbnRyeSBmcm9tIGEgc3RhcnQvbWlkZGxlL2VuZCB0byBsaW5lIHVwIHdpdGgKCSAgICB0aGUgc3RhcnQgb2YgdGhlIGNvbW1lbnQgd2hlbiB0aGUgc3RhcnQgcGFydCBkb2Vzbid0IG1hdGNoIHdpdGgKCSAgICB0aGUgYWN0dWFsIGNvbW1lbnQgc3RhcnQuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMC4yMzgKUHJvYmxlbTogICAgVXNpbmcgYSAiOnN1YnN0aXR1dGUiIGNvbW1hbmQgd2l0aCBhIHN1YnN0aXR1dGUoKSBjYWxsIGluIHRoZQoJICAgIHN1YnN0aXR1dGlvbiBleHByZXNzaW9uIGNhdXNlcyBlcnJvcnMuIChTcmluYXRoIEF2YWRoYW51bGEpClNvbHV0aW9uOiAgIFNhdmUgYW5kIHJlc3RvcmUgcG9pbnRlcnMgd2hlbiBkb2luZyBzdWJzdGl0dXRpb24gcmVjdXJzaXZlbHkuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMjM5ClByb2JsZW06ICAgIFVzaW5nICJBIiB0byBhcHBlbmQgYWZ0ZXIgYSBWaXN1YWxseSBzZWxlY3RlZCBibG9jayB3aGljaCBpcyBhZnRlcgoJICAgIHRoZSBlbmQgb2YgdGhlIGxpbmUsIHNwYWNlcyBhcmUgaW5zZXJ0ZWQgaW4gdGhlIHdyb25nIGxpbmUgYW5kCgkgICAgb3RoZXIgdW5leHBlY3RlZCBlZmZlY3RzLiAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBEb24ndCBhZHZhbmNlIHRoZSBjdXJzb3IgdG8gdGhlIG5leHQgbGluZS4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4yNDAKUHJvYmxlbTogICAgV2luMzI6IGJ1aWxkaW5nIHdpdGggUHl0aG9uIDIuMiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEFkZCBzdXBwb3J0IGZvciBQeXRob24gMi4yIHdpdGggZHluYW1pYyBsaW5raW5nLiAoUGF1bCBNb29yZSkKRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMC4yNDEKUHJvYmxlbTogICAgV2luMzI6IEV4cGFuZGluZyB0aGUgb2xkIHZhbHVlIG9mIGFuIG9wdGlvbiB0aGF0IGlzIGEgcGF0aCB0aGF0CgkgICAgc3RhcnRzIHdpdGggYSBiYWNrc2xhc2gsIGFuIGV4dHJhIGJhY2tzbGFzaCBpcyBpbnNlcnRlZC4KU29sdXRpb246ICAgT25seSBpbnNlcnQgYmFja3NsYXNoZXMgd2hlcmUgbmVlZGVkLgoJICAgIEFsc28gaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBwcm9wZXJseSB3aGVuIHJlbW92aW5nCgkgICAgYmFja3NsYXNoZXMuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMjQyClByb2JsZW06ICAgIEdVSTogT24gYSBzeXN0ZW0gd2l0aCBhbiBFeGNlZWQgWCBzZXJ2ZXIgc29tZXRpbWVzIGdldCBhICJCYWQKCSAgICBXaW5kb3ciIGVycm9yLiAoVG9tbWkgTWFla2l0YWxvKQpTb2x1dGlvbjogICBXaGVuIGZvcmtpbmcsIHVzZSBhIHBpcGUgdG8gd2FpdCBpbiB0aGUgcGFyZW50IGZvciB0aGUgY2hpbGQgdG8KCSAgICBoYXZlIGRvbmUgdGhlIHNldHNpZCgpIGNhbGwuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjAuMjQzClByb2JsZW06ICAgIFVuaXg6ICJ2aW0gLS12ZXJzaW9uIiBvdXRwdXRzIGEgTkwgYmVmb3JlIHRoZSBsYXN0IGxpbmUgaW5zdGVhZCBvZgoJICAgIGFmdGVyIGl0LiAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgU2VuZCB0aGUgTkwgdG8gdGhlIHNhbWUgb3V0cHV0IHN0cmVhbSBhcyB0aGUgdGV4dC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvb3NfdW5peC5jLCBzcmMvcHJvdG8vbWVzc2FnZS5wcm8KClBhdGNoIDYuMC4yNDQKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogUHJvYmxlbXMgd2l0aCAoaWxsZWdhbCkgVVRGLTggY2hhcmFjdGVycyBpbiBtZW51IGFuZAoJICAgIGZpbGUgbmFtZSAoZS5nLiwgaWNvbiB0ZXh0LCBzdGF0dXMgbGluZSkuClNvbHV0aW9uOiAgIENvcnJlY3RseSBoYW5kbGUgdW5wcmludGFibGUgY2hhcmFjdGVycy4gIENhdGNoIGlsbGVnYWwgVVRGLTgKCSAgICBjaGFyYWN0ZXJzIGFuZCByZXBsYWNlIHRoZW0gd2l0aCA8eHg+LiAgVHJ1bmNhdGluZyB0aGUgc3RhdHVzIGxpbmUKCSAgICB3YXNuJ3QgZG9uZSBjb3JyZWN0bHkgYXQgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQoJICAgIEFkZGVkIGNvcnJlY3RfY21kc3BvcygpIGFuZCB0cmFuc2NoYXJfYnl0ZSgpLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ndWkuYywKCSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvc2NyZWVuLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4wLjI0NQpQcm9ibGVtOiAgICBBZnRlciB1c2luZyBhIGNvbG9yIHNjaGVtZSwgc2V0dGluZyB0aGUgJ2JhY2tncm91bmQnIG9wdGlvbiBtaWdodAoJICAgIG5vdCB3b3JrLiAoUGV0ZXIgSG9yc3QpClNvbHV0aW9uOiAgIERpc2FibGUgdGhlIGNvbG9yIHNjaGVtZSBpZiBpdCBzd2l0Y2hlcyAnYmFja2dyb3VuZCcgYmFjayB0byB0aGUKCSAgICB3cm9uZyB2YWx1ZS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4yNDYKUHJvYmxlbTogICAgIjplY2hvbXNnIiBkaWRuJ3QgdXNlIHRoZSBoaWdobGlnaHRpbmcgc2V0IGJ5ICI6ZWNob2hsIi4gKEdhcnkKCSAgICBIb2xsb3dheSkKU29sdXRpb246ICAgVXNlIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcyBmb3IgdGhlIG1lc3NhZ2UuIChZZWdhcHBhbgoJICAgIExha3NobWFuYW4pCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjI0NwpQcm9ibGVtOiAgICBHVEsgR1VJOiBDYW4ndCB1c2UgZ3ZpbSBpbiBhIGtwYXJ0IHdpZGdldC4KU29sdXRpb246ICAgQWRkIHRoZSAiLS1lY2hvLXdpZCIgYXJndW1lbnQgdG8gbGV0IFZpbSBlY2hvIHRoZSB3aW5kb3cgSUQgb24KCSAgICBzdGRvdXQuIChQaGlsaXBwZSBGcmVteSkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9zdGFydGluZy50eHQsIHNyYy9nbG9iYWxzLmgsIHNyYy9ndWlfZ3RrX3gxMS5jLAoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMC4yNDgKUHJvYmxlbTogICAgV2hlbiB1c2luZyBjb21wcmVzc2VkIGhlbHAgZmlsZXMgYW5kICdlbmNvZGluZycgaXNuJ3QgImxhdGluMSIsCgkgICAgVmltIGNvbnZlcnRzIHRoZSBoZWxwIGZpbGUgYmVmb3JlIGRlY29tcHJlc3NpbmcuIChEYXZpZCBSZXZpZWpvKQpTb2x1dGlvbjogICBEb24ndCBjb252ZXJ0IGEgaGVscCBmaWxlIHdoZW4gJ2JpbmFyeScgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjI0OQpQcm9ibGVtOiAgICAidmltIC10IGVkaXQgLWMgJ3N0YSBleF9oZWxwJyIgZG9lc24ndCBtb3ZlIGN1cnNvciB0byBlZGl0KCkuClNvbHV0aW9uOiAgIERvbid0IHNldCB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCBsaW5lIGZvciAiLWMiIGFyZ3VtZW50cyB3aGVuCgkgICAgdGhlcmUgYWxzbyBpcyBhICItdCIgYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4wLjI1MCAoZXh0cmEpClByb2JsZW06ICAgIE1hY2ludG9zaDogVmFyaW91cyBwcm9ibGVtcyB3aGVuIGNvbXBpbGluZy4KU29sdXRpb246ICAgVmFyaW91cyBmaXhlcywgbW9zdGx5ICNpZmRlZnMuIChEYW55IFN0LiBBbWFudCkKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvbWFpbi5jLCBzcmMvbWlzYzIuYywgc3JjL29zX21hYy5oLAoJICAgIHNyYy9vc19tYWMucGJwcm9qL3Byb2plY3QucGJ4cHJvaiwgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4wLjI1MSAoZXh0cmEpClByb2JsZW06ICAgIE1hY2ludG9zaDogbWVudSBzaG9ydGN1dHMgYXJlIG5vdCB2ZXJ5IGNsZWFyLgpTb2x1dGlvbjogICBTaG93IHRoZSBzaG9ydGN1dCB3aXRoIHRoZSBNYWMgY2xvdmVyIHN5bWJvbC4gKHJhaW5kb2cpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4wLjI1MgpQcm9ibGVtOiAgICBXaGVuIGEgdXNlciBmdW5jdGlvbiB3YXMgZGVmaW5lZCB3aXRoICJhYm9ydCIsIGFuIGVycm9yIHRoYXQgaXMKCSAgICBub3QgaW5zaWRlIGlmL2VuZGlmIG9yIHdoaWxlL2VuZHdoaWxlIGRvZXNuJ3QgYWJvcnQgdGhlIGZ1bmN0aW9uLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb24ndCByZXNldCBkaWRfZW1zZyB3aGVuIHRoZSBmdW5jdGlvbiBpcyB0byBiZSBhYm9ydGVkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjAuMjUzClByb2JsZW06ICAgIFdoZW4gJ2luc2VydG1vZGUnIGlzIHNldCwgYWZ0ZXIgIjxDLU8+OmVkaXQgZmlsZSIgdGhlIG5leHQgPEMtTz4KCSAgICBkb2Vzbid0IHdvcmsuIChCZW5qaSBGaXNoZXIpICA8Qy1MPiBoYXMgdGhlIHNhbWUgcHJvYmxlbS4KU29sdXRpb246ICAgUmVzZXQgbmVlZF9zdGFydF9pbnNlcnRtb2RlIG9uY2UgaW4gZWRpdCgpLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4yNTQgKGV4dHJhKQpQcm9ibGVtOiAgICBCb3JsYW5kIEMrKyA1LjU6IENoZWNraW5nIGZvciBzdGFjayBvdmVyZmxvdyBkb2Vzbid0IHdvcmsKCSAgICBjb3JyZWN0bHkuICBNYXR0ZXJzIHdoZW4gdXNpbmcgYSBjb21wbGljYXRlZCByZWdleHAuClNvbHV0aW9uOiAgIFJlbW92ZSAtTi0gZnJvbSBNYWtlX2JjNS5tYWsuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4wLjI1NSAoZXh0cmEpIChkZXBlbmRzIG9uIHBhdGNoIDYuMC4xMTYgYW5kIDYuMC4xMjEpClByb2JsZW06ICAgIFdpbjMyOiBBQ0wgc3VwcG9ydCBkb2Vzbid0IHdvcmsgd2VsbCBvbiBTYW1iYSBkcml2ZXMuClNvbHV0aW9uOiAgIEFkZCBhIGNoZWNrIGZvciB3b3JraW5nIEFDTCBzdXBwb3J0LiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4wLjI1NiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiAiOmhpZ2hsaWdodCBDb21tZW50IGd1aWZnPWFzZGYiIGRvZXMgbm90IGdpdmUgYW4gZXJyb3IKCSAgICBtZXNzYWdlLiAoUmFuZGFsbCBXLiAgTW9ycmlzKSAgQWxzbyBmb3Igb3RoZXIgc3lzdGVtcy4KU29sdXRpb246ICAgQWRkIGd1aV9nZXRfY29sb3IoKSB0byBnaXZlIG9uZSBlcnJvciBtZXNzYWdlIGZvciBhbGwgc3lzdGVtcy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9ndWlfYW1pZ2EuYywgc3JjL2d1aV9hdGhlbmEuYywgc3JjL2d1aV9tb3RpZi5jLAoJICAgIHNyYy9ndWlfcmlzY29zLmMsIHNyYy9ndWlfeDExLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLAoJICAgIHNyYy9wcm90by9ndWkucHJvLCBzcmMvc3ludGF4LmMKClBhdGNoIDYuMC4yNTcKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gJ21vdXNlZm9jdXMnIGlzIHNldCBhbmQgdGhlcmUgaXMgYSBCdWZSZWFkCgkgICAgYXV0b2NvbW1hbmQsIGFmdGVyIHRoZSBkaWFsb2cgZm9yIHBlcm1pc3Npb25zIGNoYW5nZWQgb3V0c2lkZSBvZgoJICAgIFZpbTogJ21vdXNlZm9jdXMnIHN0b3BzIHdvcmtpbmcuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgUmVzZXQgbmVlZF9tb3VzZV9jb3JyZWN0IGFmdGVyIGNoZWNraW5nIHRpbWVzdGFtcHMuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjU4ClByb2JsZW06ICAgIFdoZW4gJ3Njcm9sbG9mZicgaXMgOTk5IGFuZCB0aGVyZSBhcmUgZm9sZHMsIHRoZSB0ZXh0IGNhbiBqdW1wIHVwCgkgICAgYW5kIGRvd24gd2hlbiBtb3ZpbmcgdGhlIGN1cnNvciBkb3duIG5lYXIgdGhlIGVuZCBvZiB0aGUgZmlsZS4KCSAgICAoTHVib21pciBIb3N0KQpTb2x1dGlvbjogICBXaGVuIHB1dHRpbmcgdGhlIGN1cnNvciBoYWxmd2F5IHRoZSB3aW5kb3cgc3RhcnQgY291bnRpbmcgbGluZXMgYXQKCSAgICB0aGUgZW5kIG9mIGEgZm9sZC4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjAuMjU5ClByb2JsZW06ICAgIE1TLURPUzogYWZ0ZXIgZWRpdGluZyB0aGUgY29tbWFuZCBsaW5lIHRoZSBjdXJzb3Igc2hhcGUgbWF5IHJlbWFpbgoJICAgIGxpa2UgaW4gSW5zZXJ0IG1vZGUuIChWb2xrZXIgS2llZmVsKQpTb2x1dGlvbjogICBSZXNldCB0aGUgY3Vyc29yIHNoYXBlIGFmdGVyIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4wLjI2MApQcm9ibGVtOiAgICBHVUk6IE1heSBjcmFzaCB3aGlsZSBzdGFydGluZyB1cCB3aGVuIGdpdmluZyBhbiBlcnJvciBtZXNzYWdlIGZvcgoJICAgIG1pc3NpbmcgY29sb3IuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb24ndCBjYWxsIGd1aV93cml0ZSgpIHdoZW4gc3RpbGwgc3RhcnRpbmcgdXAuICBEb24ndCBnaXZlIGVycm9yCgkgICAgbWVzc2FnZSBmb3IgZW1wdHkgY29sb3IgbmFtZS4gIERvbid0IHVzZSAndF92Yicgd2hpbGUgdGhlIEdVSSBpcwoJICAgIHN0aWxsIHN0YXJ0aW5nIHVwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL2d1aS5jLCBzcmMvbWlzYzEuYywgc3JjL3VpLmMKClBhdGNoIDYuMC4yNjEKUHJvYmxlbTogICAgbnIyY2hhcigpIGFuZCBjaGFyMm5yKCkgZG9uJ3Qgd29yayB3aXRoIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgVXNlICdlbmNvZGluZycgZm9yIHRoZXNlIGZ1bmN0aW9ucy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjI2MiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBJTUUgZG9lc24ndCB3b3JrIHByb3Blcmx5LiAgT25JbWVDb21wb3NpdGlvbigpIGlzbid0IHVzZWQKCSAgICBhdCBhbGwuClNvbHV0aW9uOiAgIEFkanVzdCB2YXJpb3VzIHRoaW5ncyBmb3IgSU1FLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ndWlfdzMyLmMsIHNyYy9tYnl0ZS5jLCBzcmMvcHJvdG8vdWkucHJvLAoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy91aS5jCgpQYXRjaCA2LjAuMjYzClByb2JsZW06ICAgIEdUSzogV2hlbiBhIGRpYWxvZyBpcyBjbG9zZWQgYnkgdGhlIHdpbmRvdyBtYW5hZ2VyLCBWaW0gaGFuZ3MuCgkgICAgKENocmlzdGlhbiBKLiBSb2JpbnNvbikKU29sdXRpb246ICAgVXNlIEdUS19XSURHRVRfRFJBV0FCTEUoKSBpbnN0ZWFkIG9mIEdUS19XSURHRVRfVklTSUJMRSgpLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjAuMjY0ClByb2JsZW06ICAgIFRoZSBhbW91bnQgb2YgdmlydHVhbCBtZW1vcnkgaXMgdXNlZCB0byBpbml0aWFsaXplICdtYXhtZW10b3QnLAoJICAgIHdoaWNoIG1heSBiZSBtdWNoIG1vcmUgdGhhbiB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSwKCSAgICByZXN1bHRpbmcgaW4gYSBsb3Qgb2Ygc3dhcHBpbmcuClNvbHV0aW9uOiAgIEdldCB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSB3aXRoIHN5c2N0bCgpLCBzeXNjb25mKCkgb3IKCSAgICBzeXNpbmZvKCkgd2hlbiBwb3NzaWJsZS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcuaC5pbiwKCSAgICBzcmMvb3NfdW5peC5jLCBzcmMvb3NfdW5peC5oCgpQYXRjaCA2LjAuMjY1ClByb2JsZW06ICAgIFdpbjMyOiBVc2luZyBiYWNrc3BhY2Ugd2hpbGUgJ2ZrbWFwJyBpcyBzZXQgY2F1c2VzIGEgY3Jhc2guCgkgICAgKEphbXNoaWQgT2Fzam1vaGEpClNvbHV0aW9uOiAgIERvbid0IHRyeSBtYXBwaW5nIHNwZWNpYWwga2V5cy4KRmlsZXM6CSAgICBzcmMvZmFyc2kuYwoKUGF0Y2ggNi4wLjI2NgpQcm9ibGVtOiAgICBUaGUgcmVuYW1lKCkgZnVuY3Rpb24gZGVsZXRlcyB0aGUgZmlsZSBpZiB0aGUgb2xkIGFuZCB0aGUgbmV3IG5hbWUKCSAgICBhcmUgdGhlIHNhbWUuIChWb2xrZXIgS2llZmVsKQpTb2x1dGlvbjogICBEb24ndCBkbyBhbnl0aGluZyBpZiB0aGUgbmFtZXMgYXJlIGVxdWFsLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjI2NwpQcm9ibGVtOiAgICBVVEYtODogQWx0aG91Z2ggJ2lzcHJpbnQnIHNheXMgYSBjaGFyYWN0ZXIgaXMgcHJpbnRhYmxlLAoJICAgIHV0Zl9jaGFyMmNlbGxzKCkgc3RpbGwgY29uc2lkZXJzIGl0IHVucHJpbnRhYmxlLgpTb2x1dGlvbjogICBVc2UgdmltX2lzcHJpbnRjKCkgZm9yIGNoYXJhY3RlcnMgdXB0byAweDEwMC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4wLjI2OCAoZXh0cmEpIChkZXBlbmRzIG9uIHBhdGNoIDYuMC4yNTUpClByb2JsZW06ICAgIFdpbjMyOiBBQ0wgY2hlY2sgY3Jhc2hlcyB3aGVuIHVzaW5nIGZvcndhcmQgc2xhc2ggaW4gZmlsZSBuYW1lLgpTb2x1dGlvbjogICBJbXByb3ZlIHRoZSBjaGVjayBmb3IgdGhlIHBhdGggaW4gdGhlIGZpbGUgbmFtZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4wLjI2OQpQcm9ibGVtOiAgICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGluIGEgZmlsZSBuYW1lIG1heSBjYXVzZSBwcm9ibGVtcyB3aGVuCgkgICAgdXNpbmcgdGhlICdzdGF0dXNsaW5lJyBvcHRpb24gb3Igd2hlbiAnYnVmdHlwZScgaXMgIm5vZmlsZSIuClNvbHV0aW9uOiAgIGNhbGwgdHJhbnNfY2hhcmFjdGVycygpIGZvciB0aGUgcmVzdWx0aW5nIHN0YXR1c2xpbmUuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9zY3JlZW4uYywgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4wLjI3MCAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMjY3KQpQcm9ibGVtOiAgICBBIHRhYiBjYXVzZXMgVVRGLTggdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHdyb25nIHBvc2l0aW9uLgoJICAgIChSb24gQWFyb24pClNvbHV0aW9uOiAgIENvcnJlY3QgdXRmX2NoYXIyY2VsbHMoKSBhZ2Fpbi4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xYS4wMDEgKGV4dHJhKQpQcm9ibGVtOiAgICAzMmJpdCBET1M6IGNvcHlpbmcgdGV4dCB0byB0aGUgY2xpcGJvYXJkIG1heSBjYXVzZSBhIGNyYXNoLgoJICAgIChKb25hdGhhbiBEIEpvaG5zdG9uKQpTb2x1dGlvbjogICBEb24ndCBjb3B5IG9uZSBieXRlIHRvbyBtdWNoIGluIFNldENsaXBib2FyZERhdGEoKS4KRmlsZXM6CSAgICBzcmMvb3NfbXNkb3MuYwoKUGF0Y2ggNi4xYS4wMDIKUHJvYmxlbTogICAgR1RLOiBPbiBzb21lIGNvbmZpZ3VyYXRpb25zLCB3aGVuIGNsb3NpbmcgYSBkaWFsb2cgZnJvbSB0aGUgd2luZG93CgkgICAgbWFuYWdlciwgVmltIGhhbmdzLgpTb2x1dGlvbjogICBDYXRjaCB0aGUgImRlc3Ryb3kiIHNpZ25hbC4gKEFyaWMgQmx1bWVyKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMWEuMDAzClByb2JsZW06ICAgIE11bHRpLWJ5dGU6IFdpdGggVVRGLTggZG91YmxlLXdpZGUgY2hhciBhbmQgJ3ZpcnR1YWxlZGl0JyBzZXQ6CgkgICAgeWFua2luZyBpbiBWaXN1YWwgbW9kZSBkb2Vzbid0IGluY2x1ZGUgdGhlIGxhc3QgYnl0ZS4gKEVyaWMgTG9uZykKU29sdXRpb246ICAgRG9uJ3QgYWRkIGEgc3BhY2UgZm9yIGEgZG91YmxlLXdpZGUgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xYS4wMDQgKGV4dHJhKQpQcm9ibGVtOiAgICBNSU5HVzogdW5kZWZpbmVkIHR5cGUuIChSb24gQWFyb24pClNvbHV0aW9uOiAgIE1ha2UgR2V0Q29tcG9zaXRpb25TdHJpbmdfaW5VQ1MyKCkgc3RhdGljLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMsIHNyYy9wcm90by9ndWlfdzMyLnBybwoKUGF0Y2ggNi4xYS4wMDUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogIjpoYXJkY29weSIgZG9lc24ndCB3b3JrIGFmdGVyICI6aGFyZGNvcHkhIi4gKEpvbmF0aGFuCgkgICAgSm9obnN0b24pClNvbHV0aW9uOiAgIERvbid0IGtlZXAgdGhlIGRyaXZlciBjb250ZXh0IHdoZW4gdXNpbmcgIjpoYXJkY29weSEiLiAoVmluY2UKCSAgICBOZWdyaSkKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xYS4wMDYKUHJvYmxlbTogICAgbXVsdGktYnl0ZTogYWZ0ZXIgc2V0dGluZyAnZW5jb2RpbmcnIHRoZSB3aW5kb3cgdGl0bGUgbWlnaHQgYmUKCSAgICB3cm9uZy4KU29sdXRpb246ICAgRm9yY2UgcmVzZXR0aW5nIHRoZSB0aXRsZS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMWEuMDA3ClByb2JsZW06ICAgIEZpbGV0eXBlIGRldGVjdGlvbiBmb3IgIiouaW5jIiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIFVzZSBhICI6bGV0IiBjb21tYW5kLiAoRGF2aWQgU2Nod2Vpa2VydCkKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4xYS4wMDggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQUNMIGRldGVjdGlvbiBmb3IgbmV0d29yayBzaGFyZXMgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSB0cmFpbGluZyAoYmFjaylzbGFzaCBpbiB0aGUgcm9vdCBwYXRoLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xYS4wMDkKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiXEA8PSIgb3IgIlxAPCEiIGluIGEgcGF0dGVybiwgYSAiXDEiIG1heSByZWZlciB0byBhICgpCgkgICAgcGFydCB0aGF0IGZvbGxvd3MsIGJ1dCBpdCBnZW5lcmF0ZXMgYW4gZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgQWxsb3cgYSBmb3J3YXJkIHJlZmVyZW5jZSB3aGVuIHRoZXJlIGlzIGEgZm9sbG93aW5nICJcQDw9IiBvcgoJICAgICJcQDwhIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9wYXR0ZXJuLnR4dCwgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjFhLjAxMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6aGVscCIgYW5kIG9wZW5pbmcgYSBuZXcgd2luZG93LCB0aGUgYWx0ZXJuYXRlIGZpbGUKCSAgICBpc24ndCBzZXQuClNvbHV0aW9uOiAgIFNldCB0aGUgYWx0ZXJuYXRlIGZpbGUgdG8gdGhlIHByZXZpb3VzbHkgZWRpdGVkIGZpbGUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xYS4wMTEKUHJvYmxlbTogICAgR1RLOiAiOnNldCBjbz03NyIsIGNoYW5nZSB3aWR0aCB3aXRoIHRoZSBtb3VzZSwgIjpzZXQgY289NzciCgkgICAgZG9lc24ndCByZXNpemUgdGhlIHdpbmRvdy4gKERhcnJlbiBIaWViZXJ0KQpTb2x1dGlvbjogICBTZXQgdGhlIGZvcm0gc2l6ZSBhZnRlciBoYW5kbGluZyBhIHJlc2l6ZSBldmVudC4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4xYS4wMTIKUHJvYmxlbTogICAgR1RLOiBUaGUgZmlsZSBicm93c2VyIGFsd2F5cyByZXR1cm5zIGEgZnVsbCBwYXRoLiAoTG9obmVyKQpTb2x1dGlvbjogICBTaG9ydGVuIHRoZSBmaWxlIG5hbWUgaWYgcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4xYS4wMTMKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiPX53b3JkIiBpbiAnY2lua2V5cycgb3IgJ2luZGVudGtleXMnLCB0aGUgY2FzZSBvZiB0aGUKCSAgICBsYXN0IGNoYXJhY3RlciBvZiB0aGUgd29yZCBpc24ndCBpZ25vcmVkLiAoUmF1bCBTZWd1cmEgQWNldmVkbykKU29sdXRpb246ICAgSWdub3JlIGNhc2Ugd2hlbiBjaGVja2luZyB0aGUgbGFzdCB0eXBlZCBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xYS4wMTQKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4xYS4wMDYgY2FuJ3QgY29tcGlsZSB3aXRob3V0IHRoZSB0aXRsZSBmZWF0dXJlLgpTb2x1dGlvbjogICBBZGQgYW4gI2lmZGVmLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xYS4wMTUKUHJvYmxlbTogICAgTVMtV2luZG93czogV2hlbiBleHBhbmRpbmcgYSBmaWxlIG5hbWUgdGhhdCBjb250YWlucyBhICdbJyBvciAneycKCSAgICBhbiBleHRyYSBiYWNrc2xhc2ggaXMgaW5zZXJ0ZWQuIChSYXVsIFNlZ3VyYSBBY2V2ZWRvKQpTb2x1dGlvbjogICBBdm9pZCBhZGRpbmcgdGhlIGJhY2tzbGFzaC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xYS4wMTYKUHJvYmxlbTogICAgQ29tcGxldGlvbiBhZnRlciAiOmxhbmd1YWdlIiBkb2Vzbid0IGluY2x1ZGUgInRpbWUiLiAoUmF1bCBTZWd1cmEKCSAgICBBY2V2ZWRvKQpTb2x1dGlvbjogICBBZGQgdGhlIGFsdGVybmF0aXZlIHRvIHRoZSBjb21wbGV0aW9ucy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xYS4wMTcKUHJvYmxlbTogICAgQ2xpY2tpbmcgdGhlIG1vdXNlIGluIHRoZSB0b3Agcm93IG9mIGEgd2luZG93IHdoZXJlIHRoZSBmaXJzdCBsaW5lCgkgICAgZG9lc24ndCBmaXQgbW92ZXMgdGhlIGN1cnNvciB0byB0aGUgd3JvbmcgY29sdW1uLgpTb2x1dGlvbjogICBBZGQgdGhlIHNraXBjb2wgYWxzbyBmb3IgdGhlIHRvcCByb3cgb2YgYSB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMWEuMDE4ClByb2JsZW06ICAgIFdoZW4gJ3Njcm9sbG9mZicgaXMgb25lIGFuZCB0aGUgd2luZG93IGhlaWdodCBpcyBvbmUsICJnaiIgY2FuIHB1dAoJICAgIHRoZSBjdXJzb3IgYWJvdmUgdGhlIHdpbmRvdy4gKFJhdWwgU2VndXJhIEFjZXZlZG8pClNvbHV0aW9uOiAgIERvbid0IGxldCBza2lwY29sIGJlY29tZSBiaWdnZXIgdGhhbiB0aGUgY3Vyc29yIGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjFhLjAxOQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgY29tcG9zaW5nIGNoYXJhY3RlciBvbiB0b3Agb2YgYW4gQVNDSUkgY2hhcmFjdGVyLCB0aGUKCSAgICAibCIgY29tbWFuZCBjbGVhcnMgdGhlIGNvbXBvc2luZyBjaGFyYWN0ZXIuICBPbmx5IHdoZW4gJ3J1bGVyJyBhbmQKCSAgICAnc2hvd2NtZCcgYXJlIG9mZi4gKFJhcGhhZWwgRmlua2VsKQpTb2x1dGlvbjogICBEb24ndCBtb3ZlIHRoZSBjdXJzb3IgYnkgZGlzcGxheWluZyBjaGFyYWN0ZXJzIHdoZW4gdGhlcmUgYXJlCgkgICAgY29tcG9zaW5nIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjFhLjAyMApQcm9ibGVtOiAgICBHVEs6IGFmdGVyIHBhdGNoIDYuMWEuMDExIHJlc2l6aW5nIHdpdGggdGhlIG1vdXNlIGRvZXNuJ3QgYWx3YXlzCgkgICAgd29yayB3ZWxsIGZvciBzbWFsbCBzaXplcy4gKEFkcmllbiBCZWF1KQpTb2x1dGlvbjogICBVc2UgYW5vdGhlciB3YXkgdG8gYXZvaWQgdGhlIHByb2JsZW0gd2l0aCAiOnNldCBjbz03NyIuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMWEuMDIxClByb2JsZW06ICAgIFNldmVyYWwgU3ludGF4IG1lbnUgZW50cmllcyBhcmUgd3Jvbmcgb3IgY29uZnVzaW5nLgpTb2x1dGlvbjogICBSZXBocmFzZSBhbmQgY29ycmVjdCB0aGUgbWVudSBlbnRyaWVzLiAoQWRyaWVuIEJlYXUpCkZpbGVzOgkgICAgcnVudGltZS9tYWtlbWVudS52aW0sIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMWEuMDIyClByb2JsZW06ICAgIEEgdGFncyBmaWxlIG1pZ2h0IGJlIHVzZWQgdHdpY2Ugb24gY2FzZSBpbnNlbnNpdGl2ZSBzeXN0ZW1zLgoJICAgIChSaWNrIFN3YW50b24pClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgc2FtZSBmaWxlIG5hbWUgdHdpY2UgaW4gdGhlIGRlZmF1bHQgZm9yIHRoZSAndGFncycKCSAgICBvcHRpb24uICBJZ25vcmUgY2FzZSB3aGVuIGNvbXBhcmluZyBuYW1lcyBvZiBhbHJlYWR5IHZpc2l0ZWQKCSAgICBmaWxlcy4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjFhLjAyMwpQcm9ibGVtOiAgICBXaGVuIHN0YXJ0aW5nIHRoZSBHVUkgZ2V0ICJDIiBjaGFyYWN0ZXJzIGVjaG9lZCBpbiB0aGUgdGVybWluYWwuClNvbHV0aW9uOiAgIERvbid0IHRyeSBzZW5kaW5nIGEgY2xlYXItc2NyZWVuIGNvbW1hbmQgd2hpbGUgdGhlIEdVSSBpcyBzdGFydGluZwoJICAgIHVwLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xYS4wMjQKUHJvYmxlbTogICAgSW4gb3RoZXIgZWRpdG9ycyBDVFJMLUYgaXMgb2Z0ZW4gdXNlZCBmb3IgYSBmaW5kIGRpYWxvZy4KU29sdXRpb246ICAgSW4gZXZpbSB1c2UgQ1RSTC1GIGZvciB0aGUgZmluZCBkaWFsb2cuCkZpbGVzOgkgICAgcnVudGltZS9ldmltLnZpbQoKUGF0Y2ggNi4xYS4wMjUKUHJvYmxlbTogICAgVGhlIGNob2ljZXMgZm9yIHRoZSBmaWxlZm9ybWF0IGRpYWxvZyBjYW4ndCBiZSB0cmFuc2xhdGVkLgpTb2x1dGlvbjogICBBZGQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9jaG9pY2VzLiAoQWRyaWVuIEJlYXUpCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xYS4wMjYKUHJvYmxlbTogICAgSW5kZW50aW5nIEphdmEgZmlsZXMgaXMgd3Jvbmcgd2l0aCAidGhyb3dzIiwgImV4dGVuZHMiIGFuZAoJICAgICJpbXBsZW1lbnRzIiBjbGF1c2VzLgpTb2x1dGlvbjogICBVcGRhdGUgdGhlIEphdmEgaW5kZW50IHNjcmlwdC4KRmlsZXM6CSAgICBydW50aW1lL2luZGVudC9qYXZhLnZpbQoKUGF0Y2ggNi4xYS4wMjcKUHJvYmxlbTogICAgQSBmZXcgU3ludGF4IG1lbnUgZW50cmllcyBtaXNzaW5nIG9yIGluY29ycmVjdC4KU29sdXRpb246ICAgQWRkIGFuZCBjb3JyZWN0IHRoZSBtZW51IGVudHJpZXMuIChBZHJpZW4gQmVhdSkKCSAgICBTaG9ydGVuIGEgZmV3IG1lbnVzIHRvIGF2b2lkIHRoZXkgYmVjb21lIHRvbyBsb25nLgpGaWxlczoJICAgIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjFhLjAyOApQcm9ibGVtOiAgICBYSU06IHByb2JsZW1zIHdpdGggZmVlZGJhY2sgYW5kIHNvbWUgaW5wdXQgbWV0aG9kcy4KU29sdXRpb246ICAgVXNlIGljb252IGZvciBjYWxjdWxhdGluZyB0aGUgY2VsbHMuICBSZW1vdmUgdGhlIHF1ZXVlIGZvcgoJICAgIGtleV9wcmVzc19ldmVudCBvbmx5IHdoZW4gdGV4dCB3YXMgY2hhbmdlZC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvbWJ5dGUuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjFhLjAyOQpQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjFhLjAyOCBjYW4ndCBjb21waWxlIEdUSyB2ZXJzaW9uIHdpdGggWElNIGJ1dAoJICAgIHdpdGhvdXQgbXVsdGktYnl0ZSBjaGFycy4KU29sdXRpb246ICAgQWRkIGFuICNpZmRlZi4gKEFzY2h3aW4gTWFyc21hbikKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xYS4wMzAKUHJvYmxlbTogICAgV2l0aCBkb3VibGUtYnl0ZSBlbmNvZGluZ3MgdG91cHBlcigpIGFuZCB0b2xvd2VyKCkgbWF5IGhhdmUgd3JvbmcKCSAgICByZXN1bHRzLgpTb2x1dGlvbjogICBTa2lwIGRvdWJsZS1ieXRlIGNoYXJhY3RlcnMuIChFcmljIExvbmcpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xYS4wMzEKUHJvYmxlbTogICAgQWNjZXNzaW5nIHRoZSAnYmFsbG9vbmRlbGF5JyB2YXJpYWJsZSBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgTWFrZSB0aGUgdmFyaWFibGUgZm9yICdiYWxsb29uZGVsYXknIGEgbG9uZy4gKE9sYWYgU2VpYmVydCkKRmlsZXM6CSAgICBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMWEuMDMyIChleHRyYSkKUHJvYmxlbTogICAgU29tZSBtZW51IGZpbGVzIHVzZWQgYSB3cm9uZyBlbmNvZGluZyBuYW1lIGZvciAic2NyaXB0ZW5jb2RpbmciLgpTb2x1dGlvbjogICBNb3ZlIHRoZSB0cmFuc2xhdGlvbnMgdG8gYSBzZXBhcmF0ZSBmaWxlLCB3aGljaCBpcyBzb3VyY2VkIGFmdGVyCgkgICAgc2V0dGluZyAic2NyaXB0ZW5jb2RpbmciLgoJICAgIEFsc28gYWRkIEN6ZWNoIG1lbnUgdHJhbnNsYXRpb25zIGluIEFTQ0lJIGFuZCB1cGRhdGUgdGhlIG90aGVyCgkgICAgZW5jb2RpbmdzLgpGaWxlczoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2NzX2N6Lmlzb184ODU5LTEudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2NzX2N6Lmlzb184ODU5LTIudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2N6ZWNoX2N6ZWNoX3JlcHVibGljLjEyNTAudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2N6ZWNoX2N6ZWNoX3JlcHVibGljLjEyNTIudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2N6ZWNoX2N6ZWNoX3JlcHVibGljLmFzY2lpLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9kZV9kZS5pc29fODg1OS0xLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9kZV9kZS5sYXRpbjEudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2ZyX2ZyLmlzb184ODU5LTEudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2ZyX2ZyLmxhdGluMS52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfZnJlbmNoX2ZyYW5jZS4xMjUyLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9nZXJtYW5fZ2VybWFueS4xMjUyLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9qYV9qcC5ldWMtanAudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2phX2pwLnV0Zi04LnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9qYXBhbmVzZV9qYXBhbi45MzIudmltCgpQYXRjaCA2LjFhLjAzMwpQcm9ibGVtOiAgICBYSU06IGRvZXNuJ3QgcmVzZXQgaW5wdXQgY29udGV4dC4KU29sdXRpb246ICAgY2FsbCB4aW1fcmVzZXQoKSB3aXRoIGltX3NldF9hY3RpdmUoRkFMU0UpLiAoVGFrdWhpcm8gTmlzaGlva2EpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMWEuMDM0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFRoZSBBQ0wgY2hlY2tzIGZvciBhIHJlYWRvbmx5IGZpbGUgc3RpbGwgZG9uJ3Qgd29yayB3ZWxsLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIEFDTCBjaGVja3MsIGdvIGJhY2sgdG8gaG93IGl0IHdvcmtlZCBpbiBWaW0gNi4wLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjFhLjAzNQpQcm9ibGVtOiAgICBtdWx0aS1ieXRlOiBXaGVuIHVzaW5nICI6c2giIGluIHRoZSBHVUksIHR5cGVkIGFuZCBkaXNwbGF5ZWQKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgYXJlIG5vdCBoYW5kbGVkIGNvcnJlY3RseS4KU29sdXRpb246ICAgRGVhbCB3aXRoIG11bHRpLWJ5dGUgY2hhcmFjdGVycyB0byBhbmQgZnJvbSB0aGUgc2hlbGwuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykgIEFsc28gaGFuZGxlIFVURi04IGNvbXBvc2luZyBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMWEuMDM2ClByb2JsZW06ICAgIEdUSzogdGhlIHNhdmUteW91cnNlbGYgZXZlbnQgd2FzIG5vdCBoYW5kbGVkLgpTb2x1dGlvbjogICBDYXRjaCB0aGUgc2F2ZS15b3Vyc2VsZiBldmVudCBhbmQgcHJlc2VydmUgc3dhcCBmaWxlcy4gKE5laWwgQmlyZCkKRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4xYS4wMzcKUHJvYmxlbTogICAgVGhlIE1TLVdpbmRvd3Mga2V5IG1hcHBpbmcgZG9lc24ndCBpbmNsdWRlIENUUkwtUyBmb3Igc2F2aW5nLgoJICAgIChWbGFkIFNhbmRyaW5pKQpTb2x1dGlvbjogICBNYXAgQ1RSTC1TIHRvICI6dXBkYXRlIi4KRmlsZXM6CSAgICBydW50aW1lL21zd2luLnZpbQoKUGF0Y2ggNi4xYS4wMzgKUHJvYmxlbTogICAgU29sYXJpczogSW5jbHVkaW5nIGJvdGggc3lzL3N5c2N0bC5oIGFuZCBzeXMvc3lzaW5mby5oIGRvZXNuJ3QKCSAgICB3b3JrLiAoQW50b25pbyBDb2xvbWJvKQpTb2x1dGlvbjogICBEb24ndCBpbmNsdWRlIHN5cy9zeXNpbmZvLmggd2hlbiBub3QgY2FsbGluZyBzeXNpbmZvKCkuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xYS4wMzkKUHJvYmxlbTogICAgTm90IGFsbCB2aXN1YWwgYmFzaWMgZmlsZXMgYXJlIHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIEFkZCBjaGVja3MgdG8gY2F0Y2ggKi5jdGwgZmlsZXMuIChSYXVsIFNlZ3VyYSBBY2V2ZWRvKQpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltCgpQYXRjaCA2LjFhLjA0MApQcm9ibGVtOiAgICBBICoucGwgZmlsZSBpcyByZWNvZ25pemVkIGFzIFBlcmwsIGJ1dCBpdCBjb3VsZCBiZSBhIHByb2xvZyBmaWxlLgpTb2x1dGlvbjogICBDaGVjayB0aGUgZmlyc3Qgbm9uLWVtcHR5IGxpbmUuIChLb250cmEgR2VyZ2VseSkKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4xYS4wNDEKUHJvYmxlbTogICAgV2hlbiBwcmVzc2luZyB0aGUgbGVmdCBtb3VzZSBidXR0b24gaW4gdGhlIGNvbW1hbmQgbGluZSBhbmQgdGhlbQoJICAgIG1vdmluZyB0aGUgbW91c2UgdXB3YXJkcywgbmVhcmx5IGFsbCB0aGUgdGV4dCBpcyBzZWxlY3RlZC4KU29sdXRpb246ICAgRG9uJ3QgdHJ5IGV4dGVuZGluZyBhIG1vZGVsZXNzIHNlbGVjdGlvbiB3aGVuIHRoZXJlIGlzbid0IG9uZS4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4xYS4wNDIKUHJvYmxlbTogICAgV2hlbiBtZXJnaW5nIGZpbGVzLCAiOmRpZmZwdXQiIGFuZCAiOmRpZmZnZXQiIGFyZSB1c2VkIGEgbG90LCBidXQKCSAgICB0aGV5IHJlcXVpcmUgYSBsb3Qgb2YgdHlwaW5nLgpTb2x1dGlvbjogICBBZGQgImRwIiBmb3IgIjpkaWZmcHV0IiBhbmQgImRvIiBmb3IgIjpkaWZmZ2V0Ii4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9kaWZmLnR4dCwgc3JjL2RpZmYuYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vZGlmZi5wcm8KCgpQYXRjaCA2LjFiLjAwMSAoZXh0cmEpClByb2JsZW06ICAgIENoZWNraW5nIGZvciB3aWxkY2FyZHMgaW4gYSBwYXRoIGRvZXMgbm90IGhhbmRsZSBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVycyB3aXRoIGEgdHJhaWwgYnl0ZSB3aGljaCBpcyBhIHdpbGRjYXJkLgpTb2x1dGlvbjogICBIYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGNvcnJlY3RseS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX21hYy5jLCBzcmMvb3NfbXNkb3MuYywgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xYi4wMDIKUHJvYmxlbTogICAgQSByZWdleHAgdGhhdCBlbmRzIGluICJceyIgaXMgbm90IGZsYWdnZWQgYXMgYW4gZXJyb3IuICBNYXkgY2F1c2UKCSAgICBhIHN0YWNrIG92ZXJmbG93IHdoZW4gJ2luY3NlYXJjaCcgaXMgc2V0LiAoR2VyaGFyZCBIb2NoaG9semVyKQpTb2x1dGlvbjogICBIYW5kbGUgYSBtaXNzaW5nICJ9IiBhcyBhbiBlcnJvci4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMWIuMDAzIChleHRyYSkKUHJvYmxlbTogICAgVGhlIFJJU0MgT1MgR1VJIGRvZXNuJ3QgY29tcGlsZS4KU29sdXRpb246ICAgSW5jbHVkZSBjaGFuZ2VzIHNpbmNlIFZpbSA1LjcuIChBbmR5IFdpbmdhdGUpCkZpbGVzOgkgICAgc3JjL01ha2Vfcm8ubWFrLCBzcmMvZ3VpX3Jpc2Nvcy5jLCBzcmMvb3NfcmlzY29zLmMsCgkgICAgc3JjL29zX3Jpc2Nvcy5oLCBzcmMvcHJvdG8vZ3VpX3Jpc2Nvcy5wcm8KClBhdGNoIDYuMWIuMDA0ClByb2JsZW06ICAgIGNvbCgiJz4iKSByZXR1cm5zIGEgbmVnYXRpdmUgbnVtYmVyIGZvciBsaW5ld2lzZSBzZWxlY3Rpb24uIChOZWlsCgkgICAgQmlyZCkKU29sdXRpb246ICAgRG9uJ3QgYWRkIG9uZSB0byBNQVhDT0wuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xYi4wMDUKUHJvYmxlbTogICAgVXNpbmcgYSBzZWFyY2ggcGF0dGVybiB0aGF0IGNhdXNlcyBhbiBvdXQtb2Ytc3RhY2sgZXJyb3Igd2hpbGUKCSAgICAnaGxzZWFyY2gnIGlzIHNldCBrZWVwcyBnaXZpbmcgdGhlIGhpdC1FbnRlciBwcm9tcHQuCgkgICAgQSBzZWFyY2ggcGF0dGVybiB0aGF0IHRha2VzIGEgbG9uZyB0aW1lIGRlbGF5cyB0eXBpbmcgd2hlbgoJICAgICdpbmNzZWFyY2gnIGlzIHNldC4KU29sdXRpb246ICAgU3RvcCAnaGxzZWFyY2gnIGhpZ2hsaWdodGluZyB3aGVuIHRoZSByZWdleHAgY2F1c2VzIGFuIGVycm9yLgoJICAgIFN0b3Agc2VhcmNoaW5nIGZvciAnaW5jc2VhcmNoJyB3aGVuIGEgY2hhcmFjdGVyIGlzIHR5cGVkLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9tZXNzYWdlLmMsIHNyYy9zY3JlZW4uYywgc3JjL3NlYXJjaC5jLAoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4xYi4wMDYKUHJvYmxlbTogICAgV2hlbiBlbnRlcmluZyBhIGNvbXBvc2luZyBjaGFyYWN0ZXIgb24gdGhlIGNvbW1hbmQgbGluZSB3aXRoCgkgICAgQ1RSTC1WLCB0aGUgdGV4dCBpc24ndCByZWRyYXduIGNvcnJlY3RseS4KU29sdXRpb246ICAgUmVkcmF3IHRoZSB0ZXh0IHVuZGVyIGFuZCBhZnRlciB0aGUgY3Vyc29yLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjFiLjAwNwpQcm9ibGVtOiAgICBXaGVuIHRoZSBjdXJzb3IgaXMgaW4gdGhlIHdoaXRlIHNwYWNlIGJldHdlZW4gdHdvIHNlbnRlbmNlcywgImRpcyIKCSAgICBkZWxldGVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGZvbGxvd2luZyBzZW50ZW5jZSwgImRhcyIKCSAgICBkZWxldGVzIGEgc3BhY2UgYWZ0ZXIgdGhlIHNlbnRlbmNlLgpTb2x1dGlvbjogICBCYWNrdXAgdGhlIGN1cnNvciBvbmUgY2hhcmFjdGVyIGluIHRoZXNlIHNpdHVhdGlvbnMuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjFiLjAwOApQcm9ibGVtOiAgICAqLnhzbCBmaWxlcyBhcmUgbm90IHJlY29nbml6ZWQgYXMgeHNsdCBidXQgeG1sLgoJICAgIE1vbmsgZmlsZXMgYXJlIG5vdCByZWNvZ25pemVkLgpTb2x1dGlvbjogICBEZWxldGUgdGhlIGR1cGxpY2F0ZSBsaW5lIGZvciAqLnhzbC4gKEpvaGFubmVzIFplbGxuZXIpCgkgICAgUmVjb2duaXplIG1vbmsgZmlsZXMuCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMWIuMDA5ClByb2JsZW06ICAgIENhbid0IGFsd2F5cyBjb21waWxlIHNtYWxsIGZlYXR1cmVzIGFuZCB0aGVuIGFkZGluZyBldmFsIGZlYXR1cmUsCgkgICAgInNhbmRib3giIGlzIHVuZGVmaW5lZC4gKEF4ZWwgS2llbGhvcm4pClNvbHV0aW9uOiAgIEFsd2F5cyBkZWZpbmUgInNhbmRib3giIHdoZW4gdGhlIGV2YWwgZmVhdHVyZSBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMWIuMDEwIChleHRyYSkKUHJvYmxlbTogICAgV2hlbiBjb21waWxpbmcgZ3ZpbWV4dC5jcHAgd2l0aCBNU1ZDIDQuMiBnZXQgYSBudW1iZXIgb2Ygd2FybmluZ3MuClNvbHV0aW9uOiAgIENoYW5nZSAidHJ1ZSIgdG8gIlRSVUUiLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgR3ZpbUV4dC9ndmltZXh0LmNwcAoKUGF0Y2ggNi4xYi4wMTEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIHZlcnkgbG9uZyBzdHJpbmcgZm9yIGNvbmZpcm0oKSwgY2FuJ3QgcXVpdCB0aGUKCSAgICBkaXNwbGF5aW5nIGF0IHRoZSBtb3JlIHByb21wdC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBKdW1wIHRvIHRoZSBlbmQgb2YgdGhlIG1lc3NhZ2UgdG8gc2hvdyB0aGUgY2hvaWNlcy4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjFiLjAxMgpQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBXaGVuICdzaG93YnJlYWsnIGlzIHNldCBhbmQgYSBkb3VibGUtd2lkZSBjaGFyYWN0ZXIKCSAgICBkb2Vzbid0IGZpdCBhdCB0aGUgcmlnaHQgd2luZG93IGVkZ2UgdGhlIGN1cnNvciBnZXRzIHN0dWNrIHRoZXJlLgoJICAgIFVzaW5nIGN1cnNvci1sZWZ0IGdldHMgc3R1Y2sgd2hlbiAndmlydHVhbGVkaXQnIGlzIHNldC4gIChFcmljCgkgICAgTG9uZykKU29sdXRpb246ICAgRml4IHRoZSB3YXkgdGhlIGV4dHJhICI+IiBjaGFyYWN0ZXIgaXMgY291bnRlZCB3aGVuICdzaG93YnJlYWsnIGlzCgkgICAgc2V0LiAgRG9uJ3QgY29ycmVjdCBjdXJzb3IgZm9yIHZpcnR1YWwgZWRpdGluZyBvbiBhIGRvdWJsZS13aWRlCgkgICAgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9lZGl0LmMKClBhdGNoIDYuMWIuMDEzClByb2JsZW06ICAgIEEgdXNlciBjb21tYW5kIHRoYXQgcGFydGx5IG1hdGNoZXMgd2l0aCBhIGJ1ZmZlci1sb2NhbCB1c2VyCgkgICAgY29tbWFuZCBhbmQgbWF0Y2hlcyBmdWxsIHdpdGggYSBnbG9iYWwgdXNlciBjb21tYW5kIHVubmVjZXNzYXJpbHkKCSAgICBnaXZlcyBhbiAnYW1iaWd1b3VzIGNvbW1hbmQnIGVycm9yLgpTb2x1dGlvbjogICBGaW5kIHRoZSBmdWxsIGdsb2JhbCBtYXRjaCBldmVuIGFmdGVyIGEgcGFydGx5IGxvY2FsIG1hdGNoLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjFiLjAxNApQcm9ibGVtOiAgICBFQkNESUM6IHN3aXRjaGluZyBtb3VzZSBldmVudHMgb2ZmIGNhdXNlcyBnYXJiYWdlIG9uIHNjcmVlbi4KCSAgICBQb3NpdGlvbmluZyB0aGUgY3Vyc29yIGluIHRoZSBHVUkgY2F1c2VzIGdhcmJhZ2UuClNvbHV0aW9uOiAgIEluc2VydCBhbiBFU0MgaW4gdGhlIHRlcm1pbmFsIGNvZGUuIChSYWxmIFNjaGFuZGwpCgkgICAgVXNlICJcYiIgaW5zdGVhZCBvZiAiXDAxMCIgZm9yIEtTX0xFLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMsIHNyYy90ZXJtLmMKClBhdGNoIDYuMWIuMDE1ClByb2JsZW06ICAgIFZpbXR1dG9yIGhhcyBhIHR5cG8uICBHZXQgYSB3YXJuaW5nIGZvciAidGVtcGZpbGUiIGlmIGl0CgkgICAgZG9lc24ndCBleGlzdC4KU29sdXRpb246ICAgTW92ZSBhIHF1b3RlIHRvIHRoZSBlbmQgb2YgYSBsaW5lLiAoTWF4IElzY2hlbmtvKQoJICAgIFVzZSAibWt0ZW1wIiBmaXJzdCwgbW9yZSBzeXN0ZW1zIGhhdmUgaXQuCkZpbGVzOgkgICAgc3JjL3ZpbXR1dG9yCgpQYXRjaCA2LjFiLjAxNgpQcm9ibGVtOiAgICBHVEs6IGxvYWRpbmcgYSBmb250c2V0IHRoYXQgd29ya3MgcGFydGx5LCBWaW0gbWlnaHQgaGFuZyBvciBjcmFzaC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCBjaGFyX3dpZHRoIGJlY29tZXMgemVyby4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4xYi4wMTcKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nICI6c2hlbGwiIGFuZCB0aGVyZSBpcyBhIGJlZXAsIG5vdGhpbmcgaGFwcGVucy4KU29sdXRpb246ICAgQ2FsbCB2aW1fYmVlcCgpIHRvIHByb2R1Y2UgdGhlIGJlZXAgZnJvbSB0aGUgc2hlbGwuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjFiLjAxOCAoZGVwZW5kcyBvbiA2LjFiLjAwNikKUHJvYmxlbTogICAgV2hlbiBlbnRlcmluZyB0aGUgZW5jcnlwdGlvbiBrZXksIHNwZWNpYWwga2V5cyBtYXkgc3RpbGwgcmV2ZWFsCgkgICAgdGhlIHR5cGVkIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIE1ha2Ugc3VyZSBzdGFycyBhcmUgdXNlZCBvciBub3RoaW5nIGlzIHNob3duIGluIGFsbCBjYXNlcy4KRmlsZXM6CSAgICBzcmMvZGlncmFwaC5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xYi4wMTkgKGRlcGVuZHMgb24gNi4xYi4wMDUpClByb2JsZW06ICAgIEEgc2VhcmNoIHBhdHRlcm4gdGhhdCB0YWtlcyBhIGxvbmcgdGltZSBzbG93cyBkb3duIHR5cGluZyB3aGVuCgkgICAgJ2luY3NlYXJjaCcgaXMgc2V0LgpTb2x1dGlvbjogICBQYXNzIFNFQVJDSF9QRUVLIHRvIGRvc2VhcmNoKCkuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMWIuMDIwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlIG1hdGNoaXQgcGx1Z2luLCAiJSIgZmluZHMgYSBtYXRjaCBvbiB0aGUgImVuZCIgb2YgYQoJICAgICI6c3ludGF4IHJlZ2lvbiIgY29tbWFuZCBpbiBWaW0gc2NyaXB0cy4KU29sdXRpb246ICAgU2tpcCBvdmVyICI6c3ludGF4IHJlZ2lvbiIgY29tbWFuZHMgYnkgc2V0dGluZyBiOm1hdGNoX3NraXAuCkZpbGVzOgkgICAgcnVudGltZS9mdHBsdWdpbi92aW0udmltCgpQYXRjaCA2LjFiLjAyMQpQcm9ibGVtOiAgICB3aGVuICdtb3VzZWZvY3VzJyBpcyBzZXQsIENUUkwtVyBDVFJMLV0gc29tZXRpbWVzIGRvZXNuJ3Qgd2FycCB0aGUKCSAgICBwb2ludGVyIHRvIHRoZSBuZXcgd2luZG93LiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIERvbid0IHJlc2V0IG5lZWRfbW91c2VfY29ycmVjdCB3aGVuIGNoZWNraW5nIHRoZSB0aW1lc3RhbXAgb2YgYQoJICAgIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjFiLjAyMgpQcm9ibGVtOiAgICBXaXRoIGxvdHMgb2YgZm9sZHMgImoiIGRvZXMgbm90IG9iZXkgJ3Njcm9sbG9mZicgcHJvcGVybHkuCgkgICAgKFNyaW5hdGggQXZhZGhhbnVsYSkKU29sdXRpb246ICAgR28gdG8gZW5kIG9mIHRoZSBmb2xkIGJlZm9yZSBjb3VudGluZyBjb250ZXh0IGxpbmVzLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMWIuMDIzClByb2JsZW06ICAgIE9uIE1TLVdpbmRvd3Mgc3lzdGVtKCkgbWF5IGNhdXNlIGNoZWNraW5nIHRpbWVzdGFtcHMsIGJlY2F1c2UgVmltCgkgICAgbG9vc2VzIGFuZCBnYWlucyBpbnB1dCBmb2N1cywgd2hpbGUgdGhpcyBkb2Vzbid0IGhhcHBlbiBvbiBVbml4LgpTb2x1dGlvbjogICBEb24ndCBjaGVjayB0aW1lc3RhbXBzIHdoaWxlIHN5c3RlbSgpIGlzIGJ1c3kuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9maWxlaW8uYywgc3JjL2dsb2JhbHMuaCwgc3JjL21pc2MxLmMKClBhdGNoIDYuMWIuMDI0IChleHRyYSkKUHJvYmxlbTogICAgR2V0dGV4dCAwLjExIGNvbXBsYWlucyB0aGF0ICJzamlzIiBpcyBub3QgYSBzdGFuZGFyZCBuYW1lLgpTb2x1dGlvbjogICBVc2UgImNwOTMyIiBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9wby9zamlzY29yci5jCgpQYXRjaCA2LjFiLjAyNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGNsb3NpbmcgZ3ZpbSB3aGlsZSBpdCBpcyBtaW5pbWl6ZWQgIGFuZCBoYXMgYSBjaGFuZ2VkCgkgICAgZmlsZSwgdGhlIGZpbGUtY2hhbmdlZCBkaWFsb2cgcG9wcyB1cCBpbiBhIGNvcm5lciBvZiB0aGUgc2NyZWVuLgpTb2x1dGlvbjogICBQdXQgdGhlIGRpYWxvZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4uCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xYi4wMjYKUHJvYmxlbTogICAgV2hlbiAnZGlmZm9wdCcgY29udGFpbnMgJ2l3aGl0ZScgYnV0IG5vdCAnaWNhc2UnOiBkaWZmZXJlbmNlcyBpbgoJICAgIGNhc2UgYXJlIG5vdCBoaWdobGlnaHRlZCBwcm9wZXJseS4gKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgRG9uJ3QgaWdub3JlIGNhc2Ugd2hlbiBpZ25vcmluZyB3aGl0ZSBzcGFjZSBkaWZmZXJlbmNlcy4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjFiLjAyNwpQcm9ibGVtOiAgICAidmltIC0tcmVtb3RlICsiIG1heSBjYXVzZSBhIGNyYXNoLgpTb2x1dGlvbjogICBDaGVjayBmb3IgbWlzc2luZyBmaWxlIG5hbWUgYXJndW1lbnQuIChNYXJ0aW4gS2FobGVydCkKRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjFiLjAyOCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjE2OiBDYW4ndCBjb21waWxlIGFmdGVyIHBhdGNoIDYuMWIuMDI1LgpTb2x1dGlvbjogICBBZGQgY29kZSBzcGVjaWZpY2FsbHkgZm9yIFdpbjE2LiAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xYi4wMjkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gYSBkaXJlY3Rvcnkgb24gYW4gTlRGUyBwYXJ0aXRpb24gaXMgcmVhZC9leGVjdXRlIChubwoJICAgIGRlbGV0ZSxtb2RpZnksd3JpdGUpIGFuZCB0aGUgZmlsZSBoYXMgbW9kaWZ5IHJpZ2h0cywgdHJ5aW5nIHRvCgkgICAgd3JpdGUgdGhlIGZpbGUgZGVsZXRlcyBpdC4gIE1ha2luZyB0aGUgZmlsZSByZWFkL3dyaXRlL2V4ZWN1dGUKCSAgICAobm90IGRlbGV0ZSkgc29sdmVzIGl0LiAoTWFyayBDYW51cCkKU29sdXRpb246ICAgVXNlIHRoZSBVbml4IGNvZGUgdG8gY2hlY2sgZm9yIGEgd3JpdGFibGUgZGlyZWN0b3J5LiAgSWYgbm90LCB0aGVuCgkgICAgbWFrZSBhIGJhY2t1cCBjb3B5IGFuZCBvdmVyd3JpdGUgdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjFiLjAzMCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogc21hbGwgbWlzdGFrZSBpbiB0aGUgYnVpbGQgc2NyaXB0IGFuZCBwcm90b3R5cGVzLgpTb2x1dGlvbjogICBGaXggdGhlIGJ1aWxkIHNjcmlwdCBhbmQgYWRkIHRoZSBwcm90b3R5cGVzLiAoQXhlbCBLaWVsaG9ybikKRmlsZXM6CSAgICBzcmMvb3NfbWFjLmJ1aWxkLCBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjFiLjAzMSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIEdVSTogIjpzZXQgZ3VpZm9udD0qIiBkb2Vzbid0IHNldCAnZ3VpZm9udCcgdG8gdGhlIHJlc3VsdGluZwoJICAgIGZvbnQgbmFtZS4gKFZsYWQgU2FuZHJpbmkpClNvbHV0aW9uOiAgIFB1dCB0aGUgY29kZSBiYWNrIGluIGd1aV9tY2hfaW5pdF9mb250KCkgdG8gZm9ybSB0aGUgZm9udCBuYW1lIG91dAoJICAgIG9mIHRoZSBsb2dmb250LgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMWIuMDMyClByb2JsZW06ICAgIEF0aGVuYTogU2V0dGluZyBhIGNvbG9yIHNjaGVtZSBiZWZvcmUgdGhlIEdVSSBoYXMgc3RhcnRlZCBjYXVzZXMgYQoJICAgIGNyYXNoLiAoVG9kZCBCbHVtZXIpClNvbHV0aW9uOiAgIERvbid0IHRyeSB1c2luZyBjb2xvciBuYW1lcyB0aGF0IGhhdmVuJ3QgYmVlbiBzZXQgeWV0LgpGaWxlczoJICAgIHNyYy9ndWlfYXRoZW5hLmMKClBhdGNoIDYuMWIuMDMzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBjb3VudCBhZnRlciBhICI6cyIgY29tbWFuZCBtYXkgZ2V0IG1sX2dldCBlcnJvcnMuCgkgICAgKERpZXRtYXIgTGFuZykKU29sdXRpb246ICAgQ2hlY2sgdGhhdCB0aGUgcmVzdWx0aW5nIHJhbmdlIGRvZXMgbm90IGdvIHBhc3QgdGhlIGVuZCBvZiB0aGUKCSAgICBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xYi4wMzQKUHJvYmxlbTogICAgQWZ0ZXIgc291cmNpbmcgbXN3aW4udmltLCB3aGVuIHVzaW5nIDxDLVMtUmlnaHQ+IGFmdGVyCgkgICAgYXV0by1pbmRlbnRpbmcgYW5kIHRoZW4gPERlbD4sIGdldCB3YXJuaW5nIGZvciBhbGxvY2F0aW5nCgkgICAgcmlkaWN1bG91cyBhbW91bnQgb2YgbWVtb3J5LiAoRGF2ZSBEZWxncmVjbykKU29sdXRpb246ICAgQWRqdXN0IHRoZSBzdGFydCBvZiB0aGUgVmlzdWFsIGFyZWEgd2hlbiBkZWxldGluZyB0aGUgYXV0by1pbmRlbnQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xYi4wMzUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBldmltLCBkcm9wcGluZyBhIGZpbGUgb24gVmltIGFuZCB0aGVuIGRvdWJsZSBjbGlja2luZwoJICAgIG9uIGEgd29yZCwgaXQgaXMgY2hhbmdlZCB0byAiaSIuIChNZXJsaW4gSGFuc2VuKQpTb2x1dGlvbjogICBSZXNldCBuZWVkX3N0YXJ0X2luc2VydG1vZGUgYWZ0ZXIgZWRpdGluZyB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpWRVJTSU9OIDYuMgkJCQkJCSp2ZXJzaW9uLTYuMioKClRoaXMgc2VjdGlvbiBpcyBhYm91dCBpbXByb3ZlbWVudHMgbWFkZSBiZXR3ZWVuIHZlcnNpb24gNi4xIGFuZCA2LjIuCgpUaGlzIGlzIG1haW5seSBhIGJ1Zy1maXggcmVsZWFzZS4gIFRoZXJlIGFyZSBhbHNvIGEgZmV3IG5ldyBmZWF0dXJlcy4KCk1haW4gbmV3IGZlYXR1cmVzOgotIFN1cHBvcnQgZm9yIEdUSyAyLiAoRGFuaWVsIEVsc3RuZXIpCi0gU3VwcG9ydCBmb3IgZWRpdGluZyBBcmFiaWMgdGV4dC4gKE5hZGltIFNoYWlrbGkgJiBJc2FtIEJheWF6aWRpKQotICI6dHJ5IiBjb21tYW5kIGFuZCBleGNlcHRpb24gaGFuZGxpbmcuIChTZXJ2YXRpdXMgQnJhbmR0KQotIFN1cHBvcnQgZm9yIHRoZSBuZVh0YXcgR1VJIHRvb2xraXQgKG1vc3RseSBsaWtlIEF0aGVuYSkuIChBbGV4ZXkgRnJvbG9mZikKLSBDc2NvcGUgc3VwcG9ydCBmb3IgV2luMzIuIChLaG9yZXYgU2VyZ2V5KQotIFN1cHBvcnQgZm9yIFBvc3RTY3JpcHQgcHJpbnRpbmcgaW4gdmFyaW91cyA4LWJpdCBlbmNvZGluZ3MuIChNaWtlIFdpbGxpYW1zKQoKCkNoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNi4yKgotLS0tLS0tCgpSZW1vdmVkIHRoZSBzY2hlbWUgaW5kZW50IGZpbGUsIHRoZSBpbnRlcm5hbCBMaXNwIGluZGVudGluZyB3b3JrcyB3ZWxsIG5vdy4KCk1vdmVkIHRoZSBHdmltRVh0LCBPbGVWaW0gYW5kIFZpc1ZpbSBkaXJlY3RvcmllcyBpbnRvIHRoZSAic3JjIiBkaXJlY3RvcnkuClRoaXMgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggaG93IHh4ZCBpcyBoYW5kbGVkLgoKVGhlIFZpc1ZpbS5kbGwgZmlsZSBpcyBpbnN0YWxsZWQgaW4gdGhlIHRvcCBkaXJlY3RvcnksIG5leHQgdG8gZ3ZpbWV4dC5kbGwsCmluc3RlYWQgb2YgaW4gYSBzdWJkaXJlY3RvcnkgIlZpc1ZpbSIuICBGaXhlcyB0aGF0IE5TSVMgd2FzIHVuaW5zdGFsbGluZyBpdApmcm9tIHRoZSB3cm9uZyBkaXJlY3RvcnkuCgpSZW1vdmVkIHRoZSBhcnQgaW5kZW50IGZpbGUsIGl0IGRpZG4ndCBkbyBhbnl0aGluZy4KCnN1Ym1hdGNoKCkgcmV0dXJuZWQgbGluZSBicmVha3Mgd2l0aCBDUiBpbnN0ZWFkIG9mIExGLgoKQ2hhbmdlZCB0aGUgV2luMzIgTWFrZWZpbGVzIHRvIGJlY29tZSBtb3JlIHVuaWZvcm0gYW5kIGNvbXBpbGUgZ3ZpbWV4dC5kbGwuCihEYW4gU2hhcnApCgonY2luZGVudCc6IEFsaWduIGEgIi8vIiBjb21tZW50IHdpdGggYSAiLy8iIGNvbW1lbnQgaW4gYSBwcmV2aW91cyBsaW5lLgooSGVsbXV0IFN0aWVnbGVyKQoKUHJldmlvdXNseSBvbmx5IGZvciB4dGVybS1saWtlIHRlcm1pbmFscyBwYXJlbnQgd2lkZ2V0cyB3ZXJlIGZvbGxvd2VkIHRvIGZpbmQKdGhlIHRpdGxlIGFuZCBpY29uIGxhYmVsLiAgTm93IGRvIHRoaXMgZm9yIGFsbCB0ZXJtaW5hbCBlbXVsYXRvcnMuCgpNYWRlIGl0IHBvc3NpYmxlIHRvIHJlY29nbml6ZSBiYWNrc2xhc2hlcyBmb3IgIiUiIG1hdGNoaW5nLiAgVGhlICdNJyBmbGFnIGluCidjcG9wdGlvbnMnIGRpc2FibGVzIGl0LiAoSGFha29uIFJpaXNlcikKClJlbW92ZWQgdGhlIE1ha2VfdGNjLm1hayBtYWtlZmlsZSBmb3IgVHVyYm8gQy4gIEl0IGRpZG4ndCB3b3JrIGFuZCB3ZSBwcm9iYWJseQpjYW4ndCBtYWtlIGl0IHdvcmsgKHRoZSBjb21waWxlciBydW5zIG91dCBvZiBtZW1vcnkpLgoKRXZlbiB0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gcmVmZXJzIHRvIGtleXdvcmRzLCAiWyBDVFJMLUQiIHdhcyB1c2luZwonaXNpZGVudCcgdG8gZmluZCBtYXRjaGVzLiAgQ2hhbmdlZCBpdCB0byB1c2UgJ2lza2V5d29yZCcuICBBbHNvIGFwcGxpZXMgdG8Kb3RoZXIgY29tbWFuZHMgdGhhdCBzZWFyY2ggZm9yIGRlZmluZWQgd29yZHMgaW4gaW5jbHVkZWQgZmlsZXMgc3VjaCBhcwoiOmRzZWFyY2giLCAiW0QiIGFuZCAiW2QiLgoKTWFkZSAna2V5d29yZHByZycgZ2xvYmFsLWxvY2FsLiAoQ2hyaXN0aWFuIFJvYmluc29uKQoKRW5hYmxlZCB0aGUgTmV0YmVhbnMgaW50ZXJmYWNlIGJ5IGRlZmF1bHQuICBSZXZlcnNlZCB0aGUgY29uZmlndXJlIGFyZ3VtZW50CmZyb20gIi0tZW5hYmxlLW5ldGJlYW5zIiB0byAiLS1kaXNhYmxlLW5ldGJlYW5zIi4KCgpBZGRlZAkJCQkJCQkqYWRkZWQtNi4yKgotLS0tLQoKTmV3IG9wdGlvbnM6CgknYXJhYmljJwoJJ2FyYWJpY3NoYXBlJwoJJ2FtYml3aWR0aCcKCSdhdXRvY2hkaXInCgknY2FzZW1hcCcKCSdjb3B5aW5kZW50JwoJJ2NzY29wZXF1aWNrZml4JwoJJ3ByZXNlcnZlaW5kZW50JwoJJ3ByaW50ZW5jb2RpbmcnCgkncmlnaHRsZWZ0Y21kJwoJJ3Rlcm1iaWRpJwoJJ3Rvb2xiYXJpY29uc2l6ZScKCSd3aW5maXhoZWlnaHQnCgpOZXcga2V5bWFwczoKCVNlcmJpYW4gKEFsZWtzYW5kYXIgVmVzZWxpbm92aWMpCglDaGluZXNlIFBpbnlpbiAoRnJlZHJpayBSb3ViZXJ0KQoJRXNwZXJhbnRvIChBbnRvaW5lIEouIE1lY2hlbHluY2spCgpOZXcgc3ludGF4IGZpbGVzOgoJVmFsZ3JpbmQgKFJvZ2VyIEx1ZXRoaSkKCVNtYXJ0eSB0ZW1wbGF0ZSAoTWFuZnJlZCBTdGllbnN0cmEpCglNeVNRTCAoS2VubmV0aCBQcm9ub3ZpY2kpCglSb2NrTGludXggcGFja2FnZSBkZXNjcmlwdGlvbiAoUGlvdHIgRXNkZW4tVGVtcHNraSkKCU1NSVggKERpcmsgSHVlc2tlbikKCWdrcmVsbG1yYyAoRGF2aWQgTmVjYXMpCglUaWxkZSAoVG9iaWFzIFJ1bmR0cm9tKQoJTG9ndGFsayAoUGF1bG8gTW91cmEpCglQTFAgKEp1ZXJkIFdhYWxib2VyKQoJZnZ3bTJtNCAoRGF2aWQgTmVjYXMpCglJUGZpbHRlciAoSGVuZHJpayBTY2hvbHopCglmc3RhYiAoUmFkdSBEaW5laXUpCglRdWFrZSAoTmlrb2xhaSBXZWlidWxsKQoJT2NjYW0gKE1hcmlvIFNjaHdlaWdsZXIpCglscGMgKFNoaXpodSBQYW4pCglFeGltIGNvbmYgKERhdmlkIE5lY2FzKQoJRURJRiAoQXJ0ZW0gWmFua292aWNoKQoJLmN2c3JjIChOaWtvbGFpIFdlaWJ1bGwpCgkuZmV0Y2htYWlscmMgKE5pa29sYWkgV2VpYnVsbCkKCUdOVSBncGcgKE5pa29sYWkgV2VpYnVsbCkKCUdydWIgKE5pa29sYWkgV2VpYnVsbCkKCU1vZGNvbmYgKE5pa29sYWkgV2VpYnVsbCkKCVJDUyAoRG1pdHJ5IFZhc2lsaWV2KQoJQXJ0IChEb3JhaSBTaXRhcmFtKQoJUmVuZGVybWFuIEludGVyZmFjZSBCeXRlc3RyZWFtIChBbmRyZXcgSiBCcm9tYWdlKQoJTWFpbGNhcCAoRG91ZyBLZWFybnMpCglTdWJ2ZXJzaW9uIGNvbW1pdCBmaWxlIChEbWl0cnkgVmFzaWxpZXYpCglNaWNyb3NvZnQgSURMIChWYWRpbSBaZWl0bGluKQoJV2lsZFBhY2tldHMgRXRoZXJQZWVrIERlY29kZXIgKENocmlzdG9waGVyIFNoaW5uKQoJU3B5Y2UgKFJpbW9uIEJhcnIpCglSZXNvbHYuY29uZiAoUmFkdSBEaW5laXUpCglBNjUgKENsZW1lbnMgS2lyY2hnYXR0ZXJlcikKCXNzaGNvbmZpZyBhbmQgc3NoZGNvbmZpZyAoRGF2aWQgTmVjYXMpCglDaGVldGFoIGFuZCBIVE1MQ2hlZXRhaCAoTWF4IElzY2hlbmtvKQoJUGFja2V0IGZpbHRlciAoQ2FtaWVsIERvYmJlbGFhcikKCk5ldyBpbmRlbnQgZmlsZXM6CglFaWZmZWwgKERhdmlkIENsYXJrZSkKCVRpbGRlIChUb2JpYXMgUnVuZHRyb20pCglPY2NhbSAoTWFyaW8gU2Nod2VpZ2xlcikKCUFydCAoRG9yYWkgU2l0YXJhbSkKCVBIUCAoTWlsZXMgTG90dCkKCUR5bGFuIChCcmVudCBGdWxnaGFtKQoKTmV3IHR1dG9yIHRyYW5zbGF0aW9uczoKCVNsb3ZhayAoTHVib3MgQ2Vsa28pCglHcmVlayAoQ2hyaXN0b3MgS29udGFzKQoJR2VybWFuIChKb2FjaGltIEhvZm1hbm4pCglOb3J3ZWdpYW4gKNh5dmluZCBIb2xtKQoKTmV3IGZpbGV0eXBlIHBsdWdpbnM6CglPY2NhbSAoTWFyaW8gU2Nod2VpZ2xlcikKCUFydCAoRG9yYWkgU2l0YXJhbSkKCWFudC52aW0sIGFzcHZicy52aW0sIGNvbmZpZy52aW0sIGNzYy52aW0sIGNzaC52aW0sIGR0ZC52aW0sIGh0bWwudmltLAoJanNwLnZpbSwgcGFzY2FsLnZpbSwgcGhwLnZpbSwgc2dtbC52aW0sIHNoLnZpbSwgc3ZnLnZpbSwgdGNzaC52aW0sCgl4aHRtbC52aW0sIHhtbC52aW0sIHhzZC52aW0uICAoRGFuIFNoYXJwKQoKTmV3IGNvbXBpbGVyIHBsdWdpbnM6CglDaGVja3N0eWxlIChEb3VnIEtlYXJucykKCWc3NyAoUmFsZiBXaWxkZW5odWVzKQoJZm9ydHJhbiAoSm9oYW5uLUd1ZW50ZXIgU2ltb24pCglYbWxsaW50IChEb3VnIEtlYXJucykKCVJ1YnkgKFRpbSBIYW1tZXJxdWlzdCkKCU1vZGVsc2ltIHZjb20gKFBhdWwgQmFsZW1lKQoKTmV3IG1lbnUgdHJhbnNsYXRpb25zOgoJQnJhemlsaWFuIChKb3PpIGRlIFBhdWxhKQoJQnJpdGlzaCAoTWlrZSBXaWxsaWFtcykKCUtvcmVhbiBpbiBVVEYtOC4gKE5hbSBTdW5nSHl1bikKCU5vcndlZ2lhbiAo2Hl2aW5kIEhvbG0pCglTZXJiaWFuIChBbGVrc2FuZGFyIEplbGVuYWspCgpOZXcgbWVzc2FnZSB0cmFuc2xhdGlvbiBmb3IgTm9yd2VnaWFuLiAo2Hl2aW5kIEhvbG0pCgpOZXcgY29sb3Igc2NoZW1lOgoJZGVzZXJ0IChIYW5zIEZ1Z2FsKQoKQXJhYmljIHNwZWNpZmljIGZlYXR1cmVzLiAgJ2FyYWJpY3NoYXBlJywgJ3Rlcm1iaWRpJywgJ2FyYWJpYycgYW5kCidyaWdodGxlZnRjbWQnIG9wdGlvbnMuICAoTmFkaW0gU2hhaWtsaSAmIElzYW0gQmF5YXppZGkpCgpTdXBwb3J0IGZvciBuZVh0YXcgR1VJIHRvb2xraXQsIG1vc3RseSBsaWtlIEF0aGVuYS4gKEFsZXhleSBGcm9sb2ZmKQoKV2luMzI6IGNzY29wZSBzdXBwb3J0LiAoS2hvcmV2IFNlcmdleSkKClZNUzogdmFyaW91cyBpbXByb3ZlbWVudHMgdG8gZG9jdW1lbnRhdGlvbiBhbmQgbWFrZWZpbGVzLiAgKFpvbHRhbiBBcnBhZGZmeSkKCkFkZGVkICJ4IiBrZXkgdG8gdGhlIGV4cGxvcmVyIHBsdWdpbjogZXhlY3V0ZSB0aGUgZGVmYXVsdCBhY3Rpb24uIChZYXN1aGlybwpNYXRzdW1vdG8pCgpDb21waWxlIGd2aW1leHQuZGxsIHdpdGggTWluZ1cuIChSZW5lIGRlIFp3YXJ0KQoKQWRkIHRoZSAidG9odG1sLnZpbSIgcGx1Z2luLiAgSXQgZGVmaW5lcyB0aGUgIjpUT2h0bWwiIHVzZXIgY29tbWFuZCwgYW4gZWFzeQp3YXkgdG8gY29udmVydCB0ZXh0IHRvIEhUTUwuCgpBZGRlZCAiOnRyeSIgLyAiOmNhdGNoIiAvICI6ZmluYWxseSIgLyAiOmVuZHRyeSIgY29tbWFuZHMuICBBZGQgRTk5OSBudW1iZXJzCnRvIGFsbCBlcnJvciBtZXNzYWdlcywgc28gdGhhdCB0aGV5IGNhbiBiZSBjYXVnaHQgYnkgdGhlIG51bWJlci4KKFNlcnZhdGl1cyBCcmFuZHQpCk1vdmVkIHBhcnQgb2YgZXhfZG9jbWQuYyB0byB0aGUgbmV3IGV4X2V2YWwuYyBzb3VyY2UgZmlsZS4KCkluY2x1ZGUgc3VwcG9ydCBmb3IgR1RLKyAyLjIueCAoRGFuaWVsIEVsc3RuZXIpCkFkZHMgdGhlICJ+IiByZWdpc3RlcjogZHJhZyAmIGRyb3AgdGV4dC4KQWRkcyB0aGUgJ3Rvb2xiYXJpY29uc2l6ZScgb3B0aW9uLgpBZGQgLURhbGxvY2Egd2hlbiBydW5uaW5nIGxpbnQgdG8gd29yayBhcm91bmQgYSBwcm9ibGVtIHdpdGggYWxsb2NhKCkKcHJvdG90eXBlLgoKV2hlbiBzZWxlY3RpbmcgYW4gaXRlbSBpbiB0aGUgZXJyb3Igd2luZG93IHRvIGp1bXAgdG8sIHRha2Ugc29tZSBlZmZvcnQgdG8KZmluZCBhbiBvcmRpbmFyeSB3aW5kb3cgdG8gc2hvdyB0aGUgZmlsZSBpbiAobm90IGEgcHJldmlldyB3aW5kb3cpLgoKU3VwcG9ydCBmb3IgUG9zdFNjcmlwdCBwcmludGluZyBvZiB2YXJpb3VzIDgtYml0IGVuY29kaW5ncy4gKE1pa2UgV2lsbGlhbXMpCgppbnB1dGRpYWxvZygpIGFjY2VwdHMgYSB0aGlyZCBhcmd1bWVudCB0aGF0IGlzIHVzZWQgd2hlbiB0aGUgZGlhbG9nIGlzCmNhbmNlbGxlZC4gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIHNlZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBjYW5jZWxsaW5nIGFuZAplbnRlcmluZyBub3RoaW5nLgoKSW5jbHVkZWQgQWFwIHJlY2lwZXMuICBDYW4gYmUgdXNlZCB0byB1cGRhdGUgVmltIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiwKYnVpbGRpbmcgYW5kIGluc3RhbGxpbmcuCgoiLyIgb3B0aW9uIGluICdjaW5vcHRpb25zJzogZXh0cmEgaW5kZW50IGZvciBjb21tZW50IGxpbmVzLiAoSGVsbXV0IFN0aWVnbGVyKQoKVmltIHZhcmlhYmxlICJ2OnJlZ2lzdGVyIiBhbmQgZnVuY3Rpb25zIHNldHJlZygpLCBnZXRyZWcoKSBhbmQgZ2V0cmVndHlwZSgpLgooTWljaGFlbCBHZWRkZXMpCgoidiIgZmxhZyBpbiAnY3BvcHRpb25zJzogTGVhdmUgdGV4dCBvbiBzY3JlZW4gd2l0aCBiYWNrc3BhY2UgaW4gSW5zZXJ0IG1vZGUuCihQaGlsbGlwIFZhbmRyeSkKCkRvc2luc3QuZXhlIGFsc28gZmluZHMgZ3ZpbWV4dC5kbGwgaW4gdGhlICJHdmltRXh0IiBkaXJlY3RvcnkuICBVc2VmdWwgd2hlbgpydW5uaW5nIGluc3RhbGwgaW4gdGhlICJzcmMiIGRpcmVjdG9yeSBmb3IgdGVzdGluZy4KClN1cHBvcnQgdGFnIGZpbGVzIHRoYXQgd2VyZSBzb3J0ZWQgd2l0aCBjYXNlIGlnbm9yZWQuIChGbGVtbWluZyBNYWRzZW4pCgpXaGVuIGNvbXBsZXRpbmcgYSB3aWxkY2FyZCBpbiBhIGxlYWRpbmcgcGF0aCBlbGVtZW50LCBhcyBpbiAiLi4vKi9NYWtlZmlsZSIsCm9ubHkgdGhlIGxhc3QgcGFydCAoIk1ha2VmaWxlIikgd2FzIGxpc3RlZC4gIFN1cHBvcnQgY3VzdG9tIGRlZmluZWQKY29tbWFuZCBsaW5lIGNvbXBsZXRpb24uICAoRmxlbW1pbmcgTWFkc2VuKQoKQWxzbyByZWNvZ25pemUgInJ4dnQiIGFzIGFuIHh0ZXJtLWxpa2UgdGVybWluYWwuIChUb21hcyBTdHlibG8pCgpQcm9wZXIgWDExIHNlc3Npb24gbWFuYWdlbWVudC4gIEZpeGVzIHRoYXQgdGhlIFdNX1NBVkVfWU9VUlNFTEYgZXZlbnQgd2FzIG5vdAp1c2VkIGJ5IHBvcHVsYXIgZGVza3RvcHMuICAoTmVpbCBCaXJkKQpOb3QgdXNlZCBmb3IgR25vbWUgMiwgaXQgaGFzIGl0cyBvd24gaGFuZGxpbmcuCgpTdXBwb3J0IEJPUiwgREVCVUcgYW5kIFNQQVdOTyBhcmd1bWVudHMgZm9yIHRoZSBCb3JsYW5kIDMgTWFrZWZpbGUuIChXYWx0ZXIKQnJpc2NvZSkKClN1cHBvcnQgcGFnZSBicmVha3MgZm9yIHByaW50aW5nLiAgQWRkcyB0aGUgImZvcm1mZWVkIiBmaWVsZCBpbgoncHJpbnRvcHRpb25zJy4gIChNaWtlIFdpbGxpYW1zKQoKTWFjIE9TWDogbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydDogaWNvbnYgYW5kIGdldHRleHQuIChNdXJhb2thIFRhcm8sIEF4ZWwKS2llbGhvcm4pCgoiXFoiIGZsYWcgaW4gcGF0dGVybnM6IGlnbm9yZSBkaWZmZXJlbmNlcyBpbiBjb21iaW5pbmcgY2hhcmFjdGVycy4gKFJvbiBBYXJvbikKCkFkZGVkICdwcmVzZXJ2ZWluZGVudCcgYW5kICdjb3B5aW5kZW50JyBvcHRpb25zLiAgVGhleSB1c2UgZXhpc3Rpbmcgd2hpdGUKc3BhY2UgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIHVzaW5nIFRhYnMgYXMgbXVjaCBhcyBwb3NzaWJsZS4gKENocmlzIExlaXNobWFuKQoKVXBkYXRlZCBVbmljb2RlIHRhYmxlcyB0byBVbmljb2RlIDQuMC4gKFJhcGhhZWwgRmlua2VsKQoKU3VwcG9ydCBmb3IgdGhlIG1vdXNlIHdoZWVsIGluIHJ4dnQuIChBSURBIFNoaW5yYSkKCldpbjMyOiBBZGRlZCAiOjgiIGZpbGUgbW9kaWZpZXIgdG8gZ2V0IHNob3J0IGZpbGVuYW1lLiAgVGVzdDUwIHRlc3RzIHRoZSAiOjgiCmV4cGFuc2lvbiBvbiBXaW4zMiBzeXN0ZW1zLiAoTWljaGFlbCBHZWRkZXMpCgonY3Njb3BlcXVpY2tmaXgnIG9wdGlvbjogT3BlbiBxdWlja2ZpeCB3aW5kb3cgZm9yIENzY29wZSBjb21tYW5kcy4gIEFsc28KY2xlYW51cCB0aGUgY29kZSBmb3IgZ2l2aW5nIG1lc3NhZ2VzLiAgKEtob3JldiBTZXJnZXkpCgpHVUk6IFN1cHBvcnQgbW9yZSB0aGFuIDIyMiBjb2x1bW5zIGZvciBtb3VzZSBwb3NpdGlvbnMuCgoiOnN0b3BpbnNlcnQiIGNvbW1hbmQ6IERvbid0IHJldHVybiB0byBJbnNlcnQgbW9kZS4KCiJpbnRlcnJ1cHQiIGNvbW1hbmQgZm9yIGRlYnVnIG1vZGUuICBVc2VmdWwgZm9yIHNpbXVsYXRpbmcgQ1RSTC1DLiAoU2VydmF0aXVzCkJyYW5kdCkKCgpGaXhlZAkJCQkJCQkqZml4ZWQtNi4yKgotLS0tLQoKUmVtb3ZlZCBhIGZldyB1bnVzZWQgI2RlZmluZXMgZnJvbSBjb25maWcuaC5pbiwgb3Nfb3MyX2NmZy5oIGFuZCBvc192bXNfY29uZi5oLgoKVGhlIFZpbSBpY29ucyBpbiBQTkcgZm9ybWF0IGRpZG4ndCBoYXZlIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4gKEdyZWcKUm9lbG9mcykKCkZpeGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHNwZWxsaW5nIG1pc3Rha2VzIGluIHRoZSBkb2NzLiAoQWRyaSBWZXJob2VmKQoKVGhlICNkZWZpbmVzIGZvciBwcm90b3R5cGUgZ2VuZXJhdGlvbiB3ZXJlIGNhdXNpbmcgdHJvdWJsZS4gIENoYW5nZWQgdGhlbSB0bwp0eXBlZGVmcy4KCkEgbmV3IHZlcnNpb24gb2YgbGliaW50bC5oIHVzZXMgX19hc21fXywgd2hpY2ggY29uZnVzZXMgY3Byb3RvLiAgRGVmaW5lIGEKZHVtbXkgX19hc21fXyBtYWNyby4KCldoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgY2FuJ3QgbW92ZSB0byBoYWxmd2F5IGFuIHVucHJpbnRhYmxlIGNoYXJhY3Rlci4KQ3JpcHBsZXMgQ1RSTC1WIHNlbGVjdGlvbi4gKFRhcm8gTXVyYW9rYSkKQWxsb3cgbW92aW5nIHRvIGhhbGZ3YXkgYW4gdW5wcmludGFibGUgY2hhcmFjdGVyLiAgRG9uJ3QgbGV0IGdldHZ2Y29sKCkgY2hhbmdlCnRoZSBwb3MtPmNvbGFkZCBhcmd1bWVudC4KCldoZW4gYSB0YWIgd3JhcHMgdG8gdGhlIG5leHQgbGluZSwgJ2xpc3RjaGFycycgaXMgc2V0IGFuZCAnZm9sZGNvbHVtbicgaXMKbm9uLXplcm8sIG9ubHkgb25lIGNoYXJhY3RlciBvZiB0aGUgZm9sZGNvbHVtbiBpcyBoaWdobGlnaHRlZC4gKE11cmFva2EgVGFybykKCldoZW4gdXNpbmcgIjpjYXRjaCIgd2l0aG91dCBhbiBhcmd1bWVudCBWaW0gY3Jhc2hlcy4gKFlhc3VoaXJvIE1hdHN1bW90bykKV2hlbiBubyBhcmd1bWVudCBnaXZlbiB1c2UgdGhlICIuKiIgcGF0dGVybi4KCldpbjMyOiBXaGVuIGd2aW0uZXhlIGlzIHN0YXJ0ZWQgZnJvbSBhIHNob3J0Y3V0IHdpdGggdGhlIHdpbmRvdyBzdHlsZSBwcm9wZXJ0eQpzZXQgdG8gbWF4aW1pemUgVmltIGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIG1heGltaXplZCB3aW5kb3cuIChZYXN1aGlybwpNYXRzdW1vdG8pICBPcGVuIHRoZSB3aW5kb3cgd2l0aCB0aGUgZGVmYXVsdCBzaXplIGFuZCBkb24ndCBjYWxsIFNob3dXaW5kb3coKQphZ2FpbiB3aGVuIGl0J3MgYWxyZWFkeSB2aXNpYmxlLiAoSGVsbXV0IFN0aWVnbGVyKQoKZ3VpX2d0ay5jIHVzZWQgTUFYLCBidXQgaXQncyB1bmRlZmluZWQgdG8gYXZvaWQgYSBjb25mbGljdCB3aXRoIHN5c3RlbSBoZWFkZXIKZmlsZXMuCgpXaW4zMjogV2hlbiBjbG9zaW5nIGEgd2luZG93IGZyb20gYSBtYXBwaW5nIHNvbWUgcGl4ZWxzIHJlbWFpbiBvbiB0aGUKc3RhdHVzbGluZS4gKFlhc3VoaXJvIE1hdHN1bW90bykKCkEgY29sdW1uIG51bWJlciBpbiBhbiBlcnJvcmZvcm1hdCB0aGF0IGdvZXMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGxpbmUgbWF5CmNhdXNlIGEgY3Jhc2guCgoiOnRocm93ICd0ZXN0JyIgY3Jhc2hlcyBWaW0uIChZYXN1aGlybyBNYXRzdW1vdG8pCgpUaGUgZmlsZSBzZWxlY3RvcidzIHNjcm9sbGJhciBjb2xvcnMgYXJlIG5vdCBzZXQgYWZ0ZXIgZG9pbmcgYSAiOmhpIFNjcm9sbGJhcgpndWlmZz1jb2xvciIuICBBbmQgdGhlIGZpbGUgc2VsZWN0b3IncyBjb2xvcnMgYXJlIG5vdCBjaGFuZ2VkIGJ5IHRoZQpjb2xvcnNjaGVtZSBjb21tYW5kLiAgKERhdmlkIEhhcnJpc29uKQoKTW90aWY6IFdoZW4gY29tcGlsaW5nIHdpdGggRkVBVF9GT09URVIgZGVmaW5lZCwgdGhlIHRleHQgYXJlYSBnZXRzIGEgZmV3CnBpeGVscyBleHRyYSBzcGFjZSBvbiB0aGUgcmlnaHQuICBSZW1vdmUgdGhlIHNwZWNpYWwgY2FzZSBpbgpndWlfZ2V0X2Jhc2Vfd2lkdGgoKS4gKERhdmlkIEhhcnJpc29uKQoKVXNpbmcgQ1RSTC1SIENUUkwtUCBpbiBJbnNlcnQgbW9kZSBwdXRzIHRoZSAnXSBtYXJrIGluIHRoZSB3cm9uZyBwb3NpdGlvbi4KKEhlbG11dCBTdGllZ2xlcikKCldoZW4gJ2Zvcm1hdG9wdGlvbnMnIGluY2x1ZGVzICJhd2N0IiBhIG5vbi1jb21tZW50IHdhc24ndCBhdXRvLWZvcm1hdHRlZC4KClVzaW5nIGEgIi0tY21kIiBhcmd1bWVudCBtb3JlIHRoYW4gMTAgdGltZXMgY2F1c2VkIGEgY3Jhc2guCgpERUMgc3R5bGUgbW91c2Ugc3VwcG9ydCBkaWRuJ3Qgd29yayBpZiB0aGUgcGFnZSBmaWVsZCBpcyBub3QgZW1wdHkuCihVcmliYXJyaSkKCiJ2aW0gLWwgb25lIHR3byIgZGlkIG9ubHkgc2V0ICdsaXNwJyBpbiB0aGUgZmlyc3QgZmlsZS4gIFZpIGRvZXMgaXQgZm9yIGV2ZXJ5CmZpbGUuCgoiOnNldCB0dzwiIGRpZG4ndCB3b3JrLiAgV2FzIGNoZWNraW5nIGZvciAnXicgaW5zdGVhZCBvZiAnPCcuCgpJbiAiOmhhcmRjb3B5ID4gJS5wcyIgdGhlICIlIiB3YXMgbm90IGV4cGFuZGVkIHRvIHRoZSBjdXJyZW50IGZpbGVuYW1lLgoKTWFkZSAiOnJlZHJhdyIgYWxzbyB1cGRhdGUgdGhlIFZpc3VhbCBhcmVhLgoKV2hlbiBhIG5vdCBpbXBsZW1lbnRlZCBjb21tYW5kLCBzdWNoIGFzICI6cGVybCIsIGhhcyB3cm9uZyBhcmd1bWVudHMgdGhlIGxlc3MKaW1wb3J0YW50IGVycm9yIHdhcyByZXBvcnRlZCwgZ2l2aW5nIHRoZSB1c2VyIHRoZSBpZGVhIHRoZSBjb21tYW5kIGNvdWxkIHdvcmsuCgpPbiBub24tVW5peCBzeXN0ZW1zIGF1dG9jb21tYW5kcyBmb3Igd3JpdGluZyBkaWQgbm90IGF0dGVtcHQgYSBtYXRjaCB3aXRoIHRoZQpzaG9ydCBmaWxlIG5hbWUsIGNhdXNpbmcgYSBwYXR0ZXJuIGxpa2UgImEvYiIgdG8gZmFpbC4KClZNUzogZV9zY3JlZW5tb2RlIHdhcyBub3QgZGVmaW5lZCBhbmQgYSBmZXcgb3RoZXIgZml4ZXMgZm9yIFZNUy4gKFpvbHRhbgpBcnBhZGZmeSkKCnJlZHJhd19tc2coKSBkZXBlbmRlZCBvbiBGRUFUX0FSQUJJQyBpbnN0ZWFkIG9mIEZFQVRfUklHSFRMRUZULiAoV2FsdGVyCkJyaXNjb2UpCgpWYXJpb3VzIGNoYW5nZXMgZm9yIHRoZSBQQyBNYWtlZmlsZXMuIChXYWx0ZXIgQnJpc2NvZSkKClVzZSBfdHJ1ZW5hbWUoKSBpbnN0ZWFkIG9mIG91ciBvd24gY29kZSB0byBleHBhbmQgYSBmaWxlIG5hbWUgaW50byBhIGZ1bGwKcGF0aC4gKFdhbHRlciBCcmlzY29lKQoKRXJyb3IgaW4gZmlsZXR5cGUgY2hlY2sgZm9yIC9ldGMvbW9kdXRpbHMuIChMdWJvbWlyIEhvc3QpCgpDc2NvcGUgaW50ZXJmYWNlOiBhbGxvY2F0ZWQgYSBidWZmZXIgdG9vIHNtYWxsLgoKV2luMTY6IHJlbW92ZSBhIHRyYWlsaW5nIGJhY2tzbGFzaCBmcm9tIGEgcGF0aCB3aGVuIG9idGFpbmluZyB0aGUgcGVybWlzc2lvbgpmbGFncy4gKFZpbmNlIE5lZ3JpKQoKV2hlbiBzZWFyY2hpbmcgZm9yIHRhZ3Mgd2l0aCBjYXNlIGlnbm9yZWQgVmltIGNvdWxkIGhhbmcuCgpXaGVuIHNlYXJjaGluZyBkaXJlY3RvcmllcyB3aXRoIGEgc3RvcGRpciBjb3VsZCBnZXQgYSBjcmFzaC4gIERpZCBub3QKcmUtYWxsb2NhdGUgZW5vdWdoIG1lbW9yeS4gKFZpbmNlIE5lZ3JpKQoKQSB1c2VyIGNvbW1hbmQgbWF5IGNhdXNlIGEgY3Jhc2guICBEb24ndCB1c2UgdGhlIGNvbW1hbmQgaW5kZXggd2hlbiBpdCdzCm5lZ2F0aXZlLiAoVmluY2UgTmVncmkpCgpwdXRlbnYoKSBkaWRuJ3Qgd29yayBmb3IgTWluZ1cgYW5kIEN5Z3dpbi4gKERhbiBTaGFycCkKCk1hbnkgZnVuY3Rpb25zIHdlcmUgY29tbW9uIGJldHdlZW4gb3NfbXNkb3MuYyBhbmQgb3Nfd2luMTYuYy4gIFVzZSBvc19tc2Rvcy5jCmZvciBjb21waWxpbmcgdGhlIFdpbjE2IHZlcnNpb24gYW5kIHJlbW92ZSB0aGUgZnVuY3Rpb25zIGZyb20gb3Nfd2luMTYuYy4KKFZpbmNlIE5lZ3JpKQoKRm9yIHRlcm1pbmFscyB0aGF0IGJlaGF2ZSBsaWtlIGFuIHh0ZXJtIGJ1dCBkaWRuJ3QgaGF2ZSBhIG5hbWUgdGhhdCBpcwpyZWNvZ25pemVkLCB0aGUgd2luZG93IHRpdGxlIHdvdWxkIG5vdCBhbHdheXMgYmUgc2V0LgoKV2hlbiBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIG9mZiAiOmhhcmRjb3B5IiBjb3VsZCBzdGlsbCBhdHRlbXB0IHByaW50aW5nCmNvbG9ycy4KCkNyYXNoIHdoZW4gdXNpbmcgIjpjYXRjaCIgd2l0aG91dCBhbiBhcmd1bWVudC4gIChTZXJ2YXRpdXMgQnJhbmR0KQoKV2luMzI6ICI6biAjIiBkb3VibGVkIHRoZSBiYWNrc2xhc2hlcy4KCkZpeGVkIEFyYWJpYyBzaGFwaW5nIGZvciB0aGUgY29tbWFuZCBsaW5lLiAoTmFkaW0gU2hhaWtsaSkKCkF2b2lkIHNwbGl0dGluZyB1cCBhIHN0cmluZyBkaXNwbGF5ZWQgb24gdGhlIGNvbW1hbmQgbGluZSBpbnRvIGluZGl2aWR1YWwKY2hhcmFjdGVycywgaXQgYnJlYWtzIEFyYWJpYyBzaGFwaW5nLgoKVXBkYXRlZCBDeWd3aW4gYW5kIE1pbmdXIG1ha2VmaWxlcyB0byB1c2UgbW9yZSBkZXBlbmRlbmNpZXMuIChEYW4gU2hhcnApCgoyaHRtbC52aW0gZGlkbid0IHdvcmsgd2l0aCAnbm9tYWdpYycgc2V0LgoKV2hlbiBhIGxvY2FsIGFyZ3VtZW50IGxpc3QgaXMgdXNlZCBhbmQgZG9pbmcgIjpvbmx5IiBWaW0gY291bGQgY3Jhc2ggbGF0ZXIuCihNdXJhb2thIFRhcm8pCgpXaGVuIHVzaW5nICIlUCIgaW4gJ3N0YXR1c2xpbmUnIGFuZCB0aGUgZmlsbGNoYXIgaXMgIi0iLCBhIHBlcmNlbnRhZ2Ugb2YgMyUKY291bGQgcmVzdWx0IGluICItMyUiLiAgQWxzbyBhdm9pZCBjaGFuZ2luZyBhIHNwYWNlIGluc2lkZSBhIGZpbGVuYW1lIHRvIHRoZQpmaWxsIGNoYXJhY3Rlci4KCk1Td2luOiBIYW5kbGluZyBvZiBiYWNrc2xhc2hlcyBhbmQgZG91YmxlIHF1b3RlcyBmb3IgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwp3YXMgbm90IGxpa2Ugd2hhdCBvdGhlciBhcHBsaWNhdGlvbnMgZG8uICAoV2FsdGVyIEJyaXNjb2UpCgpUZXN0MzIgc29tZXRpbWVzIGRpZG4ndCB3b3JrLCBiZWNhdXNlIHRlc3QxMS5vdXQgd2FzIHdyaXR0ZW4gYXMgVEVTVDExLk9VVC4KCkF2b2lkIHBvaW50ZXIgY29udmVyc2lvbnMgd2FybmluZ3MgZm9yIEJvcmxhbmQgQyA1LjUgaW4gZG9zaW5zdC5jIGFuZAp1bmluc3RhbC5jLgoKTW9yZSBpbXByb3ZlbWVudHMgZm9yIE1ha2VfYmMzLm1hayBmaWxlLiAoV2FsdGVyIEJyaXNjb2UpCgpXaGVuICI6c3luIHN5bmMgbGluZWJyZWFrcz0xIiBpcyB1c2VkLCBlZGl0aW5nIHRoZSBmaXJzdCBsaW5lIGNhdXNlZCBhIHJlZHJhdwpvZiB0aGUgd2hvbGUgc2NyZWVuLgoKTWFraW5nIHRyYW5zbGF0ZWQgbWVzc2FnZXMgZGlkbid0IHdvcmssIGlmX3BlcmwueHMgd2Fzbid0IGZvdW5kLiAoVmxhZApTYW5kcmluaSkKCk1vdGlmIGFuZCBBdGhlbmE6IG1vdmluZyBWaW0gdG8gdGhlIGZvcmVncm91bmQgZGlkbid0IHVuaWNvbmlmeSBpdC4gIFVzZQpYTWFwUmFpc2VkKCkgaW5zdGVhZCBvZiBYUmFpc2VXaW5kb3coKS4gKFNyaWthbnRoIFNhbmthcmFuKQoKV2hlbiB1c2luZyAiOnB0YWciIGluIGEgd2luZG93IHdoZXJlICdzY3JvbGxiaW5kJyBpcyBzZXQgdGhlIHByZXZpZXcgd2luZG93CndvdWxkIGFsc28gaGF2ZSAnc2Nyb2xsYmluZCcgc2V0LiAgQWxzbyByZXNldCAnZm9sZGNvbHVtbicgYW5kICdkaWZmJy4KClZhcmlvdXMgY29tbWFuZHMgdGhhdCBzcGxpdCBhIHdpbmRvdyB0b29rIG92ZXIgJ3Njcm9sbGJpbmQnLCB3aGljaCBpcyBoYXJkbHkKZXZlciBkZXNpcmVkLiAgRXNwLiBmb3IgInE6IiBhbmQgIjpjb3BlbiIuICBNb3N0bHkgcmVzZXQgJ3Njcm9sbGJpbmQnIHdoZW4Kc3BsaXR0aW5nIGEgd2luZG93LgoKV2hlbiAnc2hlbGxzbGFzaCcgaXMgc2V0IGluIHRoZSB2aW1yYyBmaWxlIHRoZSBmaXJzdCBlbnRyeSBvZiAiOnNjcmlwdG5hbWVzIgp3b3VsZCBzdGlsbCBoYXZlIGJhY2tzbGFzaGVzLiAgRW50cmllcyBpbiB0aGUgcXVpY2tmaXggbGlzdCBjb3VsZCBhbHNvIGhhdmUKd3JvbmcgKGJhY2spc2xhc2hlcy4KCldpbjMyOiBwcmludGVyIGRpYWxvZyB0ZXh0cyB3ZXJlIG5vdCB0cmFuc2xhdGVkLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKV2hlbiB1c2luZyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIHdpdGggYSBLX1NQRUNJQUwgYnl0ZSBvciBhIHNwZWNpYWwga2V5IGNvZGUKd2l0aCAiLS1yZW1vdGUtc2VuZCIgdGhlIHJlY2VpdmVkIGJ5dGUgc2VxdWVuY2Ugd2FzIG1hbmdsZWQuICBQdXQgaXQgaW4gdGhlCnR5cGVhaGVhZCBidWZmZXIgaW5zdGVhZCBvZiB0aGUgaW5wdXQgYnVmZmVyLgoKV2luMzI6IFRoZSBjdXJzb3IgcG9zaXRpb24gd2FzIGluY29ycmVjdCBhZnRlciBjaGFuZ2luZyBjdXJzb3Igc2hhcGUuCihZYXN1aGlybyBNYXRzdW1vdG8pLgoKV2luMzI6IFdoZW4gJ2VuY29kaW5nJyBpcyBub3QgdGhlIGN1cnJlbnQgY29kZXBhZ2UgdGhlIHRpdGxlIGNvdWxkIG5vdCBiZSBzZXQKdG8gbm9uLWFzY2lpIGNoYXJhY3RlcnMuCgoidmltIC1kIHNjcDovL21hY2hpbmUvZmlsZTEgc2NwOi8vbWFjaGluZS9maWxlMiIgZGlkIG5vdCB3b3JrLCB0aGVyZSB3YXMgb25seQpvbmUgd2luZG93LiAgRml4ZWQgdGhlIG5ldHJ3IHBsdWdpbiBub3QgdG8gd2lwZSBvdXQgdGhlIGJ1ZmZlciBpZiBpdCBpcwpkaXNwbGF5ZWQgaW4gb3RoZXIgd2luZG93cy4KCiIvJCIgY2F1c2VkICJlIiBpbiBsYXN0IGNvbHVtbiBvZiBzY3JlZW4gdG8gZGlzYXBwZWFyLCBhIGhpZ2hsaWdodGVkIGJsYW5rIHdhcwpkaXNwbGF5ZWQgaW5zdGVhZC4KCiI6cy8gKlx6ZVxuLy9lIiByZW1vdmVkIHRoZSBsaW5lIGJyZWFrIGFuZCBpbnRyb2R1Y2VkIGFyYml0cmFyeSB0ZXh0LiAgV2FzCnVzaW5nIHRoZSBsaW5lIGNvdW50IGluY2x1ZGluZyB3aGF0IG1hdGNoZWQgYWZ0ZXIgdGhlICJcemUiLgoKVXNpbmcgdGhlICJjIiBmbGFnIHdpdGggIjpzIiBjaGFuZ2VkIHRoZSBiZWhhdmlvciB3aGVuIGEgbGluZSBicmVhayBpcwpyZXBsYWNlZCBhbmQgIlxAPD0iIGlzIHVzZWQuICBXaXRob3V0ICJjIiBhIGZvbGxvd2luZyBtYXRjaCB3YXMgbm90IGZvdW5kLgoKIjolcy9cdkFAPD1cbkJAPS8vZ2NlIiBnb3Qgc3R1Y2sgb24gIkFcbkIiIHdoZW4gZW50ZXJpbmcgIm4iLgoKVk1TOiBhZGQgSEFWRV9TVFJGVElNRSBpbiB0aGUgY29uZmlnIGZpbGUuIChab2x0YW4gQXJwYWRmZnkpCgpXaGVuIGEgZGVsZXRlIHByb21wdHMgaWYgYSBkZWxldGUgc2hvdWxkIGNvbnRpbnVlIHdoZW4geWFua2luZyBpcyBub3QKcG9zc2libGUsIHJlc3RvcmUgbXNnX3NpbGVudCBhZnRlcndhcmRzLgoKIjpzaWduIiBkaWQgbm90IGNvbXBsYWluIGFib3V0IGEgbWlzc2luZyBhcmd1bWVudC4KCldoZW4gYWRkaW5nIG9yIGRlbGV0aW5nIGEgc2lnbiAnaGxzZWFyY2gnIGhpZ2hsaWdodGluZyBjb3VsZCBkaXNhcHBlYXIuClVzZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbnMgZm9yIHVwZGF0aW5nIHNpZ25zLgoKT24gTVMtV2luZG93cyBOVCwgMksgYW5kIFhQIGRvbid0IHVzZSBjb21tYW5kLmNvbSBidXQgY21kLmV4ZSBmb3IgdGVzdGluZy4KTWFrZXMgdGhlIHRlc3RzIHdvcmsgb24gbW9yZSBzeXN0ZW1zLgoKSW4gdGhlIERPUyB0ZXN0cyBkb24ndCBjcmVhdGUgIi90bXAiIHRvIGF2b2lkIGFuIGVycm9yLgoKTWFjIGNsYXNzaWM6IFByb2JsZW1zIHdpdGggcmVhZGluZyBmaWxlcyB3aXRoIENSIHZzIENSL0xGLiAgUmVseSBvbiB0aGUKbGlicmFyeSB2ZXJzaW9uIG9mIGZnZXRzKCkgdG8gd29yayBjb3JyZWN0bHkgZm9yIE1ldHJvd2Vya3MgMi4yLiAoQXhlbApLaWVsaG9ybikKCldoZW4gdHlwaW5nIGEgcGFzc3dvcmQgYSAiKiIgd2FzIHNob3duIGZvciBlYWNoIGJ5dGUgaW5zdGVhZCBvZiBmb3IgZWFjaApjaGFyYWN0ZXIuICBBZGRlZCBtdWx0aS1ieXRlIGhhbmRsaW5nIHRvIGRpc3BsYXlpbmcgdGhlIHN0YXJzLiAoWWFzdWhpcm8KTWF0c3Vtb3RvKQoKV2hlbiB1c2luZyBQZXJsIDUuNiBhY2Nlc3NpbmcgJGN1cmJ1ZiBkb2Vzbid0IHdvcmsuICBBZGQgYW4gI2lmZGVmIHRvIHVzZQpkaWZmZXJlbnQgY29kZSBmb3IgNS42IGFuZCA1LjguICAoRGFuIFNoYXJwKQoKTWluZ1cgYW5kIEN5Z3dpbjogRG9uJ3Qgc3RyaXAgdGhlIGRlYnVnIGV4ZWN1dGFibGUuIChEYW4gU2hhcnApCgpBbiBhc3NpZ25tZW50IHRvIGEgdmFyaWFibGUgd2l0aCBjdXJsaWVzIHRoYXQgaW5jbHVkZXMgIj09IiBkb2Vzbid0IHdvcmsuClNraXAgb3ZlciB0aGUgY3VybGllcyBiZWZvcmUgc2VhcmNoaW5nIGZvciBhbiAiPSIuIChWaW5jZSBOZWdyaSkKCldoZW4gY2FuY2VsbGluZyB0aGUgc2VsZWN0aW9uIG9mIGFsdGVybmF0ZSBtYXRjaGluZyB0YWdzIHRoZSB0YWcgc3RhY2sgaW5kZXgKY291bGQgYmUgYWR2YW5jZWQgdG9vIGZhciwgcmVzdWx0aW5nIGluIGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiB1c2luZyBDVFJMLVQuCgoKUGF0Y2ggNi4xLjAwMQpQcm9ibGVtOiAgICBXaGVuIGZvcm1hdHRpbmcgVVRGLTggdGV4dCBpdCBtaWdodCBiZSB3cmFwcGVkIGF0IGEgc3BhY2UgdGhhdCBpcwoJICAgIGZvbGxvd2VkIGJ5IGEgY29tcG9zaW5nIGNoYXJhY3Rlci4gKFJhcGhhZWwgRmlua2VsKQoJICAgIEFsc28gY29ycmVjdCBhIGRpc3BsYXkgZXJyb3IgZm9yIHJlbW92aW5nIGEgY29tcG9zaW5nIGNoYXIgb24gdG9wCgkgICAgb2YgYSBzcGFjZS4KU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgY29tcG9zaW5nIGNoYXJhY3RlciBvbiBhIHNwYWNlLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9taXNjMS5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wMDIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogYWZ0ZXIgYSAiOnBvcHVwIiBjb21tYW5kIHRoZSBtb3VzZSBwb2ludGVyIHN0YXlzIGhpZGRlbi4KU29sdXRpb246ICAgVW5oaWRlIHRoZSBtb3VzZSBwb2ludGVyIGJlZm9yZSBzaG93aW5nIHRoZSBtZW51LgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4wMDMKUHJvYmxlbTogICAgV2hlbiAnbGFzdHN0YXR1cycgaXMgemVybyBhbmQgdGhlcmUgaXMgYSB2ZXJ0aWNhbCBzcGxpdCwgdGhlCgkgICAgdmVydGljYWwgc2VwYXJhdG9yIGlzIGRyYXduIGluIHRoZSBjb21tYW5kIGxpbmUuIChTcmlrYW50CgkgICAgU2Fua2FyYW4pClNvbHV0aW9uOiAgIERvbid0IGRyYXcgdGhlIHZlcnRpY2FsIHNlcGFyYXRvciB3aGVyZSB0aGVyZSBpcyBubyBzdGF0dXNsaW5lLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjAwNApQcm9ibGVtOiAgICBVbmljb2RlIDMuMiBjaGFuZ2VzIHdpZHRoIGFuZCBjb21wb3Npbmcgb2YgYSBmZXcgY2hhcmFjdGVycy4KCSAgICAoTWFya3VzIEt1aG4pClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgVW5pY29kZSBmdW5jdGlvbnMgZm9yIHRoZSBjaGFyYWN0ZXIgd2lkdGggYW5kIGNvbXBvc2luZwoJICAgIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4wMDUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBtb3JlIHRoYW4gNTAgaXRlbXMgaW4gJ3N0YXR1c2xpbmUnIFZpbSBtaWdodCBjcmFzaC4KCSAgICAoU3RldmUgSGFsbCkKU29sdXRpb246ICAgSW5jcmVtZW50IGl0ZW1jbnQgaW4gY2hlY2tfc3RsX29wdGlvbigpLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjAwNgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJQIiBpbiBWaXN1YWwgbW9kZSB0byBwdXQgbGluZXdpc2Ugc2VsZWN0ZWQgdGV4dCwgdGhlCgkgICAgd3JvbmcgdGV4dCBpcyBkZWxldGVkLiAoSmFrdWIgVHVyc2tpKQpTb2x1dGlvbjogICBQdXQgdGhlIHRleHQgYmVmb3JlIHRoZSBWaXN1YWwgYXJlYSBhbmQgY29ycmVjdCB0aGUgdGV4dCB0byBiZQoJICAgIGRlbGV0ZWQgZm9yIHRoZSBpbnNlcnRlZCBsaW5lcy4KCSAgICBBbHNvIGZpeCB0aGF0ICJwIiBvZiBsaW5ld2lzZSB0ZXh0IGluIFZpc3VhbCBibG9jayBtb2RlIGRvZXNuJ3QKCSAgICB3b3JrIGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjAwNwpQcm9ibGVtOiAgICBVc2luZyAiOmZpbGV0eXBlIHBsdWdpbiBvZmYiIHdoZW4gZmlsZXR5cGUgcGx1Z2lucyB3ZXJlIG5ldmVyCgkgICAgZW5hYmxlZCBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4gKFlpdSBXaW5nKQpTb2x1dGlvbjogICBVc2UgIjpzaWxlbnQhIiB0byBhdm9pZCB0aGUgZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBydW50aW1lL2Z0cGx1Z29mLnZpbQoKUGF0Y2ggNi4xLjAwOApQcm9ibGVtOiAgICBUaGUgIiUiIGNvbW1hbmQgZG9lc24ndCBpZ25vcmUgXCIgaW5zaWRlIGEgc3RyaW5nLCBpdCdzIHNlZW4gYXMKCSAgICB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuIChLZW4gQ2xhcmspClNvbHV0aW9uOiAgIFNraXAgYSBkb3VibGUgcXVvdGUgcHJlY2VkZWQgYnkgYW4gb2RkIG51bWJlciBvZiBiYWNrc2xhc2hlcy4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS4wMDkKUHJvYmxlbTogICAgVmltIGNyYXNoZXMgd2hlbiB1c2luZyBhIGh1Z2UgbnVtYmVyIGZvciB0aGUgbWF4d2lkIHZhbHVlIGluIGEKCSAgICBzdGF0dXNsaW5lLiAoUm9iZXJ0IE0uIE5vd290bmlhaykKU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIG92ZXJmbG93IHRoYXQgbWFrZXMgbWF4d2lkIG5lZ2F0aXZlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjAxMApQcm9ibGVtOiAgICBTZWFyY2hpbmcgYmFja3dhcmRzIGZvciBhIHF1ZXN0aW9uIG1hcmsgd2l0aCAiP1w/IiBkb2Vzbid0IHdvcmsuCgkgICAgKEFsYW4gSXNhYWMpICBTYW1lIHByb2JsZW0gaW4gIjpzP1w/PyIgYW5kICI6Zz9cPz8iLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlICJcPyIgaW4gYSBwYXR0ZXJuIHRvICI/IiB3aGVuIHVzaW5nICI/IiBhcyBkZWxpbWl0ZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9wcm90by9yZWdleHAucHJvLCBzcmMvcmVnZXhwLmMsCgkgICAgc3JjL3NlYXJjaC5jLCBzcmMvc3ludGF4LmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4xLjAxMQpQcm9ibGVtOiAgICBYSU06IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2hlbiAnbnVtYmVyJyBpcyBzZXQuICBBbHNvLCBhIGZvY3VzCgkgICAgcHJvYmxlbSB3aGVuIHNlbGVjdGluZyBjYW5kaWRhdGVzLgpTb2x1dGlvbjogICBGaXggdGhlIFhJTSBwcm9ibGVtcy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMDEyClByb2JsZW06ICAgIEEgc3lzdGVtKCkgY2FsbCBtaWdodCBmYWlsIGlmIGZyZWFkKCkgZG9lcyBDUi1MRiB0byBMRgoJICAgIHRyYW5zbGF0aW9uLgpTb2x1dGlvbjogICBPcGVuIHRoZSBvdXRwdXQgZmlsZSBpbiBiaW5hcnkgbW9kZS4gKFBhdm9sIEh1aGFzKQpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjEuMDEzClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZGVmYXVsdCBmb3IgJ3ByaW50ZXhwcicgZG9lc24ndCB3b3JrIHdoZW4gdGhlcmUgYXJlCgkgICAgc3BlY2lhbCBjaGFyYWN0ZXJzIGluICdwcmludGRldmljZScuClNvbHV0aW9uOiAgIEFkZCBkb3VibGUgcXVvdGVzIGFyb3VuZCB0aGUgZGV2aWNlIG5hbWUuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbi50eHQsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjAxNApQcm9ibGVtOiAgICBBbiBvcGVyYXRvciBsaWtlICJyIiB1c2VkIGluIFZpc3VhbCBibG9jayBtb2RlIGRvZXNuJ3QgdXNlCgkgICAgJ3ZpcnR1YWxlZGl0JyB3aGVuIGl0J3Mgc2V0IHRvICJibG9jayIuClNvbHV0aW9uOiAgIENoZWNrIGZvciAndmlydHVhbGVkaXQnIGJlaW5nIGFjdGl2ZSBpbiBWaXN1YWwgYmxvY2sgbW9kZSB3aGVuIHRoZQoJICAgIG9wZXJhdG9yIHdhcyBzdGFydGVkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLAoJICAgIHNyYy9vcHMuYywgc3JjL3VuZG8uYwoKUGF0Y2ggNi4xLjAxNQpQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjEuMDE0IGNhbid0IGNvbXBpbGUgd2l0aCB0aW55IGZlYXR1cmVzLiAoQ2hyaXN0aWFuCgkgICAgSi4gUm9iaW5zb24pClNvbHV0aW9uOiAgIEFkZCB0aGUgbWlzc2luZyBkZWZpbmUgb2YgdmlydHVhbF9vcC4KRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4wMTYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogT3V0cHV0dGluZyBIZWJyZXcgb3IgQXJhYmljIHRleHQgbWlnaHQgaGF2ZSBhIHByb2JsZW0gd2l0aAoJICAgIHJldmVyc2luZy4KU29sdXRpb246ICAgUmVwbGFjZSB0aGUgUmV2T3V0KCkgZnVuY3Rpb24gd2l0aCBFVE9fSUdOT1JFTEFOR1VBR0UuIChSb24gQWFyb24pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjAxNwpQcm9ibGVtOiAgICBDeWd3aW46IEFmdGVyIHBhdGNoIDYuMS4wMTIgU3RpbGwgZG9lc24ndCBkbyBiaW5hcnkgZmlsZSBJL08uCgkgICAgKFBhdm9sIEp1aGFzKQpTb2x1dGlvbjogICBEZWZpbmUgQklOQVJZX0ZJTEVfSU8gZm9yIEN5Z3dpbi4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5oCgpQYXRjaCA2LjEuMDE4ClByb2JsZW06ICAgIEVycm9yIG1lc3NhZ2Ugd2hlbiB1c2luZyBjdGVybSBoaWdobGlnaHRpbmcuIChMZW9uYXJkbyBEaSBMZWxsYSkKU29sdXRpb246ICAgUmVtb3ZlIGEgYmFja3NsYXNoIGJlZm9yZSBhIHF1ZXN0aW9uIG1hcmsuCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvY3Rlcm0udmltCgpQYXRjaCA2LjEuMDE5IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEZpbGUgbmFtZSBpcyBtZXNzZWQgdXAgd2hlbiBlZGl0aW5nIGp1c3QgYSBkcml2ZSBuYW1lLgoJICAgIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgQXBwZW5kIGEgTlVMIGFmdGVyIHRoZSBkcml2ZSBuYW1lLiAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4wMjAKUHJvYmxlbTogICAgY29sKCInPiIpIHJldHVybnMgYSBodWdlIG51bWJlciBhZnRlciB1c2luZyBWaXN1YWwgbGluZSBtb2RlLgpTb2x1dGlvbjogICBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgbGluZSBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4wMjEgKGRlcGVuZHMgb24gcGF0Y2ggNi4xLjAwOSkKUHJvYmxlbTogICAgVmltIGNyYXNoZXMgd2hlbiB1c2luZyBhIGh1Z2UgbnVtYmVyIGZvciB0aGUgbWlud2lkIHZhbHVlIGluIGEKCSAgICBzdGF0dXNsaW5lLiAoUm9iZXJ0IE0uIE5vd290bmlhaykKU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIG92ZXJmbG93IHRoYXQgbWFrZXMgbWlud2lkIG5lZ2F0aXZlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjAyMgpQcm9ibGVtOiAgICBHcmFiYmluZyB0aGUgc3RhdHVzIGxpbmUgYWJvdmUgdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cgd29ya3MgbGlrZQoJICAgIHRoZSBib3R0b20gc3RhdHVzIGxpbmUgd2FzIGdyYWJiZWQuIChKaW0gQmF0dGxlKQpTb2x1dGlvbjogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGdyYWIgdGhlIHN0YXR1cyBsaW5lIGFib3ZlIHRoZSBjb21tYW5kLWxpbmUKCSAgICB3aW5kb3csIHNvIHRoYXQgaXQgY2FuIGJlIHJlc2l6ZWQuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMS4wMjMgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IHJ1bm5pbmcgdGVzdHMgZG9lc24ndCB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIG1ha2VmaWxlLiAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL01ha2Vfdm1zLm1tcwoKUGF0Y2ggNi4xLjAyNApQcm9ibGVtOiAgICBXaGVuIGhlYWRlciBmaWxlcyB1c2UgYSBuZXcgc3ludGF4IGZvciBkZWNsYXJpbmcgZnVuY3Rpb25zLCBWaW0KCSAgICBjYW4ndCBmaWd1cmUgb3V0IG1pc3NpbmcgcHJvdG90eXBlcyBwcm9wZXJseS4KU29sdXRpb246ICAgQWNjZXB0IGJyYWNlcyBhcm91bmQgYSBmdW5jdGlvbiBuYW1lLiAoTS4gV2FybmVyIExvc2gpCkZpbGVzOgkgICAgc3JjL29zZGVmLnNoCgpQYXRjaCA2LjEuMDI1ClByb2JsZW06ICAgIEZpdmUgbWVzc2FnZXMgZm9yICJ2aW0gLS1oZWxwIiBkb24ndCBzdGFydCB3aXRoIGEgY2FwaXRhbC4gKFZsYWQKCSAgICBTYW5kcmluaSkKU29sdXRpb246ICAgTWFrZSB0aGUgbWVzc2FnZXMgY29uc2lzdGVudC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMDI2ClByb2JsZW06ICAgICoucGF0Y2ggZmlsZXMgYXJlIG5vdCByZWNvZ25pemVkIGFzIGRpZmYgZmlsZXMuICBJbiBhIHNjcmlwdCBhCgkgICAgIlZBUj12YWwiIGFyZ3VtZW50IGFmdGVyICJlbnYiIGlzbid0IGlnbm9yZWQuICBQSFAgc2NyaXB0cyBhcmUgbm90CgkgICAgcmVjb2duaXplZC4KU29sdXRpb246ICAgQWRkICoucGF0Y2ggZm9yIGRpZmYgZmlsZXR5cGVzLiAgSWdub3JlICJWQVI9dmFsIi4gIFJlY29nbml6ZSBQSFAKCSAgICBzY3JpcHRzLiAoUm9tYW4gTmV1aGF1c2VyKQpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltLCBydW50aW1lL3NjcmlwdHMudmltCgpQYXRjaCA2LjEuMDI3ClByb2JsZW06ICAgIFdoZW4gJ2ZvbGRjb2x1bW4nIGlzIG5vbi16ZXJvLCBhIHNwZWNpYWwgY2hhcmFjdGVyIHRoYXQgd3JhcHMgdG8KCSAgICB0aGUgbmV4dCBsaW5lIGRpc3R1cmJzIHRoZSBmb2xkY29sdW1uIGhpZ2hsaWdodGluZy4gIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKU29sdXRpb246ICAgT25seSB1c2UgdGhlIHNwZWNpYWwgaGlnaGxpZ2h0aW5nIHdoZW4gZHJhd2luZyB0ZXh0IGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMDI4ClByb2JsZW06ICAgIENsaWVudC1zZXJ2ZXI6IFdoZW4gYSAtLXJlbW90ZS1leHByIGZhaWxzLCBWaW0gc3RpbGwgZXhpdHMgd2l0aAoJICAgIHN0YXR1cyB6ZXJvLgpTb2x1dGlvbjogICBFeGl0IFZpbSB3aXRoIGEgbm9uLXplcm8gc3RhdHVzIHRvIGluZGljYXRlIHRoZSAtLXJlbW90ZS1leHByCgkgICAgZmFpbGVkLiAoVGhvbWFzIFNjb3R0IFVyYmFuKQpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4wMjkKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzIGFuIDgtYml0IGVuY29kaW5nIG90aGVyIHRoYW4gImxhdGluMSIsIGVkaXRpbmcKCSAgICBhIHV0Zi04IG9yIG90aGVyIFVuaWNvZGUgZmlsZSB1c2VzIHRoZSB3cm9uZyBjb252ZXJzaW9uLiAoSmFuCgkgICAgRmVkYWspClNvbHV0aW9uOiAgIERvbid0IHVzZSBVbmljb2RlIHRvIGxhdGluMSBjb252ZXJzaW9uIGZvciA4LWJpdCBlbmNvZGluZ3Mgb3RoZXIKCSAgICB0aGFuICJsYXRpbjEiLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjAzMApQcm9ibGVtOiAgICBXaGVuIENUUkwtTiBpcyBtYXBwZWQgaW4gSW5zZXJ0IG1vZGUsIGl0IGlzIGFsc28gbWFwcGVkIGFmdGVyCgkgICAgQ1RSTC1YIENUUkwtTiwgd2hpbGUgaXQgaXMgbm90IG1hcHBlZCBhZnRlciBDVFJMLVggQ1RSTC1GLgoJICAgIChLb250cmEgR2VyZ2VseSkKU29sdXRpb246ICAgRG9uJ3QgbWFwIENUUkwtTiBhZnRlciBDVFJMLVggQ1RSTC1OLiAgU2FtZSBmb3IgQ1RSTC1QLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMS4wMzEKUHJvYmxlbTogICAgQ3lnd2luOiBYeGQgY291bGQgcmVhZCBhIGZpbGUgaW4gdGV4dCBtb2RlIGluc3RlYWQgb2YgYmluYXJ5IG1vZGUuClNvbHV0aW9uOiAgIFVzZSAicmIiIG9yICJydCIgd2hlbiBuZWVkZWQuIChQYXZvbCBKdWhhcykKRmlsZXM6CSAgICBzcmMveHhkL3h4ZC5jCgpQYXRjaCA2LjEuMDMyClByb2JsZW06ICAgIENhbid0IHNwZWNpZnkgYSBxdWlja2ZpeCBmaWxlIHdpdGhvdXQganVtcGluZyB0byB0aGUgZmlyc3QgZXJyb3IuClNvbHV0aW9uOiAgIEFkZCB0aGUgIjpjZ2V0ZmlsZSIgY29tbWFuZC4gKFllZ2FwcGFuIExha3NobWFuYW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaW5kZXgudHh0LCBydW50aW1lL2RvYy9xdWlja2ZpeC50eHQsIHNyYy9leF9jbWRzLmgsCgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMS4wMzMKUHJvYmxlbTogICAgR1VJOiBXaGVuIHRoZSBzZWxlY3Rpb24gaXMgbG9zdCBhbmQgdGhlIFZpc3VhbCBoaWdobGlnaHRpbmcgaXMKCSAgICBjaGFuZ2VkIHRvIHVuZGVybGluaW5nLCB0aGUgY3Vyc29yIGlzIGxlZnQgaW4gYSBkaWZmZXJlbnQKCSAgICBwb3NpdGlvbi4gKENocmlzdGlhbiBNaWNob24pClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIHJlZHJhd2luZyB0aGUgc2VsZWN0aW9uLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjEuMDM0ClByb2JsZW06ICAgIEEgQ1ZTIGRpZmYgZmlsZSBpc24ndCByZWNvZ25pemVkIGFzIGRpZmYgZmlsZXR5cGUuClNvbHV0aW9uOiAgIFNraXAgbGluZXMgc3RhcnRpbmcgd2l0aCAiPyAiIGJlZm9yZSBjaGVja2luZyBmb3IgYW4gIkluZGV4OiIgbGluZS4KRmlsZXM6CSAgICBydW50aW1lL3NjcmlwdHMudmltCgpQYXRjaCA2LjEuMDM1IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMDE2KQpQcm9ibGVtOiAgICBXaW4zMjogT3V0cHV0dGluZyBIZWJyZXcgb3IgQXJhYmljIHRleHQgbWlnaHQgaGF2ZSBhIHByb2JsZW0gd2l0aAoJICAgIHJldmVyc2luZyBvbiBNUy1XaW5kb3dzIDk1Lzk4L01FLgpTb2x1dGlvbjogICBSZXN0b3JlIHRoZSBSZXZPdXQoKSBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIHNwZWNpZmljIHNpdHVhdGlvbnMKCSAgICBvbmx5LiAoUm9uIEFhcm9uKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4wMzYKUHJvYmxlbTogICAgVGhpcyBjb21tYW5kIG1heSBjYXVzZSBhIGNyYXNoOiAiOnYvLi8sLy8taiIuIChSYWxmIEFyZW5zKQpTb2x1dGlvbjogICBDb21wdXRlIHRoZSByaWdodCBsZW5ndGggb2YgdGhlIHJlZ2V4cCB3aGVuIGl0J3MgZW1wdHkuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMDM3ClByb2JsZW06ICAgIFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCwgcHJlc3NpbmcgInEiIGF0IHRoZSBoaXQtZW50ZXIgcHJvbXB0CgkgICAgY2F1c2VzIGFuIGluY29tcGxldGUgcmVkcmF3IGFuZCB0aGUgY3Vyc29yIGlzbid0IHBvc2l0aW9uZWQuCgkgICAgKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgT3ZlcnJ1bGUgJ2xhenlyZWRyYXcnIHdoZW4gZG9fcmVkcmF3IGlzIHNldC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wMzgKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2hlbiBhICI6cyIgY29tbWFuZCBjb250YWlucyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyCgkgICAgd2hlcmUgdGhlIHRyYWlsIGJ5dGUgaXMgJ34nIHRoZSB0ZXh0IGlzIG1lc3NlZCB1cC4KU29sdXRpb246ICAgUHJvcGVybHkgc2tpcCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gcmVndGlsZGUoKSAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xLjAzOQpQcm9ibGVtOiAgICBXaGVuIGZvbGRzIGFyZSBkZWZpbmVkIGFuZCB0aGUgZmlsZSBpcyBjaGFuZ2VkIG91dHNpZGUgb2YgVmltLAoJICAgIHJlbG9hZGluZyB0aGUgZmlsZSBkb2Vzbid0IHVwZGF0ZSB0aGUgZm9sZHMuIChBbmRlcnMKCSAgICBTY2hhY2stTmllbHNlbikKU29sdXRpb246ICAgUmVjb21wdXRlIHRoZSBmb2xkcyBhZnRlciByZWxvYWRpbmcgdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMDQwClByb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgZGlyZWN0b3J5IGZvciBleHBhbmRpbmcgYSBmaWxlIG5hbWUgZmFpbHMgdGhlcmUgaXMKCSAgICBubyBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBHaXZlIGFuIGVycm9yIG1lc3NhZ2UgZm9yIHRoaXMgc2l0dWF0aW9uLiAgRG9uJ3QgY2hhbmdlIGRpcmVjdG9yeQoJICAgIGlmIHdlIGNhbid0IHJldHVybiB0byB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWlzYzEuYywKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDQxClByb2JsZW06ICAgICI6bWt2aW1yYyIgZG9lc24ndCBoYW5kbGUgYSBtYXBwaW5nIHRoYXQgaGFzIGEgbGVhZGluZyBzcGFjZSBpbgoJICAgIHRoZSByaHMuIChEYXZ5ZCBPbmRyZWprbykKU29sdXRpb246ICAgSW5zZXJ0IGEgQ1RSTC1WIGJlZm9yZSB0aGUgbGVhZGluZyBzcGFjZS4gIEFsc28gZGlzcGxheSBsZWFkaW5nCgkgICAgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlIGluIDw+IGZvcm0uCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4xLjA0MgpQcm9ibGVtOiAgICAidmltIC1yIiBkb2Vzbid0IHNob3cgYWxsIG1hdGNoZXMgd2hlbiAnd2lsZGlnbm9yZScgcmVtb3ZlcyBzd2FwCgkgICAgZmlsZXMuIChTdGV2ZSBUYWxsZXkpClNvbHV0aW9uOiAgIEtlZXAgYWxsIG1hdGNoaW5nIHN3YXAgZmlsZSBuYW1lcy4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjEuMDQzClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMS4wNDAgYSBmZXcgd2FybmluZ3MgYXJlIHByb2R1Y2VkLgpTb2x1dGlvbjogICBBZGQgYSB0eXBlIGNhc3QgdG8gImNoYXIgKiIgZm9yIG1jaF9jaGRpcigpLiAoQXhlbCBLaWVsaG9ybikKRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvZXhfZG9jbWQuYy5jLCBzcmMvbWlzYzEuYywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjA0NCAoZXh0cmEpClByb2JsZW06ICAgIEdVSTogV2hlbiB1c2luZyB0aGUgZmluZC9yZXBsYWNlIGRpYWxvZyB3aXRoIHRleHQgdGhhdCBjb250YWlucyBhCgkgICAgc2xhc2gsIGFuIGludmFsaWQgc3Vic3RpdHV0ZSBjb21tYW5kIGlzIGdlbmVyYXRlZC4KCSAgICBPbiBXaW4zMiBhIGZpbmQgZG9lc24ndCB3b3JrIHdoZW4gJ2luc2VydG1vZGUnIGlzIHNldC4KU29sdXRpb246ICAgRXNjYXBlIHNsYXNoZXMgd2l0aCBhIGJhY2tzbGFzaC4KCSAgICBNYWtlIHRoZSBXaW4zMiwgTW90aWYgYW5kIEdUSyBndWkgdXNlIGNvbW1vbiBjb2RlIGZvciB0aGUKCSAgICBmaW5kL3JlcGxhY2UgZGlhbG9nLgoJICAgIEFkZCB0aGUgIm1hdGNoIGNhc2UiIG9wdGlvbiBmb3IgTW90aWYgYW5kIEdUSy4KRmlsZXM6CSAgICBzcmMvZmVhdHVyZS5oLCBzcmMvcHJvdG8vZ3VpLnBybywgc3JjL2d1aS5jLCBzcmMvZ3VpLmgsCgkgICAgc3JjL2d1aV9tb3RpZi5jLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMDQ1ClByb2JsZW06ICAgIEluIFZpc3VhbCBtb2RlLCB3aXRoIGxvdHMgb2YgZm9sZHMgYW5kICdzY3JvbGxvZmYnIHNldCB0byA5OTksCgkgICAgbW92aW5nIHRoZSBjdXJzb3IgZG93biBuZWFyIHRoZSBlbmQgb2YgdGhlIGZpbGUgY2F1c2VzIHRoZSB0ZXh0IHRvCgkgICAganVtcCB1cCBhbmQgZG93bi4gKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgVGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUgY3Vyc29yIG1heSBiZSBvbiB0aGUgbGFzdCBsaW5lIG9mIGEKCSAgICBjbG9zZWQgZm9sZC4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjEuMDQ2ClByb2JsZW06ICAgIFgxMSBHVUk6ICI6c2V0IGxzcD0yIGdjcj1uLXYtaTpob3IxLWJsaW5rb24wIiBkcmF3cyBhIGJsYWNrCgkgICAgcmVjdGFuZ2xlLiAgIjpzZXQgbHNwPTIgZ2NyPW4tdi1pOmhvcjEwLWJsaW5rb24wIiBtYWtlcyB0aGUgY3Vyc29yCgkgICAgZGlzYXBwZWFyLiAgKE5hbSBTdW5nSHl1bikKU29sdXRpb246ICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBjdXJzb3IuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMS4wNDcKUHJvYmxlbTogICAgV2hlbiBza2lwcGluZyBjb21tYW5kcyBhZnRlciBhbiBlcnJvciB3YXMgZW5jb3VudGVyZWQsIGV4cHJlc3Npb25zCgkgICAgZm9yICI6aWYiLCAiO2Vsc2VpZiIgYW5kICI6d2hpbGUiIGFyZSBzdGlsbCBldmFsdWF0ZWQuClNvbHV0aW9uOiAgIFNraXAgdGhlIGV4cHJlc3Npb24gYWZ0ZXIgYW4gZXJyb3IuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMDQ4ClByb2JsZW06ICAgIFVuaWNvZGUgMy4yIGNoYW5nZXMgd2VyZSBtaXNzaW5nIGEgZmV3IEhhbmd1bCBKYW1vIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBtb3JlIGNoYXJhY3RlcnMgYXMgY29tcG9zaW5nIGNoYXJhY3RlcnMuIChKdW5nc2hpayBTaGluKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMDQ5IChleHRyYSkKUHJvYmxlbTogICAgT24gYSAzMiBiaXQgZGlzcGxheSBhIHZhbGlkIGNvbG9yIG1heSBjYXVzZSBhbiBlcnJvciBtZXNzYWdlLAoJICAgIGJlY2F1c2UgaXRzIHBpeGVsIHZhbHVlIGlzIG5lZ2F0aXZlLiAoQ2hyaXMgUGF1bHNvbi1FbGxpcykKU29sdXRpb246ICAgQ2hlY2sgZm9yIC0xMTExMSBpbnN0ZWFkIG9mIHRoZSBjb2xvciBiZWluZyBuZWdhdGl2ZS4KCSAgICBEb24ndCBhZGQgb25lIHRvIHRoZSBwaXhlbCB2YWx1ZSwgLTEgbWF5IGJlIHVzZWQgZm9yIHdoaXRlLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ndWkuYywgc3JjL2d1aS5oLCBzcmMvZ3VpX2FtaWdhLmMsCgkgICAgc3JjL2d1aV9hdGhlbmEuYywgc3JjL2d1aV9iZW9zLmNjLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvZ3VpX21vdGlmLmMsIHNyYy9ndWlfcGhvdG9uLmMsCgkgICAgc3JjL2d1aV9yaXNjb3MuYywgc3JjL2d1aV93MTYuYywgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywKCSAgICBzcmMvZ3VpX3gxMS5jLCBzcmMvbWJ5dGUuYywgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMDUwIChkZXBlbmRzIG9uIDYuMS4wNDkpClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMS4wNDkgdGhlIG5vbi1HVUkgdmVyc2lvbiBkb2Vzbid0IGNvbXBpbGUuClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYgRkVBVF9HVUkuICAoUm9iZXJ0IFN0YW50b24pCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMDUxIChkZXBlbmRzIG9uIDYuMS4wNDQpClByb2JsZW06ICAgIERvZXNuJ3QgY29tcGlsZSB3aXRoIEdVSSBhbmQgc21hbGwgZmVhdHVyZXMuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgI2lmIGZvciBnYV9hcHBlbmQoKS4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4xLjA1MgpQcm9ibGVtOiAgICBVbml4OiBUaGUgZXhlY3V0YWJsZSgpIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aGVuIHRoZSAid2hpY2giCgkgICAgY29tbWFuZCBpc24ndCBhdmFpbGFibGUuClNvbHV0aW9uOiAgIEdvIHRocm91Z2ggJFBBVEggbWFudWFsbHkuICBBbHNvIG1ha2VzIGl0IHdvcmsgZm9yIFZNUy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDUzClByb2JsZW06ICAgIFdoZW4gJ3Nlc3Npb25vcHRpb25zJyBjb250YWlucyAiZ2xvYmFscyIsIG9yICJsb2NhbG9wdGlvbnMiIGFuZCBhbgoJICAgIG9wdGlvbiB2YWx1ZSBjb250YWlucyBhIGxpbmUgYnJlYWssIHRoZSByZXN1bHRpbmcgc2NyaXB0IGlzIHdyb25nLgpTb2x1dGlvbjogICBVc2UgIlxuIiBhbmQgIlxyIiBmb3IgYSBsaW5lIGJyZWFrLiAoU3JpbmF0aCBBdmFkaGFudWxhKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4wNTQKUHJvYmxlbTogICAgR1VJOiBBIG1vdXNlIGNsaWNrIGlzIG5vdCByZWNvZ25pemVkIGF0IHRoZSBtb3JlIHByb21wdCwgZXZlbiB3aGVuCgkgICAgJ21vdXNlJyBpbmNsdWRlcyAncicuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBhIG1vdXNlIGNsaWNrIGF0IHRoZSBtb3JlIHByb21wdC4KCSAgICBBbHNvIGFjY2VwdCBhIG1vdXNlIGNsaWNrIGluIHRoZSBsYXN0IGxpbmUgaW4gdGhlIEdVSS4KCSAgICBBZGQgIm1sIiBlbnRyeSBpbiAnbW91c2VzaGFwZScuCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvbWVzc2FnZS5jLCBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9vcHRpb24uYywKCSAgICBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuMDU1ClByb2JsZW06ICAgIFdoZW4gZWRpdGluZyBhIGNvbXByZXNzZWQgZmlsZSwgVmltIHdpbGwgaW5zcGVjdCB0aGUgY29udGVudHMgdG8KCSAgICBndWVzcyB0aGUgZmlsZXR5cGUuClNvbHV0aW9uOiAgIERvbid0IHNvdXJjZSBzY3JpcHRzLnZpbSBmb3IgLlosIC5neiwgLmJ6MiwgLnppcCBhbmQgLnRneiBmaWxlcy4KRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbSwgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS4wNTYKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgU3ludGF4IG1lbnUgY2FuIHRha2UgcXVpdGUgYSBiaXQgb2YgdGltZS4KU29sdXRpb246ICAgQWRkIHRoZSAic2tpcF9zeW50YXhfc2VsX21lbnUiIHZhcmlhYmxlLiAgV2hlbiBpdCdzIGRlZmluZWQgdGhlCgkgICAgYXZhaWxhYmxlIHN5bnRheCBmaWxlcyBhcmUgbm90IGluIHRoZSBTeW50YXggbWVudS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ndWkudHh0LCBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjEuMDU3ClByb2JsZW06ICAgIEFuIEVTQyBpbnNpZGUgYSBtYXBwaW5nIGRvZXNuJ3Qgd29yayBhcyBkb2N1bWVudGVkIHdoZW4KCSAgICAnaW5zZXJ0bW9kZScgaXMgc2V0LCBpdCBkb2VzIGdvIGZyb20gVmlzdWFsIG9yIE5vcm1hbCBtb2RlIHRvCgkgICAgSW5zZXJ0IG1vZGUuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIE1ha2UgaXQgd29yayBhcyBkb2N1bWVudGVkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjA1OApQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgY2xvc2VkIGZvbGQganVzdCBhYm92ZSB0aGUgZmlyc3QgbGluZSBpbiB0aGUKCSAgICB3aW5kb3csIHVzaW5nIENUUkwtWCBDVFJMLVkgaW4gSW5zZXJ0IG1vZGUgd2lsbCBzaG93IG9ubHkgb25lIGxpbmUKCSAgICBvZiB0aGUgZm9sZC4gKEFsZXhleSBNYXJpbmljaGV2KQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSB0b3BsaW5lIGJ5IHB1dHRpbmcgaXQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4wNTkKUHJvYmxlbTogICAgIjpyZWRpciA+IH4vZmlsZSIgZG9lc24ndCB3b3JrLiAoU3RlcGhlbiBSYXNrdSkKU29sdXRpb246ICAgRXhwYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgIjpyZWRpciA+IiBhcmd1bWVudC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjA2MApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgZGVsZXRpbmcKCSAgICBhIGNoYXJhY3RlciBqdXN0IGJlZm9yZSBhIHRhYiBjaGFuZ2VzIHRoZSB0YWIgaW50byBzcGFjZXMuICBVbmRvCgkgICAgZG9lc24ndCByZXN0b3JlIHRoZSB0YWIuIChIZWxtdXQgU3RpZWdsZXIpClNvbHV0aW9uOiAgIERvbid0IHJlcGxhY2UgdGhlIHRhYiBieSBzcGFjZXMgd2hlbiBpdCdzIG5vdCBuZWVkZWQuICBDb3JyZWN0bHkKCSAgICBzYXZlIHRoZSBsaW5lIGJlZm9yZSBpdCdzIGNoYW5nZWQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjEuMDYxClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCBhIFZpc3VhbAoJICAgIHNlbGVjdGlvbiB0aGF0IGVuZHMganVzdCBhZnRlciBhIHRhYiBkb2Vzbid0IGluY2x1ZGUgdGhhdCB0YWIgaW4KCSAgICB0aGUgaGlnaGxpZ2h0aW5nLiAgKEhlbG11dCBTdGllZ2xlcikKU29sdXRpb246ICAgVXNlIGEgZGlmZmVyZW50IHdheSB0byBleGNsdWRlIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wNjIKUHJvYmxlbTogICAgVGhlICJtYW4iIGZpbGV0eXBlIHBsdWdpbiBkb2Vzbid0IHdvcmsgcHJvcGVybHkgb24gU29sYXJpcyA1LgpTb2x1dGlvbjogICBVc2UgYSBkaWZmZXJlbnQgd2F5IHRvIGRldGVjdCB0aGF0ICJtYW4gLXMiIHNob3VsZCBiZSB1c2VkLiAoSHVnaAoJICAgIFNhc3NlKQpGaWxlczoJICAgIHJ1bnRpbWUvZnRwbHVnaW4vbWFuLnZpbQoKUGF0Y2ggNi4xLjA2MwpQcm9ibGVtOiAgICBKYXZhIGluZGVudGluZyBkb2Vzbid0IHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIElnbm9yZSBjb21tZW50cyB3aGVuIGNoZWNraW5nIGlmIHRoZSBpbmRlbnQgZG9lc24ndCBpbmNyZWFzZSBhZnRlcgoJICAgIGEgIn0iLgpGaWxlczoJICAgIHJ1bnRpbWUvaW5kZW50L2phdmEudmltCgpQYXRjaCA2LjEuMDY0ClByb2JsZW06ICAgIFRoZSBVUkxzIHRoYXQgdGhlIG5ldHJ3IHBsdWdpbiByZWNvZ25pemVkIGZvciBmdHAgYW5kIHJjcCBkaWQgbm90CgkgICAgY29uZm9ybSB0byB0aGUgc3RhbmRhcmQgbWV0aG9kOi8vW3VzZXJAXWhvc3RbOnBvcnRdL3BhdGguClNvbHV0aW9uOiAgIFVzZSBmdHA6Ly9bdXNlckBdaG9zdFtbOiNdcG9ydF0vcGF0aCwgd2hpY2ggc3VwcG9ydHMgYm90aCB0aGUgbmV3CgkgICAgYW5kIHRoZSBwcmV2aW91cyBzdHlsZS4gIEFsc28gYWRkZWQgYSBiaXQgb2YgZGF2L2NhZGF2ZXIgc3VwcG9ydC4KCSAgICAoQ2hhcmxlcyBDYW1wYmVsbCkKRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9uZXRydy52aW0KClBhdGNoIDYuMS4wNjUKUHJvYmxlbTogICAgVk1TOiBUaGUgY29sb3JzY2hlbWUsIGtleW1hcCBhbmQgY29tcGlsZXIgbWVudXMgYXJlIG5vdCBmaWxsZWQgaW4uClNvbHV0aW9uOiAgIElnbm9yZSBjYXNlIHdoZW4gbG9va2luZyBmb3IgIi52aW0iIGZpbGVzLiAoQ29lbiBFbmdlbGJhcnRzKQpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4wNjYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaGVuIGNhbGxpbmcgc3lzdGVtKCkgaW4gYSBwbHVnaW4gcmVhZGluZyBzdGRpbiBoYW5ncy4KU29sdXRpb246ICAgRG9uJ3Qgc2V0IHRoZSB0ZXJtaW5hbCB0byBSQVcgbW9kZSB3aGVuIGl0IHdhc24ndCBpbiBSQVcgbW9kZQoJICAgIGJlZm9yZSB0aGUgc3lzdGVtKCkgY2FsbC4KRmlsZXM6CSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc19yaXNjb3MuYywgc3JjL29zX3VuaXguYywKCSAgICBzcmMvb3Nfd2luMTYuYywgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4wNjcKUHJvYmxlbTogICAgIjpzZXQgdmltaW5mbys9ZjAiIGlzIG5vdCB3b3JraW5nLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBDaGVjayB0aGUgImYiIGZsYWcgaW5zdGVhZCBvZiAiJyIgaW4gJ3ZpbWluZm8nLgpGaWxlczoJICAgIHNyYy9tYXJrLmMKClBhdGNoIDYuMS4wNjgKUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgaXMgcmVsb2FkZWQgYWZ0ZXIgaXQgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0sIGRpZmYKCSAgICBtb2RlIGlzbid0IHVwZGF0ZWQuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIEludmFsaWRhdGUgdGhlIGRpZmYgaW5mbyBzbyB0aGF0IGl0J3MgdXBkYXRlZCB3aGVuIG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4wNjkKUHJvYmxlbTogICAgV2hlbiAnc2hvd21hdGNoJyBpcyBzZXQgYW5kICIkIiBpcyBpbiAnY3BvcHRpb25zJywgdXNpbmcKCSAgICAiQ308RXNjPiIgbWF5IGZvcmdldCB0byByZW1vdmUgdGhlICIkIi4gKFByZWJlbiBHdWxkYmVyZykKU29sdXRpb246ICAgUmVzdG9yZSBkb2xsYXJfdmNvbCBhZnRlciBkaXNwbGF5aW5nIHRoZSBtYXRjaGluZyBjdXJzb3IgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMDcwIChkZXBlbmRzIG9uIDYuMS4wNjApClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaC4gKE1pa2UgV2lsbGlhbXMpClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0IHRvIGludC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4wNzEKUHJvYmxlbTogICAgV2hlbiAnc2VsZWN0aW9uJyBpcyBleGNsdXNpdmUsIGcgQ1RSTC1HIGluIFZpc3VhbCBtb2RlIGNvdW50cyBvbmUKCSAgICBjaGFyYWN0ZXIgdG9vIG11Y2guIChEYXZpZCBOZWNhcykKU29sdXRpb246ICAgU3VidHJhY3Qgb25lIGZyb20gdGhlIGVuZCBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4wNzIKUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgbmFtZSBpbiBhIHRhZ3MgZmlsZSBzdGFydHMgd2l0aCBodHRwOi8vIG9yIHNvbWV0aGluZwoJICAgIGVsc2UgZm9yIHdoaWNoIHRoZXJlIGlzIGEgQnVmUmVhZENtZCBhdXRvY29tbWFuZCwgdGhlIGZpbGUgaXNuJ3QKCSAgICBvcGVuZWQgYW55d2F5LgpTb2x1dGlvbjogICBDaGVjayBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIEJ1ZlJlYWRDbWQgYXV0b2NvbW1hbmQgYW5kIHRyeSB0bwoJICAgIG9wZW4gdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvcHJvdG8vZmlsZWlvLnBybywgc3JjL3RhZy5jCgpQYXRjaCA2LjEuMDczIChleHRyYSkKUHJvYmxlbTogICAgQkM1OiBDYW4ndCBlYXNpbHkgc3BlY2lmeSBhIHRpbnksIHNtYWxsLCBub3JtYWwsIGJpZyBvciBodWdlCgkgICAgdmVyc2lvbi4KU29sdXRpb246ICAgQWxsb3cgc2VsZWN0aW5nIHRoZSB2ZXJzaW9uIHdpdGggdGhlIEZFQVRVUkVTIHZhcmlhYmxlLiAoQWppdAoJICAgIFRoYWtrYXIpCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4xLjA3NApQcm9ibGVtOiAgICBXaGVuICdjZHBhdGgnIGluY2x1ZGVzICIuLi8uLiIsIGNoYW5naW5nIHRvIGEgZGlyZWN0b3J5IGluIHdoaWNoCgkgICAgd2UgY3VycmVudGx5IGFscmVhZHkgYXJlIGRvZXNuJ3Qgd29yay4gIGZmX2NoZWNrX3Zpc2l0ZWQoKSBhZGRzCgkgICAgdGhlIGRpcmVjdG9yeSBib3RoIHdoZW4gdXNpbmcgaXQgYXMgdGhlIHJvb3QgZm9yIHNlYXJjaGluZyBhbmQgZm9yCgkgICAgdGhlIGFjdHVhbCBtYXRjaGVzLiAoU3RlcGhlbiBSYXNrdSkKU29sdXRpb246ICAgVXNlIGEgc2VwYXJhdGUgbGlzdCBmb3IgdGhlIGFscmVhZHkgc2VhcmNoZWQgZGlyZWN0b3JpZXMuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMS4wNzUgKGRlcGVuZHMgb24gNi4xLjA3MikKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSBmaWxlaW8uYyBvbiBNUy1XaW5kb3dzLgpTb2x1dGlvbjogICBBZGQgYSBkZWNsYXJhdGlvbiBmb3IgdGhlICJwIiBwb2ludGVyLiAoTWFkb2thIE1hY2hpdGFuaSkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4wNzYgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWNpbnRvc2g6IGV4cGxvcmVyIHBsdWdpbiBkb2Vzbid0IHdvcmsgb24gTWFjIENsYXNzaWMuCgkgICAgSU1FIGRvZXNuJ3Qgd29yay4gIERpYWxvZyBib3hlcyBkb24ndCB3b3JrIG9uIE1hYyBPUyBYClNvbHV0aW9uOiAgIEZpeCBleHBsb3JlciBwbHVnaW4gYW5kIGtleSBtb2RpZmllcnMuIChBeGVsIEtpZWxob3JuKQoJICAgIEZpeCBJTUUgc3VwcG9ydC4gKE11cmFva2EgVGFybykKCSAgICBEaXNhYmxlIGRpYWxvZyBib3hlcy4gKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX21hYy5jLCBzcmMvb3NfbWFjLmMKClBhdGNoIDYuMS4wNzcKUHJvYmxlbTogICAgT24gYSBEZWJpYW4gc3lzdGVtIHdpdGggQUNMIGxpbmtpbmcgZmFpbHMuIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIFdoZW4gdGhlICJhY2wiIGxpYnJhcnkgaXMgdXNlZCwgY2hlY2sgaWYgdGhlICJhdHRyIiBsaWJyYXJ5IGlzCgkgICAgcHJlc2VudCBhbmQgdXNlIGl0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2xpbmsuc2gKClBhdGNoIDYuMS4wNzgKUHJvYmxlbTogICAgV2hlbiB1c2luZyAnZm9sZG1ldGhvZCcgIm1hcmtlciIgYW5kIHRoZSBlbmQgbWFya2VyIGFwcGVhcnMgYmVmb3JlCgkgICAgdGhlIHN0YXJ0IG1hcmtlciBpbiB0aGUgZmlsZSwgbm8gZm9sZCBpcyBmb3VuZC4gKE5henJpIFJhbWxpeSkKU29sdXRpb246ICAgRG9uJ3QgbGV0IHRoZSBmb2xkIGRlcHRoIGdvIG5lZ2F0aXZlLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMS4wNzkKUHJvYmxlbTogICAgV2hlbiB1c2luZyAicyIgaW4gVmlzdWFsIGJsb2NrIG1vZGUgd2l0aCAndmlydHVhbGVkaXQnIHNldCwgd2hlbgoJICAgIHRoZSBzZWxlY3RlZCBibG9jayBpcyBhZnRlciB0aGUgZW5kIG9mIHNvbWUgbGluZXMgdGhlIHdyb25nIHRleHQKCSAgICBpcyBpbnNlcnRlZCBhbmQgc29tZSBsaW5lcyBhcmUgc2tpcHBlZC4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEluc2VydCB0aGUgcmlnaHQgdGV4dCBhbmQgZXh0ZW5kIHNob3J0IGxpbmVzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjA4MApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGdjYyB3aXRoIC91c3IvbG9jYWwgYWxyZWFkeSBpbiB0aGUgc2VhcmNoIHBhdGgsIGFkZGluZwoJICAgIGl0IGFnYWluIGNhdXNlcyBwcm9ibGVtcy4KU29sdXRpb246ICAgQWRqdXN0IGNvbmZpZ3VyZS5pbiB0byBhdm9pZCBhZGRpbmcgL3Vzci9sb2NhbC9pbmNsdWRlIGFuZAoJICAgIC91c3IvbG9jYWwvbGliIHdoZW4gdXNpbmcgR0NDIGFuZCB0aGV5IGFyZSBhbHJlYWR5IHVzZWQuIChKb2hhbm5lcwoJICAgIFplbGxuZXIpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMDgxClByb2JsZW06ICAgICI6aGVscCBDVFJMLVxfQ1RSTC1OIiBkb2Vzbid0IHdvcmsuICAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQpTb2x1dGlvbjogICBEb3VibGUgdGhlIGJhY2tzbGFzaCB0byBhdm9pZCB0aGUgc3BlY2lhbCBtZWFuaW5nIG9mICJcXyIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjA4MgpQcm9ibGVtOiAgICBPbiBNUy1XaW5kb3dzIHRoZSB2aW1yY19leGFtcGxlLnZpbSBzY3JpcHQgaXMgc291cmNlZCBhbmQgdGhlbgoJICAgIG1zd2luLnZpbS4gIFRoaXMgZW5hYmxlcyB1c2luZyBzZWxlY3QgbW9kZSwgYnV0IHNpbmNlICJwIiBpcwoJICAgIG1hcHBlZCBpdCBkb2Vzbid0IHJlcGxhY2UgdGhlIHNlbGVjdGlvbi4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBtYXBwaW5nIG9mICJwIiBmcm9tIHZpbXJjX2V4YW1wbGUudmltLCBpdCdzIG9ic29sZXRlLgoJICAgIChWbGFkIFNhbmRyaW5pKQpGaWxlczoJICAgIHJ1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0KClBhdGNoIDYuMS4wODMKUHJvYmxlbTogICAgV2hlbiAkTEFORyBpcyAic2siIG9yICJza19zayIsIHRoZSBTbG92YWsgbWVudSBmaWxlIGlzbid0IGZvdW5kLgoJICAgIChNYXJ0aW4gTGFja28pClNvbHV0aW9uOiAgIEd1ZXNzIHRoZSByaWdodCBtZW51IGZpbGUgYmFzZWQgb24gdGhlIHN5c3RlbS4KRmlsZXM6CSAgICBydW50aW1lL2xhbmcvbWVudV9za19zay52aW0KClBhdGNoIDYuMS4wODQgKGRlcGVuZHMgb24gNi4xLjA4MCkKUHJvYmxlbTogICAgImluY2x1ZGUiIGFuZCAibGliIiBhcmUgbWl4ZWQgdXAgd2hlbiBjaGVja2luZyB0aGUgZGlyZWN0b3JpZXMgZ2NjCgkgICAgYWxyZWFkeSBzZWFyY2hlcy4KU29sdXRpb246ICAgU3dhcCB0aGUgdmFyaWFibGUgbmFtZXMuIChTdW5IbyBLaW0pCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMDg1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgQ1RSTC1PIENUUkwtXCBDVFJMLU4gZnJvbSBJbnNlcnQgbW9kZSwgdGhlIGRpc3BsYXllZAoJICAgIG1vZGUgIihpbnNlcnQpIiBpc24ndCByZW1vdmVkLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBDbGVhciB0aGUgY29tbWFuZCBsaW5lLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjA4NiAoZGVwZW5kcyBvbiA2LjEuMDQ5KQpQcm9ibGVtOiAgICBUaGUgZ3VpZmcgY29sb3IgZm9yIEN1cnNvcklNIGRvZXNuJ3QgdGFrZSBlZmZlY3QuClNvbHV0aW9uOiAgIFVzZSB0aGUgZm9yZWdyb3VuZCBjb2xvciB3aGVuIGl0J3MgZGVmaW5lZC4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4wODcKUHJvYmxlbTogICAgQSB0aGVzYXVydXMgd2l0aCBKYXBhbmVzZSBjaGFyYWN0ZXJzIGhhcyBwcm9ibGVtcyB3aXRoIGNoYXJhY3RlcnMKCSAgICBpbiBkaWZmZXJlbnQgd29yZCBjbGFzc2VzLgpTb2x1dGlvbjogICBPbmx5IHNlcGFyYXRlIHdvcmRzIHdpdGggc2luZ2xlLWJ5dGUgbm9uLXdvcmQgY2hhcmFjdGVycy4KCSAgICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4wODggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogbm8gZGVidWdnaW5nIGluZm8gaXMgZ2VuZXJhdGVkLiAgVGFncyBmaWxlIGV4Y2x1ZGVzIC5jcHAKCSAgICBmaWxlcy4KU29sdXRpb246ICAgQWRkICIvbWFwIiB0byBjb21waWxlciBmbGFncy4gIEFkZCAiKi5jcHAiIHRvIGN0YWdzIGNvbW1hbmQuCgkgICAgKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuMDg5ClByb2JsZW06ICAgIE9uIEJTREkgc3lzdGVtcyB0aGVyZSBpcyBubyBzc19zcCBmaWVsZCBpbiBzdGFja190LiAoUm9iZXJ0IEphbikKU29sdXRpb246ICAgVXNlIHNzX2Jhc2UgaW5zdGVhZC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcuaC5pbiwKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDkwClByb2JsZW06ICAgIENUUkwtRiBnZXRzIHN0dWNrIHdoZW4gJ3Njcm9sbG9mZicgaXMgbm9uLXplcm8gYW5kIHRoZXJlIGlzIGEgbWl4CgkgICAgb2YgbG9uZyB3cmFwcGluZyBsaW5lcyBhbmQgYSBub24td3JhcHBpbmcgbGluZS4KU29sdXRpb246ICAgQ2hlY2sgdGhhdCBDVFJMLUYgc2Nyb2xscyBhdCBsZWFzdCBvbmUgbGluZS4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjEuMDkxClByb2JsZW06ICAgIEdUSzogQ2FuJ3QgY2hhbmdlIHByZWVkaXRzdGF0ZSB3aXRob3V0IHNldHRpbmcgJ2ltYWN0aXZhdGVrZXknLgpTb2x1dGlvbjogICBBZGQgc29tZSBjb2RlIHRvIGNoYW5nZSBwcmVlZGl0c3RhdGUgZm9yIE9uVGhlU3BvdC4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMDkyClByb2JsZW06ICAgICI6bWFwY2xlYXIgPGJ1ZmZlcj4iIGRvZXNuJ3Qgd29yay4gKFNyaWthbnRoIEFkYXlhcGFsYW0pClNvbHV0aW9uOiAgIEFsbG93IGFuIGFyZ3VtZW50IGZvciAiOm1hcGNsZWFyIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjEuMDkzIChleHRyYSkKUHJvYmxlbTogICAgTWFjIGFuZCBNUy1XaW5kb3dzIEdVSTogd2hlbiBzY3JvbGxpbmcgd2hpbGUgIjpzIiBpcyB3b3JraW5nIHRoZQoJICAgIHJlc3VsdHMgY2FuIGJlIG1lc3NlZCB1cCwgYmVjYXVzZSB0aGUgY3Vyc29yIGlzIG1vdmVkLgpTb2x1dGlvbjogICBEaXNhbGxvdyBkaXJlY3Qgc2Nyb2xsaW5nIHdoZW4gbm90IHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9ndWlfdzE2LmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4wOTQKUHJvYmxlbTogICAgQ3lnd2luOiBQYXNzaW5nIGEgZmlsZSBuYW1lIHRoYXQgaGFzIGJhY2tzbGFzaGVzIGlzbid0IGhhbmRsZWQKCSAgICB2ZXJ5IHdlbGwuClNvbHV0aW9uOiAgIENvbnZlcnQgZmlsZSBuYW1lIGFyZ3VtZW50cyB0byBQb3NpeC4gIChDaHJpcyBNZXRjYWxmKQpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4wOTUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBzaWducyBjYW4gZnJlZSBhbiBpdGVtIG9uIHRoZSBzdGFjay4KCSAgICBPdmVycnVsaW5nIHNpZ24gY29sb3JzIGRvZXNuJ3Qgd29yay4gKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBEb24ndCBmcmVlIHRoZSBpdGVtIG9uIHRoZSBzdGFjay4gIFVzZSBOVUxMIGluc3RlYWQgb2YgIm5vbmUiIGZvcgoJICAgIHRoZSB2YWx1ZSBvZiB0aGUgY29sb3IuCkZpbGVzOgkgICAgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjA5NgpQcm9ibGVtOiAgICBXaGVuIGVyYXNpbmcgdGhlIHJpZ2h0IGhhbHZlIG9mIGEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyLCBpdCBtYXkKCSAgICBjYXVzZSBmdXJ0aGVyIGNoYXJhY3RlcnMgdG8gYmUgZXJhc2VkLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBNYWtlIHN1cmUgb25seSBvbmUgY2hhcmFjdGVyIGlzIGVyYXNlZC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wOTcgKGRlcGVuZHMgb24gNi4xLjA5MCkKUHJvYmxlbTogICAgV2hlbiAnc2Nyb2xsb2ZmJyBpcyBzZXQgdG8gYSBodWdlIHZhbHVlLCBDVFJMLUYgYXQgdGhlIGVuZCBvZiB0aGUKCSAgICBmaWxlIHNjcm9sbHMgb25lIGxpbmUuIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIERvbid0IHNjcm9sbCB3aGVuIENUUkwtRiBkZXRlY3RzIHRoZSBlbmQtb2YtZmlsZS4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjEuMDk4ClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gdGhlIHh4ZCBwcm9ncmFtIGlzIHVuZGVyICJjOlxwcm9ncmFtIGZpbGVzIiB0aGUKCSAgICAiQ29udmVydCB0byBIZXgiIG1lbnUgZG9lc24ndCB3b3JrLiAoQnJpYW4gTWF0aGlzKQpTb2x1dGlvbjogICBQdXQgdGhlIHBhdGggdG8geHhkIGluIGRvdWJsZSBxdW90ZXMuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjA5OQpQcm9ibGVtOiAgICBNZW1vcnkgY29ycnVwdGVkIHdoZW4gY2xvc2luZyBhIGZvbGQgd2l0aCBtb3JlIHRoYW4gOTk5OTkgbGluZXMuClNvbHV0aW9uOiAgIEFsbG9jYXRlIG1vcmUgc3BhY2UgZm9yIHRoZSBmb2xkIHRleHQuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMTAwIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMDg4KQpQcm9ibGVtOiAgICBXaW4zMjogVkM1IGFuZCBlYXJsaWVyIGRvbid0IHN1cHBvcnQgdGhlIC9tYXBpbmZvIG9wdGlvbi4KU29sdXRpb246ICAgQWRkICIvbWFwaW5mbyIgb25seSB3aGVuICJNQVA9bGluZXMiIGlzIHNwZWNpZmllZC4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuMTAxClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICI6b3B0aW9ucyIgdGhlIHRhYnN0b3Agb2YgYSBuZXcgd2luZG93IGlzIDE1LiAgRW50cnkKCSAgICBpbiAiOm9wdGlvbnMiIHdpbmRvdyBmb3IgJ2F1dG93cml0ZWFsbCcgaXMgd3JvbmcuIChBbnRvaW5lIEoKCSAgICBNZWNoZWx5bmNrKSAgQ2FuJ3QgaW5zZXJ0IGEgc3BhY2UgaW4gYW4gb3B0aW9uIHZhbHVlLgpTb2x1dGlvbjogICBVc2UgIjpzZXRsb2NhbCIgaW5zdGVhZCBvZiAiOnNldCIuICBDaGFuZ2UgImF3IiB0byAiYXdhIi4KCSAgICBEb24ndCBtYXAgc3BhY2UgaW4gSW5zZXJ0IG1vZGUuCkZpbGVzOgkgICAgcnVudGltZS9vcHR3aW4udmltCgpQYXRjaCA2LjEuMTAyClByb2JsZW06ICAgIFVucHJpbnRhYmxlIGFuZCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gYSBzdGF0dXNsaW5lIGl0ZW0gYXJlIG5vdAoJICAgIHRydW5jYXRlZCBjb3JyZWN0bHkuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIENvdW50IHRoZSB3aWR0aCBvZiBjaGFyYWN0ZXJzIGluc3RlYWQgb2YgdGhlIG51bWJlciBvZiBieXRlcy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4xMDMKUHJvYmxlbTogICAgQSBmdW5jdGlvbiByZXR1cm5pbmcgZnJvbSBhIHdoaWxlIGxvb3AsIHdpdGggJ3ZlcmJvc2UnIHNldCB0byAxMgoJICAgIG9yIGhpZ2hlciwgZG9lc24ndCBtZW50aW9uIHRoZSByZXR1cm4gdmFsdWUuICBBIGZ1bmN0aW9uIHdpdGggdGhlCgkgICAgJ2Fib3J0JyBhdHRyaWJ1dGUgbWF5IHJldHVybiAtMSB3aGlsZSB0aGUgdmVyYm9zZSBtZXNzYWdlIHNheXMKCSAgICBzb21ldGhpbmcgZWxzZS4KU29sdXRpb246ICAgTW92ZSB0aGUgdmVyYm9zZSBtZXNzYWdlIGFib3V0IHJldHVybmluZyBmcm9tIGEgZnVuY3Rpb24gdG8KCSAgICBjYWxsX2Z1bmMoKS4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjEwNApQcm9ibGVtOiAgICBHQ0MgMy4xIGFwcGVhcnMgdG8gaGF2ZSBhbiBvcHRpbWl6ZXIgcHJvYmxlbSB0aGF0IG1ha2VzIHRlc3QgMwoJICAgIGNyYXNoLgpTb2x1dGlvbjogICBGb3IgR0NDIDMuMSBhZGQgLWZuby1zdHJlbmd0aC1yZWR1Y2UgdG8gYXZvaWQgdGhlIG9wdGltaXplciBidWcuCgkgICAgRmlsdGVyIG91dCBleHRyYSBpbmZvIGZyb20gImdjYyAtLXZlcnNpb24iLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjEwNQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIGRlZmF1bHQgZm9yICdzaGVsbHBpcGUnIGRvZXNuJ3QgcmVkaXJlY3Qgc3RkZXJyLiAoRGlvbgoJICAgIE5pY29sYWFzKQpTb2x1dGlvbjogICBSZWRpcmVjdCBzdGRlcnIsIGRlcGVuZGluZyBvbiB0aGUgc2hlbGwgKGxpa2UgZm9yICdzaGVsbHJlZGlyJykuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMTA2ClByb2JsZW06ICAgIFRoZSBtYXplIHByb2dyYW0gY3Jhc2hlcy4KU29sdXRpb246ICAgQ2hhbmdlICIxMSIgdG8gIjI3IiBhbmQgaXQgd29ya3MuIChHcmVnIFJvZWxvZnMpCkZpbGVzOgkgICAgcnVudGltZS9tYWNyb3MvbWF6ZS9tYXplYW5zaS5jCgpQYXRjaCA2LjEuMTA3ClByb2JsZW06ICAgIFdoZW4gJ2xpc3QnIGlzIHNldCB0aGUgY3VycmVudCBsaW5lIGluIHRoZSBlcnJvciB3aW5kb3cgbWF5IGJlCgkgICAgZGlzcGxheWVkIHdyb25nLiAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBEb24ndCBjb250aW51ZSB0aGUgbGluZSBhZnRlciB0aGUgJCBoYXMgYmVlbiBkaXNwbGF5ZWQgYW5kIHRoZQoJICAgIHJpZ2h0bW9zdCBjb2x1bW4gaXMgcmVhY2hlZC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4xMDgKUHJvYmxlbTogICAgV2hlbiBpbnRlcnJ1cHRpbmcgYSBmaWx0ZXIgY29tbWFuZCBzdWNoIGFzICIhIXNsZWVwIDIwIiB0aGUgZmlsZQoJICAgIGJlY29tZXMgcmVhZC1vbmx5LiAoTWFyayBCcmFkZXIpClNvbHV0aW9uOiAgIE9ubHkgc2V0IHRoZSByZWFkLW9ubHkgZmxhZyB3aGVuIG9wZW5pbmcgYSBidWZmZXIgaXMgaW50ZXJydXB0ZWQuCgkgICAgV2hlbiB0aGUgc2hlbGwgY29tbWFuZCB3YXMgaW50ZXJydXB0ZWQsIHJlYWQgdGhlIG91dHB1dCB0aGF0IHdhcwoJICAgIHByb2R1Y2VkIHNvIGZhci4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4xMDkKUHJvYmxlbTogICAgV2hlbiAnZWFkaXJlY3Rpb24nIGlzICJob3IiLCB1c2luZyBDVFJMLVcgPSBkb2Vzbid0IGVxdWFsaXplIHRoZQoJICAgIHdpbmRvdyBoZWlnaHRzLiAoUm9tYW4gTmV1aGF1c2VyKQpTb2x1dGlvbjogICBJZ25vcmUgJ2VhZGlyZWN0aW9uJyBmb3IgQ1RSTC1XID0KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4xMTAKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmJhZGQgZmlsZSIgd2hlbiAiZmlsZSIgaXMgYWxyZWFkeSBwcmVzZW50IGJ1dCBub3QKCSAgICBsaXN0ZWQsIGl0IHN0YXlzIHVubGlzdGVkLiAoRGF2aWQgRnJleSkKU29sdXRpb246ICAgU2V0ICdidWZsaXN0ZWQnLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjExMQpQcm9ibGVtOiAgICBJdCdzIG5vdCBwb3NzaWJsZSB0byBkZXRlY3QgdXNpbmcgdGhlIFVuaXggc291cmNlcyBvbiBXaW4zMiBvciBNYWMuClNvbHV0aW9uOiAgIEFkZCBoYXMoIm1hY3VuaXgiKSBhbmQgaGFzKCJ3aW4zMnVuaXgiKS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjExMgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6YXJnZG8iLCAiOmJ1ZmRvIiBvciAiOndpbmRvIiwgQ1RSTC1PIGRvZXNuJ3QgZ28gdG8KCSAgICB0aGUgY3Vyc29yIHBvc2l0aW9uIGZyb20gYmVmb3JlIHRoaXMgY29tbWFuZCBidXQgZXZlcnkgcG9zaXRpb24KCSAgICB3aGVyZSB0aGUgYXJndW1lbnQgd2FzIGV4ZWN1dGVkLgpTb2x1dGlvbjogICBPbmx5IHJlbWVtYmVyIHRoZSBjdXJzb3IgcG9zaXRpb24gZnJvbSBiZWZvcmUgdGhlICI6YXJnZG8iLAoJICAgICI6YnVmZG8iIGFuZCAiOndpbmRvIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL21hcmsuYwoKUGF0Y2ggNi4xLjExMwpQcm9ibGVtOiAgICAiOmJ1ZmRvIGJ3aXBlIiBvbmx5IHdpcGVzIG91dCBoYWxmIHRoZSBidWZmZXJzLiAgKFJvbWFuIE5ldWhhdXNlcikKU29sdXRpb246ICAgRGVjaWRlIHdoYXQgYnVmZmVyIHRvIGdvIHRvIG5leHQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjExNApQcm9ibGVtOiAgICAiOnB5dGhvbiBpbXBvcnQgdmltIiwgIjpweXRob24gdmltLmN1cnJlbnQuYnVmZmVyWzA6MF0gPSBbXSIgZ2l2ZXMKCSAgICBhIGxhbGxvYygwKSBlcnJvci4gKENocmlzIFNvdXRoZXJuKQpTb2x1dGlvbjogICBEb24ndCBhbGxvY2F0ZSBhbiBhcnJheSB3aGVuIGl0J3Mgc2l6ZSBpcyB6ZXJvLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4xLjExNQpQcm9ibGVtOiAgICAiZGFzIiBvbiB0aGUgd2hpdGUgc3BhY2UgYXQgdGhlIGVuZCBvZiBhIHBhcmFncmFwaCBkb2VzIG5vdCBkZWxldGUKCSAgICB0aGUgIi4iIHRoZSBzZW50ZW5jZSBlbmRzIHdpdGguClNvbHV0aW9uOiAgIERvbid0IGV4Y2x1ZGUgdGhlIGxhc3QgY2hhcmFjdGVyIHdoZW4gaXQgaXMgbm90IHdoaXRlIHNwYWNlLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4xLjExNgpQcm9ibGVtOiAgICBXaGVuICdlbmRvZmxpbmUnIGlzIGNoYW5nZWQgd2hpbGUgJ2JpbmFyeScgaXMgc2V0IGEgZmlsZSBzaG91bGQgYmUKCSAgICBjb25zaWRlcmVkIG1vZGlmaWVkLiAoT2xhZiBCdWRkZW5oYWdlbikKU29sdXRpb246ICAgUmVtZW1iZXIgdGhlICdlb2wnIHZhbHVlIHdoZW4gZWRpdGluZyBzdGFydGVkIGFuZCBjb25zaWRlciB0aGUKCSAgICBmaWxlIGNoYW5nZWQgd2hlbiB0aGUgY3VycmVudCB2YWx1ZSBpcyBkaWZmZXJlbnQgYW5kICdiaW5hcnknIGlzCgkgICAgc2V0LiAgQWxzbyBmaXggdGhhdCB0aGUgd2luZG93IHRpdGxlIGlzbid0IHVwZGF0ZWQgd2hlbiAnZmYnIG9yCgkgICAgJ2JpbicgY2hhbmdlcy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMS4xMTcKUHJvYmxlbTogICAgU21hbGwgcHJvYmxlbSB3aXRoIGVkaXRpbmcgYSBmaWxlIG92ZXIgZnRwOiBhbmQgd2l0aCBDeWd3aW4uClNvbHV0aW9uOiAgIFJlbW92ZSBhIGRvdCBmcm9tIGEgIjpub3JtYWwiIGNvbW1hbmQuICBVc2UgImN5Z2RyaXZlIiB3aGVyZQoJICAgIGFwcHJvcHJpYXRlLiAgKENoYXJsZXMgQ2FtcGJlbGwpCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vbmV0cncudmltCgpQYXRjaCA2LjEuMTE4ClByb2JsZW06ICAgIFdoZW4gYSBmaWxlIGluIGRpZmYgbW9kZSBpcyByZWxvYWRlZCBiZWNhdXNlIGl0IGNoYW5nZWQgb3V0c2lkZQoJICAgIG9mIFZpbSwgb3RoZXIgd2luZG93cyBpbiBkaWZmIG1vZGUgYXJlIG5vdCBhbHdheXMgdXBkYXRlZC4KCSAgICAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBBZnRlciByZWxvYWRpbmcgYSBmaWxlIGluIGRpZmYgbW9kZSBtYXJrIGFsbCB3aW5kb3dzIGluIGRpZmYgbW9kZQoJICAgIGZvciByZWRyYXcuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4xLjExOSAoZXh0cmEpClByb2JsZW06ICAgIFdpdGggdGhlIFNuaWZmIGludGVyZmFjZSwgdXNpbmcgU25pZmYgNC4wLlggb24gSFAtVVgsIHRoZXJlIG1heSBiZQoJICAgIGEgY3Jhc2ggd2hlbiBjb25uZWN0aW5nIHRvIFNuaWZmLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHNuaWZmX3JxX3NlcCBzdWNoIHRoYXQgaXRzIHZhbHVlIGNhbiBiZSBjaGFuZ2VkLgoJICAgIChNYXJ0aW4gRWdsb2ZmKQpGaWxlczoJICAgIHNyYy9pZl9zbmlmZi5jCgpQYXRjaCA2LjEuMTIwIChkZXBlbmRzIG9uIDYuMS4wOTcpClByb2JsZW06ICAgIFdoZW4gJ3Njcm9sbG9mZicgaXMgbm9uLXplcm8gYW5kIHRoZXJlIGFyZSBmb2xkcywgQ1RSTC1GIGF0IHRoZQoJICAgIGVuZCBvZiB0aGUgZmlsZSBzY3JvbGxzIHBhcnQgb2YgYSBjbG9zZWQgZm9sZC4gIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgZmlyc3QgbGluZSB0byB0aGUgc3RhcnQgb2YgYSBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4xMjEgKGRlcGVuZHMgb24gNi4xLjA5OCkKUHJvYmxlbTogICAgV2hlbiBzdGFydGluZyBTZWxlY3QgbW9kZSBmcm9tIEluc2VydCBtb2RlLCB0aGVuIHVzaW5nIHRoZSBQYXN0ZQoJICAgIG1lbnUgZW50cnksIHRoZSBjdXJzb3IgaXMgbGVmdCBiZWZvcmUgdGhlIGxhc3QgcGFzdGVkIGNoYXJhY3Rlci4KCSAgICAoTWFyaW8gU2Nod2VpZ2xlcikKU29sdXRpb246ICAgU2V0IHRoZSBjdXJzb3IgZm9yIEluc2VydCBtb2RlIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIHJpZ2h0LgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4xMjIKUHJvYmxlbTogICAgIjpmaWxlIG5hbWUiIGNyZWF0ZXMgYSBuZXcgYnVmZmVyIHRvIGhvbGQgdGhlIG9sZCBidWZmZXIgbmFtZSwKCSAgICB3aGljaCBiZWNvbWVzIHRoZSBhbHRlcm5hdGUgZmlsZS4gIFRoaXMgYnVmZmVyIGlzIHVuZXhwZWN0ZWRseQoJICAgIGxpc3RlZC4KU29sdXRpb246ICAgQ3JlYXRlIHRoZSBidWZmZXIgZm9yIHRoZSBhbHRlcm5hdGUgbmFtZSB1bmxpc3RlZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMTIzClByb2JsZW06ICAgIEEgIjptYXRjaCIgY29tbWFuZCB3aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgZG9lc24ndCByZXBvcnQgYW4KCSAgICBlcnJvci4KU29sdXRpb246ICAgQ2hlY2sgZm9yIGV4dHJhIGNoYXJhY3RlcnMuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMTI0ClByb2JsZW06ICAgIFdoZW4gdHJ5aW5nIHRvIGV4aXQgYW5kIHRoZXJlIGlzIGEgaGlkZGVuIGJ1ZmZlciB0aGF0IGhhZCAnZW9sJwoJICAgIG9mZiBhbmQgJ2Jpbicgc2V0IGV4aXRpbmcgaXNuJ3QgcG9zc2libGUuIChKb2huIE1jR293YW4pClNvbHV0aW9uOiAgIFNldCBiX3N0YXJ0X2VvbCB3aGVuIGNsZWFyaW5nIHRoZSBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMTI1ClByb2JsZW06ICAgIEV4cGxvcmVyIHBsdWdpbiBhc2tzIGZvciBzYXZpbmcgYSBtb2RpZmllZCBidWZmZXIgZXZlbiB3aGVuIGl0J3MKCSAgICBvcGVuIGluIGFub3RoZXIgd2luZG93IGFzIHdlbGwuClNvbHV0aW9uOiAgIENvdW50IHRoZSBudW1iZXIgb2Ygd2luZG93cyB1c2luZyB0aGUgYnVmZmVyLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4xLjEyNgpQcm9ibGVtOiAgICBBZGRpbmcgdGhlIGNob2ljZXMgaW4gdGhlIHN5bnRheCBtZW51IGlzIGNvbnN1bWluZyBtdWNoIG9mIHRoZQoJICAgIHN0YXJ0dXAgdGltZSBvZiB0aGUgR1VJIHdoaWxlIGl0J3Mgbm90IG9mdGVuIHVzZWQuClNvbHV0aW9uOiAgIE9ubHkgYWRkIHRoZSBjaG9pY2VzIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXNlIHRoZW0uCkZpbGVzOgkgICAgTWFrZWZpbGUsIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL21lbnUudmltLAoJICAgIHJ1bnRpbWUvc3lubWVudS52aW0sIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjEyNwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICItLXJlbW90ZSBmaWxlIiBhbmQgdGhlIHNlcnZlciBoYXMgJ2luc2VydG1vZGUnIHNldCwKCSAgICBjb21tYW5kcyBhcmUgaW5zZXJ0ZWQgaW5zdGVhZCBvZiBiZWluZyBleGVjdXRlZC4gKE5pa2xhcyBWb2xiZXJzKQpTb2x1dGlvbjogICBHbyB0byBOb3JtYWwgbW9kZSBhZ2FpbiBhZnRlciB0aGUgIjpkcm9wIiBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xMjgKUHJvYmxlbTogICAgVGhlIGV4cHJlc3Npb24gImlucHV0KCd2ZXJ5IGxvbmcgcHJvbXB0JykiIHB1dHMgdGhlIGN1cnNvciBpbiB0aGUKCSAgICB3cm9uZyBsaW5lIChjb2x1bW4gaXMgT0spLgpTb2x1dGlvbjogICBBZGQgdGhlIHdyYXBwZWQgbGluZXMgdG8gdGhlIGluZGVudC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xLjEyOQpQcm9ibGVtOiAgICBPbiBTb2xhcmlzIGVkaXRpbmcgImZpbGUvIiBhbmQgdGhlbiAiZmlsZSIgcmVzdWx0cyBpbiB1c2luZyB0aGUKCSAgICBzYW1lIGJ1ZmZlci4gIChKaW0gQmF0dGxlKQpTb2x1dGlvbjogICBCZWZvcmUgdXNpbmcgc3RhdCgpLCBjaGVjayB0aGF0IHRoZXJlIGlzIG5vIGlsbGVnYWwgdHJhaWxpbmcKCSAgICBzbGFzaC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWcuaC5pbiwgc3JjL2NvbmZpZ3VyZS5pbiwKCSAgICBzcmMvbWFjcm9zLmggc3JjL21pc2MyLmMsIHNyYy9wcm90by9taXNjMi5wcm8KClBhdGNoIDYuMS4xMzAKUHJvYmxlbTogICAgVGhlIGRvY3VtZW50YXRpb24gZm9yIHNvbWUgb2YgdGhlICdlcnJvcmZvcm1hdCcgaXRlbXMgaXMgdW5jbGVhci4KU29sdXRpb246ICAgQWRkIG1vcmUgZXhhbXBsZXMgYW5kIGV4cGxhaW4gaGFyZCB0byB1bmRlcnN0YW5kIGl0ZW1zLiAoU3RlZmFuCgkgICAgUm9lbWVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3F1aWNrZml4LnR4dAoKUGF0Y2ggNi4xLjEzMQpQcm9ibGVtOiAgICBYMTEgR1VJOiB3aGVuIGV4cGFuZGluZyBhIENTSSBieXRlIGluIHRoZSBpbnB1dCBzdHJlYW0gdG8gS19DU0ksCgkgICAgdGhlIENTSSBieXRlIGl0c2VsZiBpc24ndCBjb3BpZWQuClNvbHV0aW9uOiAgIENvcHkgdGhlIENTSSBieXRlLgpGaWxlczoJICAgIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMS4xMzIKUHJvYmxlbTogICAgRXhlY3V0aW5nIGEgcmVnaXN0ZXIgaW4gRXggbW9kZSBtYXkgY2F1c2UgY29tbWFuZHMgdG8gYmUgc2tpcHBlZC4KCSAgICAoSm9obiBNY0dvd2FuKQpTb2x1dGlvbjogICBJbiBFeCBtb2RlIHVzZSBhbiBleHRyYSBjaGVjayBpZiB0aGUgcmVnaXN0ZXIgY29udGVudHMgd2FzCgkgICAgY29uc3VtZWQsIHRvIGF2b2lkIGlucHV0IGdvZXMgaW50byB0aGUgdHlwZWFoZWFkIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjEzMwpQcm9ibGVtOiAgICBXaGVuIGRyYXdpbmcgZG91YmxlLXdpZGUgY2hhcmFjdGVycyBpbiB0aGUgc3RhdHVzbGluZSwgbWF5IGNsZWFyCgkgICAgaGFsZiBvZiBhIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgRm9yY2UgcmVkcmF3IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBieSBzZXR0aW5nIHRoZSBhdHRyaWJ1dGVzCgkgICAgaW5zdGVhZCBvZiBwdXR0aW5nIGEgTlVMIGluIFNjcmVlbkxpbmVzW10uICBEbyBwdXQgYSBOVUwgaW4KCSAgICBTY3JlZW5MaW5lc1tdIHdoZW4gb3ZlcndyaXRpbmcgaGFsZiBvZiBhIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4xMzQKUHJvYmxlbTogICAgQW4gZXJyb3IgZm9yIGEgdHJhaWxpbmcgYXJndW1lbnQgb2YgIjptYXRjaCIgc2hvdWxkIG5vdCBiZSBnaXZlbgoJICAgIGFmdGVyICI6aWYgMCIuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBPbmx5IGRvIHRoZSBjaGVjayB3aGVuIGV4ZWN1dGluZyBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjEzNQpQcm9ibGVtOiAgICBQYXNzaW5nIGEgY29tbWFuZCB0byB0aGUgc2hlbGwgdGhhdCBpbmNsdWRlcyBhIG5ld2xpbmUgYWx3YXlzIGhhcwoJICAgIGEgYmFja3NsYXNoIGJlZm9yZSB0aGUgbmV3bGluZS4KU29sdXRpb246ICAgUmVtb3ZlIG9uZSBiYWNrc2xhc2ggYmVmb3JlIHRoZSBuZXdsaW5lLiAgKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4xMzYKUHJvYmxlbTogICAgV2hlbiAkVEVSTSBpcyAibGludXgiIHRoZSBkZWZhdWx0IGZvciAnYmFja2dyb3VuZCcgaXMgImRhcmsiLCBldmVuCgkgICAgdGhvdWdoIHRoZSBHVUkgdXNlcyBhIGxpZ2h0IGJhY2tncm91bmQuIChIdWdoIEFsbGVuKQpTb2x1dGlvbjogICBEb24ndCBtYXJrIHRoZSBvcHRpb24gYXMgc2V0IHdoZW4gZGVmYXVsdGluZyB0byAiZGFyayIgZm9yIHRoZQoJICAgIGxpbnV4IGNvbnNvbGUuICBBbHNvIHJlc2V0ICdiYWNrZ3JvdW5kJyB0byAibGlnaHQiIHdoZW4gdGhlIEdVSQoJICAgIGhhcyBhIGxpZ2h0IGJhY2tncm91bmQuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMTM3ClByb2JsZW06ICAgIENvbnZlcnRpbmcgdG8gSFRNTCBoYXMgYSBjbHVtc3kgd2F5IG9mIGRlYWxpbmcgd2l0aCB0YWJzIHdoaWNoIG1heQoJICAgIGNoYW5nZSB0aGUgaGlnaGxpZ2h0aW5nLgpTb2x1dGlvbjogICBSZXBsYWNlIHRhYnMgd2l0aCBzcGFjZXMgYWZ0ZXIgY29udmVydGluZyBhIGxpbmUgdG8gSFRNTC4gKFByZWJlbgoJICAgIEd1bGRiZXJnKQpGaWxlczoJICAgIHJ1bnRpbWUvc3ludGF4LzJodG1sLnZpbQoKUGF0Y2ggNi4xLjEzOCAoZGVwZW5kcyBvbiA2LjEuMTI2KQpQcm9ibGVtOiAgICBBZGRpbmcgZXh0cmEgaXRlbXMgdG8gdGhlIFN5bnRheCBtZW51IGNhbid0IGJlIGRvbmUgd2hlbiB0aGUgIlNob3cKCSAgICBpbmRpdmlkdWFsIGNob2ljZXMiIG1lbnUgaXMgdXNlZC4KU29sdXRpb246ICAgVXNlICI6cnVudGltZSEiIGluc3RlYWQgb2YgIjpzb3VyY2UiLCBzbyB0aGF0IGFsbCBzeW5tZW51LnZpbQoJICAgIGZpbGVzIGluIHRoZSBydW50aW1lIHBhdGggYXJlIGxvYWRlZC4gKFNlcnZhdGl1cyBCcmFuZHQpCgkgICAgQWxzbyBmaXggdGhhdCBhIHRyYW5zbGF0ZWQgbWVudSBjYW4ndCBiZSByZW1vdmVkLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4xMzkKUHJvYmxlbTogICAgQ3lnd2luOiBQQVRIX01BWCBpcyBub3QgZGVmaW5lZC4KU29sdXRpb246ICAgSW5jbHVkZSBsaW1pdHMuaC4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMTQwClByb2JsZW06ICAgIEN5Z3dpbjogIjphcmdzIGBscyAqLmNgIiBkb2VzIG5vdCB3b3JrIGlmIHRoZSBzaGVsbCBjb21tYW5kCgkgICAgcHJvZHVjZXMgQ1IgTkwgbGluZSBzZXBhcmF0b3JzLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIENSIGNoYXJhY3RlcnMgb3Vyc2VsdmVzLiAoUGF2b2wgSnVoYXMpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjE0MQpQcm9ibGVtOiAgICAiOndpbmNtZCBneCIgbWF5IGNhdXNlIHByb2JsZW1zIHdoZW4gbWl4ZWQgd2l0aCBvdGhlciBjb21tYW5kcy4KCSAgICAiOndpbmNtZCBjIiBkb2Vzbid0IGNsb3NlIHRoZSB3aW5kb3cgaW1tZWRpYXRlbHkuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIFBhc3MgdGhlIGV4dHJhIGNvbW1hbmQgY2hhcmFjdGVyIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgdGhlCgkgICAgc3R1ZmYgYnVmZmVyIGFuZCBjYWxsIGV4X2Nsb3NlKCkgZGlyZWN0bHkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL25vcm1hbC5wcm8sCgkgICAgc3JjL3Byb3RvL3dpbmRvdy5wcm8sIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjE0MgpQcm9ibGVtOiAgICBEZWZpbmluZyBwYXJhZ3JhcGhzIHdpdGhvdXQgYSBzZXBhcmF0aW5nIGJsYW5rIGxpbmUgaXNuJ3QKCSAgICBwb3NzaWJsZS4gIFBhcmFncmFwaHMgY2FuJ3QgYmUgZm9ybWF0dGVkIGF1dG9tYXRpY2FsbHkuClNvbHV0aW9uOiAgIEFsbG93IGRlZmluaW5nIHBhcmFncmFwaHMgd2l0aCBsaW5lcyB0aGF0IGVuZCBpbiB3aGl0ZSBzcGFjZS4KCSAgICBBZGRlZCB0aGUgJ3cnIGFuZCAnYScgZmxhZ3MgaW4gJ2Zvcm1hdG9wdGlvbnMnLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQsIHNyYy9lZGl0LmMsIHNyYy9taXNjMS5jLCBzcmMvbm9ybWFsLmMsCgkgICAgc3JjL29wdGlvbi5oLCBzcmMvb3BzLmMsIHNyYy9wcm90by9lZGl0LnBybywgc3JjL3Byb3RvL29wcy5wcm8sCgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjEuMTQzIChkZXBlbmRzIG9uIDYuMS4xNDIpClByb2JsZW06ICAgIEF1dG8gZm9ybWF0dGluZyBuZWFyIHRoZSBlbmQgb2YgdGhlIGZpbGUgbW92ZXMgdGhlIGN1cnNvciB0byBhCgkgICAgd3JvbmcgcG9zaXRpb24uICBJbiBJbnNlcnQgbW9kZSBzb21lIGxpbmVzIGFyZSBtYWRlIG9uZSBjaGFyIHRvbwoJICAgIG5hcnJvdy4gIFdoZW4gZGVsZXRpbmcgYSBsaW5lIHVuZG8gbWlnaHQgbm90IGFsd2F5cyB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBEb24ndCBhbHdheXMgbW92ZSB0byB0aGUgZW5kIG9mIHRoZSBsaW5lIGluIHRoZSBsYXN0IGxpbmUuICBEb24ndAoJICAgIHBvc2l0aW9uIHRoZSBjdXJzb3IgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lIGluIEluc2VydCBtb2RlLgoJICAgIEFmdGVyIGRlbGV0aW5nIGEgbGluZSBzYXZlIHRoZSBjdXJzb3IgbGluZSBmb3IgdW5kby4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvb3BzLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjE0NApQcm9ibGVtOiAgICBPYnRhaW5pbmcgdGhlIHNpemUgb2YgYSBsaW5lIGluIHNjcmVlbiBjaGFyYWN0ZXJzIGNhbiBiZSB3cm9uZy4KCSAgICBBIHBvaW50ZXIgbWF5IHdyYXAgYXJvdW5kIHplcm8uClNvbHV0aW9uOiAgIEluIHdpbl9saW5ldGFic2l6ZSgpIGNoZWNrIGZvciBhIE1BWENPTCBsZW5ndGggYXJndW1lbnQuIChKaW0KCSAgICBEdW5sZWF2eSkKRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jCgpQYXRjaCA2LjEuMTQ1ClByb2JsZW06ICAgIEdUSzogRHJhZyZkcm9wIHdpdGggbW9yZSB0aGFuIDMgZmlsZXMgbWF5IGNhdXNlIGEgY3Jhc2guIChNaWNrYWVsCgkgICAgTWFyY2hhbmQpClNvbHV0aW9uOiAgIFJld3JpdGUgdGhlIGNvZGUgdGhhdCBwYXJzZXMgdGhlIHJlY2VpdmVkIGxpc3Qgb2YgZmlsZXMgdG8gYmUgbW9yZQoJICAgIHJvYnVzdC4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4xLjE0NgpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBXaGVuICRIT01FIGlzIGNvbnN0cnVjdGVkIGZyb20gJEhPTUVEUklWRSBhbmQKCSAgICAkSE9NRVBBVEgsIGl0IGlzIG5vdCB1c2VkIGZvciBzdG9yaW5nIHRoZSBfdmltaW5mbyBmaWxlLiAgKE5vcm1hbAoJICAgIERpYW1vbmQpClNvbHV0aW9uOiAgIFNldCAkSE9NRSB3aXRoIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tICRIT01FRFJJVkUgYW5kICRIT01FUEFUSC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4xLjE0NyAoZXh0cmEpClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gYSBkaWFsb2cgaGFzIG5vIGRlZmF1bHQgYnV0dG9uLCBwcmVzc2luZyBFbnRlcgoJICAgIGVuZHMgaXQgYW55d2F5IGFuZCBhbGwgYnV0dG9ucyBhcmUgc2VsZWN0ZWQuClNvbHV0aW9uOiAgIERvbid0IGVuZCBhIGRpYWxvZyB3aGVuIHRoZXJlIGlzIG5vIGRlZmF1bHQgYnV0dG9uLiAgRG9uJ3Qgc2VsZWN0CgkgICAgYWxsIGJ1dHRvbiB3aGVuIHRoZXJlIGlzIG5vIGRlZmF1bHQuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMTQ4IChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93czogQUNMIGlzIG5vdCBwcm9wZXJseSBzdXBwb3J0ZWQuClNvbHV0aW9uOiAgIEFkZCBhbiBhY2Nlc3MoKSByZXBsYWNlbWVudCB0aGF0IGFsc28gd29ya3MgZm9yIEFDTC4gKE1pa2UKCSAgICBXaWxsaWFtcykKRmlsZXM6CSAgICBydW50aW1lL2RvYy9lZGl0aW5nLnR4dCwgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4xNDkgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBDYW4ndCB1c2UgZGlmZiBtb2RlIGZyb20gdGhlIGZpbGUgZXhwbG9yZXIuClNvbHV0aW9uOiAgIEFkZCBhICJkaWZmIHdpdGggVmltIiBjb250ZXh0IG1lbnUgZW50cnkuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgR3ZpbUV4dC9ndmltZXh0LmNwcCwgR3ZpbUV4dC9ndmltZXh0LmgKClBhdGNoIDYuMS4xNTAKUHJvYmxlbTogICAgT1MvMiwgTVMtV2luZG93cyBhbmQgTVMtRE9TOiBXaGVuICdzaGVsbHNsYXNoJyBpcyBzZXQgZ2V0Y3dkKCkKCSAgICBzdGlsbCB1c2VzIGJhY2tzbGFzaC4gKFllZ2FwcGFuIExha3NobWFuYW4pClNvbHV0aW9uOiAgIEFkanVzdCBzbGFzaGVzIGluIGdldGN3ZCgpLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xNTEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIE5URlMgc3Vic3RyZWFtIGlzbid0IGNvcGllZC4KU29sdXRpb246ICAgQ29weSB0aGUgc3Vic3RyZWFtIHdoZW4gbWFraW5nIGEgYmFja3VwIGNvcHkuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvb3Nfd2luMzIuYywgc3JjL3Byb3RvL29zX3dpbjMyLnBybwoKUGF0Y2ggNi4xLjE1MgpQcm9ibGVtOiAgICBXaGVuICRMQU5HIGlzIGlzbzg4NTktMSB0cmFuc2xhdGVkIG1lbnVzIGFyZSBub3QgdXNlZC4KU29sdXRpb246ICAgQ2hhbmdlIGlzbzg4NTkgdG8gaXNvXzg4NTkuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjE1MwpQcm9ibGVtOiAgICBTZWFyY2hpbmcgaW4gaW5jbHVkZWQgZmlsZXMgbWF5IHNlYXJjaCByZWN1cnNpdmVseSB3aGVuIHRoZSBwYXRoCgkgICAgc3RhcnRzIHdpdGggIi4uLyIuICAoU3ZlbiBCZXJrdmVucy1NYXR0aGlqc3NlKQpTb2x1dGlvbjogICBDb21wYXJlIGZ1bGwgZmlsZSBuYW1lcywgdXNlIGlub2RlL2RldmljZSB3aGVuIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4xLjE1NCAoZXh0cmEpClByb2JsZW06ICAgIERKR1BQOiAidmltIC1oIiBsZWF2ZXMgdGhlIGN1cnNvciBpbiBhIHdyb25nIHBvc2l0aW9uLgpTb2x1dGlvbjogICBEb24ndCBwb3NpdGlvbiB0aGUgY3Vyc29yIHVzaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLiAoSmltCgkgICAgRHVubGVhdnkpCkZpbGVzOgkgICAgc3JjL29zX21zZG9zLmMKClBhdGNoIDYuMS4xNTUKUHJvYmxlbTogICAgV2luMzI6IEN1cnNvciBtYXkgc29tZXRpbWVzIGRpc2FwcGVhciBpbiBJbnNlcnQgbW9kZS4KU29sdXRpb246ICAgQ2hhbmdlICJob3IxMCIgaW4gJ2d1aWN1cnNvcicgdG8gImhvcjE1Ii4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjE1NgpQcm9ibGVtOiAgICBDb252ZXJzaW9uIGJldHdlZW4gREJDUyBhbmQgVUNTLTIgaXNuJ3QgaW1wbGVtZW50ZWQgY2xlYW5seS4KU29sdXRpb246ICAgQ2xlYW4gdXAgYSBmZXcgdGhpbmdzLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuMTU3ClByb2JsZW06ICAgICdobHNlYXJjaCcgaGlnaGxpZ2h0cyBvbmx5IHRoZSBzZWNvbmQgY29tbWEgaW4gIiwsLCwsIiB3aXRoCgkgICAgIi8sXEA8PVteLF0qIi4gKFByZWJlbiBHdWxkYmVyZykKU29sdXRpb246ICAgQWxzbyBjaGVjayBmb3IgYW4gZW1wdHkgbWF0Y2ggdG8gc3RhcnQganVzdCBhZnRlciBhIHByZXZpb3VzCgkgICAgbWF0Y2guCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMTU4ClByb2JsZW06ICAgICJ6cyIgYW5kICJ6ZSIgZG9uJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCAiOnNldCBub3dyYXAgc2lzbz0xIi4KCSAgICAoUHJlYmVuIEd1bGRiZXJnKQpTb2x1dGlvbjogICBUYWtlICdzaXNvJyBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIGhvcml6b250YWwgc2Nyb2xsCgkgICAgcG9zaXRpb24gZm9yICJ6cyIgYW5kICJ6ZSIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMTU5ClByb2JsZW06ICAgIFdoZW4gZXhwYW5kaW5nIGFuIGFiYnJldmlhdGlvbiB0aGF0IGluY2x1ZGVzIGEgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlciB0b28gbWFueSBjaGFyYWN0ZXJzIGFyZSBkZWxldGVkLiAoQW5kcmV5IFVyYXpvdikKU29sdXRpb246ICAgRGVsZXRlIHRoZSBhYmJyZXZpYXRpb24gY291bnRpbmcgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIGJ5dGVzLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMS4xNjAKUHJvYmxlbTogICAgIjokcmVhZCBmaWxlLmd6IiBkb2Vzbid0IHdvcmsuIChQcmViZW4gR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgJ1sgbWFyayBhZnRlciBpdCBoYXMgYmVjb21lIGludmFsaWQuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS4xNjEgKGRlcGVuZHMgb24gNi4xLjE1OCkKUHJvYmxlbTogICAgV2FybmluZyBmb3Igc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUuICBDYW4gc2V0ICdzaXNvJyB0byBhIG5lZ2F0aXZlCgkgICAgdmFsdWUuIChNaWtlIFdpbGxpYW1zKQpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdC4gIEFkZCBhIGNoZWNrIGZvciAnc2lzbycgYmVpbmcgbmVnYXRpdmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4xNjIKUHJvYmxlbTogICAgUHl0aG9uIGludGVyZmFjZTogRGlkbid0IGluaXRpYWxpemUgdGhyZWFkcyBwcm9wZXJseS4KU29sdXRpb246ICAgQ2FsbCBQeUV2YWxfSW5pdFRocmVhZHMoKSB3aGVuIHN0YXJ0aW5nIHVwLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4xLjE2MwpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgY29tcGlsZSB3aXRoIFB5dGhvbiBhZnRlciA2LjEuMTYyLgpTb2x1dGlvbjogICBEeW5hbWljYWxseSBsb2FkICBQeUV2YWxfSW5pdFRocmVhZHMoKS4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMS4xNjQKUHJvYmxlbTogICAgSWYgJ21vZGlmaWFibGUnIGlzIG9mZiwgY29udmVydGluZyB0byB4eGQgZmFpbHMgYW5kICdmaWxldHlwZScgaXMKCSAgICBjaGFuZ2VkIHRvICJ4eGQiIGFueXdheS4KU29sdXRpb246ICAgRG9uJ3QgY2hhbmdlICdmaWxldHlwZScgd2hlbiBjb252ZXJzaW9uIGZhaWxlZC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjEuMTY1ClByb2JsZW06ICAgIE1ha2luZyBjaGFuZ2VzIGluIHNldmVyYWwgbGluZXMgYW5kIHRoZW4gYSBjaGFuZ2UgaW4gb25lIG9mIHRoZXNlCgkgICAgbGluZXMgdGhhdCBzcGxpdHMgaXQgaW4gdHdvIG9yIG1vcmUgbGluZXMsIHVuZG8gaW5mb3JtYXRpb24gd2FzCgkgICAgY29ycnVwdGVkLiAgTWF5IGNhdXNlIGEgY3Jhc2guIChEYXZlIEZpc2hidXJuKQpTb2x1dGlvbjogICBXaGVuIHNraXBwaW5nIHRvIHNhdmUgYSBsaW5lIGZvciB1bmRvIGJlY2F1c2UgaXQgd2FzIGFscmVhZHkKCSAgICBzYXZlZCwgbW92ZSBpdCB0byBiZWNvbWUgdGhlIGxhc3Qgc2F2ZWQgbGluZSwgc28gdGhhdCB3aGVuIHRoZQoJICAgIGNvbW1hbmQgY2hhbmdlcyB0aGUgbGluZSBjb3VudCBvdGhlciBzYXZlZCBsaW5lcyBhcmUgbm90IGludm9sdmVkLgpGaWxlczoJICAgIHNyYy91bmRvLmMKClBhdGNoIDYuMS4xNjYKUHJvYmxlbTogICAgV2hlbiAnYXV0b2luZGVudCcgaXMgc2V0IGFuZCBtc3dpbi52aW0gaGFzIGJlZW4gc291cmNlZCwgcGFzdGluZwoJICAgIHdpdGggQ1RSTC1WIGp1c3QgYWZ0ZXIgYXV0by1pbmRlbnRpbmcgcmVtb3ZlcyB0aGUgaW5kZW50LiAoU2hsb21pCgkgICAgRmlzaCkKU29sdXRpb246ICAgRmlyc3QgaW5zZXJ0IGFuICJ4IiBhbmQgZGVsZXRlIGl0IGFnYWluLCBzbyB0aGF0IHRoZSBhdXRvLWluZGVudAoJICAgIHJlbWFpbnMuCkZpbGVzOgkgICAgcnVudGltZS9tc3dpbi52aW0KClBhdGNoIDYuMS4xNjcKUHJvYmxlbTogICAgV2hlbiBnaXZpbmcgYSBuZWdhdGl2ZSBhcmd1bWVudCB0byAiOnJldGFiIiBzdHJhbmdlIHRoaW5ncyBzdGFydAoJICAgIGhhcHBlbmluZy4gKEhhbnMgR2luemVsKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBuZWdhdGl2ZSB2YWx1ZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMTY4ClByb2JsZW06ICAgIFByZXNzaW5nIENUUkwtQyBhdCB0aGUgaGl0LWVudGVyIHByb21wdCBkb2Vzbid0IGVuZCB0aGUgcHJvbXB0LgpTb2x1dGlvbjogICBNYWtlIENUUkwtQyBzdG9wIHRoZSBoaXQtZW50ZXIgcHJvbXB0LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS4xNjkKUHJvYmxlbTogICAgYnVmZXhpc3RzKCkgZmluZHMgYSBidWZmZXIgYnkgdXNpbmcgdGhlIG5hbWUgb2YgYSBzeW1ib2xpYyBsaW5rIHRvCgkgICAgaXQsIGJ1dCBidWZucigpIGRvZXNuJ3QuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpTb2x1dGlvbjogICBXaGVuIGJ1Zm5yKCkgY2FuJ3QgZmluZCBhIGJ1ZmZlciwgdHJ5IHVzaW5nIHRoZSBzYW1lIG1ldGhvZCBhcwoJICAgIGJ1ZmV4aXN0cygpLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xNzAKUHJvYmxlbTogICAgVXNpbmcgIjpta3Nlc3Npb24iIHVzZXMgdGhlIGRlZmF1bHQgc2Vzc2lvbiBmaWxlIG5hbWUsIGJ1dCAidmltCgkgICAgLVMiIGRvZXNuJ3QuIChIYW5zIEdpbnplbCkKU29sdXRpb246ICAgVXNlIHRoZSBkZWZhdWx0IHNlc3Npb24gZmlsZSBuYW1lIGlmICItUyIgaXMgdGhlIGxhc3QgY29tbWFuZAoJICAgIGxpbmUgYXJndW1lbnQgb3IgYW5vdGhlciBvcHRpb24gZm9sbG93cy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9zdGFydGluZy50eHQsIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xNzEKUHJvYmxlbTogICAgV2hlbiBvcGVuaW5nIGEgbGluZSBqdXN0IGFib3ZlIGEgY2xvc2VkIGZvbGQgd2l0aCAiTyIgYW5kIHRoZQoJICAgIGNvbW1lbnQgbGVhZGVyIGlzIGF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQsIHRoZSBjdXJzb3IgaXMgZGlzcGxheWVkCgkgICAgaW4gdGhlIGZpcnN0IGNvbHVtbi4gKFN1bmctSHl1biBOYW0pClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgZmxhZyB0aGF0IGluZGljYXRlcyB0aGUgY3Vyc29yIGlzIGluIGEgY2xvc2VkIGZvbGQuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMS4xNzIKUHJvYmxlbTogICAgQ29tbWFuZCBsaW5lIGNvbXBsZXRpb24gb2YgIjp0YWcgL3BhdCIgZG9lcyBub3Qgc2hvdyB0aGUgc2FtZQoJICAgIHJlc3VsdHMgYXMgdGhlIHRhZ3MgdGhlIGNvbW1hbmQgYWN0dWFsbHkgZmluZHMuIChHaWxsZXMgUm95KQpTb2x1dGlvbjogICBEb24ndCBtb2RpZnkgdGhlIHBhdHRlcm4gdG8gbWFrZSBpdCBhIHJlZ2V4cC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL3RhZy5jCgpQYXRjaCA2LjEuMTczClByb2JsZW06ICAgIFdoZW4gdXNpbmcgcmVtb3RlIGNvbnRyb2wgdG8gZWRpdCBhIHBvc2l0aW9uIGluIGEgZmlsZSBhbmQgdGhpcwoJICAgIGZpbGUgaXMgdGhlIGN1cnJlbnQgYnVmZmVyIGFuZCBpdCdzIG1vZGlmaWVkLCB0aGUgd2luZG93IGlzIHNwbGl0CgkgICAgYW5kIHRoZSAiOmRyb3AiIGNvbW1hbmQgZmFpbHMuClNvbHV0aW9uOiAgIERvbid0IHNwbGl0IHRoZSB3aW5kb3csIGtlZXAgZWRpdGluZyB0aGUgc2FtZSBidWZmZXIuCgkgICAgVXNlIHRoZSAiOmRyb3AiIGNvbW1hbmQgaW4gVmlzVmltIHRvIGF2b2lkIHRoZSBwcm9ibGVtIHRoZXJlLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvcHJvdG8vZXhfY21kczIucHJvLAoJICAgIFZpc1ZpbS9Db21tYW5kcy5jcHAKClBhdGNoIDYuMS4xNzQKUHJvYmxlbTogICAgSXQgaXMgZGlmZmljdWx0IHRvIGtub3cgaW4gYSBzY3JpcHQgd2hldGhlciBhbiBvcHRpb24gbm90IG9ubHkKCSAgICBleGlzdHMgYnV0IHJlYWxseSB3b3Jrcy4KU29sdXRpb246ICAgQWRkICJleGlzdHMoJytvcHRpb24nKSIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xNzUKUHJvYmxlbTogICAgV2hlbiByZWFkaW5nIGNvbW1hbmRzIGZyb20gYSBwaXBlIGFuZCBhIENUUkwtQyBpcyBwcmVzc2VkLCBWaW0KCSAgICB3aWxsIGhhbmcuIChQaWV0IERlbHBvcnQpClNvbHV0aW9uOiAgIERvbid0IGtlZXAgcmVhZGluZyBjaGFyYWN0ZXJzIHRvIGNsZWFyIHR5cGVhaGVhZCB3aGVuIGFuIGludGVycnVwdAoJICAgIHdhcyBkZXRlY3RlZCwgc3RvcCB3aGVuIGEgc2luZ2xlIENUUkwtQyBpcyByZWFkLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy91aS5jCgpQYXRjaCA2LjEuMTc2ClByb2JsZW06ICAgIFdoZW4gdGhlIHN0YWNrIGxpbWl0IGlzIHZlcnkgYmlnIGEgZmFsc2Ugb3V0LW9mLXN0YWNrIGVycm9yIG1heQoJICAgIGJlIGRldGVjdGVkLgpTb2x1dGlvbjogICBBZGQgYSBjaGVjayBmb3Igb3ZlcmZsb3cgb2YgdGhlIHN0YWNrIGxpbWl0IGNvbXB1dGF0aW9uLiAoSmltCgkgICAgRHVubGVhdnkpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjE3NyAoZGVwZW5kcyBvbiA2LjEuMTQxKQpQcm9ibGVtOiAgICAiOndpbmNtZCIgZG9lcyBub3QgYWxsb3cgYSBmb2xsb3dpbmcgY29tbWFuZC4gKEdhcnkgSm9obnNvbikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgZm9sbG93aW5nICIgfCBjbWQiLiAgQWxzbyBnaXZlIGFuIGVycm9yIGZvciB0cmFpbGluZwoJICAgIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4xNzgKUHJvYmxlbTogICAgV2hlbiAnZXhwYW5kdGFiJyBpcyBzZXQgInI8Qy1WPjxUYWI+IiBzdGlsbCBleHBhbmRzIHRoZSBUYWIuCgkgICAgKEJydWNlIGRlVmlzc2VyKQpTb2x1dGlvbjogICBSZXBsYWNlIHdpdGggYSBsaXRlcmFsIFRhYi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMS4xNzkgKGRlcGVuZHMgb24gNi4xLjA5MSkKUHJvYmxlbTogICAgV2hlbiB1c2luZyBYMTFSNSBYSU1QcmVzZXJ2ZVN0YXRlIGlzIHVuZGVmaW5lZC4gKEFsYmVydCBDaGluKQpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSBtaXNzaW5nIGRlZmluaXRpb25zLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMTgwClByb2JsZW06ICAgIFVzZSBvZiB0aGUgR1VJIGNvZGUgZm9yIGZvcmtpbmcgaXMgaW5jb25zaXN0ZW50LgpTb2x1dGlvbjogICBEZWZpbmUgTUFZX0ZPUksgYW5kIHVzZSBpdCBmb3IgbGF0ZXIgI2lmZGVmcy4gKEJlbiBGb3dsd2VyKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjE4MQpQcm9ibGVtOiAgICBJZiB0aGUgdGVybWluYWwgZG9lc24ndCB3cmFwIGZyb20gdGhlIGxhc3QgY2hhciBpbiBhIGxpbmUgdG8gdGhlCgkgICAgbmV4dCBsaW5lLCB0aGUgbGFzdCBjb2x1bW4gaXMgYmxhbmtlZCBvdXQuIChQZXRlciBLYXJwKQpTb2x1dGlvbjogICBEb24ndCBvdXRwdXQgYSBzcGFjZSB0byBtYXJrIHRoZSB3cmFwLCBidXQgdGhlIHNhbWUgY2hhcmFjdGVyCgkgICAgYWdhaW4uCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMTgyIChkZXBlbmRzIG9uIDYuMS4xNDIpClByb2JsZW06ICAgIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBhdXRvLWZvcm1hdCBjb21tZW50cyBvbmx5LiAoTW9zaGUgS2FtaW5za3kpClNvbHV0aW9uOiAgIFdoZW4gdGhlICdhJyBhbmQgJ2MnIGZsYWdzIGFyZSBpbiAnZm9ybWF0b3B0aW9ucycgb25seSBhdXRvLWZvcm1hdAoJICAgIGNvbW1lbnRzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQsIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4xODMKUHJvYmxlbTogICAgV2hlbiAnZmVuY3MnIGlzIGVtcHR5IGFuZCAnZW5jJyBpcyB1dGYtOCwgcmVhZGluZyBhIGZpbGUgd2l0aAoJICAgIGlsbGVnYWwgYnl0ZXMgZ2l2ZXMgIkNPTlZFUlNJT04gRVJST1IiIGV2ZW4gdGhvdWdoIG5vIGNvbnZlcnNpb24KCSAgICBpcyBkb25lLiAgJ3JlYWRvbmx5JyBpcyBzZXQsIGV2ZW4gdGhvdWdoIHdyaXRpbmcgdGhlIGZpbGUgcmVzdWx0cwoJICAgIGluIGFuIHVubW9kaWZpZWQgZmlsZS4KU29sdXRpb246ICAgRm9yIHRoaXMgc3BlY2lmaWMgZXJyb3IgdXNlICJJTExFR0FMIEJZVEUiIGFuZCBkb24ndCBzZXQKCSAgICAncmVhZG9ubHknLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjE4NCAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBleHRyYSBtb3VzZSBidXR0b25zIGZvdW5kIG9uIHNvbWUgbWljZSBkb24ndCB3b3JrLgpTb2x1dGlvbjogICBTdXBwb3J0IHR3byBleHRyYSBidXR0b25zIGZvciBNUy1XaW5kb3dzLiAoTWljaGFlbCBHZWRkZXMpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdGVybS50eHQsIHNyYy9lZGl0LmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZ3VpLmMsCgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywgc3JjL2tleW1hcC5oLCBzcmMvbWVzc2FnZS5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMS4xODUgKGRlcGVuZHMgb24gNi4xLjE4MikKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRob3V0ICtjb21tZW50cyBmZWF0dXJlLgpTb2x1dGlvbjogICBBZGQgI2lmZGVmIEZFQVRfQ09NTUVOVFMuIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjE4NiAoZGVwZW5kcyBvbiA2LjEuMTc3KQpQcm9ibGVtOiAgICAiOndpbmNtZCIgZG9lcyBub3QgYWxsb3cgYSBmb2xsb3dpbmcgY29tbWVudC4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBmb2xsb3dpbmcgZG91YmxlIHF1b3RlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMTg3ClByb2JsZW06ICAgIFVzaW5nICI6ZG9hcmciIHdpdGggJ2hpZGRlbicgc2V0IGFuZCB0aGUgY3VycmVudCBmaWxlIGlzIHRoZSBvbmx5CgkgICAgYXJndW1lbnQgYW5kIHdhcyBtb2RpZmllZCBnaXZlcyBhbiBlcnJvciBtZXNzYWdlLiAoUHJlYmVuCgkgICAgR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IHRyeSByZS1lZGl0aW5nIHRoZSBzYW1lIGZpbGUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4xODggKGRlcGVuZHMgb24gNi4xLjE3MykKUHJvYmxlbTogICAgVW51c2VkIHZhcmlhYmxlIGluIHRoZSBzbWFsbCB2ZXJzaW9uLgpTb2x1dGlvbjogICBNb3ZlIHRoZSBkZWNsYXJhdGlvbiBmb3IgInAiIGluc2lkZSAjaWZkZWYgRkVBVF9MSVNUQ01EUy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjE4OQpQcm9ibGVtOiAgICBpbnB1dGRpYWxvZygpIGRvZXNuJ3Qgd29yayB3aGVuICdjJyBpcyBpbiAnZ3Vpb3B0aW9ucycuIChBcmljCgkgICAgQmx1bWVyKQpTb2x1dGlvbjogICBGYWxsIGJhY2sgdG8gdGhlIGlucHV0KCkgZnVuY3Rpb24gaW4gdGhpcyBzaXR1YXRpb24uCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjE5MCAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogZG9lc24ndCBidWlsZCB3aXRoIEdUSyBHVUkuICBWYXJpb3VzIG90aGVyIHByb2JsZW1zLgpTb2x1dGlvbjogICBGaXggYnVpbGRpbmcgZm9yIEdUSy4gIEltcHJvdmVkIFBlcmwsIFB5dGhvbiBhbmQgVENMIHN1cHBvcnQuCgkgICAgSW1wcm92ZWQgVk1TIGRvY3VtZW50YXRpb24uIChab2x0YW4gQXJwYWRmZnkpCgkgICAgQWRkZWQgVmltdHV0b3IgZm9yIFZNUyAoVC4gUi4gV3lhbnQpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3Nfdm1zLnR4dCwgc3JjL0lOU1RBTEx2bXMudHh0LCBzcmMvZ3VpX2d0a19mLmgsCgkgICAgc3JjL2lmX3RjbC5jLCBzcmMvbWFpbi5jLCBzcmMvZ3VpX2d0a192bXMuaCwgc3JjL01ha2Vfdm1zLm1tcywKCSAgICBzcmMvb3Nfdm1zLm9wdCwgc3JjL3Byb3RvL2lmX3RjbC5wcm8sIHZpbXR1dG9yLmNvbSwKCSAgICBzcmMvdGVzdGRpci9NYWtlX3Ztcy5tbXMKClBhdGNoIDYuMS4xOTEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAidmltIC1zIHNjcmlwdCIgYW5kIHJlZGlyZWN0aW5nIHRoZSBvdXRwdXQsIHRoZSBkZWxheQoJICAgIGZvciB0aGUgIk91dHB1dCBpcyBub3QgdG8gYSB0ZXJtaW5hbCIgd2FybmluZyBzbG93cyBWaW0gZG93biB0b28KCSAgICBtdWNoLgpTb2x1dGlvbjogICBEb24ndCBkZWxheSB3aGVuIHJlYWRpbmcgY29tbWFuZHMgZnJvbSBhIHNjcmlwdC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMTkyClByb2JsZW06ICAgICI6ZGlmZnNwbGl0IiBkb2Vzbid0IGFkZCAiaG9yIiB0byAnc2Nyb2xsb3B0Jy4gKEdhcnkgSm9obnNvbikKU29sdXRpb246ICAgQWRkICJob3IiIHRvICdzY3JvbGxvcHQnIGVhY2ggdGltZSAiOmRpZmZzcGxpdCIgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMTkzClByb2JsZW06ICAgIENyYXNoIGluIGluX2lkX2xpc3QoKSBmb3IgYW4gaXRlbSB3aXRoIGEgImNvbnRhaW5lZGluIiBsaXN0LiAoRGF2ZQoJICAgIEZpc2hidXJuKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBuZWdhdGl2ZSBzeW50YXggaWQsIHVzZWQgZm9yIGtleXdvcmRzLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4xLjE5NApQcm9ibGVtOiAgICBXaGVuICJ0X3RpIiBpcyBzZXQgYnV0IGl0IGRvZXNuJ3QgY2F1c2Ugc3dhcHBpbmcgdGVybWluYWwgcGFnZXMsCgkgICAgIlpaIiBtYXkgY2F1c2UgdGhlIHNoZWxsIHByb21wdCB0byBhcHBlYXIgb24gdG9wIG9mIHRoZSBmaWxlLXdyaXRlCgkgICAgbWVzc2FnZS4KU29sdXRpb246ICAgU2Nyb2xsIHRoZSB0ZXh0IHVwIGluIHRoZSBWaW0gcGFnZSBiZWZvcmUgc3dhcHBpbmcgdG8gdGhlIHRlcm1pbmFsCgkgICAgcGFnZS4gKE1pY2hhZWwgU2Nocm9lZGVyKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4xOTUKUHJvYmxlbTogICAgVGhlIHF1aWNrZml4IGFuZCBwcmV2aWV3IHdpbmRvd3MgYWx3YXlzIGtlZXAgdGhlaXIgaGVpZ2h0LCB3aGlsZQoJICAgIG90aGVyIHdpbmRvd3MgY2FuJ3QgZml4IHRoZWlyIGhlaWdodC4KU29sdXRpb246ICAgQWRkIHRoZSAnd2luZml4aGVpZ2h0JyBvcHRpb24sIHNvIHRoYXQgYSBmaXhlZCBoZWlnaHQgY2FuIGJlCgkgICAgc3BlY2lmaWVkIGZvciBhbnkgd2luZG93LiAgQWxzbyBmaXggdGhhdCB0aGUgd2lsZG1lbnUgbWF5IHJlc2l6ZSBhCgkgICAgb25lLWxpbmUgd2luZG93IHRvIGEgdHdvLWxpbmUgd2luZG93IGlmICdscycgaXMgemVyby4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgcnVudGltZS9vcHR3aW4udmltLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvb3B0aW9uLmMsIHNyYy9xdWlja2ZpeC5jLAoJICAgIHNyYy9zY3JlZW4uYywgc3JjL3N0cnVjdHMuaCwgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMTk2ICAoZGVwZW5kcyBvbiA2LjEuMDg0KQpQcm9ibGVtOiAgICBPbiBNYWMgT1MgWCAxMC4yIGdlbmVyYXRpbmcgb3NkZWYuaCBmYWlscy4KU29sdXRpb246ICAgQWRkIC1uby1jcHAtcHJlY29tcCB0byBhdm9pZCB1c2luZyBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMsIHdoaWNoCgkgICAgZGlzYWJsZXMgcHJpbnRpbmcgdGhlIHNlYXJjaCBwYXRoLiAoQmVuIEZvd2xlcikKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4xOTcKUHJvYmxlbTogICAgIjpoZWxwIDxDLVY+PEMtXD48Qy1WPjxDLU4+IiAocmVzdWx0aW5nIGluIDwxYz48MGU+KSBnaXZlcyBhbgoJICAgIGVycm9yIG1lc3NhZ2UuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb3VibGUgdGhlIGJhY2tzbGFzaCBpbiAiQ1RSTC1cIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMTk4IChleHRyYSkgKGRlcGVuZHMgb24gNi4xLjA3NikKUHJvYmxlbTogICAgTWFjIE9TIFg6IERpYWxvZ3VlcyBkb24ndCB3b3JrLgpTb2x1dGlvbjogICBGaXggYSBjcmFzaGluZyBwcm9ibGVtIGZvciBzb21lIEdVSSBkaWFsb2d1ZXMuICBGaXggYSBwcm9ibGVtIHdoZW4KCSAgICBzYXZpbmcgdG8gYSBuZXcgZmlsZSBmcm9tIHRoZSBHVUkuIChQZXRlciBDdWNrYSkKRmlsZXM6CSAgICBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjEuMTk5ClByb2JsZW06ICAgICdndWlmb250d2lkZScgZG9lc24ndCB3b3JrIG9uIFdpbjMyLgpTb2x1dGlvbjogICBPdXRwdXQgZWFjaCB3aWRlIGNoYXJhY3RlciBzZXBhcmF0ZWx5LiAoTWljaGFlbCBHZWRkZXMpCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMjAwClByb2JsZW06ICAgICI6c3luIHN5bmMgZnJvbXN0YXJ0IiBpcyBub3Qgc2tpcHBlZCBhZnRlciAiOmlmIDAiLiAgVGhpcyBjYW4gbWFrZQoJICAgIHN5bnRheCBoaWdobGlnaHRpbmcgdmVyeSBzbG93LgpTb2x1dGlvbjogICBDaGVjayAiZWFwLT5za2lwIiBhcHByb3ByaWF0ZWx5LiAoUm9iIFdlc3QpCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMjAxIChkZXBlbmRzIG9uIDYuMS4xOTIpClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIGlsbGVnYWwgcG9pbnRlciBjb21iaW5hdGlvbi4gKFpvbHRhbiBBcnBhZGZmeSkKU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4xLjIwMiAgKGV4dHJhKShkZXBlbmRzIG9uIDYuMS4xNDgpClByb2JsZW06ICAgIFdpbjMyOiBmaWxld3JpdGFibGUoKSBkb2Vzbid0IHdvcmsgcHJvcGVybHkgb24gZGlyZWN0b3JpZXMuClNvbHV0aW9uOiAgIGZpeCBmaWxld3JpdGFibGUoKS4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4yMDMKUHJvYmxlbTogICAgIjolcy9+Ly8iIGNhdXNlcyBhIGNyYXNoIGFmdGVyICI6JXMveC8vIi4gKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIEF2b2lkIHJlYWRpbmcgcGFzdCB0aGUgZW5kIG9mIGEgbGluZSB3aGVuICJ+IiBpcyBlbXB0eS4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMS4yMDQgKGRlcGVuZHMgb24gNi4xLjEyOSkKUHJvYmxlbTogICAgV2FybmluZyBmb3IgYW4gaWxsZWdhbCBwb2ludGVyIG9uIFNvbGFyaXMuClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0LiAoRGVyZWsgV3lhdHQpCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMS4yMDUKUHJvYmxlbTogICAgVGhlIGd6aXAgcGx1Z2luIGNoYW5nZXMgdGhlIGFsdGVybmF0ZSBmaWxlIHdoZW4gZWRpdGluZyBhCgkgICAgY29tcHJlc3NlZCBmaWxlLiAoT2xpdmVyIEZ1Y2hzKQpTb2x1dGlvbjogICBUZW1wb3JhcmlseSByZW1vdmUgdGhlICdhJyBhbmQgJ0EnIGZsYWdzIGZyb20gJ2NwbycuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS4yMDYKUHJvYmxlbTogICAgVGhlIHNjcmlwdCBnZW5lcmF0ZWQgd2l0aCAiOm1rc2Vzc2lvbiIgZG9lc24ndCB3b3JrIHByb3Blcmx5IHdoZW4KCSAgICBzb21lIGNvbW1hbmRzIGFyZSBtYXBwZWQuClNvbHV0aW9uOiAgIFVzZSAiOm5vcm1hbCEiIGluc3RlYWQgb2YgIjpub3JtYWwiLiAgQW5kIHVzZSAiOndpbmNtZCIgd2hlcmUKCSAgICBwb3NzaWJsZS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4xLjIwNwpQcm9ibGVtOiAgICBJbmRlbnRpbmcgYSBKYXZhIGZpbGUgaGFuZ3MgYmVsb3cgYSBsaW5lIHdpdGggYSBjb21tZW50IGFmdGVyIGEKCSAgICBjb21tYW5kLgpTb2x1dGlvbjogICBCcmVhayBvdXQgb2YgYSBsb29wLiAoQW5kcmUgUGFuZykKCSAgICBBbHNvIGxpbmUgdXAgfSB3aXRoIG1hdGNoaW5nIHsuCkZpbGVzOgkgICAgcnVudGltZS9pbmRlbnQvamF2YS52aW0KClBhdGNoIDYuMS4yMDgKUHJvYmxlbTogICAgQ2FuJ3QgdXNlIHRoZSBidWZmZXIgbnVtYmVyIGZyb20gdGhlIFB5dGhvbiBpbnRlcmZhY2UuClNvbHV0aW9uOiAgIEFkZCBidWZmZXIubnVtYmVyLiAoTWljaGFsIFZpdGVjZWspCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjEuMjA5ClByb2JsZW06ICAgIFByaW50aW5nIGRvZXNuJ3Qgd29yayBvbiBNYWMgT1MgY2xhc3NpYy4KU29sdXRpb246ICAgVXNlIGEgIjoiIGZvciBwYXRoIHNlcGFyYXRvciB3aGVuIG9wZW5pbmcgdGhlIHJlc291cmNlIGZpbGUuIChBeGVsCgkgICAgS2llbGhvcm4pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4yMTAKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhbiBpY29udigpIGNvbnZlcnNpb24gZXJyb3Igd2hlbiByZWFkaW5nIGEgZmlsZQoJICAgIHRoZXJlIGNhbiBiZSBhbiBlcnJvciB0aGUgbmV4dCB0aW1lIGljb252KCkgaXMgdXNlZC4KU29sdXRpb246ICAgUmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBpY29udigpIGRlc2NyaXB0b3IuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMjExClByb2JsZW06ICAgIFRoZSBtZXNzYWdlICJ1c2UgISB0byBvdmVycmlkZSIgaXMgY29uZnVzaW5nLgpTb2x1dGlvbjogICBNYWtlIGl0ICJhZGQgISB0byBvdmVycmlkZSIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2ZpbGVpby5jLAoJICAgIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMS4yMTIKUHJvYmxlbTogICAgV2hlbiBWaW0gd2FzIHN0YXJ0ZWQgd2l0aCAiLVIiICI6bmV3IiBjcmVhdGVzIGEgYnVmZmVyCgkgICAgJ25vcmVhZG9ubHknIHdoaWxlICI6ZW5ldyIgaGFzICdyZWFkb25seScgc2V0LiAoUHJlYmVuIEd1bGRiZXJnKQpTb2x1dGlvbjogICBEb24ndCBzZXQgJ3JlYWRvbmx5IGluIGEgbmV3IGVtcHR5IGJ1ZmZlciBmb3IgIjplbmV3Ii4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjIxMwpQcm9ibGVtOiAgICBVc2luZyBDVFJMLVcgSCBtYXkgY2F1c2UgYSBiaWcgZ2FwIHRvIGFwcGVhciBiZWxvdyB0aGUgbGFzdAoJICAgIHdpbmRvdy4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIHdpbmRvdyBoZWlnaHQgd2hlbiB0aGVyZSBpcyBhIHZlcnRpY2FsIHNwbGl0LgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMjE0ClByb2JsZW06ICAgIFdoZW4gaW5zdGFsbGluZyBWaW0gYW5kIHRoZSBydW50aW1lIGZpbGVzIHdlcmUgY2hlY2tlZCBvdXQgZnJvbQoJICAgIENWUyB0aGUgQ1ZTIGRpcmVjdG9yaWVzIHdpbGwgYWxzbyBiZSBpbnN0YWxsZWQuClNvbHV0aW9uOiAgIEF2b2lkIGluc3RhbGxpbmcgdGhlIENWUyBkaXJzIGFuZCB0aGVpciBjb250ZW50cy4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMS4yMTUKUHJvYmxlbTogICAgV2luMzI6ICI6cHdkIiB1c2VzIGJhY2tzbGFzaGVzIGV2ZW4gd2hlbiAnc2hlbGxzbGFzaCcgaXMgc2V0LgoJICAgIChYaWFuZ2ppYW5nIE1hKQpTb2x1dGlvbjogICBBZGp1c3QgYmFja3NsYXNoZXMgYmVmb3JlIHByaW50aW5nIHRoZSBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjE2ClByb2JsZW06ICAgIFdoZW4gZHluYW1pY2FsbHkgbG9hZGluZyB0aGUgaWNvbnYgbGlicmFyeSwgdGhlIGVycm9yIGNvZGVzIG1heSBiZQoJICAgIGNvbmZ1c2VkLgpTb2x1dGlvbjogICBVc2Ugc3BlY2lmaWMgZXJyb3IgY29kZXMgZm9yIGljb252IGFuZCByZWRlZmluZSB0aGVtIGZvciBkeW5hbWljCgkgICAgbG9hZGluZy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9tYnl0ZS5jLCBzcmMvdmltLmgKClBhdGNoIDYuMS4yMTcKUHJvYmxlbTogICAgV2hlbiBzb3VyY2luZyB0aGUgc2FtZSBWaW0gc2NyaXB0IHVzaW5nIGEgZGlmZmVyZW50IG5hbWUgKHN5bWJvbGljCgkgICAgbGluayBvciBNUy1XaW5kb3dzIDguMyBuYW1lKSBpdCBpcyBsaXN0ZWQgdHdpY2Ugd2l0aAoJICAgICI6c2NyaXB0bmFtZXMiLiAgKFRvbnkgTWVjaGVseW5jaykKU29sdXRpb246ICAgVHVybiB0aGUgc2NyaXB0IG5hbWUgaW50byBhIGZ1bGwgcGF0aCBiZWZvcmUgdXNpbmcgaXQuICBPbiBVbml4CgkgICAgY29tcGFyZSBpbm9kZS9kZXZpY2UgbnVtYmVycy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjIxOApQcm9ibGVtOiAgICBObyBlcnJvciBtZXNzYWdlIGZvciB1c2luZyB0aGUgZnVuY3Rpb24gYXJndW1lbnQgIjUrIi4gIChTZXJ2YXRpdXMKCSAgICBCcmFuZHQpClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBpZiBhIGZ1bmN0aW9uIG9yIHZhcmlhYmxlIGlzIGV4cGVjdGVkIGJ1dCBpcwoJICAgIG5vdCBmb3VuZC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjE5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjphbWVudSA6YiAxPENSPiIgd2l0aCBhIFZpc3VhbCBzZWxlY3Rpb24gYW5kCgkgICAgJ2luc2VydG1vZGUnIGlzIHNldCwgVmltIGRvZXMgbm90IHJldHVybiB0byBJbnNlcnQgbW9kZS4gKE1pY2thZWwKCSAgICBNYXJjaGFuZCkKU29sdXRpb246ICAgQWRkIHRoZSBjb21tYW5kIENUUkwtXCBDVFJMLUcgdGhhdCBnb2VzIHRvIEluc2VydCBtb2RlIGlmCgkgICAgJ2luc2VydG1vZGUnIGlzIHNldCBhbmQgdG8gTm9ybWFsIG1vZGUgb3RoZXJ3aXNlLiAgQXBwZW5kIHRoaXMgdG8KCSAgICBtZW51cyBkZWZpbmVkIHdpdGggIjphbWVudSIuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjIyMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgQnVmUmVhZFBvc3QgYXV0b2NvbW1hbmQgdGhhdCBjaGFuZ2VzIHRoZSBsaW5lIGNvdW50LAoJICAgIGUuZy4sICIkLTFqb2luIiwgcmVsb2FkaW5nIGEgZmlsZSB0aGF0IHdhcyBjaGFuZ2VkIG91dHNpZGUgVmltCgkgICAgZG9lcyBub3Qgd29yayBwcm9wZXJseS4gKEFsYW4gRyBJc2FhYykKU29sdXRpb246ICAgTWFrZSB0aGUgYnVmZmVyIGVtcHR5IGJlZm9yZSByZWFkaW5nIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgZmlsZS4KCSAgICBTYXZlIHRoZSBsaW5lcyBpbiBhIGR1bW15IGJ1ZmZlciwgc28gdGhhdCB0aGV5IGNhbiBiZSBwdXQgYmFjawoJICAgIHdoZW4gcmVhZGluZyB0aGUgZmlsZSBmYWlscy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9maWxlaW8uYywgc3JjL2dsb2JhbHMuaCwKCSAgICBzcmMvcHJvdG8vYnVmZmVyLnBybwoKUGF0Y2ggNi4xLjIyMQpQcm9ibGVtOiAgICBDaGFuZ2luZyBjYXNlIG1heSBub3Qgd29yayBwcm9wZXJseSwgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50CgkgICAgbG9jYWxlLgpTb2x1dGlvbjogICBBZGQgdGhlICdjYXNlbWFwJyBvcHRpb24gdG8gbGV0IHRoZSB1c2VyIGNob3NlIGhvdyBjaGFuZ2luZyBjYXNlCgkgICAgaXMgdG8gYmUgZG9uZS4KCSAgICBBbHNvIGZpeCBsb3dlcmluZyBjYXNlIHdoZW4gYW4gVVRGLTggY2hhcmFjdGVyIGRvZXNuJ3Qga2VlcCB0aGUKCSAgICBzYW1lIGJ5dGUgbGVuZ3RoLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvYXNjaWkuaCwgc3JjL2F1dG8vY29uZmlndXJlLAoJICAgIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYywgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9kaWZmLmMsIHNyYy9lZGl0LmMsIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzMi5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2ZpbGVpby5jLCBzcmMvZ3VpX2FtaWdhLmMKCSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvZ3VpX2Jlb3MuY2MsCgkgICAgc3JjL21hY3Jvcy5oLCBzcmMvbWFpbi5jLCBzcmMvbWJ5dGUuYywgc3JjL21lbnUuYywgc3JjL21lc3NhZ2UuYywKCSAgICBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9vcHRpb24uYywgc3JjL29zX21zZG9zLmMsCgkgICAgc3JjL29zX21zd2luLmMsIHNyYy9wcm90by9jaGFyc2V0LnBybywgc3JjL3JlZ2V4cC5jLCBzcmMvb3B0aW9uLmgsCgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMjIyIChkZXBlbmRzIG9uIDYuMS4yMTkpClByb2JsZW06ICAgIFBhdGNoIDYuMS4yMTkgd2FzIGluY29tcGxldGUuClNvbHV0aW9uOiAgIEFkZCB0aGUgY2hhbmdlcyBmb3IgIjphbWVudSIuCkZpbGVzOgkgICAgc3JjL21lbnUuYwoKUGF0Y2ggNi4xLjIyMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIElNRSBpcyBhY3RpdmF0ZWQgJ2ltaW5zZXJ0JyBpcyBzZXQsIGJ1dCBpdCBtaWdodCBuZXZlcgoJICAgIGJlIHJlc2V0IHdoZW4gSU1FIGlzIGRpc2FibGVkLiAoTXVyYW9rYSBUYXJvKQoJICAgIEFsbCBzeXN0ZW1zOiAnaW1pbnNlcnQnIGlzIHNldCB0byAyIHdoZW4gbGVhdmluZyBJbnNlcnQgbW9kZSwgZXZlbgoJICAgIHdoZW4gbGFuZ21hcCBpcyBiZWluZyB1c2VkLiAoUGV0ZXIgVmFsYWNoKQpTb2x1dGlvbjogICBEb24ndCBzZXQgImJfcF9pbWluc2VydCIgaW4gX09uSW1lTm90aWZ5KCkuIChNdXJhb2thIFRhcm8pCgkgICAgRG9uJ3Qgc3RvcmUgdGhlIHN0YXR1cyBvZiB0aGUgaW5wdXQgbWV0aG9kIGluICdpbWluc2VydCcgd2hlbgoJICAgICdpbWluc2VydCcgaXMgb25lLiAgQWxzbyBmb3IgZWRpdGluZyB0aGUgY29tbWFuZCBsaW5lIGFuZCBmb3IKCSAgICBhcmd1bWVudHMgdG8gTm9ybWFsIG1vZGUgY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjIyNApQcm9ibGVtOiAgICAiZXhwYW5kKCckVkFSJykiIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gdGhlIGV4cGFuZGVkICRWQVIKCSAgICBpcyBub3QgYW4gZXhpc3RpbmcgZmlsZS4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBJbmNsdWRlZCBub24tZXhpc3RpbmcgZmlsZXMsIGFzIGRvY3VtZW50ZWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjIyNQpQcm9ibGVtOiAgICBVc2luZyA8Qy1PPjxDLV4+IGluIEluc2VydCBtb2RlIGhhcyBhIGRlbGF5IHdoZW4gc3RhcnRpbmcgInZpbSAtdQoJICAgIE5PTkUiIGFuZCAiOnNldCBub2NwIGhpZGRlbiIuIChFbW1hbnVlbCkgIGRvX2VjbWQoKSB1c2VzCgkgICAgZmlsZWluZm8oKSwgdGhlIHJlZHJhdyBpcyBkb25lIGFmdGVyIGEgZGVsYXkgdG8gZ2l2ZSB0aGUgdXNlciB0aW1lCgkgICAgdG8gcmVhZCB0aGUgbWVzc2FnZS4KU29sdXRpb246ICAgUHV0IHRoZSBtZXNzYWdlIGZyb20gZmlsZWlvKCkgaW4gImtlZXBfbXNnIiwgc28gdGhhdCB0aGUgcmVkcmF3IGlzCgkgICAgZG9uZSBiZWZvcmUgdGhlIGRlbGF5IChzdGlsbCBuZWVkZWQgdG8gYXZvaWQgdGhlIG1vZGUgbWVzc2FnZQoJICAgIG92ZXJ3cml0ZXMgdGhlIGZpbGVpbmZvKCkgbWVzc2FnZSkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMjI2ClByb2JsZW06ICAgIFVzaW5nICI6ZGVidWciIHdpdGggYSAiOm5vcm1hbCIgY29tbWFuZCBtYXkgY2F1c2UgYSBoYW5nLiAgKENvbGluCgkgICAgS2VpdGgpClNvbHV0aW9uOiAgIFNhdmUgdGhlIHR5cGVhaGVhZCBidWZmZXIgd2hlbiBvYnRhaW5pbmcgYSBkZWJ1ZyBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvcHJvdG8vZ2V0Y2hhci5wcm8KClBhdGNoIDYuMS4yMjcKUHJvYmxlbTogICAgSXQgaXMgcG9zc2libGUgdG8gdXNlIGEgdmFyaWFibGUgbmFtZSAiYXNkZjphc2RmIiBhbmQgIjpsZXQgajphc2RmCgkgICAgPSA1IiBkb2VzIG5vdCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuIChNaWtvbGFqIE1hY2hvd3NraSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgIjoiIGluc2lkZSB0aGUgdmFyaWFibGUgbmFtZS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjI4IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFRoZSBzcGVjaWFsIG91dHB1dCBmdW5jdGlvbiBmb3IgSGFuZ3VsIGlzIHVzZWQgdG9vIG9mdGVuLAoJICAgIGNhdXNpbmcgc3BlY2lhbCBoYW5kbGluZyBmb3Igb3RoZXIgc2l0dWF0aW9ucyB0byBiZSBza2lwcGVkLgoJICAgIGJJbkNvbXBvc2l0aW9uIGlzIGFsd2F5cyBGQUxTRSwgY2F1c2luZyBJbWVHZXRUZW1wQ29tcG9zaXRpb24oKQoJICAgIGFsd2F5cyB0byByZXR1cm4gTlVMTC4KU29sdXRpb246ICAgUmVtb3ZlIEhhbkV4dFRleHRPdXQoKS4gIERlbGV0ZSB0aGUgZGVhZCBjb2RlIGFyb3VuZAoJICAgIGJJbkNvbXBvc2l0aW9uIGFuZCBJbWVHZXRUZW1wQ29tcG9zaXRpb24oKS4KRmlsZXM6CSAgICBzcmMvZ3VpX3cxNi5jLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMjI5ClByb2JsZW06ICAgIFdpbjMyOiBDb252ZXJzaW9uIHRvL2Zyb20gb2Z0ZW4gdXNlZCBjb2RlcGFnZXMgcmVxdWlyZXMgdGhlIGljb252CgkgICAgbGlicmFyeSwgd2hpY2ggaXMgbm90IGFsd2F5cyBhdmFpbGFibGUuClNvbHV0aW9uOiAgIFVzZSBzdGFuZGFyZCBNUy1XaW5kb3dzIGZ1bmN0aW9ucyBmb3IgdGhlIGNvbnZlcnNpb24gd2hlbgoJICAgIHBvc3NpYmxlLiAobW9zdGx5IGJ5IEdsZW5uIE1heW5hcmQpCgkgICAgQWxzbyBmaXhlcyBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBwYXRjaCA2LjEuMjIwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjIzMCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjE2OiBidWlsZGluZyBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEV4Y2x1ZGUgdGhlIFhCVVRUT04gaGFuZGxpbmcuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMjMxClByb2JsZW06ICAgIERvdWJsZSBjbGlja2luZyB3aXRoIHRoZSBtb3VzZSB0byBzZWxlY3QgYSB3b3JkIGRvZXMgbm90IHdvcmsgZm9yCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBVc2UgdmltX2lzd29yZGMoKSBpbnN0ZWFkIG9mIHZpbV9pc0lEYygpLiAgVGhpcyBtZWFucyAnaXNrZXl3b3JkJwoJICAgIGlzIHVzZWQgaW5zdGVhZCBvZiAnaXNpZGVudCcuICBBbHNvIGZpeCB0aGF0IG1peGluZyBBU0NJSSB3aXRoCgkgICAgbXVsdGktYnl0ZSB3b3JkIGNoYXJhY3RlcnMgZG9lc24ndCB3b3JrLCB0aGUgbW91c2UgY2xhc3MgZm9yCgkgICAgcHVuY3R1YXRpb24gYW5kIHdvcmQgY2hhcmFjdGVycyB3YXMgbWl4ZWQgdXAuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMjMyIChkZXBlbmRzIG9uIDYuMS4yMjYpClByb2JsZW06ICAgIFVzaW5nIGV4X25vcm1hbF9idXN5IHdoaWxlIGl0IG1pZ2h0IG5vdCBiZSBhdmFpbGFibGUuIChBeGVsCgkgICAgS2llbGhvcm4pClNvbHV0aW9uOiAgIE9ubHkgdXNlIGV4X25vcm1hbF9idXN5IHdoZW4gRkVBVF9FWF9FWFRSQSBpcyBkZWZpbmVkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMjMzClByb2JsZW06ICAgICI6aGVscCBleHByLXx8IiBkb2VzIG5vdCB3b3JrLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlICd8JyBhcyBhIGNvbW1hbmQgc2VwYXJhdG9yCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjIzNCAoZGVwZW5kcyBvbiA2LjEuMjE3KQpQcm9ibGVtOiAgICBHZXQgYSB3YXJuaW5nIGZvciB1c2luZyBhIG5lZ2F0aXZlIHZhbHVlIGZvciBzdF9kZXYuClNvbHV0aW9uOiAgIERvbid0IGFzc2lnbiBhIG5lZ2F0aXZlIHZhbHVlIHRvIHN0X2Rldi4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjIzNSAoZGVwZW5kcyBvbiA2LjEuMjIzKQpQcm9ibGVtOiAgICAnaW1pbnNlcnQnIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDIgd2hlbiBsZWF2aW5nIEluc2VydCBtb2RlLiAoUGV0ZXIKCSAgICBWYWxhY2gpClNvbHV0aW9uOiAgIENoZWNrICJTdGF0ZSIgYmVmb3JlIHJlc2V0dGluZyBpdCB0byBOT1JNQUwuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjIzNgpQcm9ibGVtOiAgICBNZW1vcnkgbGVha3Mgd2hlbiBhcHBlbmRpbmcgbGluZXMgZm9yICI6ZGlmZmdldCIgb3IgIjpkaWZmcHV0IiBhbmQKCSAgICB3aGVuIHJlbG9hZGluZyBhIGNoYW5nZWQgYnVmZmVyLgpTb2x1dGlvbjogICBGcmVlIGEgbGluZSBhZnRlciBjYWxsaW5nIG1sX2FwcGVuZCgpLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjIzNwpQcm9ibGVtOiAgICBQdXR0aW5nIGluIFZpc3VhbCBibG9jayBtb2RlIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IHdoZW4gIiQiIHdhcwoJICAgIHVzZWQgb3Igd2hlbiB0aGUgZmlyc3QgbGluZSBpcyBzaG9ydC4gIChDaHJpc3RpYW4gTWljaG9uKQpTb2x1dGlvbjogICBGaXJzdCBkZWxldGUgdGhlIHNlbGVjdGVkIHRleHQgYW5kIHRoZW4gcHV0IHRoZSBuZXcgdGV4dC4gIFNhdmUKCSAgICBhbmQgcmVzdG9yZSByZWdpc3RlcnMgYXMgbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vb3BzLnBybywKCSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4yMzggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlICJpY29uPSIgYXJndW1lbnQgZm9yIHRoZSAiOm1lbnUiIGNvbW1hbmQgZG9lcyBub3QKCSAgICBzZWFyY2ggZm9yIHRoZSBiaXRtYXAgZmlsZS4KU29sdXRpb246ICAgRXhwYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyBhbmQgc2VhcmNoIGZvciB0aGUgYml0bWFwIGZpbGUuCgkgICAgKFZpbmNlIE5lZ3JpKQoJICAgIE1ha2UgaXQgY29uc2lzdGVudCwgdXNlIHRoZSBzYW1lIG1lY2hhbmlzbSBmb3IgWDExIGFuZCBHVEsuCkZpbGVzOgkgICAgc3JjL2d1aS5jIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfeDExLmMsCgkgICAgc3JjL3Byb3RvL2d1aS5wcm8KClBhdGNoIDYuMS4yMzkKUHJvYmxlbTogICAgR2l2aW5nIGFuIGVycm9yIGZvciBtaXNzaW5nIDplbmRpZiBvciA6ZW5kd2hpbGUgd2hlbiBiZWluZwoJICAgIGludGVycnVwdGVkLgpTb2x1dGlvbjogICBEb24ndCBnaXZlIHRoZXNlIG1lc3NhZ2VzIHdoZW4gaW50ZXJydXB0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4yNDAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiB3aXRoIEJDQyA1OiBDUFUgbWF5IGJlIGRlZmluZWQgaW4gdGhlIGVudmlyb25tZW50LCB3aGljaAoJICAgIGNhdXNlcyBhIHdyb25nIGFyZ3VtZW50IGZvciB0aGUgY29tcGlsZXIuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgVXNlIENQVU5SIGluc3RlYWQgb2YgQ1BVLgpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWsKClBhdGNoIDYuMS4yNDEKUHJvYmxlbTogICAgU29tZXRoaW5nIGdvZXMgd3Jvbmcgd2hlbiBkcmF3aW5nIG9yIHVuZHJhd2luZyB0aGUgY3Vyc29yLgpTb2x1dGlvbjogICBSZW1lbWJlciB3aGVuIHRoZSBjdXJzb3IgaW52YWxpZCBpbiBhIGJldHRlciB3YXkuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMjQyClByb2JsZW06ICAgIFdoZW4gcGFzdGluZyBhIGxhcmdlIG51bWJlciBvZiBsaW5lcyBvbiB0aGUgY29tbWFuZCBsaW5lIGl0IGlzIG5vdAoJICAgIHBvc3NpYmxlIHRvIGludGVycnVwdC4gKEplYW4gSm9yZGFhbikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIGludGVycnVwdCBhZnRlciBlYWNoIHBhc3RlZCBsaW5lLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjI0MyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBPTEUgdmVyc2lvbiBpcyBzdGFydGVkIGFuZCB3YXNuJ3QgcmVnaXN0ZXJlZCwgYQoJICAgIG1lc3NhZ2UgcG9wcyB1cCB0byBzdWdnZXN0IHJlZ2lzdGVyaW5nLCBldmVuIHdoZW4gdGhpcyBpc24ndAoJICAgIHBvc3NpYmxlICh3aGVuIHRoZSByZWdpc3RyeSBpcyBub3Qgd3JpdGFibGUpLgpTb2x1dGlvbjogICBDaGVjayBpZiByZWdpc3RlcmluZyBpcyBwb3NzaWJsZSBiZWZvcmUgYXNraW5nIHdoZXRoZXIgaXQgc2hvdWxkCgkgICAgYmUgZG9uZS4gKFdhbHRlciBCcmlzY29lKQoJICAgIEFsc28gYXZvaWQgcmVzdGFydGluZyBWaW0gYWZ0ZXIgcmVnaXN0ZXJpbmcuCkZpbGVzOgkgICAgc3JjL2lmX29sZS5jcHAKClBhdGNoIDYuMS4yNDQKUHJvYmxlbTogICAgUGF0Y2ggNi4xLjIzNyB3YXMgbWlzc2luZyB0aGUgZGlmZiBmb3IgdmltLmguIChJZ29yIEdvbGRlbmJlcmcpClNvbHV0aW9uOiAgIEluY2x1ZGUgaXQgaGVyZS4KRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4yNDUKUHJvYmxlbTogICAgQ29tcGFyaW5nIHdpdGggaWdub3JlZCBjYXNlIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgZm9yIFVuaWNvZGUKCSAgICB3aXRoIGEgbG9jYWxlIHdoZXJlIGNhc2UgZm9sZGluZyBhbiBBU0NJSSBjaGFyYWN0ZXIgcmVzdWx0cyBpbiBhCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChHbGVubiBNYXluYXJkKQpTb2x1dGlvbjogICBIYW5kbGUgaWdub3JlLWNhc2UgY29tcGFyZSBmb3IgVW5pY29kZSBkaWZmZXJlbnRseS4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjI0NgpQcm9ibGVtOiAgICAiOmJsYXN0IiBnb2VzIHRvIHRoZSBmaXJzdCBidWZmZXIgaWYgdGhlIGxhc3Qgb25lIGlzIHVubGlzdGVkLgoJICAgIChBbmRyZXcgU3RyeWtlcikKU29sdXRpb246ICAgRnJvbSB0aGUgbGFzdCBidWZmZXIgc2VhcmNoIGJhY2t3YXJkcyBmb3IgdGhlIGZpcnN0IGxpc3RlZCBidWZmZXIKCSAgICBpbnN0ZWFkIG9mIGZvcndhcmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjQ3ClByb2JsZW06ICAgIEFDTCBzdXBwb3J0IGRvZXNuJ3QgYWx3YXlzIHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIEFkZCBhIGNvbmZpZ3VyZSBhcmd1bWVudCB0byBkaXNhYmxlIEFDTCAiLS1kaXNhYmxlLWFjbCIuIChUaGllcnJ5CgkgICAgVmlnbmF1ZCkKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4yNDgKUHJvYmxlbTogICAgVHlwaW5nICdxJyBhdCB0aGUgbW9yZS1wcm9tcHQgZm9yICI6bGV0IiBkb2VzIG5vdCBxdWl0IHRoZQoJICAgIGxpc3RpbmcuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgUXVpdCB0aGUgbGlzdGluZyB3aGVuIGdvdF9pbnQgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNDkKUHJvYmxlbTogICAgQ2FuJ3QgZXhwYW5kIGEgcGF0aCBvbiB0aGUgY29tbWFuZCBsaW5lIGlmIGl0IGluY2x1ZGVzIGEgInwiIGFzIGEKCSAgICB0cmFpbCBieXRlIG9mIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuClNvbHV0aW9uOiAgIENoZWNrIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yNTAKUHJvYmxlbTogICAgV2hlbiBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgJ2xpbmVzJyBpbnNpZGUgdGhlIGV4cHJlc3Npb24gc2V0IHdpdGgKCSAgICAnZGlmZmV4cHInIFZpbSBtaWdodCBjcmFzaC4gKERhdmUgRmlzaGJ1cm4pClNvbHV0aW9uOiAgIERvbid0IGFsbG93IGNoYW5naW5nIHRoZSBzY3JlZW4gc2l6ZSB3aGlsZSB1cGRhdGluZyB0aGUgc2NyZWVuLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9vcHRpb24uYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMjUxClByb2JsZW06ICAgIENhbid0IHVzZSBjb21wbGV0aW9uIGZvciAiOmxjZCIgYW5kICI6bGNoZGlyIiBsaWtlICI6Y2QiLgpTb2x1dGlvbjogICBFeHBhbmQgZGlyZWN0b3J5IG5hbWVzIGZvciB0aGVzZSBjb21tYW5kcy4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yNTIKUHJvYmxlbTogICAgInZpfSIgZG9lcyBub3QgaW5jbHVkZSBhIGxpbmUgYnJlYWsgd2hlbiB0aGUgIn0iIGlzIGF0IHRoZSBzdGFydAoJICAgIG9mIGEgZm9sbG93aW5nIGxpbmUuIChLYW1pbCBCdXJ6eW5za2kpClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIGxpbmUgYnJlYWsuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMjUzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgd2l0aCBDeWd3aW46IENoYW5nZXMgdGhlIHBhdGggb2YgYXJndW1lbnRzIGluIGEgd3Jvbmcgd2F5LgoJICAgIChYaWFuZ2ppYW5nIE1hKQpTb2x1dGlvbjogICBEb24ndCB1c2UgY3lnd2luX2NvbnZfdG9fcG9zaXhfcGF0aCgpIGZvciB0aGUgV2luMzIgdmVyc2lvbi4KCSAgICBVcGRhdGUgdGhlIEN5Z3dpbiBtYWtlZmlsZSB0byBzdXBwb3J0IG1vcmUgZmVhdHVyZXMuICAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9pZl9vbGUuY3BwLCBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMjU0ClByb2JsZW06ICAgIGV4aXN0cygiZm9ve2Jhcn0iKSBkb2VzIG5vdCB3b3JrLiAgJzp1bmxldCB2eyJhIn1yJyBkb2VzIG5vdCB3b3JrLgoJICAgICI6bGV0IHZ7YX1yMSB2e2F9cjIiIGRvZXMgbm90IHdvcmsuICI6ZnVuYyBGeygxKX0iIGRvZXMgbm90IHdvcmsuCgkgICAgIjpkZWxmdW5jIEZ7IiBkb2VzIG5vdCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuICAnOmRlbGZ1bmMgRnsiRiJ9JwoJICAgIGRvZXMgbm90IHdvcmsuClNvbHV0aW9uOiAgIFN1cHBvcnQgbWFnaWMgYnJhY2VzIGZvciB0aGUgZXhpc3RzKCkgYXJndW1lbnQuIChWaW5jZSBOZWdyaSkKCSAgICBDaGVjayBmb3IgdHJhaWxpbmcgY29tbWVudHMgZXhwbGljaXRseSBmb3IgIjp1bmxldCIuICBBZGQgc3VwcG9ydAoJICAgIGZvciBtYWdpYyBicmFjZXMgaW4gZnVydGhlciBhcmd1bWVudHMgb2YgIjpsZXQiLiAgTG9vayBmb3IgYQoJICAgIHBhcmVudGhlc2lzIG9ubHkgYWZ0ZXIgdGhlIGZ1bmN0aW9uIG5hbWUuICAoU2VydmF0aXVzIEJyYW5kdCkKCSAgICBBbHNvIGV4cGFuZCBtYWdpYyBicmFjZXMgZm9yICJleGlzdHMoJypleHByJykiLiAgR2l2ZSBhbiBlcnJvcgoJICAgIG1lc3NhZ2UgZm9yIGFuIGludmFsaWQgIjpkZWxmdW5jIiBhcmd1bWVudC4gIEFsbG93IHF1b3RlcyBpbiB0aGUKCSAgICAiOmRlbGZ1bmMiIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjU1IChkZXBlbmRzIG9uIDYuMS4yNTQpClByb2JsZW06ICAgIENyYXNoIHdoZW4gbG9hZGluZyBtZW51LnZpbSBhIHNlY29uZCB0aW1lLiAoQ2hyaXN0aWFuIFJvYmluc29uKQoJICAgICI6dW5sZXQgZ2FyYmFnZSBmb28iIHRyaWVzIHVubGV0dGluZyAiZm9vIiBhZnRlciBhbiBlcnJvciBtZXNzYWdlLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQoJICAgIFZlcnkgbG9uZyBmdW5jdGlvbiBhcmd1bWVudHMgY2F1c2UgdmVyeSBsb25nIG1lc3NhZ2VzIHdoZW4KCSAgICAndmVyYm9zZScgaXMgMTQgb3IgaGlnaGVyLgpTb2x1dGlvbjogICBBdm9pZCByZWFkaW5nIGZyb20gdW5pbml0aWFsaXplZCBtZW1vcnkuCgkgICAgQnJlYWsgb3V0IG9mIGEgbG9vcCBhZnRlciBhbiBpbnZhbGlkIGFyZ3VtZW50IGZvciAiOnVubGV0Ii4KCSAgICBUcnVuY2F0ZSBsb25nIGZ1bmN0aW9uIGFyZ3VtZW50cyB0byA4MCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNTYgKGRlcGVuZHMgb24gNi4xLjI1NSkKUHJvYmxlbTogICAgRGVmaW5pbmcgYSBmdW5jdGlvbiBhZnRlciAiOmlmIDAiIGNvdWxkIHN0aWxsIGNhdXNlIGFuIGVycm9yCgkgICAgbWVzc2FnZSBmb3IgYW4gZXhpc3RpbmcgZnVuY3Rpb24uCgkgICAgTGVha2luZyBtZW1vcnkgd2hlbiB0aGVyZSBhcmUgdHJhaWxpbmcgY2hhcmFjdGVycyBmb3IgIjpkZWxmdW5jIi4KU29sdXRpb246ICAgQ2hlY2sgdGhlICJza2lwIiBmbGFnLiAgRnJlZSB0aGUgbWVtb3J5LiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjU3ClByb2JsZW06ICAgICI6Y3dpbmRvdyIgYWx3YXlzIHNldHMgdGhlIHByZXZpb3VzIHdpbmRvdyB0byB0aGUgbGFzdCBidXQgb25lCgkgICAgd2luZG93LiAgKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgU2V0IHRoZSBwcmV2aW91cyB3aW5kb3cgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuYywgc3JjL3F1aWNrZml4LmMsIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjI1OApQcm9ibGVtOiAgICBCdWZmZXJzIG1lbnUgZG9lc24ndCB3b3JrIHByb3Blcmx5IGZvciBtdWx0aWJ5dGUgYnVmZmVyIG5hbWVzLgpTb2x1dGlvbjogICBVc2UgYSBwYXR0ZXJuIHRvIGdldCB0aGUgbGVmdCBhbmQgcmlnaHQgcGFydCBvZiB0aGUgbmFtZS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4yNTkgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IHdpdGggJ3BhdGNobW9kZScgaXMgdXNlZCBmaWxlbmFtZXMgYXJlIHRydW5jYXRlZC4KU29sdXRpb246ICAgSW5jcmVhc2UgdGhlIEJBU0VOQU1FTEVOIGZvciBNYWMgT1MgWC4gKEVkIFJhbHN0b24pCkZpbGVzOgkgICAgc3JjL29zX21hYy5oCgpQYXRjaCA2LjEuMjYwIChkZXBlbmRzIG9uIDYuMS4xMDQpClByb2JsZW06ICAgIEdDQyAzLjIgc3RpbGwgc2VlbXMgdG8gaGF2ZSBhbiBvcHRpbWl6ZXIgcHJvYmxlbS4gKFp2aSBIYXInRWwpClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBjb25maWd1cmUgY2hlY2sgYXMgdXNlZCBmb3IgR0NDIDMuMS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4yNjEKUHJvYmxlbTogICAgV2hlbiBkZWxldGluZyBhIGxpbmUgaW4gYSBidWZmZXIgd2hpY2ggaXMgbm90IHRoZSBjdXJyZW50IGJ1ZmZlciwKCSAgICB1c2luZyB0aGUgUGVybCBpbnRlcmZhY2UgRGVsZXRlKCksIHRoZSBjdXJzb3IgaW4gdGhlIGN1cnJlbnQKCSAgICB3aW5kb3cgbWF5IG1vdmUuIChDaHJpcyBIb3VzZXIpClNvbHV0aW9uOiAgIERvbid0IGFkanVzdCB0aGUgY3Vyc29yIHBvc2l0aW9uIHdoZW4gY2hhbmdpbmcgYW5vdGhlciBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2lmX3BlcmwueHMKClBhdGNoIDYuMS4yNjIKUHJvYmxlbTogICAgV2hlbiBqdW1waW5nIG92ZXIgZm9sZHMgd2l0aCAielsiLCAiemoiIGFuZCAiemsiIHRoZSBwcmV2aW91cwoJICAgIHBvc2l0aW9uIGlzIG5vdCByZW1lbWJlcmVkLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIFNldCB0aGUgcHJldmlvdXMgY29udGV4dCBtYXJrIGJlZm9yZSBqdW1waW5nLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMS4yNjMKUHJvYmxlbTogICAgV2hlbiB0eXBpbmcgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciB0aGF0IHRyaWdnZXJzIGFuIGFiYnJldmlhdGlvbgoJICAgIGl0IGlzIG5vdCBpbnNlcnRlZCBwcm9wZXJseS4KU29sdXRpb246ICAgSGFuZGxlIGFkZGluZyB0aGUgdHlwZWQgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjI2NCAoZGVwZW5kcyBvbiBwYXRjaCA2LjEuMjU0KQpQcm9ibGVtOiAgICBleGlzdHMoKSBkb2VzIG5vdCB3b3JrIGZvciBidWlsdC1pbiBmdW5jdGlvbnMuIChTdGV2ZSBXYWxsKQpTb2x1dGlvbjogICBEb24ndCBjaGVjayBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgdG8gc3RhcnQgd2l0aCBhIGNhcGl0YWwuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI2NQpQcm9ibGVtOiAgICBsaWJjYWxsKCkgY2FuIGJlIHVzZWQgaW4gJ2ZvbGRleHByJyB0byBjYWxsIGFueSBzeXN0ZW0gZnVuY3Rpb24uCgkgICAgcmVuYW1lKCksIGRlbGV0ZSgpIGFuZCByZW1vdGVfc2VuZCgpIGNhbiBhbHNvIGJlIHVzZWQgaW4KCSAgICAnZm9sZGV4cHInLiAgVGhlc2UgYXJlIHNlY3VyaXR5IHByb2JsZW1zLiAoR2VvcmdpIEd1bmluc2tpKQpTb2x1dGlvbjogICBEb24ndCBhbGxvdyB1c2luZyBsaWJjYWxsKCksIHJlbmFtZSgpLCBkZWxldGUoKSwgcmVtb3RlX3NlbmQoKSBhbmQKCSAgICBzaW1pbGFyIGZ1bmN0aW9ucyBpbiB0aGUgc2FuZGJveC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjY2IChkZXBlbmRzIG9uIDYuMS4yNjUpClByb2JsZW06ICAgIFdpbjMyOiBjb21waWxlIGVycm9yIGluIGV2YWwuYy4gKEJpbGwgTWNDYXJ0aHkpClNvbHV0aW9uOiAgIE1vdmUgYSB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjY3ClByb2JsZW06ICAgIFVzaW5nICJwIiB0byBwYXN0ZSBpbnRvIGEgVmlzdWFsIHNlbGVjdGVkIGFyZWEgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIEFsbG9jYXRlIGVub3VnaCBtZW1vcnkgZm9yIHNhdmluZyB0aGUgcmVnaXN0ZXIgY29udGVudHMuIChNdXJhb2thCgkgICAgVGFybykKRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4yNjgKUHJvYmxlbTogICAgV2hlbiB0cmlnZ2VyaW5nIGFuIGFiYnJldmlhdGlvbiB3aXRoIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIsIHRoaXMKCSAgICBjaGFyYWN0ZXIgaXMgbm90IGNvcnJlY3RseSBpbnNlcnRlZCBhZnRlciBleHBhbmRpbmcgdGhlCgkgICAgYWJicmV2aWF0aW9uLiAoVGFybyBNdXJhb2thKQpTb2x1dGlvbjogICBBZGQgQUJCUl9PRkYgdG8gYWxsIGNoYXJhY3RlcnMgYWJvdmUgMHhmZi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjI2OQpQcm9ibGVtOiAgICBBZnRlciB1c2luZyBpbnB1dCgpIHRleHQgd3JpdHRlbiB3aXRoICI6cmVkaXIiIGdldHMgZXh0cmEgaW5kZW50LgoJICAgIChEYXZpZCBGaXNoYnVybikKU29sdXRpb246ICAgUmVzdG9yZSBtc2dfY29sIGFmdGVyIHVzaW5nIGlucHV0KCkuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMS4yNzAgKGRlcGVuZHMgb24gNi4xLjI2MCkKUHJvYmxlbTogICAgR0NDIDMuMi4xIHN0aWxsIHNlZW1zIHRvIGhhdmUgYW4gb3B0aW1pemVyIHByb2JsZW0uClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBjb25maWd1cmUgY2hlY2sgYXMgdXNlZCBmb3IgR0NDIDMuMS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4yNzEKUHJvYmxlbTogICAgV2hlbiBjb21waWxpbmcgd2l0aG91dCB0aGUgK3N5bnRheCBmZWF0dXJlIHRoZXJlIGFyZSBlcnJvcnMuClNvbHV0aW9uOiAgIERvbid0IHVzZSBzb21lIGNvZGUgZm9yIHN5bnRheCBoaWdobGlnaHRpbmcuIChSb2dlciBDb3JuZWxpdXMpCgkgICAgTWFrZSB0ZXN0IDQ1IHdvcmsgd2l0aG91dCBzeW50YXggaGlnaGxpZ2h0aW5nLgoJICAgIEFsc28gZml4IGFuIGVycm9yIGluIGEgcGF0dGVybiBtYXRjaGluZzogIlwlKCIgd2FzIG5vdCBzdXBwb3J0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9yZWdleHAuYywgc3JjL3Rlc3RkaXIvdGVzdDQ1LmluCgpQYXRjaCA2LjEuMjcyClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICI6c2V0IGRlZmluZTwiIGEgY3Jhc2ggbWF5IGhhcHBlbi4gKENocmlzdGlhbiBSb2JpbnNvbikKU29sdXRpb246ICAgTWFrZSBhIGNvcHkgb2YgdGhlIG9wdGlvbiB2YWx1ZSBpbiBhbGxvY2F0ZWQgbWVtb3J5LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjI3MwpQcm9ibGVtOiAgICBXaGVuIHRoZSBjdXJzb3IgZG9lc24ndCBibGluaywgcmVkcmF3aW5nIGFuIGV4cG9zZWQgYXJlYSBtYXkgaGlkZQoJICAgIHRoZSBjdXJzb3IuClNvbHV0aW9uOiAgIEFsd2F5cyBkcmF3IHRoZSBjdXJzb3IsIGFsc28gd2hlbiBpdCBkaWRuJ3QgbW92ZS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4yNzQgKGRlcGVuZHMgb24gNi4xLjIxMCkKUHJvYmxlbTogICAgUmVzZXR0aW5nIHRoZSBpY29udigpIHN0YXRlIGFmdGVyIGVhY2ggZXJyb3IgaXMgd3JvbmcgZm9yIGFuCgkgICAgaW5jb21wbGV0ZSBzZXF1ZW5jZS4KU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgdGhlIGljb252KCkgc3RhdGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMjc1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgInYiIGluIGEgc3RhcnR1cCBzY3JpcHQsIGdldCB3YXJuaW5nIG1lc3NhZ2UgdGhhdAoJICAgIHRlcm1pbmFsIGNhbm5vdCBoaWdobGlnaHQuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBPbmx5IGdpdmUgdGhlIG1lc3NhZ2UgYWZ0ZXIgdGhlIHRlcm1pbmFsIGhhcyBiZWVuIGluaXRpYWxpemVkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjI3NgpQcm9ibGVtOiAgICAiZ3ZpbSAtLXJlbW90ZSBmaWxlIiBkb2Vzbid0IHByb21wdCBmb3IgYW4gZW5jcnlwdGlvbiBrZXkuClNvbHV0aW9uOiAgIFRoZSBmdXJ0aGVyIGNoYXJhY3RlcnMgdGhlIGNsaWVudCBzZW5kcyB0byB0aGUgc2VydmVyIGFyZSB1c2VkLgoJICAgIEFkZGVkIGlucHV0c2F2ZSgpIGFuZCBpbnB1dHJlc3RvcmUoKSB0byBhbGxvdyBwcm9tcHRpbmcgdGhlCgkgICAgdXNlciBkaXJlY3RseSBhbmQgbm90IHVzaW5nIHR5cGVhaGVhZC4KCSAgICBBbHNvIGZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmb3IgIjpub3JtYWwiLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2dldGNoYXIuYywKCSAgICBzcmMvbWFpbi5jLCBzcmMvcHJvdG8vZ2V0Y2hhci5wcm8sIHNyYy9wcm90by91aS5wcm8sCgkgICAgc3JjL3J1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvc3RydWN0cy5oLCBzcmMvdWkuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjEuMjc3IChkZXBlbmRzIG9uIDYuMS4yNzYpClByb2JsZW06ICAgIENvbXBpbGF0aW9uIGVycm9yIHdoZW4gYnVpbGRpbmcgd2l0aCBzbWFsbCBmZWF0dXJlcy4KU29sdXRpb246ICAgRGVmaW5lIHRyYXNoX2lucHV0X2J1ZigpIHdoZW4gbmVlZGVkLiAoS2VsdmluIExlZSkKRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4xLjI3OApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHNpZ25zIHRoZSBsaW5lIG51bWJlciBvZiBhIGNsb3NlZCBmb2xkIGRvZXNuJ3QgbGluZSB1cAoJICAgIHdpdGggdGhlIG90aGVyIGxpbmUgbnVtYmVycy4gKEthbWlsIEJ1cnp5bnNraSkKU29sdXRpb246ICAgSW5zZXJ0IHR3byBzcGFjZXMgZm9yIHRoZSBzaWduIGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4yNzkKUHJvYmxlbTogICAgVGhlIHByb3RvdHlwZSBmb3Igc21zZygpIGFuZCBzbXNnX2F0dHIoKSBkbyBub3QgbWF0Y2ggdGhlIGZ1bmN0aW9uCgkgICAgZGVmaW5pdGlvbi4gIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgZm9yIHNvbWUgY29tcGlsZXJzLiAoTml4KQpTb2x1dGlvbjogICBVc2UgdmFfbGlzdCBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgc3RkYXJnLmguICBVc2UgImludCIgaW5zdGVhZCBvZgoJICAgICJ2b2lkIiBmb3IgdGhlIHJldHVybiB0eXBlLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9wcm90by5oLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMjgwClByb2JsZW06ICAgIEl0J3MgcG9zc2libGUgdG8gdXNlIGFuIGFyZ3VtZW50ICJmaXJzdGxpbmUiIG9yICJsYXN0bGluZSIgZm9yIGEKCSAgICBmdW5jdGlvbiBidXQgdXNpbmcgImE6Zmlyc3RsaW5lIiBvciAiYTpsYXN0bGluZSIgaW4gdGhlIGZ1bmN0aW9uCgkgICAgd29uJ3Qgd29yay4gIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlc2UgYXJndW1lbnRzLgoJICAgIEFsc28gYXZvaWQgdGhhdCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGJvZHkgY2F1c2VzIGEgd2hvbGUgcm93IG9mCgkgICAgZXJyb3JzLCBza2lwIG92ZXIgaXQgYWZ0ZXIgYW4gZXJyb3IgaW4gdGhlIGZpcnN0IGxpbmUuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI4MQpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSBDVFJMLVggQ1RSTC1HIGxlYXZlcyB0aGUgY3Vyc29yIGFmdGVyIHRoZSBydWxlci4KU29sdXRpb246ICAgU2V0IHRoZSBjdXJzb3IgcG9zaXRpb24gYmVmb3JlIHdhaXRpbmcgZm9yIHRoZSBhcmd1bWVudCBvZiBDVFJMLUcuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuMjgyClByb2JsZW06ICAgIEVsdmlzIHVzZXMgInNlIiBpbiBhIG1vZGVsaW5lLCBWaW0gZG9lc24ndCByZWNvZ25pemUgdGhpcy4KU29sdXRpb246ICAgQWxzbyBhY2NlcHQgInNlICIgd2hlcmUgInNldCAiIGlzIGFjY2VwdGVkIGluIGEgbW9kZWxpbmUuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4yODMKUHJvYmxlbTogICAgRm9yICI6c2lnbiIgdGhlIGljb24gZmlsZSBuYW1lIGNhbm5vdCBjb250YWluIGEgc3BhY2UuClNvbHV0aW9uOiAgIEhhbmRsZSBiYWNrc2xhc2hlcyBpbiB0aGUgZmlsZSBuYW1lLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMjg0ClByb2JsZW06ICAgIE9uIFNvbGFyaXMgdGhlcmUgaXMgYSB3YXJuaW5nIGZvciAic3RydWN0IHV0aW1idWYiLgpTb2x1dGlvbjogICBNb3ZlIGluY2x1ZGluZyAidXRpbWUuaCIgdG8gb3V0c2lkZSB0aGUgZnVuY3Rpb24uIChEZXJlayBXeWF0dCkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4yODUKUHJvYmxlbTogICAgQ2FuJ3Qgd2lwZSBvdXQgYSBidWZmZXIgd2l0aCAnYnVmaGlkZScgb3B0aW9uLgpTb2x1dGlvbjogICBBZGQgIndpcGUiIHZhbHVlIHRvICdidWZoaWRlJy4gKFllZ2FwcGFuIExha3NobWFuYW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9idWZmZXIuYywgc3JjL29wdGlvbi5jLAoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjEuMjg2ClByb2JsZW06ICAgICdzaG93YnJlYWsnIGNhbm5vdCBjb250YWluIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgQWxsb3cgdXNpbmcgYWxsIHByaW50YWJsZSBjaGFyYWN0ZXJzIGZvciAnc2hvd2JyZWFrJy4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvbW92ZS5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4yODcgKGRlcGVuZHMgb24gNi4xLjI4NSkKUHJvYmxlbTogICAgRWZmZWN0IG9mICJkZWxldGUiIGFuZCAid2lwZSIgaW4gJ2J1ZmhpZGUnIHdlcmUgbWl4ZWQgdXAuClNvbHV0aW9uOiAgIFdpcGUgb3V0IHdoZW4gd2lwaW5nIG91dCBpcyBhc2tlZCBmb3IuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMjg4ClByb2JsZW06ICAgICI6c2lsZW50IGZ1bmN0aW9uIEYiIGhhbmdzLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IHVzZSBtc2dfY29sLCBpdCBpcyBub3QgaW5jcmVtZW50ZWQgd2hlbiB1c2luZyAiOnNpbGVudCIuCgkgICAgQWxzbyBtYWRlIHRoZSBmdW5jdGlvbiBvdXRwdXQgbG9vayBhIGJpdCBiZXR0ZXIuICBEb24ndCB0cmFuc2xhdGUKCSAgICAiZnVuY3Rpb24iLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yODkgKGRlcGVuZHMgb24gNi4xLjI3OCkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlci4gKEF4ZWwgS2llbGhvcm4pClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0IGZvciAiICAiLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjI5MCAoZXh0cmEpClByb2JsZW06ICAgIFRydW5jYXRpbmcgbG9uZyB0ZXh0IGZvciBtZXNzYWdlIGJveCBtYXkgYnJlYWsgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3Rlci4KU29sdXRpb246ICAgQWRqdXN0IHRvIHN0YXJ0IG9mIG11bHRpLWJ5dGUgY2hhcmFjdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuMjkxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IENUUkwtQCBkb2Vzbid0IHdvcmsuICBEb24ndCBldmVuIGdldCBhIG1lc3NhZ2UgZm9yIGl0LgpTb2x1dGlvbjogICBSZWNvZ25pemUgdGhlIGtleWNvZGUgZm9yIENUUkwtQC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMjkyIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMjUzKQpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgY29tcGlsZSB3aXRoIG5ldyBNaW5nVyBjb21waWxlci4KCSAgICBCb3JsYW5kIDUgbWFrZWZpbGUgZG9lc24ndCBnZW5lcmF0ZSBwYXRoZGVmLmMuClNvbHV0aW9uOiAgIFJlbW92ZSAtd3dpZGUtbXVsdGlwbHkgYXJndW1lbnQuIChSZW5lIGRlIFp3YXJ0KQoJICAgIFZhcmlvdXMgZml4ZXMgZm9yIG90aGVyIHByb2JsZW1zIGluIFdpbjMyIG1ha2VmaWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywKCSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuMjkzClByb2JsZW06ICAgIGJ5dGUybGluZSgpIHJldHVybnMgYSB3cm9uZyByZXN1bHQgZm9yIHNvbWUgdmFsdWVzLgpTb2x1dGlvbjogICBDaGFuZ2UgIj49IiB0byAiPiIgaW4gbWxfZmluZF9saW5lX29yX29mZnNldCgpLiAoQnJhZGZvcmQgQyBTbWl0aCkKCSAgICBBZGQgb25lIHRvIHRoZSBsaW5lIG51bWJlciB3aGVuIGF0IHRoZSBlbmQgb2YgYSBibG9jay4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjEuMjk0ClByb2JsZW06ICAgIENhbid0IGluY2x1ZGUgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciBpbiBhIHN0cmluZyBieSBpdHMgaGV4IHZhbHVlLgoJICAgIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIEFkZCAiXHUuLi4uIjogYSBjaGFyYWN0ZXIgc3BlY2lmaWVkIHdpdGggdXAgdG8gZm91ciBoZXggbnVtYmVycwoJICAgIGFuZCBzdG9yZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiAnZW5jb2RpbmcnLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yOTUgKGV4dHJhKQpQcm9ibGVtOiAgICBQcm9jZXNzaW5nIHRoZSBjcy5wbyBmaWxlIGdlbmVyYXRlcyBhbiBlcnJvci4gKFJhaHVsIEFncmF3YWwpClNvbHV0aW9uOiAgIEZpeCB0aGUgcHJpbnRmIGZvcm1hdCBjaGFyYWN0ZXJzIGluIHRoZSB0cmFuc2xhdGlvbi4KRmlsZXM6CSAgICBzcmMvcG8vY3MucG8KClBhdGNoIDYuMS4yOTYKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gY2FuY2VsbGluZyB0aGUgZm9udCBkaWFsb2cgJ2d1aWZvbnQnIHJlbWFpbnMgc2V0IHRvCgkgICAgIioiLgpTb2x1dGlvbjogICBSZXN0b3JlIHRoZSBvbGQgdmFsdWUgb2YgJ2d1aWZvbnQnIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMjk3ClByb2JsZW06ICAgICJtYWtlIHRlc3QiIGZhaWxzIGluIHRlc3Q2IGluIGFuIFVURi04IGVudmlyb25tZW50LiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBCZWZvcmUgZXhlY3V0aW5nIHRoZSBCdWZSZWFkUG9zdCBhdXRvY29tbWFuZHMgc2F2ZSB0aGUgY3VycmVudAoJICAgIGZpbGVlbmNvZGluZywgc28gdGhhdCB0aGUgZmlsZSBpc24ndCBtYXJrZWQgY2hhbmdlZC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4yOTgKUHJvYmxlbTogICAgV2hlbiB1c2luZyBzaWducyBhbmQgdGhlIGZpcnN0IGxpbmUgb2YgYSBjbG9zZWQgZm9sZCBoYXMgYSBzaWduCgkgICAgaXQgY2FuIGJlIHJlZHJhd24gYXMgaWYgdGhlIGZvbGQgd2FzIG9wZW4uICAoS2FtaWwgQnVyenluc2tpKQpTb2x1dGlvbjogICBEb24ndCByZWRyYXcgYSBzaWduIGluc2lkZSBhIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjI5OQpQcm9ibGVtOiAgICAiOmVkaXQgK3NldFwgcm8gZmlsZSIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBIYWx2ZSB0aGUgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIGluIHRoZSAiK2NtZCIgYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zMDAgKGV4dHJhKQpQcm9ibGVtOiAgICBIYW5kbGluZyBvZiBFVE9fSUdOT1JFTEFOR1VBR0UgaXMgY29uZnVzaW5nLgpTb2x1dGlvbjogICBDbGVhbiB1cCB0aGUgaGFuZGxpbmcgb2YgRVRPX0lHTk9SRUxBTkdVQUdFLiAoR2xlbm4gTWF5bmFyZCkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzAxIChleHRyYSkKUHJvYmxlbTogICAgRnJlbmNoIHRyYW5zbGF0aW9uIG9mIGZpbGUtc2F2ZSBkaWFsb2cgZG9lc24ndCBzaG93IGZpbGUgbmFtZS4KU29sdXRpb246ICAgSW5zZXJ0IGEgc3RhciBpbiB0aGUgcHJpbnRmIHN0cmluZy4gKEZyYW5jb2lzIFRlcnJvdCkKRmlsZXM6CSAgICBzcmMvcG8vZnIucG8KClBhdGNoIDYuMS4zMDIKUHJvYmxlbTogICAgQ291bnRpbmcgbGluZXMgb2YgdGhlIFZpc3VhbCBhcmVhIGlzIGluY29ycmVjdCBmb3IgY2xvc2VkIGZvbGRzLgoJICAgIChNaWtvbGFqIE1hY2hvd3NraSkKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgc3RhcnQgYW5kIGVuZCBmb3IgdGhlIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjMwMyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBUb3AvQm90dG9tL0FsbCB0ZXh0IGRvZXMgbm90IGFsd2F5cyBmaXQgaW4gdGhlIHJ1bGVyIHdoZW4KCSAgICB0cmFuc2xhdGVkIHRvIEphcGFuZXNlLiAgUHJvYmxlbSB3aXRoIGEgY2hhcmFjdGVyIGJlaW5nIHdpZGVyIHdoZW4KCSAgICBpbiBhIGJvbGQgZm9udC4KU29sdXRpb246ICAgVXNlIEVUT19QRFkgdG8gc3BlY2lmeSB0aGUgd2lkdGggb2YgZWFjaCBjaGFyYWN0ZXIuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzA0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMjkyKQpQcm9ibGVtOiAgICBXaW4zMjogUG9zdHNjcmlwdCBpcyBhbHdheXMgZW5hYmxlZCBpbiB0aGUgTWluZ1cgTWFrZWZpbGUuCgkgICAgUGF0aGRlZi5jIGlzbid0IGdlbmVyYXRlZCBwcm9wZXJseSB3aXRoIE1ha2VfYmM1Lm1hay4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBDaGFuZ2UgYW4gaWZkZWYgdG8gYW4gaWZlcS4gKE1hZG9rYSBNYWNoaXRhbmkpCgkgICAgVXNlIHRoZSBCb3JsYW5kIG1ha2UgcmVkaXJlY3Rpb24gdG8gZ2VuZXJhdGUgcGF0aGRlZi5jLiAoTWF1cmljZQoJICAgIEJhcm51bSkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9taW5nLm1hawoKUGF0Y2ggNi4xLjMwNQpQcm9ibGVtOiAgICBXaGVuICd2ZXJib3NlJyBpcyAxNCBvciBoaWdoZXIsIGEgZnVuY3Rpb24gY2FsbCBtYXkgY2F1c2UgcmVhZGluZwoJICAgIHVuaW5pdGlhbGl6ZWQgZGF0YS4gKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBDaGVjayBmb3IgZW5kLW9mLXN0cmluZyBpbiB0cnVuY19zdHJpbmcoKS4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMzA2ClByb2JsZW06ICAgIFRoZSBBSVggVmlzdWFsQWdlIGNjIGNvbXBpbGVyIGRvZXNuJ3QgZGVmaW5lIF9fU1REQ19fLgpTb2x1dGlvbjogICBVc2UgX19FWFRFTkRFRF9fIGxpa2UgX19TVERDX18uIChKZXNzIFRocnlzb2VlKQpGaWxlczoJICAgIHNyYy9vc191bml4LmgKClBhdGNoIDYuMS4zMDcKUHJvYmxlbTogICAgV2hlbiBhIGRvdWJsZS1ieXRlIGNoYXJhY3RlciBoYXMgYW4gaWxsZWdhbCB0YWlsIGJ5dGUgdGhlIGRpc3BsYXkKCSAgICBpcyBtZXNzZWQgdXAuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIERyYXcgIlhYIiBpbnN0ZWFkIG9mIHRoZSB3cm9uZyBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMzA4ClByb2JsZW06ICAgIENhbid0IHJlc2V0IHRoZSBWaXN1YWwgbW9kZSByZXR1cm5lZCBieSB2aXN1YWxtb2RlKCkuClNvbHV0aW9uOiAgIFVzZSBhbiBvcHRpb25hbCBhcmd1bWVudCB0byB2aXN1YWxtb2RlKCkuIChDaGFybGVzIENhbXBiZWxsKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jLCBzcmMvbm9ybWFsLmMsCgkgICAgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4xLjMwOQpQcm9ibGVtOiAgICBUaGUgdHV0b3IgZG9lc24ndCBzZWxlY3QgR2VybWFuIGlmIHRoZSBsb2NhbGUgbmFtZSBpcwoJICAgICJHZXJtYW5fR2VybWFueS4xMjUyIi4gKEpvYWNoaW0gSG9mbWFubikKU29sdXRpb246ICAgQ2hlY2sgZm9yICJHZXJtYW4iIGluIHRoZSBsb2NhbGUgbmFtZS4gIEFsc28gY2hlY2sgZm9yCgkgICAgIi5nZSIuICBBbmQgaW5jbHVkZSB0aGUgR2VybWFuIGFuZCBHcmVlayB0dXRvcnMuCkZpbGVzOgkgICAgcnVudGltZS90dXRvci90dXRvci5kZSwgcnVudGltZS90dXRvci90dXRvci52aW0sCgkgICAgcnVudGltZS90dXRvci90dXRvci5nciwgcnVudGltZS90dXRvci90dXRvci5nci5jcDczNwoKUGF0Y2ggNi4xLjMxMCAoZGVwZW5kcyBvbiA2LjEuMzA3KQpQcm9ibGVtOiAgICBBbGwgZG91YmxlLWJ5dGUgY2hhcmFjdGVycyBhcmUgZGlzcGxheWVkIGFzICJYWCIuClNvbHV0aW9uOiAgIFVzZSAiPj0gMzIiIGluc3RlYWQgb2YgIjwgMzIiLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4zMTEgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IHBhdGggaW4gd2luZG93IHRpdGxlIGRvZXNuJ3QgaW5jbHVkZSBuZWNlc3Nhcnkgc2VwYXJhdG9yLgoJICAgIGZpbGUgdmVyc2lvbiBkb2Vzbid0IGFsd2F5cyB3b3JrIHByb3Blcmx5IHdpdGggVW5peC4KCSAgICBDcmFzaGVzIGJlY2F1c2Ugb2YgbWVtb3J5IG92ZXJ3cml0ZSBpbiBHVUkuCgkgICAgRGlkbid0IGFsd2F5cyBoYW5kbGUgZmlsZXMgd2l0aCBsb3dlcmNhc2UgYW5kIGNvcnJlY3QgcGF0aC4KU29sdXRpb246ICAgRml4IHRoZSBwcm9ibGVtcy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBmaWxlIG5hbWUgdHJhbnNsYXRpb25zLgoJICAgIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kczIuYywgc3JjL2ZpbGVpby5jLCBzcmMvbWVtbGluZS5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL29zX3VuaXguYywgc3JjL29zX3Ztcy5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMS4zMTIKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOnNpbGVudCIgZGVidWdnaW5nIGlzIGFsc28gZG9uZSBzaWxlbnRseS4KU29sdXRpb246ICAgRGlzYWJsZSBzaWxlbmNlIHdoaWxlIGF0IHRoZSBkZWJ1ZyBwcm9tcHQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4zMTMKUHJvYmxlbTogICAgV2hlbiBhICI6ZHJvcCBmbmFtZSIgY29tbWFuZCBpcyB1c2VkIGFuZCAiZm5hbWUiIGlzIG9wZW4gaW4KCSAgICBhbm90aGVyIHdpbmRvdywgaXQgaXMgYWxzbyBvcGVuZWQgaW4gdGhlIGN1cnJlbnQgd2luZG93LgpTb2x1dGlvbjogICBDaGFuZ2UgdG8gdGhlIHdpbmRvdyB3aXRoICJmbmFtZSIgaW5zdGVhZC4KCSAgICBEb24ndCByZWRlZmluZSB0aGUgYXJndW1lbnQgbGlzdCB3aGVuIGRyb3BwaW5nIG9ubHkgb25lIGZpbGUuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvd2luZG93cy50eHQsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvcHJvdG8vZXhfY21kczIucHJvLCBzcmMvcHJvdG8vZXhfZG9jbWQucHJvCgpQYXRjaCA2LjEuMzE0IChkZXBlbmRzIG9uIDYuMS4xMjYpClByb2JsZW06ICAgIE1pc3NpbmcgYmFja3NsYXNoIGluICJHZW5lcmljIENvbmZpZyBmaWxlIiBzeW50YXggbWVudS4KU29sdXRpb246ICAgSW5zZXJ0IHRoZSBiYWNrc2xhc2guIChaYWsgQmVjaykKRmlsZXM6CSAgICBydW50aW1lL21ha2VtZW51LnZpbSwgcnVudGltZS9zeW5tZW51LnZpbQoKUGF0Y2ggNi4xLjMxNSAoZXh0cmEpClByb2JsZW06ICAgIEEgdmVyeSBsb25nIGhvc3RuYW1lIG1heSBsZWFkIHRvIGFuIHVudGVybWluYXRlZCBzdHJpbmcuICBGYWlsaW5nCgkgICAgdG8gb2J0YWluIGEgaG9zdG5hbWUgbWF5IHJlc3VsdCBpbiBnYXJiYWdlLiAgKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBBZGQgYSBOVUwgYXQgdGhlIGVuZCBvZiB0aGUgaG9zdG5hbWUgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9vc19tYWMuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc191bml4LmMsIHNyYy9vc193aW4xNi5jLAoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuMzE2ClByb2JsZW06ICAgIFdoZW4gZXhpdGluZyB3aXRoICJ3cSIgYW5kIHRoZXJlIGlzIGEgaGlkZGVuIGJ1ZmZlciwgYWZ0ZXIgdGhlCgkgICAgImZpbGUgY2hhbmdlZCIgZGlhbG9nIHRoZXJlIGlzIGEgd2FybmluZyBmb3IgYSBjaGFuZ2VkIGJ1ZmZlci4KCSAgICAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBEbyB1cGRhdGUgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIHdoZW4gZXhpdGluZy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4zMTcKUHJvYmxlbTogICAgQ2xvc2luZyBhIHdpbmRvdyBtYXkgY2F1c2Ugc29tZSBvZiB0aGUgcmVtYWluaW5nIHdpbmRvd3MgdG8gYmUKCSAgICBwb3NpdGlvbmVkIHdyb25nIGlmIHRoZXJlIGlzIGEgbWl4IG9mIGhvcml6b250YWwgYW5kIHZlcnRpY2FsCgkgICAgc3BsaXRzLiAoU3RlZmFuIEluZ2kgVmFsZGltYXJzc29uKQpTb2x1dGlvbjogICBVcGRhdGUgdGhlIGZyYW1lIHNpemVzIGJlZm9yZSB1cGRhdGluZyB0aGUgd2luZG93IHBvc2l0aW9ucy4KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zMTgKUHJvYmxlbTogICAgYXV0by9wYXRoZGVmLmMgY2FuIGluY2x1ZGUgd3JvbmcgcXVvdGVzIHdoZW4gYSBjb21waWxlciBmbGFnCgkgICAgaW5jbHVkZXMgcXVvdGVzLgpTb2x1dGlvbjogICBQdXQgYSBiYWNrc2xhc2ggYmVmb3JlIHRoZSBxdW90ZXMgaW4gY29tcGlsZXIgZmxhZ3MuIChTaGlucmEgQWlkYSkKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMS4zMTkgKGRlcGVuZHMgb24gNi4xLjI3NikKUHJvYmxlbTogICAgVXNpbmcgIi0tcmVtb3RlICtjbWQgZmlsZSIgZG9lcyBub3QgZXhlY3V0ZSAiY21kIi4KU29sdXRpb246ICAgQ2FsbCBpbnB1dHJlc3RvcmUoKSBpbiB0aGUgc2FtZSBjb21tYW5kIGxpbmUgYXMgaW5wdXRzYXZlKCksCgkgICAgb3RoZXJ3aXNlIGl0IHdpbGwgbmV2ZXIgZ2V0IGV4ZWN1dGVkLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4zMjAgKGRlcGVuZHMgb24gNi4xLjMxMykKUHJvYmxlbTogICAgV2hlbiBhICI6ZHJvcCBvbmVcIGZpbGUiIGNvbW1hbmQgaXMgdXNlZCB0aGUgZmlsZSAib25lXCBmaWxlIiBpcwoJICAgIG9wZW5lZCwgdGhlIGJhY2tzbGFzaCBpcyBub3QgcmVtb3ZlZC4gKFRhcm8gTXVyYW9rYSkKU29sdXRpb246ICAgSGFuZGxlIGJhY2tzbGFzaGVzIGNvcnJlY3RseS4gIEFsd2F5cyBzZXQgdGhlIGFyZ3VtZW50IGxpc3QgdG8KCSAgICBrZWVwIGl0IHNpbXBsZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy93aW5kb3dzLnR4dCwgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjMyMQpQcm9ibGVtOiAgICBXaGVuICdtb3VzZScgaW5jbHVkZXMgJ24nIGJ1dCBub3QgJ3YnLCBkb24ndCBhbGxvdyBzdGFydGluZyBWaXN1YWwKCSAgICBtb2RlIHdpdGggdGhlIG1vdXNlLgpTb2x1dGlvbjogICBEb24ndCB1c2UgTU9VU0VfTUFZX1ZJUyB3aGVuIHRoZXJlIGlzIG5vICd2JyBpbiAnbW91c2UnLiAoRmxlbW1pbmcKCSAgICBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMzIyIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzE1KQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIGhvc3QgbmFtZSBpcyBhbHdheXMgIlBDICIgcGx1cyB0aGUgcmVhbCBob3N0IG5hbWUuClNvbHV0aW9uOiAgIERvbid0IGluc2VydCAiUEMgIiBiZWZvcmUgdGhlIGhvc3QgbmFtZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjMyMwpQcm9ibGVtOiAgICAiOnJlZ2lzdGVycyIgZG9lc24ndCBzdG9wIGxpc3RpbmcgZm9yIGEgInEiIGF0IHRoZSBtb3JlIHByb21wdC4KCSAgICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIENoZWNrIGZvciBpbnRlcnJ1cHQgYW5kIGdvdF9pbnQuCkZpbGVzOgkgICAgc3JjL29wcy5jLCBzcmMvcHJvdG8vb3BzLnBybwoKUGF0Y2ggNi4xLjMyNApQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGRyYWdnaW5nIGEgdmVydGljYWwgc2VwYXJhdG9yIHdoZW4gPExlZnRNb3VzZT4gaXMKCSAgICByZW1hcHBlZCB0byBqdW1wIHRvIGFub3RoZXIgd2luZG93LgpTb2x1dGlvbjogICBQYXNzIHRoZSB3aW5kb3cgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gZG9pbmcgdGhlIGRyYWdnaW5nIGluc3RlYWQKCSAgICBvZiBhbHdheXMgdXNpbmcgdGhlIGN1cnJlbnQgd2luZG93LiAoRGFuaWVsIEVsc3RuZXIpCgkgICAgQWxzbyBmaXggdGhhdCBzdGFydGluZyBhIGRyYWcgY2hhbmdlcyB3aW5kb3cgZm9jdXMuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vd2luZG93LnBybywgc3JjL3VpLmMsIHNyYy92aW0uaCwKCSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zMjUKUHJvYmxlbTogICAgU2hpZnQtVGFiIGlzIG5vdCBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZWQgaW4gYW4geHRlcm0uClNvbHV0aW9uOiAgIEFkZCA8RXNjPltaIGFzIHRoZSB0ZXJtY2FwIGNvZGUuIChBbmRyZXcgUGltbG90dCkKRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjEuMzI2ClByb2JsZW06ICAgIFVzaW5nIGEgc2VhcmNoIHBhdHRlcm4gbWF5IHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIGRhdGEgKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBJbml0aWFsaXplIHBvaW50ZXJzIHRvIE5VTEwuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjEuMzI3ClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyB0aGUgIm1ieXRlLnR4dCIgaGVscCBmaWxlIHRoZSB1dGYtOCBjaGFyYWN0ZXJzIGFyZQoJICAgIHVucmVhZGFibGUsIGJlY2F1c2UgdGhlIGZpbGVlbmNvZGluZyBpcyBmb3JjZWQgdG8gYmUgbGF0aW4xLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdXRmLTggZW5jb2RpbmcgZmlyc3QgaW4gaGVscCBmaWxlcy4gKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21ieXRlLnR4dCwgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMzI4ClByb2JsZW06ICAgIFByb3RvdHlwZSBmb3IgZW5jX2Nhbm9uX3NlYXJjaCgpIGlzIG1pc3NpbmcuClNvbHV0aW9uOiAgIEFkZCB0aGUgcHJvdG90eXBlLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4zMjkKUHJvYmxlbTogICAgV2hlbiBlZGl0aW5nIGEgZmlsZSAiYSBiIGMiIHJlcGxhY2luZyAiJSIgaW4gIjpDbWQgJSIgb3IgIjpuZXh0ICUiCgkgICAgZG9lcyBub3Qgd29yayBwcm9wZXJseS4gIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQWx3YXlzIGVzY2FwZSBzcGFjZXMgd2hlbiBleHBhbmRpbmcgIiUiLiAgRG9uJ3Qgc3BsaXQgYXJndW1lbnQgZm9yCgkgICAgPGYtYXJncz4gaW4gYSB1c2VyIGNvbW1hbmQgd2hlbiBvbmx5IG9uZSBhcmd1bWVudCBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMzMwClByb2JsZW06ICAgIEdUSywgTW90aWYgYW5kIEF0aGVuYTogS2V5cGFkIGtleXMgcHJvZHVjZSB0aGUgc2FtZSBjb2RlIGFzCgkgICAgbm9uLWtleXBhZCBrZXlzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBtYXAgdGhlbSBzZXBhcmF0ZWx5LgpTb2x1dGlvbjogICBVc2UgZGlmZmVyZW50IHRlcm1jYXAgY29kZXMgZm9yIHRoZSBrZXlwYWQga2V5cy4gKE5laWwgQmlyZCkKRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjMzMQpQcm9ibGVtOiAgICBXaGVuIHRyYW5zbGF0aW5nIHRoZSBoZWxwIGZpbGVzLCAiTE9DQUwgQURESVRJT05TIiBubyBsb25nZXIgbWFya3MKCSAgICB0aGUgc3BvdCB3aGVyZSBoZWxwIGZpbGVzIGZyb20gcGx1Z2lucyBhcmUgdG8gYmUgbGlzdGVkLgpTb2x1dGlvbjogICBBZGQgYSAibG9jYWwtYWRkaXRpb25zIiB0YWcgYW5kIHVzZSB0aGF0IHRvIGZpbmQgdGhlIHJpZ2h0IHNwb3QuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaGVscC50eHQsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS4zMzIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogTG9hZGluZyBQZXJsIGR5bmFtaWNhbGx5IGRvZXNuJ3Qgd29yayB3aXRoIFBlcmwgNS44LgoJICAgIFBlcmwgNS44IGFsc28gZG9lcyBub3Qgd29yayB3aXRoIEN5Z3dpbiBhbmQgTWluZy4KU29sdXRpb246ICAgQWRqdXN0IHRoZSBmdW5jdGlvbiBjYWxscy4gKFRhcm8gTXVyYW9rYSkKCSAgICBBZGp1c3QgdGhlIGN5ZyBhbmQgbWluZyBtYWtlZmlsZXMuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbWluZy5tYWssIHNyYy9NYWtlX212Yy5tYWssCgkgICAgc3JjL2lmX3BlcmwueHMKClBhdGNoIDYuMS4zMzMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgaGFuZGxlIFVuaWNvZGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgoJICAgIENhbid0IHBhc3MgTlVMIGJ5dGUsIGl0IGJlY29tZXMgYSBsaW5lIGJyZWFrLiAgKEJydWNlIERlVmlzc2VyKQpTb2x1dGlvbjogICBTdXBwb3J0IFVuaWNvZGUgZm9yIHRoZSBjbGlwYm9hcmQgKFJvbiBBYXJvbiBhbmQgR2xlbm4gTWF5bmFyZCkKCSAgICBBbHNvIHN1cHBvcnQgY29weS9wYXN0ZSBvZiBOVUwgYnl0ZXMuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMsIHNyYy9vc193aW4xNi5jIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuMzM0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzAzKQpQcm9ibGVtOiAgICBQcm9ibGVtIHdpdGggZHJhd2luZyBIZWJyZXcgY2hhcmFjdGVycy4KU29sdXRpb246ICAgT25seSB1c2UgRVRPX1BEWSBmb3IgV2luZG93cyBOVCBhbmQgdGhlIGxpa2UuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjMzNSAoZXh0cmEpClByb2JsZW06ICAgIEZhaWx1cmUgb2Ygb2J0YWluaW5nIHRoZSBjdXJzb3IgcG9zaXRpb24gYW5kIHdpbmRvdyBzaXplIGlzCgkgICAgaWdub3JlZC4KU29sdXRpb246ICAgUmVtb3ZlIGEgc2VtaWNvbG9uIGFmdGVyIGFuICJpZiIuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzM2IChleHRyYSkKUHJvYmxlbTogICAgV2FybmluZyBmb3IgdXNlIG9mIGZ1bmN0aW9uIHByb3RvdHlwZXMgb2Ygc21zZygpLgpTb2x1dGlvbjogICBEZWZpbmUgSEFWRV9TVERBUkdfSC4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5oCgpQYXRjaCA2LjEuMzM3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgImZpbmlzaCIgaW4gZGVidWcgbW9kZSBpbiBmdW5jdGlvbiBCKCkgZm9yICI6Y2FsbAoJICAgIEEoQigpKSIgZG9lcyBub3Qgc3RvcCBhZnRlciBCKCkgaXMgZmluaXNoZWQuClNvbHV0aW9uOiAgIEluY3JlYXNlIGRlYnVnX2xldmVsIHdoaWxlIGV2YWx1YXRpbmcgYSBmdW5jdGlvbi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjMzOApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgbWVudSB0aGF0IGNoZWNrcyBvdXQgdGhlIGN1cnJlbnQgZmlsZSBmcm9tIEluc2VydAoJICAgIG1vZGUsIHRoZXJlIGlzIG5vIHdhcm5pbmcgZm9yIHRoZSBjaGFuZ2VkIGZpbGUgdW50aWwgZXhpdGluZwoJICAgIEluc2VydCBtb2RlLiAgKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBBZGQgYSBjaGVjayBmb3IgbmVlZF9jaGVja190aW1lc3RhbXBzIGluIHRoZSBJbnNlcnQgbW9kZSBsb29wLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4zMzkKUHJvYmxlbTogICAgQ29tcGxldGlvbiBkb2Vzbid0IGFsbG93ICJnOiIgaW4gIjpsZXQgZzpkaWRfPFRhYj4iLiAoQmVuamkKCSAgICBGaXNoZXIpClNvbHV0aW9uOiAgIFJldHVybiAiZzp2YXIiIGZvciBnbG9iYWwgdmFyaWFibGVzIHdoZW4gdGhhdCBpcyB3aGF0IGlzIGJlaW5nCgkgICAgZXhwYW5kZWQuIChGbGVtbWluZyBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjM0MCAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjMzMikKUHJvYmxlbTogICAgV2luMzI6IENhbid0IGNvbXBpbGUgdGhlIFBlcmwgaW50ZXJmYWNlIHdpdGggbm1ha2UuClNvbHV0aW9uOiAgIERvbid0IGNvbXBhcmUgdGhlIHZlcnNpb24gbnVtYmVyIGFzIGEgc3RyaW5nIGJ1dCBhcyBhIG51bWJlci4KCSAgICAoSnVlcmdlbiBLcmFlbWVyKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS4zNDEKUHJvYmxlbTogICAgSW4gSW5zZXJ0IG1vZGUgd2l0aCAncmlnaHRsZWZ0JyBzZXQgdGhlIGN1cnNvciBpcyBkcmF3biBoYWxmd2F5IGEKCSAgICBkb3VibGUtd2lkZSBjaGFyYWN0ZXIuICBGb3IgQ1RSTC1SIGFuZCBDVFJMLUsgaW4gSW5zZXJ0IG1vZGUgdGhlICIKCSAgICBvciA/IGlzIG5vdCBkaXNwbGF5ZWQuClNvbHV0aW9uOiAgIERyYXcgdGhlIGN1cnNvciBpbiB0aGUgbmV4dCBjaGFyYWN0ZXIgY2VsbC4gIERpc3BsYXkgdGhlICIgb3IgPwoJICAgIG92ZXIgdGhlIHJpZ2h0IGhhbGYgb2YgdGhlIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKSAgQWxzbyBmaXggdGhhdCBjYW5jZWxsaW5nIGEgZGlncmFwaCBkb2Vzbid0IHJlZHJhdwoJICAgIGEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyIGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ3VpLmMsIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMzQyIChkZXBlbmRzIG9uIDYuMS4zNDEpClByb2JsZW06ICAgIFdpdGggJ3JpZ2h0bGVmdCcgc2V0IHR5cGluZyAiYyIgb24gYSBkb3VibGUtd2lkZSBjaGFyYWN0ZXIgY2F1c2VzCgkgICAgdGhlIGN1cnNvciB0byBiZSBkaXNwbGF5ZWQgb25lIGNlbGwgdG8gdGhlIGxlZnQuClNvbHV0aW9uOiAgIERyYXcgdGhlIGN1cnNvciBpbiB0aGUgbmV4dCBjaGFyYWN0ZXIgY2VsbC4gIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMzQzIChkZXBlbmRzIG9uIDYuMS4zNDIpClByb2JsZW06ICAgIENhbm5vdCBjb21waWxlIHdpdGggdGhlICttdWx0aV9ieXRlIGZlYXR1cmUgYnV0IHdpdGhvdXQgK3JpZ2h0bGVmdC4KCSAgICBDYW5ub3QgY29tcGlsZSB3aXRob3V0IHRoZSBHVUkuClNvbHV0aW9uOiAgIEZpeCB0aGUgI2lmZGVmcy4gIChwYXJ0bHkgYnkgTmFtIFN1bmdIeXVuKQpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL21ieXRlLmMsIHNyYy91aS5jCgpQYXRjaCA2LjEuMzQ0ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpzaWxlbnQgZmlsZXR5cGUiIHRoZSBvdXRwdXQgaXMgc3RpbGwgcHV0IGluIHRoZQoJICAgIG1lc3NhZ2UgaGlzdG9yeS4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBhZGQgbWVzc2FnZXMgaW4gdGhlIGhpc3Rvcnkgd2hlbiAiOnNpbGVudCIgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMzQ1IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6ICdpbWRpc2FibGUnIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgTWFrZSAnaW1kaXNhYmxlJyB3b3JrLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zNDYKUHJvYmxlbTogICAgVGhlIHNjcm9sbCB3aGVlbCBjYW4gb25seSBzY3JvbGwgdGhlIGN1cnJlbnQgd2luZG93LgpTb2x1dGlvbjogICBNYWtlIHRoZSBzY3JvbGwgd2hlZWwgc2Nyb2xsIHRoZSB3aW5kb3cgdGhhdCB0aGUgbW91c2UgcG9pbnRzIHRvLgoJICAgIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ3VpLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xLjM0NwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGNzY29wZSB0byBsaXN0IG1hdGNoaW5nIHRhZ3MsIHRoZSBsaXN0ZWQgbnVtYmVyIGlzCgkgICAgc29tZXRpbWVzIG5vdCBlcXVhbCB0byB3aGF0IGNzY29wZSB1c2VzLiAoVmlocmVuIE1pbGV2KQpTb2x1dGlvbjogICBGb3IgY3Njb3BlIHRhZ3MgdXNlIG9ubHkgb25lIHRhYmxlLCBkb24ndCBnaXZlIHRhZ3MgaW4gdGhlIGN1cnJlbnQKCSAgICBmaWxlIGEgaGlnaGVyIHByaW9yaXR5LgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4xLjM0OApQcm9ibGVtOiAgICBXaWxkbW9kZSB3aXRoIHdpbGRtZW51OiAiOnNldCB3aWxkbW9kZT1saXN0LGZ1bGwiLCAiOmNvbG9yc2NoZW1lCgkgICAgPHRhYj4iIHJlc3VsdHMgaW4gInplbGxuZXIiIGluc3RlYWQgb2YgdGhlIGZpcnN0IGVudHJ5LiAoQW5hbmQKCSAgICBIYXJpaGFyYW4pClNvbHV0aW9uOiAgIERvbid0IGNhbGwgRXhwYW5kT25lKCkgZnJvbSBnbG9icGF0aCgpLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjEuMzQ5ClByb2JsZW06ICAgICJ2aW0gLS1zZXJ2ZXJsaXN0IiB3aGVuIG5vIHNlcnZlciB3YXMgZXZlciBzdGFydGVkIGdpdmVzIGFuIGVycm9yCgkgICAgbWVzc2FnZSB3aXRob3V0ICJcbiIuCgkgICAgInZpbSAtLXNlcnZlcmxpc3QiIGRvZXNuJ3QgZXhpdCB3aGVuIHRoZSBYIHNlcnZlciBjYW4ndCBiZQoJICAgIGNvbnRhY3RlZCwgaXQgc3RhcnRzIFZpbSB1bmV4cGVjdGVkbHkuIChSaWNhcmRvIFNpZ25lcykKU29sdXRpb246ICAgRG9uJ3QgZ2l2ZSBhbiBlcnJvciB3aGVuIG5vIFZpbSBzZXJ2ZXIgd2FzIGV2ZXIgc3RhcnRlZC4KCSAgICBUcmVhdCBmYWlsaW5nIG9mIG9wZW5pbmcgdGhlIGRpc3BsYXkgZXF1YWwgdG8gZXJyb3JzIGluc2lkZSB0aGUKCSAgICByZW1vdGUqKCkgZnVuY3Rpb25zLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9tYWluLmMKClBhdGNoIDYuMS4zNTAKUHJvYmxlbTogICAgV2hlbiBlbnRlcmluZyBhIGJ1ZmZlciB3aXRoICI6Ym5leHQiIGZvciB0aGUgZmlyc3QgdGltZSwgdXNpbmcgYW4KCSAgICBhdXRvY29tbWFuZCB0byByZXN0b3JlIHRoZSBsYXN0IHVzZWQgY3Vyc29yIHBvc2l0aW9uIGRvZXNuJ3Qgd29yay4KCSAgICAoUGFvbG8gR2lhcnVzc28pClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgbGFzdCBrbm93biBjdXJzb3IgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgVmltCgkgICAgaW52b2NhdGlvbiBpZiBhbiBhdXRvY29tbWFuZCBjaGFuZ2VkIHRoZSBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zNTEgKGRlcGVuZHMgb24gNi4xLjM0OSkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBzdGFydGluZyBWaW0gdGhlIGZpcnN0IHRpbWUgaW4gYW4gWCBzZXJ2ZXIuIChKb2huCgkgICAgTWNHb3dhbikKU29sdXRpb246ICAgRG9uJ3QgY2FsbCB4RnJlZSgpIHdpdGggYSBmaXhlZCBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL2lmX3hjbWRzcnYuYwoKUGF0Y2ggNi4xLjM1MiAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjM0NSkKUHJvYmxlbTogICAgV2luMzI6IENyYXNoIHdoZW4gc2V0dGluZyAiaW1kaXNhYmxlIiBpbiBfdmltcmMuClNvbHV0aW9uOiAgIERvbid0IGNhbGwgSU1FIGZ1bmN0aW9ucyB3aGVuIGltbTMyLmRsbCB3YXMgbm90IGxvYWRlZCAoeWV0KS4KCSAgICBBbHNvIGFkZCB0eXBlY2FzdHMgdG8gYXZvaWQgQ29tcGlsZXIgd2FybmluZ3MgZm9yCgkgICAgSW1tQXNzb2NpYXRlQ29udGV4dCgpIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zNTMgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zMzQpClByb2JsZW06ICAgIFByb2JsZW0gd2l0aCBkcmF3aW5nIEFyYWJpYyBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBEb24ndCB1c2UgRVRPX1BEWSwgZG8gdXNlIHBhZGRpbmcuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjM1NCAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjMzMykKUHJvYmxlbTogICAgTVMtV2luZG93cyA5ODogTm90ZXBhZCBjYW4ndCBwYXN0ZSB0ZXh0IGNvcGllZCBmcm9tIFZpbSB3aGVuCgkgICAgJ2VuY29kaW5nJyBpcyAidXRmLTgiLgpTb2x1dGlvbjogICBBbHNvIG1ha2UgQ0ZfVEVYVCBhdmFpbGFibGUgb24gdGhlIGNsaXBib2FyZC4gKFJvbiBBYXJvbikKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xLjM1NQpQcm9ibGVtOiAgICBJbiBhIHJlZ2V4cCAnXG4nIHdpbGwgbmV2ZXIgbWF0Y2ggYW55dGhpbmcgaW4gYSBzdHJpbmcuClNvbHV0aW9uOiAgIE1ha2UgJ1xuJyBtYXRjaCBhIG5ld2xpbmUgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMS5jLAoJICAgIHNyYy9vcHRpb24uYywgc3JjL29zX21hYy5jLCBzcmMvb3NfdW5peC5jLCBzcmMvcXVpY2tmaXguYywKCSAgICBzcmMvcmVnZXhwLmMsIHNyYy9zZWFyY2guYywgc3JjL3N5bnRheC5jLCBzcmMvdGFnLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjM1NiAoZXh0cmEsIGRlcGVuZHMgb24sIHdlbGwsIGVoLCBzZXZlcmFsIG90aGVycykKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHVzaW5nIGNvbnZlcnRfc2V0dXAoKSBhbmQgYSBmZXcgb3RoZXIKCSAgICB0aGluZ3MuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdHMuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9vc19tc3dpbi5jLCBzcmMvcHJvdG8vb3Nfd2luMzIucHJvLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjM1NwpQcm9ibGVtOiAgICBDUiBpbiB0aGUgcXVpY2tmaXggd2luZG93IGp1bXBzIHRvIHRoZSBlcnJvciB1bmRlciB0aGUgY3Vyc29yLCBidXQKCSAgICB0aGlzIGRvZXNuJ3Qgd29yayBpbiBJbnNlcnQgbW9kZS4gKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBIYW5kbGUgQ1IgaW4gSW5zZXJ0IG1vZGUgaW4gdGhlIHF1aWNrZml4IHdpbmRvdy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuMzU4ClByb2JsZW06ICAgIFRoZSB0dXRvciBkb2Vzbid0IHNlbGVjdCBhbm90aGVyIGxvY2FsZSB2ZXJzaW9uIHByb3Blcmx5LgpTb2x1dGlvbjogICBJbnNlcnQgdGhlICJsZXQiIGNvbW1hbmQuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgcnVudGltZS90dXRvci90dXRvci52aW0KClBhdGNoIDYuMS4zNTkgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWMgQ2FyYm9uOiBWaW0gZG9lc24ndCBnZXQgZm9jdXMgd2hlbiBzdGFydGVkIGZyb20gdGhlIGNvbW1hbmQKCSAgICBsaW5lLiAgQ3Jhc2ggd2hlbiB1c2luZyBob3Jpem9udGFsIHNjcm9sbCBiYXIuClNvbHV0aW9uOiAgIFNldCBWaW0gYXMgdGhlIGZyb250cHJvY2Vzcy4gIEZpeCBzY3JvbGxpbmcuICAoUGV0ZXIgQ3Vja2EpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4xLjM2MCAoZGVwZW5kcyBvbiA2LjEuMzQxKQpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSBDVFJMLUsgRVNDIG1lc3NlcyB1cCBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgoJICAgIChBbmRlcnMgSGVsbWVyc3NvbikKU29sdXRpb246ICAgU2F2ZSBhbGwgYnl0ZXMgb2YgYSBjaGFyYWN0ZXIgd2hlbiBkaXNwbGF5aW5nIGEgY2hhcmFjdGVyCgkgICAgdGVtcG9yYXJpbHkuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL3Byb3RvL3NjcmVlbi5wcm8sIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjM2MQpQcm9ibGVtOiAgICBDYW5ub3QganVtcCB0byBhIGZpbGUgbWFyayB3aXRoICI6J00iLgpTb2x1dGlvbjogICBBbGxvdyBqdW1waW5nIHRvIGFub3RoZXIgZmlsZSBmb3IgYSBtYXJrIGluIGFuIEV4IGFkZHJlc3Mgd2hlbiBpdAoJICAgIGlzIHRoZSBvbmx5IHRoaW5nIGluIHRoZSBjb21tYW5kIGxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zNjIKUHJvYmxlbTogICAgdGdldGVudCgpIG1heSByZXR1cm4gemVybyBmb3Igc3VjY2Vzcy4gdGdldGZsYWcoKSBtYXkgcmV0dXJuIC0xCgkgICAgZm9yIGFuIGVycm9yLgpTb2x1dGlvbjogICBDaGVjayB0Z2V0ZmxhZygpIGZvciByZXR1cm5pbmcgYSBwb3NpdGl2ZSB2YWx1ZS4gIEFkZCBhbiBhdXRvY29uZgoJICAgIGNoZWNrIGZvciB0aGUgdmFsdWUgdGhhdCB0Z2V0ZW50KCkgcmV0dXJucy4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWcuaC5pbiwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xLjM2MwpQcm9ibGVtOiAgICBieXRlMmxpbmUoKSBjYW4gcmV0dXJuIG9uZSBtb3JlIHRoYW4gdGhlIG51bWJlciBvZiBsaW5lcy4KU29sdXRpb246ICAgUmV0dXJuIC0xIGlmIHRoZSBvZmZzZXQgaXMgb25lIGJ5dGUgcGFzdCB0aGUgZW5kLgpGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMS4zNjQKUHJvYmxlbTogICAgVGhhdCB0aGUgRmlsZUNoYW5nZWRTaGVsbCBhdXRvY29tbWFuZCBldmVudCBuZXZlciBuZXN0cyBtYWtlcyBpdAoJICAgIGRpZmZpY3VsdCB0byByZWxvYWQgYSBmaWxlIGluIGEgbm9ybWFsIHdheS4KU29sdXRpb246ICAgQWxsb3cgbmVzdGluZyBmb3IgdGhlIEZpbGVDaGFuZ2VkU2hlbGwgZXZlbnQgYnV0IGRvIG5vdCBhbGxvdwoJICAgIHRyaWdnZXJpbmcgaXRzZWxmIGFnYWluLgoJICAgIEFsc28gYXZvaWQgYXV0b2NvbW1hbmRzIGZvciB0aGUgY21kbGluZSB3aW5kb3cgaW4gcmFyZSBjYXNlcy4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2ZpbGVpby5jLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zNjUgKGRlcGVuZHMgb24gNi4xLjIxNykKUHJvYmxlbTogICAgU2V0dGluZyBhIGJyZWFrcG9pbnQgaW4gYSBzb3VyY2VkIGZpbGUgd2l0aCBhIHJlbGF0aXZlIHBhdGggbmFtZQoJICAgIGRvZXNuJ3Qgd29yay4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEV4cGFuZCB0aGUgZmlsZSBuYW1lIHRvIGEgZnVsbCBwYXRoLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMzY2ClByb2JsZW06ICAgIENhbid0IHVzZSBWaW0gd2l0aCBOZXRiZWFucy4KU29sdXRpb246ICAgQWRkIHRoZSBOZXRiZWFucyBpbnRlcmZhY2UuICBJbmNsdWRlcyBzdXBwb3J0IGZvciBzaWduIGljb25zIGFuZAoJICAgICItZmciIGFuZCAiLWJnIiBhcmd1bWVudHMgZm9yIEdUSy4gIEFkZCB0aGUgJ2F1dG9jaGRpcicKCSAgICBvcHRpb24uICAoR29yZG9uIFByaWV1ciwgR2VvcmdlIEhlcm5hbmRleiwgRGF2ZSBXZWF0aGVyZm9yZCkKCSAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGRpc3BsYXkgYm90aCBhIHNpZ24gd2l0aCBhIHRleHQgYW5kIG9uZSB3aXRoCgkgICAgbGluZSBoaWdobGlnaHRpbmcgaW4gdGhlIHNhbWUgbGluZS4KCSAgICBBZGQgc3VwcG9ydCBmb3IgQWdpZGUsIGludGVyZmFjZSB2ZXJzaW9uIDIuMS4KCSAgICBBbHNvIGZpeCB0aGF0IHdoZW4gJ2lza2V5d29yZCcgaW5jbHVkZXMgJz8nIHRoZSAiKiIgY29tbWFuZAoJICAgIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBvbiBhIHdvcmQgdGhhdCBpbmNsdWRlcyAiPyIgKEJpbGwgTWNDYXJ0aHkpOgoJICAgIERvbid0IGVzY2FwZSAiPyIgdG8gIlw/IiB3aGVuIHNlYXJjaGluZyBmb3J3YXJkLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlLCBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsCgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHJ1bnRpbWUvZG9jL3ZhcmlvdXMudHh0LAoJICAgIHNyYy9NYWtlZmlsZSwgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvYnVmZmVyLmMsIHNyYy9jb25maWcuaC5pbiwKCSAgICBzcmMvY29uZmlnLm1rLmluLCBzcmMvY29uZmlndXJlLmluLCBzcmMvZWRpdC5jLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZmVhdHVyZS5oLCBzcmMvZmlsZWlvLmMsIHNyYy9nbG9iYWxzLmgsCgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX2JldmFsLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZ3VpX3gxMS5jLAoJICAgIHNyYy9tYWluLmMsIHNyYy9tZW1saW5lLmMsIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL21vdmUuYywKCSAgICBzcmMvbmJkZWJ1Zy5jLCBzcmMvbmJkZWJ1Zy5oLCBzcmMvbmV0YmVhbnMuYywgc3JjL25vcm1hbC5jLAoJICAgIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgsIHNyYy9wcm90by9idWZmZXIucHJvLAoJICAgIHNyYy9wcm90by9ndWlfYmV2YWwucHJvLCBzcmMvcHJvdG8vZ3VpX2d0a194MTEucHJvLAoJICAgIHNyYy9wcm90by9ndWlfeDExLnBybywgc3JjL3Byb3RvL21pc2MyLnBybywKCSAgICBzcmMvcHJvdG8vbmV0YmVhbnMucHJvLCBzcmMvcHJvdG8vbm9ybWFsLnBybywgc3JjL3Byb3RvL3VpLnBybywKCSAgICBzcmMvcHJvdG8uaCwgc3JjL3NjcmVlbi5jLCBzcmMvc3RydWN0cy5oLCBzcmMvdWkuYywgc3JjL3VuZG8uYywKCSAgICBzcmMvdmltLmgsIHNyYy93aW5kb3cuYywgc3JjL3dvcmtzaG9wLmMKClBhdGNoIDYuMS4zNjcgKGRlcGVuZHMgb24gNi4xLjM2NSkKUHJvYmxlbTogICAgU2V0dGluZyBhIGJyZWFrcG9pbnQgaW4gYSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICBGb3IgYSBzb3VyY2VkCgkgICAgZmlsZSBpdCBkb2Vzbid0IHdvcmsgd2hlbiBzeW1ib2xpYyBsaW5rcyBhcmUgaW52b2x2ZWQuICAoU2VydmF0aXVzCgkgICAgQnJhbmR0KQpTb2x1dGlvbjogICBFeHBhbmQgdGhlIGZpbGUgbmFtZSBpbiB0aGUgc2FtZSB3YXkgYXMgZG9fc291cmNlKCkgZG9lcy4gIERvbid0CgkgICAgcHJlcGVuZCB0aGUgcGF0aCB0byBhIGZ1bmN0aW9uIG5hbWUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4zNjgKUHJvYmxlbTogICAgQ29tcGxldGlvbiBmb3IgIjptYXAiIGRvZXMgbm90IGluY2x1ZGUgPHNpbGVudD4gYW5kIDxzY3JpcHQ+LgoJICAgICI6bWtleHJjIiBkbyBub3Qgc2F2ZSB0aGUgPHNpbGVudD4gYXR0cmlidXRlIG9mIG1hcHBpbmdzLgpTb2x1dGlvbjogICBBZGQgIjxzaWxlbnQ+IiB0byB0aGUgZ2VuZXJhdGVkIG1hcCBjb21tYW5kcyB3aGVuIGFwcHJvcHJpYXRlLgoJICAgIChEYXZpZCBFbHN0bmVyKQoJICAgIEFkZCA8c2lsZW50PiBhbmQgPHNjcmlwdD4gdG8gY29tbWFuZCBsaW5lIGNvbXBsZXRpb24uCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjM2OSAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogVmltIGhhbmdzIHdoZW4gYXR0ZW1wdGluZyB0byBlZGl0IGEgcmVhZC1vbmx5IGZpbGUgaW4gdGhlCgkgICAgdGVybWluYWwuICBQcm9ibGVtIHdpdGggVk1TIGZpbGVuYW1lcyBmb3IgcXVpY2tmaXguClNvbHV0aW9uOiAgIFJld3JpdGUgbG93IGxldmVsIGlucHV0LiAgUmVtb3ZlIHZlcnNpb24gbnVtYmVyIGZyb20gZmlsZSBuYW1lIGluCgkgICAgYSBjb3VwbGUgbW9yZSBwbGFjZXMuICBGaXggY3Jhc2ggYWZ0ZXIgcGF0Y2ggNi4xLjM2Mi4gIENvcnJlY3QKCSAgICByZXR1cm4gY29kZSBmb3Igc3lzdGVtKCkuICAoWm9sdGFuIEFycGFkZmZ5LCBUb21hcyBTdGVobGlrKQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvb3NfdW5peC5jLCBzcmMvb3Nfdm1zLmMsIHNyYy9wcm90by9vc192bXMucHJvLAoJICAgIHNyYy9vc192bXNfY29uZi5oLCBzcmMvcXVpY2tmaXguYywgc3JjL3VpLmMKClBhdGNoIDYuMS4zNzAKUHJvYmxlbTogICAgI2lmZGVmIG5lc3RpbmcgaXMgdW5jbGVhci4KU29sdXRpb246ICAgSW5zZXJ0IHNwYWNlcyB0byBpbmRpY2F0ZSB0aGUgbmVzdGluZy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMzcxClByb2JsZW06ICAgICIlViIgaW4gJ3N0YXR1c2xpbmUnIGRvZXNuJ3Qgc2hvdyAiMC0xIiBpbiBhbiBlbXB0eSBsaW5lLgpTb2x1dGlvbjogICBBZGQgb25lIHRvIHRoZSBjb2x1bW4gd2hlbiBjb21wYXJpbmcgd2l0aCB2aXJ0dWFsIGNvbHVtbiAoQW5kcmV3CgkgICAgUGltbG90dCkKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zNzIKUHJvYmxlbTogICAgV2l0aCAxNiBiaXQgaW50cyB0aGVyZSBhcmUgY29tcGlsZXIgd2FybmluZ3MuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgQ2hhbmdlIGludCBpbnRvIGxvbmcuCkZpbGVzOgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMzczClByb2JsZW06ICAgIFRoZSBkZWZhdWx0IHBhZ2UgaGVhZGVyIGZvciBwcmludGluZyBpcyBub3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgQWRkIF8oKSBhcm91bmQgdGhlIHR3byBwbGFjZXMgd2hlcmUgIlBhZ2UiIGlzIHVzZWQuIChNaWtlCgkgICAgV2lsbGlhbXMpICBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd0aXRsZW9sZCcgYW5kCgkgICAgJ3ByaW50aGVhZGVyJyBvcHRpb25zLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4zNzQgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBDYW5ub3QgYnVpbGQgR3ZpbUV4dCB3aXRoIE1pbmdXIG9yIEN5Z3dpbi4KU29sdXRpb246ICAgQWRkIG1ha2VmaWxlIGFuZCBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4gKFJlbmUgZGUgWndhcnQpCgkgICAgQWxzbyBzdXBwb3J0IEN5Z3dpbi4gKEFsZWphbmRybyBMb3Blel9WYWxlbmNpYSkKRmlsZXM6CSAgICBHdmltRXh0L01ha2VfY3lnLm1haywgR3ZpbUV4dC9NYWtlX21pbmcubWFrLCBHdmltRXh0L01ha2VmaWxlLAoJICAgIEd2aW1FeHQvZ3ZpbWV4dF9taW5nLmRlZiwgR3ZpbUV4dC9ndmltZXh0X21pbmcucmMKClBhdGNoIDYuMS4zNzUKUHJvYmxlbTogICAgTVMtV2luZG93czogJzohZGlyICIlIicgZG9lcyBub3Qgd29yayBmb3IgYSBmaWxlIG5hbWUgd2l0aCBzcGFjZXMuCgkgICAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIERvbid0IGluc2VydCBiYWNrc2xhc2hlcyBmb3Igc3BhY2VzIGluIGEgc2hlbGwgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjM3NgpQcm9ibGVtOiAgICAidmltIC0tdmVyc2lvbiIgYW5kICJ2aW0gLS1oZWxwIiBoYXZlIGEgbm9uLXplcm8gZXhpdCBjb2RlLgoJICAgIFRoYXQgaXMgdW51c3VhbC4gKFBldGVzZWEpClNvbHV0aW9uOiAgIFVzZSBhIHplcm8gZXhpdCBjb2RlLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4zNzcKUHJvYmxlbTogICAgQ2FuJ3QgYWRkIHdvcmRzIHRvICdsaXNwd29yZHMnIG9wdGlvbi4KU29sdXRpb246ICAgQWRkIFBfQ09NTUEgYW5kIFBfTk9EVVAgZmxhZ3MuIChIYWFrb24gUmlpc2VyKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjM3OApQcm9ibGVtOiAgICBXaGVuIHR3byBidWZmZXItbG9jYWwgdXNlciBjb21tYW5kcyBhcmUgYW1iaWd1b3VzLCBhIGZ1bGwgbWF0Y2gKCSAgICB3aXRoIGEgZ2xvYmFsIHVzZXIgY29tbWFuZCBpc24ndCBmb3VuZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEZXRlY3QgdGhpcyBzaXR1YXRpb24gYW5kIGFjY2VwdCB0aGUgZ2xvYmFsIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zNzkKUHJvYmxlbTogICAgTGludXggd2l0aCBrZXJuZWwgMi4yIGNhbid0IHVzZSB0aGUgYWx0ZXJuYXRlIHN0YWNrIGluIGNvbWJpbmF0aW9uCgkgICAgd2l0aCB0aHJlYWRpbmcsIGNhdXNlcyBhbiBpbmZpbml0ZSBsb29wLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIGFsdGVybmF0ZSBzdGFjayBpbiB0aGlzIHNpdHVhdGlvbi4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMzgwClByb2JsZW06ICAgIFdoZW4gJ3dpbm1pbmhlaWdodCcgaXMgemVybyBhbmQgdGhlIHF1aWNrZml4IHdpbmRvdyBpcyB6ZXJvIGxpbmVzLAoJICAgIGVudGVyaW5nIHRoZSB3aW5kb3cgZG9lc24ndCBtYWtlIGl0IGhpZ2hlci4gKENocmlzdGlhbiBKLgoJICAgIFJvYmluc29uKQpTb2x1dGlvbjogICBNYWtlIHN1cmUgdGhlIGN1cnJlbnQgd2luZG93IGlzIGF0IGxlYXN0IG9uZSBsaW5lIGhpZ2guCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMzgxClByb2JsZW06ICAgIFdoZW4gYSBCdWZXcml0ZUNtZCBpcyB1c2VkIGFuZCBpdCBsZWF2ZXMgdGhlIGJ1ZmZlciBtb2RpZmllZCwgdGhlCgkgICAgd2luZG93IG1heSBzdGlsbCBiZSBjbG9zZWQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgUmV0dXJuIEZBSUwgZnJvbSBidWZfd3JpdGUoKSB3aGVuIHRoZSBidWZmZXIgaXMgc3RpbGwgbW9kaWZpZWQKCSAgICBhZnRlciBhIEJ1ZldyaXRlQ21kIGF1dG9jb21tYW5kIHdhcyB1c2VkLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjM4MiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIEdVSTogV2hlbiB1c2luZyB0d28gbW9uaXRvcnMsIHRoZSBjb2RlIHRoYXQgY2hlY2tzL2ZpeGVzIHRoZQoJICAgIHdpbmRvdyBzaXplIGFuZCBwb3NpdGlvbiAoZS5nLiB3aGVuIGEgZm9udCBjaGFuZ2VzKSBkb2Vzbid0IHdvcmsKCSAgICBwcm9wZXJseS4gIChHZW9yZ2UgUmVpbGx5KQpTb2x1dGlvbjogICBIYW5kbGUgYSBkb3VibGUgbW9uaXRvciBzaXR1YXRpb24uIChIZWxtdXQgU3RpZWdsZXIpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjM4MwpQcm9ibGVtOiAgICBUaGUgZmlsbGluZyBvZiB0aGUgc3RhdHVzIGxpbmUgZG9lc24ndCB3b3JrIHByb3Blcmx5IGZvcgoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gKE5hbSBTdW5nSHl1bikKCSAgICBUaGVyZSBpcyBubyBjaGVjayBmb3IgZ29pbmcgcGFzdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuClNvbHV0aW9uOiAgIFByb3Blcmx5IGRpc3Rpbmd1aXNoIGNoYXJhY3RlcnMgYW5kIGJ5dGVzLiAgUHJvcGVybHkgY2hlY2sgZm9yCgkgICAgcnVubmluZyBvdXQgb2YgYnVmZmVyIHNwYWNlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9wcm90by9idWZmZXIucHJvLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4zODQKUHJvYmxlbTogICAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIGZpbmQgaWYgYSBjZXJ0YWluIHBhdGNoIGhhcyBiZWVuIGluY2x1ZGVkLgoJICAgIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIFN1cHBvcnQgdXNpbmcgaGFzKCkgdG8gY2hlY2sgaWYgYSBwYXRjaCB3YXMgaW5jbHVkZWQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsIHNyYy9wcm90by92ZXJzaW9uLnBybywKCSAgICBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjEuMzg1IChkZXBlbmRzIG9uIDYuMS4zODMpClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aG91dCB0aGUgbXVsdGktYnl0ZSBmZWF0dXJlLgpTb2x1dGlvbjogICBNb3ZlIGFuICNpZmRlZi4gIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMzg2ClByb2JsZW06ICAgIEdldCBkdXBsaWNhdGUgdGFncyB3aGVuIHJ1bm5pbmcgIjpoZWxwdGFncyIuClNvbHV0aW9uOiAgIERvIHRoZSBvdGhlciBoYWx2ZSBvZiBtb3ZpbmcgYSBzZWN0aW9uIHRvIGFub3RoZXIgaGVscCBmaWxlLgpGaWxlczoJICAgIHJ1bnRpbWUvdGFnc3JjaC50eHQKClBhdGNoIDYuMS4zODcgKGRlcGVuZHMgb24gNi4xLjM3MykKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlciBjYXN0LgpTb2x1dGlvbjogICBBZGQgKGNoYXJfdSAqKS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4zODggKGRlcGVuZHMgb24gNi4xLjM4NCkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlciBjYXN0LgpTb2x1dGlvbjogICBBZGQgKGNoYXIgKikuICBPbmx5IGluY2x1ZGUgaGFzX3BhdGNoKCkgd2hlbiB1c2VkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMS4zODkgKGRlcGVuZHMgb24gNi4xLjM2NikKUHJvYmxlbTogICAgQmFsbG9vbiBldmFsdWF0aW9uIGRvZXNuJ3Qgd29yayBmb3IgR1RLLgoJICAgIGhhcygiYmFsbG9vbl9ldmFsIikgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGQgYmFsbG9vbiBldmFsdWF0aW9uIGZvciBHVEsuICBBbHNvIGltcHJvdmUgZGlzcGxheWluZyBvZiBzaWducy4KCSAgICAoRGFuaWVsIEVsc3RuZXIpCgkgICAgQWxzbyBtYWtlICI6Z3VpIiBzdGFydCB0aGUgbmV0YmVhbnMgY29ubmVjdGlvbiBhbmQgYXZvaWQgdXNpbmcKCSAgICBuZXRiZWFucyBmdW5jdGlvbnMgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBub3Qgb3Blbi4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUsIHNyYy9mZWF0dXJlLmgsIHNyYy9ndWkuYywgc3JjL2d1aS5oLAoJICAgIHNyYy9ndWlfYmV2YWwuYywgc3JjL2d1aV9iZXZhbC5oLCBzcmMvZ3VpX2d0ay5jLAoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZXZhbC5jLCBzcmMvbWVtbGluZS5jLCBzcmMvbWVudS5jLAoJICAgIHNyYy9uZXRiZWFucy5jLCBzcmMvcHJvdG8vZ3VpX2JldmFsLnBybywgc3JjL3Byb3RvL2d1aV9ndGsucHJvLAoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYywgc3JjL3VpLmMsIHNyYy93b3Jrc2hvcC5jCgpQYXRjaCA2LjEuMzkwIChkZXBlbmRzIG9uIDYuMS4zODkpClByb2JsZW06ICAgIEl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgVmltIHRvIHNhdmUgYW5kIGV4aXQgdGhyb3VnaCB0aGUKCSAgICBOZXRiZWFucyBpbnRlcmZhY2UuICBXb3VsZCBzdGlsbCB0cnkgdG8gc2VuZCBiYWxsb29uIGV2YWwgdGV4dAoJICAgIGFmdGVyIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZC4KCSAgICBDYW4ndCB1c2UgVW5pY29kZSBjaGFyYWN0ZXJzIGZvciBzaWduIHRleHQuClNvbHV0aW9uOiAgIEFkZCBmdW5jdGlvbnMgInNhdmVBbmRFeGl0IiBhbmQgImdldE1vZGlmaWVkIi4gIENoZWNrIGZvciBhCgkgICAgd29ya2luZyBjb25uZWN0aW9uIGJlZm9yZSBzZW5kaW5nIGEgYmFsbG9vblRleHQgZXZlbnQuCgkgICAgdmFyaW91cyBvdGhlciBjbGVhbnVwcy4KCSAgICBTdXBwb3J0IGFueSBjaGFyYWN0ZXIgZm9yIHNpZ24gdGV4dC4gKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgcnVudGltZS9kb2Mvc2lnbi50eHQsIHNyYy9leF9jbWRzLmMsCgkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjM5MQpQcm9ibGVtOiAgICBtbF9nZXQoKSBlcnJvciB3aGVuIHVzaW5nIHZpcnR1YWxlZGl0LiAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgR2V0IGEgbGluZSBmcm9tIGEgc3BlY2lmaWMgd2luZG93LCBub3QgdGhlIGN1cnJlbnQgb25lLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMS4zOTIgKGRlcGVuZHMgb24gNi4xLjM4MykKUHJvYmxlbTogICAgSGlnaGxpZ2h0aW5nIGluIHRoZSAnc3RhdHVzbGluZScgaXMgaW4gdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gYW4KCSAgICBpdGVtIGlzIHRydW5jYXRlZC4gKFphayBCZWNrKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBzdGFydCBvZiAnc3RhdHVzbGluZScgaXRlbXMgcHJvcGVybHkgZm9yIGEgdHJ1bmNhdGVkCgkgICAgaXRlbS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zOTMKUHJvYmxlbTogICAgV2hlbiBjb21waWxlZCB3aXRoIFB5dGhvbiBhbmQgdGhyZWFkcywgZGV0YWNoaW5nIHRoZSB0ZXJtaW5hbCBtYXkKCSAgICBjYXVzZSBWaW0gdG8gbG9vcCBmb3JldmVyLgpTb2x1dGlvbjogICBBZGQgLXB0aHJlYWQgdG8gJENGTEFHUyB3aGVuIHVzaW5nIFB5dGhvbiBhbmQgZ2NjLiAoRGFuaWVsCgkgICAgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMzk0IChkZXBlbmRzIG9uIDYuMS4zOTApClByb2JsZW06ICAgIFRoZSBuZXRiZWFucyBpbnRlcmZhY2UgZG9lc24ndCByZWNvZ25pemUgbXVsdGlieXRlIGdseXBoIG5hbWVzLgpTb2x1dGlvbjogICBDaGVjayB0aGUgbnVtYmVyIG9mIGNlbGxzIHJhdGhlciB0aGFuIGJ5dGVzIHRvIGRlY2lkZQoJICAgIHdoZXRoZXIgYSBnbHlwaCBuYW1lIGlzIG5vdCBhIGZpbGVuYW1lLiAoRGFuaWVsIEVsc3RuZXIpCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMS4zOTUgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zNjkpClByb2JsZW06ICAgIFZNUzogT0xEX1ZNUyBpcyBuZXZlciBkZWZpbmVkLiAgTWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGUuClNvbHV0aW9uOiAgIERlZmluZSBPTERfVk1TIGluIE1ha2Vfdm1zLm1tcy4gIEFkZCB2bXNfc3lzX3N0YXR1cygpIHRvCgkgICAgb3Nfdm1zLnByby4gKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvTWFrZV92bXMubW1zLCBzcmMvcHJvdG8vb3Nfdm1zLnBybwoKUGF0Y2ggNi4xLjM5NiAoZGVwZW5kcyBvbiA2LjEuMzMwKQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3IgdXNpbmcgZW51bS4KU29sdXRpb246ICAgQWRkIHR5cGVjYXN0IHRvIGNoYXJfdS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjM5NyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBpbnN0YWxsIHByb2dyYW0gbWF5IHVzZSBhIHdyb25nIHBhdGggZm9yIHRoZSBkaWZmIGNvbW1hbmQgaWYKCSAgICB0aGVyZSBpcyBhIHNwYWNlIGluIHRoZSBpbnN0YWxsIGRpcmVjdG9yeSBwYXRoLgpTb2x1dGlvbjogICBVc2UgZG91YmxlIHF1b3RlcyBhcm91bmQgdGhlIHBhdGggaWYgbmVjZXNzYXJ5LiAoQWxlamFuZHJvCgkgICAgTG9wZXotVmFsZW5jaWEpICBBbHNvIHVzZSBkb3VibGUgcXVvdGVzIGFyb3VuZCB0aGUgZmlsZSBuYW1lCgkgICAgYXJndW1lbnRzLgpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMS4zOTgKUHJvYmxlbTogICAgU2F2aW5nIHRoZSB0eXBlYWhlYWQgZm9yIGRlYnVnIG1vZGUgY2F1c2VzIHRyb3VibGUgZm9yIGEgdGVzdAoJICAgIHNjcmlwdC4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEFkZCB0aGUgIjpkZWJ1Z2dyZWVkeSIgY29tbWFuZCB0byBhdm9pZCBzYXZpbmcgdGhlIHR5cGVhaGVhZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9yZXBlYXQudHh0LCBzcmMvZXhfY21kcy5oLCBzcmMvZXhfY21kczIuYywKCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL3Byb3RvL2V4X2NtZHMyLnBybwoKUGF0Y2ggNi4xLjM5OQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1bnVzZWQgdmFyaWFibGUuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgdmFyaWFibGUgdHdvX29yX21vcmUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQwMCAoZGVwZW5kcyBvbiA2LjEuMzgxKQpQcm9ibGVtOiAgICBXaGVuIGEgQnVmV3JpdGVDbWQgd2lwZXMgb3V0IHRoZSBidWZmZXIgaXQgbWF5IHN0aWxsIGJlIGFjY2Vzc2VkLgpTb2x1dGlvbjogICBEb24ndCB0cnkgYWNjZXNzaW5nIGEgYnVmZmVyIHRoYXQgaGFzIGJlZW4gd2lwZWQgb3V0LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjQwMSAoZXh0cmEpClByb2JsZW06ICAgIEJ1aWxkaW5nIHRoZSBXaW4xNiB2ZXJzaW9uIHdpdGggQm9ybGFuZCA1LjAxIGRvZXNuJ3Qgd29yay4KCSAgICAibWFrZSB0ZXN0IiBkb2Vzbid0IHdvcmsgd2l0aCBNYWtlX2Rvcy5tYWsuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgVmFyaW91cyBmaXhlcyB0byB0aGUgdzE2IG1ha2VmaWxlLiAoV2FsdGVyIEJyaXNjb2UpCgkgICAgRG9uJ3QgdXNlIGRlbHRyZWUuICBVc2UgIm1rZGlyIFx0bXAiIGluc3RlYWQgb2YgIm1rZGlyIC90bXAiLgpGaWxlczoJICAgIHNyYy9NYWtlX3cxNi5tYWssIHNyYy90ZXN0ZGlyL01ha2VfZG9zLm1hawoKUGF0Y2ggNi4xLjQwMgpQcm9ibGVtOiAgICBXaGVuIGV2YWx1YXRpbmcgYSBmdW5jdGlvbiBuYW1lIHdpdGggY3VybHkgYnJhY2VzLCBhbiBlcnJvcgoJICAgIGlzIG5vdCBoYW5kbGVkIGNvbnNpc3RlbnRseS4KU29sdXRpb246ICAgQWNjZXB0IHRoZSByZXN1bHQgb2YgYW4gY3VybHkgYnJhY2VzIGV4cHJlc3Npb24gd2hlbiBhbgoJICAgIGVycm9yIHdhcyBlbmNvdW50ZXJlZC4gIFNraXAgZXZhbHVhdGluZyBhbiBleHByZXNzaW9uIGluIGN1cmx5CgkgICAgYnJhY2VzIHdoZW4gc2tpcHBpbmcuICAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuNDAzIChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93cyAxNiBiaXQ6IGNvbXBpbGVyIHdhcm5pbmdzLgpTb2x1dGlvbjogICBBZGQgdHlwZWNhc3RzLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9ndWlfdzQ4LmMsIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMTYuYywKCSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMS40MDQgKGV4dHJhKQpQcm9ibGVtOiAgICBWYXJpb3VzIHNtYWxsIHByb2JsZW1zLgpTb2x1dGlvbjogICBGaXggY29tbWVudHMuICBWYXJpb3VzIHNtYWxsIGFkZGl0aW9ucywgY2hhbmdlcyBpbiBpbmRlbnQsIHJlbW92YWwKCSAgICBvZiB1bnVzZWQgaXRlbXMgYW5kIGZpeGVzLgpGaWxlczoJICAgIE1ha2VmaWxlLCBSRUFETUUudHh0LCBydW50aW1lL21lbnUudmltLCBydW50aW1lL3ZpbXJjX2V4YW1wbGUudmltLAoJICAgIHNyYy9JTlNUQUxMLCBzcmMvSU5TVEFMTG9sZS50eHQsIHNyYy9NYWtlX2JjNS5tYWssCgkgICAgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbWluZy5tYWssIHNyYy9NYWtlZmlsZSwKCSAgICBzcmMvY29uZmlnLmguaW4sIHNyYy9lZGl0LmMsIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzMi5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2ZpbGVpby5jLCBzcmMvZ2V0Y2hhci5jLAoJICAgIHNyYy9ndWkuYywgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9waG90b24uYywgc3JjL2lmX2NzY29wZS5jLAoJICAgIHNyYy9pZl9weXRob24uYywgc3JjL2tleW1hcC5oLCBzcmMvbWFyay5jLCBzcmMvbWJ5dGUuYywKCSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9ub3JtYWwuYywKCSAgICBzcmMvb3B0aW9uLmMsIHNyYy9vc19vczJfY2ZnLmgsIHNyYy9vc193aW4zMi5jLAoJICAgIHNyYy9wcm90by9nZXRjaGFyLnBybywgc3JjL3Byb3RvL21lc3NhZ2UucHJvLAoJICAgIHNyYy9wcm90by9yZWdleHAucHJvLCBzcmMvc2NyZWVuLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYywKCSAgICBzcmMvdGVybS5jLCBzcmMvdGVzdGRpci90ZXN0MTUuaW4sIHNyYy90ZXN0ZGlyL3Rlc3QxNS5vaywKCSAgICBzcmMvdmltLnJjLCBzcmMveHhkL01ha2VfY3lnLm1haywgc3JjL3h4ZC9NYWtlZmlsZQoKUGF0Y2ggNi4xLjQwNQpQcm9ibGVtOiAgICBBIGZldyBmaWxlcyBhcmUgbWlzc2luZyBmcm9tIHRoZSB0b3BsZXZlbCBNYWtlZmlsZS4KU29sdXRpb246ICAgQWRkIHRoZSBtaXNzaW5nIGZpbGVzLgpGaWxlczoJICAgIE1ha2VmaWxlCgpQYXRjaCA2LjEuNDA2IChkZXBlbmRzIG9uIDYuMS4zOTIpClByb2JsZW06ICAgIFdoZW4gYSBzdGF0dXNsaW5lIGl0ZW0gZG9lc24ndCBmaXQgYXJiaXRyYXJ5IHRleHQgYXBwZWFycy4KCSAgICAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQpTb2x1dGlvbjogICBXaGVuIHRoZXJlIGlzIGp1c3QgZW5vdWdoIHJvb20gYnV0IG5vdCBmb3IgdGhlICI8IiB0cnVuY2F0ZSB0aGUKCSAgICBzdGF0dXNsaW5lIGl0ZW0gbGlrZSB0aGVyZSBpcyBubyByb29tLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjQwNwpQcm9ibGVtOiAgICAiOnNldCBzY3JvbGxiaW5kIHwgaGVscCIgc2Nyb2xsYmluZHMgdGhlIGhlbHAgd2luZG93LiAoQW5kcmV3CgkgICAgUGltbG90dCkKU29sdXRpb246ICAgUmVzZXQgJ3Njcm9sbGJpbmQnIHdoZW4gb3BlbmluZyBhIGhlbHAgd2luZG93LgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS40MDgKUHJvYmxlbTogICAgV2hlbiAncmlnaHRsZWZ0JyBpcyBzZXQgdW5wcmludGFibGUgY2hhcmFjdGVyIDB4MGMgaXMgZGlzcGxheWVkIGFzCgkgICAgIj5jMDwiLgpTb2x1dGlvbjogICBSZXZlcnNlIHRoZSB0ZXh0IG9mIHRoZSBoZXggY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjQwOQpQcm9ibGVtOiAgICBHZW5lcmF0aW5nIHRhZ3MgZm9yIHRoZSBoZWxwIGRvZXNuJ3Qgd29yayBmb3Igc29tZSBsb2NhbGVzLgpTb2x1dGlvbjogICBTZXQgTEFORz1DIExDX0FMTD1DIGluIHRoZSBlbnZpcm9ubWVudCBmb3IgInNvcnQiLiAoRGFuaWVsCgkgICAgRWxzdG5lcikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjQxMCAoZGVwZW5kcyBvbiA2LjEuMzkwKQpQcm9ibGVtOiAgICBMaW5raW5nIGVycm9yIHdoZW4gY29tcGlsaW5nIHdpdGggTmV0YmVhbnMgYnV0IHdpdGhvdXQgc2lnbiBpY29ucy4KCSAgICAoTWFsdGUgTmV1bWFubikKU29sdXRpb246ICAgRG9uJ3QgZGVmaW5lIGJ1Zl9zaWduY291bnQoKSB3aGVuIHNpZ24gaWNvbnMgYXJlIHVuYXZhaWxhYmxlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjQxMQpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0LCBoaWdobGlnaHRpbmcgYSBWaXN1YWwgYmxvY2sgYmV5b25kIHRoZQoJICAgIGVuZCBvZiBhIGxpbmUgbWF5IGJlIHdyb25nLgpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSB2aXJ0dWFsIGNvbHVtbiB3aGVuIHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgYmVmb3JlIHRoZQoJICAgIGRpc3BsYXllZCBwYXJ0IG9mIHRoZSBsaW5lLiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjQxMgpQcm9ibGVtOiAgICBXaGVuIHN3YXBwaW5nIHRlcm1pbmFsIHNjcmVlbnMgYW5kIHVzaW5nICI6Z3VpIiB0byBzdGFydCB0aGUgR1VJLAoJICAgIHRoZSBzaGVsbCBwcm9tcHQgbWF5IGJlIGFmdGVyIGEgaGl0LWVudGVyIHByb21wdC4KU29sdXRpb246ICAgT3V0cHV0IGEgbmV3bGluZSBpbiB0aGUgdGVybWluYWwgd2hlbiBzdGFydGluZyB0aGUgR1VJIGFuZCB0aGVyZQoJICAgIHdhcyBhIGhpdC1lbnRlciBwcm9tcHQuLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjQxMwpQcm9ibGVtOiAgICBXaGVuICdjbGlwYm9hcmQnIGNvbnRhaW5zICJ1bm5hbWVkIiwgInAiIGluIFZpc3VhbCBtb2RlIGRvZXNuJ3QKCSAgICB3b3JrIGNvcnJlY3RseS4KU29sdXRpb246ICAgU2F2ZSB0aGUgcmVnaXN0ZXIgYmVmb3JlIG92ZXJ3cml0aW5nIGl0IGFuZCBwdXQgdGhlIHJlc3VsdGluZyB0ZXh0CgkgICAgb24gdGhlIGNsaXBib2FyZCBhZnRlcndhcmRzLiAgKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjQxNCAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjM2OSkKUHJvYmxlbTogICAgVk1TOiBWaW0gYnVzeSB3YWl0cyB3aGVuIHdhaXRpbmcgZm9yIGlucHV0LgpTb2x1dGlvbjogICBEZWxheSBmb3IgYSBzaG9ydCB3aGlsZSBiZWZvcmUgZ2V0dGluZyBhbm90aGVyIGNoYXJhY3Rlci4gIChab2x0YW4KCSAgICBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvb3Nfdm1zLmMKClBhdGNoIDYuMS40MTUKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhIHZlcnRpY2FsIHNwbGl0IGFuZCBhIHF1aWNrZml4IHdpbmRvdywgcmVkdWNpbmcgdGhlCgkgICAgc2l6ZSBvZiB0aGUgVmltIHdpbmRvdyBtYXkgcmVzdWx0IGluIGEgd3Jvbmcgd2luZG93IGxheW91dCBhbmQgYQoJICAgIGNyYXNoLgpTb2x1dGlvbjogICBXaGVuIHJlZHVjaW5nIHRoZSB3aW5kb3cgc2l6ZSBhbmQgdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSBmb3IKCSAgICAnd2luZml4aGVpZ2h0JyBzZXQgdGhlIGZyYW1lIGhlaWdodCB0byB0aGUgbGFyZ2VyIGhlaWdodCwgc28gdGhhdAoJICAgIHRoZXJlIGlzIGEgcmV0cnkgd2hpbGUgaWdub3JpbmcgJ3dpbmZpeGhlaWdodCcuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS40MTYgKGRlcGVuZHMgb24gNi4xLjM2NikKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgTmV0YmVhbnMgaW50ZXJmYWNlLCBhIGxpbmUgd2l0aCBhIHNpZ24gY2Fubm90IGJlCgkgICAgY2hhbmdlZC4KU29sdXRpb246ICAgUmVzcGVjdCB0aGUgR1VBUkRFRE9GRlNFVCBmb3Igc2lnbiBJRHMgd2hlbiBjaGVja2luZyBmb3IgYSBndWFyZGVkCgkgICAgYXJlYS4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4xLjQxNwpQcm9ibGVtOiAgICBVbnByaW50YWJsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgYXJlIG5vdCBoYW5kbGVkIGNvcnJlY3RseS4KCSAgICBNdWx0aS1ieXRlIGNoYXJhY3RlcnMgYWJvdmUgMHhmZmZmIGFyZSBkaXNwbGF5ZWQgYXMgYW5vdGhlcgoJICAgIGNoYXJhY3Rlci4KU29sdXRpb246ICAgSGFuZGxlIHVucHJpbnRhYmxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gIERpc3BsYXkgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlcnMgYWJvdmUgMHhmZmZmIHdpdGggYSBtYXJrZXIuICBSZWNvZ25pemUgVVRGLTE2IHdvcmRzIGFuZAoJICAgIEJPTSB3b3JkcyBhcyB1bnByaW50YWJsZS4gIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvbWJ5dGUuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDE4ClByb2JsZW06ICAgIFRoZSByZXN1bHQgb2Ygc3RyZnRpbWUoKSBpcyBpbiB0aGUgY3VycmVudCBsb2NhbHMuICBOZWVkIHRvCgkgICAgY29udmVydCBpdCB0byAnZW5jb2RpbmcnLgpTb2x1dGlvbjogICBPYnRhaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGFuZCBjb252ZXJ0IHRoZSBhcmd1bWVudCBmb3Igc3RyZnRpbWUoKQoJICAgIHRvIGl0IGFuZCB0aGUgcmVzdWx0IGJhY2sgdG8gJ2VuY29kaW5nJy4gIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywgc3JjL21ieXRlLmMsCgkgICAgc3JjL3Byb3RvL21ieXRlLnBybywgc3JjL29wdGlvbi5jLCBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xLjQxOQpQcm9ibGVtOiAgICBWaW0gZG9lc24ndCBjb21waWxlIG9uIEFJWCA1LjEuClNvbHV0aW9uOiAgIERvbid0IGRlZmluZSBfTk9fUFJPVE8gb24gdGhpcyBzeXN0ZW0uIChVcmliYXJyaSkKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS40MjAgKGV4dHJhKQpQcm9ibGVtOiAgICBjb252ZXJ0X2lucHV0KCkgaGFzIGFuIHVubmVjZXNzYXJ5IFNUUkxFTigpLgoJICAgIENvbnZlcnNpb24gZnJvbSBVQ1MtMiB0byBhIGNvZGVwYWdlIHVzZXMgd29yZCBjb3VudCBpbnN0ZWFkIG9mCgkgICAgYnl0ZSBjb3VudC4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBTVFJMRU4oKSBjYWxsLiAoRGFuaWVsIEVsc3RuZXIpCgkgICAgQWx3YXlzIHVzZSBieXRlIGNvdW50IGZvciBzdHJpbmdfY29udmVydCgpLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuNDIxIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzU0KQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzIDl4OiBXaGVuIHB1dHRpbmcgdGV4dCBvbiB0aGUgY2xpcGJvYXJkIGl0IGNhbiBiZSBpbgoJICAgIHRoZSB3cm9uZyBlbmNvZGluZy4KU29sdXRpb246ICAgQ29udmVydCB0ZXh0IHRvIHRoZSBhY3RpdmUgY29kZXBhZ2UgZm9yIENGX1RFWFQuIChHbGVubiBNYXluYXJkKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuNDIyClByb2JsZW06ICAgIEVycm9yIGluIC52aW1yYyBkb2Vzbid0IGNhdXNlIGhpdC1lbnRlciBwcm9tcHQgd2hlbiBzd2FwcGluZwoJICAgIHNjcmVlbnMuIChOZWlsIEJpcmQpClNvbHV0aW9uOiAgIFNldCBtc2dfZGlkYW55IGFsc28gd2hlbiBzZW5kaW5nIGEgbWVzc2FnZSB0byB0aGUgdGVybWluYWwKCSAgICBkaXJlY3RseS4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuNDIzClByb2JsZW06ICAgIENhbid0IGZpbmQgYXJiaXRyYXJ5IHRleHQgaW4gaGVscCBmaWxlcy4KU29sdXRpb246ICAgQWRkZWQgdGhlICI6aGVscGdyZXAiIGNvbW1hbmQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdmFyaW91cy50eHQsIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jLAoJICAgIHNyYy9wcm90by9xdWlja2ZpeC5wcm8sIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjEuNDI0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEd2aW0gY29tcGlsZWQgd2l0aCBWQysrIDcuMCBydW4gb24gV2luZG93cyA5NSBkb2VzIG5vdCBzaG93CgkgICAgbWVudSBpdGVtcy4KU29sdXRpb246ICAgRGVmaW5lICRXSU5WRVIgdG8gYXZvaWQgYW4gZXh0cmEgaXRlbSBpcyBhZGRlZCB0byBNRU5VSVRFTUlORk8uCgkgICAgKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuNDI1ClByb2JsZW06ICAgICI6aGVscHRhZ3MgJFZJTVJVTlRJTUUvZG9jIiBkb2VzIG5vdCBhZGQgdGhlICJoZWxwLXRhZ3MiIHRhZy4KU29sdXRpb246ICAgRG8gYWRkIHRoZSAiaGVscC10YWdzIiB0YWcgZm9yIHRoYXQgc3BlY2lmaWMgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS40MjYKUHJvYmxlbTogICAgIi0tcmVtb3RlLXdhaXQgK2NtZCBmaWxlIiB3YWl0cyBmb3JldmVyLiAoVmFsZXJ5IEtvbmRha29mZikKU29sdXRpb246ICAgRG9uJ3Qgd2FpdCBmb3IgdGhlICIrY21kIiBhcmd1bWVudCB0byBoYXZlIGJlZW4gZWRpdGVkLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS40MjcKUHJvYmxlbTogICAgU2V2ZXJhbCBlcnJvciBtZXNzYWdlcyBmb3IgcmVnZXhwIHBhdHRlcm5zIGFyZSBub3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgVXNlIF8oKSBwcm9wZXJseS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMS40MjgKUHJvYmxlbTogICAgRnJlZUJTRDogd2FpdCgpIG1heSBoYW5nIHdoZW4gY29tcGlsZWQgd2l0aCBQeXRob24gc3VwcG9ydCBhbmQKCSAgICBkb2luZyBhIHN5c3RlbSgpIGNhbGwgaW4gYSBzdGFydHVwIHNjcmlwdC4KU29sdXRpb246ICAgVXNlIHdhaXRwaWQoKSBpbnN0ZWFkIG9mIHdhaXQoKSBhbmQgcG9sbCBldmVyeSAxMCBtc2VjLCBqdXN0IGxpa2UKCSAgICB3aGF0IGlzIGRvbmUgaW4gdGhlIEdVSS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuNDI5IChkZXBlbmRzIG9uIDYuMS4zOTApClByb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgc2hvd21hcmtzLnZpbSBwbHVnaW4uIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBDaGVjayBmb3Igc2lnbl9nZXRfdGV4dCgpIHJldHVybmluZyBhIE5VTEwgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS40MzAKUHJvYmxlbTogICAgSW4gTGlzcCBjb2RlIGJhY2tzbGFzaGVkIHBhcmVucyBzaG91bGQgYmUgaWdub3JlZCBmb3IgIiUiLiAoRG9yYWkpClNvbHV0aW9uOiAgIFNraXAgb3ZlciBiYWNrc2xhc2hlZCBwYXJlbnMuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuNDMxClByb2JsZW06ICAgIERlYnVnIGNvbW1hbmRzIGVuZCB1cCBpbiByZWRpcmVjdGVkIHRleHQuClNvbHV0aW9uOiAgIERpc2FibGUgcmVkaXJlY3Rpb24gd2hpbGUgaGFuZGxpbmcgZGVidWcgY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS40MzIgKGRlcGVuZHMgb24gNi4xLjM3NSkKUHJvYmxlbTogICAgTVMtV2luZG93czogIjptYWtlICU6cCIgaW5zZXJ0cyBleHRyYSBiYWNrc2xhc2hlcy4gKERhdmlkIFJlbm5hbGxzKQpTb2x1dGlvbjogICBEb24ndCBhZGQgYmFja3NsYXNoZXMsIGhhbmRsZSBpdCBsaWtlICI6IWNtZCIuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS40MzMKUHJvYmxlbTogICAgIjpwb3B1cCIgb25seSB3b3JrcyBmb3IgV2luMzIuClNvbHV0aW9uOiAgIEFkZCAiOnBvcHVwIiBzdXBwb3J0IGZvciBHVEsuICAoRGFuaWVsIEVsc3RuZXIpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZ3VpLnR4dCwgc3JjL2V4X2RvY21kLmMsIHNyYy9ndWlfZ3RrLmMsIHNyYy9tZW51LmMsCgkgICAgc3JjL3Byb3RvL2d1aV9ndGsucHJvCgpQYXRjaCA2LjEuNDM0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiAzMjc2NyBsaW5lcywgdGhlIHNjcm9sbGJhciBoYXMgYQoJICAgIHJvdW5kb2ZmIGVycm9yLgpTb2x1dGlvbjogICBNYWtlIGEgY2xpY2sgb24gYW4gYXJyb3cgbW92ZSBvbmUgbGluZS4gIEFsc28gbW92ZSB0aGUgY29kZSB0bwoJICAgIGd1aV93NDguYywgdGhlcmUgaXMgaGFyZGx5IGFueSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIDE2IGJpdCBhbmQKCSAgICAzMiBiaXQgdmVyc2lvbnMuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZ3VpX3cxNi5jLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuNDM1ClByb2JsZW06ICAgICI6d2luc2l6ZSB4IiByZXNpemVzIHRoZSBWaW0gd2luZG93IHRvIHRoZSBtaW5pbWFsIHNpemUuIChBbmRyZXcKCSAgICBQaW1sb3R0KQpTb2x1dGlvbjogICBHaXZlIGFuIGVycm9yIG1lc3NhZ2UgZm9yIHdyb25nIGFyZ3VtZW50cyBvZiAiOndpbnNpemUiIGFuZAoJICAgICI6d2lucG9zIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjQzNgpQcm9ibGVtOiAgICBXaGVuIGEgbG9uZyBVVEYtOCBmaWxlIGNvbnRhaW5zIGFuIGlsbGVnYWwgYnl0ZSBpdCdzIGhhcmQgdG8gZmluZAoJICAgIG91dCB3aGVyZSBpdCBpcy4gKFJvbiBBYXJvbikKU29sdXRpb246ICAgQWRkIHRoZSBsaW5lIG51bWJlciB0byB0aGUgZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS40MzcgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS40MjEpClByb2JsZW06ICAgIFVzaW5nIG11bHRpLWJ5dGUgZnVuY3Rpb25zIHdoZW4gdGhleSBhcmUgbm90IGF2YWlsYWJsZS4KU29sdXRpb246ICAgUHV0IHRoZSBjbGlwYm9hcmQgY29udmVyc2lvbiBpbnNpZGUgYW4gI2lmZGVmLiAoVmluY2UgTmVncmkpCgkgICAgQWxzbyBmaXggYSBwb2ludGVyIHR5cGUgbWlzdGFrZS4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuNDM4ClByb2JsZW06ICAgIFdoZW4gUGVybCBoYXMgdGhyZWFkIHN1cHBvcnQgVmltIGNhbm5vdCB1c2UgdGhlIFBlcmwgaW50ZXJmYWNlLgpTb2x1dGlvbjogICBBZGQgYSBjb25maWd1cmUgY2hlY2sgYW5kIGRpc2FibGUgUGVybCB3aGVuIGl0IHdpbGwgbm90IHdvcmsuCgkgICAgKEFyb24gR3JpZmZpcykKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS40MzkKUHJvYmxlbTogICAgTmV0YmVhbnM6IEEgImNyZWF0ZSIgZnVuY3Rpb24gZG9lc24ndCBhY3R1YWxseSBjcmVhdGUgYSBidWZmZXIsCgkgICAgZm9sbG93aW5nIGZ1bmN0aW9ucyBtYXkgZmFpbC4KU29sdXRpb246ICAgQ3JlYXRlIGEgVmltIGJ1ZmZlciB3aXRob3V0IGEgbmFtZSB3aGVuICJjcmVhdGUiIGlzIGNhbGxlZC4KCSAgICAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjEuNDQwClByb2JsZW06ICAgIFRoZSAiQCoiIGNvbW1hbmQgZG9lc24ndCBvYnRhaW4gdGhlIGFjdHVhbCBjb250ZW50cyBvZiB0aGUKCSAgICBjbGlwYm9hcmQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgT2J0YWluIHRoZSBjbGlwYm9hcmQgdGV4dCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjQ0MQpQcm9ibGVtOiAgICAiemoiIGFuZCAiemsiIGNhbm5vdCBiZSB1c2VkIGFzIGEgbW90aW9uIGNvbW1hbmQgYWZ0ZXIgYW4KCSAgICBvcGVyYXRvci4gKFJhbGYgSGV0emVsKQpTb2x1dGlvbjogICBBY2NlcHQgdGhlc2UgY29tbWFuZHMgYXMgbW90aW9uIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjQ0MgpQcm9ibGVtOiAgICBVbmljb2RlIDMuMiBkZWZpbmVzIG1vcmUgc3BhY2UgYW5kIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIEFkZCB0aGUgbmV3IGNoYXJhY3RlcnMgdG8gdGhlIFVuaWNvZGUgdGFibGVzLiAoUmFwaGFlbCBGaW5rZWwpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS40NDMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIGd2aW1leHQuZGxsIGJ1aWxkIHdpdGggQm9ybGFuZCA1LjUgcmVxdWlyZXMgYW5vdGhlcgoJICAgIERMTC4KU29sdXRpb246ICAgQnVpbGQgYSBzdGF0aWNhbGx5IGxpbmtlZCB2ZXJzaW9uIGJ5IGRlZmF1bHQuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgR3ZpbUV4dC9NYWtlX2JjNS5tYWsKClBhdGNoIDYuMS40NDQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogRW5hYmxpbmcgYSBidWlsZCB3aXRoIGdldHRleHQgc3VwcG9ydCBpcyBub3QgY29uc2lzdGVudC4KU29sdXRpb246ICAgVXNlICJHRVRURVhUIiBmb3IgQm9ybGFuZCBhbmQgbXN2YyBtYWtlZmlsZXMuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4xLjQ0NSAoZXh0cmEpClByb2JsZW06ICAgIERKR1BQOiBnZXQgd2FybmluZyBmb3IgYXJndW1lbnQgb2YgcHV0ZW52KCkKU29sdXRpb246ICAgRGVmaW5lIEhBVkVfUFVURU5WIHRvIHVzZSBESkdQUCdzIHB1dGVudigpLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL29zX21zZG9zLmgKClBhdGNoIDYuMS40NDYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIE1pbmdXIG1ha2VmaWxlIHVzZXMgYSBkaWZmZXJlbnQgc3R5bGUgb2YgYXJndW1lbnRzIHRoYW4KCSAgICBvdGhlciBtYWtlZmlsZXMuCgkgICAgRHluYW1pYyBJTUUgaXMgbm90IHN1cHBvcnRlZCBmb3IgQ3lnd2luLgpTb2x1dGlvbjogICBVc2UgIm5vIiBhbmQgInllcyIgc3R5bGUgYXJndW1lbnRzLiAgUmVtb3ZlIHRoZSB1c2Ugb2YgdGhlCgkgICAgZHluLW1pbmcuaCBpbmNsdWRlIGZpbGUuIChEYW4gU2hhcnApCgkgICAgRG8gbm90IGluY2x1ZGUgdGhlIGltZS5oIGZpbGUgYW5kIGFkanVzdCB0aGUgbWFrZWZpbGUuIChBbGVqYW5kcm8KCSAgICBMb3Blei1WYWxlbmNpYSkKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywgc3JjL2d1aV93MzIuYywKCSAgICBzcmMvaWZfcGVybC54cywgc3JjL2lmX3B5dGhvbi5jLCBzcmMvaWZfcnVieS5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjQ0NwpQcm9ibGVtOiAgICAibWFrZSBpbnN0YWxsIiB1c2VzICJtYWtlIiBkaXJlY3RseSBmb3IgZ2VuZXJhdGluZyBoZWxwIHRhZ3MuClNvbHV0aW9uOiAgIFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgIm1ha2UiLiAoVGltIE1vb25leSkKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMS40NDgKUHJvYmxlbTogICAgJ3RpdGxlc3RyaW5nJyBoYXMgYSBkZWZhdWx0IG1heGltdW0gd2lkdGggb2YgNTAgY2hhcnMgcGVyIGl0ZW0uClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgZGVmYXVsdCBtYXhpbXVtIChhbHNvIGZvciAnc3RhdHVzbGluZScpLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjQ0OQpQcm9ibGVtOiAgICBXaGVuICIxIiBhbmQgImEiIGFyZSBpbiAnZm9ybWF0b3B0aW9ucycsIGF1dG8tZm9ybWF0dGluZyBhbHdheXMKCSAgICBtb3ZlcyBhIG5ld2x5IGFkZGVkIGNoYXJhY3RlciB0byB0aGUgbmV4dCBsaW5lLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgRG9uJ3QgbW92ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhlIG5leHQgbGluZSB3aGVuIGl0IHdhcyBqdXN0CgkgICAgdHlwZWQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjQ1MApQcm9ibGVtOiAgICBUZXJtY2FwIGVudHJ5ICJrQiIgZm9yIGJhY2stdGFiIGlzIG5vdCByZWNvZ25pemVkLgpTb2x1dGlvbjogICBVc2UgYmFjay10YWIgYXMgdGhlIHNoaWZ0LXRhYiBjb2RlLgpGaWxlczoJICAgIHNyYy9rZXltYXAuaCwgc3JjL21pc2MyLmMsIHNyYy90ZXJtLmMKClBhdGNoIDYuMS40NTEKUHJvYmxlbTogICAgR1VJOiBXaGVuIHRleHQgaW4gdGhlIGZpbmQgZGlhbG9nIGNvbnRhaW5zIGEgc2xhc2gsIGEgYmFja3NsYXNoIGlzCgkgICAgaW5zZXJ0ZWQgdGhlIG5leHQgdGltZSBpdCBpcyBvcGVuZWQuIChNZXp6KQpTb2x1dGlvbjogICBSZW1vdmUgZXNjYXBlZCBiYWNrc2xhc2hlcyBhbmQgcXVlc3Rpb24gbWFya3MuIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS40NTIgKGV4dHJhLCBhZnRlciA2LjEuNDQ2KQpQcm9ibGVtOiAgICBXaW4zMjogSU1FIHN1cHBvcnQgZG9lc24ndCB3b3JrIGZvciBNU1ZDLgpTb2x1dGlvbjogICBVc2UgX01TQ19WRVIgaW5zdGVhZCBvZiBfX01TVkMuIChBbGVqYW5kcm8gTG9wZXotVmFsZW5jaWEpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjQ1MyAoYWZ0ZXIgNi4xLjQyOSkKUHJvYmxlbTogICAgV2hlbiBjb21waWxlZCB3aXRob3V0IHNpZ24gaWNvbnMgYnV0IHdpdGggc2lnbiBzdXBwb3J0LCBhZGRpbmcgYQoJICAgIHNpZ24gbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgdGV4dCBzaWduIHRvIGV4aXN0IGJlZm9yZSB1c2luZyBpdC4gKEthbWlsCgkgICAgQnVyenluc2tpKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjQ1NCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBwYXN0aW5nIFJ1c3NpYW4gdGV4dCBpbiBWaW0gd2l0aCAnZW5jJyBzZXQgdG8gY3AxMjUxCgkgICAgcmVzdWx0cyBpbiB1dGYtOCBieXRlcy4gIChQZXJlbHl1YnNraXkpCgkgICAgQ29udmVyc2lvbiBmcm9tIERCQ1MgdG8gVUNTMiBkb2VzIG5vdCB3b3JrIHdoZW4gJ2VuY29kaW5nJyBpcyBub3QKCSAgICB0aGUgYWN0aXZlIGNvZGVwYWdlLgpTb2x1dGlvbjogICBJbnRyb2R1Y2UgZW5jX2NvZGVwYWdlIGFuZCB1c2UgaXQgZm9yIGNvbnZlcnNpb24gdG8gJ2VuY29kaW5nJwoJICAgIChHbGVubiBNYXluYXJkKQoJICAgIFVzZSBNdWx0aUJ5dGVUb1dpZGVDaGFyKCkgYW5kIFdpZGVDaGFyVG9NdWx0aUJ5dGUoKSBpbnN0ZWFkIG9mCgkgICAgaWNvbnYoKS4gIFNob3VsZCBkbyBtb3N0IG5lZWRlZCBjb252ZXJzaW9ucyB3aXRob3V0IGljb252LmRsbC4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX3czMi5jLCBzcmMvbWJ5dGUuYywgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL3Byb3RvL21ieXRlLnBybywgc3JjL3Byb3RvL29zX21zd2luLnBybywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4xLjQ1NQpQcm9ibGVtOiAgICBTb21lIFVuaWNvZGUgY2hhcmFjdGVycyBjYW4gYmUgb25lIG9yIHR3byBjaGFyYWN0ZXIgY2VsbHMgd2lkZS4KU29sdXRpb246ICAgQWRkIHRoZSAnYW1iaXdpZHRoJyBvcHRpb24gdG8gdGVsbCBWaW0gaG93IHRvIGRpc3BsYXkgdGhlc2UKCSAgICBjaGFyYWN0ZXJzLiAoSnVuZ3NoaWsgU2hpbikKCSAgICBBbHNvIHJlc2V0IHRoZSBzY3JpcHQgSUQgd2hlbiBzZXR0aW5nIGFuIG9wdGlvbiB0byBpdHMgZGVmYXVsdAoJICAgIHZhbHVlLCBzbyB0aGF0ICI6dmVyYm9zZSBzZXQiIHdvbid0IGdpdmUgd3JvbmcgaW5mby4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL21ieXRlLmMsIHNyYy9vcHRpb24uYywgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjEuNDU2IChleHRyYSwgYWZ0ZXIgNi4xLjQ1NCkKUHJvYmxlbTogICAgV2luMzI6IElNRSBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEltbUdldENvbXBvc2l0aW9uU3RyaW5nVygpIHJldHVybnMgdGhlIHNpemUgaW4gYnl0ZXMsIG5vdCB3b3Jkcy4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKSAgQWxzbyBmaXggdHlwZWNhc3QgcHJvYmxlbS4KRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xLjQ1NwpQcm9ibGVtOiAgICBBbiBlbXB0eSByZWdpc3RlciBpbiB2aW1pbmZvIGNhdXNlcyBjb252ZXJzaW9uIHRvIGZhaWwuClNvbHV0aW9uOiAgIERvbid0IGNvbnZlcnQgYW4gZW1wdHkgc3RyaW5nLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuNDU4ClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIHBvaW50ZXIuClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0LgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS40NTkgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogbGliY2FsbCgpIG1heSByZXR1cm4gYW4gaW52YWxpZCBwb2ludGVyIGFuZCBjYXVzZSBWaW0gdG8KCSAgICBjcmFzaC4KU29sdXRpb246ICAgQWRkIGEgc3RyaWN0IGNoZWNrIGZvciB0aGUgcmV0dXJuZWQgcG9pbnRlci4gKEJydWNlIE1lbGxvd3MpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMS40NjAKUHJvYmxlbTogICAgR1RLOiBhZnRlciBzY3JvbGxpbmcgdGhlIHRleHQgb25lIGxpbmUgd2l0aCBhIGtleSwgY2xpY2tpbmcgdGhlCgkgICAgYXJyb3cgb2YgdGhlIHNjcm9sbGJhciBkb2VzIG5vdCBhbHdheXMgd29yay4gKE5hbSBTdW5nSHl1bikKU29sdXRpb246ICAgQWx3YXlzIHVwZGF0ZSB0aGUgc2Nyb2xsYmFyIHRodW1iIHdoZW4gdGhlIHZhbHVlIGNoYW5nZWQsIGV2ZW4KCSAgICB3aGVuIGl0IHdvdWxkIG5vdCBtb3ZlLCBsaWtlIGZvciBSSVNDT1MuICAoRGFuaWVsIEVsc3RuZXIpCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpLmgKClBhdGNoIDYuMS40NjEKUHJvYmxlbTogICAgV2hlbiBhIGtleW1hcCBpcyBhY3RpdmUsIHR5cGluZyBhIGNoYXJhY3RlciBpbiBTZWxlY3QgbW9kZSBkb2VzCgkgICAgbm90IHVzZSBpdC4gKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgQXBwbHkgSW5zZXJ0IG1vZGUgbWFwcGluZyB0byB0aGUgY2hhcmFjdGVyIHR5cGVkIGluIFNlbGVjdCBtb2RlLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjQ2MgpQcm9ibGVtOiAgICBXaGVuIGF1dG9jb21tYW5kcyB3aXBlIG91dCBhIGJ1ZmZlciwgYSBjcmFzaCBtYXkgaGFwcGVuLiAoSGFyaQoJICAgIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgRG9uJ3QgZGVjcmVtZW50IHRoZSB3aW5kb3cgY291bnQgb2YgYSBidWZmZXIgYmVmb3JlIGNhbGxpbmcgdGhlCgkgICAgYXV0b2NvbW1hbmRzIGZvciBpdC4gIFdoZW4gcmUtdXNpbmcgdGhlIGN1cnJlbnQgYnVmZmVyLCB3YXRjaCBvdXQKCSAgICBmb3IgYXV0b2NvbW1hbmRzIGNoYW5naW5nIHRoZSBjdXJyZW50IGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9wcm90by9idWZmZXIucHJvCgpQYXRjaCA2LjEuNDYzClByb2JsZW06ICAgIFdoZW4gd3JpdGluZyBhIGNvbXByZXNzZWQgZmlsZSwgdGhlIGZpbGUgbmFtZSB0aGF0IGd6aXAgc3RvcmVzIGluCgkgICAgdGhlIGZpbGUgaXMgdGhlIHdlaXJkIHRlbXBvcmFyeSBmaWxlIG5hbWUuIChEYXZpZCBSZW5uYWxscykKU29sdXRpb246ICAgVXNlIHRoZSByZWFsIGZpbGUgbmFtZSB3aGVuIHBvc3NpYmxlLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2d6aXAudmltCgpQYXRjaCA2LjEuNDY0ClByb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgQysrIHN5bnRheCBoaWdobGlnaHRpbmcuIChHZXJoYXJkIEhvY2hob2x6ZXIpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIG5lZ2F0aXZlIGluZGV4LgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4xLjQ2NSAoYWZ0ZXIgNi4xLjQ1NCkKUHJvYmxlbTogICAgQ29tcGlsZSBlcnJvciB3aGVuIHVzaW5nIGN5Z3dpbi4KU29sdXRpb246ICAgQ2hhbmdlICNpZmRlZiBXSU4zMiB0byAjaWZkZWYgV0lOMzI2NC4gKEFsZWphbmRybyBMb3Blei1WYWxlbmNpYSkKCSAgICBVbmRlZmluZSBXSU4zMiBhZnRlciBpbmNsdWRpbmcgd2luZG93cy5oCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS40NjYKUHJvYmxlbTogICAgVGhlICItZiIgYXJndW1lbnQgaXMgYSBiaXQgb2JzY3VyZS4KU29sdXRpb246ICAgQWRkIHRoZSAiLS1ub2ZvcmsiIGFyZ3VtZW50LiAgSW1wcm92ZSB0aGUgaGVscCB0ZXh0IGEgYml0LgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCwgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjQ2NwpQcm9ibGVtOiAgICBTZXR0aW5nIHRoZSB3aW5kb3cgdGl0bGUgZG9lc24ndCB3b3JrIGZvciBDaGluZXNlLgpTb2x1dGlvbjogICBVc2UgYW4gWDExIGZ1bmN0aW9uIHRvIGNvbnZlcnQgdGV4dCB0byBhIHRleHQgcHJvcGVydHkuIChLZW50YXJvCgkgICAgTmFrYXphd2EpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjQ2OApQcm9ibGVtOiAgICAiOm1rc2Vzc2lvbiIgYWxzbyBzdG9yZXMgZm9sZHMgZm9yIGJ1ZmZlcnMgd2hpY2ggd2lsbCBub3QgYmUKCSAgICByZXN0b3JlZC4KU29sdXRpb246ICAgT25seSBzdG9yZSBmb2xkcyBmb3IgYSBidWZmZXIgd2l0aCAnYnVmdHlwZScgZW1wdHkgYW5kIGhlbHAgZmlsZXMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS40NjkKUHJvYmxlbTogICAgJ2xpc3RjaGFycycgY2Fubm90IGNvbnRhaW4gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBIYW5kbGUgbXVsdGktYnl0ZSBVVEYtOCBsaXN0IGNoYXJhY3RlcnMuIChNYXR0aGV3IFNhbXNvbm9mZikKRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvb3B0aW9uLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjQ3MCAobGFuZykKUHJvYmxlbTogICAgUG9saXNoIG1lc3NhZ2VzIGRvbid0IHNob3cgdXAgY29ycmVjdGx5IG9uIE1TLVdpbmRvd3MuClNvbHV0aW9uOiAgIENvbnZlcnQgbWVzc2FnZXMgdG8gY3AxMjUwLiAoTWlrb2xhaiBNYWNob3dza2kpCgkgICAgQWxzbyBhZGQgRW5nbGlzaCBtZXNzYWdlIHRyYW5zbGF0aW9ucywgYmVjYXVzZSBpdCBnb3QgaW4gdGhlIHdheQoJICAgIG9mIHRoZSBwYXRjaC4KRmlsZXM6CSAgICBNYWtlZmlsZSwgc3JjL3BvL01ha2VmaWxlLCBzcmMvcG8vZW5fZ2IucG8sIHNyYy9wby9wbC5wbwoKUGF0Y2ggNi4xLjQ3MQpQcm9ibGVtOiAgICAiOmp1bXBzIiBvdXRwdXQgY29udGludWVzIGFmdGVyIHByZXNzaW5nICJxIiBhdCB0aGUgbW9yZS1wcm9tcHQuCgkgICAgKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBDaGVjayBmb3IgImdvdF9pbnQiIGJlaW5nIHNldC4KRmlsZXM6CSAgICBzcmMvbWFyay5jCgpQYXRjaCA2LjEuNDcyClByb2JsZW06ICAgIFdoZW4gdGhlcmUgaXMgYW4gYXV0aGVudGljYXRpb24gZXJyb3Igd2hlbiBjb25uZWN0aW5nIHRvIHRoZSBYCgkgICAgc2VydmVyIFZpbSBleGl0cy4KU29sdXRpb246ICAgVXNlIFhTZXRJT0Vycm9ySGFuZGxlcigpIHRvIGNhdGNoIHRoZSBlcnJvciBhbmQgbG9uZ2ptcCgpIHRvIGF2b2lkCgkgICAgdGhlIGV4aXQuICBBbHNvIGRvIHRoaXMgaW4gdGhlIG1haW4gbG9vcCwgc28gdGhhdCB3aGVuIHRoZSBYCgkgICAgc2VydmVyIGV4aXRzIGEgVmltIHJ1bm5pbmcgaW4gYSBjb25zb2xlIGlzbid0IGtpbGxlZC4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvbWFpbi5jLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuNDczClByb2JsZW06ICAgIFJlZmVycmluZyB0byAkY3Vyd2luIG9yICRjdXJidWYgaW4gUGVybCA1LjYgY2F1c2VzIGEgY3Jhc2guClNvbHV0aW9uOiAgIEFkZCAicFRIWF8iIHRvIGN1cl92YWwoKS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cwoKUGF0Y2ggNi4xLjQ3NApQcm9ibGVtOiAgICBXaGVuIG9wZW5pbmcgdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cgaW4gRXggbW9kZSBpdCdzIGltcG9zc2libGUgdG8KCSAgICBnbyBiYWNrLiAoUGF2b2wgSnVoYXMpClNvbHV0aW9uOiAgIFJlc2V0ICJleG1vZGVfYWN0aXZlIiBhbmQgcmVzdG9yZSBpdCB3aGVuIHRoZSBjb21tYW5kLWxpbmUgd2luZG93CgkgICAgaXMgY2xvc2VkLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgoKUGF0Y2ggNi4yZi4wMDEKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgUnVieSBkaWRuJ3Qgd29yayBwcm9wZXJseSBmb3IgUnVieSAxLjguMC4KU29sdXRpb246ICAgQ2hhbmdlIHRoZSB3YXkgdGhlIFJ1YnkgY2hlY2sgaXMgZG9uZS4gKEFyb24gR3JpZmZpcykKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMmYuMDAyClByb2JsZW06ICAgIFRoZSBvdXRwdXQgb2YgIjpscyIgZG9lc24ndCBzaG93IHdoZXRoZXIgYSBidWZmZXIgaGFkIHJlYWQgZXJyb3JzLgpTb2x1dGlvbjogICBBZGQgdGhlICJ4IiBmbGFnIGluIHRoZSAiOmxzIiBvdXRwdXQuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvd2luZG93cy50eHQsIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yZi4wMDMKUHJvYmxlbTogICAgVGVzdDQ5IGRvZXNuJ3QgcHJvcGVybHkgdGVzdCB0aGUgYmVoYXZpb3Igb2YgIjpjYXRjaCIgd2l0aG91dCBhbgoJICAgIGFyZ3VtZW50LgpTb2x1dGlvbjogICBVcGRhdGUgdGVzdDQ5LiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0NDkub2ssIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMmYuMDA0ClByb2JsZW06ICAgICJ2aW0gLS12ZXJzaW9uIiBhbHdheXMgdXNlcyBDUi9MRiBpbiB0aGUgb3V0cHV0LgpTb2x1dGlvbjogICBPbWl0IHRoZSBDUi4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjJmLjAwNQpQcm9ibGVtOiAgICBUd28gZXJyb3IgbWVzc2FnZXMgd2l0aG91dCBhIGNvbG9uIGFmdGVyIHRoZSBudW1iZXIuClNvbHV0aW9uOiAgIEFkZCB0aGUgY29sb24uIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jCgpQYXRjaCA2LjJmLjAwNgpQcm9ibGVtOiAgICBXaGVuIHNhdmluZyBhIGZpbGUgdGFrZXMgYSB3aGlsZSBhbmQgVmltIHJlZ2FpbnMgZm9jdXMgdGhpcyBjYW4KCSAgICByZXN1bHQgaW4gYSAiZmlsZSBjaGFuZ2VkIG91dHNpZGUgb2YgVmltIiB3YXJuaW5nIGFuZCBtbF9nZXQoKQoJICAgIGVycm9ycy4gKE1pa2UgV2lsbGlhbXMpClNvbHV0aW9uOiAgIEFkZCB0aGUgImJfc2F2aW5nIiBmbGFnIHRvIGF2b2lkIGNoZWNraW5nIHRoZSB0aW1lc3RhbXAgd2hpbGUgdGhlCgkgICAgYnVmZmVyIGlzIGJlaW5nIHNhdmVkLiAoTWljaGFlbCBTY2hhYXApCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjJmLjAwNwpQcm9ibGVtOiAgICBJcml4IGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBtdWx0aXBsZSBkZWZpbmVkIHN5bWJvbHMuCgkgICAgdnNucHJpbnRmKCkgaXMgbm90IGF2YWlsYWJsZS4gIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBJbnNlcnQgRVhURVJOIGZvciB2YXJpYWJsZXMgaW4gZ2xvYmFscy5oLiAgQ2hhbmdlIHRoZSBjb25maWd1cmUKCSAgICBjaGVjayBmb3IgdnNucHJpbnRmKCkgZnJvbSBjb21waWxpbmcgdG8gbGlua2luZy4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMmYuMDA4ClByb2JsZW06ICAgIFRoZSBBYXAgcmVjaXBlIGRvZXNuJ3Qgd29yayB3aXRoIEFhcCAwLjE0OS4KU29sdXRpb246ICAgQ2hhbmdlIHRhcmdldGFyZyB0byBUQVJHRVRBUkcuICBVcGRhdGUgdGhlIG15c2lnbiBmaWxlLgpGaWxlczoJICAgIHNyYy9tYWluLmFhcCwgc3JjL215c2lnbgoKUGF0Y2ggNi4yZi4wMDkgKGV4dHJhKQpQcm9ibGVtOiAgICBTbWFsbCBwcm9ibGVtIHdoZW4gYnVpbGRpbmcgd2l0aCBCb3JsYW5kIDUuMDEuClNvbHV0aW9uOiAgIFVzZSBta2RpcigpIGluc3RlYWQgb2YgX21rZGlyKCkuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5oCgpQYXRjaCA2LjJmLjAxMApQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBtaXNzaW5nIHByb3RvdHlwZXMuClNvbHV0aW9uOiAgIEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMmYuMDExClByb2JsZW06ICAgIFRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXNuJ3Qgd29yayB3aXRoIGF1dG9jb25mIDIuNXguClNvbHV0aW9uOiAgIEFkZCBzcXVhcmUgYnJhY2tldHMgYXJvdW5kIGEgaGVhZGVyIGNoZWNrLiAoQXJvbiBHcmlmZmlzKQoJICAgIE5vdGU6IHRvdWNoIHNyYy9hdXRvL2NvbmZpZ3VyZSBhZnRlciBhcHBseWluZyB0aGlzIHBhdGNoLgpGaWxlczoJICAgIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMmYuMDEyClByb2JsZW06ICAgICI6ZWNob2VyciIgZG9lc24ndCB3b3JrIGNvcnJlY3RseSBpbnNpZGUgdHJ5L2VuZHRyeS4KU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgZGlkX2Vtc2cgaW5zaWRlIGEgdHJ5L2VuZHRyeS4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yZi4wMTMgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWNpbnRvc2g6IENvbXBpbGVyIHdhcm5pbmcgZm9yIGEgdHJpZ3JhcGguClNvbHV0aW9uOiAgIEluc2VydCBhIGJhY2tzbGFzaCBiZWZvcmUgZWFjaCBxdWVzdGlvbiBtYXJrLiAoUGV0ZXIgQ3Vja2EpCkZpbGVzOgkgICAgc3JjL29zX21hYy5oCgpQYXRjaCA2LjJmLjAxNCAoZXh0cmEpClByb2JsZW06ICAgIE1hY2ludG9zaDogZXhfZXZhbCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIHByb2plY3QgZmlsZS4KU29sdXRpb246ICAgQWRkIGV4X2V2YWwuIChEYW55IFN0LUFtYW50KQpGaWxlczoJICAgIHNyYy9vc19tYWMucGJwcm9qL3Byb2plY3QucGJ4cHJvagoKUGF0Y2ggNi4yZi4wMTUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBjaGFuZ2luZyBoZWFkZXIgZmlsZXMgbm90IGFsbCBzb3VyY2UgZmlsZXMgaW52b2x2ZWQKCSAgICBhcmUgcmVjb21waWxlZC4KU29sdXRpb246ICAgSW1wcm92ZSB0aGUgZGVwZW5kZW5jeSBydWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1hawoKUGF0Y2ggNi4yZi4wMTYKUHJvYmxlbTogICAgInZpbSAtLXZlcnNpb24gPiBmZiIgb24gbm9uLVVuaXggc3lzdGVtcyByZXN1bHRzIGluIGEgZmlsZSB3aXRoIGEKCSAgICBtaXNzaW5nIGxpbmUgYnJlYWsgYXQgdGhlIGVuZC4gKEJpbGwgTWNDQXJ0aHkpClNvbHV0aW9uOiAgIEFkZCBhIGxpbmUgYnJlYWsuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4yZi4wMTcKUHJvYmxlbTogICAgVW5peDogc3RhcnRpbmcgVmltIGluIHRoZSBiYWNrZ3JvdW5kIGFuZCB0aGVuIGJyaW5naW5nIGl0IHRvIHRoZQoJICAgIGZvcmVncm91bmQgbWF5IGNhdXNlIHRoZSB0ZXJtaW5hbCBzZXR0aW5ncyB0byBiZSB3cm9uZy4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRjc2V0YXR0cigpIHRvIHJldHVybiBhbiBlcnJvciwgcmV0cnkgd2hlbiBpdCBkb2VzLgoJICAgIChQYXVsIFRhcHBlcikKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjJmLjAxOApQcm9ibGVtOiAgICBNYWMgT1MgWCAxMC4yOiBPSyBpcyBkZWZpbmVkIHRvIHplcm8gaW4gY3Vyc3VzLmggd2hpbGUgVmltIHVzZXMKCSAgICBvbmUuICBSZWRlZmluaW5nIGl0IGNhdXNlcyBhIHdhcm5pbmcgbWVzc2FnZS4KU29sdXRpb246ICAgVW5kZWZpbmUgT0sgYmVmb3JlIGRlZmluaW5nIGl0IHRvIG9uZS4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMmYuMDE5ClByb2JsZW06ICAgIE1hYyBPUyBYIDEwLjI6IENPTE9SX0JMQUNLIGFuZCBDT0xPUl9XSElURSBhcmUgZGVmaW5lZCBpbgoJICAgIGN1cnNlcy5oLgpTb2x1dGlvbjogICBSZW5hbWUgdGhlbSB0byBQUkNPTE9SX0JMQUNLIGFuZCBQUkNPTE9SX1dISVRFLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjJmLjAyMApQcm9ibGVtOiAgICBXaW4zMjogdGVzdDUwIHByb2R1Y2VzIGJlZXBzIGFuZCBmYWlscyB3aXRoIHNvbWUgdmVyc2lvbnMgb2YgZGlmZi4KU29sdXRpb246ICAgUmVtb3ZlIGVtcHR5IGxpbmVzIGFuZCBjb252ZXJ0IHRoZSBvdXRwdXQgdG8gZG9zIGZpbGVmb3JtYXQuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvdGVzdDUwLmluCgpQYXRjaCA2LjJmLjAyMQpQcm9ibGVtOiAgICBSdW5uaW5nIGNvbmZpZ3VyZSB3aXRoICItLWVuYWJsZS1uZXRiZWFucyIgZGlzYWJsZXMgTmV0YmVhbnMuCgkgICAgKEdvcmRvbiBQcmlldXIpClNvbHV0aW9uOiAgIEZpeCB0aGUgdGVzdHMgaW4gY29uZmlndXJlLmluIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRvIGVuYWJsZSBhCgkgICAgZmVhdHVyZS4gIEZpeCB0aGF0ICItLWVuYWJsZS1hY2wiIHJlcG9ydGVkICJ5ZXMiIGNvbmZ1c2luZ2x5LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL215c2lnbgoKUGF0Y2ggNi4yZi4wMjIKUHJvYmxlbTogICAgQSBib2d1cyB2YWx1ZSBmb3IgJ2ZvbGRtYXJrZXInIGlzIG5vdCByZWplY3RlZCwgcG9zc2libHkgY2F1c2luZyBhCgkgICAgaGFuZy4gKERlcmVrIFd5YXR0KQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBub24tZW1wdHkgc3RyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGNvbW1hLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yZi4wMjMKUHJvYmxlbTogICAgV2hlbiB0aGUgaGVscCBmaWxlcyBhcmUgbm90IGluICRWSU1SVU5USU1FIGJ1dCAnaGVscGZpbGUnIGlzCgkgICAgY29ycmVjdCBWaW0gc3RpbGwgY2FuJ3QgZmluZCB0aGUgaGVscCBmaWxlcy4KU29sdXRpb246ICAgQWxzbyBsb29rIGZvciBhIHRhZ3MgZmlsZSBpbiB0aGUgZGlyZWN0b3J5IG9mICdoZWxwZmlsZScuCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjJmLjAyNApQcm9ibGVtOiAgICBXaGVuICdkZWxjb21iaW5lJyBpcyBzZXQgYW5kIGEgY2hhcmFjdGVyIGhhcyBtb3JlIHRoYW4gdHdvCgkgICAgY29tcG9zaW5nIGNoYXJhY3RlcnMgIngiIGRlbGV0ZXMgdGhlbSBhbGwuClNvbHV0aW9uOiAgIEFsd2F5cyBkZWxldGUgb25seSB0aGUgbGFzdCBjb21wb3NpbmcgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjJmLjAyNQpQcm9ibGVtOiAgICBXaGVuIHJlYWRpbmcgYSBmaWxlIGZyb20gc3RkaW4gdGhhdCBoYXMgRE9TIGxpbmUgZW5kaW5ncyBidXQgYQoJICAgIG1pc3NpbmcgZW5kLW9mLWxpbmUgZm9yIHRoZSBsYXN0IGxpbmUgJ2ZpbGVmb3JtYXQnIGJlY29tZXMgInVuaXgiLgoJICAgIChCaWxsIE1jQ2FydGh5KQpTb2x1dGlvbjogICBEb24ndCBhZGQgdGhlIG1pc3NpbmcgbGluZSBicmVhayB3aGVuIHJlLXJlYWRpbmcgdGhlIHRleHQgZnJvbSB0aGUKCSAgICBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjJmLjAyNgpQcm9ibGVtOiAgICBXaGVuIHR5cGluZyBuZXcgdGV4dCBhdCB0aGUgY29tbWFuZCBsaW5lLCBvbGQgY29tcG9zaW5nIGNoYXJhY3RlcnMKCSAgICBtYXkgYmUgZGlzcGxheWVkLgpTb2x1dGlvbjogICBEb24ndCByZWFkIGNvbXBvc2luZyBjaGFyYWN0ZXJzIGZyb20gYWZ0ZXIgdGhlIGVuZCBvZiB0aGUKCSAgICB0ZXh0IHRvIGJlIGRpc3BsYXllZC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL21ieXRlLmMsIHNyYy9tZXNzYWdlLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8sCgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjJmLjAyNwpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3IgdW5zaWduZWQgY2hhciBwb2ludGVycy4gKFRvbnkgTGVuZWlzKQpTb2x1dGlvbjogICBBZGQgdHlwZWNhc3RzIHRvIGNoYXIgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvcXVpY2tmaXguYwoKUGF0Y2ggNi4yZi4wMjgKUHJvYmxlbTogICAgR1RLOiBXaGVuICdpbWFjdGl2YXRla2V5JyBpcyBlbXB0eSBhbmQgWElNIGlzIGluYWN0aXZlIGl0IGNhbid0IGJlCgkgICAgbWFkZSBhY3RpdmUgYWdhaW4uICBDdXJzb3IgaXNuJ3QgdXBkYXRlZCBpbW1lZGlhdGVseSB3aGVuIGNoYW5naW5nCgkgICAgWElNIGFjdGl2YXRpb24uICBKYXBhbmVzZSBYSU0gbWF5IGhhbmcgd2hlbiB1c2luZyAnaW1hY3RpdmF0ZWtleScuCgkgICAgQ2FuJ3QgYWN0aXZhdGUgWElNIGFmdGVyIHR5cGluZyBmRnRUIGNvbW1hbmQgb3IgIjpzaCIuClNvbHV0aW9uOiAgIFByb3Blcmx5IHNldCB0aGUgZmxhZyB0aGF0IGluZGljYXRlcyB0aGUgSU0gaXMgYWN0aXZlLiAgVXBkYXRlIHRoZQoJICAgIGN1cnNvciByaWdodCBhd2F5LiAgRG8gbm90IHNlbmQgYSBrZXktcmVsZWFzZSBldmVudC4gIEhhbmRsZQoJICAgIE5vcm1hbCBtb2RlIGFuZCBydW5uaW5nIGFuIGV4dGVybmFsIGNvbW1hbmQgZGlmZmVyZW50bHkuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yZi4wMjkKUHJvYmxlbTogICAgTWl4aW5nIHVzZSBvZiBpbnQgYW5kIGVudW0uClNvbHV0aW9uOiAgIEFkanVzdCBhcmd1bWVudCB0eXBlIG9mIGNzX3VzYWdlX21zZygpLiAgRml4IHdyb25nIHR5cGVkZWYuCkZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jLCBzcmMvaWZfY3Njb3BlLmgKClBhdGNoIDYuMmYuMDMwIChhZnRlciA2LjJmLjAyOCkKUHJvYmxlbTogICAgQ3Vyc29yIG1vdmVzIHVwIHdoZW4gdXNpbmcgWElNLgpTb2x1dGlvbjogICBSZXNldCBpbV9wcmVlZGl0X2N1cnNvci4gIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMmYuMDMxClByb2JsZW06ICAgIENyYXNoIHdoZW4gbGlzdGluZyBhIGZ1bmN0aW9uIGFyZ3VtZW50IGluIHRoZSBkZWJ1Z2dlci4gKFJvbiBBYXJvbikKU29sdXRpb246ICAgSW5pdCB0aGUgbmFtZSBmaWVsZCBvZiBhbiBhcmd1bWVudCB0byBOVUxMLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMmYuMDMyClByb2JsZW06ICAgIFdoZW4gYSB3cml0ZSBmYWlscyBmb3IgYSAiOnNpbGVudCEiIHdoaWxlIGluc2lkZSB0cnkvZW5kdHJ5IHRoZQoJICAgIEJ1ZldyaXRlUG9zdCBhdXRvY29tbWFuZHMgYXJlIG5vdCB0cmlnZ2VyZWQuClNvbHV0aW9uOiAgIENoZWNrIHRoZSBlbXNnX3NpbGVudCBmbGFnIGluIHNob3VsZF9hYm9ydCgpLiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXhfZXZhbC5jLCBzcmMvdGVzdGRpci90ZXN0NDkub2ssIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMmYuMDMzClByb2JsZW06ICAgIENzY29wZTogcmUtZW50cmFuY2UgcHJvYmxlbSBmb3IgIjpjc2NvcGUiIGNvbW1hbmQuICBDaGVja2luZyBmb3IKCSAgICBkdXBsaWNhdGUgZGF0YWJhc2UgZGlkbid0IHdvcmsgd2VsbCBmb3IgV2luOTUuICBEaWRuJ3QgY2hlY2sgZm9yCgkgICAgZHVwbGljYXRlIGRhdGFiYXNlcyBhZnRlciBhbiBlbXB0eSBlbnRyeS4KU29sdXRpb246ICAgRG9uJ3Qgc2V0IHBvc3Rwb25lZF9zcGxpdCB0b28gZWFybHkuICBSZW1lbWJlciBmaXJzdCBlbXB0eQoJICAgIGRhdGFiYXNlIGVudHJ5LiAoU2VyZ2V5IEtob3JldikKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMmYuMDM0ClByb2JsZW06ICAgIFRoZSBuZXRiZWFucyBpbnRlcmZhY2UgY2Fubm90IGJlIHVzZWQgb24gc3lzdGVtcyB3aXRob3V0CgkgICAgdnNucHJpbnRmKCkuIChUb255IExlbmVpcykKU29sdXRpb246ICAgVXNlIEVNU0coKSwgRU1TR04oKSBhbmQgRU1TRzIoKSBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMmYuMDM1ClByb2JsZW06ICAgIFRoZSBjb25maWd1cmUgY2hlY2sgZm9yIHRoZSBuZXRiZWFucyBpbnRlcmZhY2UgZG9lc24ndCB3b3JrIGlmIHRoZQoJICAgIHNvY2tldCBhbmQgbnNsIGxpYnJhcmllcyBhcmUgcmVxdWlyZWQuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgc29ja2V0IGFuZCBuc2wgbGlicmFyaWVzIGJlZm9yZSB0aGUgbmV0YmVhbnMgY2hlY2suCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjJmLjAzNgpQcm9ibGVtOiAgICBNb3ZpbmcgbGVmdHdhcmRzIG92ZXIgdGV4dCB3aXRoIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBtb3ZlcyBvbmUKCSAgICBieXRlIGluc3RlYWQgb2Ygb25lIGNoYXJhY3Rlci4KU29sdXRpb246ICAgSWdub3JlIGFuIGlsbGVnYWwgYnl0ZSBhZnRlciB0aGUgY3Vyc29yIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjJmLjAzNwpQcm9ibGVtOiAgICBXaGVuIHJlY2VpdmluZyBhIE5ldGJlYW5zIGNvbW1hbmQgYXQgdGhlIGhpdC1lbnRlciBvciBtb3JlIHByb21wdAoJICAgIHRoZSBzY3JlZW4gaXMgcmVkcmF3biBidXQgVmltIGlzIHN0aWxsIHdhaXRpbmcgYXQgdGhlIHByb21wdC4KU29sdXRpb246ICAgUXVpdCB0aGUgcHJvbXB0IGxpa2UgYSBDVFJMLUMgd2FzIHR5cGVkLgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjJmLjAzOApQcm9ibGVtOiAgICBUaGUgZGVwZW5kZW5jeSB0byBydW4gYXV0b2NvbmYgY2F1c2VzIGEgcGF0Y2ggZm9yIGNvbmZpZ3VyZS5pbgoJICAgIHRvIHJ1biBhdXRvY29uZiwgZXZlbiB0aG91Z2ggdGhlIGNvbmZpZ3VyZSBzY3JpcHQgd2FzIHVwZGF0ZWQgYXMKCSAgICB3ZWxsLgpTb2x1dGlvbjogICBPbmx5IHJ1biBhdXRvY29uZiB3aXRoICJtYWtlIGF1dG9jb25mIi4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMmYuMDM5ClByb2JsZW06ICAgIENUUkwtVyBLIG1ha2VzIHRoZSBuZXcgdG9wIHdpbmRvdyB2ZXJ5IGhpZ2guClNvbHV0aW9uOiAgIFdoZW4gJ2VxdWFsYWx3YXlzJyBpcyBzZXQgZXF1YWxpemUgdGhlIHdpbmRvdyBoZWlnaHRzLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpWRVJTSU9OIDYuMwkJCQkJCSp2ZXJzaW9uLTYuMyoKClRoaXMgc2VjdGlvbiBpcyBhYm91dCBpbXByb3ZlbWVudHMgbWFkZSBiZXR3ZWVuIHZlcnNpb24gNi4yIGFuZCA2LjMuCgpUaGlzIGlzIG1haW5seSBhIGJ1Zy1maXggcmVsZWFzZS4gIFRoZXJlIGFyZSBhbHNvIGEgZmV3IG5ldyBmZWF0dXJlcy4KVGhlIG1ham9yIG51bWJlciBvZiBuZXcgaXRlbXMgaXMgaW4gdGhlIHJ1bnRpbWUgZmlsZXMgYW5kIHRyYW5zbGF0aW9ucy4KCgpDaGFuZ2VkCQkJCQkJCSpjaGFuZ2VkLTYuMyoKLS0tLS0tLQoKVGhlIGludHJvIG1lc3NhZ2UgYWxzbyBkaXNwbGF5cyBhIG5vdGUgYWJvdXQgc3BvbnNvcmluZyBWaW0sIG1peGVkIHJhbmRvbWx5CndpdGggdGhlIG1lc3NhZ2UgYWJvdXQgaGVscGluZyBjaGlsZHJlbiBpbiBVZ2FuZGEuCgpJbmNsdWRlZCB0aGUgdHJhbnNsYXRlZCBtZW51cywga2V5bWFwcyBhbmQgdHV0b3JzIHdpdGggdGhlIG5vcm1hbCBydW50aW1lCmZpbGVzLiAgVGhlIHNlcGFyYXRlICJsYW5nIiBhcmNoaXZlIG5vdyBvbmx5IGNvbnRhaW5zIHRyYW5zbGF0ZWQgbWVzc2FnZXMuCgpNYWRlIHRoZSB0cmFuc2xhdGVkIG1lbnUgZmlsZSBuYW1lcyBhIGJpdCBtb3JlIGNvbnNpc3RlbnQuICBVc2UgImxhdGluMSIgZm9yCiJpc29fODg1OS0xIiBhbmQgImlzb184ODU5LTE1Ii4KClJlbW92ZWQgdGhlICJmaWxlX3NlbGVjdC52aW0iIHNjcmlwdCBmcm9tIHRoZSBkaXN0cmlidXRpb24uICBJdCdzIG5vdCBtb3JlCnVzZWZ1bCB0aGFuIG90aGVyIHNjcmlwdHMgdGhhdCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIHd3dy52aW0ub3JnLgoKVGhlICJydW50aW1lL2RvYy90YWdzIiBmaWxlIGlzIG5vdyBhbHdheXMgaW4gdW5peCBmaWxlZm9ybWF0LiAgT24gTVMtV2luZG93cwppdCB1c2VkIHRvIGJlIGRvcyBmaWxlZm9ybWF0LCBidXQgIjpoZWxwdGFncyIgZ2VuZXJhdGVzIGEgdW5peCBmb3JtYXQgZmlsZS4KCgpBZGRlZAkJCQkJCQkqYWRkZWQtNi4zKgotLS0tLQoKTmV3IGNvbW1hbmRzOgoJOmNOZmlsZQkJZ28gdG8gbGFzdCBlcnJvciBpbiBwcmV2aW91cyBmaWxlCgk6Y3BmaWxlCQlpZGVtCgk6Y2hhbmdlcwlwcmludCB0aGUgY2hhbmdlIGxpc3QKCTprZWVwbWFya3MJZm9sbG93aW5nIGNvbW1hbmQga2VlcHMgbWFya3Mgd2hlcmUgdGhleSBhcmUKCTprZWVwanVtcHMJZm9sbG93aW5nIGNvbW1hbmQga2VlcHMganVtcGxpc3QgYW5kIG1hcmtzCgk6bG9ja21hcmtzCWZvbGxvd2luZyBjb21tYW5kIGtlZXBzIG1hcmtzIHdoZXJlIHRoZXkgYXJlCgk6cmVkcmF3c3RhdHVzCWZvcmNlIGEgcmVkcmF3IG9mIHRoZSBzdGF0dXMgbGluZShzKQoKTmV3IG9wdGlvbnM6CgknYW50aWFsaWFzJwlNYWMgT1MgWDogdXNlIHNtb290aCwgYW50aWFsaWFzZWQgZm9udHMKCSdoZWxwbGFuZycJcHJlZmVycmVkIGhlbHAgbGFuZ3VhZ2VzCgpTeW50YXggZmlsZXM6CglBcmNoIGludmVudG9yeSAoTmlrb2xhaSBXZWlidWxsKQoJQ2FsZW5kYXIgKE5pa29sYWkgV2VpYnVsbCkKCUNoIChXYXluZSBDaGVuZykKCUNvbnRyb2xsYWJsZSBSZWdleCBNdXRpbGF0b3IgKE5pa29sYWkgV2VpYnVsbCkKCUQgKEphc29uIE1pbGxzKQoJRGVza3RvcCAoTWlrb2xhaiBNYWNob3dza2kpCglEaXJjb2xvcnMgKE5pa29sYWkgV2VpYnVsbCkKCUVsaW5rcyBjb25maWd1cmF0aW9uIChOaWtvbGFpIFdlaWJ1bGwpCglGQVNNIChSb24gQWFyb24pCglHckFEUyBzY3JpcHRzIChTdGVmYW4gRnJvbnplaykKCUljZXdtIG1lbnUgKEphbWVzIE1haGxlcikKCUxESUYgKFphayBKb2huc29uKQoJTG9jYWxlIGlucHV0LCBmZGNjLiAoRHdheW5lIEJhaWxleSkKCVBpbmZvIGNvbmZpZyAoTmlrb2xhaSBXZWlidWxsKQoJUHlyZXggKE1hcmNvIEJhcmlzaW9uZSkKCVJlbGF4IE5HIENvbXBhY3QgKE5pa29sYWkgV2VpYnVsbCkKCVNsaWNlIChNb3JlbCBCb2RpbikKCVZBWCBNYWNybyBBc3NlbWJseSAoVG9tIFVpamxkZXJ0KQoJZ3JhZHMgKFN0ZWZhbiBGcm9uemVrKQoJbGliYW8gKE5pa29sYWkgV2VpYnVsbCkKCW1wbGF5ZXIgKE5pa29sYWkgV2VpYnVsbCkKCXJzdCAoTmlrb2xhaSBXZWlidWxsKQoJdGNzaCAoR2F1dGFtIEl5ZXIpCgl5YW1sIChOaWtvbGFpIFdlaWJ1bGwpCgpDb21waWxlciBwbHVnaW5zOgoJQVRUIGRvdCAoTWFyY29zIE1hY2VkbykKCUFwcGxlIFByb2plY3QgQnVpbGRlciAoQWxleGFuZGVyIHZvbiBCZWxvdykKCUludGVsIChEYXZpZCBIYXJyaXNvbikKCWJkZiAoTmlrb2xhaSBXZWlidWxsKQoJaWNjIChQZXRlciBQdWNrKQoJamF2YWMgKERvdWcgS2Vhcm5zKQoJbmVhdG8gKE1hcmNvcyBNYWNlZG8pCglvbnNnbWxzIChSb2JlcnQgQi4gUm93c29tZSkKCXBlcmwgKENocmlzdGlhbiBKLiBSb2JpbnNvbikKCXJzdCAoTmlrb2xhaSBXZWlidWxsKQoJc2UgKFNtYXJ0RWlmZmVsKSAoRG91ZyBLZWFybnMpCgl0Y2wgKERvdWcgS2Vhcm5zKQoJeG1sd2YgKFJvYmVydCBCLiBSb3dzb21lKQoKRmlsZXR5cGUgcGx1Z2luczoKCUFhcCAoQnJhbSBNb29sZW5hYXIpCglDaCAoV2F5bmUgQ2hlbmcpCglDc3MgKE5pa29sYWkgV2VpYnVsbCkKCVB5cmV4IChNYXJjbyBCYXJpc2lvbmUpCglSc3QgKE5pa29sYWkgV2VpYnVsbCkKCkluZGVudCBzY3JpcHRzOgoJQWFwIChCcmFtIE1vb2xlbmFhcikKCUNoIChXYXluZSBDaGVuZykKCURvY0Jvb2sgKE5pa29sYWkgV2VpYnVsbCkKCU1ldGFQb3N0IChFdWdlbmUgTWlua292c2tpaSkKCU9iamVjdGl2ZS1DIChLYXp1bm9idSBLdXJpeWFtYSkKCVB5cmV4IChNYXJjbyBCYXJpc2lvbmUpCglSc3QgKE5pa29sYWkgV2VpYnVsbCkKCVRjc2ggKEdhdXRhbSBJeWVyKQoJWEZyZWU4NiBjb25maWd1cmF0aW9uIGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKCVpzaCAoTmlrb2xhaSBXZWlidWxsKQoKS2V5bWFwczoKCUdyZWVrIGZvciBjcDEyNTMgKFBhbmFnaW90aXMgTG91cmlkYXMpCglIdW5nYXJpYW4gKE1hZ3lhcikgKExhc3psbyBaYXZhbGV0YSkKCVBlcnNpYW4tSXJhbmlhbiAoQmVobmFtIEVzZmFoYm9kKQoKTWVzc2FnZSB0cmFuc2xhdGlvbnM6CglDYXRhbGFuIChFcm5lc3QgQWRyb2d1ZSkKCVJ1c3NpYW4gKFZhc3NpbHkgUmFnb3NpbikKCVN3ZWRpc2ggKEpvaGFuIFN2ZWRiZXJnKQoKTWVudSB0cmFuc2xhdGlvbnM6CglDYXRhbGFuIChFcm5lc3QgQWRyb2d1ZSkKCVJ1c3NpYW4gKFRpbSBBbGV4ZWV2c2t5KQoJU3dlZGlzaCAoSm9oYW4gU3ZlZGJlcmcpCgpUdXRvciB0cmFuc2xhdGlvbnM6CglDYXRhbGFuIChFcm5lc3QgQWRyb2d1ZSkKCVJ1c3NpYW4gaW4gY3AxMjUxIChBbGV4ZXkgRnJvbG9mZikKCVNsb3ZhayBpbiBjcDEyNTAgYW5kIGlzbzg4NTktMiAoTHVib3MgQ2Vsa28pCglTd2VkaXNoIChKb2hhbiBTdmVkYmVyZykKCUtvcmVhbiAoS2VlLVdvbiBTZW8pCglVVEYtOCB2ZXJzaW9uIG9mIHRoZSBKYXBhbmVzZSB0dXRvciAoWWFzdWhpcm8gTWF0c3Vtb3RvKSBVc2UgdGhpcyBhcwoJCXRoZSBvcmlnaW5hbCwgY3JlYXRlIHRoZSBvdGhlciBKYXBhbmVzZSB0dXRvciBieSBjb252ZXJzaW9uLgoKSW5jbHVkZWQgInJ1c3NpYW4udHh0IiBoZWxwIGZpbGUuIChWYXNzaWx5IFJhZ29zaW4pCgpJbmNsdWRlIEVuY2Fwc3VsYXRlZCBQb3N0U2NyaXB0IGFuZCBQREYgdmVyc2lvbnMgb2YgdGhlIFZpbSBsb2dvIGluIHRoZSBleHRyYQphcmNoaXZlLgoKVGhlIGhlbHAgaGlnaGxpZ2h0aW5nIGZpbmRzIHRoZSBoaWdobGlnaHQgZ3JvdXBzIGFuZCBzaG93cyB0aGVtIGluIHRoZSBjb2xvcgp0aGF0IGlzIGFjdHVhbGx5IGJlaW5nIHVzZWQuIChpZGVhIGZyb20gWWFrb3YgTGVybmVyKQoKVGhlIGJpZyBXaW4zMiB2ZXJzaW9uIGlzIG5vdyBjb21waWxlZCB3aXRoIFJ1YnkgaW50ZXJmYWNlLCB2ZXJzaW9uIDEuOC4gIEZvcgpQeXRob24gdmVyc2lvbiAyLjMgaXMgdXNlZC4gIEZvciBQZXJsIHZlcnNpb24gNS44IGlzIHVzZWQuCgpUaGUgImZ0ZGV0ZWN0IiBkaXJlY3RvcnkgaXMgbWVudGlvbmVkIGluIHRoZSBkb2N1bWVudGF0aW9uLiAgVGhlIERPUyBpbnN0YWxsCnByb2dyYW0gY3JlYXRlcyBpdC4KCgpGaXhlZAkJCQkJCQkqZml4ZWQtNi4zKgotLS0tLQoKVGVzdCA0MiBmYWlsZWQgb24gTVMtV2luZG93cy4gIFNldCBhbmQgcmVzZXQgJ2ZpbGVmb3JtYXQnIGFuZCAnYmluYXJ5JyBvcHRpb25zCmhlcmUgYW5kIHRoZXJlLiAgKFdhbHRlciBCcmlzY29lKQoKVGhlIGV4cGxvcmVyIHBsdWdpbiBkaWRuJ3Qgd29yayBmb3IgZG91YmxlLWJ5dGUgJ2VuY29kaW5nJ3MuCgpVc2UgImNvcHkgL3kiIGluIE1ha2VfYmM1Lm1hayB0byBhdm9pZCBhIHByb21wdCBmb3Igb3ZlcndyaXRpbmcuCgpQYXRjaCA2LjIuMDAxClByb2JsZW06ICAgIFRoZSAiOnN0b3BpbnNlcnQiIGNvbW1hbmQgZG9lc24ndCBoYXZlIGEgaGVscCB0YWcuClNvbHV0aW9uOiAgIEFkZCB0aGUgdGFnLiAoQW50b2luZSBKLiAgTWVjaGVseW5jaykKRmlsZXM6CSAgICBydW50aW1lL2RvYy9pbnNlcnQudHh0LCBydW50aW1lL2RvYy90YWdzCgpQYXRjaCA2LjIuMDAyClByb2JsZW06ICAgIFdoZW4gY29tcGlsZWQgd2l0aCB0aGUgK211bHRpX2J5dGUgZmVhdHVyZSBidXQgd2l0aG91dCArZXZhbCwKCSAgICBkaXNwbGF5aW5nIFVURi04IGNoYXJhY3RlcnMgbWF5IGNhdXNlIGEgY3Jhc2guIChLYXJzdGVuIEhvcHApClNvbHV0aW9uOiAgIEFsc28gc2V0IHRoZSBkZWZhdWx0IGZvciAnYW1iaXdpZHRoJyB3aGVuIGNvbXBpbGVkIHdpdGhvdXQgdGhlCgkgICAgK2V2YWwgZmVhdHVyZS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4wMDMKUHJvYmxlbTogICAgR1RLIDI6IGRvdWJsZS13aWRlIGNoYXJhY3RlcnMgYmVsb3cgMjU2IGFyZSBub3QgZGlzcGxheWVkCgkgICAgY29ycmVjdGx5LgpTb2x1dGlvbjogICBDaGVjayB0aGUgY2VsbCB3aWR0aCBmb3IgY2hhcmFjdGVycyBhYm92ZSAxMjcuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4yLjAwNApQcm9ibGVtOiAgICBXaXRoIGEgbGluZS1WaXN1YWwgc2VsZWN0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgYSAicCIgY29tbWFuZAoJICAgIHB1dHMgdGhlIHRleHQgb25lIGxpbmUgdXB3YXJkcy4KU29sdXRpb246ICAgRGV0ZWN0IHRoYXQgdGhlIGxhc3QgbGluZSB3YXMgZGVsZXRlZCBhbmQgcHV0IGZvcndhcmQuIChUYXJvCgkgICAgTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4wMDUKUHJvYmxlbTogICAgR1RLOiB0aGUgIkZpbmQiIGFuZCAiRmluZCBhbmQgUmVwbGFjZSIgdG9vbHMgZG9uJ3Qgd29yay4gKEFzY2h3aW4KCSAgICBNYXJzbWFuKQpTb2x1dGlvbjogICBTaG93IHRoZSBkaWFsb2cgYWZ0ZXIgY3JlYXRpbmcgaXQuICAoRGF2aWQgTmVjYXMpCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjAwNgpQcm9ibGVtOiAgICBUaGUgTmV0YmVhbnMgY29kZSBjb250YWlucyBhbiBvYnNvbGV0ZSBmdW5jdGlvbiB0aGF0IHVzZXMgInZpbTYxIgoJICAgIGFuZCBzZXRzIHRoZSBmYWxsLWJhY2sgdmFsdWUgZm9yICRWSU1SVU5USU1FLgpTb2x1dGlvbjogICBEZWxldGUgdGhlIG9ic29sZXRlIGZ1bmN0aW9uLgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9uZXRiZWFucy5jLCBzcmMvcHJvdG8vbmV0YmVhbnMucHJvCgpQYXRjaCA2LjIuMDA3ClByb2JsZW06ICAgIExpc3RpbmcgdGFncyBmb3IgQ3Njb3BlIGRvZXNuJ3QgYWx3YXlzIHdvcmsuClNvbHV0aW9uOiAgIEF2b2lkIHVzaW5nIHNtZ3NfYXR0cigpLiAoU2VyZ2V5IEtob3JldikKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMi4wMDgKUHJvYmxlbTogICAgWElNIHdpdGggR1RLIDI6IEFmdGVyIGJhY2tzcGFjaW5nIHByZWVkaXQgY2hhcmFjdGVycyBhcmUgd3JvbmcuClNvbHV0aW9uOiAgIFJlc2V0IHRoZSBjdXJzb3IgcG9zaXRpb24uIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4wMDkKUHJvYmxlbTogICAgV2luMzI6IFRoZSBzZWxmLWluc3RhbGxpbmcgZXhlY3V0YWJsZSAiRnVsbCIgc2VsZWN0aW9uIG9ubHkKCSAgICBzZWxlY3RzIHNvbWUgb2YgdGhlIGl0ZW1zIHRvIGluc3RhbGwuIChTYWxtYW4gTW9oc2luKQpTb2x1dGlvbjogICBDaGFuZ2UgY29tbWFzIHRvIHNwYWNlcyBpbiBiZXR3ZWVuIHNlY3Rpb24gbnVtYmVycy4KRmlsZXM6CSAgICBuc2lzL2d2aW0ubnNpCgpQYXRjaCA2LjIuMDEwClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBlZmZlY3RpdmUgYW5kIGEgbGluZSBzdGFydHMgd2l0aCBhCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXIsIG1vdmluZyB0aGUgY3Vyc29yIHJpZ2h0IGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgT2J0YWluIHRoZSByaWdodCBjaGFyYWN0ZXIgdG8gY29tcHV0ZSB0aGUgY29sdW1uIG9mZnNldC4gKFRhcm8KCSAgICBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMi4wMTEKUHJvYmxlbTogICAgQWxwaGEgT1NGMTogc3RhdCgpIGlzIGEgbWFjcm8gYW5kIGRvZXNuJ3QgYWxsb3cgYW4gI2lmZGVmIGhhbGZ3YXkuCgkgICAgKE1vc2hlIEthbWluc2t5KQpTb2x1dGlvbjogICBNb3ZlIHRoZSAjaWZkZWYgb3V0c2lkZSBvZiBzdGF0KCkuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAxMgpQcm9ibGVtOiAgICBNYXkgaGFuZyB3aGVuIHBvbGxpbmcgZm9yIGEgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBCcmVhayB0aGUgd2FpdCBsb29wIHdoZW4gbm90IHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4wMTMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIHJlZ2lzdHJ5IGtleSBmb3IgdW5pbnN0YWxsaW5nIEd2aW1FeHQgc3RpbGwgdXNlcyAiNi4xIi4KU29sdXRpb246ICAgQ2hhbmdlIHRoZSB2ZXJzaW9uIG51bWJlciB0byAiNi4yIi4gKEFqaXQgVGhha2thcikKRmlsZXM6CSAgICBzcmMvR3ZpbUV4dC9HdmltRXh0LnJlZwoKUGF0Y2ggNi4yLjAxNCAoYWZ0ZXIgNi4yLjAxMikKUHJvYmxlbTogICAgWFNNUCBkb2Vzbid0IHdvcmsgd2hlbiB1c2luZyBwb2xsKCkuClNvbHV0aW9uOiAgIFVzZSB4c21wX2lkeCBpbnN0ZWFkIG9mIGdwbV9pZHguIChOZWlsIEJpcmQpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAxNQpQcm9ibGVtOiAgICBUaGUgK3hzbXAgZmVhdHVyZSBpcyBuZXZlciBlbmFibGVkLgpTb2x1dGlvbjogICBNb3ZlIHRoZSAjZGVmaW5lIGZvciBVU0VfWFNNUCB0byBiZWxvdyB3aGVyZSBXQU5UX1gxMSBpcyBkZWZpbmVkLgoJICAgIChBbGV4ZXkgRnJvbG9mZikKRmlsZXM6CSAgICBzcmMvZmVhdHVyZS5oCgpQYXRjaCA2LjIuMDE2ClByb2JsZW06ICAgIFVzaW5nICI6c2NzY29wZSBmaW5kIiB3aXRoICdjc2NvcGVxdWlja2ZpeCcgZG9lcyBub3QgYWx3YXlzIHNwbGl0CgkgICAgdGhlIHdpbmRvdy4gKEdhcnkgSm9obnNvbikKCSAgICBXaW4zMjogIjpjc2NvcGUgYWRkIiBjb3VsZCBtYWtlIHRoZSBzY3JpcHQgdGhhdCBjb250YWlucyBpdAoJICAgIHJlYWQtb25seSB1bnRpbCB0aGUgY29ycmVzcG9uZGluZyAiOmNzY29wZSBraWxsIi4KCSAgICBFcnJvcnMgZHVyaW5nICI6Y3Njb3BlIGFkZCIgbWF5IG5vdCBiZSBoYW5kbGVkIHByb3Blcmx5LgpTb2x1dGlvbjogICBXaGVuIHVzaW5nIHRoZSBxdWlja2ZpeCB3aW5kb3cgbWF5IG5lZWQgdG8gc3BsaXQgdGhlIHdpbmRvdy4KCSAgICBBdm9pZCBmaWxlIGhhbmRsZSBpbmhlcml0YW5jZSBmb3IgdGhlIHNjcmlwdC4KCSAgICBDaGVjayBmb3IgYSBmYWlsZWQgY29ubmVjdGlvbiBhbmQvb3IgcHJvY2Vzcy4gIChTZXJnZXkgS2hvcmV2KQpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMi4wMTcKUHJvYmxlbTogICAgVGVzdDExIHNvbWV0aW1lcyBwcm9tcHRzIHRoZSB1c2VyLCBiZWNhdXNlIGEgZmlsZSB3b3VsZCBoYXZlIGJlZW4KCSAgICBjaGFuZ2VkIG91dHNpZGUgb2YgVmltLiAoQW50b25pbyBDb2xvbWJvKQpTb2x1dGlvbjogICBBZGQgYSBGaWxlQ2hhbmdlZFNoZWxsIGF1dG9jb21tYW5kIHRvIGF2b2lkIHRoZSBwcm9tcHQuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvdGVzdDExLmluCgpQYXRjaCA2LjIuMDE4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlIFhTTVAgcHJvdG9jb2wgYW5kIHJlYWRpbmcgZnJvbSBzdGRpbiBWaW0gbWF5IHdhaXQKCSAgICBmb3IgYSBrZXkgdG8gYmUgcHJlc3NlZC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCBSZWFsV2FpdEZvckNoYXIoKSBpcyB1c2VkIHJlY3Vyc2l2ZWx5LgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4wMTkgKGxhbmcpClByb2JsZW06ICAgIExvYWRpbmcgdGhlIFBvcnR1Z3Vlc2UgbWVudSBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgSm9pbiB0d28gbGluZXMuICAoSm9zZSBQZWRybyBPbGl2ZWlyYSwgSm9z6SBkZSBQYXVsYSkKRmlsZXM6CSAgICBydW50aW1lL2xhbmcvbWVudV9wdF9ici52aW0KClBhdGNoIDYuMi4wMjAKUHJvYmxlbTogICAgVGhlICJTeW50YXgvU2V0IHN5bnRheCBvbmx5IiBtZW51IGl0ZW0gY2F1c2VzIGFuIGVycm9yIG1lc3NhZ2UuCgkgICAgKE95dmluZCBIb2xtKQpTb2x1dGlvbjogICBTZXQgdGhlIHNjcmlwdC1sb2NhbCB2YXJpYWJsZSBpbiBhIGZ1bmN0aW9uLiAoQmVuamkgRmlzaGVyKQpGaWxlczoJICAgIHJ1bnRpbWUvc3lubWVudS52aW0KClBhdGNoIDYuMi4wMjEKUHJvYmxlbTogICAgVGhlIHVzZXIgbWFudWFsIHNlY3Rpb24gb24gZXhjZXB0aW9ucyBjb250YWlucyBzbWFsbCBtaXN0YWtlcy4KU29sdXRpb246ICAgR2l2ZSBhIGdvb2QgZXhhbXBsZSBvZiBhbiBlcnJvciB0aGF0IGNvdWxkIGJlIG1pc3NlZCBhbmQgb3RoZXIKCSAgICBpbXByb3ZlbWVudHMuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3Vzcl80MS50eHQKClBhdGNoIDYuMi4wMjIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQWZ0ZXIgZGVsZXRpbmcgYSBtZW51IGl0ZW0gaXQgc3RpbGwgYXBwZWFycyBpbiBhIHRlYXItb2ZmCgkgICAgd2luZG93LgpTb2x1dGlvbjogICBTZXQgdGhlIG1vZGUgdG8gemVybyBmb3IgdGhlIGRlbGV0ZWQgaXRlbS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjIuMDIzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IE1ha2VfaXZjLm1hayBkb2VzIG5vdCBjbGVhbiBldmVyeXRoaW5nLgpTb2x1dGlvbjogICBEZWxldGUgbW9yZSBmaWxlcyBpbiB0aGUgY2xlYW4gcnVsZS4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9NYWtlX2l2Yy5tYWsKClBhdGNoIDYuMi4wMjQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ29tcGlsZXIgd2FybmluZ3MgZm9yIHR5cGVjYXN0cy4KU29sdXRpb246ICAgVXNlIERXT1JEIGluc3RlYWQgb2YgV09SRC4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMi4wMjUKUHJvYmxlbTogICAgTWlzc2luZyBwcm90b3R5cGUgZm9yIHNpZ2FsdHN0YWNrKCkuClNvbHV0aW9uOiAgIEFkZCB0aGUgcHJvdG90eXBlIHdoZW4gaXQgaXMgbm90IGZvdW5kIGluIGEgaGVhZGVyIGZpbGUuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAyNgpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1dGltZXMoKSBhcmd1bWVudC4KU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMDI3ClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuClNvbHV0aW9uOiAgIFNldCBtYl9sIHRvIG9uZSB3aGVuIG5vdCB1c2luZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4yLjAyOApQcm9ibGVtOiAgICBDc2NvcGUgY29ubmVjdGlvbiBtYXkga2lsbCBWaW0gcHJvY2VzcyBhbmQgb3RoZXJzLgpTb2x1dGlvbjogICBDaGVjayBmb3IgcGlkIGJlaW5nIGxhcmdlciB0aGFuIG9uZS4gKEtob3JldiBTZXJnZXkpCkZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jCgpQYXRjaCA2LjIuMDI5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlIHJlbW90ZSBzZXJ2ZXIgZnVuY3Rpb25hbGl0eSBWaW0gbWF5IGxlYWsgbWVtb3J5LgoJICAgIChTcmlrYW50aCBTYW5rYXJhbikKU29sdXRpb246ICAgRnJlZSB0aGUgcmVzdWx0IG9mIFhMaXN0UHJvcGVydGllcygpLgpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMKClBhdGNoIDYuMi4wMzAKUHJvYmxlbTogICAgTWFjOiBXYXJuaW5nIGZvciBub3QgYmVpbmcgYWJsZSB0byB1c2UgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzLgpTb2x1dGlvbjogICBEb24ndCByZWRlZmluZSBzZWxlY3QuICBVc2UgLW5vLWNwcC1wcmVjb21wIGZvciBjb21waWxpbmcsIHNvIHRoYXQKCSAgICBmdW5jdGlvbiBwcm90b3R5cGVzIGFyZSBzdGlsbCBmb3VuZC4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jLCBzcmMvb3NkZWYuc2gKClBhdGNoIDYuMi4wMzEKUHJvYmxlbTogICAgVGhlIGxhbmdtZW51IGVudHJ5IGluIHRoZSBvcHRpb25zIHdpbmRvdyBkb2Vzbid0IHdvcmsuIChSb2RvbGZvCgkgICAgTGltYSkKCSAgICBXaXRoIEdUSyAxIHRoZSAiOm9wdGlvbnMiIGNvbW1hbmQgY2F1c2VzIGFuIGVycm9yIG1lc3NhZ2UuCgkgICAgKE1pY2hhZWwgTmF1bWFubikKU29sdXRpb246ICAgQ2hhbmdlICJsbWVudSIgdG8gImxhbmdtZW51Ii4gIE9ubHkgZGlzcGxheSB0aGUgJ3RiaXMnIG9wdGlvbiBmb3IKCSAgICBHVEsgMi4KRmlsZXM6CSAgICBydW50aW1lL29wdHdpbi52aW0KClBhdGNoIDYuMi4wMzIKUHJvYmxlbTogICAgVGhlIGxwYyBmaWxldHlwZSBpcyBuZXZlciByZWNvZ25pemVkLiAoU2hpemh1IFBhbikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGc6bHBjX3N5bnRheF9mb3JfYyBpbnN0ZWFkIG9mIHRoZSBsb2NhbCB2YXJpYWJsZQoJICAgIGxwY19zeW50YXhfZm9yX2MuIChCZW5qaSBGaXNoZXIpCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMi4wMzMgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IFZhcmlvdXMgY29tcGlsZXIgd2FybmluZ3MuClNvbHV0aW9uOiAgIERvbid0IGluY2x1ZGUgQ2xhc3NpYy1vbmx5IGhlYWRlcnMgaW4gVW5peCB2ZXJzaW9uLgoJICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIHNldmVyYWwgdW51c2VkIHZhcmlhYmxlcy4gKEJlbiBGb3dsZXIpCgkgICAgRml4IGRvdWJsZSBkZWZpbml0aW9uIG9mIERFRkFVTFRfVEVSTS4KCSAgICBVc2UgaW50IGluc3RlYWQgb2YgdW5zaWduZWQgc2hvcnQgZm9yIHBpeGVsIHZhbHVlcywgc28gdGhhdCB0aGUKCSAgICBuZWdhdGl2ZSBlcnJvciB2YWx1ZXMgYXJlIHJlY29nbml6ZWQuCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4yLjAzNApQcm9ibGVtOiAgICBNYWM6IENvbXBpbGVyIHdhcm5pbmcgZm9yIHJlZGVmaW5pbmcgREVGQVVMVF9URVJNLgpTb2x1dGlvbjogICBGaXggZG91YmxlIGRlZmluaXRpb24gb2YgREVGQVVMVF9URVJNLgpGaWxlczoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMi4wMzUKUHJvYmxlbTogICAgTWFjOiBDb21waWxlciB3YXJuaW5ncyBpbiBQeXRob24gaW50ZXJmYWNlLgpTb2x1dGlvbjogICBNYWtlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIHB1cmUgTWFjIGFuZCBVbml4LU1hYy4gKFBldGVyIEN1Y2thKQpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjAzNiAoZXh0cmEpClByb2JsZW06ICAgIE1hYyBVbml4IHZlcnNpb246IElmIGZvbyBpcyBhIGRpcmVjdG9yeSwgdGhlbiAiOmUgZjxUYWI+IiBzaG91bGQKCSAgICBleHBhbmQgdG8gIjplIGZvby8iIGluc3RlYWQgb2YgIjplIGZvbyIgLiAgKFZhZGltIFplaXRsaW4pClNvbHV0aW9uOiAgIERlZmluZSBET05UX0FERF9QQVRIU0VQX1RPX0RJUiBvbmx5IGZvciBwdXJlIE1hYy4gKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBzcmMvb3NfbWFjLmgKClBhdGNoIDYuMi4wMzcKUHJvYmxlbTogICAgV2luMzI6IGNvbnZlcnRpbmcgYW4gZW5jb2RpbmcgbmFtZSB0byBhIGNvZGVwYWdlIGNvdWxkIHJlc3VsdCBpbgoJICAgIGFuIGFyYml0cmFyeSBudW1iZXIuClNvbHV0aW9uOiAgIG1ha2UgZW5jbmFtZTJjb2RlcGFnZSgpIHJldHVybiB6ZXJvIGlmIHRoZSBlbmNvZGluZyBuYW1lIGRvZXNuJ3QKCSAgICBjb250YWluIGEgY29kZXBhZ2UgbnVtYmVyLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuMDM4IChleHRyYSkKUHJvYmxlbTogICAgV2FybmluZyBtZXNzYWdlcyB3aGVuIHVzaW5nIHRoZSBNaW5nVyBjb21waWxlci4gKEJpbGwgTWNDYXJ0aHkpCgkgICAgQ2FuJ3QgY29tcGlsZSBjb25zb2xlIHZlcnNpb24gd2l0aG91dCArbW91c2UgZmVhdHVyZS4KU29sdXRpb246ICAgSW5pdGlhbGl6ZSB2YXJpYWJsZXMsIGFkZCBwYXJlbnRoZXNpcy4KCSAgICBBZGQgYW4gI2lmZGVmIGFyb3VuZCBnX25Nb3VzZUNsaWNrLiAoQWppdCBUaGFra2FyKQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9vc193aW4zMi5jLCBzcmMvZ3VpX3czMi5jLCBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjIuMDM5IChleHRyYSkKUHJvYmxlbTogICAgTW9yZSB3YXJuaW5nIG1lc3NhZ2VzIHdoZW4gdXNpbmcgdGhlIE1pbmdXIGNvbXBpbGVyLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHZhcmlhYmxlcy4gKEJpbGwgTWNDYXJ0aHkpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi4wNDAKUHJvYmxlbTogICAgRnJlZUJTRDogQ3Jhc2ggd2hpbGUgc3RhcnRpbmcgdXAgd2hlbiBjb21waWxlZCB3aXRoICt4c21wIGZlYXR1cmUuClNvbHV0aW9uOiAgIFBhc3MgYSBub24tTlVMTCBhcmd1bWVudCB0byBJY2VBZGRDb25uZWN0aW9uV2F0Y2goKS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDQxIChleHRyYSwgYWZ0ZXIgNi4yLjAzMykKUHJvYmxlbTogICAgTWFjOiBDb21waWxlciB3YXJuaW5ncyBmb3IgY29udmVyc2lvbiB0eXBlcywgbWlzc2luZyBwcm90b3R5cGUsCgkgICAgbWlzc2luZyByZXR1cm4gdHlwZS4KU29sdXRpb246ICAgQ2hhbmdlIHNzY2FuZiAiJWhkIiB0byAiJWQiLCB0aGUgYXJndW1lbnQgaXMgYW4gaW50IG5vdy4gIEFkZAoJICAgIGd1aV9tY2hfaW5pdF9jaGVjaygpIHByb3RvdHlwZS4gIEFkZCAiaW50IiB0byB0ZXJtbGliIGZ1bmN0aW9ucy4KRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvcHJvdG8vZ3VpX21hYy5wcm8sIHNyYy90ZXJtbGliLmMuCgpQYXRjaCA2LjIuMDQyIChleHRyYSkKUHJvYmxlbTogICAgQ3lnd2luOiBnY2MgMy4yIGhhcyBhbiBvcHRpbWl6ZXIgcHJvYmxlbSwgc29tZXRpbWVzIGNhdXNpbmcgYQoJICAgIGNyYXNoLgpTb2x1dGlvbjogICBBZGQgLWZuby1zdHJlbmd0aC1yZWR1Y2UgdG8gdGhlIGNvbXBpbGVyIGFyZ3VtZW50cy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrCgpQYXRjaCA2LjIuMDQzClByb2JsZW06ICAgIENvbXBpbGluZyB3aXRoIGJvdGggbmV0YmVhbnMgYW5kIHdvcmtzaG9wIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgTW92ZSB0aGUgc2hlbGxSZWN0YW5nbGUoKSBmdW5jdGlvbiB0byBndWlfeDExLmMuIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9ndWlfeDExLmMsIHNyYy9pbnRlZ3JhdGlvbi5jLCBzcmMvbmV0YmVhbnMuYywKCSAgICBzcmMvcHJvdG8vbmV0YmVhbnMucHJvCgpQYXRjaCA2LjIuMDQ0ClByb2JsZW06ICAgICI6YXUgZmlsZXR5cGVkZXRlY3QiIGdpdmVzIGFuIGVycm9yIGZvciBhIG5vbi1leGlzdGluZyBldmVudCBuYW1lLAoJICAgIGJ1dCBpdCdzIGFjdHVhbGx5IGEgbm9uLWV4aXN0aW5nIGdyb3VwIG5hbWUuIChBbnRvaW5lIE1lY2hlbHluY2spClNvbHV0aW9uOiAgIE1ha2UgdGhlIGVycm9yIG1lc3NhZ2UgY2xlYXJlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4wNDUKUHJvYmxlbTogICAgT2J0YWluaW5nIHRoZSAnKCBtYXJrIGNoYW5nZXMgdGhlICcnIG1hcmsuIChHYXJ5IEhvbGxvd2F5KQpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlICcnIG1hcmsgd2hlbiBzZWFyY2hpbmcgZm9yIHRoZSBzdGFydC9lbmQgb2YgdGhlCgkgICAgY3VycmVudCBzZW50ZW5jZS9wYXJhZ3JhcGguCkZpbGVzOgkgICAgc3JjL21hcmsuYwoKUGF0Y2ggNi4yLjA0NgpQcm9ibGVtOiAgICBXaGVuIGV2YWx1YXRpbmcgYW4gYXJndW1lbnQgb2YgYSBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uIHRoZQoJICAgIGZ1bmN0aW9uIGlzIHN0aWxsIGNhbGxlZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBjYWxsIHRoZSBmdW5jdGlvbiB3aGVuIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4wNDcgKGV4dHJhKQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyB3aGVuIHVzaW5nIE1pbmdXLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgR2l2ZSB0aGUgc19kd0xhc3RDbGlja1RpbWUgdmFyaWFibGUgYSB0eXBlLiAgSW5pdGlhbGl6ZSBkd0VuZFRpbWUuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4wNDgKUHJvYmxlbTogICAgVGhlIFB5dGhvbiBpbnRlcmZhY2UgZG9lc24ndCBjb21waWxlIHdpdGggUHl0aG9uIDIuMyB3aGVuCgkgICAgZHluYW1pY2FsbHkgbG9hZGVkLgpTb2x1dGlvbjogICBVc2UgZGxsX1B5T2JqZWN0X01hbGxvYyBhbmQgZGxsX1B5T2JqZWN0X0ZyZWUuIChQYXVsIE1vb3JlKQpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjA0OQpQcm9ibGVtOiAgICBVc2luZyBhICItcmFuZ2U9IiBhcmd1bWVudCB3aXRoICI6Y29tbWFuZCIgZG9lc24ndCB3b3JrIGFuZAoJICAgIGRvZXNuJ3QgZ2VuZXJhdGUgYW4gZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgR2VuZXJhdGUgYW4gZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjA1MApQcm9ibGVtOiAgICBUZXN0IDMyIGRpZG4ndCB3b3JrIG9uIE1TLVdpbmRvd3MuClNvbHV0aW9uOiAgIFdyaXRlIHRoZSB0ZW1wIGZpbGUgaW4gVW5peCBmaWxlZm9ybWF0LiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvdGVzdDMyLmluCgpQYXRjaCA2LjIuMDUxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIlw9c3VibWF0Y2goMCkiIGluIGEgIjpzIiBjb21tYW5kLCBsaW5lIGJyZWFrcyBiZWNvbWUKCSAgICBOVUwgY2hhcmFjdGVycy4KU29sdXRpb246ICAgQ2hhbmdlIE5MIHRvIENSIGNoYXJhY3RlcnMsIHNvIHRoYXQgdGhleSBiZWNvbWUgbGluZSBicmVha3MuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuMDUyClByb2JsZW06ICAgIEEgZmV3IG1lc3NhZ2VzIGFyZSBub3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgQWRkIF8oKSB0byB0aGUgbWVzc2FnZXMuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjA1MwpQcm9ibGVtOiAgICBQcm90b3R5cGUgZm9yIGJ6ZXJvKCkgZG9lc24ndCBtYXRjaCBtb3N0IHN5c3RlbXMuClNvbHV0aW9uOiAgIFVzZSAidm9pZCAqIiBpbnN0ZWFkIG9mICJjaGFyICoiIGFuZCAic2l6ZV90IiBpbnN0ZWFkIG9mICJpbnQiLgpGaWxlczoJICAgIHNyYy9vc2RlZjEuaC5pbgoKUGF0Y2ggNi4yLjA1NApQcm9ibGVtOiAgICBBIGRvdWJsZS1ieXRlIGNoYXJhY3RlciB3aXRoIGEgc2Vjb25kIGJ5dGUgdGhhdCBpcyBhIGJhY2tzbGFzaAoJICAgIGNhdXNlcyBwcm9ibGVtcyBpbnNpZGUgYSBzdHJpbmcuClNvbHV0aW9uOiAgIFNraXAgb3ZlciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcgcHJvcGVybHkuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMDU1ClByb2JsZW06ICAgIFVzaW5nIGNvbCgnLicpIGZyb20gQ1RSTC1PIGluIEluc2VydCBtb2RlIGRvZXMgbm90IHJldHVybiB0aGUKCSAgICBjb3JyZWN0IHZhbHVlIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIGl0IGlzIG5lY2Vzc2FyeSwgbW92ZSB0byB0aGUKCSAgICBmaXJzdCBieXRlIG9mIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjA1NiAoZXh0cmEpClByb2JsZW06ICAgIEJ1aWxkaW5nIHdpdGggU25pZmYrKyBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIFVzZSB0aGUgbXVsdGktdGhyZWFkZWQgbGliYyB3aGVuIG5lZWRlZC4gKEhvbGdlciBEaXR0aW5nKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMi4wNTcgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IFdpdGggLURNQUNPU19YIHB1dGVudigpIGlzIGRlZmluZWQgdHdpY2UsIGl0IGlzIGluIGEgc3lzdGVtCgkgICAgbGlicmFyeS4gIEdldCBhIHdhcm5pbmcgZm9yIHJlZGVmaW5pbmcgT0suICBVbnVzZWQgdmFyaWFibGVzIGluCgkgICAgb3NfbWFjLmMKU29sdXRpb246ICAgRGVmaW5lIEhBVkVfUFVURU5WLiAgVW5kZWZpbmUgT0sgYWZ0ZXIgaW5jbHVkaW5nIGN1cnNlcy5oLgoJICAgIFJlbW92ZSBkZWNsYXJhdGlvbnMgZm9yIHVudXNlZCB2YXJpYWJsZXMuCkZpbGVzOgkgICAgc3JjL29zX21hYy5jLCBzcmMvb3NfbWFjLmgsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjA1OApQcm9ibGVtOiAgICBXaGVuICdhdXRvY2hkaXInIGlzIHNldCAiOmJuZXh0IiB0byBhIGJ1ZmZlciB3aXRob3V0IGEgbmFtZSBjYXVzZXMKCSAgICBhIGNyYXNoLgpTb2x1dGlvbjogICBEb24ndCBjYWxsIHZpbV9jaGRpcmZpbGUoKSB3aGVuIHRoZSBmaWxlIG5hbWUgaXMgTlVMTC4gKFRhcm8KCSAgICBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yLjA1OQpQcm9ibGVtOiAgICBXaGVuICdzY3JvbGxvZmYnIGlzIGEgbGFyZ2UgbnVtYmVyIGFuZCBsaXN0aW5nIGNvbXBsZXRpb24gcmVzdWx0cwoJICAgIG9uIHRoZSBjb21tYW5kIGxpbmUsIHRoZW4gZXhlY3V0aW5nIGEgY29tbWFuZCB0aGF0IGp1bXBzIGNsb3NlIHRvCgkgICAgd2hlcmUgdGhlIGN1cnNvciB3YXMgYmVmb3JlLCBwYXJ0IG9mIHRoZSBzY3JlZW4gaXMgbm90IHVwZGF0ZWQuCgkgICAgKFlha292IExlcm5lcikKU29sdXRpb246ICAgRG9uJ3Qgc2tpcCByZWRyYXdpbmcgcGFydCBvZiB0aGUgd2luZG93IHdoZW4gaXQgd2FzIHNjcm9sbGVkLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjA2MCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuICdlbmNvZGluZycgaXMgc2V0IHRvICJpc28tODg1OS03IiBjb3B5L3Bhc3RlIHRvL2Zyb20KCSAgICB0aGUgY2xpcGJvYXJkIGdpdmVzIGEgbGFsbG9jKDApIGVycm9yLiAoS3JpdG9uIEt5cmltaXMpClNvbHV0aW9uOiAgIFdoZW4gdGhlIHN0cmluZyBsZW5ndGggaXMgemVybyBhbGxvY2F0ZSBvbmUgYnl0ZS4gIEFsc28gZml4IHRoYXQKCSAgICB3aGVuIHRoZSBsZW5ndGggb2YgdGhlIFVuaWNvZGUgdGV4dCBpcyB6ZXJvIChjb252ZXJzaW9uIGZyb20KCSAgICAnZW5jb2RpbmcnIHRvIFVDUy0yIHdhcyBub3QgcG9zc2libGUpIHRoZSBub3JtYWwgdGV4dCBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuMDYxClByb2JsZW06ICAgIEdVSTogVXNpbmcgdGhlIGxlZnQgbW91c2UgYnV0dG9uIHdpdGggdGhlIHNoaWZ0IGtleSBzaG91bGQgd29yawoJICAgIGxpa2UgIioiIGJ1dCBpdCBzY3JvbGxzIGluc3RlYWQuIChNYXJ0aW4gQmVsbGVyKQpTb2x1dGlvbjogICBEb24ndCByZWNvZ25pemUgYW4gcnh2dCBzY3JvbGwgd2hlZWwgZXZlbnQgd2hlbiB1c2luZyB0aGUgR1VJLgpGaWxlczoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMi4wNjIKUHJvYmxlbTogICAgV2hlbiBvbmUgYnVmZmVyIHVzZXMgYSBzeW50YXggd2l0aCAiY29udGFpbmVkaW4iIGFuZCBhbm90aGVyCgkgICAgYnVmZmVyIGRvZXMgbm90LCByZWRyYXdpbmcgZGVwZW5kcyBvbiB3aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciBpcy4KCSAgICAoQnJldHQgUGVyc2hpbmcgU3RhaGxtYW4pClNvbHV0aW9uOiAgIFVzZSAic3luX2J1ZiIgaW5zdGVhZCBvZiAiY3VyYnVmIiB0byBnZXQgdGhlIGJfc3luX2NvbnRhaW5lZGluCgkgICAgZmxhZy4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi4wNjMKUHJvYmxlbTogICAgV2hlbiB1c2luZyBjdXN0b20gY29tcGxldGlvbiBlbmQgdXAgd2l0aCBubyBtYXRjaGVzLgpTb2x1dGlvbjogICBNYWtlIGNtZF9udW1maWxlcyBhbmQgY21kX2ZpbGVzIGxvY2FsIHRvIGNvbXBsZXRpb24gdG8gYXZvaWQgdGhhdAoJICAgIHRoZXkgYXJlIG92ZXJ3cml0dGVuIHdoZW4gRXhwYW5kT25lKCkgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5IGJ5CgkgICAgZl9nbG9iKCkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvcHJvdG8vZXhfZ2V0bG4ucHJvLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvc3RydWN0cy5oLCBzcmMvdGFnLmMKClBhdGNoIDYuMi4wNjQKUHJvYmxlbTogICAgcmVzb2x2ZSgpIG9ubHkgaGFuZGxlcyBvbmUgc3ltYm9saWMgbGluaywgbmVlZCB0byByZXBlYXQgaXQgdG8KCSAgICByZXNvbHZlIGFsbCBvZiB0aGVtLiAgVGhlbiBuZWVkIHRvIHNpbXBsaWZ5IHRoZSBmaWxlIG5hbWUuClNvbHV0aW9uOiAgIE1ha2UgcmVzb2x2ZSgpIHJlc29sdmUgYWxsIHN5bWJvbGljIGxpbmtzIGFuZCBzaW1wbGlmeSB0aGUgcmVzdWx0LgoJICAgIEFkZCBzaW1wbGlmeSgpIHRvIGp1c3Qgc2ltcGxpZnkgYSBmaWxlIG5hbWUuICBGaXggdGhhdCB0ZXN0NDkKCSAgICBkb2Vzbid0IHdvcmsgaWYgL3RtcCBpcyBhIHN5bWJvbGljIGxpbmsuICAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYywgc3JjL3RhZy5jLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMi4wNjUKUHJvYmxlbTogICAgIjp3aW5kbyAxMjMiIG9ubHkgdXBkYXRlcyBvdGhlciB3aW5kb3dzIHdoZW4gZW50ZXJpbmcgdGhlbS4KCSAgICAoV2FsdGVyIEJyaXNjb2UpClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgdG9wbGluZSBiZWZvcmUgZ29pbmcgdG8gdGhlIG5leHQgd2luZG93LgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuMDY2IChleHRyYSkKUHJvYmxlbTogICAgUnVieSBpbnRlcmZhY2UgZG9lc24ndCB3b3JrIHdpdGggUnVieSAxLjguMC4KU29sdXRpb246ICAgQ2hhbmdlICJkZWZvdXQiIHRvICJzdGRvdXQiLiAoQXJvbiBHcmlmaXMpCgkgICAgQ2hhbmdlIGR5bmFtaWMgbG9hZGluZy4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvaWZfcnVieS5jLCBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjIuMDY3ClByb2JsZW06ICAgIFdoZW4gc2VhcmNoaW5nIGZvciBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoIGEgY29tcG9zaW5nIGNoYXJhY3RlcgoJICAgIHRoZSBjb21tYW5kIGxpbmUgaXNuJ3QgZHJhd24gcHJvcGVybHkuClNvbHV0aW9uOiAgIERvbid0IGNvdW50IHRoZSBzcGFjZSB0byBkcmF3IHRoZSBjb21wb3NpbmcgY2hhcmFjdGVyIG9uIGFuZAoJICAgIGFkanVzdCB0aGUgY3Vyc29yIGNvbHVtbiBhZnRlciBkcmF3aW5nIHRoZSBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4yLjA2OApQcm9ibGVtOiAgICBFdmVudHMgZm9yIHRoZSBuZXRiZWFucyBpbnRlcmZhY2UgdGhhdCBpbmNsdWRlIGEgZmlsZSBuYW1lIHdpdGgKCSAgICBzcGVjaWFsIGNoYXJhY3RlcnMgZG9uJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgVXNlIG5iX3F1b3RlKCkgb24gdGhlIGZpbGUgbmFtZS4gKFNlcmdleSBLaG9yZXYpCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4wNjkgKGFmdGVyIDYuMi4wNjQpClByb2JsZW06ICAgIFVudXNlZCB2YXJpYWJsZXMgImxpbWl0IiBhbmQgIm5ld19zdCIgYW5kIHVudXNlZCBsYWJlbCAiZmFpbCIgaW4KCSAgICBzb21lIHNpdHVhdGlvbi4gKEJpbGwgTWNDYXJ0aHkpClNvbHV0aW9uOiAgIFB1dCB0aGUgZGVjbGFyYXRpb25zIGluc2lkZSBhbiAjaWZkZWYuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjA3MCAoYWZ0ZXIgNi4yLjA2OSkKUHJvYmxlbTogICAgU3RpbGwgdW51c2VkIHZhcmlhYmxlICJuZXdfc3QiLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgTW92ZSB0aGUgZGVjbGFyYXRpb24gdG8gdGhlIHJpZ2h0IGJsb2NrIHRoaXMgdGltZS4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4wNzEKUHJvYmxlbTogICAgJ3N0YXR1c2xpbmUnIGNhbiBvbmx5IGNvbnRhaW4gNTAgJSBpdGVtcy4gKEFudG9ueSBTY3JpdmVuKQpTb2x1dGlvbjogICBBbGxvdyA4MCBpdGVtcyBhbmQgbWVudGlvbiBpdCBpbiB0aGUgZG9jcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb24udHh0LCBzcmMvdmltLmgKClBhdGNoIDYuMi4wNzIKUHJvYmxlbTogICAgV2hlbiB1c2luZyBleHByZXNzaW9uIGZvbGRpbmcsIGZvbGRleHByKCkgbW9zdGx5IHJldHVybnMgLTEgZm9yCgkgICAgdGhlIHByZXZpb3VzIGxpbmUsIHdoaWNoIG1ha2VzIGl0IGRpZmZpY3VsdCB0byB3cml0ZSBhIGZvbGQKCSAgICBleHByZXNzaW9uLgpTb2x1dGlvbjogICBNYWtlIHRoZSBsZXZlbCBvZiB0aGUgcHJldmlvdXMgbGluZSBhdmFpbGFibGUgd2hpbGUgc3RpbGwgbG9va2luZwoJICAgIGZvciB0aGUgZW5kIG9mIGEgZm9sZC4KRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjIuMDczClByb2JsZW06ICAgIFdoZW4gYWRkaW5nIGRldGVjdGlvbiBvZiBhIHNwZWNpZmljIGZpbGV0eXBlIGZvciBhIHBsdWdpbiB5b3UgbmVlZAoJICAgIHRvIGVkaXQgImZpbGV0eXBlLnZpbSIuClNvbHV0aW9uOiAgIFNvdXJjZSBmaWxlcyBmcm9tIHRoZSAiZnRkZXRlY3QiIGRpcmVjdG9yeSwgc28gdGhhdCBhIGZpbGV0eXBlCgkgICAgZGV0ZWN0aW9uIHBsdWdpbiBvbmx5IG5lZWRzIHRvIGJlIGRyb3BwZWQgaW4gYSBkaXJlY3RvcnkuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZmlsZXR5cGUudHh0LCBydW50aW1lL2RvYy91c3JfMDUudHh0LAoJICAgIHJ1bnRpbWUvZG9jL3Vzcl80MS50eHQsIHJ1bnRpbWUvZmlsZXR5cGUudmltCgpQYXRjaCA2LjIuMDc0ClByb2JsZW06ICAgIFdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIHRoZSBQeXRob24gaW50ZXJmYWNlLiAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBVc2UgQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMDc1ClByb2JsZW06ICAgIFdoZW4gdGhlIHRlbXAgZmlsZSBmb3Igd3JpdGluZyB2aW1pbmZvIGNhbid0IGJlIHVzZWQgIk5VTEwiCgkgICAgYXBwZWFycyBpbiB0aGUgZXJyb3IgbWVzc2FnZS4gKEJlbiBMYXZlbmRlcikKU29sdXRpb246ICAgUHJpbnQgdGhlIG9yaWdpbmFsIGZpbGUgbmFtZSB3aGVuIHRoZXJlIGlzIG5vIHRlbXAgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4wNzYKUHJvYmxlbTogICAgVGhlIHRhZ3MgbGlzdGVkIGZvciBjc2NvcGUgYXJlIGluIHRoZSB3cm9uZyBvcmRlci4gKEpvaGFubmVzCgkgICAgU3RlemVuYmFjaCkKU29sdXRpb246ICAgUmVtb3ZlIHRoZSByZW9yZGVyaW5nIG9mIHRhZ3MgZm9yIHRoZSBjdXJyZW50IGZpbGUuIChTZXJnZXkKCSAgICBLaG9yZXYpCkZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jCgpQYXRjaCA2LjIuMDc3ClByb2JsZW06ICAgIFdoZW4gYSB1c2VyIGZ1bmN0aW9uIHNwZWNpZmllcyBjdXN0b20gY29tcGxldGlvbiwgdGhlIGZ1bmN0aW9uCgkgICAgZ2V0cyBhIHplcm8gYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcgd2hlbiB0aGVyZSBpcyBubwoJICAgIHdvcmQgYmVmb3JlIHRoZSBjdXJzb3IuIChQcmViZW4gR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IGNvbnZlcnQgYW4gZW1wdHkgc3RyaW5nIHRvIGEgemVyby4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMDc4ClByb2JsZW06ICAgICJtYWtlIHRlc3QiIGRvZXNuJ3Qgd29yayBpZiBWaW0gd2Fzbid0IGNvbXBpbGVkIHlldC4gKEVkIEF2aXMpClNvbHV0aW9uOiAgIEJ1aWxkIFZpbSBiZWZvcmUgcnVubmluZyB0aGUgdGVzdHMuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMDc5ClByb2JsZW06ICAgICI6dyArK2VuYz11dGYtOCAhY21kIiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgIisrIiBhcmd1bWVudCBiZWZvcmUgdGhlICIhIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjA4MApQcm9ibGVtOiAgICBXaGVuICd0X3RpJyBpcyBub3QgZW1wdHkgYnV0IGRvZXNuJ3Qgc3dhcCBzY3JlZW5zLCB1c2luZyAiWloiIGluCgkgICAgYW4gdW5tb2RpZmllZCBmaWxlIGRvZXNuJ3QgY2xlYXIgdGhlIGxhc3QgbGluZS4KU29sdXRpb246ICAgQ2FsbCBtc2dfY2xyX2VvcygpIHdoZW4gbmVlZGVkLiAoTWljaGFlbCBTY2hyb2VkZXIpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjA4MQpQcm9ibGVtOiAgICBQcm9ibGVtIHdoZW4gdXNpbmcgYSBsb25nIG11bHRpYnl0ZSBzdHJpbmcgZm9yIHRoZSBzdGF0dXNsaW5lLgpTb2x1dGlvbjogICBVc2UgdGhlIHJpZ2h0IHBvaW50ZXIgdG8gZ2V0IHRoZSBjZWxsIHNpemUuIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMDgyClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aCBQZXJsIDUuOC4xLgpTb2x1dGlvbjogICBSZW5hbWUgImVfbnVtYmVyIiB0byAiZV9udW1iZXJfZXhwIi4gKFNhc2NoYSBCbGFuaykKRmlsZXM6CSAgICBzcmMvZGlncmFwaC5jLCBzcmMvZ2xvYmFscy5oCgpQYXRjaCA2LjIuMDgzClByb2JsZW06ICAgIFdoZW4gYSBjb21waWxlciB1c2VzIF5eXl4gdG8gbWFyayBhIHdvcmQgdGhlIGluZm9ybWF0aW9uIGlzIG5vdAoJICAgIHZpc2libGUgaW4gdGhlIHF1aWNrZml4IHdpbmRvdy4gKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBEb24ndCByZW1vdmUgdGhlIGluZGVudCBmb3IgYSBsaW5lIHRoYXQgaXMgbm90IHJlY29nbml6ZWQgYXMgYW4KCSAgICBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjIuMDg0ClByb2JsZW06ICAgICJnXyIgaW4gVmlzdWFsIG1vZGUgYWx3YXlzIGdvZXMgdG8gdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgbGluZS4KCSAgICAoSmVhbi1SZW5lIERhdmlkKQpTb2x1dGlvbjogICBJZ25vcmUgdGhlIE5VTCBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjA4NQpQcm9ibGVtOiAgICAiOnZlcmJvc2Ugc2V0IHRzIiBkb2Vzbid0IHNheSBhbiBvcHRpb24gd2FzIHNldCB3aXRoIGEgIi1jIiBvcgoJICAgICItLWNtZCIgYXJndW1lbnQuClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSBvcHRpb24gd2FzIHNldCBmcm9tIGEgVmltIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4wODYKUHJvYmxlbTogICAgInsiIGFuZCAifSIgc3RvcCBpbnNpZGUgYSBjbG9zZWQgZm9sZC4KU29sdXRpb246ICAgT25seSBzdG9wIG9uY2UgaW5zaWRlIGEgY2xvc2VkIGZvbGQuIChTdGVwaGVuIFJpZWhtKQpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4yLjA4NwpQcm9ibGVtOiAgICBDVFJMLV4gZG9lc24ndCB1c2UgdGhlICdjb25maXJtJyBvcHRpb24uICBTYW1lIHByb2JsZW0gd2l0aAoJICAgICI6Ym5leHQiLiAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBQdXQgdXAgYSBkaWFsb2cgZm9yIGEgY2hhbmdlZCBmaWxlIHdoZW4gJ2NvbmZpcm0nIGlzIHNldCBpbiBtb3JlCgkgICAgc2l0dWF0aW9ucy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4wODgKUHJvYmxlbTogICAgV2hlbiAnc2lkZXNjcm9sbG9mZicgaXMgc2V0ICdzaG93bWF0Y2gnIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgaWYKCSAgICB0aGUgbWF0Y2ggaXMgbGVzcyB0aGFuICdzaWRlc2Nyb2xsb2ZmJyBvZmYgZnJvbSB0aGUgc2lkZSBvZiB0aGUKCSAgICB3aW5kb3cuICAoUm9sYW5kIFN0YWhuKQpTb2x1dGlvbjogICBTZXQgJ3NpZGVzY3JvbGxvZmYnIHRvIHplcm8gd2hpbGUgZGlzcGxheWluZyB0aGUgbWF0Y2guCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuMDg5ClByb2JsZW06ICAgICI6c2V0IGlzays9IiBhZGRzIGEgY29tbWEuIChNYXJrIFdhZ2dvbmVyKQpTb2x1dGlvbjogICBEb24ndCBhZGQgYSBjb21tYSB3aGVuIHRoZSBhZGRlZCB2YWx1ZSBpcyBlbXB0eS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4wOTAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogTWluZ1cgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICNwcmFnbWFzLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgUHV0IGFuICNpZmRlZiBhcm91bmQgdGhlICNwcmFnbWFzLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMDkxClByb2JsZW06ICAgIFdoZW4gYW4gYXV0b2NvbW1hbmQgaXMgdHJpZ2dlcmVkIHdoZW4gYSBmaWxlIGlzIGRyb3BwZWQgb24gVmltIGFuZAoJICAgIGl0IHByb2R1Y2VzIG91dHB1dCwgbWVzc2FnZXMgZnJvbSBhIGZvbGxvd2luZyBjb21tYW5kIG1heSBiZQoJICAgIHNjcm9sbGVkIHVuZXhwZWN0ZWRseS4gKERhdmlkIFJlbm5hbGxzKQpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIG1zZ19zY3JvbGwgaW4gaGFuZGxlX2Ryb3AoKS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjA5MgpQcm9ibGVtOiAgICBJbnZhbGlkIGl0ZW1zIGFwcGVhciBpbiB0aGUgaGVscCBmaWxlIHRhZ3MuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIE9ubHkgYWNjZXB0IHRhZ3Mgd2l0aCB3aGl0ZSBzcGFjZSBiZWZvcmUgdGhlIGZpcnN0ICIqIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9kb2N0YWdzLmMsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4wOTMKUHJvYmxlbTogICAgIjpubm9yZW1lbnUiIGFsc28gZGVmaW5lcyBtZW51IGZvciBWaXN1YWwgbW9kZS4gKEtsYXVzIEJvc2F1KQpTb2x1dGlvbjogICBDaGVjayB0aGUgc2Vjb25kIGNvbW1hbmQgY2hhcmFjdGVyIGZvciBhbiAibyIsIG5vdCB0aGUgdGhpcmQuCkZpbGVzOgkgICAgc3JjL21lbnUuYwoKUGF0Y2ggNi4yLjA5NApQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGggR1RLIGFuZCB0aW55IGZlYXR1cmVzLgpTb2x1dGlvbjogICBJbmNsdWRlIGhhbmRsZV9kcm9wKCkgYW5kIHZpbV9jaGRpcmZpbGUoKSB3aGVuIEZFQVRfRE5EIGlzIGRlZmluZWQuCgkgICAgRG8gbm90IHRyeSB0byBzcGxpdCB0aGUgd2luZG93LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjA5NQpQcm9ibGVtOiAgICBUaGUgbWVzc2FnZSAiQ2Fubm90IGdvIHRvIGJ1ZmZlciB4IiBpcyBjb25mdXNpbmcgZm9yICI6YnVmIDYiLgoJICAgIChGcmFucyBFbmdsaWNoKQpTb2x1dGlvbjogICBNYWtlIGl0ICJCdWZmZXIgeCBkb2VzIG5vdCBleGlzdCIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMDk2ClByb2JsZW06ICAgIFdpbjMyOiAiOmxldCBAKiA9ICcnIiBwdXQgYSBuZXdsaW5lIG9uIHRoZSBjbGlwYm9hcmQuIChLbGF1cwoJICAgIEJvc2F1KQpTb2x1dGlvbjogICBQdXQgemVybyBieXRlcyBvbiB0aGUgY2xpcGJvYXJkIGZvciBhbiBlbXB0eSBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMDk3ClByb2JsZW06ICAgIFNldHRpbmcgb3IgcmVzZXR0aW5nICdpbnNlcnRtb2RlJyBpbiBhIEJ1ZkVudGVyIGF1dG9jb21tYW5kCgkgICAgZG9lc24ndCBhbHdheXMgaGF2ZSBpbW1lZGlhdGUgZWZmZWN0LiAoTmFnZ2VyKQpTb2x1dGlvbjogICBXaGVuICdpbnNlcnRtb2RlJyBpcyBzZXQsIHNldCBuZWVkX3N0YXJ0X2luc2VydG1vZGUsIHdoZW4gaXQncwoJICAgIHJlc2V0IHNldCBzdG9wX2luc2VydF9tb2RlLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjA5OCAoYWZ0ZXIgNi4yLjA5NykKUHJvYmxlbTogICAgQ2FuJ3QgYnVpbGQgVmltIHdpdGggdGlueSBmZWF0dXJlcy4gKENocmlzdGlhbiBKLiBSb2JpbnNvbikKU29sdXRpb246ICAgRGVjbGFyZSBzdG9wX2luc2VydF9tb2RlIGFsd2F5cy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ2xvYmFscy5oCgpQYXRjaCA2LjIuMDk5IChleHRyYSkKUHJvYmxlbTogICAgVGVzdCA0OSBmYWlscy4gKE1pa29sYWogTWFjaG93c2tpKQpTb2x1dGlvbjogICBUaGUgUG9saXNoIHRyYW5zbGF0aW9uIG11c3Qgbm90IGNoYW5nZSAiRTExNiIgdG8gIlIxMTYiLgpGaWxlczoJICAgIHNyYy9wby9wbC5wbwoKUGF0Y2ggNi4yLjEwMApQcm9ibGVtOiAgICAibWFrZSBwcm90byIgZmFpbHMgd2hlbiBjb21waWxlZCB3aXRoIHRoZSBQZXJsIGludGVyZmFjZS4KU29sdXRpb246ICAgUmVtb3ZlICItZm5vLioiIGZyb20gUEVSTF9DRkxBR1MsIGNwcm90byBzZWVzIGl0IGFzIGl0cyBvcHRpb24uCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjIuMTAxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgc3ludGF4IGZvbGRpbmcsIG9wZW5pbmcgYSBmaWxlIHNsb3dzIGRvd24gYSBsb3Qgd2hlbgoJICAgIGl0J3Mgc2l6ZSBpbmNyZWFzZXMgYnkgb25seSAyMCUuIChHYXJ5IEpvaG5zb24pClNvbHV0aW9uOiAgIFRoZSBhcnJheSB3aXRoIGNhY2hlZCBzeW50YXggc3RhdGVzIGlzIGxlYWtpbmcgZW50cmllcy4gIEFmdGVyCgkgICAgY2xlYW5pbmcgdXAgdGhlIGxpc3Qgb2J0YWluIHRoZSBjdXJyZW50IGVudHJ5IGFnYWluLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjEwMgpQcm9ibGVtOiAgICBUaGUgbWFjcm9zIGVxdWFsKCkgYW5kIENSIGNvbmZsaWN0IHdpdGggYSBDYXJib24gaGVhZGVyIGZpbGUuClNvbHV0aW9uOiAgIFJlbmFtZSBlcXVhbCgpIHRvIGVxdWFscG9zKCkuICBSZW5hbWUgQ1IgdG8gQ0FSLgoJICAgIERvIHRoaXMgaW4gdGhlIG5vbi1leHRyYSBmaWxlcyBvbmx5LgpGaWxlczoJICAgIHNyYy9hc2NpaS5oLCBzcmMvYnVmZmVyLmMsIHNyYy9jaGFyc2V0LmMsIHNyYy9lZGl0LmMsIHNyYy9ldmFsLmMsCgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsCgkgICAgc3JjL2dldGNoYXIuYywgc3JjL2d1aS5jLCBzcmMvZ3VpX2F0aGVuYS5jLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvZ3VpX21vdGlmLmMsIHNyYy9tYWNyb3MuaCwgc3JjL21hcmsuYywgc3JjL21lc3NhZ2UuYywKCSAgICBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvb3NfdW5peC5jLAoJICAgIHNyYy9yZWdleHAuYywgc3JjL3NlYXJjaC5jLCBzcmMvdWkuYywgc3JjL3dvcmtzaG9wLmMKClBhdGNoIDYuMi4xMDMgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgbWFjcm9zIGVxdWFsKCkgYW5kIENSIGNvbmZsaWN0IHdpdGggYSBDYXJib24gaGVhZGVyIGZpbGUuClNvbHV0aW9uOiAgIFJlbmFtZSBlcXVhbCgpIHRvIGVxdWFscG9zKCkuICBSZW5hbWUgQ1IgdG8gQ0FSLgoJICAgIERvIHRoaXMgaW4gdGhlIGV4dHJhIGZpbGVzIG9ubHkuCkZpbGVzOgkgICAgc3JjL2d1aV9waG90b24uYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjEwNApQcm9ibGVtOiAgICBVbm1hdGNoZWQgYnJhY2VzIGluIHRoZSB0YWJsZSB3aXRoIG9wdGlvbnMuClNvbHV0aW9uOiAgIE1vdmUgdGhlICJ9LCIgb3V0c2lkZSBvZiB0aGUgI2lmZGVmLiAoWWFrb3YgTGVybmVyKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjEwNQpQcm9ibGVtOiAgICBXaGVuIHRoZSBjdXJzb3IgaXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHdoZW4gY2FsbGluZwoJICAgIGdldF9jX2luZGVudCgpIGEgY3Jhc2ggbWlnaHQgb2NjdXIuClNvbHV0aW9uOiAgIERvbid0IGxvb2sgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAoTkogVmVyZW5pbmkpCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4xMDYKUHJvYmxlbTogICAgVGFnIHNlYXJjaGluZyBnZXRzIHN0dWNrIG9uIGEgdmVyeSBsb25nIGxpbmUgaW4gdGhlIHRhZ3MgZmlsZS4KU29sdXRpb246ICAgV2hlbiBza2lwcGluZyBiYWNrIHRvIHNlYXJjaCB0aGUgZmlyc3QgbWF0Y2hpbmcgdGFnIHJlbWVtYmVyIHRoZQoJICAgIG9mZnNldCB3aGVyZSBzZWFyY2hpbmcgc3RhcnRlZCBsb29raW5nIGZvciBhIGxpbmUgYnJlYWsuCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMTA3IChleHRyYSkKUHJvYmxlbTogICAgVGhlIE5ldEJlYW5zIGludGVyZmFjZSBjYW5ub3QgYmUgdXNlZCBvbiBXaW4zMi4KU29sdXRpb246ICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBOZXRCZWFucyBmb3IgV2luMzIuICBBZGQgc3VwcG9ydCBmb3IgcmVhZGluZwoJICAgIFhQTSBmaWxlcyBvbiBXaW4zMi4gIEFsc28gZml4ZXMgdGhhdCBhIHNpZ24gaWNvbiB3aXRoIGEgc3BhY2UgaW4KCSAgICB0aGUgZmlsZSBuYW1lIGRpZCBub3Qgd29yayB0aHJvdWdoIHRoZSBOZXRCZWFucyBpbnRlcmZhY2UuCgkgICAgKFNlcmdleSBLaG9yZXYpCgkgICAgQWxzbzogYXZvaWQgcmVwZWF0aW5nIGVycm9yIG1lc3NhZ2VzIHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgbG9zdC4KRmlsZXM6CSAgICBNYWtlZmlsZSwgcnVudGltZS9kb2MvbmV0YmVhbnMudHh0LCBzcmMvTWFrZV9iYzUubWFrLAoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrLCBzcmMvTWFrZV9tdmMubWFrLAoJICAgIHNyYy9iaWd2aW0uYmF0LCBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX2JldmFsLmMsIHNyYy9ndWlfYmV2YWwuaCwKCSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvbWVudS5jLCBzcmMvbmJkZWJ1Zy5jLAoJICAgIHNyYy9uYmRlYnVnLmgsIHNyYy9uZXRiZWFucy5jLCBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjMyLmgsCgkgICAgc3JjL3Byb3RvL2d1aV9iZXZhbC5wcm8sIHNyYy9wcm90by9ndWlfdzMyLnBybywKCSAgICBzcmMvcHJvdG8vbmV0YmVhbnMucHJvLCBzcmMvcHJvdG8uaCwgc3JjL3ZlcnNpb24uYywgc3JjL3ZpbS5oLAoJICAgIHNyYy94cG1fdzMyLmMsIHNyYy94cG1fdzMyLmgKClBhdGNoIDYuMi4xMDgKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBnaXZpbmcgYSBtZXNzYWdlIGFib3V0IGlnbm9yaW5nIGNhc2UgaW4gYSB0YWcuIChNYW5mcmVkCgkgICAgS3VlaG4pClNvbHV0aW9uOiAgIFVzZSBhIGxvbmdlciBidWZmZXIgZm9yIHRoZSBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjEwOQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyB3aXRoIHZhcmlvdXMgQW1pZ2EgY29tcGlsZXJzLgpTb2x1dGlvbjogICBBZGQgdHlwZWNhc3QsIHByb3RvdHlwZXMsIGV0IGFsLiB0aGF0IGFyZSBhbHNvIHVzZWZ1bCBmb3Igb3RoZXIKCSAgICBzeXN0ZW1zLiAgKEZsYXZpbyBTdGFuY2hpbmEpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjIuMTEwClByb2JsZW06ICAgIFdoZW4gJExBTkcgaW5jbHVkZXMgdGhlIGVuY29kaW5nLCBhIG1lbnUgd2l0aG91dCBhbiBlbmNvZGluZyBuYW1lCgkgICAgaXMgbm90IGZvdW5kLgpTb2x1dGlvbjogICBBbHNvIGxvb2sgZm9yIGEgbWVudSBmaWxlIHdpdGhvdXQgYW55IGVuY29kaW5nLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMi4xMTEKUHJvYmxlbTogICAgRW5jb2RpbmcgImNwMTI1MSIgaXMgbm90IHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIEFkZCAiY3AxMjUxIiB0byB0aGUgdGFibGUgb2YgZW5jb2RpbmdzLiAoQWxleGV5IEZyb2xvZmYpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4xMTIKUHJvYmxlbTogICAgQWZ0ZXIgYXBwbHlpbmcgcGF0Y2hlcyB0ZXN0MzIgZmFpbHMuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIEhhdmUgIm1ha2UgY2xlYW4iIGluIHRoZSB0ZXN0ZGlyIGRlbGV0ZSAqLnJlaiBhbmQgKi5vcmlnIGZpbGVzLgoJICAgIFVzZSB0aGlzIHdoZW4gZG9pbmcgIm1ha2UgY2xlYW4iIGluIHRoZSBzcmMgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZSwgc3JjL3Rlc3RkaXIvTWFrZWZpbGUKClBhdGNoIDYuMi4xMTMKUHJvYmxlbTogICAgVXNpbmcgIjpzdGFydGluc2VydCIgYWZ0ZXIgIiQiIHdvcmtzIGxpa2UgImEiIGluc3RlYWQgb2YgImkiLgoJICAgIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIFJlc2V0ICJ3X2N1cnN3YW50IiBmb3IgIjpzdGFydGluc2VydCIgYW5kIHJlc2V0IG9fZW9sIGluIGVkaXQoKS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjExNApQcm9ibGVtOiAgICBXaGVuIHN0ZG91dCBpcyBwaXBlZCB0aHJvdWdoICJ0ZWUiLCB0aGUgc2l6ZSBvZiB0aGUgc2NyZWVuIG1heSBub3QKCSAgICBiZSBjb3JyZWN0LgpTb2x1dGlvbjogICBVc2Ugc3RkaW4gaW5zdGVhZCBvZiBzdGRvdXQgZm9yIGlvY3RsKCkgd2hlbiBzdGRpbiBpcyBhIHR0eSBhbmQKCSAgICBzdGRvdXQgaXNuJ3QuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjExNSAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIHdpdGggdmFyaW91cyBBbWlnYSBjb21waWxlcnMuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdCwgcHJvdG90eXBlcywgZXQgYWwuICBUaG9zZSBjaGFuZ2VzIHRoYXQgYXJlCgkgICAgQW1pZ2Etc3BlY2lmaWMuIChGbGF2aW8gU3RhbmNoaW5hKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL21lbWZpbGUuYywgc3JjL29zX2FtaWdhLmMsIHNyYy9vc19hbWlnYS5oLAoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjExNiAoZXh0cmEpClByb2JsZW06ICAgIEdlcm1hbiBrZXlib2FyZCB3aXRoIE51bWxvY2sgc2V0IGRpZmZlcmVudCBmcm9tIHN5c3RlbSBzdGFydHVwCgkgICAgY2F1c2VzIHByb2JsZW1zLgpTb2x1dGlvbjogICBJZ25vcmUga2V5cyB3aXRoIGNvZGUgMHhmZi4gKEhlbG11dCBTdGllZ2xlcikKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTE3ClByb2JsZW06ICAgIEJyZWFrcG9pbnRzIGluIGxvb3BzIG9mIHNvdXJjZWQgZmlsZXMgYW5kIGZ1bmN0aW9ucyBhcmUgbm90CgkgICAgZGV0ZWN0ZWQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGJyZWFrcG9pbnRzIHdoZW4gdXNpbmcgbGluZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgcmVhZC4KCSAgICAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9wcm90by9ldmFsLnBybywKCSAgICBzcmMvcHJvdG8vZXhfY21kczIucHJvCgpQYXRjaCA2LjIuMTE4IChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBDb21waWxpbmcgaXMgZG9uZSBpbiBhIG5vbi1zdGFuZGFyZCB3YXkuClNvbHV0aW9uOiAgIFVzZSB0aGUgVW5peCBtZXRob2QgZm9yIE1hYyBPUyBYLCB3aXRoIGF1dG9jb25mLiAgQWRkICJDQVJCT05HVUkiCgkgICAgdG8gTWFrZWZpbGUgYW5kIGNvbmZpZ3VyZS4gKEVyaWMgS293KQoJICAgIE1vdmUgYSBmZXcgcHJvdG90eXBlcyBmcm9tIG9zX21hYy5wcm8gdG8gZ3VpX21hYy5wcm8uCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlLCBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL2NvbmZpZy5tay5pbiwgc3JjL2d1aV9tYWMuYywgc3JjL29zX21hYy5oLCBzcmMvb3NfbWFjb3N4LmMsCgkgICAgc3JjL3Byb3RvL2d1aV9tYWMucHJvLCBzcmMvcHJvdG8vb3NfbWFjLnBybywKCSAgICBzcmMvaW5mcGxpc3QueG1sLCBzcmMvdmltLmgKClBhdGNoIDYuMi4xMTkgKGFmdGVyIDYuMi4xMDcpClByb2JsZW06ICAgIFdoZW4gcGFja2luZyB0aGUgTVMtV2luZG93cyBhcmNoaXZlcyBhIGZldyBmaWxlcyBhcmUgbWlzc2luZy4KCSAgICAoR3VvcGVuZyBXZW4pClNvbHV0aW9uOiAgIEFkZCBndWlfYmV2YWwuKiB0byB0aGUgbGlzdCBvZiBnZW5lcmljIHNvdXJjZSBmaWxlcy4KRmlsZXM6CSAgICBNYWtlZmlsZQoKUGF0Y2ggNi4yLjEyMApQcm9ibGVtOiAgICBXaW4zMiBHVUk6IFRoZSBjb25zb2xlIGRpYWxvZ3MgYXJlIG5vdCBzdXBwb3J0ZWQgb24gTVMtV2luZG93cywKCSAgICBkaXNhYmxpbmcgdGhlICdjJyBmbGFnIG9mICdndWlvcHRpb25zJy4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERlZmluZSBGRUFUX0NPTl9ESUFMT0cgYWxzbyBmb3IgR1VJLW9ubHkgYnVpbGRzLgpGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgKClBhdGNoIDYuMi4xMjEgKGFmdGVyIDYuMi4xMTgpClByb2JsZW06ICAgIE5vdCBhbGwgbWFrZSBwcm9ncmFtcyBzdXBwb3J0ICIrPSIuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBVc2UgYSBub3JtYWwgYXNzaWdubWVudC4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4xMjIgKGFmdGVyIDYuMi4xMTkpClByb2JsZW06ICAgIE5vdCBhbGwgc2hlbGxzIGNhbiBleHBhbmQgW15+XS4gIEZpbGUgbWlzc2luZy4gIChHdW9wZW5nIFdlbikKU29sdXRpb246ICAgVXNlIGEgc2ltcGxlciBwYXR0ZXJuLiAgQWRkIHRoZSBBYXAgcmVjaXBlIGZvciB0aGUgbWF6ZSBwcm9ncmFtCgkgICAgYW5kIGEgY2xlYW4gdmVyc2lvbiBvZiB0aGUgc291cmNlIGNvZGUuCkZpbGVzOgkgICAgTWFrZWZpbGUsIHJ1bnRpbWUvbWFjcm9zL21hemUvTWFrZWZpbGUsCgkgICAgcnVudGltZS9tYWNyb3MvbWF6ZS9SRUFETUUudHh0LCBydW50aW1lL21hY3Jvcy9tYXplL21haW4uYWFwLAoJICAgIHJ1bnRpbWUvbWFjcm9zL21hemUvbWF6ZWNsZWFuLmMKClBhdGNoIDYuMi4xMjMgKGFmdGVyIDYuMi4xMTgpClByb2JsZW06ICAgIFJ1bm5pbmcgY29uZmlndXJlIGZhaWxzLiAoVG9ueSBMZW5laXMpClNvbHV0aW9uOiAgIENoYW5nZSAiPT0iIHRvICI9IiBmb3IgYSB0ZXN0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjEyNCAoYWZ0ZXIgNi4yLjEyMSkoZXh0cmEpClByb2JsZW06ICAgIE1hYzogUmVjdXJzaXZlIHVzZSBvZiBNNEZMQUdTIGNhdXNlcyBwcm9ibGVtcy4gIFdoZW4gcnVubmluZyBWaW0KCSAgICBkaXJlY3RseSBpdCBjYW4ndCBmaW5kIHRoZSBydW50aW1lIGZpbGVzLiAgKEVtaWx5IEphY2tzb24pCgkgICAgVXNpbmcgR05VIGNvbnN0cnVjdHMgY2F1c2VzIHdhcm5pbmdzIHdpdGggb3RoZXIgbWFrZSBwcm9ncmFtcy4KCSAgICAoUm9uYWxkIFNjaGlsZCkKU29sdXRpb246ICAgVXNlIGFub3RoZXIgbmFtZSBmb3IgdGhlIE00RkxBR1MgdmFyaWFibGUuCgkgICAgRG9uJ3QgcmVtb3ZlICJWaW0uYXBwIiBmcm9tIHRoZSBwYXRoLgoJICAgIFVwZGF0ZSB0aGUgZXhwbGFuYXRpb24gZm9yIGNvbXBpbGluZyBvbiB0aGUgTWFjLiAoRXJpYyBLb3cpCgkgICAgRG9uJ3QgdXNlICQoc2hlbGwgKSBhbmQgJChhZGRwcmVmaXggKS4KRmlsZXM6CSAgICBzcmMvSU5TVEFMTG1hYy50eHQsIHNyYy9NYWtlZmlsZSwgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4xMjUgKGFmdGVyIDYuMi4xMDcpClByb2JsZW06ICAgIFRoZSAid2luc29jazIuaCIgZmlsZSBpc24ndCBhbHdheXMgYXZhaWxhYmxlLgpTb2x1dGlvbjogICBEb24ndCBpbmNsdWRlIHRoaXMgaGVhZGVyIGZpbGUuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4xMjYKUHJvYmxlbTogICAgVHlwaW5nIENUUkwtQyBhdCBhIGNvbmZpcm0oKSBwcm9tcHQgZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uClNvbHV0aW9uOiAgIFJlc2V0ICJtYXBwZWRfY3RybF9jIiBpbiBnZXRfa2V5c3Ryb2tlKCksIHNvIHRoYXQgImdvdF9pbnQiIGlzIHNldAoJICAgIGluIF9PbkNoYXIoKS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjEyNyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIGNvbnNvbGU6IFR5cGluZyBDVFJMLUMgZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uClNvbHV0aW9uOiAgIFNldCBnb3RfaW50IGltbWVkaWF0ZWx5IHdoZW4gQ1RSTC1DIGlzIHR5cGVkLCBkb24ndCB3YWl0IGZvcgoJICAgIG1jaF9icmVha2NoZWNrKCkgYmVpbmcgY2FsbGVkLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMTI4IChhZnRlciA2LjIuMTE4KQpQcm9ibGVtOiAgICBzcmMvYXV0by9jb25maWd1cmUgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBzcmMvY29uZmlndXJlLmluLgpTb2x1dGlvbjogICBVc2UgdGhlIG5ld2x5IGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4yLjEyOQpQcm9ibGVtOiAgICBXaGVuICdudW1iZXInIGlzIHNldCAnd3JhcG1hcmdpbicgZG9lcyBub3Qgd29yayBWaS1jb21wYXRpYmxlLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFJlZHVjZSB0aGUgdGV4dHdpZHRoIHdoZW4gJ251bWJlcicgaXMgc2V0LiAgQWxzbyBmb3IgJ2ZvbGRjb2x1bW4nCgkgICAgYW5kIHNpbWlsYXIgdGhpbmdzLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4xMzAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiBjb25zb2xlOiBXaGVuICdyZXN0b3Jlc2NyZWVuJyBpcyBub3Qgc2V0IGV4aXRpbmcgVmltIGNhdXNlcwoJICAgIHRoZSBzY3JlZW4gdG8gYmUgY2xlYXJlZC4gKE1pY2hhZWwgQS4gTWFuZ2lubykKU29sdXRpb246ICAgRG9uJ3QgY2xlYXIgdGhlIHNjcmVlbiB3aGVuIGV4aXRpbmcgYW5kICdyZXN0b3Jlc2NyZWVuJyBpc24ndCBzZXQuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4xMzEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogRm9udCBoYW5kbGVzIGFyZSBsZWFrZWQuClNvbHV0aW9uOiAgIEZyZWUgaXRhbGljLCBib2xkIGFuZCBib2xkLWl0YWxpYyBoYW5kbGVzIGJlZm9yZSBvdmVyd3JpdGluZyB0aGVtLgoJICAgIChNaWNoYWVsIFdvb2tleSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTMyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IGNvbnNvbGUgdmVyc2lvbiBkb2Vzbid0IHdvcmsgb24gbGF0ZXN0IFdpbmRvd3MgU2VydmVyIDIwMDMuClNvbHV0aW9uOiAgIENvcHkgMTIwMDAgaW5zdGVhZCBvZiAxNTAwMCBjZWxscyBhdCBhIHRpbWUgdG8gYXZvaWQgcnVubmluZyBvdXQKCSAgICBvZiBtZW1vcnkuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4xMzMKUHJvYmxlbTogICAgV2hlbiBzdGFydGluZyB0aGUgR1VJIGEgYm9ndXMgZXJyb3IgbWVzc2FnZSBhYm91dCAnaW1hY3RpdmF0ZWtleScKCSAgICBtYXkgYmUgZ2l2ZW4uClNvbHV0aW9uOiAgIE9ubHkgY2hlY2sgdGhlIHZhbHVlIG9mICdpbWFjdGl2YXRla2V5JyB3aGVuIHRoZSBHVUkgaXMgcnVubmluZy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjEzNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHNjcm9sbGluZyBwYXJ0cyBvZiB0aGUgd2luZG93IGFyZSByZWRyYXduIHdoZW4gdGhpcwoJICAgIGlzbid0IG5lY2Vzc2FyeS4KU29sdXRpb246ICAgT25seSBpbnZhbGlkYXRlIHBhcnRzIG9mIHRoZSB3aW5kb3cgd2hlbiB0aGV5IGFyZSBvYnNjdXJlZCBieQoJICAgIG90aGVyIHdpbmRvd3MuIChNaWNoYWVsIFdvb2tleSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTM1ClByb2JsZW06ICAgIEFuIGl0ZW0gPD4gaW4gdGhlICI6Y29tbWFuZCIgYXJndW1lbnQgaXMgaW50ZXJwcmV0ZWQgYXMgPGFyZ3M+LgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IDw+IGlzIHJlY29nbml6ZWQgYXMgPGFyZ3M+LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMTM2ClByb2JsZW06ICAgICI6ZSArK2VuYz1sYXRpbjEgbmV3ZmlsZSIgZG9lc24ndCBzZXQgJ2ZlbmMnIHdoZW4gdGhlIGZpbGUgZG9lc24ndAoJICAgIGV4aXN0LiAgKE1pcm9zbGF3IERvYnJ6YW5za2ktTmV1bWFubikKU29sdXRpb246ICAgU2V0ICdmaWxlZW5jb2RpbmcnIHRvIHRoZSBzcGVjaWZpZWQgZW5jb2Rpbmcgd2hlbiBlZGl0aW5nIGEgZmlsZQoJICAgIHRoYXQgZG9lcyBub3QgZXhpc3QuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMTM3ClByb2JsZW06ICAgICJkOmNtZDxDUj4iIGNhbm5vdCBiZSByZXBlYXRlZCB3aXRoICIuIi4gIEJyZWFrcyByZXBlYXRpbmcgImQlIgoJICAgIHdoZW4gdXNpbmcgdGhlIG1hdGNoaXQgcGx1Z2luLgpTb2x1dGlvbjogICBTdG9yZSB0aGUgY29tbWFuZCB0byBiZSByZXBlYXRlZC4gIFRoaXMgaXMgcmVzdHJpY3RlZCB0bwoJICAgIHNpbmdsZS1saW5lIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbm9ybWFsLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjEzOCAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGF0aW9uIHByb2JsZW0gb24gVk1TIHdpdGggZHluYW1pYyBidWZmZXIgb24gdGhlIHN0YWNrLgpTb2x1dGlvbjogICBSZWFkIG9uZSBieXRlIGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyLCBzbyB0aGF0IHdlIGNhbgoJICAgIGNoZWNrIGZvciB0aGUgc3RyaW5nIGxlbmd0aCB3aXRob3V0IGFuIGV4dHJhIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvb3Nfdm1zLmMKClBhdGNoIDYuMi4xMzkKUHJvYmxlbTogICAgQ29kZSBpcyByZXBlYXRlZCBpbiB0aGUgdHdvIFBlcmwgZmlsZXMuClNvbHV0aW9uOiAgIE1vdmUgY29tbW9uIGNvZGUgZnJvbSBpZl9wZXJsLnhzIGFuZCBpZl9wZXJsc2Zpby5jIHRvIHZpbS5oLgoJICAgIEFsc28gZml4IGEgcHJvYmxlbSB3aXRoIGdlbmVyYXRpbmcgcHJvdG90eXBlcy4KRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cywgc3JjL2lmX3BlcmxzZmlvLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjE0MCAoYWZ0ZXIgNi4yLjEyMSkKUHJvYmxlbTogICAgTWFjOiBDb21waWxpbmcgd2l0aCBQeXRob24gYW5kIFBlcmwgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgUHl0aG9uIHRvIHVzZSAiLWZyYW1ld29yayBQeXRob24iCgkgICAgZm9yIFB5dGhvbiAyLjMgb24gTWFjIE9TL1guCgkgICAgTW92ZSAiLWxkbCIgYWZ0ZXIgIkR5bmFMb2FkZXIuYSIgaW4gdGhlIGxpbmsgY29tbWFuZC4KCSAgICBDaGFuZ2UgInBlcmxsaWJzIiB0byAiUEVSTF9MSUJTIi4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcubWsuaW4KClBhdGNoIDYuMi4xNDEgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IFRoZSBiX0ZTU3BlYyBmaWVsZCBpcyBzb21ldGltZXMgdW51c2VkLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlICNpZmRlZiB0byBGRUFUX0NXX0VESVRPUiBhbmQgZGVmaW5lZCBpdCBpbiBmZWF0dXJlLmgKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9ndWlfbWFjLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy9mZWF0dXJlLmgKClBhdGNoIDYuMi4xNDIgKGFmdGVyIDYuMi4xMjQpClByb2JsZW06ICAgIE1hYzogYnVpbGRpbmcgd2l0aG91dCBHVUkgdGhyb3VnaCBjb25maWd1cmUgZG9lc24ndCB3b3JrLgoJICAgIFdoZW4gdGhlIHN5c3RlbSBpcyBzbG93LCB1bnBhY2tpbmcgdGhlIHJlc291cmNlIGZpbGUgdGFrZXMgdG9vCgkgICAgbG9uZy4KU29sdXRpb246ICAgRG9uJ3QgYWx3YXlzIGRlZmluZSBGRUFUX0dVSV9NQUMgd2hlbiBNQUNPUyBpcyBkZWZpbmVkLCBkZWZpbmUgaXQKCSAgICBpbiB0aGUgTWFrZWZpbGUuCgkgICAgQWRkIGEgY29uZmlndXJlIG9wdGlvbiB0byBza2lwIERhcndpbiBkZXRlY3Rpb24uCgkgICAgVXNlIGEgUHl0aG9uIHNjcmlwdCB0byB1bnBhY2sgdGhlIHJlc291cmNlcyB0byBhdm9pZCBhIHJhY2UKCSAgICBjb25kaXRpb24uIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgTWFrZWZpbGUsIHNyYy9NYWtlZmlsZSwgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9kZWhxeC5weSwgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTQzClByb2JsZW06ICAgIFVzaW5nICJLIiBvbiBWaXN1YWxseSBzZWxlY3RlZCB0ZXh0IGRvZXNuJ3Qgd29yayBpZiBpdCBlbmRzIGluCgkgICAgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KU29sdXRpb246ICAgSW5jbHVkZSBhbGwgdGhlIGJ5dGVzIG9mIHRoZSBsYXN0IGNoYXJhY3Rlci4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4xNDQKUHJvYmxlbTogICAgV2hlbiAiZzpodG1sX3VzZV9jc3MiIGlzIHNldCB0aGUgSFRNTCBoZWFkZXIgZ2VuZXJhdGVkIGJ5IHRoZQoJICAgIDJodG1sIHNjcmlwdCBpcyB3cm9uZy4KU29sdXRpb246ICAgQWRkIHRoZSBoZWFkZXIgYWZ0ZXIgYWRkaW5nIEhSRUYgZm9yIGxpbmtzLgoJICAgIEFsc28gdXNlICI6bm9ybWFsISIgaW5zdGVhZCBvZiAiOm5vcm1hbCIgdG8gYXZvaWQgbWFwcGluZ3MKCSAgICBnZXR0aW5nIGluIHRoZSB3YXkuCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvMmh0bWwudmltCgpQYXRjaCA2LjIuMTQ1IChhZnRlciA2LjIuMTM5KQpQcm9ibGVtOiAgICBVbmRlZmluaW5nICJib29sIiBkb2Vzbid0IHdvcmsgZm9yIG9sZGVyIHN5c3RlbXMuIChXb2p0ZWsgUGlsb3J6KQpTb2x1dGlvbjogICBPbmx5IHVuZGVmaW5lICJib29sIiBvbiBNYWMgT1MuCkZpbGVzOgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTQ2ClByb2JsZW06ICAgIE9uIHNvbWUgc3lzdGVtcyB0aGUgcHJvdG90eXBlIGZvciBpY29udigpIGlzIHdyb25nLCBjYXVzaW5nIGEKCSAgICB3YXJuaW5nIG1lc3NhZ2UuClNvbHV0aW9uOiAgIFVzZSBhIGNhc3QgKHZvaWQgKikgdG8gYXZvaWQgdGhlIHdhcm5pbmcuIChDaGFybGVzIENhbXBiZWxsKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4xNDcKUHJvYmxlbTogICAgIjpzL3BhdC9cPWNvbCgnLicpIiBhbHdheXMgcmVwbGFjZXMgd2l0aCAiMSIuClNvbHV0aW9uOiAgIFNldCB0aGUgY3Vyc29yIHRvIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2ggYmVmb3JlIHN1YnN0aXR1dGluZy4KCSAgICAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4xNDgKUHJvYmxlbTogICAgQ2FuJ3QgYnJlYWsgYW4gSW5zZXJ0IGludG8gc2V2ZXJhbCB1bmRvYWJsZSBwYXJ0cy4KU29sdXRpb246ICAgQWRkIHRoZSBDVFJMLUcgdSBjb21tYW5kLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2luc2VydC50eHQsIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4xNDkKUHJvYmxlbTogICAgV2hlbiB0aGUgY3Vyc29yIGlzIG9uIGEgbGluZSBwYXN0IDIxLDQ3NCw3NDggdGhlIGluZGljYXRlZAoJICAgIHBlcmNlbnRhZ2Ugb2YgdGhlIHBvc2l0aW9uIGlzIGludmFsaWQuICBXaXRoIHRoYXQgbWFueSBsaW5lcwoJICAgICIxMDAlIiBjYXVzZXMgYSBuZWdhdGl2ZSBjdXJzb3IgbGluZSBudW1iZXIsIHJlc3VsdGluZyBpbiBhIGNyYXNoLgoJICAgIChEYW5pZWwgR291am90KQpTb2x1dGlvbjogICBEaXZpZGUgYnkgMTAwIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcuICBBdm9pZCBvdmVyZmxvdyB3aGVuCgkgICAgY29tcHV0aW5nIHRoZSBsaW5lIG51bWJlciBmb3IgIjEwMCUiLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjE1MApQcm9ibGVtOiAgICBXaGVuIGRvaW5nICJ2aW0gLSA8IGZpbGUiIGxpbmVzIGFyZSBicm9rZW4gYXQgTlVMIGNoYXJzLgoJICAgIChEYW5pZWwgR291am90KQpTb2x1dGlvbjogICBDaGFuZ2UgTkwgY2hhcmFjdGVycyBiYWNrIHRvIE5VTCB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgdGVtcAoJICAgIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4xNTEKUHJvYmxlbTogICAgV2hlbiBkb2luZyAidmltIC0tcmVtb3RlICtzdGFydGluc2VydCBmaWxlIiBzb21lIGNvbW1hbmRzIGFyZQoJICAgIGluc2VydGVkIGFzIHRleHQuIChLbGF1cyBCb3NhdSkKU29sdXRpb246ICAgUHV0IGFsbCB0aGUgaW5pdCBjb21tYW5kcyBpbiBvbmUgRXggbGluZSwgbm90IHVzaW5nIGEgPENSPiwgc28KCSAgICB0aGF0IEluc2VydCBtb2RlIGlzbid0IHN0YXJ0ZWQgdG9vIGVhcmx5LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4xNTIKUHJvYmxlbTogICAgVGhlIGN1cnNvcigpIGZ1bmN0aW9uIGRvZXNuJ3QgcmVzZXQgdGhlIGNvbHVtbiBvZmZzZXQgZm9yCgkgICAgJ3ZpcnR1YWxlZGl0Jy4KU29sdXRpb246ICAgUmVzZXQgdGhlIG9mZnNldCB0byB6ZXJvLiAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4xNTMKUHJvYmxlbTogICAgV2luMzI6ICI6bGFuZyBnZXJtYW4iIGRvZXNuJ3QgdXNlIEdlcm1hbiBtZXNzYWdlcy4KU29sdXRpb246ICAgQWRkIGEgdGFibGUgdG8gdHJhbnNsYXRlIHRoZSBXaW4zMiBsYW5ndWFnZSBuYW1lcyB0byB0d28tbGV0dGVyCgkgICAgbGFuZ3VhZ2UgY29kZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi4xNTQKUHJvYmxlbTogICAgUHl0aG9uIGJhaWxzIG91dCB3aGVuIGdpdmluZyBhIHdhcm5pbmcgbWVzc2FnZS4gKEV1Z2VuZQoJICAgIE1pbmtvdnNraWkpClNvbHV0aW9uOiAgIFNldCBzeXMuYXJndltdIHRvIGFuIGVtcHR5IHN0cmluZy4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi4xNTUKUHJvYmxlbTogICAgV2luMzI6IFVzaW5nICI6dGp1bXAgd3d3IiBpbiBhIGhlbHAgZmlsZSBnaXZlcyB0d28gcmVzdWx0cy4KCSAgICAoRGF2ZSBSb2JlcnRzKQpTb2x1dGlvbjogICBJZ25vcmUgZGlmZmVyZW5jZXMgYmV0d2VlbiBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyB3aGVuIGNoZWNraW5nCgkgICAgZm9yIGlkZW50aWNhbCB0YWcgbWF0Y2hlcy4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4xNTYgKGFmdGVyIDYuMi4xMjUpClByb2JsZW06ICAgIFdpbjMyOiBOZXRiZWFucyBmYWlscyB0byBidWlsZCwgRUlOVFIgaXMgbm90IGRlZmluZWQuClNvbHV0aW9uOiAgIFJlZGVmaW5lIEVJTlRSIHRvIFdTQUVJTlRSLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjE1NwpQcm9ibGVtOiAgICBVc2luZyAiJXAiIGluICdlcnJvcmZvcm1hdCcgZ2l2ZXMgYSBjb2x1bW4gbnVtYmVyIHRoYXQgaXMgdG9vCgkgICAgaGlnaC4KU29sdXRpb246ICAgU2V0IHRoZSBmbGFnIHRvIHVzZSB0aGUgbnVtYmVyIGFzIGEgdmlydHVhbCBjb2x1bW4uICAoTGVmdGVyaXMKCSAgICBLb3V0c29sb3VrYXMpCkZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMi4xNTgKUHJvYmxlbTogICAgVGhlIHNlZCBjb21tYW5kIG9uIFNvbGFyaXMgYW5kIEhQVVggZG9lc24ndCB3b3JrIGZvciBhIGxpbmUgdGhhdAoJICAgIGRvZXNuJ3QgZW5kIGluIGEgbmV3bGluZS4KU29sdXRpb246ICAgQWRkIGEgbmV3bGluZSB3aGVuIGZlZWRpbmcgdGV4dCB0byBzZWQuIChNYXJrIFdhZ2dvbmVyKQpGaWxlczoJICAgIHNyYy9jb25maWd1cmUuaW4sIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4yLjE1OQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGV4cHJlc3Npb24gZm9sZGluZyBhbmQgJ2ZvbGRvcGVuJyBpcyAidW5kbyIgYW4gdW5kbwoJICAgIGNvbW1hbmQgZG9lc24ndCBhbHdheXMgb3BlbiB0aGUgZm9sZC4KU29sdXRpb246ICAgU2F2ZSBhbmQgcmVzdG9yZSB0aGUgS2V5VHlwZWQgdmFyaWFibGUgd2hlbiBldmFsdWF0aW5nICdmb2xkZXhwcicuCgkgICAgKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjIuMTYwClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyAiYWxsIiBhbmQgJ3NlbGVjdGlvbiBpcyAiZXhjbHVzaXZlIiwKCSAgICBzZWxlY3RpbmcgYSBkb3VibGUtd2lkdGggY2hhcmFjdGVyIGJlbG93IGEgc2luZ2xlLXdpZHRoIGNoYXJhY3RlcgoJICAgIG1heSBjYXVzZSBhIGNyYXNoLgpTb2x1dGlvbjogICBBdm9pZCBvdmVyZmxvdyBvbiB1bnNpZ25lZCBpbnRlZ2VyIGRlY3JlbWVudC4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4xNjEgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IE1pc3NpbmcgaGVhZGVyIGZpbGUuICBSZWFkaW5nIGlucHV0IGJ1c3kgbG9vcHMuClNvbHV0aW9uOiAgIEluY2x1ZGUgdGVybWRlZi5oLiAgQXZvaWQgdGhlIHVzZSBvZiBhIHdhaXQgZnVuY3Rpb24gaW4KCSAgICB2bXNfcmVhZCgpLiAgKEZyYW5rIFJpZXMpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguaCwgc3JjL29zX3Ztcy5jCgpQYXRjaCA2LjIuMTYyClByb2JsZW06ICAgICI6cmVkcmF3IiBkb2Vzbid0IGFsd2F5cyBkaXNwbGF5IHRoZSB0ZXh0IHRoYXQgaW5jbHVkZXMgdGhlIGN1cnNvcgoJICAgIHBvc2l0aW9uLCBlLmcuIGFmdGVyICI6Y2FsbCBjdXJzb3IoMSwgMCkiLiAoRXVnZW5lIE1pbmtvdnNraWkpClNvbHV0aW9uOiAgIENhbGwgdXBkYXRlX3RvcGxpbmUoKSBiZWZvcmUgcmVkcmF3aW5nLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMTYzClByb2JsZW06ICAgICJtYWtlIGluc3RhbGwiIG1heSBhbHNvIGNvcHkgQUFQRElSIGRpcmVjdG9yaWVzLgpTb2x1dGlvbjogICBEZWxldGUgQUFQRElSIGRpcmVjdG9yaWVzLCBqdXN0IGxpa2UgQ1ZTIGRpcmVjdG9yaWVzLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjE2NCAoYWZ0ZXIgNi4yLjE0NCkKUHJvYmxlbTogICAgV2hlbiAiZzpodG1sX3VzZV9jc3MiIGlzIHNldCB0aGUgSFRNTCBoZWFkZXIgZ2VuZXJhdGVkIGJ5IHRoZQoJICAgIDJodG1sIHNjcmlwdCBpcyBzdGlsbCB3cm9uZy4KU29sdXRpb246ICAgU2VhcmNoIGZvciBhIHN0cmluZyBpbnN0ZWFkIG9mIGp1bXBpbmcgdG8gYSBmaXhlZCBsaW5lIG51bWJlci4KCSAgICBHbyB0byB0aGUgc3RhcnQgb2YgdGhlIGxpbmUgYmVmb3JlIGluc2VydGluZyB0aGUgaGVhZGVyLgoJICAgIChKZXNzIFRocnlzb2VlKQpGaWxlczoJICAgIHJ1bnRpbWUvc3ludGF4LzJodG1sLnZpbQoKUGF0Y2ggNi4yLjE2NQpQcm9ibGVtOiAgICBUaGUgY29uZmlndXJlIGNoZWNrcyBoYW5nIHdoZW4gdXNpbmcgYXV0b2NvbmYgMi41Ny4KU29sdXRpb246ICAgSW52b2tlIEFDX1BST0dSQU1fRUdSRVAgdG8gc2V0ICRFR1JFUC4gKEFyb24gR3JpZmZpcykKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMi4xNjYKUHJvYmxlbTogICAgV2hlbiAkR1pJUCBjb250YWlucyAiLU4iIGVkaXRpbmcgY29tcHJlc3NlZCBmaWxlcyBkb2Vzbid0IHdvcmsKCSAgICBwcm9wZXJseS4KU29sdXRpb246ICAgQWRkICItbiIgdG8gImd6aXAgLWQiIHRvIGF2b2lkIHJlc3RvcmluZyB0aGUgZmlsZSBuYW1lLiAoT3l2aW5kCgkgICAgSG9sbSkKRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4yLjE2NwpQcm9ibGVtOiAgICBUaGUgUHl0aG9uIGludGVyZmFjZSBsZWFrcyBtZW1vcnkgd2hlbiBhc3NpZ25pbmcgbGluZXMgdG8gYQoJICAgIGJ1ZmZlci4gKFNlcmdleSBLaG9yZXYpClNvbHV0aW9uOiAgIERvIG5vdCBjb3B5IHRoZSBsaW5lIHdoZW4gY2FsbGluZyBtbF9yZXBsYWNlKCkuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMTY4ClByb2JsZW06ICAgIFB5dGhvbiBpbnRlcmZhY2U6IFRoZXJlIGlzIG5vIHdheSB0byBnZXQgdGhlIGluZGljZXMgZnJvbSBhIHJhbmdlCgkgICAgb2JqZWN0LgpTb2x1dGlvbjogICBBZGQgdGhlICJzdGFydCIgYW5kICJlbmQiIGF0dHJpYnV0ZXMuIChNYXVyaWNlIFMuIEJhcm51bSkKRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMsIHJ1bnRpbWUvZG9jL2lmX3B5dGgudHh0CgpQYXRjaCA2LjIuMTY5ClByb2JsZW06ICAgIFRoZSBwcm90b3R5cGUgZm9yIF9YbWJsZW4oKSBhcHBlYXJzIGluIGEgcmVjZW50IFhGcmVlODYgaGVhZGVyCgkgICAgZmlsZSwgY2F1c2luZyBhIHdhcm5pbmcgZm9yIG91ciBwcm90b3R5cGUuIChIaXNhc2hpIFQgRnVqaW5ha2EpClNvbHV0aW9uOiAgIE1vdmUgdGhlIHByb3RvdHlwZSB0byBhbiBvc2RlZiBmaWxlLCBzbyB0aGF0IGl0J3MgZmlsdGVyZWQgb3V0LgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvb3NkZWYyLmguaW4KClBhdGNoIDYuMi4xNzAKUHJvYmxlbTogICAgV2hlbiB1c2luZyBTdW4gV29ya1Nob3AgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGlzbid0IGNoYW5nZWQgdG8KCSAgICB3aGVyZSB0aGUgZmlsZSBpcy4KU29sdXRpb246ICAgU2V0IHRoZSAnYXV0b2NoZGlyJyBvcHRpb24gd2hlbiB1c2luZyBXb3JrU2hvcC4gIEFuZCBhdm9pZCB1c2luZwoJICAgIHRoZSBiYXNlbmFtZSB3aGVuICdhdXRvY2hkaXInIGlzIG5vdCBzZXQuCkZpbGVzOgkgICAgc3JjL2d1aV94MTEuYywgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjE3MSAoYWZ0ZXIgNi4yLjE2MykKUHJvYmxlbTogICAgVGhlICItb3IiIGFyZ3VtZW50IG9mICJmaW5kIiBkb2Vzbid0IHdvcmsgZm9yIFN5c1Ygc3lzdGVtcy4KU29sdXRpb246ICAgVXNlICItbyIgaW5zdGVhZC4gKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMTcyIChhZnRlciA2LjIuMTY5KQpQcm9ibGVtOiAgICBUaGUgcHJvdG90eXBlIGZvciBfWG1ibGVuKCkgc3RpbGwgY2F1c2VzIHRyb3VibGUuClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIFgxMSBoZWFkZXIgZmlsZSB0aGF0IGRlZmluZXMgdGhlIHByb3RvdHlwZS4KRmlsZXM6CSAgICBzcmMvb3NkZWYyLmguaW4sIHNyYy9vc2RlZi5zaAoKUGF0Y2ggNi4yLjE3MyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBSdWJ5IGludGVyZmFjZSBkb2Vzbid0IHdvcmsgd2l0aCBSdWJ5IDEuOC4wIGZvciBvdGhlcgoJICAgIGNvbXBpbGVycyB0aGFuIE1TVkMuClNvbHV0aW9uOiAgIEZpeCB0aGUgQkM1LCBDeWd3aW4gYW5kIE1pbmd3IG1ha2VmaWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1hawoKUGF0Y2ggNi4yLjE3NApQcm9ibGVtOiAgICBBZnRlciB0aGUgIjppbnRybyIgbWVzc2FnZSBvbmx5IGEgbW91c2UgY2xpY2sgaW4gdGhlIGxhc3QgbGluZQoJICAgIGdldHMgcGFzdCB0aGUgaGl0LXJldHVybiBwcm9tcHQuClNvbHV0aW9uOiAgIEFjY2VwdCBhIGNsaWNrIGF0IG9yIGJlbG93IHRoZSBoaXQtcmV0dXJuIHByb21wdC4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi4xNzUKUHJvYmxlbTogICAgQ2hhbmdpbmcgJ2JhY2t1cGV4dCcgaW4gYSAqV3JpdGVQcmUgYXV0b2NvbW1hbmQgZG9lc24ndCB3b3JrLgoJICAgIChXaWxsaWFtIE5hdHRlcikKU29sdXRpb246ICAgTW92ZSB0aGUgdXNlIG9mIHBfYmV4IHRvIGFmdGVyIGV4ZWN1dGluZyB0aGUgKldyaXRlUHJlCgkgICAgYXV0b2NvbW1hbmRzLiAgQWxzbyBhdm9pZHMgcmVhZGluZyBhbGxvY2F0ZWQgbWVtb3J5IGFmdGVyIGZyZWVpbmcuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMTc2ClByb2JsZW06ICAgIEFjY2VudGVkIGNoYXJhY3RlcnMgaW4gdHJhbnNsYXRlZCBoZWxwIGZpbGVzIGFyZSBub3QgaGFuZGxlZAoJICAgIGNvcnJlY3RseS4gKEZhYmllbiBWYXlzc2llcmUpClNvbHV0aW9uOiAgIEluY2x1ZGUgIjE5Mi0yNTUiIGluICdpc2tleXdvcmQnIGZvciB0aGUgaGVscCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjE3NyAoZXh0cmEpClByb2JsZW06ICAgIFZpc1ZpbTogT3BlbmluZyBhIGZpbGUgd2l0aCBhIHNwYWNlIGluIHRoZSBuYW1lIGRvZXNuJ3Qgd29yay4gKFJvYgoJICAgIFJldHRlcikgIEFyYml0cmFyeSBjb21tYW5kcyBhcmUgYmVpbmcgZXhlY3V0ZWQuIChOZWlsIEJpcmQpClNvbHV0aW9uOiAgIFB1dCBhIGJhY2tzbGFzaCBpbiBmcm9udCBvZiBldmVyeSBzcGFjZSBpbiB0aGUgZmlsZSBuYW1lLgoJICAgIChHZXJhcmQgQmxhaXMpICBUZXJtaW5hdGUgdGhlIENUUkwtXCBDVFJMLU4gY29tbWFuZCB3aXRoIGEgTlVMLgpGaWxlczoJICAgIHNyYy9WaXNWaW0vQ29tbWFuZHMuY3BwLCBzcmMvVmlzVmltL1Zpc1ZpbS5yYwoKUGF0Y2ggNi4yLjE3OApQcm9ibGVtOiAgICBQZW9wbGUgd2hvIGRvbid0IGtub3cgaG93IHRvIGV4aXQgVmltIHRyeSBwcmVzc2luZyBDVFJMLUMuClNvbHV0aW9uOiAgIEdpdmUgYSBtZXNzYWdlIGhvdyB0byBleGl0IFZpbSB3aGVuIENUUkwtQyBpcyBwcmVzc2VkIGFuZCBpdAoJICAgIGRvZXNuJ3QgY2FuY2VsIGFueXRoaW5nLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjE3OSAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBlbl9nYiBtZXNzYWdlcyBmaWxlIGlzbid0IGZvdW5kIG9uIGNhc2Ugc2Vuc2l0aXZlIHN5c3RlbXMuClNvbHV0aW9uOiAgIFJlbmFtZSBlbl9nYiB0byBlbl9HQi4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgc3JjL3BvL2VuX2diLnBvLCBzcmMvcG8vZW5fR0IucG8sIHNyYy9wby9NYWtlX21pbmcubWFrLAoJICAgIHNyYy9wby9NYWtlX212Yy5tYWssIHNyYy9wby9NYWtlZmlsZSwgc3JjL3BvL1JFQURNRV9tdmMudHh0CgpQYXRjaCA2LjIuMTgwClByb2JsZW06ICAgIENvbXBpbGluZyB3aXRoIEdUSzIgb24gV2luMzIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBJbmNsdWRlIGdka3dpbjMyLmggaW5zdGVhZCBvZiBnZGt4LmguIChTcmluYXRoIEF2YWRoYW51bGEpCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9ndGtfZi5jLCBzcmMvZ3VpX2d0a194MTEuYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4xODEgKGFmdGVyIDYuMi4xNzEpClByb2JsZW06ICAgIFRoZSAiLW8iIGFyZ3VtZW50IG9mICJmaW5kIiBoYXMgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgaW1wbGllZAoJICAgICJhbmQiIHdpdGggIi1wcmludCIuClNvbHV0aW9uOiAgIEFkZCBwYXJlbnRoZXNpcyBhcm91bmQgdGhlICItbyIgZXhwcmVzc2lvbi4gKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMTgyIChhZnRlciA2LjIuMDk0KQpQcm9ibGVtOiAgICBDb21waWxhdGlvbiB3aXRoIHRpbnkgZmVhdHVyZXMgZmFpbHMgYmVjYXVzZSBvZiBtaXNzaW5nCgkgICAgZ2V0X3Bhc3RfaGVhZCgpIGZ1bmN0aW9uLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlICNpZmRlZiBmb3IgZ2V0X3Bhc3RfaGVhZCgpLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuMTgzIChhZnRlciA2LjIuMTc4KQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBjaGFyL3Vuc2lnbmVkIGNoYXIgbWl4dXAuClNvbHV0aW9uOiAgIFVzZSBNU0coKSBpbnN0ZWFkIG9mIG1zZygpLiAoVG9ueSBMZW5laXMpCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMTg0ClByb2JsZW06ICAgIFdpdGggJ2Zvcm1hdG9wdGlvbnMnIHNldCB0byAiMWF3IiBpbnNlcnRpbmcgdGV4dCBtYXkgY2F1c2UgdGhlCgkgICAgcGFyYWdyYXBoIHRvIGJlIGVuZGVkLiAoQWxhbiBTY2htaXR0KQpTb2x1dGlvbjogICBUZW1wb3JhcmlseSBhZGQgYW4gZXh0cmEgc3BhY2UgdG8gbWFrZSB0aGUgcGFyYWdyYXBoIGNvbnRpbnVlCgkgICAgYWZ0ZXIgbW92aW5nIHRoZSB3b3JkIGFmdGVyIHRoZSBjdXJzb3IgdG8gdGhlIG5leHQgbGluZS4KCSAgICBBbHNvIGZvcm1hdCB3aGVuIHByZXNzaW5nIEVzYy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9lZGl0LnBybwoKUGF0Y2ggNi4yLjE4NQpQcm9ibGVtOiAgICBSZXN0b3JpbmcgYSBzZXNzaW9uIHdpdGggemVyby1oZWlnaHQgd2luZG93cyBkb2VzIG5vdCB3b3JrCgkgICAgcHJvcGVybHkuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBBY2NlcHQgYSB6ZXJvIGFyZ3VtZW50IHRvICI6cmVzaXplIiBhcyBpbnRlbmRlZC4gIEFkZCBhIHdpbmRvdwoJICAgIG51bWJlciBhcmd1bWVudCB0byAiOnJlc2l6ZSIgdG8gYmUgYWJsZSB0byBzZXQgdGhlIHNpemUgb2Ygb3RoZXIKCSAgICB3aW5kb3dzLCBiZWNhdXNlIHRoZSBjdXJyZW50IHdpbmRvdyBjYW5ub3QgYmUgemVyby1oZWlnaHQuCgkgICAgRml4IHRoZSBleHBsb3JlciBwbHVnaW4gdG8gYXZvaWQgY2hhbmdpbmcgdGhlIHdpbmRvdyBzaXplcy4gIEFkZAoJICAgIHRoZSB3aW5yZXN0Y21kKCkgZnVuY3Rpb24gZm9yIHRoaXMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbSwgc3JjL2V2YWwuYywKCSAgICBzcmMvZXhfY21kcy5oLCBzcmMvZXhfZG9jbWQuYywgc3JjL3Byb3RvL3dpbmRvdy5wcm8sIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjE4NiAoYWZ0ZXIgNi4yLjE4NSkKUHJvYmxlbTogICAgRG9jdW1lbnRhdGlvbiBmaWxlIGV2YWwudHh0IGNvbnRhaW5zIGV4YW1wbGVzIHdpdGhvdXQgaW5kZW50LgpTb2x1dGlvbjogICBJbnNlcnQgdGhlIGluZGVudC4gIEFsc28gZml4IG90aGVyIG1pc3Rha2VzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0CgpQYXRjaCA2LjIuMTg3ClByb2JsZW06ICAgIFVzaW5nIEluc3VyZSsrIHJldmVhbHMgYSBudW1iZXIgb2YgYnVncy4gIChEb21pbmlxdWUgUGVsbGUpClNvbHV0aW9uOiAgIEluaXRpYWxpemUgdmFyaWFibGVzIHdoZXJlIG5lZWRlZC4gIEZyZWUgYWxsb2NhdGVkIG1lbW9yeSB0byBhdm9pZAoJICAgIGxlYWtzLiAgRml4IGNvbXBhcmluZyB0YWdzIHRvIGF2b2lkIHJlYWRpbmcgcGFzdCBhbGxvY2F0ZWQgbWVtb3J5LgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2RpZmYuYywgc3JjL2ZpbGVpby5jLCBzcmMvbWFyay5jLCBzcmMvbWlzYzEuYywKCSAgICBzcmMvbWlzYzIuYywgc3JjL29wcy5jLCBzcmMvb3B0aW9uLmMsIHNyYy90YWcuYywgc3JjL3VpLmMKClBhdGNoIDYuMi4xODggKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBNdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gYSBmaWxlbmFtZSBjYXVzZSB0cm91YmxlIGZvcgoJICAgIHRoZSB3aW5kb3cgdGl0bGUuClNvbHV0aW9uOiAgIFJldHVybiB3aGVuIHRoZSB3aWRlIGZ1bmN0aW9uIGZvciBzZXR0aW5nIHRoZSB0aXRsZSBkaWQgaXRzIHdvcmsuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjE4OQpQcm9ibGVtOiAgICBXaGVuIHNldHRpbmcgJ3ZpbWluZm8nIGFmdGVyIGVkaXRpbmcgYSBuZXcgYnVmZmVyIGl0cyBtYXJrcyBhcmUKCSAgICBub3Qgc3RvcmVkLiAoS2VpdGggUm9iZXJ0cykKU29sdXRpb246ICAgU2V0IHRoZSAiYl9tYXJrc19yZWFkIiBmbGFnIHdoZW4gc2tpcHBpbmcgdG8gcmVhZCBtYXJrcyBmcm9tIHRoZQoJICAgIHZpbWluZm8gZmlsZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4xOTAKUHJvYmxlbTogICAgV2hlbiBlZGl0aW5nIGEgY29tcHJlc3NlZCBmaWxlcywgbWFya3MgYXJlIGxvc3QuClNvbHV0aW9uOiAgIEFkZCB0aGUgIjpsb2NrbWFya3MiIG1vZGlmaWVyIGFuZCB1c2UgaXQgaW4gdGhlIGd6aXAgcGx1Z2luLgoJICAgIE1ha2UgZXhpc3RzKCkgYWxzbyBjaGVjayBmb3IgY29tbWFuZCBtb2RpZmllcnMsIHNvIHRoYXQgdGhlCgkgICAgZXhpc3RlbmNlIG9mICI6bG9ja21hcmtzIiBjYW4gYmUgY2hlY2tlZCBmb3IuCgkgICAgQWxzbyBhZGQgIjprZWVwbWFya3MiIHRvIGF2b2lkIHRoYXQgbWFya3MgYXJlIGRlbGV0ZWQgd2hlbgoJICAgIGZpbHRlcmluZyB0ZXh0LgoJICAgIFdoZW4gZGVsZXRpbmcgbGluZXMgcHV0IG1hcmtzICdBIC0gJ1ogYW5kICcwIC0gJzkgYXQgdGhlIGZpcnN0CgkgICAgZGVsZXRlZCBsaW5lIGluc3RlYWQgb2YgY2xlYXJpbmcgdGhlIG1hcmsuICBUaGV5IHdlcmUga2VwdCBpbiB0aGUKCSAgICB2aW1pbmZvIGZpbGUgYW55d2F5LgoJICAgIEF2b2lkIHRoYXQgdGhlIGd6aXAgcGx1Z2luIHB1dHMgZGVsZXRlZCB0ZXh0IGluIHJlZ2lzdGVycy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9tb3Rpb24udHh0LCBydW50aW1lL3BsdWdpbi9nemlwLnZpbSwgc3JjL2V4X2NtZHMuYywKCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL21hcmsuYywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4yLjE5MQpQcm9ibGVtOiAgICBUaGUgaW50cm8gbWVzc2FnZSBpcyBvdXRkYXRlZC4gIEluZm9ybWF0aW9uIGFib3V0IHNwb25zb3JpbmcgYW5kCgkgICAgcmVnaXN0ZXJpbmcgaXMgbWlzc2luZy4KU29sdXRpb246ICAgU2hvdyBpbmZvIGFib3V0IHNwb25zb3JpbmcgYW5kIHJlZ2lzdGVyaW5nIFZpbSBpbiB0aGUgaW50cm8KCSAgICBtZXNzYWdlIG5vdyBhbmQgdGhlbi4gIEFkZCBoZWxwIGZpbGUgYWJvdXQgc3BvbnNvcmluZy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9oZWxwLnR4dCwgcnVudGltZS9kb2Mvc3BvbnNvci50eHQsIHJ1bnRpbWUvZG9jL3RhZ3MsCgkgICAgcnVudGltZS9tZW51LnZpbSwgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4yLjE5MgpQcm9ibGVtOiAgICBVc2luZyBDVFJMLVQgYW5kIENUUkwtRCB3aXRoICJnUiIgbWVzc2VzIHVwIHRoZSB0ZXh0LiAgKEpvbmFodGFuCgkgICAgSGFua2lucykKU29sdXRpb246ICAgQXZvaWQgY2FsbGluZyBjaGFuZ2VfaW5kZW50KCkgcmVjdXJzaXZlbHkuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjE5MwpQcm9ibGVtOiAgICBXaGVuIHJlY2FsbGluZyBhIHNlYXJjaCBwYXR0ZXJuIGZyb20gdGhlIGhpc3RvcnkgZnJvbSBhICI6cyxhL2MsIgoJICAgIGNvbW1hbmQgdGhlICcvJyBlbmRzIHRoZSBzZWFyY2ggc3RyaW5nLiAoSkMgdmFuIFdpbmtlbCkKU29sdXRpb246ICAgU3RvcmUgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIgd2l0aCB0aGUgaGlzdG9yeSBlbnRyaWVzLiAgRXNjYXBlCgkgICAgY2hhcmFjdGVycyB3aGVuIG5lZWRlZCwgcmVwbGFjZSB0aGUgb2xkIHNlcGFyYXRvciB3aXRoIHRoZSBuZXcgb25lLgoJICAgIEFsc28gZml4ZXMgdGhhdCByZWNhbGxpbmcgYSAiLyIgc2VhcmNoIGZvciBhICI/IiBjb21tYW5kIG1lc3NlcyB1cAoJICAgIHRyYWlsaW5nIGZsYWdzLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9leF9nZXRsbi5wcm8sCgkgICAgc3JjL3NlYXJjaC5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMi4xOTQgKGFmdGVyIDYuMi4wNjgpClByb2JsZW06ICAgIEZvciBOZXRCZWFucywgaW5zdGVhZCBvZiB3cml0aW5nIHRoZSBmaWxlIGFuZCBzZW5kaW5nIGFuIGV2ZW50CgkgICAgYWJvdXQgaXQsIHRlbGwgTmV0QmVhbnMgdG8gd3JpdGUgdGhlIGZpbGUuClNvbHV0aW9uOiAgIEFkZCB0aGUgInNhdmUiIGNvbW1hbmQsICJuZXRiZWFuc0J1ZmZlciIgY29tbWFuZCBhbmQKCSAgICAiYnV0dG9uUmVsZWFzZSIgZXZlbnQgdG8gdGhlIG5ldGJlYW5zIHByb3RvY29sLiAgVXBkYXRlZCB0aGUKCSAgICBpbnRlcmZhY2UgdG8gdmVyc2lvbiAyLjIuICAoR29yZG9uIFByaWV1cikKCSAgICBBbHNvOiBvcGVuIGEgZm9sZCB3aGVuIHRoZSBjdXJzb3IgaGFzIGJlZW4gcG9zaXRpb25lZC4KCSAgICBBbHNvOiBmaXggbWVtb3J5IGxlYWssIGZyZWUgcmVzdWx0IG9mIG5iX3F1b3RlKCkuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbmV0YmVhbnMudHh0LCBzcmMvZmlsZWlvLmMsIHNyYy9uZXRiZWFucy5jLAoJICAgIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL25ldGJlYW5zLnBybywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4yLjE5NSAoYWZ0ZXIgNi4yLjE5MCkKUHJvYmxlbTogICAgQ29tcGlsaW5nIGZhaWxzIGZvciBtaXNzaW5nIENQT19SRU1NQVJLIHN5bWJvbC4KU29sdXRpb246ICAgQWRkIHRoZSBwYXRjaCBJIGZvcmdvdCB0byBpbmNsdWRlLi4uCkZpbGVzOgkgICAgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjIuMTk2IChhZnRlciA2LjIuMTkxKQpQcm9ibGVtOiAgICBSZWJ1aWxkaW5nIHRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgdXNlIHRoZSBzcG9uc29yLnR4dCBmaWxlLgpTb2x1dGlvbjogICBBZGQgc3BvbnNvci50eHQgdG8gdGhlIE1ha2VmaWxlLiAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlCgpQYXRjaCA2LjIuMTk3ClByb2JsZW06ICAgIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBmb3JjZSBhIHJlZHJhdyBvZiBzdGF0dXMgbGluZXMuIChHYXJ5CgkgICAgSm9obnNvbikKU29sdXRpb246ICAgQWRkIHRoZSAiOnJlZHJhd3N0YXR1cyIgY29tbWFuZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy92YXJpb3VzLnR4dCwgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMsCgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMTk4ClByb2JsZW06ICAgIEEgZmV3IG1lc3NhZ2VzIGFyZSBub3QgdHJhbnNsYXRlZC4gKEVybmVzdCBBZHJvZ3VlKQpTb2x1dGlvbjogICBNYXJrIHRoZSBtZXNzYWdlcyB0byBiZSB0cmFuc2xhdGVkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4xOTkgKGFmdGVyIDYuMi4xOTQpClByb2JsZW06ICAgIFZpbSBkb2Vzbid0IHdvcmsgcGVyZmVjdGx5IHdlbGwgd2l0aCBOZXRCZWFucy4KU29sdXRpb246ICAgV2hlbiBOZXRCZWFucyBzYXZlcyB0aGUgZmlsZSwgcmVzZXQgdGhlIHRpbWVzdGFtcCB0byBhdm9pZCAiZmlsZQoJICAgIGNoYW5nZWQiIHdhcm5pbmdzLiAgQ2xvc2UgYSBidWZmZXIgaW4gYSBwcm9wZXIgd2F5LiAgRG9uJ3QgdHJ5CgkgICAgZ2l2aW5nIGEgZGVidWcgbWVzc2FnZSB3aXRoIGFuIGludmFsaWQgcG9pbnRlci4gIFNlbmQgYQoJICAgIG5ld0RvdEFuZE1hcmsgbWVzc2FnZSB3aGVuIG5lZWRlZC4gIFJlcG9ydCBhIGNoYW5nZSBieSB0aGUgInIiCgkgICAgY29tbWFuZCB0byBOZXRCZWFucy4gIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jLCBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4yMDAKUHJvYmxlbTogICAgV2hlbiByZWNvdmVyaW5nIGEgZmlsZSwgJ2ZpbGVmb3JtYXQnIGlzIGFsd2F5cyB0aGUgZGVmYXVsdCwgdGh1cwoJICAgIHdyaXRpbmcgdGhlIGZpbGUgbWF5IHJlc3VsdCBpbiBkaWZmZXJlbmNlcy4gKFBlbmVsb3BlIEZ1ZGQpClNvbHV0aW9uOiAgIEJlZm9yZSByZWNvdmVyaW5nIHRoZSBmaWxlIHRyeSByZWFkaW5nIHRoZSBvcmlnaW5hbCBmaWxlIHRvIG9idGFpbgoJICAgIHRoZSB2YWx1ZXMgb2YgJ2ZpbGVmb3JtYXQnLCAnZmlsZWVuY29kaW5nJywgZXRjLgpGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMi4yMDEKUHJvYmxlbTogICAgV2hlbiAnYXV0b3dyaXRlYWxsJyBpcyBzZXQgIjpxYWxsIiBzdGlsbCByZWZ1c2VzIHRvIGV4aXQgaWYgdGhlcmUKCSAgICBpcyBhIG1vZGlmaWVkIGJ1ZmZlci4gKEFudG9pbmUgTWVjaGVseW5jaykKU29sdXRpb246ICAgQXR0ZW1wdCB3cml0aW5nIG1vZGlmaWVkIGJ1ZmZlcnMgYXMgaW50ZW5kZWQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi4yMDIKUHJvYmxlbTogICAgRmlsZXR5cGUgbmFtZXMgb2YgQ0hJTEwgYW5kIGNoIHNjcmlwdCBhcmUgY29uZnVzaW5nLgpTb2x1dGlvbjogICBSZW5hbWUgImNoIiB0byAiY2hpbGwiIGFuZCAiY2hzY3JpcHQiIHRvICJjaCIuCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0sIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL3N5bm1lbnUudmltCgkgICAgcnVudGltZS9zeW50YXgvY2gudmltLCBydW50aW1lL3N5bnRheC9jaGlsbC52aW0KClBhdGNoIDYuMi4yMDMKUHJvYmxlbTogICAgV2l0aCBjaGFyYWN0ZXJ3aXNlIHRleHQgdGhhdCBoYXMgbW9yZSB0aGFuIG9uZSBsaW5lLCAiM1AiIHdvcmtzCgkgICAgd3JvbmcuICAiM3AiIGhhcyB0aGUgc2FtZSBwcm9ibGVtLiAgVGhlcmUgYWxzbyBpcyBhIGRpc3BsYXkKCSAgICBwcm9ibGVtLiAoRGFuaWVsIEdvdWpvdCkKU29sdXRpb246ICAgUGVyZm9ybSBjaGFyYWN0ZXJ3aXNlIHB1dHMgd2l0aCBhIGNvdW50IGluIHRoZSByaWdodCBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi4yMDQgKGFmdGVyIDYuMi4wODYpClByb2JsZW06ICAgICJdXSIgaW4gYSBmaWxlIHdpdGggY2xvc2VkIGZvbGRzIG1vdmVzIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUuCgkgICAgKE5hbSBTdW5nSHl1bikKU29sdXRpb246ICAgRmluZCBvbmUgcG9zaXRpb24gaW4gZWFjaCBjbG9zZWQgZm9sZCwgdGhlbiBtb3ZlIHRvIGFmdGVyIHRoZSBmb2xkLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4yLjIwNSAoZXh0cmEpClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gdGhlIHRhc2tiYXIgaXMgYXQgdGhlIGxlZnQgb3IgdG9wIG9mIHRoZSBzY3JlZW4sCgkgICAgdGhlIFZpbSB3aW5kb3cgcGxhY2VtZW50IGlzIHdyb25nLgpTb2x1dGlvbjogICBDb21wdXRlIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgd2luZG93IGNvcnJlY3RseS4gKFRhcm8KCSAgICBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4yMDYKUHJvYmxlbTogICAgTXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGNhbm5vdCBiZSB1c2VkIGFzIGhvdGtleXMgaW4gYSBjb25zb2xlCgkgICAgZGlhbG9nLiAgKE1hdHRpYXMgRXJraXNzb24pClNvbHV0aW9uOiAgIEhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgcHJvcGVybHkuICBBbHNvIHB1dCAoKSBvciBbXSBhcm91bmQKCSAgICBkZWZhdWx0IGhvdGtleXMuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYywgc3JjL21hY3Jvcy5oCgpQYXRjaCA2LjIuMjA3ClByb2JsZW06ICAgIFdoZW4gJ2VuY29kaW5nJyBpcyBhIG11bHRpLWJ5dGUgZW5jb2RpbmcsIGV4cGFuZGluZyBhbgoJICAgIGFiYnJldmlhdGlvbiB0aGF0IHN0YXJ0cyB3aGVyZSBpbnNlcnRpb24gc3RhcnRlZCByZXN1bHRzIGluCgkgICAgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGluc2VydGlvbiB0byBiZSBkZWxldGVkLiAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIFN0b3Agc2VhcmNoaW5nIGxlZnR3YXJkcyBmb3IgdGhlIHN0YXJ0IG9mIHRoZSB3b3JkIGF0IHRoZSBwb3NpdGlvbgoJICAgIHdoZXJlIGluc2VydGlvbiBzdGFydGVkLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMi4yMDgKUHJvYmxlbTogICAgV2hlbiB1c2luZyBmb2xkIG1hcmtlcnMsIHRocmVlIGxpbmVzIGluIGEgcm93IGhhdmUgdGhlIHN0YXJ0CgkgICAgbWFya2VyIGFuZCBkZWxldGluZyB0aGUgZmlyc3Qgb25lIHdpdGggImRkIiwgYSBuZXN0ZWQgZm9sZCBpcyBub3QKCSAgICBkZWxldGVkLiAgKEthbWlsIEJ1cnp5bnNraSkKCSAgICBVc2luZyBtYXJrZXIgZm9sZGluZywgYSBsZXZlbCAxIGZvbGQgZG9lc24ndCBzdG9wIHdoZW4gaXQgaXMKCSAgICBmb2xsb3dlZCBieSAie3t7MiIsIHN0YXJ0aW5nIGEgbGV2ZWwgMiBmb2xkLgpTb2x1dGlvbjogICBEb24ndCBzdG9wIHVwZGF0aW5nIGZvbGRzIGF0IHRoZSBlbmQgb2YgYSBjaGFuZ2Ugd2hlbiB0aGUgbmVzdGluZwoJICAgIGxldmVsIG9mIGZvbGRzIGlzIGxhcmdlciB0aGFuIHRoZSBmb2xkIGxldmVsLgoJICAgIENvcnJlY3RseSBjb21wdXRlIHRoZSBudW1iZXIgb2YgZm9sZHMgdGhhdCBzdGFydCBhdCAie3t7MiIuCgkgICAgQWxzbyBhdm9pZCBhIGNyYXNoIGZvciBhIE5VTEwgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjIuMjA5ClByb2JsZW06ICAgIEEgYm9ndXMgZm9sZCBpcyBjcmVhdGVkIHdoZW4gdXNpbmcgIlAiIHdoaWxlIHRoZSBjdXJzb3IgaXMgaW4gdGhlCgkgICAgbWlkZGxlIG9mIGEgY2xvc2VkIGZvbGQuIChLYW1pbCBCdXJ6eW5za2kpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGxpbmUgbnVtYmVyIHdoZXJlIG1hcmtzIGFyZSBtb2RpZmllZCBmb3IgY2xvc2VkIGZvbGRzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjIxMCAoZXh0cmEpClByb2JsZW06ICAgIE1hYyBPU1g6IGFudGlhbGlhc2VkIGZvbnRzIGFyZSBub3Qgc3VwcG9ydGVkLgpTb2x1dGlvbjogICBBZGQgdGhlICdhbnRpYWxpYXMnIG9wdGlvbiB0byBzd2l0Y2ggb24gYW50aWFsaWFzaW5nIG9uIE1hYyBPU1gKCSAgICAxMC4yIGFuZCBsYXRlci4gKFBldGVyIEN1Y2thKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvZ3VpX21hYy5jLCBzcmMvb3B0aW9uLmgsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjIxMSAoZXh0cmEpClByb2JsZW06ICAgIENvZGUgZm9yIGhhbmRsaW5nIGZpbGUgZHJvcHBlZCBvbiBWaW0gaXMgZHVwbGljYXRlZC4KU29sdXRpb246ICAgTW92ZSB0aGUgY29tbW9uIGNvZGUgdG8gZ3VpX2hhbmRsZV9kcm9wKCkuCgkgICAgQWRkIGNvZGUgdG8gZHJvcCB0aGUgZmlsZXMgaW4gdGhlIHdpbmRvdyB1bmRlciB0aGUgY3Vyc29yLgoJICAgIFN1cHBvcnQgZHJhZyZkcm9wIG9uIHRoZSBNYWNpbnRvc2guICAoVGFybyBNdXJhb2thKQoJICAgIFdoZW4gZHJvcHBpbmcgYSBkaXJlY3RvcnkgbmFtZSBlZGl0IHRoYXQgZGlyZWN0b3J5ICh1c2luZyB0aGUKCSAgICBleHBsb3JlciBwbHVnaW4pCgkgICAgRml4IHRoYXQgY2hhbmdpbmcgZGlyZWN0b3J5IHdpdGggU2hpZnQgcHJlc3NlZCBkaWRuJ3Qgd29yayBmb3IKCSAgICByZWxhdGl2ZSBwYXRoIG5hbWVzLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL2d1aS5jLCBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV9tYWMuYywKCSAgICBzcmMvZ3VpX3c0OC5jLCBzcmMvcHJvdG8vZmlsZWlvLnBybywgc3JjL3Byb3RvL2d1aS5wcm8KClBhdGNoIDYuMi4yMTIgKGFmdGVyIDYuMi4xOTkpClByb2JsZW06ICAgIE5ldEJlYW5zOiBSZXBsYWNpbmcgd2l0aCBhIGNvdW50IGlzIG5vdCBoYW5kbGVkIGNvcnJlY3RseS4KU29sdXRpb246ICAgTW92ZSByZXBvcnRpbmcgdGhlIGNoYW5nZSBvdXRzaWRlIG9mIHRoZSBsb29wIGZvciB0aGUgY291bnQuCgkgICAgKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMjEzIChhZnRlciA2LjIuMjA4KQpQcm9ibGVtOiAgICBVc2luZyBtYXJrZXIgZm9sZGluZywgInt7ezEiIGRvZXNuJ3Qgc3RhcnQgYSBuZXcgZm9sZCB3aGVuIGFscmVhZHkKCSAgICBhdCBmb2xkIGxldmVsIDEuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBDb3JyZWN0bHkgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGZvbGRzIHRoYXQgc3RhcnQgYXQgInt7ezEiLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMi4yMTQgKGFmdGVyIDYuMi4yMTEpIChleHRyYSkKUHJvYmxlbTogICAgV2FybmluZyBmb3IgYW4gdW51c2VkIHZhcmlhYmxlLgpTb2x1dGlvbjogICBEZWxldGUgdGhlIGRlY2xhcmF0aW9uLiAoQmlsbCBNY0NhcnRoeSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMjE1ClByb2JsZW06ICAgIE5ldEJlYW5zOiBwcm9ibGVtcyBzYXZpbmcgYW4gdW5tb2RpZmllZCBmaWxlLgpTb2x1dGlvbjogICBBZGQgaXNOZXRiZWFuc01vZGlmaWVkKCkgZnVuY3Rpb24uICBEaXNhYmxlIG5ldGJlYW5zX3VubW9kaWZpZWQoKS4KCSAgICAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9uZXRiZWFucy5jLCBzcmMvcHJvdG8vbmV0YmVhbnMucHJvLAoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgcnVudGltZS9kb2MvdGFncwoKUGF0Y2ggNi4yLjIxNiAoYWZ0ZXIgNi4yLjIwNikKUHJvYmxlbTogICAgTXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHN0aWxsIGNhbm5vdCBiZSB1c2VkIGFzIGhvdGtleXMgaW4gYSBjb25zb2xlCgkgICAgZGlhbG9nLiAgKE1hdHRpYXMgRXJraXNzb24pClNvbHV0aW9uOiAgIE1ha2UgZ2V0X2tleXN0cm9rZSgpIGhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4yMTcKUHJvYmxlbTogICAgR1RLOiBzZXR0aW5nIHRoZSB0aXRsZSBkb2Vzbid0IGFsd2F5cyB3b3JrIGNvcnJlY3RseS4KU29sdXRpb246ICAgSW52b2tlIGd1aV9tY2hfc2V0dGl0bGUoKS4gKFRvbWFzIFN0ZWhsaWspCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjIxOApQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBmdW5jdGlvbiB3aXRob3V0IHByb3RvdHlwZS4KU29sdXRpb246ICAgQWRkIGFyZ3VtZW50IHR5cGVzIHRvIHRoZSBtc2dDQiBmaWVsZCBvZiB0aGUgQmFsbG9vbkV2YWwgc3RydWN0LgpGaWxlczoJICAgIHNyYy9ndWlfYmV2YWwuaAoKUGF0Y2ggNi4yLjIxOQpQcm9ibGVtOiAgICBTeW50YXggaGlnaGxpZ2h0aW5nIGhhbmdzIG9uIGFuIGVtcHR5IG1hdGNoIG9mIGFuIGl0ZW0gd2l0aCBhCgkgICAgbmV4dGdyb3VwLiAgKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoYXQgdGhlIGl0ZW0gaGFzIGFscmVhZHkgbWF0Y2hlZCBhbmQgZG9uJ3QgbWF0Y2ggaXQKCSAgICBhZ2FpbiBhdCB0aGUgc2FtZSBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi4yMjAKUHJvYmxlbTogICAgV2hlbiBhIFZpbSBzZXJ2ZXIgcnVucyBpbiBhIGNvbnNvbGUgYSByZW1vdGUgY29tbWFuZCBpc24ndCBoYW5kbGVkCgkgICAgYmVmb3JlIGEga2V5IGlzIHR5cGVkLiAgKEpvc2h1YSBOZXVoZWlzZWwpClNvbHV0aW9uOiAgIERvbid0IHRyeSByZWFkaW5nIG1vcmUgaW5wdXQgd2hlbiBhIGNsaWVudC1zZXJ2ZXIgY29tbWFuZCBoYXMgYmVlbgoJICAgIHJlY2VpdmVkLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4yMjEKUHJvYmxlbTogICAgTm8gZmlsZSBuYW1lIGNvbXBsZXRpb24gZm9yICI6Y3Njb3BlIGFkZCIuClNvbHV0aW9uOiAgIEFkZCB0aGUgWEZJTEUgZmxhZyB0byAiOmNzY29wZSIuIChHYXJ5IEpvaG5zb24pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuaAoKUGF0Y2ggNi4yLjIyMgpQcm9ibGVtOiAgICBVc2luZyAiLS1yZW1vdGUiIHNldmVyYWwgdGltZXMgb24gYSByb3cgb25seSBvcGVucyBzb21lIG9mIHRoZQoJICAgIGZpbGVzLiAoRGFueSBTdC1BbWFudCkKU29sdXRpb246ICAgRG9uJ3QgZGVsZXRlIGFsbCB0eXBlYWhlYWQgd2hlbiB0aGUgc2VydmVyIHJlY2VpdmVzIGEgY29tbWFuZCBmcm9tCgkgICAgYSBjbGllbnQsIG9ubHkgZGVsZXRlIHR5cGVkIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4yLjIyMwpQcm9ibGVtOiAgICBDc2NvcGU6IEF2b2lkIGEgaGFuZyB3aGVuIGNzY29wZSB3YWl0cyBmb3IgYSByZXNwb25zZSB3aGlsZSBWaW0KCSAgICB3YWl0cyBmb3IgYSBwcm9tcHQuCgkgICAgRXJyb3IgbWVzc2FnZXMgZnJvbSBDc2NvcGUgbWVzcyB1cCB0aGUgZGlzcGxheS4KU29sdXRpb246ICAgRGV0ZWN0IHRoZSBoaXQtZW50ZXIgbWVzc2FnZSBhbmQgcmVzcG9uZCBieSBzZW5kaW5nIGEgcmV0dXJuCgkgICAgY2hhcmFjdGVyIHRvIGNzY29wZS4gKEdhcnkgSm9obnNvbikKCSAgICBVc2UgRU1TRygpIGFuZCBzdHJlcnJvcigpIHdoZW4gcG9zc2libGUuICBSZXBsYWNlIHBlcnJvcigpIHdpdGgKCSAgICBQRVJST1IoKSBldmVyeXdoZXJlLCBhZGQgZW1zZzMoKS4KRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvaWZfY3Njb3BlLmMsIHNyYy9pbnRlZ3JhdGlvbi5jLCBzcmMvbWVzc2FnZS5jLAoJICAgIHNyYy9wcm90by9tZXNzYWdlLnBybywgc3JjL21pc2MyLmMsIHNyYy9uZXRiZWFucy5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4yMjQKUHJvYmxlbTogICAgTWFjOiBDYW4ndCBjb21waWxlIHdpdGggc21hbGwgZmVhdHVyZXMuIChBeGVsIEtpZWxob3JuKQpTb2x1dGlvbjogICBBbHNvIGluY2x1ZGUgdmltX2NoZGlyZmlsZSgpIHdoZW4gY29tcGlsaW5nIGZvciB0aGUgTWFjLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuMjI1ClByb2JsZW06ICAgIE5ldEJlYW5zOiBSZXBvcnRlZCBtb2RpZmllZCBzdGF0ZSBpc24ndCBleGFjdGx5IHJpZ2h0LgpTb2x1dGlvbjogICBSZXBvcnQgYSBmaWxlIGJlaW5nIG1vZGlmaWVkIGluIHRoZSBOZXRCZWFucyB3YXkuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4yMjYgKGFmdGVyIDYuMi4xMDcpIChleHRyYSkKUHJvYmxlbTogICAgVGhlICJ3czItMzIubGliIiBmaWxlIGlzbid0IGFsd2F5cyBhdmFpbGFibGUuClNvbHV0aW9uOiAgIFVzZSAiV1NvY2szMi5saWIiIGluc3RlYWQuIChUYXJvIE11cmFva2EsIERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4yLjIyNyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSAiUEMiIHN5bWJvbCBpcyBkZWZpbmVkIGJ1dCBub3QgdXNlZCBhbnl3aGVyZS4KU29sdXRpb246ICAgUmVtb3ZlICItRFBDIiBmcm9tIHRoZSBtYWtlZmlsZXMuCkZpbGVzOgkgICAgc3JjL01ha2VfYmMzLm1haywgc3JjL01ha2VfYmM1Lm1haywgc3JjL01ha2VfY3lnLm1haywKCSAgICBzcmMvTWFrZV9taW5nLm1hawoKUGF0Y2ggNi4yLjIyOApQcm9ibGVtOiAgICBSZWNlaXZpbmcgQ1RSTC1cIENUUkwtTiBhZnRlciB0eXBpbmcgImYiIG9yICJtIiBkb2Vzbid0IHN3aXRjaCBWaW0KCSAgICBiYWNrIHRvIE5vcm1hbCBtb2RlLiAgU2FtZSBmb3IgQ1RSTC1cIENUUkwtRy4KU29sdXRpb246ICAgQ2hlY2sgaWYgdGhlIGNoYXJhY3RlciB0eXBlZCBhZnRlciBhIGNvbW1hbmQgaXMgQ1RSTC1cIGFuZCBvYnRhaW4KCSAgICBhbm90aGVyIGNoYXJhY3RlciB0byBjaGVjayBmb3IgQ1RSTC1OIG9yIENUUkwtRywgd2FpdGluZyB1cCB0bwoJICAgICd0dGltZW91dGxlbicgbXNlYy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4yMjkKUHJvYmxlbTogICAgIjpmdW5jdGlvbiIgd2l0aCBhIG5hbWUgdGhhdCB1c2VzIG1hZ2ljIGN1cmxpZXMgZG9lcyBub3Qgd29yawoJICAgIGluc2lkZSBhIGZ1bmN0aW9uLiAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIFNraXAgb3ZlciB0aGUgZnVuY3Rpb24gbmFtZSBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjMwIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IGEgY29tcGxleCBwYXR0ZXJuIG1heSBjYXVzZSBhIGNyYXNoLgpTb2x1dGlvbjogICBVc2UgX190cnkgYW5kIF9fZXhjZXB0IHRvIGNhdGNoIHRoZSBleGNlcHRpb24gYW5kIGhhbmRsZSBpdAoJICAgIGdyYWNlZnVsbHksIHdoZW4gcG9zc2libGUuICBBZGQgbXlyZXNldHN0a29mbHcoKSB0byByZXNldCB0aGUKCSAgICBzdGFjayBvdmVyZmxvdy4gKEJlbmphbWluIFBldGVyc29uKQpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWssIHNyYy9vc19tc3dpbi5jIHNyYy9vc193aW4zMi5jLCBzcmMvb3Nfd2luMzIuaCwKCSAgICBzcmMvcHJvdG8vb3Nfd2luMzIucHJvLCBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMi4yMzEgKGFmdGVyIDYuMi4wNDYpClByb2JsZW06ICAgIFZhcmlvdXMgcHJvYmxlbXMgd2hlbiBhbiBlcnJvciBleGNlcHRpb24gaXMgcmFpc2VkIGZyb20gd2l0aGluIGEKCSAgICBidWlsdGluIGZ1bmN0aW9uLiAgV2hlbiBpdCBpcyBpbnZva2VkIHdoaWxlIGV2YWx1YXRpbmcgYXJndW1lbnRzCgkgICAgdG8gYSBmdW5jdGlvbiBmb2xsb3dpbmcgYXJndW1lbnRzIGFyZSBzdGlsbCBldmFsdWF0ZWQuICBXaGVuCgkgICAgaW52b2tlZCB3aXRoIGEgbGluZSByYW5nZSBpdCB3aWxsIGJlIGNhbGxlZCBmb3IgcmVtYWluaW5nIGxpbmVzLgpTb2x1dGlvbjogICBVcGRhdGUgImZvcmNlX2Fib3J0IiBhbHNvIGFmdGVyIGNhbGxpbmcgYSBidWlsdGluIGZ1bmN0aW9uLCBzbwoJICAgIHRoYXQgYWJvcnRpbmcoKSBhbHdheXMgcmV0dXJucyB0aGUgY29ycmVjdCB2YWx1ZS4gKFNlcnZhdGl1cwoJICAgIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZXZhbC5jLCBzcmMvcHJvdG8vZXhfZXZhbC5wcm8sCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDQ5Lm9rLCBzcmMvdGVzdGRpci90ZXN0NDkudmltCgpQYXRjaCA2LjIuMjMyClByb2JsZW06ICAgICI6cHl0aG9uIHZpbS5jb21tYW5kKCdweXRob24gcHJpbnQgMioyJykiIGNyYXNoZXMgVmltLiAgKEV1Z2VuZQoJICAgIE1pbmtvdnNraWkpClNvbHV0aW9uOiAgIERpc2FsbG93IGV4ZWN1dGluZyBhIFB5dGhvbiBjb21tYW5kIHJlY3Vyc2l2ZWx5IGFuZCBnaXZlIGFuIGVycm9yCgkgICAgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi4yMzMKUHJvYmxlbTogICAgT24gTWFjIE9TWCBhZGRpbmcgLXB0aHJlYWQgZm9yIFB5dGhvbiBvbmx5IGdlbmVyYXRlcyBhIHdhcm5pbmcuCgkgICAgVGhlIHRlc3QgZm9yIFBlcmwgdGhyZWFkcyByZWplY3RzIFBlcmwgd2hpbGUgaXQncyBPSy4KCSAgICBUY2wgZG9lc24ndCB3b3JrIGF0IGFsbC4KCSAgICBUaGUgdGVzdCBmb3IgUnVieSBmYWlscyBpZiBydWJ5IGV4aXN0cyBidXQgdGhlcmUgYXJlIG5vIGhlYWRlcgoJICAgIGZpbGVzLiAgVGhlIFJ1YnkgbGlicmFyeSBpc24ndCBkZXRlY3RlZCBwcm9wZXJseQpTb2x1dGlvbjogICBBdm9pZCBhZGRpbmcgLXB0aHJlYWQgb24gTWFjIE9TWC4gIEFjY2VwdCBQZXJsIHRocmVhZHMgd2hlbiBpdCdzCgkgICAgbm90IHRoZSA1LjUgdGhyZWFkcy4KCSAgICBVc2UgdGhlIFRjbCBmcmFtZXdvcmsgZm9yIGhlYWRlciBmaWxlcy4gIEZvciBSdWJ5IHJlbmFtZSBjV2luZG93CgkgICAgdG8gY1ZpbVdpbmRvdyB0byBhdm9pZCBhIG5hbWUgY2xhc2guIChLZW4gU2NvdHQpCgkgICAgT25seSBlbmFibGUgUnVieSB3aGVuIHRoZSBoZWFkZXIgZmlsZXMgY2FuIGJlIGZvdW5kLiAgVXNlICItbHJ1YnkiCgkgICAgaW5zdGVhZCBvZiAibGlicnVieS5hIiB3aGVuIGl0IGNhbid0IGJlIGZvdW5kLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2lmX3J1YnkuYwoKUGF0Y2ggNi4yLjIzNApQcm9ibGVtOiAgICBHVEsgMiBHVUk6ICI6c3AiIGFuZCB0aGUgIjpxIiBsZWF2ZXMgdGhlIGN1cnNvciBvbiB0aGUgY29tbWFuZAoJICAgIGxpbmUuClNvbHV0aW9uOiAgIEZsdXNoIG91dHB1dCBiZWZvcmUgcmVtb3Zpbmcgc2Nyb2xsYmFycy4gIEFsc28gZG8gdGhpcyBpbiBvdGhlcgoJICAgIHBsYWNlcyB3aGVyZSBndWlfbWNoXyooKSBmdW5jdGlvbnMgYXJlIGludm9rZWQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL29wdGlvbi5jLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMi4yMzUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ3Vyc29yIGlzbid0IHJlbW92ZWQgd2l0aCBhIDI1eDgwIHdpbmRvdyBhbmQgZG9pbmc6CgkgICAgIjE4MzBpYTxFc2M+NDAwYS08RXNjPjB3MCIuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgY2FsbCB0byBndWlfdW5kcmF3X2N1cnNvcigpIGZyb20gZ3VpX21jaF9pbnNlcnRfbGluZXMoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMjM2ClByb2JsZW06ICAgIFVzaW5nIGd2aW0gd2l0aCBBZ2lkZSBnaXZlcyAiY29ubmVjdGlvbiBsb3N0IiBlcnJvciBtZXNzYWdlcy4KU29sdXRpb246ICAgT25seSBnaXZlIHRoZSAiY29ubmVjdGlvbiBsb3N0IiBtZXNzYWdlIHdoZW4gdGhlIGJ1ZmZlciB3YXMgb25jZQoJICAgIG93bmVkIGJ5IE5ldEJlYW5zLgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuMjM3ClByb2JsZW06ICAgIEdUSyAyOiBUaGFpIHRleHQgaXMgZHJhd24gd3JvbmcuICBJdCBjaGFuZ2VzIHdoZW4gbW92aW5nIHRoZQoJICAgIGN1cnNvciBvdmVyIGl0LgpTb2x1dGlvbjogICBEaXNhYmxlIHRoZSBzaGFwaW5nIGVuZ2luZSwgaXQgbW92ZXMgY29tYmluaW5nIGNoYXJhY3RlcnMgdG8gYQoJICAgIHdyb25nIHBvc2l0aW9uIGFuZCBjb21iaW5lcyBjaGFyYWN0ZXJzLCB3aGlsZSBkcmF3aW5nIHRoZSBjdXJzb3IKCSAgICBkb2Vzbid0IGNvbWJpbmUgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4yLjIzOCAoYWZ0ZXIgNi4yLjIzMSkKUHJvYmxlbTogICAgIjpmdW5jdGlvbiIgZG9lcyBub3Qgd29yayBpbnNpZGUgYSB3aGlsZSBsb29wLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgQWRkIGdldF93aGlsZV9saW5lKCkgYW5kIHBhc3MgaXQgdG8gZG9fb25lX2NtZCgpIHdoZW4gaW4gYSB3aGlsZQoJICAgIGxvb3AsIHNvIHRoYXQgYWxsIGxpbmVzIGFyZSBzdG9yZWQgYW5kIGNhbiBiZSB1c2VkIGFnYWluIHdoZW4KCSAgICByZXBlYXRpbmcgdGhlIGxvb3AuCgkgICAgQWRqdXN0IHRlc3QgNDkgc28gdGhhdCBpdCBjaGVja3MgZm9yIHRoZSBmaXhlZCBwcm9ibGVtcy4KCSAgICAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZGlncmFwaC5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9ldmFsLmMsCgkgICAgc3JjL3Byb3RvL2V4X2NtZHMyLnBybywgc3JjL3Byb3RvL2V4X2RvY21kLnBybywKCSAgICBzcmMvdGVzdGRpci90ZXN0NDkuaW4sIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5vaywKCSAgICBzcmMvdGVzdGRpci90ZXN0NDkudmltCgpQYXRjaCA2LjIuMjM5ClByb2JsZW06ICAgIEdUSyAyOiBXaXRoIGNsb3NlZCBmb2xkcyB0aGUgYXJyb3cgYnV0dG9ucyBvZiBhIHZlcnRpY2FsIHNjcm9sbGJhcgoJICAgIG9mdGVuIGRvZXNuJ3Qgc2Nyb2xsLiAoTW9zaGUgS2FtaW5za3kpClNvbHV0aW9uOiAgIEhhY2tpc2ggc29sdXRpb246IERldGVjdCB0aGF0IHRoZSBidXR0b24gd2FzIHByZXNzZWQgZnJvbSB0aGUKCSAgICBtb3VzZSBwb2ludGVyIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWkuYwoKUGF0Y2ggNi4yLjI0MApQcm9ibGVtOiAgICBHVEsgMjogU2VhcmNoaW5nIGZvciBiaXRtYXBzIGZvciB0aGUgdG9vbGJhciBkb2Vzbid0IHdvcmsgYXMgd2l0aAoJICAgIG90aGVyIHN5c3RlbXMuICBOZWVkIHRvIGV4cGxpY2l0bHkgdXNlICJpY29uPW5hbWUiLiAgKE5lZCBLb256LAoJICAgIENocmlzdGlhbiBKLiAgUm9iaW5zb24pClNvbHV0aW9uOiAgIFNlYXJjaCBmb3IgaWNvbnMgbGlrZSBkb25lIGZvciBNb3RpZi4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMjQxClByb2JsZW06ICAgIEdUSyAyOiBTZWFyY2ggYW5kIFNlYXJjaC9SZXBsYWNlIGRpYWxvZ3MgYXJlIHN5bmNlZCwgdGhhdCBtYWtlcyBubwoJICAgIHNlbnNlLiAgQnV0dG9ucyBhcmUgc29tZXRpbWVzIGdyZXllZC1vdXQuIChKZXJlbXkgTWVzc2VuZ2VyKQpTb2x1dGlvbjogICBSZW1vdmUgdGhlIGNvZGUgdG8gc3luYyB0aGUgdHdvIGRpYWxvZ3MuICBBZGp1c3QgdGhlIGNvZGUgdG8gcmVhY3QKCSAgICB0byBhbiBlbXB0eSBzZWFyY2ggc3RyaW5nIHRvIGFsc28gd29yayBmb3IgR1RLMi4gKERhdmlkIE5lY2FzKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yNDIKUHJvYmxlbTogICAgR25vbWU6ICJ2aW0gLS1oZWxwIiBvbmx5IHNob3dzIHRoZSBHbm9tZSBhcmd1bWVudHMsIG5vdCB0aGUgVmltCgkgICAgYXJndW1lbnRzLgpTb2x1dGlvbjogICBEb24ndCBsZXQgdGhlIEdub21lIGNvZGUgcmVtb3ZlIHRoZSAiLS1oZWxwIiBhcmd1bWVudCBhbmQgZG9uJ3QKCSAgICBleGl0IGF0IHRoZSBlbmQgb2YgdXNhZ2UoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL21haW4uYwoKUGF0Y2ggNi4yLjI0MyAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogRHJvcHBpbmcgYSBmaWxlIG9uIGEgVmltIGljb24gY2F1c2VzIGEgaGl0LWVudGVyIHByb21wdC4KU29sdXRpb246ICAgTW92ZSB0aGUgZHJvcHBlZCBmaWxlcyB0byB0aGUgZ2xvYmFsIGFyZ3VtZW50IGxpc3QsIGluc3RlYWQgb2YgdGhlCgkgICAgdXN1YWwgZHJvcCBoYW5kbGluZy4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMi4yNDQKUHJvYmxlbTogICAgJzplY2hvICJceGY3IicgZGlzcGxheXMgdGhlIGlsbGVnYWwgYnl0ZSBhcyBpZiBpdCB3YXMgYSBjaGFyYWN0ZXIKCSAgICBhbmQgbGVhdmVzICJjaG8iIGFmdGVyIGl0LgpTb2x1dGlvbjogICBXaGVuIGNoZWNraW5nIHRoZSBsZW5ndGggb2YgYSBVVEYtOCBieXRlIHNlcXVlbmNlIGFuZCBpdCdzIHNob3J0ZXIKCSAgICB0aGFuIHRoZSBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlLCBhc3N1bWUgaXQncyBhbiBpbGxlZ2FsIGJ5dGUuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4yNDUKUHJvYmxlbTogICAgQ29tcGxldGlvbiBkb2Vzbid0IHdvcmsgZm9yICI6a2VlcG1hcmtzIiBhbmQgIjpsb2NrbWFya3MiLgpTb2x1dGlvbjogICBBZGQgdGhlIGNvbW1hbmQgbW9kaWZpZXJzIHRvIHRoZSB0YWJsZSBvZiBjb21tYW5kcy4gKE1hZG9rYQoJICAgIE1hY2hpdGFuaSkKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oLCBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjI0NgpQcm9ibGVtOiAgICBNYWM6IFN0YXJ0aW5nIFZpbSBmcm9tIEZpbmRlciBkb2Vzbid0IHNob3cgZXJyb3IgbWVzc2FnZXMuClNvbHV0aW9uOiAgIFJlY29nbml6ZSB0aGF0IG91dHB1dCBpcyBiZWluZyBkaXNwbGF5ZWQgYnkgc3RkZXJyIGJlaW5nCgkgICAgIi9kZXYvY29uc29sZSIuICAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4yLjI0NyAoYWZ0ZXIgNi4yLjE5MykKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIHNlYXJjaCBwYXR0ZXJuIGZyb20gdGhlIHZpbWluZm8gZmlsZSB0aGUgbGFzdAoJICAgIGNoYXJhY3RlciBpcyByZXBsYWNlZCB3aXRoIGEgJy8nLgpTb2x1dGlvbjogICBTdG9yZSB0aGUgc2VwYXJhdG9yIGNoYXJhY3RlciBpbiB0aGUgcmlnaHQgcGxhY2UuIChLZWx2aW4gTGVlKQpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjIuMjQ4ClByb2JsZW06ICAgIEdUSzogV2hlbiBYSU0gaXMgZW5hYmxlZCBub3JtYWwgIjIiIGFuZCBrZXlwYWQgIjIiIGNhbm5vdCBiZQoJICAgIGRpc3Rpbmd1aXNoZWQuClNvbHV0aW9uOiAgIERldGVjdCB0aGF0IFhJTSBjaGFuZ2VzIHRoZSBrZXlwYWQga2V5IHRvIHRoZSBleHBlY3RlZCBBU0NJSQoJICAgIGNoYXJhY3RlciBhbmQgZmFsbCBiYWNrIHRvIHRoZSBub24tWElNIGNvZGUuIChOZWlsIEJpcmQpCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9tYnl0ZS5jLCBzcmMvcHJvdG8vbWJ5dGUucHJvCgpQYXRjaCA2LjIuMjQ5ClByb2JsZW06ICAgICI6Y25leHQiIG1vdmVzIHRvIHRoZSBlcnJvciBpbiB0aGUgbmV4dCBmaWxlLCBidXQgdGhlcmUgaXMgbm8KCSAgICBtZXRob2QgdG8gZ28gYmFjay4KU29sdXRpb246ICAgQWRkICI6Y3BmaWxlIiBhbmQgIjpjTmZpbGUiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgsIHNyYy9xdWlja2ZpeC5jLCBzcmMvdmltLmgsIHJ1bnRpbWUvZG9jL3F1aWNrZml4LnR4dAoKUGF0Y2ggNi4yLjI1MApQcm9ibGVtOiAgICBNZW1vcnkgbGVha3Mgd2hlbiB1c2luZyBzaWducy4gKFhhdmllciBkZSBHYXllKQpTb2x1dGlvbjogICBEZWxldGUgdGhlIGxpc3Qgb2Ygc2lnbnMgd2hlbiB1bmxvYWRpbmcgYSBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMjUxClByb2JsZW06ICAgIEdUSzogVGhlICd2JyBmbGFnIGluICdndWlvcHRpb25zJyBkb2Vzbid0IHdvcmsuIChTdGV2ZSBIYWxsKQoJICAgIE9yZGVyIG9mIGJ1dHRvbnMgaXMgcmV2ZXJzZWQgZm9yIEdUSyAyLjIuNC4gIERvbid0IGFsd2F5cyBnZXQKCSAgICBmb2N1cyBiYWNrIGFmdGVyIGhhbmRsaW5nIGEgZGlhbG9nLgpTb2x1dGlvbjogICBNYWtlIGJ1dHRvbnMgYXBwZWFyIHZlcnRpY2FsbHkgd2hlbiBkZXNpcmVkLiAgUmV2ZXJzZSB0aGUgb3JkZXIgaW4KCSAgICB3aGljaCBidXR0b25zIGFyZSBhZGRlZCB0byBhIGRpYWxvZy4gIE1vdmUgbW91c2UgcG9pbnRlciBhcm91bmQKCSAgICB3aGVuIHRoZSBkaWFsb2cgaXMgZG9uZSBhbmQgd2UgZG9uJ3QgaGF2ZSBmb2N1cy4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMjUyIChleHRyYSwgYWZ0ZXIgNi4yLjI0MykKUHJvYmxlbTogICAgTWFjOiBEcm9wcGluZyBhIGZpbGUgb24gYSBWaW0gaWNvbiBjYXVzZXMgYSBoaXQtZW50ZXIgcHJvbXB0IGZvcgoJICAgIE1hYyBPUyBjbGFzc2ljLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlICNpZmRlZiBmcm9tIHRoZSBjb2RlIHRoYXQgZml4ZXMgaXQgZm9yIE1hYyBPU1guCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4yLjI1MwpQcm9ibGVtOiAgICBXaGVuICd0YWdzdGFjaycgaXMgbm90IHNldCBhICI6dGFnIGlkIiBjb21tYW5kIGRvZXMgbm90IHdvcmsgYWZ0ZXIKCSAgICBhICI6dGp1bXAiIGNvbW1hbmQuClNvbHV0aW9uOiAgIFNldCAibmV3X3RhZyIgd2hlbiAndGFnc3RhY2snIGlzbid0IHNldC4gKEcuIE5hcmVuZHJhbikKRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4yNTQKUHJvYmxlbTogICAgTWF5IHJ1biBvdXQgb2Ygc3BhY2UgZm9yIGVycm9yIG1lc3NhZ2VzLgpTb2x1dGlvbjogICBLZWVwIHJvb20gZm9yIHR3byBtb3JlIGJ5dGVzLgpGaWxlczoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjIuMjU1ClByb2JsZW06ICAgIEdUSzogQSBuZXcgaXRlbSBpbiB0aGUgcG9wdXAgbWVudSBpcyBwdXQganVzdCBhZnRlciBpbnN0ZWFkIG9mCgkgICAganVzdCBiZWZvcmUgdGhlIHJpZ2h0IGl0ZW0uIChHYWJyaWVsIFphY2htYW5uKQpTb2x1dGlvbjogICBEb24ndCBpbmNyZW1lbnQgdGhlIG1lbnUgaXRlbSBpbmRleC4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMjU2ClByb2JsZW06ICAgIE1hYzogIm1hY3JvbWFuIiBlbmNvZGluZyBpc24ndCByZWNvZ25pemVkLCBuZWVkIHRvIHVzZQoJICAgICI4Yml0LW1hY3JvbWFuLgpTb2x1dGlvbjogICBSZWNvZ25pemUgIm1hY3JvbWFuIiB3aXRoIGFuIGFsaWFzICJtYWMiLiAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4yNTcgKGFmdGVyIDYuMi4yNTApClByb2JsZW06ICAgIFNpZ25zIGFyZSBkZWxldGVkIGZvciAiOmJkZWwiLCBidXQgdGhleSBjb3VsZCBzdGlsbCBiZSB1c2VmdWwuClNvbHV0aW9uOiAgIERlbGV0ZSBzaWducyBvbmx5IGZvciAiOmJ3aXBlIi4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMi4yNTgKUHJvYmxlbTogICAgR1VJOiBjYW4ndCBkaXNhYmxlIChncmV5LW91dCkgYSBwb3B1cCBtZW51IGl0ZW0uICAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBMb29wIG92ZXIgdGhlIHBvcHVwIG1lbnVzIGZvciBhbGwgbW9kZXMuCkZpbGVzOgkgICAgc3JjL21lbnUuYwoKUGF0Y2ggNi4yLjI1OQpQcm9ibGVtOiAgICBJZiB0aGVyZSBhcmUgbWVzc2FnZXMgd2hlbiBleGl0aW5nLCBvbiB0aGUgY29uc29sZSB0aGVyZSBpcyBhCgkgICAgaGl0LWVudGVyIHByb21wdCB3aGlsZSB0aGUgbWVzc2FnZSBjYW4gYmUgcmVhZDsgaW4gdGhlIEdVSSB0aGUKCSAgICBtZXNzYWdlIG1heSBub3QgYmUgdmlzaWJsZS4KU29sdXRpb246ICAgVXNlIHRoZSBoaXQtZW50ZXIgcHJvbXB0IHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgbWVzc2FnZSBmcm9tCgkgICAgd3JpdGluZyB0aGUgdmltaW5mbyBmaWxlIG9yIGF1dG9jb21tYW5kcywgb3Igd2hlbiB0aGVyZSBpcyBhbnkKCSAgICBvdXRwdXQgaW4gdGhlIEdVSSBhbmQgJ3ZlcmJvc2UnIGlzIHNldC4gIERvbid0IHVzZSBhIGhpdC1lbnRlcgoJICAgIHByb21wdCBmb3IgdGhlIG5vbi1HVUkgdmVyc2lvbiB1bmxlc3MgdGhlcmUgaXMgYW4gZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjIuMjYwClByb2JsZW06ICAgIEdUSyAyOiBDYW4ndCBxdWl0IGEgZGlhbG9nIHdpdGggPEVzYz4uCgkgICAgR1RLIDEgYW5kIDI6IDxFbnRlcj4gYWx3YXlzIGdpdmVzIGEgcmVzdWx0LCBldmVuIHdoZW4gdGhlIGRlZmF1bHQKCSAgICBidXR0b24gaGFzIGJlZW4gZGlzYWJsZWQuClNvbHV0aW9uOiAgIEhhbmRsZSB0aGVzZSBrZXlzIGV4cGxpY2l0bHkuICBXaGVuIG5vIGRlZmF1bHQgYnV0dG9uIGlzIHNwZWNpZmllZAoJICAgIHVzZSB0aGUgZmlyc3Qgb25lICh3b3JrcyBtb3N0bHkgbGlrZSBpdCB3YXMgYmVmb3JlKS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMjYxClByb2JsZW06ICAgIFdoZW4gJ2F1dG9pbmRlbnQnIGFuZCAnY2luZGVudCcgYXJlIHNldCBhbmQgYSBsaW5lIGlzIHJlY29nbml6ZWQKCSAgICBhcyBhIGNvbW1lbnQsIHN0YXJ0aW5nIGEgbmV3IGxpbmUgd29uJ3QgZG8gJ2NpbmRlbnQnIGZvcm1hdHRpbmcuClNvbHV0aW9uOiAgIEFsc28gdXNlICdjaW5kZW50JyBmb3JtYXR0aW5nIGZvciBsaW5lcyB0aGF0IGFyZSB1c2VkIGFzIGEKCSAgICBjb21tZW50LiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjI2MgpQcm9ibGVtOiAgICAxIENUUkwtVyB3IGJlZXBzLCBldmVuIHRob3VnaCBnb2luZyB0byB0aGUgZmlyc3Qgd2luZG93IGlzCgkgICAgcG9zc2libGUuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBEb24ndCBiZWVwLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjI2MwpQcm9ibGVtOiAgICBMaW50IHdhcm5pbmdzOiBEdXBsaWNhdGUgZnVuY3Rpb24gcHJvdG90eXBlcywgZHVwbGljYXRlIG1hY3JvcywKCSAgICB1c2Ugb2YgYSB6ZXJvIGNoYXJhY3RlciBpbnN0ZWFkIG9mIGEgemVybyBwb2ludGVyLCB1bnVzZWQKCSAgICB2YXJpYWJsZS4gIENsZWFyaW5nIGFsbG9jYXRlZCBtZW1vcnkgaW4gYSBjb21wbGljYXRlZCB3YXkuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgZnVuY3Rpb24gcHJvdG90eXBlcyBmcm9tIGZhcnNpLmguICBSZW1vdmUgdGhlCgkgICAgZHVwbGljYXRlZCBsaW5lcyBpbiBrZXltYXAuaC4gIENoYW5nZSBnZXR2Y29sKCkgYXJndW1lbnQgZnJvbSBOVUwKCSAgICB0byBOVUxMLiAgUmVtb3ZlIHRoZSAiY29sIiB2YXJpYWJsZSBpbiByZWdtYXRjaCgpLiAgVXNlCgkgICAgbGFsbG9jX2NsZWFyKCkgaW5zdGVhZCBvZiBsYWxsb2MoKS4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9mYXJzaS5oLCBzcmMva2V5bWFwLmgsIHNyYy9vcHMuYywgc3JjL3JlZ2V4cC5jLCBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi4yNjQgKGFmdGVyIDYuMi4yNDcpClByb2JsZW06ICAgIFdyaXRpbmcgcGFzdCBhbGxvY2F0ZWQgbWVtb3J5IHdoZW4gdXNpbmcgYSBjb21tYW5kIGxpbmUgZnJvbSB0aGUKCSAgICB2aW1pbmZvIGZpbGUuClNvbHV0aW9uOiAgIFN0b3JlIHRoZSBOVUwgaW4gdGhlIHJpZ2h0IHBsYWNlLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjIuMjY1ClByb2JsZW06ICAgIEFsdGhvdWdoICI6c2V0IiBpcyBub3QgYWxsb3dlZCBpbiB0aGUgc2FuZGJveCwgIjpsZXQgJm9wdCA9IHZhbCIKCSAgICB3b3Jrcy4KU29sdXRpb246ICAgRG8gYWxsb3cgY2hhbmdpbmcgb3B0aW9ucyBpbiB0aGUgc2FuZGJveCwgYnV0IG5vdCB0aGUgb25lcyB0aGF0CgkgICAgY2FuJ3QgYmUgY2hhbmdlZCBmcm9tIGEgbW9kZWxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuaCwgc3JjL29wdGlvbnMuYwoKUGF0Y2ggNi4yLjI2NgpQcm9ibGVtOiAgICBXaGVuIHJlZGlyZWN0aW5nIG91dHB1dCBhbmQgdXNpbmcgIjpzaWxlbnQiLCBsaW5lIGJyZWFrcyBhcmUKCSAgICBtaXNzaW5nIGZyb20gb3V0cHV0IG9mICI6bWFwIiBhbmQgIjp0c2VsZWN0Ii4gIEFsaWdubWVudCBvZgoJICAgIGNvbHVtbnMgaXMgd3JvbmcuClNvbHV0aW9uOiAgIEluc2VydCBhIGxpbmUgYnJlYWsgd2hlcmUgIm1zZ19kaWRvdXQiIHdhcyB0ZXN0ZWQuICBVcGRhdGUgbXNnX2NvbAoJICAgIHdoZW4gcmVkaXJlY3RpbmcgYW5kIHVzaW5nICI6c2lsZW50Ii4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMjY3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6ICImJiIgaW4gYSB0ZWFyb2ZmIG1lbnUgaXMgbm90IHNob3duLiAoTHVjIEhlcm1pdHRlKQpTb2x1dGlvbjogICBVc2UgdGhlICJuYW1lIiBpdGVtIGZyb20gdGhlIG1lbnUgaW5zdGVhZCBvZiB0aGUgImRuYW1lIiBpdGVtLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9tZW51LmMKClBhdGNoIDYuMi4yNjgKUHJvYmxlbTogICAgR1VJOiBXaGVuIGNoYW5naW5nICdndWlvcHRpb25zJyBwYXJ0IG9mIHRoZSB3aW5kb3cgbWF5IGJlIG9mZgoJICAgIHNjcmVlbi4gKFJhbmRhbGwgTW9ycmlzKQpTb2x1dGlvbjogICBBZGp1c3QgdGhlIHNpemUgb2YgdGhlIHdpbmRvdyB3aGVuIGNoYW5naW5nICdndWlvcHRpb25zJywgYnV0IG9ubHkKCSAgICB3aGVuIGFkZGluZyBzb21ldGhpbmcuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuMjY5ClByb2JsZW06ICAgIERpZmYgbW9kZSBkb2VzIG5vdCBoaWdobGlnaHQgYSBjaGFuZ2UgaW4gYSBjb21iaW5pbmcgY2hhcmFjdGVyLgoJICAgIChSYXBoYWVsIEZpbmtlbCkKU29sdXRpb246ICAgTWFrZSBkaWZmX2ZpbmRfY2hhbmdlKCkgbXVsdGktYnl0ZSBhd2FyZTogZmluZCB0aGUgc3RhcnQgYnl0ZSBvZgoJICAgIGEgY2hhcmFjdGVyIHRoYXQgY29udGFpbnMgYSBjaGFuZ2UuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4yLjI3MApQcm9ibGVtOiAgICBDb21wbGV0aW9uIGluIEluc2VydCBtb2RlLCB0aGVuIHJlcGVhdGluZyB3aXRoICIuIiwgZG9lc24ndCBoYW5kbGUKCSAgICBjb21wb3NpbmcgY2hhcmFjdGVycyBpbiB0aGUgY29tcGxldGVkIHRleHQuIChSYXBoYWVsIEZpbmtlbCkKU29sdXRpb246ICAgRG9uJ3Qgc2tpcCBvdmVyIGNvbXBvc2luZyBjaGFycyB3aGVuIGFkZGluZyBjb21wbGV0ZWQgdGV4dCB0byB0aGUKCSAgICByZWRvIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjIuMjcxClByb2JsZW06ICAgIE5ldEJlYW5zOiBDYW4ndCBkbyAidGFpbCAtZiIgb24gdGhlIGxvZy4gIFBhc3Npbmcgc29ja2V0IGluZm8gd2l0aAoJICAgIGFuIGFyZ3VtZW50IG9yIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZWN1cmUuClNvbHV0aW9uOiAgIFdhaXQgYWZ0ZXIgaW5pdGlhbGl6aW5nIHRoZSBsb2cuICBBbGxvdyBwYXNzaW5nIHRoZSBzb2NrZXQgaW5mbwoJICAgIHRocm91Z2ggYSBmaWxlLiAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsIHNyYy9tYWluLmMsIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjIuMjcyClByb2JsZW06ICAgIFdoZW4gdGhlICJwbyIgZGlyZWN0b3J5IGV4aXN0cywgYnV0ICJwby9NYWtlZmlsZSIgZG9lc24ndCwKCSAgICBidWlsZGluZyBmYWlscy4gIE1ha2UgbG9vcHMgd2hlbiB0aGUgInBvIiBkaXJlY3RvcnkgaGFzIGJlZW4KCSAgICBkZWxldGVkIGFmdGVyIHJ1bm5pbmcgY29uZmlndXJlLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdGhlICJwby9NYWtlZmlsZSIgaW5zdGVhZCBvZiBqdXN0IHRoZSAicG8iIGRpcmVjdG9yeS4KCSAgICBDaGVjayB0aGlzIGFnYWluIGJlZm9yZSB0cnlpbmcgdG8gcnVuIG1ha2Ugd2l0aCB0aGF0IE1ha2VmaWxlLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMjczClByb2JsZW06ICAgIENoYW5naW5nIHRoZSBzb3J0IG9yZGVyIGluIGFuIGV4cGxvcmVyIHdpbmRvdyBmb3IgYW4gZW1wdHkKCSAgICBkaXJlY3RvcnkgcHJvZHVjZXMgZXJyb3IgbWVzc2FnZXMuIChEb3VnIEtlYXJucykKU29sdXRpb246ICAgV2hlbiBhbiBpbnZhbGlkIHJhbmdlIGlzIHVzZWQgZm9yIGEgZnVuY3Rpb24gdGhhdCBpcyBub3QgZ29pbmcgdG8KCSAgICBiZSBleGVjdXRlZCwgc2tpcCBvdmVyIHRoZSBhcmd1bWVudHMgYW55d2F5LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4yNzQKUHJvYmxlbTogICAgIjpwcmludCIgc2tpcHMgZW1wdHkgbGluZXMgd2hlbiAnbGlzdCcgaXMgc2V0IGFuZCB0aGVyZSBpcyBubwoJICAgICJlb2wiIGluICdsaXN0Y2hhcnMnLiAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBTa2lwIG91dHB1dHRpbmcgYSBzcGFjZSBmb3IgYW4gZW1wdHkgbGluZSBvbmx5IHdoZW4gJ2xpc3QnIGlzIHNldAoJICAgIGFuZCB0aGUgZW5kLW9mLWxpbmUgY2hhcmFjdGVyIGlzIG5vdCBlbXB0eS4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMjc1IChleHRyYSwgYWZ0ZXIgNi4yLjI2NykKUHJvYmxlbTogICAgV2FybmluZyBmb3IgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3aGVuIHVzaW5nIGdjYy4KU29sdXRpb246ICAgSW5pdGlhbGl6ZSAiYWNMZW4iIHRvIHplcm8uIChCaWxsIE1jQ2FydGh5KQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMi4yNzYKUHJvYmxlbTogICAgIjplY2hvIFgoKSIgZG9lcyBub3QgcHV0IGEgbGluZSBicmVhayBiZXR3ZWVuIHRoZSBtZXNzYWdlIHRoYXQgWCgpCgkgICAgZGlzcGxheXMgYW5kIHRoZSB0ZXh0IHRoYXQgWCgpIHJldHVybnMuIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIEludm9rZSBtc2dfc3RhcnQoKSBhZnRlciBldmFsdWF0aW5nIHRoZSBhcmd1bWVudC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjc3ClByb2JsZW06ICAgIFZpbSBjcmFzaGVzIHdoZW4gYSAiOnJ1bnRpbWUgZnRwbHVnaW4vYWRhLnZpbSIgY2F1c2VzIGEgcmVjdXJzaXZlCgkgICAgbG9vcC4gKFJvYmVydCBOb3dvdG5pYWspClNvbHV0aW9uOiAgIFJlc3RvcmUgIm1zZ19saXN0IiBiZWZvcmUgcmV0dXJuaW5nIGZyb20gZG9fY21kbGluZSgpLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMjc4ClByb2JsZW06ICAgIFVzaW5nICJtdWNoIiBpbnN0ZWFkIG9mICJtYW55Ii4KU29sdXRpb246ICAgQ29ycmVjdCB0aGUgZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjc5ClByb2JsZW06ICAgIFRoZXJlIGlzIG5vIGRlZmF1bHQgY2hvaWNlIGZvciBhIGNvbmZpcm0oKSBkaWFsb2csIG5vdyB0aGF0IGl0IGlzCgkgICAgcG9zc2libGUgbm90IHRvIGhhdmUgYSBkZWZhdWx0IGNob2ljZS4KU29sdXRpb246ICAgTWFrZSB0aGUgZmlyc3QgY2hvaWNlIHRoZSBkZWZhdWx0IGNob2ljZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjI4MApQcm9ibGVtOiAgICAiZG8iIGFuZCAiOmRpZmZnZXQiIGRvbid0IHdvcmsgaW4gdGhlIGZpcnN0IGxpbmUgYW5kIHRoZSBsYXN0IGxpbmUKCSAgICBvZiBhIGJ1ZmZlci4gKEFyb24gR3JpZmZpcykKU29sdXRpb246ICAgRmluZCBhIGRpZmZlcmVuY2UgYWJvdmUgdGhlIGZpcnN0IGxpbmUgYW5kIGJlbG93IHRoZSBsYXN0IGxpbmUuCgkgICAgQWxzbyBmaXggYSBmZXcgZGlzcGxheSB1cGRhdGluZyBidWdzLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9mb2xkLmMsIHNyYy9tb3ZlLmMKClBhdGNoIDYuMi4yODEKUHJvYmxlbTogICAgUG9zdFNjcmlwdCBwcmludGluZyBkb2Vzbid0IHdvcmsgb24gTWFjIE9TIFggMTAuMy4yLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGhlYWRlciBmaWxlLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBydW50aW1lL3ByaW50L3Byb2xvZy5wcwoKUGF0Y2ggNi4yLjI4MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIENUUkwtTyB0byBnbyBiYWNrIHRvIGEgaGVscCBmaWxlLCBpdCBiZWNvbWVzIGxpc3RlZC4KCSAgICAoQW5kcmV3IE5lc2JpdCkKCSAgICBVc2luZyAiOnRhZyIgb3IgIjp0anVtcCIgaW4gYSBoZWxwIGZpbGUgZG9lc24ndCBrZWVwIHRoZSBoZWxwIGZpbGUKCSAgICBzZXR0aW5ncyAoZS5nLiBmb3IgJ2lza2V5d29yZCcpLgpTb2x1dGlvbjogICBEb24ndCBtYXJrIGEgYnVmZmVyIGFzIGxpc3RlZCB3aGVuIGl0cyBoZWxwIGZsYWcgaXMgc2V0LiAgUHV0IGFsbAoJICAgIHRoZSBvcHRpb24gc2V0dGluZ3MgZm9yIGEgaGVscCBidWZmZXIgdG9nZXRoZXIgaW4gZG9fZWNtZCgpLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4yODMKUHJvYmxlbTogICAgVGhlICJsb2NhbCBhZGRpdGlvbnMiIGluIGhlbHAudHh0IGFyZSB1c2VkIHdpdGhvdXQgY29udmVyc2lvbiwKCSAgICBjYXVzaW5nIGxhdGluMSBjaGFyYWN0ZXJzIHNob3dpbmcgdXAgd3Jvbmcgd2hlbiAnZW5jJyBpcyB1dGYtOC4KCSAgICAoQW50b2luZSBKLiBNZWNoZWx5bmNrKQpTb2x1dGlvbjogICBDb252ZXJ0IHRoZSB0ZXh0IHRvICdlbmNvZGluZycuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjI4NApQcm9ibGVtOiAgICBMaXN0aW5nIGEgZnVuY3Rpb24gcHV0cyAiZW5kZnVuY3Rpb24iIGluIHRoZSBtZXNzYWdlIGhpc3RvcnkuCgkgICAgVHlwaW5nICJxIiBhdCB0aGUgbW9yZSBwcm9tcHQgaXNuJ3QgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiBsaXN0aW5nCgkgICAgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMuICAoSGFyYSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IHVzZSBtc2coKSBmb3IgImVuZGZ1bmN0aW9uIi4gIENoZWNrICJnb3RfaW50IiByZWd1bGFybHkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjI4NQpQcm9ibGVtOiAgICBHVUk6IEluIGEgc2luZ2xlIHdyYXBwZWQgbGluZSB0aGF0IGZpbGxzIHRoZSB3aW5kb3csICJnaiIgaW4gdGhlCgkgICAgbGFzdCBzY3JlZW4gbGluZSBsZWF2ZXMgdGhlIGN1cnNvciBiZWhpbmQuIChJdmFuIFRhcmFzb3YpClNvbHV0aW9uOiAgIFVuZHJhdyB0aGUgY3Vyc29yIGJlZm9yZSBzY3JvbGxpbmcgdGhlIHRleHQgdXAuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuMjg2ClByb2JsZW06ICAgIFdoZW4gdHJ5aW5nIHRvIHJlbmFtZSBhIGZpbGUgYW5kIGl0IGRvZXNuJ3QgZXhpc3QsIHRoZSBkZXN0aW5hdGlvbgoJICAgIGZpbGUgaXMgZGVsZXRlZCBhbnl3YXkuIChMdWMgRGV1eCkKU29sdXRpb246ICAgRG9uJ3QgZGVsZXRlIHRoZSBkZXN0aW5hdGlvbiB3aGVuIHRoZSBzb3VyY2UgZG9lc24ndCBleGlzdC4gKFRhcm8KCSAgICBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjI4NyAoYWZ0ZXIgNi4yLjI2NCkKUHJvYmxlbTogICAgRHVwbGljYXRlIGxpbmVzIGFyZSBhZGRlZCB0byB0aGUgdmltaW5mbyBmaWxlLgpTb2x1dGlvbjogICBDb21wYXJlIHdpdGggZXhpc3RpbmcgZW50cmllcyB3aXRob3V0IGFuIG9mZnNldC4gIEFsc28gZml4ZXMKCSAgICByZWFkaW5nIHZlcnkgbG9uZyBoaXN0b3J5IGxpbmVzIGZyb20gdmltaW5mby4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4yLjI4OCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogQW4gZXh0ZXJuYWwgcHJvZ3JhbSBjYW4ndCBiZSBpbnRlcnJ1cHRlZC4KU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSAnYycga2V5IGZvciBiYWNrc3BhY2UuIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjg5ClByb2JsZW06ICAgIENvbXBpbGluZyB0aGUgVGNsIGludGVyZmFjZSB3aXRoIHRocmVhZCBzdXBwb3J0IGNhdXNlcyAiOm1ha2UiIHRvCgkgICAgZmFpbC4gIChKdWVyZ2VuIFNhbGspClNvbHV0aW9uOiAgIFVzZSAkVENMX0RFRlMgZnJvbSB0aGUgVGNsIGNvbmZpZyBzY3JpcHQgdG8gb2J0YWluIHRoZSByZXF1aXJlZAoJICAgIGNvbXBpbGUgZmxhZ3MgZm9yIHVzaW5nIHRoZSB0aHJlYWQgbGlicmFyeS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMi4yOTAgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IFRoZSBtb3VzZXdoZWVsIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgQWRkIG1vdXNld2hlZWwgc3VwcG9ydC4gIEFsc28gZml4IHVwZGF0aW5nIHRoZSB0aHVtYiBhZnRlciBhIGRyYWcKCSAgICBhbmQgdGhlbiB1c2luZyBhbm90aGVyIHdheSB0byBzY3JvbGwuICAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4yLjI5MSAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogdGhlIHBsdXMgYnV0dG9uIGFuZCBjbG9zZSBidXR0b24gZG9uJ3QgZG8gYW55dGhpbmcuClNvbHV0aW9uOiAgIE1ha2UgdGhlIHBsdXMgYnV0dG9uIG1heGltaXplIHRoZSB3aW5kb3cgYW5kIHRoZSBjbG9zZSBidXR0b24KCSAgICBjbG9zZSBWaW0uIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMi4yOTIKUHJvYmxlbTogICAgTW90aWY6IFdoZW4gcmVtb3ZpbmcgR1VJIGFyZ3VtZW50cyBmcm9tIGFyZ3ZbXSBhICJwcyAtZWYiIHNob3dzCgkgICAgdGhlIGxhc3QgYXJndW1lbnQgcmVwZWF0ZWQuClNvbHV0aW9uOiAgIFNldCBhcmd2W2FyZ2NdIHRvIE5VTEwuIChNaWNoYWVsIEphcnZpcykKRmlsZXM6CSAgICBzcmMvZ3VpX3gxMS5jCgpQYXRjaCA2LjIuMjkzIChhZnRlciA2LjIuMjU1KQpQcm9ibGVtOiAgICBHVEs6IEEgbmV3IGl0ZW0gaW4gYSBtZW51IGlzIHB1dCBiZWZvcmUgdGhlIHRlYXJvZmYgaXRlbS4KU29sdXRpb246ICAgRG8gaW5jcmVtZW50IHRoZSBtZW51IGl0ZW0gaW5kZXggZm9yIG5vbi1wb3B1cCBtZW51IGl0ZW1zLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yOTQgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IENhbm5vdCB1c2UgbW9kaWZpZXJzIHdpdGggU3BhY2UsIFRhYiwgRW50ZXIgYW5kIEVzY2FwZS4KU29sdXRpb246ICAgSGFuZGxlIGFsbCBtb2RpZmllcnMgZm9yIHRoZXNlIGtleXMuICAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4yLjI5NQpQcm9ibGVtOiAgICBXaGVuIGluIGRlYnVnIG1vZGUsIHJlY2VpdmluZyBhIG1lc3NhZ2UgZnJvbSBhIHJlbW90ZSBjbGllbnQKCSAgICBjYXVzZXMgYSBjcmFzaC4gIEV2YWx1YXRpbmcgYW4gZXhwcmVzc2lvbiBjYXVzZXMgVmltIHRvIHdhaXQgZm9yCgkgICAgImNvbnQiIHRvIGJlIHR5cGVkLCB3aXRob3V0IGEgcHJvbXB0LiAgKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEaXNhYmxlIGRlYnVnZ2luZyB3aGVuIGV2YWx1YXRpbmcgYW4gZXhwcmVzc2lvbiBmb3IgYSBjbGllbnQuCgkgICAgKE1pY2hhZWwgR2VkZGVzKSAgRG9uJ3QgdHJ5IHJlYWRpbmcgaW50byB0aGUgdHlwZWFoZWFkIGJ1ZmZlciB3aGVuCgkgICAgaXQgbWF5IGhhdmUgYmVlbiBmaWxsZWQgaW4gYW5vdGhlciB3YXkuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9tYWluLmMsCgkgICAgc3JjL21pc2MxLmMsIHNyYy9wcm90by9nZXRjaGFyLnBybywgc3JjL3Byb3RvL21haW4ucHJvLAoJICAgIHNyYy9wcm90by9vc191bml4LnBybywgc3JjL3Byb3RvL3VpLnBybywgc3JjL3N0cnVjdHMuaCwKCSAgICBzcmMvb3NfdW5peC5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjI5NiAoZXh0cmEpClByb2JsZW06ICAgIFNhbWUgYXMgNi4yLjI5NS4KU29sdXRpb246ICAgRXh0cmEgZmlsZXMgZm9yIHBhdGNoIDYuMi4yOTUuCkZpbGVzOgkgICAgc3JjL29zX2FtaWdhLmMsIHNyYy9vc19tc2Rvcy5jLCBzcmMvb3NfcmlzY29zLmMsIHNyYy9vc193aW4zMi5jLAoJICAgIHNyYy9wcm90by9vc19hbWlnYS5wcm8sIHNyYy9wcm90by9vc19tc2Rvcy5wcm8sCgkgICAgc3JjL3Byb3RvL29zX3Jpc2Nvcy5wcm8sIHNyYy9wcm90by9vc193aW4zMi5wcm8KClBhdGNoIDYuMi4yOTcgKGFmdGVyIDYuMi4yMzIpClByb2JsZW06ICAgIENhbm5vdCBpbnZva2UgUHl0aG9uIGNvbW1hbmRzIHJlY3Vyc2l2ZWx5LgpTb2x1dGlvbjogICBXaXRoIFB5dGhvbiAyLjMgYW5kIGxhdGVyIHVzZSB0aGUgYXZhaWxhYmxlIG1lY2hhbmlzbXMgdG8gaW52b2tlCgkgICAgUHl0aG9uIHJlY3Vyc2l2ZWx5LiAoTWF0dGhldyBNdWVsbGVyKQpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjI5OApQcm9ibGVtOiAgICBBIGNoYW5nZSBhbHdheXMgc2V0cyB0aGUgJy4gbWFyayBhbmQgYW4gaW5zZXJ0IGFsd2F5cyBzZXRzIHRoZSAnXgoJICAgIG1hcmssIGV2ZW4gd2hlbiB0aGlzIGlzIG5vdCB3YW50ZWQuCgkgICAgQ2Fubm90IGdvIGJhY2sgdG8gdGhlIHBvc2l0aW9uIG9mIG9sZGVyIGNoYW5nZXMgd2l0aG91dCB1bmRvaW5nCgkgICAgdGhvc2UgY2hhbmdlcy4KU29sdXRpb246ICAgQWRkIHRoZSAiOmtlZXBqdW1wcyIgY29tbWFuZCBtb2RpZmllci4KCSAgICBBZGQgdGhlICJnLCIgYW5kICJnOyIgY29tbWFuZHMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMsIHNyYy9lZGl0LmMsCgkgICAgc3JjL21hcmsuYywgc3JjL21pc2MxLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL21hcmsucHJvLAoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy91bmRvLmMKClBhdGNoIDYuMi4yOTkKUHJvYmxlbTogICAgQ2FuIG9ubHkgdXNlIG9uZSBsYW5ndWFnZSBmb3IgaGVscCBmaWxlcy4KU29sdXRpb246ICAgQWRkIHRoZSAnaGVscGxhbmcnIG9wdGlvbiB0byBzZWxlY3QgdGhlIHByZWZlcnJlZCBsYW5ndWFnZShzKS4KCSAgICBNYWtlICI6aGVscHRhZ3MiIGdlbmVyYXRlIHRhZ3MgZmlsZXMgZm9yIGFsbCBsYW5ndWFnZXMuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHJ1bnRpbWUvZG9jL3ZhcmlvdXMudHh0LCBzcmMvTWFrZWZpbGUsCgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9jbWRzLmgsIHNyYy9leF9nZXRsbi5jLAoJICAgIHNyYy9ub3JtYWwuYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgsIHNyYy9wcm90by9leF9jbWRzLnBybywKCSAgICBzcmMvcHJvdG8vZXhfY21kczIucHJvLCBzcmMvcHJvdG8vb3B0aW9uLnBybywgc3JjL3N0cnVjdHMuaCwKCSAgICBzcmMvdGFnLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjMwMCAoYWZ0ZXIgNi4yLjI5NykKUHJvYmxlbTogICAgQ2Fubm90IGJ1aWxkIFB5dGhvbiBpbnRlcmZhY2Ugd2l0aCBQeXRob24gMi4yIG9yIGVhcmxpZXIuClNvbHV0aW9uOiAgIEFkZCBhIHNlbWljb2xvbi4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi4zMDEKUHJvYmxlbTogICAgVGhlICJzZWxlY3QgYWxsIiBpdGVtIGZyb20gdGhlIHBvcHVwIG1lbnUgZG9lc24ndCB3b3JrIGZvciBTZWxlY3QKCSAgICBtb2RlLgpTb2x1dGlvbjogICBVc2UgdGhlIHNhbWUgY29tbWFuZHMgYXMgZm9yIHRoZSAiRWRpdC5zZWxlY3QgYWxsIiBtZW51LgoJICAgIChCZW5qaSBGaXNoZXIpCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4yLjMwMgpQcm9ibGVtOiAgICBVc2luZyAiQ1RSTC1PIC4iIGluIEluc2VydCBtb2RlIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4gKEJlbmppCgkgICAgRmlzaGVyKQpTb2x1dGlvbjogICBSZXN0b3JlICJyZXN0YXJ0X2VkaXQiIGFmdGVyIGFuIGluc2VydCBjb21tYW5kIHRoYXQgd2FzIG5vdCB0eXBlZC4KCSAgICBBdm9pZCB3YWl0aW5nIHdpdGggZGlzcGxheWluZyB0aGUgbW9kZSB3aGVuIHRoZXJlIGlzIG5vIHRleHQgdG8gYmUKCSAgICBvdmVyd3JpdHRlbi4KCSAgICBGaXggdGhhdCAiQ1RSTC1PIC4iIHNvbWV0aW1lcyBkb2Vzbid0IHB1dCB0aGUgY3Vyc29yIGJhY2sgYWZ0ZXIKCSAgICB0aGUgZW5kLW9mLWxpbmUuICBPbmx5IHJlc2V0IHRoZSBmbGFnIHRoYXQgQ1RSTC1PIHdhcyB1c2VkIHBhc3QKCSAgICB0aGUgZW5kIG9mIHRoZSBsaW5lIHdoZW4gcmVzdGFydGluZyBlZGl0aW5nLiAgVXBkYXRlICJvX2xudW0iCgkgICAgbnVtYmVyIHdoZW4gaW5zZXJ0aW5nIHRleHQgYW5kICJvX2VvbCIgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjMwMwpQcm9ibGVtOiAgICBDYW5ub3QgdXNlIFVuaWNvZGUgZGlncmFwaHMgd2hpbGUgJ2VuY29kaW5nJyBpcyBub3QgVW5pY29kZS4KU29sdXRpb246ICAgQ29udmVydCB0aGUgY2hhcmFjdGVyIGZyb20gVW5pY29kZSB0byAnZW5jb2RpbmcnIHdoZW4gbmVlZGVkLgoJICAgIFVzZSB0aGUgVW5pY29kZSBkaWdyYXBocyBmb3IgdGhlIE1hY2ludG9zaC4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9kaWdyYXBoLmMKClBhdGNoIDYuMi4zMDQgKGV4dHJhLCBhZnRlciA2LjIuMjU2KQpQcm9ibGVtOiAgICBNYWM6IE5vIHByb3BlciBzdXBwb3J0IGZvciAnZW5jb2RpbmcnLiAgQ29udmVyc2lvbiB3aXRob3V0IGljb252KCkKCSAgICBpcyBub3QgcG9zc2libGUuClNvbHV0aW9uOiAgIENvbnZlcnQgaW5wdXQgZnJvbSAndGVybWVuY29kaW5nJyB0byAnZW5jb2RpbmcnLiAgQWRkCgkgICAgbWFjX3N0cmluZ19jb252ZXJ0KCkuICBDb252ZXJ0IHRleHQgZm9yIHRoZSBjbGlwYm9hcmQgd2hlbiBuZWVkZWQuCgkgICAgKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9tYnl0ZS5jLCBzcmMvc3RydWN0cy5oLCBzcmMvdmltLmgKClBhdGNoIDYuMi4zMDUgKGFmdGVyIDYuMi4zMDApClByb2JsZW06ICAgIFdpbjMyOiBDYW5ub3QgYnVpbGQgUHl0aG9uIGludGVyZmFjZSB3aXRoIFB5dGhvbiAyLjMuIChBaml0CgkgICAgVGhha2thcikKU29sdXRpb246ICAgQWRkIHR3byBmdW5jdGlvbnMgdG8gdGhlIGR5bmFtaWMgbG9hZGluZyBmZWF0dXJlLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjMwNiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBCdWlsZGluZyBjb25zb2xlIHZlcnNpb24gd2l0aCBCQ0MgNS41IGdpdmVzIGEgd2FybmluZyBmb3IKCSAgICBnZXRfY21kX2FyZ3MoKSBwcm90b3R5cGUgbWlzc2luZy4gIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIERvbid0IGJ1aWxkIG9zX3czMmV4ZS5jIGZvciB0aGUgY29uc29sZSB2ZXJzaW9uLgpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWsKClBhdGNoIDYuMi4zMDcgKGFmdGVyIDYuMi4yOTkpClByb2JsZW06ICAgIEluc3RhbGxpbmcgaGVscCBmaWxlcyBmYWlscy4KU29sdXRpb246ICAgRXhwYW5kIHdpbGRjYXJkcyBmb3IgdHJhbnNsYXRlZCBoZWxwIGZpbGVzIHNlcGFyYXRlbHkuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMzA4ClByb2JsZW06ICAgIE5vdCBhbGwgc3lzdGVtcyBoYXZlICJ3aG9hbWkiLCByZXN1bHRpbmcgaW4gYW4gZW1wdHkgdXNlciBuYW1lLgpTb2x1dGlvbjogICBVc2UgImxvZ25hbWUiIHdoZW4gcG9zc2libGUsICJ3aG9hbWkiIG90aGVyd2lzZS4gIChEYXZpZCBCb3ljZSkKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4zMDkKUHJvYmxlbTogICAgIjNncngiIHdhaXRzIGZvciB0d28gRVNDIHRvIGJlIHR5cGVkLiAgKEplbnMgUGF1bHVzKQpTb2x1dGlvbjogICBBcHBlbmQgdGhlIEVTQyB0byB0aGUgc3R1ZmYgYnVmZmVyIHdoZW4gcmVkb2luZyB0aGUgImdyIiBpbnNlcnQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjMxMApQcm9ibGVtOiAgICBXaGVuIHNldHRpbmcgJ3VuZG9sZXZlbHMnIHRvIC0xLCBtYWtpbmcgYSBjaGFuZ2UgYW5kIHNldHRpbmcKCSAgICAndW5kb2xldmVscycgdG8gYSBwb3NpdGl2ZSB2YWx1ZSBhbiAidW5kbyBsaXN0IGNvcnJ1cHQiIGVycm9yCgkgICAgb2NjdXJzLiAoTWFkb2thIE1hY2hpdGFuaSkKU29sdXRpb246ICAgU3luYyB1bmRvIGJlZm9yZSBjaGFuZ2luZyAndW5kb2xldmVscycuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzExIChhZnRlciA2LjIuMjk4KQpQcm9ibGVtOiAgICBXaGVuIG1ha2luZyBzZXZlcmFsIGNoYW5nZXMgaW4gb25lIGxpbmUgdGhlIGNoYW5nZWxpc3QgZ3Jvd3MKCSAgICBxdWlja2x5LiAgVGhlcmUgaXMgbm8gZXJyb3IgbWVzc2FnZSBmb3IgcmVhY2hpbmcgdGhlIGVuZCBvZiB0aGUKCSAgICBjaGFuZ2VsaXN0LiAgUmVhZGluZyBjaGFuZ2VsaXN0IG1hcmtzIGZyb20gdmltaW5mbyBkb2Vzbid0IHdvcmsKCSAgICBwcm9wZXJseS4KU29sdXRpb246ICAgT25seSBtYWtlIGEgbmV3IGVudHJ5IGluIHRoZSBjaGFuZ2VsaXN0IHdoZW4gbWFraW5nIGEgY2hhbmdlIGluCgkgICAgYW5vdGhlciBsaW5lIG9yICd0ZXh0d2lkdGgnIGNvbHVtbnMgYXdheS4gIEFkZCBFNjYyLCBFNjYzIGFuZCBFNjY0CgkgICAgZXJyb3IgbWVzc2FnZXMuICBQdXQgYSBjaGFuZ2VsaXN0IG1hcmsgZnJvbSB2aW1pbmZvIG9uZSBwb3NpdGlvbgoJICAgIGJlZm9yZSB0aGUgZW5kLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21vdGlvbi50eHQsIHNyYy9tYXJrLmMsIHNyYy9taXNjMS5jLCBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4zMTIgKGFmdGVyIDYuMi4yOTkpClByb2JsZW06ICAgICJtYWtlIGluc3RhbGwiIGNsZWFycyB0aGUgc2NyZWVuIHdoZW4gaW5zdGFsbGluZyB0aGUgZG9jcy4KU29sdXRpb246ICAgRXhlY3V0ZSAiOmhlbHB0YWdzIiBpbiBzaWxlbnQgbW9kZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjMxMwpQcm9ibGVtOiAgICBXaGVuIG9wZW5pbmcgZm9sZHMgaW4gYSBkaWZmIHdpbmRvdywgb3RoZXIgZGlmZiB3aW5kb3dzIG5vIGxvbmdlcgoJICAgIHNob3cgdGhlIHNhbWUgdGV4dC4KU29sdXRpb246ICAgU3luYyB0aGUgZm9sZHMgaW4gZGlmZiB3aW5kb3dzLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9mb2xkLmMsIHNyYy9tb3ZlLmMsIHNyYy9wcm90by9kaWZmLnBybywKCSAgICBzcmMvcHJvdG8vbW92ZS5wcm8KClBhdGNoIDYuMi4zMTQKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCAicngiIG1heSBjYXVzZSBhIGNyYXNoIHdpdGggYSBibG9ja3dpc2UKCSAgICBzZWxlY3Rpb24gYW5kIHVzaW5nICIkIi4gKE1vcml0eiBPcmJhY2gpClNvbHV0aW9uOiAgIERvbid0IHRyeSByZXBsYWNpbmcgY2hhcnMgaW4gYSBsaW5lIHRoYXQgaGFzIG5vIGNoYXJhY3RlcnMgaW4gdGhlCgkgICAgYmxvY2suCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMzE1ClByb2JsZW06ICAgIFVzaW5nIENUUkwtQyBpbiBhIFZpc3VhbCBtb2RlIG1hcHBpbmcgd2hpbGUgJ2luc2VydG1vZGUnIGlzIHNldAoJICAgIHN0b3BzIFZpbSBmcm9tIHJldHVybmluZyB0byBJbnNlcnQgbW9kZS4KU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgInJlc3RhcnRfZWRpdCIgd2hlbiBhIENUUkwtQyBpcyBmb3VuZCBhbmQgJ2luc2VydG1vZGUnCgkgICAgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjMxNiAoYWZ0ZXIgNi4yLjMxMikKUHJvYmxlbTogICAgIm1ha2UgaW5zdGFsbCIgdHJpZXMgY29ubmVjdGluZyB0byB0aGUgWCBzZXJ2ZXIgd2hlbiBpbnN0YWxsaW5nCgkgICAgdGhlIGRvY3MuIChTdGVwaGVuIFRob21hcykKU29sdXRpb246ICAgQWRkIHRoZSAiLVgiIGFyZ3VtZW50LgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlCgpQYXRjaCA2LjIuMzE3IChhZnRlciA2LjIuMzEzKQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJ6aSIgaW4gYSBkaWZmIHdpbmRvdywgb3RoZXIgZGlmZiB3aW5kb3dzIGFyZSBub3QKCSAgICBhZGp1c3RlZC4gKFJpY2hhcmQgQ3Vybm93KQpTb2x1dGlvbjogICBEaXN0cmlidXRlIGEgY2hhbmdlIGluICdmb2xkZW5hYmxlJyB0byBvdGhlciBkaWZmIHdpbmRvd3MuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzE4ClByb2JsZW06ICAgIFdoZW4gY29tcGlsaW5nIHdpdGggX1RIUkVBRF9TQUZFIGV4dGVybmFsIGNvbW1hbmRzIGRvbid0IGVjaG8KCSAgICB0eXBlZCBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIHRlcm1pbmFsIG1vZGUgdG8gVE1PREVfU0xFRVAgd2hlbiBpdCdzIGFscmVhZHkgYXQKCSAgICBUTU9ERV9DT09LLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4zMTkgKGV4dHJhKQpQcm9ibGVtOiAgICBCdWlsZGluZyBndmltZXh0LmRsbCB3aXRoIE1pbmd3IGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgVXNlIGdjYyBpbnN0ZWFkIG9mIGRsbHdyYXAuICBVc2UgbG9uZyBvcHRpb24gbmFtZXMuIChBbGVqYW5kcm8KCSAgICBMb3Blei1WYWxlbmNpYSkKRmlsZXM6CSAgICBzcmMvR3ZpbUV4dC9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjIuMzIwClByb2JsZW06ICAgIFdpbjMyOiBBZGRpbmcgYW5kIHJlbW92aW5nIHRoZSBtZW51YmFyIHJlc2l6ZXMgdGhlIFZpbSB3aW5kb3cuCgkgICAgKEpvbmF0aG9uIE1lcnopClNvbHV0aW9uOiAgIERvbid0IGxldCBhIHJlc2l6ZSBldmVudCBjaGFuZ2UgJ2xpbmVzJyB1bmV4cGVjdGVkbHkuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuMzIxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgbW9kZWxlc3Mgc2VsZWN0aW9uLCB3cmFwcGluZyBsaW5lcyBhcmUgbm90IHJlY29nbml6ZWQsCgkgICAgYSBsaW5lIGJyZWFrIGlzIGFsd2F5cyBpbnNlcnRlZC4KU29sdXRpb246ICAgQWRkIExpbmVXcmFwc1tdIHRvIHJlbWVtYmVyIHdoZXRoZXIgYSBsaW5lIHdyYXBwZWQgb3Igbm90LgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9zY3JlZW4uYywgc3JjL3VpLmMKClBhdGNoIDYuMi4zMjIKUHJvYmxlbTogICAgV2l0aCAnc2hvd2NtZCcgc2V0LCBhZnRlciB0eXBpbmcgImRkIiB0aGUgbmV4dCAiZCIgbWF5IG5vdCBiZQoJICAgIGRpc3BsYXllZC4gKEplbnMgUGF1bHVzKQpTb2x1dGlvbjogICBSZWRyYXcgdGhlIGNvbW1hbmQgbGluZSBhZnRlciB1cGRhdGluZyB0aGUgc2NyZWVuLCBzY3JvbGxpbmcgbWF5CgkgICAgaGF2ZSBzZXQgImNsZWFyX2NtZGxpbmUiLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjMyMwpQcm9ibGVtOiAgICBXaW4zMjogZXhwYW5kaW5nICJ+L2ZpbGUiIGluIGFuIGF1dG9jb21tYW5kIHBhdHRlcm4gcmVzdWx0cyBpbgoJICAgIGJhY2tzbGFzaGVzLCB3aGlsZSB0aGlzIHBhdHRlcm4gc2hvdWxkIG9ubHkgaGF2ZSBmb3J3YXJkIHNsYXNoZXMuClNvbHV0aW9uOiAgIE1ha2UgZXhwYW5kaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyByZXNwZWN0ICdzaGVsbHNsYXNoJyBhbmQgc2V0CgkgICAgcF9zc2wgd2hlbiBleHBhbmRpbmcgdGhlIGF1dG9jb21tYW5kIHBhdHRlcm4uCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvbWlzYzEuYywgc3JjL3Byb3RvL2ZpbGVpby5wcm8KClBhdGNoIDYuMi4zMjQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogd2hlbiAidmltcnVuLmV4ZSIgaGFzIGEgcGF0aCB3aXRoIHdoaXRlIHNwYWNlLCBzdWNoIGFzCgkgICAgIlByb2dyYW0gRmlsZXMiLCBleGVjdXRpbmcgZXh0ZXJuYWwgY29tbWFuZHMgbWF5IGZhaWwuClNvbHV0aW9uOiAgIFB1dCBkb3VibGUgcXVvdGVzIGFyb3VuZCB0aGUgcGF0aCB0byAidmltcnVuIi4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjMyNQpQcm9ibGVtOiAgICBXaGVuICRIT01FIGluY2x1ZGVzIGEgc3BhY2UsIGRvaW5nICI6c2V0IHRhZ3M9fi90YWdzIiBkb2Vzbid0CgkgICAgd29yaywgdGhlIHNwYWNlIGlzIHVzZWQgdG8gc2VwYXJhdGUgZmlsZSBuYW1lcy4gIChCcmV0dCBTdGFobG1hbikKU29sdXRpb246ICAgRXNjYXBlIHRoZSBzcGFjZSB3aXRoIGEgYmFja3NsYXNoLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjMyNgpQcm9ibGVtOiAgICAiOndpbmRvIHNldCBzeW50YXg9Zm9vIiBkb2Vzbid0IHdvcmsuICAoVGltIENoYXNlKQpTb2x1dGlvbjogICBEb24ndCBjaGFuZ2UgJ2V2ZW50aWdub3JlJyBmb3IgIjp3aW5kbyIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi4zMjcKUHJvYmxlbTogICAgV2hlbiBmb3JtYXR0aW5nIHRleHQgYWxsIG1hcmtzIGluIHRoZSBmb3JtYXR0ZWQgbGluZXMgYXJlIGxvc3QuCgkgICAgQSB3b3JkIGlzIG5vdCBqb2luZWQgdG8gYSBwcmV2aW91cyBsaW5lIHdoZW4gdGhpcyB3b3VsZCBiZQoJICAgIHBvc3NpYmxlLiAgKE1pa29sYWogTWFjaG93c2tpKQpTb2x1dGlvbjogICBUcnkgdG8ga2VlcCBtYXJrcyBpbiB0aGUgc2FtZSBwb3NpdGlvbiBhcyBtdWNoIGFzIHBvc3NpYmxlLgoJICAgIEFsc28ga2VlcCBtYXJrIHBvc2l0aW9ucyB3aGVuIGpvaW5pbmcgbGluZXMuCgkgICAgU3RhcnQgYXV0by1mb3JtYXR0aW5nIGluIHRoZSBwcmV2aW91cyBsaW5lIHdoZW4gYXBwcm9wcmlhdGUuCgkgICAgQWRkIHRoZSAiZ3ciIG9wZXJhdG9yOiBMaWtlICJncSIgYnV0IGtlZXAgdGhlIGN1cnNvciB3aGVyZSBpdCBpcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9jaGFuZ2UudHh0LCBzcmMvZWRpdC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWFyay5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYywgc3JjL3Byb3RvL2VkaXQucHJvLAoJICAgIHNyYy9wcm90by9tYXJrLnBybywgc3JjL3Byb3RvL29wcy5wcm8sIHNyYy9zdHJ1Y3RzLmgsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjMyOApQcm9ibGVtOiAgICBYSU0gd2l0aCBHVEs6IEl0IGlzIGhhcmQgdG8gdW5kZXJzdGFuZCB3aGF0IFhJTSBpcyBkb2luZy4KU29sdXRpb246ICAgQWRkIHhpbV9sb2coKSB0byBsb2cgWElNIGV2ZW50cyBhbmQgaGVscCB3aXRoIGRlYnVnZ2luZy4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjMyOQpQcm9ibGVtOiAgICAiOj0iIGRvZXMgbm90IHdvcmsgVmkgY29tcGF0aWJsZS4gKEFudG9ueSBTY3JpdmVuKQpTb2x1dGlvbjogICBQcmludCB0aGUgbGFzdCBsaW5lIG51bWJlciBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IGxpbmUuICBEb24ndAoJICAgIHByaW50ICJsaW5lIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oLCBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjMzMCAoZXh0cmEsIGFmdGVyIDYuMi4yNjcpClByb2JsZW06ICAgIFdpbjMyOiBDcmFzaCB3aGVuIHRlYXJpbmcgb2ZmIGEgbWVudS4KU29sdXRpb246ICAgVGVybWluYXRlIGEgc3RyaW5nIHdpdGggYSBOVUwuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjMzMSAoYWZ0ZXIgNi4yLjMyNykKUHJvYmxlbTogICAgImd3YXAiIGxlYXZlcyBjdXJzb3IgaW4gdGhlIHdyb25nIGxpbmUuClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSBjdXJzb3IgcG9zaXRpb24gYmVmb3JlIGZpbmRpbmcgdGhlIGVuZHMgb2YgdGhlCgkgICAgcGFyYWdyYXBoLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuMzMyIChleHRyYSkKUHJvYmxlbTogICAgQW1pZ2E6IENvbXBpbGUgZXJyb3IgZm9yIHN0cmluZyBhcnJheS4gQ29tcGlsaW5nIHRoZSBBbWlnYSBHVUkKCSAgICBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIFVzZSBhIGNoYXIgcG9pbnRlciBpbnN0ZWFkLiAgTW92ZSBpbmNsdWRpbmcgImd1aV9hbWlnYS5oIiB0byBhZnRlcgoJICAgIGluY2x1ZGluZyAidmltLmgiLiAgQWRkIGEgc2VtaWNvbG9uLiAoQWxpIEFrY2FhZ2FjKQpGaWxlczoJICAgIHNyYy9ndWlfYW1pZ2EuYywgc3JjL29zX2FtaWdhLmMKClBhdGNoIDYuMi4zMzMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogcHJpbnRpbmcgZG9lc24ndCB3b3JrIHdpdGggc3BlY2lmaWVkIGZvbnQgY2hhcnNldC4KU29sdXRpb246ICAgVXNlIHRoZSBzcGVjaWZpZWQgZm9udCBjaGFyc2V0LiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4yLjMzNCAoZXh0cmEsIGFmdGVyIDYuMi4yOTYpClByb2JsZW06ICAgIFdpbjMyOiBldmFsdWF0aW5nIGNsaWVudCBleHByZXNzaW9uIGluIGRlYnVnIG1vZGUgcmVxdWlyZXMgdHlwaW5nCgkgICAgImNvbnQiLgpTb2x1dGlvbjogICBVc2UgZXZhbF9jbGllbnRfZXhwcl90b19zdHJpbmcoKS4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4yLjMzNQpQcm9ibGVtOiAgICBUaGUgIjpzaWduIiBjb21tYW5kIGNhbm5vdCBiZSBmb2xsb3dlZCBieSBhbm90aGVyIGNvbW1hbmQuClNvbHV0aW9uOiAgIEFkZCBUUkxCQVIgdG8gdGhlIGNvbW1hbmQgZmxhZ3MuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuaAoKUGF0Y2ggNi4yLjMzNiAoYWZ0ZXIgNi4yLjMyNykKUHJvYmxlbTogICAgTWl4dXAgb2YgaXRlbXMgaW4gYW4gZXhwcmVzc2lvbi4KU29sdXRpb246ICAgTW92ZSAiPT0gTlVMIiB0byB0aGUgcmlnaHQgc3BvdC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuMzM3IChleHRyYSwgYWZ0ZXIgNi4yLjMxOSkKUHJvYmxlbTogICAgQnVpbGRpbmcgZ3ZpbWV4dC5kbGwgd2l0aCBNaW5ndyBkb2Vzbid0IHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIEZpeCB3aGl0ZSBzcGFjZSBhbmQgb3RoZXIgZGV0YWlscy4gKEFsZWphbmRybyBMb3Blei1WYWxlbmNpYSkKRmlsZXM6CSAgICBzcmMvR3ZpbUV4dC9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjIuMzM4IChhZnRlciA2LjIuMzMxKQpQcm9ibGVtOiAgICBXaGVuIHVuZG9pbmcgImd3YXAiIHRoZSBjdXJzb3IgaXMgYWx3YXlzIHB1dCBhdCB0aGUgc3RhcnQgb2YgdGhlCgkgICAgcGFyYWdyYXBoLiAgV2hlbiB1bmRvaW5nIGF1dG8tZm9ybWF0dGluZyB0aGUgY3Vyc29yIG1heSBiZSBhYm92ZQoJICAgIHRoZSBjaGFuZ2UuClNvbHV0aW9uOiAgIFRyeSB0byBtb3ZlIHRoZSBjdXJzb3IgYmFjayB0byB3aGVyZSBpdCB3YXMgb3IgdG8gdGhlIGZpcnN0IGxpbmUKCSAgICB0aGF0IGFjdHVhbGx5IGNoYW5nZWQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsIHNyYy91bmRvLmMKClBhdGNoIDYuMi4zMzkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBtYW55IGRpZmZlcmVudCBoaWdobGlnaHQgZ3JvdXBzIGFuZCBhIFVzZXIKCSAgICBoaWdobGlnaHQgZ3JvdXAuICAoSnVlcmdlbiBLcmFlbWVyKQpTb2x1dGlvbjogICBEbyBub3QgdXNlIHRoZSBzZ19uYW1lX3UgcG9pbnRlciB3aGVuIGl0IGlzIE5VTEwuICBBbHNvIHNpbXBsaWZ5CgkgICAgdXNlIG9mIHRoZSBoaWdobGlnaHQgZ3JvdXAgdGFibGUuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjIuMzQwClByb2JsZW06ICAgICI6cmVnIiBkb2Vzbid0IHNob3cgdGhlIGFjdHVhbCBjb250ZW50cyBvZiB0aGUgY2xpcGJvYXJkIGlmIGl0IHdhcwoJICAgIGZpbGxlZCBvdXRzaWRlIG9mIFZpbS4gKFN0dWFydCBNYWNEb25hbGQpClNvbHV0aW9uOiAgIE9idGFpbiB0aGUgY2xpcGJvYXJkIGNvbnRlbnRzIGJlZm9yZSBkaXNwbGF5aW5nIGl0LgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjM0MSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBwYXRoIHRvIGRpZmYuZXhlIGNvbnRhaW5zIGEgc3BhY2UgYW5kIHVzaW5nIHRoZQoJICAgIHZpbXJjIGdlbmVyYXRlZCBieSB0aGUgaW5zdGFsbCBwcm9ncmFtLCBkaWZmIG1vZGUgZG9lcyBub3Qgd29yay4KU29sdXRpb246ICAgUHV0IHRoZSBmaXJzdCBkb3VibGUgcXVvdGUganVzdCBiZWZvcmUgdGhlIHNwYWNlIGluc3RlYWQgb2YgYmVmb3JlCgkgICAgdGhlIHBhdGguCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4yLjM0MiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBtYWNyb3MgYXJlIG5vdCBhbHdheXMgdXNlZCBhcyBleHBlY3RlZC4KU29sdXRpb246ICAgRGVmaW5lIFdJTlZFUiB0byAweDA0MDAgaW5zdGVhZCBvZiAweDQwMC4gKEFsZWphbmRybwoJICAgIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWssIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMi4zNDMKUHJvYmxlbTogICAgVGl0bGUgZG9lc24ndCB3b3JrIHdpdGggc29tZSB3aW5kb3cgbWFuYWdlcnMuICBYMTE6IFNldHRpbmcgdGhlCgkgICAgdGV4dCBwcm9wZXJ0eSBmb3IgdGhlIHdpbmRvdyB0aXRsZSBpcyBoYXJkIGNvZGVkLgpTb2x1dGlvbjogICBVc2UgU1RSSU5HIGZvcm1hdCB3aGVuIHBvc3NpYmxlLiAgVXNlIHRoZSBVVEYtOCBmdW5jdGlvbiB3aGVuCgkgICAgaXQncyBhdmFpbGFibGUgYW5kICdlbmNvZGluZycgaXMgdXRmLTguIFVzZQoJICAgIFhTdHJpbmdMaXN0VG9UZXh0UHJvcGVydHkoKS4gIERvIHRoZSBzYW1lIGZvciB0aGUgaWNvbiBuYW1lLgoJICAgIChEYXZpZCBIYXJyaXNvbikKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMzQ0IChleHRyYSwgYWZ0ZXIgNi4yLjMzNykKUHJvYmxlbTogICAgQ2Fubm90IGJ1aWxkIGd2aW1leHQuZGxsIHdpdGggTWluZ1cgb24gTGludXguClNvbHV0aW9uOiAgIEFkZCBzdXBwb3J0IGZvciBjcm9zcyBjb21waWxpbmcuIChSb25hbGQgSG9lbGx3YXJ0aCkKRmlsZXM6CSAgICBzcmMvR3ZpbUV4dC9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjIuMzQ1IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IENvcHkvcGFzdGUgYmV0d2VlbiB0d28gVmltcyBmYWlscyBpZiAnZW5jb2RpbmcnIGlzIG5vdCBzZXQKCSAgICBwcm9wZXJseSBvciB0aGVyZSBhcmUgaWxsZWdhbCBieXRlcy4KU29sdXRpb246ICAgVXNlIGEgcmF3IGJ5dGUgZm9ybWF0LiAgQWx3YXlzIHNldCBpdCB3aGVuIGNvcHlpbmcuICBXaGVuIHBhc3RpbmcKCSAgICB1c2UgdGhlIHJhdyBmb3JtYXQgaWYgJ2VuY29kaW5nJyBpcyB0aGUgc2FtZS4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjE2LmMsIHNyYy9vc193aW4zMi5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4zNDYKUHJvYmxlbTogICAgV2luMzIgY29uc29sZTogQWZ0ZXIgdXNpbmcgImNoY3AiIFZpbSBkb2VzIG5vdCBkZXRlY3QgdGhlCgkgICAgZGlmZmVyZW50IGNvZGVwYWdlLgpTb2x1dGlvbjogICBVc2UgR2V0Q29uc29sZUNQKCkgYW5kIHdoZW4gaXQgaXMgZGlmZmVyZW50IGZyb20gR2V0QUNQKCkgc2V0CgkgICAgJ3Rlcm1lbmNvZGluZycuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzQ3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFhQIHRoZW1lIHN1cHBvcnQgaXMgbWlzc2luZy4KU29sdXRpb246ICAgQWRkIGEgbWFuaWZlc3QgYW5kIHJlZmVyIHRvIGl0IGZyb20gdGhlIHJlc291cmNlIGZpbGUuICAoTWljaGFlbAoJICAgIFdvb2tleSkKRmlsZXM6CSAgICBNYWtlZmlsZSwgc3JjL2d2aW0uZXhlLm1uZiwgc3JjL3ZpbS5yYwoKUGF0Y2ggNi4yLjM0OApQcm9ibGVtOiAgICBXaW4zMjogInZpbSBjOlxkaXJcKHRlc3QpIiBkb2Vzbid0IHdvcmssIGJlY2F1c2UgdGhlICdpc2ZuYW1lJwoJICAgIGRlZmF1bHQgdmFsdWUgZG9lc24ndCBjb250YWluIHBhcmVudGhlc2lzLgpTb2x1dGlvbjogICBUZW1wb3JhcmlseSBhZGQgJygnIGFuZCAnKScgdG8gJ2lzZm5hbWUnIHdoZW4gZXhwYW5kaW5nIGZpbGUgbmFtZQoJICAgIGFyZ3VtZW50cy4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjIuMzQ5ClByb2JsZW06ICAgIEZpbmRpbmcgYSBtYXRjaCB1c2luZyAnbWF0Y2hwYWlycycgbWF5IGNhdXNlIGEgY3Jhc2guCgkgICAgJ21hdGNocGFpcnMnIGlzIG5vdCB1c2VkIGZvciAnc2hvd21hdGNoJy4KU29sdXRpb246ICAgRG9uJ3QgbG9vayBwYXN0IHRoZSBOVUwgaW4gJ21hdGNocGFpcnMnLiAgVXNlICdtYXRjaHBhaXJzJyBmb3IKCSAgICAnc2hvd21hdGNoJy4gKERhdmUgT2xzemV3a3NraSkKRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vc2VhcmNoLnBybywgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuMzUwClByb2JsZW06ICAgIE5vdCBlbm91Z2ggaW5mbyBhYm91dCBzdGFydHVwIHRpbWluZy4KU29sdXRpb246ICAgQWRkIGEgZmV3IG1vcmUgVElNRV9NU0coKSBjYWxscy4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjIuMzUxClByb2JsZW06ICAgIFdpbjMyOiAkSE9NRSBtYXkgYmUgc2V0IHRvICVVU0VSUFJPRklMRSUuClNvbHV0aW9uOiAgIEV4cGFuZCAlVkFSJSBhdCB0aGUgc3RhcnQgb2YgJEhPTUUuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4zNTIgKGFmdGVyIDYuMi4zMzUpClByb2JsZW06ICAgICI6c2lnbiB0ZXh0aGw9fHwiIGRvZXMgbm90IHdvcmsuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgY2hlY2sgZm9yIGEgZm9sbG93aW5nIGNvbW1hbmQuICBHaXZlIGFuIGVycm9yIGZvciBleHRyYQoJICAgIGFyZ3VtZW50cyBhZnRlciAiYnVmZj0xIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjIuMzUzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFN1cHBvcnRlZCBzZXJ2ZXIgbmFtZSBsZW5ndGggaXMgbGltaXRlZC4gKFBhdWwgQm9zc2kpClNvbHV0aW9uOiAgIFVzZSBNQVhfUEFUSCBpbnN0ZWFkIG9mIDI1LgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuMzU0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIG1vdXNlIHBvaW50ZXIgaXMgb24gYSB0ZWFyLW9mZiBtZW51IGl0IGlzIGhpZGRlbgoJICAgIHdoZW4gdHlwaW5nIGJ1dCBpcyBub3QgcmVkaXNwbGF5ZWQgd2hlbiBtb3ZlZC4gKE1hcmt4IEhhY2ttYW5uKQpTb2x1dGlvbjogICBIYW5kbGUgdGhlIHBvaW50ZXIgbW92ZSBldmVudCBmb3IgdGhlIHRlYXItb2ZmIG1lbnUgd2luZG93LgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMi4zNTUgKGFmdGVyIDYuMi4zMDMpClByb2JsZW06ICAgIFdoZW4gJ2VuY29kaW5nJyBpcyBhIGRvdWJsZS1ieXRlIGVuY29kaW5nIGRpZmZlcmVudCBmcm9tIHRoZQoJICAgIGN1cnJlbnQgbG9jYWxlLCB0aGUgd2lkdGggb2YgY2hhcmFjdGVycyBpcyBub3QgY29ycmVjdC4KCSAgICBQb3NzaWJsZSBmYWlsdXJlIGFuZCBtZW1vcnkgbGVhayB3aGVuIHVzaW5nIGljb252LCBVbmljb2RlCgkgICAgZGlncmFwaHMgYW5kICdlbmNvZGluZycgaXMgbm90ICJ1dGYtOCIuClNvbHV0aW9uOiAgIFVzZSBpY29udigpIHRvIGRpc2NvdmVyIHRoZSBhY3R1YWwgd2lkdGggb2YgY2hhcmFjdGVycy4KCSAgICBBZGQgdGhlICJ2Y19mYWlsIiBmaWVsZCB0byB2aW1jb252X1QuCgkgICAgV2hlbiBjb252ZXJ0aW5nIGEgZGlncmFwaCwgaW5pdCB0aGUgY29udmVyc2lvbiB0eXBlIHRvIE5PTkUgYW5kCgkgICAgY2xlYW51cCBhZnRlcndhcmRzLgpGaWxlczoJICAgIHNyYy9kaWdyYXBoLmMsIHNyYy9tYnl0ZS5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuMzU2ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBkb3VibGUtYnl0ZSAnZW5jb2RpbmcnIGFuZCAnc2VsZWN0aW9uJyBpcwoJICAgICJleGNsdXNpdmUiLCAidnkiIG9ubHkgeWFua3MgdGhlIGZpcnN0IGJ5dGUgb2YgYSBkb3VibGUtYnl0ZQoJICAgIGNoYXJhY3Rlci4gIChYaWFuZ2ppYW5nIE1hKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBjb2x1bW4gaW4gdW5hZGp1c3RfZm9yX3NlbCgpIHRvIHBvc2l0aW9uIG9uIHRoZSBmaXJzdAoJICAgIGJ5dGUsIGFsd2F5cyBpbmNsdWRlIHRoZSB0cmFpbGluZyBieXRlIG9mIHRoZSBzZWxlY3RlZCB0ZXh0LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjM1NyAoYWZ0ZXIgNi4yLjMyMSkKUHJvYmxlbTogICAgTWVtb3J5IGxlYWsgd2hlbiByZXNpemluZyB0aGUgVmltIHdpbmRvdy4KU29sdXRpb246ICAgRnJlZSB0aGUgTGluZVdyYXBzIGFycmF5LgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjM1OCAoYWZ0ZXIgNi4yLjI5OSkKUHJvYmxlbTogICAgTWVtb3J5IGxlYWsgd2hlbiB1c2luZyAiOmhlbHAiIGFuZCB0aGUgbGFuZ3VhZ2UgZG9lc24ndCBtYXRjaC4KU29sdXRpb246ICAgRnJlZSB0aGUgYXJyYXkgd2l0aCBtYXRjaGluZyB0YWdzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4zNTkgKGFmdGVyIDYuMi4zNTIpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIGxvbmcgdG8gaW50IHR5cGUgY2FzdC4KU29sdXRpb246ICAgQWRkIGV4cGxpY2l0IHR5cGUgY2FzdC4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMzYwClByb2JsZW06ICAgICIxMDB8IiBpbiBhbiBlbXB0eSBsaW5lIHJlc3VsdHMgaW4gYSBydWxlciAiMSwwLTEwMCIuIChQYXZvbAoJICAgIEp1aGFzKQpTb2x1dGlvbjogICBSZWNvbXB1dGUgd192aXJ0Y29sIGlmIHRoZSB0YXJnZXQgY29sdW1uIHdhcyBub3QgcmVhY2hlZC4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjM2MSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBSdW4gZ3ZpbSwgIjpzZXQgZ28tPW0iLCB1c2UgQWx0LVRhYiwga2VlcCBBbHQgcHJlc3NlZCB3aGlsZQoJICAgIHByZXNzaW5nIEVzYywgdGhlbiByZWxlYXNlIEFsdDogQ3Vyc29yIGRpc2FwcGVhcnMgYW5kIHR5cGluZyBhIGtleQoJICAgIGNhdXNlcyBhIGJlZXAuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgRG9uJ3QgaWdub3JlIHRoZSBXTV9TWVNLRVlVUCBldmVudCB3aGVuIHRoZSBtZW51IGlzIGRpc2FibGVkLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMi4zNjIgKGV4dHJhLCBhZnRlciA2LjIuMzQ3KQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIG1hbmlmZXN0IGNhdXNlcyBHdmltIG5vdCB0byB3b3JrLiAoRGF2ZSBSb2JlcnRzKQpTb2x1dGlvbjogICBDaGFuZ2UgIng4NiIgdG8gIlg4NiIuIChTZXJnZSBQaXJvdHRlKQpGaWxlczoJICAgIHNyYy9ndmltLmV4ZS5tbmYKClBhdGNoIDYuMi4zNjMKUHJvYmxlbTogICAgSW4gYW4gZW1wdHkgZmlsZSB3aXRoICdzaG93bW9kZScgb2ZmLCAiaSIgZG9lc24ndCBjaGFuZ2UgdGhlIHJ1bGVyCgkgICAgZnJvbSAiMC0xIiB0byAiMSIuICBUeXBpbmcgIng8QlM+IiBkb2VzIHNob3cgIjEiLCBidXQgdGhlbiA8RXNjPgoJICAgIGRvZXNuJ3QgbWFrZSBpdCAiMC0xIiBhZ2Fpbi4gIFNhbWUgcHJvYmxlbSBmb3IgcnVsZXIgaW4KCSAgICBzdGF0dXNsaW5lLiAgKEFuZHJldyBQaW1sb3R0KQpTb2x1dGlvbjogICBSZW1lbWJlciB0aGUgImVtcHR5IGxpbmUiIGZsYWcgd2l0aCBJbnNlcnQgbW9kZSBhbmQnZWQgdG8gaXQuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMzY0ClByb2JsZW06ICAgIEhUTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiBkb2Vzbid0IG1lbnRpb24gdGhlIGVuY29kaW5nLAoJICAgIHdoaWNoIGlzIGEgcHJvYmxlbSBmb3IgbWJ5dGUudHh0LgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGF3ayBzY3JpcHQuIChJbHlhIFNoZXIpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbWFrZWh0bWwuYXdrCgpQYXRjaCA2LjIuMzY1ClByb2JsZW06ICAgIFRoZSBjb25maWd1cmUgY2hlY2tzIGZvciBQZXJsIGFuZCBQeXRob24gbWF5IGFkZCBjb21waWxlIGFuZCBsaW5rCgkgICAgYXJndW1lbnRzIHRoYXQgYnJlYWsgYnVpbGRpbmcgVmltLgpTb2x1dGlvbjogICBEbyBhIHNhbml0eSBjaGVjazogdHJ5IGJ1aWxkaW5nIHdpdGggdGhlIGFyZ3VtZW50cy4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMi4zNjYKUHJvYmxlbTogICAgV2hlbiB0aGUgR1VJIGNhbid0IHN0YXJ0IGJlY2F1c2Ugbm8gdmFsaWQgZm9udCBpcyBmb3VuZCwgdGhlcmUgaXMKCSAgICBubyBlcnJvciBtZXNzYWdlLiAoVWdlbikKU29sdXRpb246ICAgQWRkIGFuIGVycm9yIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuMzY3ClByb2JsZW06ICAgIEJ1aWxkaW5nIHRoZSBoZWxwIHRhZ3MgZmlsZSB3aGlsZSBpbnN0YWxsaW5nIG1heSBmYWlsIGlmIHRoZXJlIGlzCgkgICAgYW5vdGhlciBWaW0gaW4gJFBBVEguClNvbHV0aW9uOiAgIFNwZWNpZnkgdGhlIGp1c3QgaW5zdGFsbGVkIFZpbSBleGVjdXRhYmxlLiAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4zNjgKUHJvYmxlbTogICAgV2hlbiAnYXV0b2NoZGlyJyBpcyBzZXQsIGNsb3NpbmcgYSB3aW5kb3cgZG9lc24ndCBjaGFuZ2UgdG8gdGhlCgkgICAgZGlyZWN0b3J5IG9mIHRoZSBuZXcgY3VycmVudCB3aW5kb3cuIChTYWxtYW4gSGFsaW0pClNvbHV0aW9uOiAgIEhhbmRsZSAnYXV0b2NoZGlyJyBhbHdheXMgd2hlbiBhIHdpbmRvdyBiZWNvbWVzIHRoZSBjdXJyZW50IG9uZS4KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMi4zNjkKUHJvYmxlbTogICAgVmFyaW91cyBtZW1vcnkgbGVha3M6IHdoZW4gdXNpbmcgZ2xvYnBhdGgoKSwgd2hlbiBzZWFyY2hpbmcgZm9yCgkgICAgaGVscCB0YWdzIGZpbGVzLCB3aGVuIGRlZmluaW5nIGEgZnVuY3Rpb24gaW5zaWRlIGEgZnVuY3Rpb24sIHdoZW4KCSAgICBnaXZpbmcgYW4gZXJyb3IgbWVzc2FnZSB0aHJvdWdoIGFuIGV4Y2VwdGlvbiwgZm9yIHRoZSBmaW5hbCAiLiIKCSAgICBsaW5lIGluICI6YXBwZW5kIiwgaW4gZXhwcmVzc2lvbiAiY29uZCA/IGEgOiBiIiB0aGF0IGZhaWxzIGFuZCBmb3IKCSAgICBtaXNzaW5nICIpIiBpbiBhbiBleHByZXNzaW9uLiAgVXNpbmcgTlVMTCBwb2ludGVyIHdoZW4gYWRkaW5nCgkgICAgZmlyc3QgdXNlciBjb21tYW5kIGFuZCBmb3IgcG9pbnRlciBjb21wdXRhdGlvbnMgd2l0aCByZWdleHAuCgkgICAgKHRlc3RzIGJ5IERvbWluaXF1ZSBQZWxsZSkKU29sdXRpb246ICAgRml4IHRoZSBsZWFrcyBieSBmcmVlaW5nIHRoZSBhbGxvY2F0ZWQgbWVtb3J5LiAgRG9uJ3QgdXNlIHRoZQoJICAgIGFycmF5IG9mIHVzZXIgY29tbWFuZHMgd2hlbiB0aGVyZSBhcmUgbm8gZW50cmllcy4gIFVzZSBhIG1hY3JvCgkgICAgaW5zdGVhZCBvZiBhIGZ1bmN0aW9uIGNhbGwgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHJlZ2V4cCBzdGF0ZXMuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLAoJICAgIHNyYy9taXNjMi5jLCBzcmMvcmVnZXhwLmMsIHNyYy9zY3JlZW4uYywgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMzcwIChleHRyYSwgYWZ0ZXI2LjIuMzQxKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgcGF0aCB0byBkaWZmLmV4ZSBjb250YWlucyBhIHNwYWNlIGFuZCB1c2luZyB0aGUKCSAgICB2aW1yYyBnZW5lcmF0ZWQgYnkgdGhlIGluc3RhbGwgcHJvZ3JhbSwgZGlmZiBtb2RlIG1heSBub3Qgd29yay4KCSAgICAoQWxlamFuZHJvIExvcGV6LVZhbGVuY2lhKQpTb2x1dGlvbjogICBEbyBub3QgdXNlIGRvdWJsZSBxdW90ZXMgZm9yIGFyZ3VtZW50cyB0aGF0IGRvIG5vdCBoYXZlIGEgc3BhY2UuCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4yLjM3MQpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCB0aGVyZSBpcyBhIFRhYiBiZWZvcmUgdGhlIG5leHQgIngiLAoJICAgICJkdHgiIGRvZXMgbm90IGRlbGV0ZSB0aGUgd2hvbGUgVGFiLiAoS2VuIEhhc2hpc2hpKQpTb2x1dGlvbjogICBNb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlIFRhYi4gIEFsc28gZm9yCgkgICAgImRmPFRhYj4iLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjM3MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGJhbGxvb24gZXZhbHVhdGlvbiwgbm8gdmFsdWUgaXMgZGlzcGxheWVkIGZvciBtZW1iZXJzCgkgICAgb2Ygc3RydWN0dXJlcyBhbmQgaXRlbXMgb2YgYW4gYXJyYXkuClNvbHV0aW9uOiAgIEluY2x1ZGUgIi0+IiwgIi4iIGFuZCAiWypdIiBpbiB0aGUgZXhwcmVzc2lvbi4KRmlsZXM6CSAgICBzcmMvZ3VpX2JldmFsLmMsIHNyYy9ub3JtYWwuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMzczClByb2JsZW06ICAgIFdoZW4gJ3dpbm1pbmhlaWdodCcgaXMgemVybyBhbmQgYSB3aW5kb3cgaXMgcmVkdWNlZCB0byB6ZXJvCgkgICAgaGVpZ2h0LCB0aGUgcnVsZXIgYWx3YXlzIHNheXMgIlRvcCIgaW5zdGVhZCBvZiB0aGUgY3Vyc29yCgkgICAgcG9zaXRpb24uIChBbnRvaW5lIEouIE1lY2hlbHluY2spClNvbHV0aW9uOiAgIERvbid0IHJlY29tcHV0ZSB3X3RvcGxpbmUgZm9yIGEgemVyby1oZWlnaHQgd2luZG93LgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjM3NApQcm9ibGVtOiAgICAiOmVjaG8gImhlbGxvIiB8IHNpbGVudCBub3JtYWwgbiIgcmVtb3ZlcyB0aGUgImhlbGxvIiBtZXNzYWdlLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb24ndCBlY2hvIHRoZSBzZWFyY2ggc3RyaW5nIHdoZW4gIjpzaWxlbnQiIHdhcyB1c2VkLiAgQWxzbyBkb24ndAoJICAgIHNob3cgdGhlIG1vZGUuICBJbiBnZW5lcmFsOiBkb24ndCBjbGVhciB0byB0aGUgZW5kIG9mIHRoZSBzY3JlZW4uCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvbWVzc2FnZS5jLCBzcmMvb3NfdW5peC5jLCBzcmMvcHJvdG8vbWVzc2FnZS5wcm8sCgkgICAgc3JjL3NjcmVlbi5jLCBzcmMvc2VhcmNoLmMsIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjM3NQpQcm9ibGVtOiAgICBXaGVuIGNoYW5naW5nICdndWlvcHRpb25zJyB0aGUgaGl0LWVudGVyIHByb21wdCBtYXkgYmUgYmVsb3cgdGhlCgkgICAgZW5kIG9mIHRoZSBWaW0gd2luZG93LgpTb2x1dGlvbjogICBDYWxsIHNjcmVlbl9hbGxvYygpIGJlZm9yZSBzaG93aW5nIHRoZSBwcm9tcHQuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4yLjM3NgpQcm9ibGVtOiAgICBXaW4zMjogUnVieSBpbnRlcmZhY2UgY2Fubm90IGJlIGR5bmFtaWNhbGx5IGxpbmtlZCB3aXRoIFJ1YnkgMS42LgpTb2x1dGlvbjogICBBZGQgI2lmZGVmcyBhcm91bmQgdXNlIG9mIHJiX3czMl9zbnByaW50ZigpLiAgKEJlbm/udCBDZXJyaW5hKQpGaWxlczoJICAgIHNyYy9pZl9ydWJ5LmMKClBhdGNoIDYuMi4zNzcgKGFmdGVyIDYuMi4zNzIpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciBzaWduZWQvdW5zaWduZWQgY29tcGFyZS4gKE1pY2hhZWwgV29va2V5KQpTb2x1dGlvbjogICBBZGQgdHlwZSBjYXN0LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjM3OCAoZXh0cmEsIGFmdGVyIDYuMi4xMTgpClByb2JsZW06ICAgIE1hYzogY2Fubm90IGJ1aWxkIHdpdGggUHJvamVjdCBCdWlsZGVyLgpTb2x1dGlvbjogICBBZGQgcmVtb3ZlX3RhaWxfd2l0aF9leHQoKSB0byBsb2NhdGUgYW5kIHJlbW92ZSB0aGUgImJ1aWxkIgoJICAgIGRpcmVjdG9yeSBmcm9tIHRoZSBydW50aW1lIHBhdGguICBJbmNsdWRlIG9zX3VuaXguYyB3aGVuIG5lZWRlZC4KCSAgICAoRGFueSBTdCBBbWFudCkKRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL29zX21hY29zeC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4zNzkKUHJvYmxlbTogICAgVXNpbmcgIjpta3ZpbXJjIiBpbiB0aGUgIjpvcHRpb25zIiB3aW5kb3cgc2V0cyAnYnVmaGlkZGVuJyB0bwoJICAgICJkZWxldGUiLiAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBEbyBub3QgYWRkIGJ1ZmZlci1zcGVjaWZpYyBvcHRpb24gdmFsdWVzIHRvIGEgZ2xvYmFsIHZpbXJjIGZpbGUuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzgwIChleHRyYSkKUHJvYmxlbTogICAgRE9TOiAibWFrZSB0ZXN0IiBmYWlscyB3aGVuIHJ1bm5pbmcgaXQgYWdhaW4uICBDYW4ndCAibWFrZSB0ZXN0IgoJICAgIHdpdGggQm9ybGFuZCBDLgpTb2x1dGlvbjogICBNYWtlIHN1cmUgIi5vdXQiIGZpbGVzIGFyZSBkZWxldGVkIHdoZW4gdGhleSBnZXQgaW4gdGhlIHdheS4gIEFkZAoJICAgIGEgInRlc3QiIHRhcmdldCB0byB0aGUgQm9ybGFuZCBDIE1ha2VmaWxlLgpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWssIHNyYy90ZXN0ZGlyL01ha2VfZG9zLm1hawoKUGF0Y2ggNi4yLjM4MQpQcm9ibGVtOiAgICBTZXR0aW5nICdmaWxlZW5jb2RpbmcnIHRvIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QgKGNvbmZ1c2luZyBpdAoJICAgIHdpdGggJ2ZpbGVlbmNvZGluZ3MnKSBkb2VzIG5vdCByZXN1bHQgaW4gYW4gZXJyb3IgbWVzc2FnZS4KCSAgICBTZXR0aW5nICdmaWxlZW5jb2RpbmcnIGluIGFuIGVtcHR5IGZpbGUgbWFya3MgaXQgYXMgbW9kaWZpZWQuCgkgICAgVGhlcmUgaXMgbm8gIisiIGluIHRoZSB0aXRsZSBhZnRlciBzZXR0aW5nICdmaWxlZW5jb2RpbmcnLgpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBjb21tYSBpbiAnZmlsZWVuY29kaW5nJy4gIE9ubHkgY29uc2lkZXIgYSBub24tZW1wdHkKCSAgICBmaWxlIG1vZGlmaWVkIGJ5IGNoYW5naW5nICdmaWxlZW5jb2RpbmcnLiAgVXBkYXRlIHRoZSB0aXRsZSBhZnRlcgoJICAgIGNoYW5naW5nICdmaWxlZW5jb2RpbmcnLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjM4MgpQcm9ibGVtOiAgICBSdW5uaW5nICJtYWtlIHRlc3QiIHB1dHMgbWFya3MgZnJvbSB0ZXN0IGZpbGVzIGluIHZpbWluZm8uClNvbHV0aW9uOiAgIFNwZWNpZnkgYSBkaWZmZXJlbnQgdmltaW5mbyBmaWxlIHRvIHVzZS4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MTUuaW4sIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5pbgoKUGF0Y2ggNi4yLjM4MwpQcm9ibGVtOiAgICAiOmhpIGZvbyB0ZXJtPSdibGEiIGNyYXNoZXMgVmltLiAoQW50b255IFNjcml2ZW4pClNvbHV0aW9uOiAgIENoZWNrIHRoYXQgdGhlIGNsb3NpbmcgJyBpcyB0aGVyZS4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi4zODQKUHJvYmxlbTogICAgIjptZW51IGEuJmIiICI6dW5tZW51IGEuYiIgb25seSB3b3JrcyBpZiAiJmIiIGlzbid0IHRyYW5zbGF0ZWQuClNvbHV0aW9uOiAgIEFsc28gY29tcGFyZSB0aGUgbmFtZXMgd2l0aG91dCAnJicgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjIuMzg1ICAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBmb3J3YXJkX3NsYXNoKCkgYW5kIHRyYXNoX2lucHV0X2J1ZigpIGFyZSB1bmRlZmluZWQgd2hlbgoJICAgIGNvbXBpbGluZyB3aXRoIHNtYWxsIGZlYXR1cmVzLiAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBDaGFuZ2UgdGhlICNpZmRlZnMgZm9yIGZvcndhcmRfc2xhc2goKS4gIERvbid0IGNhbGwKCSAgICB0cmFzaF9pbnB1dF9idWYoKSBpZiB0aGUgaW5wdXQgYnVmZmVyIGlzbid0IHVzZWQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjM4NgpQcm9ibGVtOiAgICBXYXN0aW5nIHRpbWUgdHJ5aW5nIHRvIHJlYWQgbWFya3MgZnJvbSB0aGUgdmltaW5mbyBmaWxlIGZvciBhCgkgICAgYnVmZmVyIHdpdGhvdXQgYSBuYW1lLgpTb2x1dGlvbjogICBTa2lwIHJlYWRpbmcgbWFya3Mgd2hlbiB0aGUgYnVmZmVyIGhhcyBubyBuYW1lLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjM4NwpQcm9ibGVtOiAgICBUaGVyZSBpcyBubyBoaWdobGlnaHRpbmcgb2YgdHJhbnNsYXRlZCBpdGVtcyBpbiBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBTZWFyY2ggZm9yIGEgImhlbHBfYWIudmltIiBzeW50YXggZmlsZSB3aGVuIHRoZSBoZWxwIGZpbGUgaXMKCSAgICBjYWxsZWQgIiouYWJ4Ii4gIEFsc28gaW1wcm92ZSB0aGUgaGVscCBoaWdobGlnaHRpbmcgYSBiaXQuCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvaGVscC52aW0KClBhdGNoIDYuMi4zODgKUHJvYmxlbTogICAgR1RLOiBXaGVuIGRpc3BsYXlpbmcgc29tZSBkb3VibGUtd2lkdGggY2hhcmFjdGVycyB0aGV5IGFyZSBkcmF3bgoJICAgIGFzIHNpbmdsZS13aWR0aCwgYmVjYXVzZSBvZiBjb252ZXJzaW9uIHRvIFVURi04LgpTb2x1dGlvbjogICBDaGVjayB0aGUgd2lkdGggdGhhdCBHVEsgdXNlcyBhbmQgYWRkIGEgc3BhY2UgaWYgaXQncyBvbmUgaW5zdGVhZAoJICAgIG9mIHR3by4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4yLjM4OQpQcm9ibGVtOiAgICBXaGVuIHdvcmtpbmcgb3ZlciBhIHNsb3cgY29ubmVjdGlvbiwgaXQncyB2ZXJ5IGFubm95aW5nIHRoYXQgdGhlCgkgICAgbGFzdCBsaW5lIGlzIHBhcnRseSBkcmF3biBhbmQgdGhlbiBjbGVhcmVkIGZvciBldmVyeSBjaGFuZ2UuClNvbHV0aW9uOiAgIERvbid0IHJlZHJhdyB0aGUgYm90dG9tIGxpbmUgaWYgbm8gcm93cyB3ZXJlIGluc2VydGVkIG9yIGRlbGV0ZWQuCgkgICAgRG9uJ3QgZHJhdyB0aGUgbGluZSBpZiB3ZSBrbm93ICJAIiBsaW5lcyB3aWxsIGJlIHVzZWQuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMzkwClByb2JsZW06ICAgIFVzaW5nICJyKiIgaW4gVmlzdWFsIG1vZGUgb24gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIG9ubHkgcmVwbGFjZXMKCSAgICBldmVyeSBvdGhlciBjaGFyYWN0ZXIuIChUeXNvbiBSb2JlcnRzKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgcmVwbGFjaW5nIGVhY2ggY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjM5MSAoZXh0cmEpClByb2JsZW06ICAgIFRoZSAiOmhpZ2hsaWdodCIgY29tbWFuZCBpcyBub3QgdGVzdGVkLgpTb2x1dGlvbjogICBBZGQgYSB0ZXN0IHNjcmlwdCBmb3IgIjpoaWdobGlnaHQiLgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL01ha2VmaWxlLCBzcmMvdGVzdGRpci9NYWtlX2FtaWdhLm1haywKCSAgICBzcmMvdGVzdGRpci9NYWtlX2Rvcy5tYWssIHNyYy90ZXN0ZGlyL01ha2Vfb3MyLm1haywKCSAgICBzcmMvdGVzdGRpci9NYWtlX3Ztcy5tbXMsIHNyYy90ZXN0ZGlyL3Rlc3Q1MS5pbiwKCSAgICBzcmMvdGVzdGRpci90ZXN0NTEub2sKClBhdGNoIDYuMi4zOTIgKGFmdGVyIDYuMi4zODQpClByb2JsZW06ICAgIFVudXNlZCB2YXJpYWJsZS4KU29sdXRpb246ICAgUmVtb3ZlICJkbGVuIi4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjIuMzkzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdmVyeSBsb25nIGxpbmVzIHRoZSB2aW1pbmZvIGZpbGUgY2FuIGJlY29tZSB2ZXJ5IGJpZy4KU29sdXRpb246ICAgQWRkIHRoZSAicyIgZmxhZyB0byAndmltaW5mbyc6IHNraXAgcmVnaXN0ZXJzIHdpdGggbW9yZSB0aGFuIHRoZQoJICAgIHNwZWNpZmllZCBLYnl0ZSBvZiB0ZXh0LgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvb3BzLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjM5NCAgKGFmdGVyIDYuMi4zOTEpClByb2JsZW06ICAgIFRlc3QgNTEgZmFpbHMgb24gYSB0ZXJtaW5hbCB3aXRoIDggY29sb3JzLiAoVG9ueSBMZW5laXMpClNvbHV0aW9uOiAgIFVzZSAiRGFya0JsdWUiIGluc3RlYWQgb2YgIkJsdWUiIHRvIGF2b2lkIHRoZSAiYm9sZCIgYXR0cmlidXRlLgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q1MS5pbgoKUGF0Y2ggNi4yLjM5NQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6dGFnIiBvciAiOnBvcCIgdGhlIHByZXZpb3VzIG1hdGNoaW5nIHRhZyBpcyB1c2VkLgoJICAgIEJ1dCBzaW5jZSB0aGUgY3VycmVudCBmaWxlIGlzIGRpZmZlcmVudCwgdGhlIG9yZGVyaW5nIG9mIHRoZSB0YWdzCgkgICAgbWF5IGNoYW5nZS4KU29sdXRpb246ICAgUmVtZW1iZXIgd2hhdCB0aGUgY3VycmVudCBidWZmZXIgd2FzIGZvciB3aGVuIHJlLXVzaW5nIGN1cl9tYXRjaC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfY21kcy5jLCBzcmMvcHJvdG8vdGFnLnBybywgc3JjL3N0cnVjdHMuaCwKCSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4zOTYKUHJvYmxlbTogICAgV2hlbiBDVFJMLVQganVtcHMgdG8gYW5vdGhlciBmaWxlIGFuZCBhbiBhdXRvY29tbWFuZCBtb3ZlcyB0aGUKCSAgICBjdXJzb3IgdG8gdGhlICciIG1hcmssIGRvbid0IGVuZCB1cCBvbiB0aGUgcmlnaHQgbGluZS4gIChNaWNoYWwKCSAgICBNYWxlY2tpKQpTb2x1dGlvbjogICBTZXQgdGhlIGxpbmUgbnVtYmVyIGFmdGVyIGxvYWRpbmcgdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMzk3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBkb3VibGUtYnl0ZSAnZW5jb2RpbmcnIG1hcHBpbmcgPE0teD4gZG9lc24ndCB3b3JrLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIERvIG5vdCBzZXQgdGhlIDh0aCBiaXQgb2YgdGhlIGNoYXJhY3RlciBidXQgdXNlIGEgbW9kaWZpZXIuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9ndWlfeDExLmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuMzk4IChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgY29uc29sZTogbm8gZXh0cmEga2V5IG1vZGlmaWVycyBhcmUgc3VwcG9ydGVkLgpTb2x1dGlvbjogICBFbmNvZGUgdGhlIG1vZGlmaWVycyBpbnRvIHRoZSBpbnB1dCBzdHJlYW0uICBBbHNvIGZpeCB0aGF0IHNwZWNpYWwKCSAgICBrZXlzIGFyZSBjb252ZXJ0ZWQgYW5kIHN0b3Agd29ya2luZyB3aGVuICd0ZW5jJyBpcyBzZXQuICBBbHNvIGZpeAoJICAgIHRoYXQgd2hlbiAndGVuYycgaXMgaW5pdGlhbGl6ZWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgY29udmVyc2lvbiBpcwoJICAgIG5vdCBzZXR1cCBwcm9wZXJseSB1bnRpbCAnZW5jJyBvciAndGVuYycgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9vcHRpb24uYywgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4zOTkKUHJvYmxlbTogICAgQSAiOnNldCIgY29tbWFuZCB0aGF0IGZhaWxzIHN0aWxsIHdyaXRlcyBhIG1lc3NhZ2Ugd2hlbiBpdCBpcwoJICAgIGluc2lkZSBhIHRyeS9jYXRjaCBibG9jay4KU29sdXRpb246ICAgSW5jbHVkZSBhbGwgdGhlIHRleHQgb2YgdGhlIG1lc3NhZ2UgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuNDAwClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgaWZfeGNtZHNydi5jIG9uIEhQLVVYIDExLjAuClNvbHV0aW9uOiAgIEluY2x1ZGUgaGVhZGVyIGZpbGUgcG9sbC5oLiAoTWFsdGUgTmV1bWFubikKRmlsZXM6CSAgICBzcmMvaWZfeGNtZHNydi5jCgpQYXRjaCA2LjIuNDAxClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyBhIGJ1ZmZlciB0aGF0IHdhcyBwcmV2aW91c2x5IG9wZW5lZCwgVmltIGRvZXMgbm90CgkgICAgcmVzdG9yZSB0aGUgY3Vyc29yIHBvc2l0aW9uIGlmIHRoZSBmaXJzdCBsaW5lIHN0YXJ0cyB3aXRoIHdoaXRlCgkgICAgc3BhY2UuICAoR3JlZ29yeSBNYXJnbykKU29sdXRpb246ICAgRG9uJ3Qgc2tpcCByZXN0b3JpbmcgdGhlIGN1cnNvciBwb3NpdGlvbiBpZiBpdCBpcyBwYXN0IHRoZSBibGFua3MKCSAgICBpbiB0aGUgZmlyc3QgbGluZS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMi40MDIKUHJvYmxlbTogICAgTWFjOiAibWFrZSBpbnN0YWxsIiBkb2Vzbid0IGdlbmVyYXRlIGhlbHAgdGFncy4gKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgR2VuZXJhdGUgaGVscCB0YWdzIGJlZm9yZSBjb3B5aW5nIHRoZSBydW50aW1lIGZpbGVzLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjQwMwpQcm9ibGVtOiAgICAiOkB5IiBjaGVja3Mgc3RkaW4gaWYgdGhlcmUgYXJlIG1vcmUgY29tbWFuZHMgdG8gZXhlY3V0ZS4gIFRoaXMKCSAgICBmYWlscyBpZiBzdGRpbiBpcyBub3QgY29ubmVjdGVkLCBlLmcuLCB3aGVuIHN0YXJ0aW5nIHRoZSBHVUkgZnJvbQoJICAgIEtERS4gKE5lZCBLb256KQpTb2x1dGlvbjogICBPbmx5IGNoZWNrIGZvciBhIG5leHQgY29tbWFuZCBpZiB0aGVyZSBzdGlsbCBpcyB0eXBlYWhlYWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi40MDQKUHJvYmxlbTogICAgT3VyIG93biBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2lkdGggb2YgVW5pY29kZSBjaGFyYWN0ZXJzIG1heSBnZXQKCSAgICBvdXRkYXRlZC4gKE1hcmt1cyBLdWhuKQpTb2x1dGlvbjogICBVc2Ugd2N3aWR0aCgpIHdoZW4gaXQgaXMgYXZhaWxhYmxlLiAgQWxzbyB1c2UgaXN3cHJpbnQoKS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcuaC5pbiwgc3JjL21ieXRlLmMKClBhdGNoIDYuMi40MDUKUHJvYmxlbTogICAgQ2Fubm90IG1hcCB6ZXJvIHdpdGhvdXQgYnJlYWtpbmcgdGhlIGNvdW50IGJlZm9yZSBhIGNvbW1hbmQuCgkgICAgKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgRGlzYWJsZSBtYXBwaW5nIHplcm8gd2hlbiBlbnRlcmluZyBhIGNvdW50LgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjQwNgpQcm9ibGVtOiAgICAiOmhlbHAgXHpzIiwgIjpoZWxwIFxAPSIgYW5kIHNpbWlsYXIgZG9uJ3QgZmluZCB1c2VmdWwgaGVscC4KU29sdXRpb246ICAgUHJlcGVuZCAiL1wiIHRvIHRoZSBhcmd1bWVudHMgdG8gZmluZCB0aGUgZGVzaXJlZCBoZWxwIHRhZy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuNDA3IChhZnRlciA2LjIuMjk5KQpQcm9ibGVtOiAgICAiOmhlbHAgXEA8PSIgZG9lc24ndCBmaW5kIGhlbHAuClNvbHV0aW9uOiAgIEF2b2lkIHRoYXQgIjpoZWxwIFxAPD0iIHNlYXJjaGVzIGZvciB0aGUgIjw9IiBsYW5ndWFnZS4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi40MDgKUHJvYmxlbTogICAgIjpjb21waWxlciIgaXMgbm90IGNvbnNpc3RlbnQ6IFNldHMgbG9jYWwgb3B0aW9ucyBhbmQgYSBnbG9iYWwKCSAgICB2YXJpYWJsZS4gKERvdWdsYXMgUG90dHMpICBUaGVyZSBpcyBubyBlcnJvciBtZXNzYWdlIHdoZW4gYQoJICAgIGNvbXBpbGVyIGlzIG5vdCBzdXBwb3J0ZWQuClNvbHV0aW9uOiAgIFVzZSAiOmNvbXBpbGVyISIgdG8gc2V0IGEgY29tcGlsZXIgZ2xvYmFsbHksIG90aGVyd2lzZSBpdCdzIGxvY2FsCgkgICAgdG8gdGhlIGJ1ZmZlciBhbmQgImI6Y3VycmVudF9jb21waWxlciIgaXMgdXNlZC4gIEdpdmUgYW4gZXJyb3IKCSAgICB3aGVuIG5vIGNvbXBpbGVyIHNjcmlwdCBjb3VsZCBiZSBmb3VuZC4KCSAgICBOb3RlOiB1cGRhdGVkIGNvbXBpbGVyIHBsdWdpbnMgY2FuIGJlIGZvdW5kIGF0CgkgICAgZnRwOi8vZnRwLnZpbS5vcmcvcHViL3ZpbS9ydW50aW1lL2NvbXBpbGVyLwpGaWxlczoJICAgIHJ1bnRpbWUvY29tcGlsZXIvbXN2Yy52aW0sIHJ1bnRpbWUvZG9jL3F1aWNrZml4LnR4dCwgc3JjL2V2YWwuYywKCSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjQwOQpQcm9ibGVtOiAgICBUaGUgY3Vyc29yIGVuZHMgdXAgaW4gdGhlIGxhc3QgY29sdW1uIGluc3RlYWQgb2YgYWZ0ZXIgdGhlIGxpbmUKCSAgICB3aGVuIGRvaW5nICJpLy88RXNjPm8iIHdpdGggJ2luZGVudGV4cHInIHNldCB0byAiY2luZGVudCh2OmxudW0pIi4KCSAgICAoVG9ieSBBbGxzb3BwKQpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGN1cnNvciBhcyBpZiBpbiBJbnNlcnQgbW9kZS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjQxMCAoYWZ0ZXIgNi4yLjM4OSkKUHJvYmxlbTogICAgSW4gZGlmZiBtb2RlLCB3aGVuIHRoZXJlIGFyZSBtb3JlIGZpbGxlciBsaW5lcyB0aGFuIGZpdCBpbiB0aGUKCSAgICB3aW5kb3csIHRoZXkgYXJlIG5vdCBkcmF3bi4KU29sdXRpb246ICAgQ2hlY2sgZm9yIGZpbGxlciBsaW5lcyB3aGVuIHNraXBwaW5nIHRvIGRyYXcgYSBsaW5lIHRoYXQgZG9lc24ndAoJICAgIGZpdC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi40MTEKUHJvYmxlbTogICAgQSAiXG4iIGluc2lkZSBhIHN0cmluZyBpcyBub3Qgc2VlbiBhcyBhIGxpbmUgYnJlYWsgYnkgdGhlIHJlZ3VsYXIKCSAgICBleHByZXNzaW9uIG1hdGNoaW5nLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIEFkZCB0aGUgdmltX3JlZ2V4ZWNfbmwoKSBmdW5jdGlvbiBmb3Igc3RyaW5ncyB3aGVyZSAiXG4iIGlzIHRvIGJlCgkgICAgbWF0Y2hlZCB3aXRoIGEgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZXZhbC5jLCBzcmMvcHJvdG8vcmVnZXhwLmMsIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4yLjQxMgpQcm9ibGVtOiAgICBSdWJ5OiAicnVieSA8PCBFT0YiIGluc2lkZSBhIGZ1bmN0aW9uIGRvZXNuJ3QgYWx3YXlzIHdvcmsuICBBbHNvCgkgICAgZm9yICI6cHl0aG9uIiwgIjp0Y2wiIGFuZCAiOnBlcmwiLgpTb2x1dGlvbjogICBDaGVjayBmb3IgIjw8IG1hcmtlciIgYW5kIHNraXAgdW50aWwgIm1hcmtlciIgYmVmb3JlIGNoZWNraW5nIGZvcgoJICAgICJlbmRmdW5jdGlvbiIuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjQxMyAoYWZ0ZXIgNi4yLjQxMSkKUHJvYmxlbTogICAgTWlzc2luZyBwcm90b3R5cGUgZm9yIHZpbV9yZWdleGVjX25sKCkuIChNYXJjZWwgU3ZpdGFsc2t5KQpTb2x1dGlvbjogICBOb3cgcmVhbGx5IGluY2x1ZGUgdGhlIHByb3RvdHlwZS4KRmlsZXM6CSAgICBzcmMvcHJvdG8vcmVnZXhwLnBybwoKUGF0Y2ggNi4yLjQxNApQcm9ibGVtOiAgICBUaGUgZnVuY3Rpb24gdXNlZCBmb3IgY3VzdG9tIGNvbXBsZXRpb24gb2YgdXNlciBjb21tYW5kcyBjYW5ub3QKCSAgICBoYXZlIDxTSUQ+IHRvIG1ha2UgaXQgbG9jYWwuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgUGFzcyB0aGUgU0lEIG9mIHRoZSBzY3JpcHQgd2hlcmUgdGhlIHVzZXIgY29tbWFuZCB3YXMgZGVmaW5lZCBvbgoJICAgIHRvIHRoZSBjb21wbGV0aW9uLiAgQWxzbyBjbGVhbiB1cCAjaWZkZWZzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXZhbC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4yLjQxNQpQcm9ibGVtOiAgICBWaW0gbWF5IGNyYXNoIGFmdGVyIGEgc2VxdWVuY2Ugb2YgZXZlbnRzIHRoYXQgY2hhbmdlIHRoZSB3aW5kb3cKCSAgICBzaXplLiAgVGhlIHdpbmRvdyBsYXlvdXQgYXNzdW1lcyBhIGxhcmdlciB3aW5kb3cgdGhhbiBpcyBhY3R1YWxseQoJICAgIGF2YWlsYWJsZS4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEludm9rZSB3aW5fbmV3X3NoZWxsc2l6ZSgpIGZyb20gc2NyZWVuYWxsb2MoKSBpbnN0ZWFkIG9mIGZyb20KCSAgICBzZXRfc2hlbGxzaXplKCkuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjIuNDE2ClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIGluY29tcGF0aWJsZSBwb2ludGVyLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlICImIiBpbiB0aGUgY2FsbCB0byBwb2xsKCkuIChYYXZpZXIgZGUgR2F5ZSkKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuNDE3IChhZnRlciA2LjIuMzkzKQpQcm9ibGVtOiAgICBNYW55IHBlb3BsZSBmb3JnZXQgdGhhdCB0aGUgJyInIGl0ZW0gaW4gJ3ZpbWluZm8nIG5lZWRzIHRvIGJlCgkgICAgcHJlY2VkZWQgd2l0aCBhIGJhY2tzbGFzaCwKU29sdXRpb246ICAgQWRkICc8JyBhcyBhbiBhbGlhcyBmb3IgdGhlICciJyBpdGVtLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvb3BzLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjQxOApQcm9ibGVtOiAgICBVc2luZyAiOm5ub3JlbWFwIDxGMTI+IDplY2hvICJjaGVlc2UiIGFuZCAiOmNhYmJyIGNoZWVzZSB4eHgiOgoJICAgIHdoZW4gcHJlc3NpbmcgPEYxMj4gc3RpbGwgdXNlcyB0aGUgYWJicmV2aWF0aW9uLiAoSGFyaSBLcmlzaG5hKQpTb2x1dGlvbjogICBBbHNvIGFwcGx5ICJub3JlbWFwIiB0byBhYmJyZXZpYXRpb25zLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMi40MTkgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ2Fubm90IG9wZW4gdGhlIFZpbSB3aW5kb3cgaW5zaWRlIGFub3RoZXIgYXBwbGljYXRpb24uClNvbHV0aW9uOiAgIEFkZCB0aGUgIi1QIiBhcmd1bWVudCB0byBzcGVjaWZ5IHRoZSB3aW5kb3cgdGl0bGUgb2YgdGhlCgkgICAgYXBwbGljYXRpb24gdG8gcnVuIGluc2lkZS4gKFppYm8gWmhhbykKRmlsZXM6CSAgICBydW50aW1lL2RvYy9zdGFydGluZy50eHQsIHNyYy9tYWluLmMsIHNyYy9ndWlfdzMyLmMsCgkgICAgc3JjL2d1aV93NDguYywgc3JjL2lmX29sZS5jcHAsIHNyYy9vc19tc3dpbi5jLAoJICAgIHNyYy9wcm90by9ndWlfdzMyLnBybwoKUGF0Y2ggNi4yLjQyMApQcm9ibGVtOiAgICBDYW5ub3Qgc3BlY2lmeSBhIGZpbGUgdG8gYmUgZWRpdGVkIGluIGJpbmFyeSBtb2RlIHdpdGhvdXQgc2V0dGluZwoJICAgIHRoZSBnbG9iYWwgdmFsdWUgb2YgdGhlICdiaW5hcnknIG9wdGlvbi4KU29sdXRpb246ICAgU3VwcG9ydCAiOmVkaXQgKytiaW4gZmlsZSIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZWRpdGluZy50eHQsIHNyYy9idWZmZXIuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMuaCwKCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2ZpbGVpby5jLCBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjQyMQpQcm9ibGVtOiAgICBDYW5ub3Qgc2V0IHRoZSAnWyBhbmQgJ10gbWFyaywgd2hpY2ggbWF5IGJlIG5lY2Vzc2FyeSB3aGVuIGFuCgkgICAgYXV0b2NvbW1hbmQgc2ltdWxhdGVzIHJlYWRpbmcgYSBmaWxlLgpTb2x1dGlvbjogICBBbGxvdyB1c2luZyAibVsiIGFuZCAibV0iLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21vdGlvbi50eHQsIHNyYy9tYXJrLmMKClBhdGNoIDYuMi40MjIKUHJvYmxlbTogICAgSW4gQ1RSTC1YIGNvbXBsZXRpb24gbWVzc2FnZXMgdGhlICIvIiBtYWtlcyB0aGVtIGxlc3MgcmVhZGFibGUuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgc2xhc2hlcy4gKEFudG9ueSBTY3JpdmVuKQpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi40MjMKUHJvYmxlbTogICAgIjp2ZXJ0aWNhbCB3aW5jbWQgXSIgZG9lcyBub3Qgc3BsaXQgdmVydGljYWxseS4KU29sdXRpb246ICAgQWRkICJwb3N0cG9uZWRfc3BsaXRfZmxhZ3MiLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvaWZfY3Njb3BlLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjQyNApQcm9ibGVtOiAgICBBIEJ1ZkVudGVyIGF1dG9jb21tYW5kIHRoYXQgc2V0cyBhbiBvcHRpb24gc3RvcHMgJ21vdXNlZm9jdXMnIGZyb20KCSAgICB3b3JraW5nIGluIEluc2VydCBtb2RlIChOb3JtYWwgbW9kZSBpcyBPSykuIChHcmVnb3J5IFNlaWRtYW4pClNvbHV0aW9uOiAgIEluIHRoZSBJbnNlcnQgbW9kZSBsb29wIGludm9rZSBndWlfbW91c2VfY29ycmVjdCgpIHdoZW4gbmVlZGVkLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi40MjUKUHJvYmxlbTogICAgVmVydGljYWwgc3BsaXQgYW5kIGNvbW1hbmQgbGluZSB3aW5kb3c6IGNhbiBvbmx5IGRyYWcgc3RhdHVzIGxpbmUKCSAgICBhYm92ZSB0aGUgY21kbGluZSB3aW5kb3cgb24gdGhlIHJpZ2h0aGFuZCBzaWRlLCBub3QgbGVmdGhhbmQgc2lkZS4KU29sdXRpb246ICAgQ2hlY2sgdGhlIHN0YXR1cyBsaW5lIHJvdyBpbnN0ZWFkIG9mIHRoZSB3aW5kb3cgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4yLjQyNgpQcm9ibGVtOiAgICBBIHN5bnRheCByZWdpb24gZW5kIG1hdGNoIHdpdGggYSBtYXRjaGdyb3VwIHRoYXQgaW5jbHVkZXMgYSBsaW5lCgkgICAgYnJlYWsgb25seSBoaWdobGlnaHRzIHRoZSBsYXN0IGxpbmUgd2l0aCBtYXRjaGdyb3VwLiAoR2FyeQoJICAgIEhvbGxvd2F5KQpTb2x1dGlvbjogICBBbHNvIHVzZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSByZWdpb24KCSAgICBoaWdobGlnaHRpbmcgZW5kcy4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi40MjcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaGVuIHBhc3RpbmcgYSBsb3Qgb2YgdGV4dCBpbiBhIG11bHRpLWJ5dGUgZW5jb2RpbmcsIGNvbnZlcnNpb24KCSAgICBmcm9tICd0ZXJtZW5jb2RpbmcnIHRvICdlbmNvZGluZycgbWF5IGZhaWwgZm9yIHNvbWUgY2hhcmFjdGVycy4KCSAgICAoS3VhbmctY2hlIFd1KQpTb2x1dGlvbjogICBXaGVuIHRoZXJlIGlzIGFuIGluY29tcGxldGUgYnl0ZSBzZXF1ZW5jZSBhdCB0aGUgZW5kIG9mIHRoZSByZWFkCgkgICAgdGV4dCBrZWVwIGl0IGZvciB0aGUgbmV4dCB0aW1lLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX21zd2luLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8sCgkgICAgc3JjL3Byb3RvL29zX21zd2luLnBybywgc3JjL3VpLmMKClBhdGNoIDYuMi40MjgKUHJvYmxlbTogICAgVGhlIFgxMSBjbGlwYm9hcmQgc3VwcG9ydHMgdGhlIFZpbSBzZWxlY3Rpb24gZm9yIGNoYXIvbGluZS9ibG9jawoJICAgIG1vZGUsIGJ1dCBzaW5jZSB0aGUgZW5jb2RpbmcgaXMgbm90IGluY2x1ZGVkICBjYW4ndCBjb3B5L3Bhc3RlCgkgICAgYmV0d2VlbiB0d28gVmltcyB3aXRoIGEgZGlmZmVyZW50ICdlbmNvZGluZycuClNvbHV0aW9uOiAgIEFkZCBhIG5ldyBzZWxlY3Rpb24gZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlICdlbmNvZGluZycuICBQZXJmb3JtCgkgICAgY29udmVyc2lvbiB3aGVuIG5lY2Vzc2FyeS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL3VpLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjQyOQpQcm9ibGVtOiAgICBVbml4OiBnbG9iKCkgZG9lc24ndCB3b3JrIGZvciBhIGRpcmVjdG9yeSB3aXRoIGEgc2luZ2xlIHF1b3RlIGluCgkgICAgdGhlIG5hbWUuIChOYXpyaSBSYW1saXkpClNvbHV0aW9uOiAgIFdoZW4gdXNpbmcgdGhlIHNoZWxsIHRvIGV4cGFuZCwgb25seSBwdXQgZG91YmxlIHF1b3RlcyBhcm91bmQKCSAgICBzcGFjZXMgYW5kIHNpbmdsZSBxdW90ZXMsIG5vdCB0aGUgd2hvbGUgdGhpbmcuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjQzMApQcm9ibGVtOiAgICBCT00gYXQgc3RhcnQgb2YgYSB2aW0gc2NyaXB0IGZpbGUgaXMgbm90IHJlY29nbml6ZWQgYW5kIGNhdXNlcyBhbgoJICAgIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIERldGVjdCB0aGUgQk9NIGFuZCBza2lwIG92ZXIgaXQuICBBbHNvIGZpeCB0aGF0IGFmdGVyIHVzaW5nCgkgICAgIjpzY3JpcHRlbmNvZGluZyIgdGhlIGljb252KCkgZmlsZSBkZXNjcmlwdG9yIHdhcyBub3QgY2xvc2VkCgkgICAgKG1lbW9yeSBsZWFrKS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjQzMQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciwgdGhlIHNjcm9sbGluZyBpcyBsaW1pdGVkIHRvCgkgICAgdGhlIGxlbmd0aCBvZiB0aGUgY3Vyc29yIGxpbmUuClNvbHV0aW9uOiAgIE1ha2UgdGhlIHNjcm9sbCBsaW1pdCBkZXBlbmQgb24gdGhlIGxvbmdlc3QgdmlzaWJsZSBsaW5lLiAgVGhlCgkgICAgY3Vyc29yIGlzIG1vdmVkIHdoZW4gbmVjZXNzYXJ5LiAgSW5jbHVkaW5nIHRoZSAnaCcgZmxhZyBpbgoJICAgICdndWlvcHRpb25zJyBkaXNhYmxlcyB0aGlzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2d1aS50eHQsIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvZ3VpLmMsCgkgICAgc3JjL21pc2MyLmMsIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4yLjQzMiAoYWZ0ZXIgNi4yLjQzMCBhbmQgNi4yLjQzMSkKUHJvYmxlbTogICAgTGludCB3YXJuaW5ncy4KU29sdXRpb246ICAgQWRkIHR5cGUgY2FzdHMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9ndWkuYwoKUGF0Y2ggNi4yLjQzMwpQcm9ibGVtOiAgICBUcmFuc2xhdGluZyAiVklTVUFMIiBhbmQgIkJMT0NLIiBzZXBhcmF0ZWx5IGRvZXNuJ3QgZ2l2ZSBhIGdvb2QKCSAgICByZXN1bHQuIChBbGVqYW5kcm8gTG9wZXogVmFsZW5jaWEpClNvbHV0aW9uOiAgIFVzZSBhIHN0cmluZyBmb3IgZWFjaCBjb21iaW5hdGlvbi4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi40MzQgKGFmdGVyIDYuMi40MzEpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcuIChTYWxtYW4gSGFsaW0pClNvbHV0aW9uOiAgIEFkZCB0eXBlIGNhc3RzLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4yLjQzNQpQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGFyZSB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvd3MgdGhlIG1pbmltYWwgVmltIHdpbmRvdwoJICAgIGhlaWdodCBpcyBjb21wdXRlZCB3cm9uZy4KU29sdXRpb246ICAgVXNlIGZyYW1lX21pbmhlaWdodCgpIHRvIGNvcnJlY3RseSBjb21wdXRlIHRoZSBtaW5pbWFsIGhlaWdodC4KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMi40MzYKUHJvYmxlbTogICAgUnVubmluZyB0aGUgdGVzdHMgY2hhbmdlcyB0aGUgdXNlcidzIHZpbWluZm8gZmlsZS4KU29sdXRpb246ICAgSW4gdGVzdCA0OSB0ZWxsIHRoZSBleHRyYSBWaW0gdG8gdXNlIHRoZSB0ZXN0IHZpbWluZm8gZmlsZS4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0NDkudmltCgpQYXRjaCA2LjIuNDM3ClByb2JsZW06ICAgICI6bWtzZXNzaW9uIiBhbHdheXMgcHV0cyAic2V0IG5vY29tcGF0aWJsZSIgaW4gdGhlIHNlc3Npb24gZmlsZS4KCSAgICBUaGlzIGNoYW5nZXMgb3B0aW9uIHNldHRpbmdzLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBBZGQgYW4gImlmIiB0byBvbmx5IGNoYW5nZSAnY29tcGF0aWJsZScgd2hlbiBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi40MzgKUHJvYmxlbTogICAgV2hlbiB0aGUgJ3YnIGZsYWcgaXMgcHJlc2VudCBpbiAnY3BvcHRpb25zJywgYmFja3NwYWNpbmcgYW5kIHRoZW4KCSAgICB0eXBpbmcgdGV4dCBhZ2Fpbjogb25lIGNoYXJhY3RlciB0b28gbXVjaCBpcyBvdmVydHlwZWQgYmVmb3JlCgkgICAgaW5zZXJ0aW5nIGlzIGRvbmUgYWdhaW4uClNvbHV0aW9uOiAgIFNldCAiZG9sbGFyX3Zjb2wiIHRvIHRoZSByaWdodCBjb2x1bW4uCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjQzOQpQcm9ibGVtOiAgICBHVEsgMjogQ2hhbmdpbmcgJ2xpbmVzJyBtYXkgY2F1c2UgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSB3aW5kb3cKCSAgICBsYXlvdXQgYW5kIHRoZSBzaXplIG9mIHRoZSB3aW5kb3cuClNvbHV0aW9uOiAgIERpc2FibGUgdGhlIGhhY2sgd2l0aCBmb3JjZV9zaGVsbF9yZXNpemVfaWRsZSgpLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuNDQwClByb2JsZW06ICAgIFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCB0aGUgd2luZG93IHRpdGxlIGlzIHN0aWxsIHVwZGF0ZWQuCgkgICAgVGhlIHNpemUgb2YgdGhlIFZpc3VhbCBhcmVhIGFuZCB0aGUgcnVsZXIgYXJlIGRpc3BsYXllZCB0b28gb2Z0ZW4uClNvbHV0aW9uOiAgIFBvc3Rwb25lIHJlZHJhd2luZyB0aGUgd2luZG93IHRpdGxlLiAgT25seSBzaG93IHRoZSBWaXN1YWwgYXJlYQoJICAgIHNpemUgd2hlbiB3YWl0aW5nIGZvciBhIGNoYXJhY3Rlci4gIERvbid0IGRyYXcgdGhlIHJ1bGVyCgkgICAgdW5uZWNlc3NhcnkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvbm9ybWFsLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjQ0MQpQcm9ibGVtOiAgICAiOnVuYWJicmV2aWF0ZSBmb28gIiBkb2Vzbid0IHdvcmssIGJlY2F1c2Ugb2YgdGhlIHRyYWlsaW5nIHNwYWNlLAoJICAgIHdoaWxlIGFuIGFiYnJldmlhdGlvbiB3aXRoIGEgdHJhaWxpbmcgc3BhY2UgaXMgbm90IHBvc3NpYmxlLiAoUGF1bAoJICAgIEpvbGx5KQpTb2x1dGlvbjogICBBY2NlcHQgYSBtYXRjaCB3aXRoIHRoZSBsaHMgb2YgYW4gYWJicmV2aWF0aW9uIHdpdGhvdXQgdGhlCgkgICAgdHJhaWxpbmcgc3BhY2UuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4yLjQ0MgpQcm9ibGVtOiAgICBDYW5ub3QgbWFuaXB1bGF0ZSB0aGUgY29tbWFuZCBsaW5lIGZyb20gYSBmdW5jdGlvbi4KU29sdXRpb246ICAgQWRkIGdldGNtZGxpbmUoKSwgZ2V0Y21kcG9zKCkgYW5kIHNldGNtZHBvcygpIGZ1bmN0aW9ucyBhbmQgdGhlCgkgICAgQ1RSTC1cIGUgY29tbWFuZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9jbWRsaW5lLnR4dCwgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKCSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vZXhfZ2V0bG4ucHJvLAoJICAgIHNyYy9wcm90by9vcHMucHJvCgpQYXRjaCA2LjIuNDQzClByb2JsZW06ICAgIFdpdGggIjpzaWxlbnQhIGVjaG9lcnIgc29tZXRoaW5nIiB5b3UgZG9uJ3QgZ2V0IHRoZSBwb3NpdGlvbiBvZgoJICAgIHRoZSBlcnJvci4gIGVtc2coKSBvbmx5IHdyaXRlcyB0aGUgbWVzc2FnZSBpdHNlbGYgYW5kIHJldHVybnMuClNvbHV0aW9uOiAgIEFsc28gcmVkaXJlY3QgdGhlIHBvc2l0aW9uIG9mIHRoZSBlcnJvci4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuNDQ0ClByb2JsZW06ICAgIFdoZW4gYWRkaW5nIHRoZSAnYycgZmxhZyB0byBhICI6c3Vic3RpdHV0ZSIgY29tbWFuZCBpdCBtYXkgcmVwbGFjZQoJICAgIG1vcmUgdGltZXMgdGhhbiB3aXRob3V0IHRoZSAnYycgZmxhZy4gIEhhcHBlbnMgZm9yIGEgIG1hdGNoIHRoYXQKCSAgICBzdGFydHMgd2l0aCAiXHplIiAoTWFyY2VsIFN2aXRhbHNrKSBhbmQgd2hlbiB1c2luZyAiXEA8PSIgKEtsYXVzCgkgICAgQm9zYXUpLgpTb2x1dGlvbjogICBDb3JyZWN0ICJwcmV2X21hdGNoY29sIiB3aGVuIHJlcGxhY2luZyB0aGUgbGluZS4gIERvbid0IHJlcGxhY2UKCSAgICB0aGUgbGluZSB3aGVuIHRoZSBwYXR0ZXJuIHVzZXMgbG9vay1iZWhpbmQgbWF0Y2hpbmcuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL3Byb3RvL3JlZ2V4cC5wcm8sIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4yLjQ0NQpQcm9ibGVtOiAgICBDb3B5aW5nIHZpbXR1dG9yIHRvIC90bXAvc29tZXRoaW5nIGlzIG5vdCBzZWN1cmUsIGEgc3ltbGluayBtYXkKCSAgICBjYXVzZSB0cm91YmxlLgpTb2x1dGlvbjogICBDcmVhdGUgYSBkaXJlY3RvcnkgYW5kIGNyZWF0ZSB0aGUgZmlsZSBpbiBpdC4gIFVzZSAidW1hc2siIHRvCgkgICAgY3JlYXRlIHRoZSBkaXJlY3Rvcnkgd2l0aCBtb2RlIDcwMC4gIChTdGVmYW4gTm9yZGhhdXNlbikKRmlsZXM6CSAgICBzcmMvdmltdHV0b3IKClBhdGNoIDYuMi40NDYgKGFmdGVyIDYuMi40MDQpClByb2JsZW06ICAgIFVzaW5nIGxpYnJhcnkgZnVuY3Rpb25zIHdjd2lkdGgoKSBhbmQgaXN3cHJpbnQoKSByZXN1bHRzIGluCgkgICAgZGlzcGxheSBwcm9ibGVtcyBmb3IgSGVicmV3IGNoYXJhY3RlcnMuIChSb24gQWFyb24pClNvbHV0aW9uOiAgIERpc2FibGUgdGhlIGNvZGUgdG8gdXNlIHRoZSBsaWJyYXJ5IGZ1bmN0aW9ucywgdXNlIG91ciBvd24uCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi40NDcgKGFmdGVyIDYuMi40NDApClByb2JsZW06ICAgIE5vdyB0aGF0IHRoZSB0aXRsZSBpcyBvbmx5IHVwZGF0ZWQgd2hlbiByZWRyYXdpbmcsIGl0IGlzIG5vIGxvbmdlcgoJICAgIHBvc3NpYmxlIHRvIHNob3cgaXQgd2hpbGUgZXhlY3V0aW5nIGEgZnVuY3Rpb24uIChNYWRva2EgTWFjaGl0YW5pKQpTb2x1dGlvbjogICBNYWtlICI6cmVkcmF3IiBhbHNvIHVwZGF0ZSB0aGUgdGl0bGUuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi40NDggKGFmdGVyIDYuMi40MjcpClByb2JsZW06ICAgIE1hYzogY29udmVyc2lvbiBkb25lIHdoZW4gJ3Rlcm1lbmNvZGluZycgZGlmZmVycyBmcm9tICdlbmNvZGluZycKCSAgICBmYWlscyB3aGVuIHBhc3RpbmcgYSBsb25nZXIgdGV4dC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIGluY29tcGxldGUgc2VxdWVuY2UgYXQgdGhlIGVuZCBvZiB0aGUgY2h1bmsgdG8gYmUKCSAgICBjb252ZXJ0ZWQuIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQ0OSAoYWZ0ZXIgNi4yLjQzMSkKUHJvYmxlbTogICAgR2V0IGVycm9yIG1lc3NhZ2VzIHdoZW4gc3dpdGNoaW5nIGZpbGVzLgpTb2x1dGlvbjogICBDaGVjayBmb3IgYSB2YWxpZCBsaW5lIG51bWJlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSB3aWR0aCBvZiB0aGUKCSAgICBob3Jpem9udGFsIHNjcm9sbGJhci4gKEhlbG11dCBTdGllZ2xlcikKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi40NTAKUHJvYmxlbTogICAgIiAgI2luY2x1ZGUiIGFuZCAiICAjZGVmaW5lIiBhcmUgbm90IHJlY29nbml6ZWQgd2l0aCB0aGUgZGVmYXVsdAoJICAgIG9wdGlvbiB2YWx1ZXMgZm9yICdpbmNsdWRlJyBhbmQgJ2RlZmluZWQnLiAoUkcgS2lyYW4pClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgZGVmYXVsdCB2YWx1ZXMgdG8gYWxsb3cgd2hpdGUgc3BhY2UgYmVmb3JlIHRoZSAjLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi40NTEKUHJvYmxlbTogICAgR1RLOiB3aGVuIHVzaW5nIFhJTSB0aGVyZSBhcmUgdmFyaW91cyBwcm9ibGVtcywgaW5jbHVkaW5nIHNldHRpbmcKCSAgICAnbW9kaWZpZWQnIGFuZCBicmVha2luZyB1bmRvIGF0IHRoZSB3cm9uZyBtb21lbnQuClNvbHV0aW9uOiAgIEFkZCAieGltX2NoYW5nZWRfd2hpbGVfcHJlZWRpdGluZyIsICJwcmVlZGl0X2VuZF9jb2wiIGFuZAoJICAgIGltX2lzX3ByZWVkaXRpbmcoKS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2dsb2JhbHMuaCwgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9ndGtfeDExLmMsCgkgICAgc3JjL21ieXRlLmMsIHNyYy9taXNjMS5jLCBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvc2NyZWVuLmMsCgkgICAgc3JjL3VuZG8uYwoKUGF0Y2ggNi4yLjQ1MgpQcm9ibGVtOiAgICBJbiBkaWZmIG1vZGUsIHdoZW4gRGlmZkFkZCBhbmQgRGlmZlRleHQgaGlnaGxpZ2h0IHNldHRpbmdzIGFyZQoJICAgIGVxdWFsLCBhbiBhZGRlZCBsaW5lIGlzIGhpZ2hsaWdodGVkIHdpdGggRGlmZkNoYW5nZS4gKFRvbSBTY2h1bW0pClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSBkaWZmIGhpZ2hsaWdodCB0eXBlIGluc3RlYWQgb2YgdGhlIGF0dHJpYnV0ZXMuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuNDUzClByb2JsZW06ICAgICI6cy9mb29cfFxuYmFyL3gvZyIgZG9lcyBub3QgcmVwbGFjZSB0d28gdGltZXMgaW4gImZvb1xuYmFyIi4KCSAgICAoUGF2ZWwgUGFwdXNoZXYpClNvbHV0aW9uOiAgIFdoZW4gdGhlIHBhdHRlcm4gY2FuIG1hdGNoIGEgbGluZSBicmVhayBhbHNvIHRyeSBtYXRjaGluZyBhdCB0aGUKCSAgICBOVUwgYXQgdGhlIGVuZCBvZiBhIGxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDU0ClByb2JsZW06ICAgICI6bGV0IGI6Y2hhbmdlZHRpY2siIGRvZXNuJ3Qgd29yay4gKEFsYW4gU2NobWl0dCkgICI6bGV0CgkgICAgYjpjaGFuZ2VkdGljayA9IDk5IiBkb2VzIG5vdCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIEFkZCBjb2RlIHRvIHJlY29nbml6ZSAiOmxldCBiOmNoYW5nZWR0aWNrIi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDU1IChhZnRlciA2LjIuMjk3KQpQcm9ibGVtOiAgICBJbiBQeXRob24gY29tbWFuZHMgdGhlIGN1cnJlbnQgbG9jYWxlIGNoYW5nZXMgaG93IGNlcnRhaW4gUHl0aG9uCgkgICAgZnVuY3Rpb25zIHdvcmsuIChFdWdlbmUgTS4gTWlua292c2tpaSkKU29sdXRpb246ICAgU2V0IHRoZSBMQ19OVU1FUklDIGxvY2FsZSB0byAiQyIgd2hpbGUgZXhlY3V0aW5nIGEgUHl0aG9uIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuNDU2IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEVkaXRpbmcgYSBmaWxlIGJ5IGl0cyBVbmljb2RlIG5hbWUgKGRyb3BwaW5nIGl0IG9uIFZpbSBvcgoJICAgIHVzaW5nIHRoZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2cpIGRvZXNuJ3Qgd29yay4gKFlha292IExlcm5lciwgQWxleAoJICAgIEpha3VzaGV2KQpTb2x1dGlvbjogICBVc2Ugd2lkZSBjaGFyYWN0ZXIgZnVuY3Rpb25zIHdoZW4gZmlsZSBuYW1lcyBhcmUgaW52b2x2ZWQgYW5kCgkgICAgY29udmVydCBmcm9tL3RvICdlbmNvZGluZycgd2hlcmUgbmVlZGVkLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMsIHNyYy9tYWNyb3MuaCwgc3JjL21lbWZpbGUuYywgc3JjL21lbWxpbmUuYywKCSAgICBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi40NTcgKGFmdGVyIDYuMi4yNDQpClByb2JsZW06ICAgIFdoZW4gJ2VuY29kaW5nJyBpcyAidXRmLTgiIGFuZCB3cml0aW5nIHRleHQgd2l0aCBjaGFycyBhYm92ZSAweDgwCgkgICAgaW4gbGF0aW4xLCBjb252ZXJzaW9uIGlzIHdyb25nIGV2ZXJ5IDgyMDAgYnl0ZXMuIChPeXZpbmQgSG9sbSkKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgdXRmX3B0cjJsZW5fY2hlY2tfbGVuKCkgZnVuY3Rpb24gYW5kIGZpeCB0aGUgcHJvYmxlbQoJICAgIG9mIGRpc3BsYXlpbmcgMHhmNyBpbiB1dGZjX3B0cjJsZW5fY2hlY2tfbGVuKCkuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi40NTgKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCAiJCIgZG9lc24ndCBtb3ZlIHRvIHRoZSBlbmQgb2YgYW4KCSAgICB1bnByaW50YWJsZSBjaGFyYWN0ZXIsIGNhdXNpbmcgInkkIiBub3QgdG8gaW5jbHVkZSB0aGF0IGNoYXJhY3Rlci4KCSAgICAoRnJlZCBNYSkKU29sdXRpb246ICAgU2V0ICJjb2xhZGQiIHRvIG1vdmUgdGhlIGN1cnNvciB0byB0aGUgZW5kIG9mIHRoZSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMi40NTkgKGFmdGVyIDYuMi40NTQpClByb2JsZW06ICAgIFZhcmlhYmxlICJiIiBjYW5ub3QgYmUgd3JpdHRlbi4gKFNhbG1hbiBIYWxpbSkKU29sdXRpb246ICAgQ29tcGFyZSBzdHJpbmdzIHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi40NjAgKGV4dHJhLCBhZnRlciA2LjIuNDU2KQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3IgbWlzc2luZyBwcm90b3R5cGVzLgpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSBtaXNzaW5nIHByb3RvdHlwZXMuCkZpbGVzOgkgICAgc3JjL3Byb3RvL29zX3dpbjMyLnBybwoKUGF0Y2ggNi4yLjQ2MQpQcm9ibGVtOiAgICBBZnRlciB1c2luZyBhIHNlYXJjaCBjb21tYW5kICJ4IiBzdGFydHMgcHV0dGluZyBzaW5nbGUgY2hhcmFjdGVycwoJICAgIGluIHRoZSBudW1iZXJlZCByZWdpc3RlcnMuClNvbHV0aW9uOiAgIFJlc2V0ICJ1c2VfcmVnX29uZSIgYXQgdGhlIHJpZ2h0IG1vbWVudC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi40NjIKUHJvYmxlbTogICAgRmluZGluZyBhIG1hdGNoaW5nIHBhcmVudGhlc2lzIGRvZXMgbm90IGNvcnJlY3RseSBoYW5kbGUgYQoJICAgIGJhY2tzbGFzaCBpbiBhIHRyYWlsaW5nIGJ5dGUuClNvbHV0aW9uOiAgIEhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgY29ycmVjdGx5LiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4yLjQ2MyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBBbiBOVEZTIGZpbGUgc3lzdGVtIG1heSBjb250YWluIGZpbGVzIHdpdGggZXh0cmEgaW5mbwoJICAgIHN0cmVhbXMuICBUaGUgY3VycmVudCBtZXRob2QgdG8gY29weSB0aGVtIGNyZWF0ZXMgb25lIGFuZCB0aGVuCgkgICAgZGVsZXRlcyBpdCBhZ2Fpbi4gIChQZXRlciBUb2VubmllcykgIEFsc28sIG9ubHkgdGhyZWUgc3RyZWFtcyB3aXRoCgkgICAgaGFyZCBjb2RlZCBuYW1lcyBhcmUgY29waWVkLgpTb2x1dGlvbjogICBVc2UgQmFja3VwUmVhZCgpIHRvIGNoZWNrIHdoaWNoIGluZm8gc3RyZWFtcyB0aGUgb3JpZ2luYWwgZmlsZQoJICAgIGNvbnRhaW5zIGFuZCBvbmx5IGNvcHkgdGhlc2Ugc3RyZWFtcy4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ2NCAoZXh0cmEsIGFmdGVyIDYuMi40MjcpClByb2JsZW06ICAgIEFtaWdhOiBDb21waWxhdGlvbiBlcnJvciB3aXRoIGdjYy4gKEFsaSBBa2NhYWdhYykKU29sdXRpb246ICAgTW92ZSB0aGUgI2lmZGVmIG91dHNpZGUgb2YgUmVhZCgpLgpGaWxlczoJICAgIHNyYy9vc19hbWlnYS5jCgpQYXRjaCA2LjIuNDY1ClByb2JsZW06ICAgIFdoZW4gcmVzaXppbmcgdGhlIEdVSSB3aW5kb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHNvbWV0aW1lcyBtb3ZlcyBpdAoJICAgIGxlZnQgb2Ygb3IgYWJvdmUgdGhlIHNjcmVlbi4gKE1pY2hhZWwgTWNDYXJ0eSkKU29sdXRpb246ICAgQ2hlY2sgdGhlIHdpbmRvdyBwb3NpdGlvbiBhZnRlciByZXNpemluZyBpdCBhbmQgbW92ZSBpdCBvbnRvIHRoZQoJICAgIHNjcmVlbiB3aGVuIGl0IGlzbid0LgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4yLjQ2NiAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIFdpbjMyOiBDb21waWxpbmcgd2l0aCBCb3JsYW5kIEMgZmFpbHMsIGFuZCBhbiB1bi9zaWduZWQgd2FybmluZy4KU29sdXRpb246ICAgUmVkZWZpbmUgd2NzaWNtcCgpIHRvIHdjc2NtcGkoKSBhbmQgYWRkIHR5cGUgY2FzdHMuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ2NyAoZXh0cmEsIGFmdGVyIDYuMi40NjMpClByb2JsZW06ICAgIFdpbjMyOiBjYW4ndCBjb21waWxlIHdpdGhvdXQgbXVsdGktYnl0ZSBmZWF0dXJlLiAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBBZGQgI2lmZGVmcyBhcm91bmQgdGhlIGluZm8gc3RyZWFtIGNvZGUuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi40NjgKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHNoYWRvd2VkIHZhcmlhYmxlcy4gKE1hdHRoaWFzIE1vaHIpClNvbHV0aW9uOiAgIERlbGV0ZSBzdXBlcmZsdW91cyB2YXJpYWJsZXMgYW5kIHJlbmFtZSBvdGhlcnMuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9ldmFsLmMsIHNyYy9pZl9jc2NvcGUuYywKCSAgICBzcmMvZm9sZC5jLCBzcmMvb3B0aW9uLmMsIHNyYy9vc191bml4LmMsIHNyYy9xdWlja2ZpeC5jLAoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4yLjQ2OSAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIFdpbjMyOiBDYW4ndCBjcmVhdGUgc3dhcCBmaWxlIHdoZW4gJ2VuY29kaW5nJyBkaWZmZXJzIGZyb20gdGhlCgkgICAgYWN0aXZlIGNvZGUgcGFnZS4gKEtyaXRvbiBLeXJpbWlzKQpTb2x1dGlvbjogICBJbiBlbmNfdG9fdWNzMigpIHRlcm1pbmF0ZSB0aGUgY29udmVydGVkIHN0cmluZyB3aXRoIGEgTlVMCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi40NzAKUHJvYmxlbTogICAgVGhlIG5hbWUgcmV0dXJuZWQgYnkgdGVtcG5hbWUoKSBtYXkgYmUgZXF1YWwgdG8gdGhlIGZpbGUgdXNlZCBmb3IKCSAgICBzaGVsbCBvdXRwdXQgd2hlbiBpZ25vcmluZyBjYXNlLgpTb2x1dGlvbjogICBTa2lwICdPJyBhbmQgJ0knIGluIHRlbXBuYW1lKCkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjQ3MQpQcm9ibGVtOiAgICAiLUwvdXNyL2xpYiIgaXMgdXNlZCBpbiB0aGUgbGluayBjb21tYW5kLCBldmVuIHRob3VnaCBpdCdzCgkgICAgc3VwcG9zZWQgdG8gYmUgZmlsdGVyZWQgb3V0LiAiLWx3IiBhbmQgIi1sZGwiIGFyZSBub3QKCSAgICBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW4gbmVlZGVkIGZvciAiLWxYbXUiLiAoQW50b25pbyBDb2xvbWJvKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBzcGFjZSBhZnRlciB0aGUgYXJndW1lbnQgaW5zdGVhZCBvZiBiZWZvcmUuICBBbHNvCgkgICAgcmVtb3ZlICItUi91c3IvbGliIiBpZiBpdCdzIHRoZXJlLiAgQ2hlY2sgZm9yICItbHciIGFuZCAiLWxkbCIKCSAgICBiZWZvcmUgdHJ5aW5nICItbFhtdSIuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvbGluay5zaAoKUGF0Y2ggNi4yLjQ3MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgRmlsZUNoYW5nZWRTaGVsbCBhdXRvY29tbWFuZCB0aGF0IGNoYW5nZXMgdGhlIGN1cnJlbnQKCSAgICBidWZmZXIsIGEgYnVmZmVyIGV4aXN0cyB0aGF0IGNhbid0IGJlIHdpcGVkIG91dC4KCSAgICBBbHNvLCBWaW0gc29tZXRpbWVzIGNyYXNoZXMgd2hlbiBleGVjdXRpbmcgYW4gZXh0ZXJuYWwgY29tbWFuZAoJICAgIHRoYXQgY2hhbmdlcyB0aGUgYnVmZmVyIGFuZCBhIEZpbGVDaGFuZ2VkU2hlbGwgYXV0b2NvbW1hbmQgaXMKCSAgICB1c2VkLiAgKEhhcmkgS3Jpc2huYSBEYXJhKQoJICAgIFVzZXJzIGFyZSBjb25mdXNlZCBieSB0aGUgd2FybmluZyBmb3IgYSBmaWxlIGJlaW5nIGNoYW5nZWQgb3V0c2lkZQoJICAgIG9mIFZpbS4KU29sdXRpb246ICAgQXZvaWQgdGhhdCB0aGUgd2luZG93IGNvdW50ZXIgZm9yIGEgYnVmZmVyIGlzIGluY3JlbWVudGVkIHR3aWNlLgoJICAgIEF2b2lkIHRoYXQgYnVmX2NoZWNrX3RpbWVzdGFtcCgpIGlzIHVzZWQgcmVjdXJzaXZlbHkuCgkgICAgQWRkIGEgaGludCB0byBsb29rIGluIHRoZSBoZWxwIGZvciBtb3JlIGluZm8uCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuNDczClByb2JsZW06ICAgIFVzaW5nIENUUkwtXSBpbiBhIGhlbHAgYnVmZmVyIHdpdGhvdXQgYSBuYW1lIGNhdXNlcyBhIGNyYXNoLgpTb2x1dGlvbjogICBDaGVjayBmb3IgbmFtZSB0byBiZSBwcmVzZW50IGJlZm9yZSB1c2luZyBpdC4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi40NzQgKGV4dHJhLCBhZnRlciA2LjIuNDU2KQpQcm9ibGVtOiAgICBXaGVuIFZpbSBpcyBzdGFydGluZyB1cCBjb252ZXJzaW9uIGlzIGRvbmUgdW5uZWNlc3NhcmlseS4gIEZhaWx1cmUKCSAgICB0byBmaW5kIHRoZSBydW50aW1lIGZpbGVzIG9uIFdpbmRvd3MgOTguIChSYW5kYWxsIFcuIE1vcnJpcykKU29sdXRpb246ICAgSW5pdCBlbmNfY29kZXBhZ2UgbmVnYXRpdmUsIG9ubHkgdXNlIGl0IHdoZW4gbm90IG5lZ2F0aXZlLgoJICAgIERvbid0IHVzZSBHZXRGaWxlQXR0cmlidXRlc1coKSBvbiBXaW5kb3dzIDk4IG9yIGVhcmxpZXIuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi40NzUKUHJvYmxlbTogICAgQ29tbWFuZHMgYWZ0ZXIgInBlcmwgPDxFT0YiIGFyZSBwYXJzZWQgYXMgVmltIGNvbW1hbmRzIHdoZW4gdGhleQoJICAgIGFyZSBub3QgZXhlY3V0ZWQuClNvbHV0aW9uOiAgIFByb3Blcmx5IHNraXAgb3ZlciB0aGUgcGVybCBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9pZl9wZXJsLnhzLCBzcmMvaWZfcHl0aG9uLmMsCgkgICAgc3JjL2lmX3J1YnkuYywgc3JjL2lmX3RjbC5jLCBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjQ3NgpQcm9ibGVtOiAgICBXaGVuIHJlbG9hZGluZyBhIGhpZGRlbiBidWZmZXIgY2hhbmdlZCBvdXRzaWRlIG9mIFZpbSBhbmQgdGhlCgkgICAgY3VycmVudCBidWZmZXIgaXMgcmVhZC1vbmx5LCB0aGUgcmVsb2FkZWQgYnVmZmVyIGJlY29tZXMKCSAgICByZWFkLW9ubHkuICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIFNhdmUgdGhlICdyZWFkb25seScgZmxhZyBvZiB0aGUgcmVsb2FkZWQgYnVmZmVyIGluc3RlYWQgb2YgdGhlCgkgICAgY3VycmVudCBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuNDc3ClByb2JsZW06ICAgIFVzaW5nIHJlbW90ZV9zZW5kKHY6c2VydmVybmFtZSwgIlw8Qy1WPiIpIGNhdXNlcyBWaW0gdG8gaGFuZy4KCSAgICAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBXaGVuIHRoZSByZXN1bHRpbmcgc3RyaW5nIGlzIGVtcHR5IGRvbid0IHNldCByZWNlaXZlZF9mcm9tX2NsaWVudC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjIuNDc4ClByb2JsZW06ICAgIFdpbjMyOiAiLS1yZW1vdGUgZmlsZSIgZmFpbHMgY2hhbmdpbmcgZGlyZWN0b3J5IGlmIHRoZSBjdXJyZW50CgkgICAgZGlyZWN0b3J5IG5hbWUgc3RhcnRzIHdpdGggYSBzaW5nbGUgcXVvdGUuICAoSWVzdHluIFdhbHRlcnMpClNvbHV0aW9uOiAgIEFkZCBhIGJhY2tzbGFzaCB3aGVyZSBpdCB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIuCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL21pc2MyLmMsIHNyYy9wcm90by9taXNjMi5wcm8KClBhdGNoIDYuMi40NzkKUHJvYmxlbTogICAgVGhlIGVycm9yIG1lc3NhZ2UgZm9yIGVycm9ycyBkdXJpbmcgcmVjb3ZlcnkgZ29lcyB1bm5vdGljZWQuClNvbHV0aW9uOiAgIEF2b2lkIHRoYXQgdGhlIGhpdC1lbnRlciBwcm9tcHQgb3ZlcndyaXRlcyB0aGUgbWVzc2FnZS4gIEFkZCBhIGZldwoJICAgIGxpbmVzIHRvIG1ha2UgdGhlIGVycm9yIHN0YW5kIG91dC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvbWVzc2FnZS5jLCBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjIuNDgwClByb2JsZW06ICAgIE5ldEJlYW5zOiBVc2luZyBuZWdhdGl2ZSBpbmRleCBpbiBhcnJheS4gIGJhY2tzbGFzaCBhdCBlbmQgb2YKCSAgICBtZXNzYWdlIG1heSBjYXVzZSBWaW0gdG8gY3Jhc2guIChYYXZpZXIgZGUgR2F5ZSkKU29sdXRpb246ICAgSW5pdGlhbGl6ZSBidWZfbGlzdF91c2VkIHRvIHplcm8uIENoZWNrIGZvciB0cmFpbGluZyBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi40ODEKUHJvYmxlbTogICAgV2hlbiB3cml0aW5nIGEgZmlsZSBpdCBpcyBub3QgcG9zc2libGUgdG8gc3BlY2lmeSB0aGF0IGhhcmQgYW5kL29yCgkgICAgc3ltbGlua3MgYXJlIHRvIGJlIGJyb2tlbiBpbnN0ZWFkIG9mIHByZXNlcnZlZC4KU29sdXRpb246ICAgQWRkIHRoZSAiYnJlYWtzeW1saW5rIiBhbmQgImJyZWFraGFyZGxpbmsiIHZhbHVlcyB0byAnYmFja3VwY29weScuCgkgICAgKFNpbW9uIEVrc3RyYW5kKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvZmlsZWlvLmMsIHNyYy9vcHRpb24uYywgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjIuNDgyClByb2JsZW06ICAgIFJlcGVhdGluZyBpbnNlcnQgb2YgQ1RSTC1LIDEgUyBkb2Vzbid0IHdvcmsuICBUaGUgc3VwZXJzY3JpcHQgMSBpcwoJICAgIGNvbnNpZGVyZWQgdG8gYmUgYSBkaWdpdC4gKEp1ZXJnZW4gS3JhZW1lcikKU29sdXRpb246ICAgSW4gdmltX2lzZGlnaXQoKSBvbmx5IGFjY2VwdCAnMCcgdG8gJzknLiAgVXNlIFZJTV9JU0RJR0lUKCkgZm9yCgkgICAgc3BlZWQgd2hlcmUgcG9zc2libGUuICBBbHNvIGFkZCB2aW1faXN4ZGlnaXQoKS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9jaGFyc2V0LmMsIHNyYy9kaWZmLmMsIHNyYy9kaWdyYXBoLmMsCgkgICAgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywsIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZXZhbC5jLCBzcmMvZXhfZ2V0bG4uYywKCSAgICBzcmMvaWZfeGNtZHNydi5jLCBzcmMvZmFyc2kuYywgc3JjL2ZpbGVpby5jLCBzcmMvZm9sZC5jLAoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9ndWkuYywgc3JjL2lmX2NzY29wZS5jLCBzcmMvbWFjcm9zLmgsCgkgICAgc3JjL21haW4uYywgc3JjL21hcmsuYywgc3JjL21ieXRlLmMsIHNyYy9tZW51LmMsIHNyYy9taXNjMS5jLAoJICAgIHNyYy9taXNjMi5jLCBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jLAoJICAgIHNyYy9wcm90by9jaGFyc2V0LnBybywgc3JjL3JlZ2V4cC5jLCBzcmMvc2NyZWVuLmMsIHNyYy9zZWFyY2guYywKCSAgICBzcmMvc3ludGF4LmMsIHNyYy90YWcuYywgc3JjL3Rlcm0uYywgc3JjL3Rlcm1saWIuYwoKUGF0Y2ggNi4yLjQ4MyAoZXh0cmEsIGFmdGVyIDYuMi40ODIpClByb2JsZW06ICAgIFNlZSA2LjIuNDgyLgpTb2x1dGlvbjogICBFeHRyYSBwYXJ0IG9mIHBhdGNoIDYuMi40ODIuCkZpbGVzOgkgICAgc3JjL2d1aV9waG90b24uYywgc3JjL2d1aV93NDguYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuNDg0ClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdpdGggdGhlIGluY2x1ZGVkIGRpZmYuZXhlLCBkaWZmZXJlbmNlcyBhZnRlciBhIENUUkwtWgoJICAgIGFyZSBub3QgcmVjb2duaXplZC4gIChQZXRlciBLZXJlc3p0ZXMpClNvbHV0aW9uOiAgIFdyaXRlIHRoZSBmaWxlcyB3aXRoIHVuaXggZmlsZWZvcm1hdCBhbmQgaW52b2tlIGRpZmYgd2l0aCAtLWJpbmFyeQoJICAgIGlmIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9kaWZmLmMKClBhdGNoIDYuMi40ODUKUHJvYmxlbTogICAgQSBCdWZXcml0ZUNtZCBhdXRvY29tbWFuZCBjYW5ub3Qga25vdyBpZiAiISIgd2FzIHVzZWQgb3Igbm90LgoJICAgIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQWRkIHRoZSB2OmNtZGJhbmcgdmFyaWFibGUuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsIHNyYy9wcm90by9ldmFsLnBybywKCSAgICBzcmMvZmlsZWlvLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjQ4NiAoNi4yLjQ4MikKUHJvYmxlbTogICAgRGlmZiBmb3IgZXZhbC5jIGlzIG1pc3NpbmcuClNvbHV0aW9uOiAgIEFkZGl0aW9uIHRvIHBhdGNoIDYuMi40ODIuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjQ4NyAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciB3cm9uZyBwcm90b3R5cGUuIChBbGVqYW5kcm8gTG9wZXogVmFsZW5jaWEpClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgcHJvdG90eXBlIGZvciBIYW5kbGVfV01fTm90aWZ5KCkuCkZpbGVzOgkgICAgc3JjL3Byb3RvL2d1aV93MzIucHJvCgpQYXRjaCA2LjIuNDg4ClByb2JsZW06ICAgIE1pc3NpbmcgIikiIGluICouY2ggZmlsZXR5cGUgZGV0ZWN0aW9uLgpTb2x1dGlvbjogICBBZGQgdGhlICIpIi4gIChDaWFyYW4gTWNDcmVlc2gpCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMi40ODkKUHJvYmxlbTogICAgV2hlbiBhY2NpZGVudGFsbHkgb3BlbmluZyBhIHNlc3Npb24gaW4gVmltIHdoaWNoIGhhcyBhbHJlYWR5IGJlZW4KCSAgICBvcGVuZWQgaW4gYW5vdGhlciBWaW0gdGhlcmUgaXMgYSBsb25nIHJvdyBvZiBBVFRFTlRJT04gcHJvbXB0cy4KCSAgICBOZWVkIHRvIHF1aXQgZWFjaCBvZiB0aGVtIHRvIGdldCBvdXQuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgQWRkIHRoZSAiQWJvcnQiIGFsdGVybmF0aXZlIHRvIHRoZSBkaWFsb2cuCkZpbGVzOgkgICAgc3JjL21lbWxpbmUuYwoKUGF0Y2ggNi4yLjQ5MApQcm9ibGVtOiAgICBXaXRoICdwYXJhZ3JhcGgnIGl0IGlzIG5vdCBwb3NzaWJsZSB0byB1c2UgYSBzaW5nbGUgZG90IGFzIGEKCSAgICBwYXJhZ3JhcGggYm91bmRhcnkuICAoRG9yYWkgU2l0YXJhbSkKU29sdXRpb246ICAgQWxsb3cgdXNpbmcgIiAgIiAodHdvIHNwYWNlcykgaW4gJ3BhcmFncmFwaCcgdG8gbWF0Y2ggIi4kIiBvcgoJICAgICIuICQiCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuNDkxClByb2JsZW06ICAgIERlY3JlbWVudGluZyBhIHBvc2l0aW9uIGRvZXNuJ3QgdGFrZSBjYXJlIG9mIG11bHRpLWJ5dGUgY2hhcnMuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgY29sdW1uIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuICBSZW1vdmUgbWJfZGVjKCkuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL21pc2MyLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8KClBhdGNoIDYuMi40OTIKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOnJlZHJhdyIgd2hpbGUgdGhlcmUgaXMgYSBtZXNzYWdlLCB0aGUgbmV4dCAiOmVjaG8iCgkgICAgc3RpbGwgY2F1c2VzIHRleHQgdG8gc2Nyb2xsLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBSZXNldCBtc2dfZGlkb3V0IGFuZCBtc2dfY29sLCBzbyB0aGF0IGFmdGVyICI6cmVkcmF3IiB0aGUgbmV4dAoJICAgIG1lc3NhZ2Ugb3ZlcndyaXRlcyBhbiBleGlzdGluZyBvbmUuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi40OTMKUHJvYmxlbTogICAgIkB4IiBkb2Vzbid0IHdvcmsgd2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0LiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBQdXQgInJlc3RhcnRfZWRpdCIgaW4gdGhlIHR5cGVhaGVhZCBidWZmZXIsIHNvIHRoYXQgaXQncyB1c2VkCgkgICAgYWZ0ZXIgZXhlY3V0aW5nIHRoZSByZWdpc3RlciBjb250ZW50cy4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi40OTQKUHJvYmxlbTogICAgVXNpbmcgZGlmZiBtb2RlIHdpdGggdHdvIHdpbmRvd3MsIHdoZW4gbW92aW5nIGhvcml6b250YWxseSBpbgoJICAgIGluc2VydGVkIGxpbmVzLCBhIGZvbGQgaW4gdGhlIG90aGVyIHdpbmRvdyBtYXkgb3Blbi4KU29sdXRpb246ICAgQ29tcHV0ZSB0aGUgbGluZSBudW1iZXIgaW4gdGhlIG90aGVyIHdpbmRvdyBjb3JyZWN0bHkuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4yLjQ5NSAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZmlsZSBkaWFsb2cgZG9lc24ndCB3b3JrIG9uIFdpbmRvd3MgOTUuClNvbHV0aW9uOiAgIFB1dCB0aGUgd2lkZSBjb2RlIG9mIGd1aV9tY2hfYnJvd3NlKCkgaW4gZ3VpX21jaF9icm93c2VXKCkgYW5kIHVzZQoJICAgIGl0IG9ubHkgb24gV2luZG93cyBOVC8yMDAwL1hQLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi40OTYKUHJvYmxlbTogICAgRnJlZUJTRCA0Lng6IFdoZW4gY29tcGlsZWQgd2l0aCB0aGUgcHRocmVhZCBsaWJyYXJ5IChQeXRob24pIGEKCSAgICBjb21wbGljYXRlZCBwYXR0ZXJuIG1heSBjYXVzZSBWaW0gdG8gY3Jhc2guICBDYXRjaGluZyB0aGUgc2lnbmFsCgkgICAgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBXaGVuIGNvbXBpbGVkIHdpdGggdGhyZWFkcywgaW5zdGVhZCBvZiB1c2luZyB0aGUgbm9ybWFsIHN0YWNrc2l6ZQoJICAgIGxpbWl0LCB1c2UgdGhlIHNpemUgb2YgdGhlIGluaXRpYWwgc3RhY2suCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlnLmguaW4sIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjQ5NyAoZXh0cmEpClByb2JsZW06ICAgIFJ1c3NpYW4gbWVzc2FnZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIG9uZSBlbmNvZGluZy4KU29sdXRpb246ICAgQ29udmVydCB0aGUgbWVzc2FnZXMgdG8gTVMtV2luZG93cyBjb2RlcGFnZXMuIChWYXNzaWx5IFJhZ29zaW4pCkZpbGVzOgkgICAgc3JjL3BvL01ha2VmaWxlCgpQYXRjaCA2LjIuNDk4ClByb2JsZW06ICAgIE5vbi1sYXRpbjEgaGVscCBmaWxlcyBhcmUgbm90IHByb3Blcmx5IHN1cHBvcnRlZC4KU29sdXRpb246ICAgU3VwcG9ydCB1dGYtOCBoZWxwIGZpbGVzIGFuZCBjb252ZXJ0IHRoZW0gdG8gJ2VuY29kaW5nJyB3aGVuCgkgICAgbmVlZGVkLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjQ5OQpQcm9ibGVtOiAgICBXaGVuIHdyaXRpbmcgYSBmaWxlIGFuZCBoYWx0aW5nIHRoZSBzeXN0ZW0sIHRoZSBmaWxlIG1pZ2h0IGJlIGxvc3QKCSAgICB3aGVuIHVzaW5nIGEgam91cm5hbGxpbmcgZmlsZSBzeXN0ZW0uClNvbHV0aW9uOiAgIFVzZSBmc3luYygpIHRvIGZsdXNoIHRoZSBmaWxlIGRhdGEgdG8gZGlzayBhZnRlciB3cml0aW5nIGEgZmlsZS4KCSAgICAoUmFkaW0gS29sYXIpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuNTAwIChleHRyYSkKUHJvYmxlbTogICAgVGhlIERPUy9NUy1XaW5kb3dzIHRoZSBpbnN0YWxsZXIgZG9lc24ndCB1c2UgdGhlIC0tYmluYXJ5IGZsYWcgZm9yCgkgICAgZGlmZi4KU29sdXRpb246ICAgQWRkIC0tYmluYXJ5IHRvIHRoZSBkaWZmIGFyZ3VtZW50IGluIE15RGlmZigpLiAoQWxlamFuZHJvIExvcGV6LQoJICAgIFZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMi41MDEKUHJvYmxlbTogICAgVmltIGRvZXMgbm90IGNvbXBpbGUgd2l0aCBNb3JwaE9TLgpTb2x1dGlvbjogICBBZGQgYSBNYWtlZmlsZSBhbmQgYSBmZXcgY2hhbmdlcyB0byBtYWtlIFZpbSB3b3JrIHdpdGggTW9ycGhPUy4KCSAgICAoQWxpIEFrY2FhZ2FjKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29zX2FtaWdhLnR4dCwgc3JjL0lOU1RBTExhbWkudHh0LAoJICAgIHNyYy9NYWtlX21vcnBob3MubWFrLCBzcmMvbWVtZmlsZS5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjIuNTAyClByb2JsZW06ICAgIEJ1aWxkaW5nIGZhaWxzIGZvciBnZW5lcmF0aW5nIG1lc3NhZ2UgZmlsZXMuClNvbHV0aW9uOiAgIEFkZCBkdW1teSBtZXNzYWdlIGZpbGVzLgpGaWxlczoJICAgIHNyYy9wby9jYS5wbywgc3JjL3BvL3J1LnBvLCBzcmMvcG8vc3YucG8KClBhdGNoIDYuMi41MDMKUHJvYmxlbTogICAgTWFjOiBDYW4ndCBjb21waWxlIE1hY1JvbWFuIGNvbnZlcnNpb25zIHdpdGhvdXQgdGhlIEdVSS4KU29sdXRpb246ICAgQWxzbyBsaW5rIHdpdGggdGhlIENhcmJvbiBmcmFtZXdvcmsgZm9yIHRoZSB0ZXJtaW5hbCB2ZXJzaW9uLCBmb3IKCSAgICB0aGUgTWFjUm9tYW4gY29udmVyc2lvbiBmdW5jdGlvbnMuIChFY2tlaGFyZCBCZXJucykKCSAgICBSZW1vdmUgLWx0ZXJtY2FwIGZyb20gdGhlIEdVSSBsaW5rIGNvbW1hbmQsIGl0IGlzIG5vdCBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvTWFrZWZpbGUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMi41MDQKUHJvYmxlbTogICAgVmFyaW91cyBwcm9ibGVtcyB3aXRoICdjaW5kZW50JywgYW1vbmcgd2hpY2ggdGhhdCBhCgkgICAgbGlzdCBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaXMgbm90IGluZGVudGVkIHByb3Blcmx5LgpTb2x1dGlvbjogICBGaXggdGhlIHdyb25nIGluZGVudGluZy4gIEltcHJvdmUgaW5kZW50aW5nIG9mIEMrKyBtZXRob2RzLgoJICAgIEFkZCB0aGUgJ2knLCAnYicgYW5kICdXJyBvcHRpb25zIHRvICdjaW5vcHRpb25zJy4gKG1vc3RseSBieQoJICAgIEhlbG11dCBTdGllZ2xlcikKCSAgICBJbXByb3ZlIGluZGVudGluZyBvZiBwcmVwcm9jZXNzb3ItY29udGludWF0aW9uIGxpbmVzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2luZGVudC50eHQsIHNyYy9taXNjMS5jLCBzcmMvdGVzdGRpci90ZXN0My5pbiwKCSAgICBzcmMvdGVzdGRpci90ZXN0My5vawoKUGF0Y2ggNi4yLjUwNQpQcm9ibGVtOiAgICBIZWxwIGZvciAtUCBhcmd1bWVudCBpcyBtaXNzaW5nLiAoUm9uYWxkIEhvZWxsd2FydGgpClNvbHV0aW9uOiAgIEFkZCB0aGUgcGF0Y2ggdGhhdCB3YXMgbWlzc2luZyBpbiA2LjIuNDE5LgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dAoKUGF0Y2ggNi4yLjUwNiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuICdlbmNvZGluZycgaXMgYSBjb2RlcGFnZSB0aGVuIHJlYWRpbmcgYSB1dGYtOCBmaWxlCgkgICAgb25seSB3b3JrcyB3aGVuIGljb252IGlzIGF2YWlsYWJsZS4gIFdyaXRpbmcgYSBmaWxlIGluIGFub3RoZXIKCSAgICBjb2RlcGFnZSB1c2VzIHRoZSB3cm9uZyBraW5kIG9mIGNvbnZlcnNpb24uClNvbHV0aW9uOiAgIFVzZSBpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9ucy4gIEVuYWJsZSByZWFkaW5nIGFuZCB3cml0aW5nCgkgICAgZmlsZXMgd2l0aCAnZmlsZWVuY29kaW5nJyBkaWZmZXJlbnQgZnJvbSAnZW5jb2RpbmcnIGZvciBhbGwgdmFsaWQKCSAgICBjb2RlcGFnZXMgYW5kIHV0Zi04IHdpdGhvdXQgdGhlIG5lZWQgZm9yIGljb252LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL3Rlc3RkaXIvTWFrZV9kb3MubWFrLCBzcmMvdGVzdGRpci90ZXN0NTIuaW4sCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDUyLm9rCgpQYXRjaCA2LjIuNTA3ClByb2JsZW06ICAgIFRoZSBvd25lcnNoaXAgb2YgdGhlIGZpbGUgd2l0aCB0aGUgcGFzc3dvcmQgZm9yIHRoZSBOZXRCZWFucwoJICAgIGNvbm5lY3Rpb24gaXMgbm90IGNoZWNrZWQuICAiLW5iPXtmaWxlfSIgZG9lc24ndCB3b3JrIGZvciBHVEsuClNvbHV0aW9uOiAgIE9ubHkgYWNjZXB0IHRoZSBmaWxlIHdoZW4gb3duZWQgYnkgdGhlIHVzZXIgYW5kIG5vdCBhY2Nlc3NpYmxlIGJ5CgkgICAgb3RoZXJzLiAgRGV0ZWN0ICItbmI9IiBmb3IgR1RLLgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jLCBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4yLjUwOApQcm9ibGVtOiAgICBXaW4zMjogInY6bGFuZyIgZG9lcyBub3Qgc2hvdyB0aGUgY3VycmVudCBsYW5ndWFnZSBmb3IgbWVzc2FnZXMgaWYKCSAgICBpdCBkaWZmZXJzIGZyb20gdGhlIG90aGVyIGxvY2FsZSBzZXR0aW5ncy4KU29sdXRpb246ICAgVXNlIHRoZSB2YWx1ZSBvZiB0aGUgJExDX01FU1NBR0VTIGVudmlyb25tZW50IHZhcmlhYmxlLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuNTA5IChhZnRlciA2LjIuNTA4KQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuICRMQU5HIGlzIG5vdCBzZXQuClNvbHV0aW9uOiAgIEFkZCBjaGVjayBmb3IgTlVMTCBwb2ludGVyLiAoUm9uIEFhcm9uKQpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuNTEwIChhZnRlciA2LjIuNTA3KQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBwb2ludGVyIGNvbnZlcnNpb24uClNvbHV0aW9uOiAgIEFkZCBhIHR5cGUgY2FzdC4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4yLjUxMQpQcm9ibGVtOiAgICBUYWdzIGluIFJ1c3NpYW4gaGVscCBmaWxlcyBhcmUgaW4gdXRmLTggZW5jb2RpbmcsIHdoaWNoIG1heSBiZQoJICAgIGRpZmZlcmVudCBmcm9tICdlbmNvZGluZycuClNvbHV0aW9uOiAgIFVzZSB0aGUgIlRBR19GSUxFX0VOQ09ESU5HIiBmaWVsZCBpbiB0aGUgdGFncyBmaWxlIHRvIHNwZWNpZnkgdGhlCgkgICAgZW5jb2Rpbmcgb2YgdGhlIHRhZ3MuICBDb252ZXJ0IGhlbHAgdGFncyBmcm9tICdlbmNvZGluZycgdG8gdGhlCgkgICAgdGFnIGZpbGUgZW5jb2Rpbmcgd2hlbiBzZWFyY2hpbmcgZm9yIG1hdGNoZXMsIGRvIHRoZSByZXZlcnNlIHdoZW4KCSAgICBsaXN0aW5nIGhlbHAgdGFncy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy90YWdzcmNoLnR4dCwgc3JjL2V4X2NtZHMuYywgc3JjL3RhZy5jCgpQYXRjaCA2LjIuNTEyClByb2JsZW06ICAgIFRyYW5zbGF0aW5nICJcIlxuIiBpcyB1c2VsZXNzLiAoR2VyZnJpZWQgRnVjaHMpClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgXygpIGFyb3VuZCBpdC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjIuNTEzIChhZnRlciA2LjIuNTA3KQpQcm9ibGVtOiAgICBOZXRCZWFuczogdGhlIGNoZWNrIGZvciBvd25pbmcgdGhlIGNvbm5lY3Rpb24gaW5mbyBmaWxlIGNhbiBiZQoJICAgIHNpbXBsaWZpZWQuIChOaWtvbGF5IE1vbGNoYW5vdikKU29sdXRpb246ICAgT25seSBjaGVjayBpZiB0aGUgYWNjZXNzIG1vZGUgaXMgcmlnaHQuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi41MTQKUHJvYmxlbTogICAgV2hlbiBhIGhpZ2hsaWdodC9zeW50YXggZ3JvdXAgbmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMKCSAgICB0aGVyZSBpcyBubyB3YXJuaW5nLgpTb2x1dGlvbjogICBBZGQgYW4gZXJyb3IgZm9yIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYW5kIGEgd2FybmluZyBmb3Igb3RoZXIKCSAgICBpbnZhbGlkIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjIuNTE1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlIG9wdGlvbnMgd2luZG93ICdzd2FwZmlsZScgaXMgcmVzZXQuClNvbHV0aW9uOiAgIFVzZSAiOnNldGxvY2FsIiBpbnN0ZWFkIG9mICI6c2V0Ii4KRmlsZXM6CSAgICBydW50aW1lL29wdHdpbi52aW0KClBhdGNoIDYuMi41MTYKUHJvYmxlbTogICAgVGhlIHNpZ24gY29sdW1uIGNhbm5vdCBiZSBzZWVuLCBsb29rcyBsaWtlIHRoZXJlIGFyZSB0d28gc3BhY2VzCgkgICAgYmVmb3JlIHRoZSB0ZXh0LiAoUm9iIFJldHRlcikKU29sdXRpb246ICAgQWRkIHRoZSBTaWduQ29sdW1uIGhpZ2hsaWdodCBncm91cC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgcnVudGltZS9kb2Mvc2lnbi50eHQsIHNyYy9vcHRpb24uYywKCSAgICBzcmMvc2NyZWVuLmMsIHNyYy9zeW50YXguYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuNTE3ClByb2JsZW06ICAgIFVzaW5nICJyKiIgaW4gVmlzdWFsIG1vZGUgb24gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHJlcGxhY2VzCgkgICAgdG9vIG1hbnkgY2hhcmFjdGVycy4gIEluIFZpc3VhbCBCbG9jayBtb2RlIHJlcGxhY2luZyB3aXRoIGEKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgb3BlcmF0b3IgZW5kIGZvciB0aGUgZGlmZmVyZW5jZSBpbiBieXRlIGxlbmd0aCBvZiB0aGUKCSAgICBvcmlnaW5hbCBhbmQgdGhlIHJlcGxhY2VkIGNoYXJhY3Rlci4gIEluc2VydCBhbGwgYnl0ZXMgb2YgYQoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVyLCB0YWtlIGNhcmUgb2YgZG91YmxlLXdpZGUgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi41MTgKUHJvYmxlbTogICAgTGFzdCBsaW5lIG9mIGEgd2luZG93IGlzIG5vdCB1cGRhdGVkIGFmdGVyIHVzaW5nICJKIiBhbmQgdGhlbiAiRCIuCgkgICAgKEFkcmkgVmVyaG9lZikKU29sdXRpb246ICAgV2hlbiBubyBsaW5lIGlzIGZvdW5kIGJlbG93IGEgY2hhbmdlIHRoYXQgZG9lc24ndCBuZWVkIHVwZGF0aW5nLAoJICAgIHVwZGF0ZSBhbGwgbGluZXMgYmVsb3cgdGhlIGNoYW5nZS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi41MTkKUHJvYmxlbTogICAgTWFjOiBjYW5ub3QgcmVhZC93cml0ZSBmaWxlcyBpbiBNYWNSb21hbiBmb3JtYXQuClNvbHV0aW9uOiAgIERvIGludGVybmFsIGNvbnZlcnNpb24gZnJvbS90byBNYWNSb21hbiB0by9mcm9tIHV0Zi04IGFuZCBsYXRpbjEuCgkgICAgKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjUyMCAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBOU0lTIGluc3RhbGxlciBpcyBvdXRkYXRlZC4KU29sdXRpb246ICAgTWFrZSBpdCB3b3JrIHdpdGggTlNJUyAyLjAuICBBbHNvIGluY2x1ZGUgY29uc29sZSBleGVjdXRhYmxlcyBmb3IKCSAgICBXaW4gOTUvOTgvTUUgYW5kIFdpbiBOVC8yMDAwL1hQLiAgVXNlIExaV0EgY29tcHJlc3Npb24uICBVc2UKCSAgICAiL29uYW1lIiB0byBhdm9pZCBoYXZpbmcgdG8gcmVuYW1lIGZpbGVzIGJlZm9yZSBydW5uaW5nIE5TSVMuCkZpbGVzOgkgICAgTWFrZWZpbGUsIG5zaXMvZ3ZpbS5uc2kKClBhdGNoIDYuMi41MjEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBzaWxlbnQgRXggbW9kZSB0aGUgImNoYW5naW5nIGEgcmVhZG9ubHkgZmlsZSIgd2FybmluZwoJICAgIGlzIG9taXR0ZWQgYnV0IHRoZSBvbmUgc2Vjb25kIHdhaXQgaXNuJ3QuIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFNraXAgdGhlIGRlbGF5IHdoZW4gInNpbGVudF9tb2RlIiBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMi41MjIKUHJvYmxlbTogICAgR1VJOiB3aGVuIGNoYW5naW5nICdjbWRoZWlnaHQnIGluIHRoZSBndmltcmMgZmlsZSB0aGUgd2luZG93CgkgICAgbGF5b3V0IGlzIG1lc3NlZCB1cC4gKEtlaXRoIERhcnQpClNvbHV0aW9uOiAgIFNraXAgdXBkYXRpbmcgdGhlIHdpbmRvdyBsYXlvdXQgd2hlbiBjaGFuZ2luZyAnY21kaGVpZ2h0JyB3aGlsZQoJICAgIHN0aWxsIHN0YXJ0aW5nIHVwLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjUyMwpQcm9ibGVtOiAgICBXaGVuIGxvYWRpbmcgYSBzZXNzaW9uIGFuZCBhYm9ydGluZyB3aGVuIGEgc3dhcCBmaWxlIGFscmVhZHkKCSAgICBleGlzdHMsIHRoZSB1c2VyIGlzIGxlZnQgd2l0aCB1c2VsZXNzIHdpbmRvd3MuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgTG9hZCBvbmUgZmlsZSBiZWZvcmUgY3JlYXRpbmcgdGhlIHdpbmRvd3MuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi41MjQgKGV4dHJhLCBhZnRlciA2LjIuNTIwKQpQcm9ibGVtOiAgICBXaW4zMjogKHVuKWluc3RhbGxpbmcgZ3ZpbWV4dC5kbGwgbWF5IGZhaWwgaWYgaXQgd2FzIHVzZWQuCgkgICAgVGhlIGRlc2t0b3AgYW5kIHN0YXJ0IG1lbnUgbGlua3MgYXJlIGNyZWF0ZWQgZm9yIHRoZSBjdXJyZW50IHVzZXIKCSAgICBpbnN0ZWFkIG9mIGFsbCB1c2Vycy4KCSAgICBVc2luZyB0aGUgaG9tZSBkaXJlY3RvcnkgYXMgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoZSBsaW5rcyBpcyBhCgkgICAgYmFkIGlkZWEgZm9yIG11bHRpLXVzZXIgc3lzdGVtcy4KCSAgICBDYW5ub3QgdXNlIFZpbSBmcm9tIHRoZSAiT3BlbiBXaXRoLi4uIiBtZW51LgpTb2x1dGlvbjogICBGb3JjZSBhIHJlYm9vdCBpZiBuZWNlc3NhcnkuIChBbGVqYW5kcm8gTG9wZXotVmFsZW5jaWEpICBBbHNvIHVzZQoJICAgIG1hY3JvcyBmb3IgdGhlIGRpcmVjdG9yeSBvZiB0aGUgc291cmNlIGFuZCBydW50aW1lIGZpbGVzLiAgVXNlCgkgICAgIkNTSURMX0NPTU1PTl8qIiBpbnN0ZWFkIG9mICJDU0lETF8qIiB3aGVuIHBvc3NpYmxlLgoJICAgIERvIG5vdCBzcGVjaWZ5IGEgd29ya2luZyBkaXJlY3RvcnkgaW4gdGhlIGxpbmtzLgoJICAgIEFkZCBWaW0gdG8gdGhlICJPcGVuIFdpdGguLi4iIG1lbnUuIChHaXVzZXBwZSBCaWxvdHRhKQpGaWxlczoJICAgIG5zaXMvZ3ZpbS5uc2ksIHNyYy9kb3NpbnN0LmMsIHNyYy9kb3NpbnN0LmgsIHNyYy91bmluc3RhbC5jCgpQYXRjaCA2LjIuNTI1ClByb2JsZW06ICAgIFdoZW4gdGhlIGhpc3RvcnkgY29udGFpbnMgYSB2ZXJ5IGxvbmcgbGluZSAiOmhpc3RvcnkiIGNhdXNlcyBhCgkgICAgY3Jhc2guIChWb2xrZXIgS2llZmVsKQpTb2x1dGlvbjogICBTaG9ydGVuIHRoZSBoaXN0b3J5IGVudHJ5IHRvIGZpdCBpdCBpbiBvbmUgbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4yLjUyNgpQcm9ibGVtOiAgICBXaGVuIHM6bGFuZyBpcyAiamEiIHRoZSBKYXBhbmVzZSBtZW51cyBhcmUgbm90IHVzZWQuClNvbHV0aW9uOiAgIEFkZCAnZW5jb2RpbmcnIHRvIHRoZSBsYW5ndWFnZSB3aGVuIHRoZXJlIGlzIG5vIGNoYXJzZXQuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4yLjUyNwpQcm9ibGVtOiAgICBUaGUgMmh0bWwgc2NyaXB0IHVzZXMgIjp3aW5jbWQgcCIsIHdoaWNoIGJyZWFrcyB3aGVuIHVzaW5nIHNvbWUKCSAgICBhdXRvY29tbWFuZHMuClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSB3aW5kb3cgbnVtYmVycyBhbmQganVtcCB0byB0aGVtIHdpdGggIjp3aW5jbWQgdyIuCgkgICAgQWxzbyBhZGQgWEhUTUwgc3VwcG9ydC4gKFBhbmFnaW90aXMgSXNzYXJpcykKRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC8yaHRtbC52aW0KClBhdGNoIDYuMi41MjgKUHJvYmxlbTogICAgTmV0QmVhbnM6IENoYW5nZXMgb2YgdGhlICJ+IiBjb21tYW5kIGFyZSBub3QgcmVwb3J0ZWQuClNvbHV0aW9uOiAgIENhbGwgbmV0YmVhbnNfaW5zZXJ0ZWQoKSBhZnRlciBwZXJmb3JtaW5nICJ+Ii4gKEdvcmRvbiBQcmlldXIpCgkgICAgQWxzbyBjaGFuZ2UgTmV0QmVhbnMgZGVidWdnaW5nIHRvIGFwcGVuZCB0byB0aGUgbG9nIGZpbGUuCgkgICAgQWxzbyBmaXggdGhhdCAifiIgaW4gVmlzdWFsIGJsb2NrIG1vZGUgY2hhbmdlcyB0b28gbXVjaCBpZiB0aGVyZQoJICAgIGFyZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL25iZGVidWcuYywgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMKClBhdGNoIDYuMi41MjkgKGV4dHJhKQpQcm9ibGVtOiAgICBWaXNWaW0gb25seSB3b3JrcyBmb3IgQWRtaW4uICBEb2luZyBpdCBmb3Igb25lIHVzZXIgZG9lc24ndCB3b3JrLgoJICAgIChBbGV4YW5kcmUgR291cmF1ZCkKU29sdXRpb246ICAgV2hlbiByZWdpc3RlcmluZyB0aGUgbW9kdWxlIGZhaWxzLCBzaW1wbHkgY29udGludWUuCkZpbGVzOgkgICAgc3JjL1Zpc1ZpbS9WaXNWaW0uY3BwCgpQYXRjaCA2LjIuNTMwClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIG1pc3NpbmcgcHJvdG90eXBlIG9uIHRoZSBBbWlnYS4KU29sdXRpb246ICAgSW5jbHVkZSB0aW1lLmgKRmlsZXM6CSAgICBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjIuNTMxClByb2JsZW06ICAgIEluIHNpbGVudCBleCBtb2RlIG5vIG1lc3NhZ2VzIGFyZSBnaXZlbiwgd2hpY2ggbWFrZXMgZGVidWdnaW5nCgkgICAgdmVyeSBkaWZmaWN1bHQuClNvbHV0aW9uOiAgIERvIG91dHB1dCBtZXNzYWdlcyB3aGVuICd2ZXJib3NlJyBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYywgc3JjL3VpLmMKClBhdGNoIDYuMi41MzIgKGV4dHJhKQpQcm9ibGVtOiAgICBDb21waWxpbmcgZm9yIFdpbjMycyB3aXRoIFZDIDQuMSBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIERvbid0IHVzZSBDUF9VVEY4IGlmIGl0J3Mgbm90IGRlZmluZWQuICBEb24ndCB1c2UgQ1NJRExfQ09NTU9OKgoJICAgIHdoZW4gbm90IGRlZmluZWQuCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuaCwgc3JjL2ZpbGVpby5jCgpXaW4zMiBjb25zb2xlOiBBZnRlciBwYXRjaCA2LjIuMzk4IEV4IG1vZGUgZGlkIG5vdCB3b3JrLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKUGF0Y2ggNi4zYS4wMDEKUHJvYmxlbTogICAgV2luMzI6IGlmIHRlc3RpbmcgZm9yIHRoZSAiLS1iaW5hcnkiIG9wdGlvbiBmYWlscywgZGlmZiBpc24ndCB1c2VkCgkgICAgYXQgYWxsLgpTb2x1dGlvbjogICBIYW5kbGUgdGhlICJvayIgZmxhZyBwcm9wZXJseS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjNhLjAwMgpQcm9ibGVtOiAgICBOZXRCZWFuczogQW4gaW5zZXJ0IGNvbW1hbmQgZnJvbSBOZXRCZWFucyBiZXlvbmQgdGhlIGVuZCBvZiBhCgkgICAgYnVmZmVyIGNyYXNoZXMgVmltLiAoWGF2aWVyIGRlIEdheWUpClNvbHV0aW9uOiAgIFVzZSBhIGxvY2FsIHBvc19UIHN0cnVjdHVyZSBmb3IgdGhlIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjNhLjAwMwpQcm9ibGVtOiAgICBFMzE1IGVycm9yIHdpdGggYXV0by1mb3JtYXR0aW5nIGNvbW1lbnRzLiAoSGVucnkgVmFuIFJvZXNzZWwpClNvbHV0aW9uOiAgIFBhc3MgdGhlIGxpbmUgbnVtYmVyIHRvIHNhbWVfbGVhZGVyKCkuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjNhLjAwNApQcm9ibGVtOiAgICBUZXN0MzIgZmFpbHMgb24gV2luZG93cyBYUCBmb3IgdGhlIERKR1BQIHZlcnNpb24uICBSZW5hbWluZwoJICAgIHRlc3QxMS5vdXQgZmFpbHMuClNvbHV0aW9uOiAgIERvbid0IHRyeSByZW5hbWluZywgY3JlYXRlIG5ldyBmaWxlcyB0byB1c2UgZm9yIHRoZSB0ZXN0LgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3QzMi5pbiwgc3JjL3Rlc3RkaXIvdGVzdDMyLm9rCgpQYXRjaCA2LjNhLjAwNQpQcm9ibGVtOiAgICAiOmNoZWNrcGF0aCEiIGRvZXMgbm90IHVzZSAnaW5jbHVkZWV4cHInLgpTb2x1dGlvbjogICBVc2UgYSBmaWxlIG5hbWUgdGhhdCB3YXMgZm91bmQgZGlyZWN0bHkuICBXaGVuIGEgZmlsZSB3YXMgbm90CgkgICAgZm91bmQgYW5kIHRoZSBsb2NhdGVkIG5hbWUgaXMgZW1wdHksIHVzZSB0aGUgcmVzdCBvZiB0aGUgbGluZS4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuM2EuMDA2ClByb2JsZW06ICAgICJ5aXAiIG1vdmVzIHRoZSBjdXJzb3IgdG8gdGhlIGZpcnN0IHlhbmtlZCBsaW5lLCBidXQgbm90IHRvIHRoZQoJICAgIGZpcnN0IGNvbHVtbi4gIExvb2tzIGxpa2Ugbm90IGFsbCB0ZXh0IHdhcyB5YW5rZWQuIChKZW5zIFBhdWx1cykKU29sdXRpb246ICAgTW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBmaXJzdCBjb2x1bW4uCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjNhLjAwNwpQcm9ibGVtOiAgICAnY2luZGVudCcgcmVjb2duaXplcyAiZW51bSIgYnV0IG5vdCAidHlwZWRlZiBlbnVtIi4KU29sdXRpb246ICAgU2tpcCBvdmVyICJ0eXBlZGVmIiBiZWZvcmUgY2hlY2tpbmcgZm9yICJlbnVtIi4gKEhlbG11dCBTdGllZ2xlcikKCSAgICBBbHNvIGF2b2lkIHRoYXQgc2VhcmNoaW5nIGZvciB0aGlzIGl0ZW0gZ29lcyB0b28gZmFyIGJhY2suCkZpbGVzOgkgICAgc3JjL21pc2MxLmMsIHNyYy90ZXN0ZGlyL3Rlc3QzLmluLCBzcmMvdGVzdGRpci90ZXN0My5vawoKUGF0Y2ggNi4zYS4wMDggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW5kb3dzIDk4OiBTb21lIG9mIHRoZSB3aWRlIGZ1bmN0aW9ucyBhcmUgbm90IGltcGxlbWVudGVkLAoJICAgIHJlc3VsdGluZyBpbiBmaWxlIEkvTyB0byBmYWlsLiAgVGhpcyBkZXBlbmRzIG9uIHdoYXQgVW5pY29kZQoJICAgIHN1cHBvcnQgaXMgaW5zdGFsbGVkLgpTb2x1dGlvbjogICBIYW5kbGUgdGhlIGZhaWx1cmUgYW5kIGZhbGwgYmFjayB0byBub24td2lkZSBmdW5jdGlvbnMuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuM2EuMDA5ClByb2JsZW06ICAgIFdpbjMyOiBDb21wbGV0aW9uIG9mIGZpbGVuYW1lcyBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IHdoZW4KCSAgICAnZW5jb2RpbmcnIGRpZmZlcnMgZnJvbSB0aGUgYWN0aXZlIGNvZGUgcGFnZS4KU29sdXRpb246ICAgVXNlIHdpZGUgZnVuY3Rpb25zIGZvciBleHBhbmRpbmcgd2lsZGNhcmRzIHdoZW4gYXBwcm9wcmlhdGUuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuM2EuMDEwIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IENoYXJhY3RlcnMgaW4gdGhlIHdpbmRvdyB0aXRsZSB0aGF0IGRvIG5vdCBhcHBlYXIgaW4gdGhlCgkgICAgYWN0aXZlIGNvZGVwYWdlIGFyZSByZXBsYWNlZCBieSBhIHF1ZXN0aW9uIG1hcmsuClNvbHV0aW9uOiAgIFVzZSBEZWZXaW5kb3dQcm9jVygpIGluc3RlYWQgb2YgRGVmV2luZG93UHJvYygpIHdoZW4gcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL2dsYmxfaW1lLmNwcCwgc3JjL2dsb2JhbHMuaCwgc3JjL3Byb3RvL2d1aV93MTYucHJvLAoJICAgIHNyYy9wcm90by9ndWlfdzMyLnBybywgc3JjL2d1aV93MTYuYywgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zYS4wMTEKUHJvYmxlbTogICAgVXNpbmcgdGhlIGV4cGxvcmVyIHBsdWdpbiBjaGFuZ2VzIGEgbG9jYWwgZGlyZWN0b3J5IHRvIHRoZSBnbG9iYWwKCSAgICBkaXJlY3RvcnkuClNvbHV0aW9uOiAgIERvbid0IHVzZSAiOmNoZGlyIiB0byByZXN0b3JlIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIE1ha2UKCSAgICAiZXhwYW5kKCclOnAnKSIgcmVtb3ZlICIvLi4vIiBhbmQgIi8uLyIgaXRlbXMgZnJvbSB0aGUgcGF0aC4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0sIHNyYy9ldmFsLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuM2EuMDEyIChleHRyYSkKUHJvYmxlbTogICAgT24gV2luZG93cyA5OCB0aGUgaW5zdGFsbGVyIGRvZXNuJ3Qgd29yaywgZG9uJ3QgZXZlbiBnZXQgdGhlICJJCgkgICAgYWdyZWUiIGJ1dHRvbi4gIFRoZSBjaGVjayBmb3IgdGhlIHBhdGggZW5kaW5nIGluICJ2aW0iIG1ha2VzIHRoZQoJICAgIGJyb3dzZSBkaWFsb2cgaGFyZCB0byB1c2UuICBUaGUgZGVmYXVsdCBwYXRoIHdoZW4gbm8gcHJldmlvdXMgVmltCgkgICAgaXMgaW5zdGFsbGVkIGlzICJjOlx2aW0iIGluc3RlYWQgb2YgImM6XFByb2dyYW0gRmlsZXNcVmltIi4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBiYWNrZ3JvdW5kIGdyYWRpZW50IGNvbW1hbmQuICBDaGFuZ2UgdGhlCgkgICAgLm9uVmVyaWZ5SW5zdERpciBmdW5jdGlvbiB0byBhIGxlYXZlIGZ1bmN0aW9uIGZvciB0aGUgZGlyZWN0b3J5CgkgICAgcGFnZS4gIERvbid0IGxldCB0aGUgaW5zdGFsbCBwcm9ncmFtIGRlZmF1bHQgdG8gYzpcdmltIHdoZW4gbm8KCSAgICBwYXRoIGNvdWxkIGJlIGZvdW5kLgpGaWxlczoJICAgIG5zaXMvZ3ZpbS5uc2ksIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuM2EuMDEzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IENoYXJhY3RlcnMgaW4gdGhlIG1lbnUgdGhhdCBhcmUgbm90IGluIHRoZSBhY3RpdmUgY29kZXBhZ2UKCSAgICBhcmUgZ2FyYmxlZC4KU29sdXRpb246ICAgQ29udmVydCBtZW51IHN0cmluZ3MgZnJvbSAnZW5jb2RpbmcnIHRvIHRoZSBhY3RpdmUgY29kZXBhZ2UuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zYS4wMTQKUHJvYmxlbTogICAgVXNpbmcgbXVsdGktYnl0ZSB0ZXh0IGFuZCBoaWdobGlnaHRpbmcgaW4gYSBzdGF0dXNsaW5lIGNhdXNlcyBnYXBzCgkgICAgdG8gYXBwZWFyLiAoSGVsbXV0IFN0aWVnbGVyKQpTb2x1dGlvbjogICBBZHZhbmNlIHRoZSBjb2x1bW4gYnkgdGV4dCB3aWR0aCBpbnN0ZWFkIG9mIG51bWJlciBvZiBieXRlcy4gIEFkZAoJICAgIHRoZSB2aW1fc3RybnNpemUoKSBmdW5jdGlvbi4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvcHJvdG8vY2hhcnNldC5wcm8sIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zYS4wMTUKUHJvYmxlbTogICAgVXNpbmcgdGhlICJzZWxlY3QgYWxsIiBtZW51IGl0ZW0gd2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0IGFuZAoJICAgIGNsaWNraW5nIHRoZSBtb3VzZSBidXR0b24gZG9lc24ndCByZXR1cm4gdG8gSW5zZXJ0IG1vZGUuICBUaGUKCSAgICBCdWZmZXJzL0RlbGV0ZSBtZW51IGRvZXNuJ3Qgb2ZmZXIgYSBjaG9pY2UgdG8gYWJhbmRvbiBhIGNoYW5nZWQKCSAgICBidWZmZXIuICAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIERvbid0IHVzZSBDVFJMLVwgQ1RSTC1OLiAgQWRkICI6Y29uZmlybSIgZm9yIHRoZSBCdWZmZXJzIG1lbnUKCSAgICBpdGVtcy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjNhLjAxNgpQcm9ibGVtOiAgICBBZnRlciBjYW5jZWxsaW5nIHRoZSAiOmNvbmZpcm0iIGRpYWxvZyB0aGUgZXJyb3IgbWVzc2FnZSBhbmQKCSAgICBoaXQtZW50ZXIgcHJvbXB0IG1heSBub3QgYmUgZGlzcGxheWVkIHByb3Blcmx5LgpTb2x1dGlvbjogICBGbHVzaCBvdXRwdXQgYWZ0ZXIgc2hvd2luZyB0aGUgZGlhbG9nLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuM2EuMDE3ClByb2JsZW06ICAgIHNlcnZlcm5hbWUoKSBkb2Vzbid0IHdvcmsgd2hlbiBWaW0gd2FzIHN0YXJ0ZWQgd2l0aCB0aGUgIi1YIgoJICAgIGFyZ3VtZW50IG9yIHdoZW4gdGhlICJleGNsdWRlIiBpbiAnY2xpcGJvYXJkJyBtYXRjaGVzIHRoZSB0ZXJtaW5hbAoJICAgIG5hbWUuICAoUm9iZXJ0IE5vd290bmlhaykKU29sdXRpb246ICAgRm9yY2UgY29ubmVjdGluZyB0byB0aGUgWCBzZXJ2ZXIgd2hlbiB1c2luZyBjbGllbnQtc2VydmVyCgkgICAgY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2dsb2JhbHMuaCwgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4zYS4wMTggKGFmdGVyIDYuM2EuMDE3KQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciByZXR1cm4gdmFsdWUgb2YgbWFrZV9jb25uZWN0aW9uKCkuClNvbHV0aW9uOiAgIFVzZSB2b2lkIHJldHVybiB0eXBlLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuM2EuMDE5IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IHR5cGluZyBub24tbGF0aW4xIGNoYXJhY3RlcnMgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBJbnZva2UgX09uQ2hhcigpIGRpcmVjdGx5IHRvIGF2b2lkIHRoYXQgdGhlIGFyZ3VtZW50IGlzIHRydW5jYXRlZAoJICAgIHRvIGEgYnl0ZS4gIENvbnZlcnQgdGhlIFVURi0xNiBjaGFyYWN0ZXIgdG8gYnl0ZXMgYWNjb3JkaW5nIHRvCgkgICAgJ2VuY29kaW5nJyBhbmQgaWdub3JlICd0ZXJtZW5jb2RpbmcnLiAgU2FtZSBmb3IgX09uU3lzQ2hhcigpLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuM2EuMDIwIChleHRyYSkKUHJvYmxlbTogICAgTWlzc2luZyBzdXBwb3J0IGZvciBBUk9TIChBbWlnYU9TIHJlaW1wbGVtZW50YXRpb24pLiAgQW1pZ2EgR1VJCgkgICAgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGQgQVJPUyBzdXBwb3J0LiAgKEFkYW0gQ2hvZG9yb3dza2kpCgkgICAgRml4IEFtaWdhIEdVSSBwcm9ibGVtcy4gKEdlb3JnIFN0ZWdlciwgQWxpIEFrY2FhZ2FjKQpGaWxlczoJICAgIE1ha2VmaWxlLCBzcmMvTWFrZV9hcm9zLm1haywgc3JjL2d1aV9hbWlnYS5jLCBzcmMvZ3VpX2FtaWdhLmgsCgkgICAgc3JjL21lbWZpbGUuYywgc3JjL29zX2FtaWdhLmMsIHNyYy90ZXJtLmMKClBhdGNoIDYuM2EuMDIxIChhZnRlciA2LjNhLjAxNykKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRoIFgxMSBidXQgd2l0aG91dCBHVUkuClNvbHV0aW9uOiAgIFB1dCB1c2Ugb2YgImd1aS5pbl91c2UiIGluc2lkZSBhbiAjaWZkZWYuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4zYS4wMjIKUHJvYmxlbTogICAgV2hlbiB0eXBpbmcgVGFicyB3aGVuICdzb2Z0dGFic3RvcCcgaXMgdXNlZCBhbmQgJ2xpc3QnIGlzIHNldCBhCgkgICAgdGFiIGlzIGNvdW50ZWQgZm9yIHR3byBzcGFjZXMuClNvbHV0aW9uOiAgIFVzZSB0aGUgIkwiIGZsYWcgaW4gJ2Nwb3B0aW9ucycgdG8gdGVsbCB3aGV0aGVyIGEgdGFiIGlzIGNvdW50ZWQKCSAgICBhcyB0d28gc3BhY2VzIG9yIGFzICd0YWJzdG9wJy4gKEFudG9ueSBTY3JpdmVuKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvZWRpdC5jCgpQYXRjaCA2LjNhLjAyMwpQcm9ibGVtOiAgICBDb21wbGV0aW9uIG9uIHRoZSBjb21tYW5kIGxpbmUgZG9lc24ndCBoYW5kbGUgYmFja3NsYXNoZXMKCSAgICBwcm9wZXJseS4gIE9ubHkgdGhlIHRhaWwgb2YgbWF0Y2hlcyBpcyBzaG93biwgZXZlbiB3aGVuIG5vdAoJICAgIGNvbXBsZXRpbmcgZmlsZW5hbWVzLgpTb2x1dGlvbjogICBXaGVuIHR1cm5pbmcgdGhlIHN0cmluZyBpbnRvIGEgcGF0dGVybiBkb3VibGUgYmFja3NsYXNoZXMuICBEb24ndAoJICAgIG9taXQgdGhlIHBhdGggd2hlbiBub3QgZXhwYW5kaW5nIGZpbGVzIG9yIGRpcmVjdG9yaWVzLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjNhLjAyNApQcm9ibGVtOiAgICBUaGUgInNhdmUgYWxsIiB0b29sYmFyIGl0ZW0gZmFpbHMgZm9yIGJ1ZmZlcnMgdGhhdCBkb24ndCBoYXZlIGEKCSAgICBuYW1lLiAgV2hlbiB1c2luZyAiOndhIiBvciBjbG9zaW5nIHRoZSBWaW0gd2luZG93IGFuZCB0aGVyZSBhcmUKCSAgICBuYW1lbGVzcyBidWZmZXJzLCBicm93c2luZyBmb3IgYSBuYW1lIG1heSBjYXVzZSB0aGUgbmFtZSBiZWluZwoJICAgIGdpdmVuIHRvIHRoZSB3cm9uZyBidWZmZXIgb3Igbm90IHN0b3JlZCBwcm9wZXJseS4gICI6YnJvd3NlIiBvbmx5CgkgICAgd29ya2VkIGZvciBvbmUgZmlsZS4KU29sdXRpb246ICAgVXNlICI6Y29uZmlybSBicm93c2UiIGZvciAic2F2ZSBhbGwiLgoJICAgIFBhc3MgYnVmZmVyIGFyZ3VtZW50IHRvIHNldGZuYW1lKCkuICBSZXN0b3JlICJicm93c2UiIGZsYWcgYW5kCgkgICAgImZvcmNlaXQiIGFmdGVyIGRvaW5nIHRoZSB3b3JrIGZvciBvbmUgZmlsZS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltLCBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2ZpbGVpby5jLCBzcmMvbWVtbGluZS5jLAoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy93aW5kb3cuYywgc3JjL3Byb3RvL2J1ZmZlci5wcm8sCgkgICAgc3JjL3Byb3RvL2V4X2NtZHMyLnBybywgc3JjL3Byb3RvL21lbWxpbmUucHJvCgpQYXRjaCA2LjNhLjAyNQpQcm9ibGVtOiAgICBTZXR0aW5nICd2aXJ0dWFsZWRpdCcgbW92ZXMgdGhlIGN1cnNvci4gKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgVXBkYXRlIHRoZSB2aXJ0dWFsIGNvbHVtbiBiZWZvcmUgdXNpbmcgaXQuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjNhLjAyNiAoZXh0cmEsIGFmdGVyIDYuM2EuMDA4KQpQcm9ibGVtOiAgICBFZGl0aW5nIGZpbGVzIG9uIFdpbmRvd3MgOTggZG9lc24ndCB3b3JrIHdoZW4gJ2VuY29kaW5nJyBpcwoJICAgICJ1dGYtOCIgKEFudG9pbmUgTWVjaGVseW5jaykKCSAgICBXYXJuaW5nIGZvciBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZS4KU29sdXRpb246ICAgRm9yIGFsbCB3aWRlIGZ1bmN0aW9ucyBjaGVjayBpZiBpdCBmYWlsZWQgYmVjYXVzZSBpdCBpcyBub3QKCSAgICBpbXBsZW1lbnRlZC4gIFVzZSBBTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGZvciBjaGFyX3RvX3N0cmluZygpLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMsIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4zYS4wMjcgKGV4dHJhLCBhZnRlciA2LjNhLjAyNikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgZnVuY3Rpb24gYXJndW1lbnQuClNvbHV0aW9uOiAgIERlY2xhcmUgYm90aCBjaGFyIGFuZCBXQ0hBUiBhcnJheXMuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zYS4wMjgKUHJvYmxlbTogICAgIjpub3JtYWwgLiIgZG9lc24ndCB3b3JrIGluc2lkZSBhIGZ1bmN0aW9uLCBiZWNhdXNlIHJlZG8gaXMgc2F2ZWQKCSAgICBhbmQgcmVzdG9yZWQuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIE1ha2UgYSBjb3B5IG9mIHRoZSByZWRvIGJ1ZmZlciB3aGVuIGV4ZWN1dGluZyBhIGZ1bmN0aW9uLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuM2IuMDAxIChleHRyYSkKUHJvYmxlbTogICAgQmNjIDU6IFRoZSBnZW5lcmF0ZWQgYXV0by9wYXRoZGVmIGNhbid0IGJlIGNvbXBpbGVkLgpTb2x1dGlvbjogICBGaXggdGhlIHdheSBxdW90ZXMgYW5kIGJhY2tzbGFzaGVzIGFyZSBlc2NhcGVkLgpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWsKClBhdGNoIDYuM2IuMDAyClByb2JsZW06ICAgIFdpbjMyOiBjb252ZXJzaW9uIGR1cmluZyBmaWxlIHdyaXRlIGZhaWxzIHdoZW4gYSBkb3VibGUtYnl0ZQoJICAgIGNoYXJhY3RlciBpcyBzcGxpdCBvdmVyIHR3byB3cml0ZXMuClNvbHV0aW9uOiAgIEZpeCB0aGUgY29udmVyc2lvbiByZXRyeSB3aXRob3V0IGEgdHJhaWxpbmcgYnl0ZS4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuM2IuMDAzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gY29tcGlsaW5nIHdpdGggQm9ybGFuZCBDIDUuNSBhbmQgJ2VuY29kaW5nJyBpcyAidXRmLTgiCgkgICAgdGhlbiBWaW0gY2FuJ3Qgb3BlbiBmaWxlcyB1bmRlciBNUy1XaW5kb3dzIDk4LiAoQW50b2luZSBKLgoJICAgIE1lY2hlbHluY2spClNvbHV0aW9uOiAgIERvbid0IHVzZSBfd3N0YXQoKSwgX3dvcGVuKCkgYW5kIF93Zm9wZW4oKSBpbiB0aGlzIHNpdHVhdGlvbi4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuM2IuMDA0ClByb2JsZW06ICAgICI6aGVscGdyZXAiIGluY2x1ZGVzIGEgdHJhaWxpbmcgQ1IgaW4gdGhlIHRleHQgbGluZS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBDUi4KRmlsZXM6CSAgICBzcmMvcXVpY2tmaXguYwoKUGF0Y2ggNi4zYi4wMDUKUHJvYmxlbTogICAgIjplY2hvICZnOmFpIiByZXN1bHRzIGluIHRoZSBsb2NhbCBvcHRpb24gdmFsdWUuIChTYWxtYW4gSGFsaW0pClNvbHV0aW9uOiAgIFBhc3MgdGhlIGZsYWdzIGZyb20gZmluZF9vcHRpb25fZW5kKCkgdG8gZ2V0X29wdGlvbl92YWx1ZSgpLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuM2IuMDA2ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIm1zd2luLnZpbSIsIENUUkwtViBpbiBJbnNlcnQgbW9kZSBsZWF2ZXMgY3Vyc29yIGJlZm9yZQoJICAgIGxhc3QgcGFzdGVkIGNoYXJhY3Rlci4gIChNYXRoZXcgRGF2aXMpClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBQYXN0ZSgpIGZ1bmN0aW9uIGFzIGluIG1lbnUudmltLgpGaWxlczoJICAgIHJ1bnRpbWUvbXN3aW4udmltCgpQYXRjaCA2LjNiLjAwNwpQcm9ibGVtOiAgICBTZXNzaW9uIGZpbGUgZG9lc24ndCByZXN0b3JlIHZpZXcgb24gd2luZG93cyBwcm9wZXJseS4gKFJvYmVydAoJICAgIFdlYmIpClNvbHV0aW9uOiAgIFJlc3RvcmUgd2luZG93IHNpemVzIGJvdGggYmVmb3JlIGFuZCBhZnRlciByZXN0b3JpbmcgdGhlIHZpZXcsIHNvCgkgICAgdGhhdCB0aGUgdmlldywgY3Vyc29yIHBvc2l0aW9uIGFuZCBzaXplIGFyZSByZXN0b3JlZCBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4zYi4wMDgKUHJvYmxlbTogICAgVXNpbmcgIjpmaW5hbGx5IiBpbiBhIHVzZXIgY29tbWFuZCBkb2Vzbid0IGFsd2F5cyB3b3JrLiAoSGFyaQoJICAgIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgRG9uJ3QgYXNzdW1lIHRoYXQgdXNpbmcgZ2V0ZXhsaW5lKCkgbWVhbnMgdGhlIGNvbW1hbmQgd2FzIHR5cGVkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjNiLjAwOSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSAtUCBhcmd1bWVudCBpcyBub3QgZm91bmQgaW4gYSB3aW5kb3cgdGl0bGUsIHRoZXJlCgkgICAgaXMgbm8gZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgV2hlbiB0aGUgd2luZG93IGNhbid0IGJlIGZvdW5kIGdpdmUgYW4gZXJyb3IgbWVzc2FnZSBhbmQgZXhpdC4KCSAgICBBbHNvIHVzZSB0cnkvZXhjZXB0IHRvIGNhdGNoIGZhaWxpbmcgdG8gb3BlbiB0aGUgTURJIHdpbmRvdy4KCSAgICAoTWljaGFlbCBXb29rZXkpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4zYi4wMTAKUHJvYmxlbTogICAgV2luMzI6IFVzaW5nIHRoZSAiLUQiIGFyZ3VtZW50IGFuZCBleHBhbmRpbmcgYXJndW1lbnRzIG1heSBjYXVzZSBhCgkgICAgaGFuZywgYmVjYXVzZSB0aGUgdGVybWluYWwgaXNuJ3QgaW5pdGlhbGl6ZWQgeWV0LiAoVmluY2UgTmVncmkpClNvbHV0aW9uOiAgIERvbid0IGdvIGludG8gZGVidWcgbW9kZSBiZWZvcmUgdGhlIHRlcm1pbmFsIGlzIGluaXRpYWxpemVkLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuM2IuMDExClByb2JsZW06ICAgIFVzaW5nIENUUkwtXCBlIHdoaWxlIG9idGFpbmluZyBhbiBleHByZXNzaW9uIGFib3J0cyB0aGUgY29tbWFuZAoJICAgIGxpbmUuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgSW5zZXJ0IHRoZSBDVFJMLVwgZSBhcyB0eXBlZC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zYi4wMTIgKGFmdGVyIDYuM2IuMDEwKQpQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGggdGlueSBmZWF0dXJlcy4gKE5vcmJlcnQgVHJldGtvd3NraSkKU29sdXRpb246ICAgQWRkICNpZmRlZnMuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4zYi4wMTMKUHJvYmxlbTogICAgTG9hZGluZyBhIHNlc3Npb24gZmlsZSByZXN1bHRzIGluIGVkaXRpbmcgdGhlIHdyb25nIGZpbGUgaW4gdGhlCgkgICAgZmlyc3Qgd2luZG93IHdoZW4gdGhpcyBpcyBub3QgdGhlIGZpbGUgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4KCSAgICB0aGUgYXJndW1lbnQgbGlzdC4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBDaGVjayB3X2FyZ19pZHhfaW52YWxpZCB0byBkZWNpZGUgd2hldGhlciB0byBlZGl0IGEgZmlsZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4zYi4wMTQKUHJvYmxlbTogICAgIjpydW50aW1lISBmb28qLnZpbSIgbWF5IHVzaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGEgc291cmNlZCBzY3JpcHQKCSAgICBjaGFuZ2VzIHRoZSB2YWx1ZSBvZiAncnVudGltZXBhdGgnLgpTb2x1dGlvbjogICBNYWtlIGEgY29weSBvZiAncnVudGltZXBhdGgnIHdoZW4gbG9vcGluZyBvdmVyIHRoZSBtYXRjaGVzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjNiLjAxNQpQcm9ibGVtOiAgICBHZXQgbGFsbG9jKDApIGVycm9yIHdoZW4gdXNpbmcgInAiIGluIFZpc3VhbCBtb2RlIHdoaWxlCgkgICAgJ2NsaXBib2FyZCcgY29udGFpbnMgImF1dG9zZWxlY3QsdW5uYW1lZCIuIChNYXJrIFdhZ29ubmVyKQpTb2x1dGlvbjogICBBdm9pZCBhbGxvY2F0aW5nIHplcm8gYnl0ZXMuICBPYnRhaW4gdGhlIGNsaXBib2FyZCB3aGVuIG5lY2Vzc2FyeS4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuM2IuMDE2ClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyB1c2VkICJ4IiBkb2Vzbid0IGRlbGV0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIKCSAgICBvZiBhIGxpbmUgdGhhdCBoYXMgYXMgbWFueSBjaGFyYWN0ZXJzIGFzICdjb2x1bW5zJy4gKFlha292IExlcm5lcikKU29sdXRpb246ICAgV2hlbiB0aGUgY3Vyc29yIGlzbid0IG1vdmVkIGxldCBvbmVyaWdodCgpIHJldHVybiBGQUlMLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuM2IuMDE3ClByb2JsZW06ICAgIFdpbjMyOiAidmltIC0tcmVtb3RlLXdhaXQiIGRvZXNuJ3QgZXhpdCB3aGVuIHRoZSBzZXJ2ZXIgZmluaXNoZWQKCSAgICBlZGl0aW5nIHRoZSBmaWxlLiAoRGF2aWQgRmlzaGJ1cm4pClNvbHV0aW9uOiAgIEluIHRoZSBycmhlbHBlciBwbHVnaW4gY2hhbmdlIGJhY2tzbGFzaGVzIHRvIGZvcndhcmQgc2xhc2hlcyBhbmQKCSAgICBlc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL3JyaGVscGVyLnZpbQoKUGF0Y2ggNi4zYi4wMTgKUHJvYmxlbTogICAgVGhlIGxpc3Qgb2YgaGVscCBmaWxlcyBpbiB0aGUgImxvY2FsIGFkZGl0aW9ucyIgdGFibGUgZG9lc24ndAoJICAgIHJlY29nbml6ZSB1dGYtOCBlbmNvZGluZy4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgUmVjb2duaXplIHV0Zi04IGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zYi4wMTkKUHJvYmxlbTogICAgV2hlbiAkVklNUlVOVElNRSBpcyBub3QgYSBmdWxsIHBhdGggbmFtZSB0aGUgImxvY2FsIGFkZGl0aW9ucyIKCSAgICB0YWJsZSBsaXN0cyBhbGwgdGhlIGhlbHAgZmlsZXMuClNvbHV0aW9uOiAgIFVzZSBmdWxscGF0aGNtcCgpIGluc3RlYWQgb2YgZm5hbWVjbXAoKSB0byBjb21wYXJlIHRoZSBkaXJlY3RvcnkKCSAgICBuYW1lcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjNiLjAyMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIENUUkwtXiB3aGVuIGVudGVyaW5nIGEgc2VhcmNoIHN0cmluZywgdGhlIGl0ZW0gaW4gdGhlCgkgICAgc3RhdHVzbGluZSB0aGF0IGluZGljYXRlcyB0aGUga2V5bWFwIGlzIG5vdCB1cGRhdGVkLiAoSWx5YQoJICAgIERvZ29sYXpreSkKU29sdXRpb246ICAgTWFyayB0aGUgc3RhdHVzbGluZXMgZm9yIHVwZGF0aW5nLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjNiLjAyMQpQcm9ibGVtOiAgICBUaGUgc3dhcGZpbGUgaXMgbm90IHJlYWRhYmxlIGZvciBvdGhlcnMsIHRoZSBBVFRFTlRJT04gcHJvbXB0IGRvZXMKCSAgICBub3Qgc2hvdyBhbGwgaW5mbyB3aGVuIHNvbWVvbmUgZWxzZSBpcyBlZGl0aW5nIHRoZSBzYW1lIGZpbGUuCgkgICAgKE1hcmNlbCBTdml0YWxza3kpClNvbHV0aW9uOiAgIFVzZSB0aGUgcHJvdGVjdGlvbiBvZiBvcmlnaW5hbCBmaWxlIGZvciB0aGUgc3dhcGZpbGUgYW5kIHNldCBpdAoJICAgIGFmdGVyIGNyZWF0aW5nIHRoZSBzd2FwZmlsZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuM2IuMDIyClByb2JsZW06ICAgIFVzaW5nICI0diIgdG8gc2VsZWN0IGZvdXIgdGltZXMgdGhlIG9sZCBWaXN1YWwgYXJlYSBtYXkgcHV0IHRoZQoJICAgIGN1cnNvciBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgbGluZS4gKEplbnMgUGF1bHVzKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBjdXJzb3IgY29sdW1uLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4zYi4wMjMKUHJvYmxlbTogICAgV2hlbiAiM2RpcCIgc3RhcnRzIGluIGFuIGVtcHR5IGxpbmUsIHdoaXRlIGxpbmVzIGFmdGVyIHRoZQoJICAgIG5vbi13aGl0ZSBsaW5lcyBhcmUgbm90IGRlbGV0ZWQuIChKZW5zIFBhdWx1cykKU29sdXRpb246ICAgSW5jbHVkZSB0aGUgd2hpdGUgbGluZXMuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjNiLjAyNApQcm9ibGVtOiAgICAiMmRhdyIgZG9lcyBub3QgZGVsZXRlIGxlYWRpbmcgd2hpdGUgc3BhY2UgbGlrZSAiZGF3IiBkb2VzLiAgKEplbnMKCSAgICBQYXVsdXMpClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIHdoaXRlIHNwYWNlIHdoZW4gYSBjb3VudCBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4zYi4wMjUKUHJvYmxlbTogICAgUGVyY2VudGFnZSBpbiBydWxlciBpc24ndCB1cGRhdGVkIHdoZW4gYSBsaW5lIGlzIGRlbGV0ZWQuIChKZW5zCgkgICAgUGF1bHVzKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBjaGFuZ2UgaW4gbGluZSBjb3VudCB3aGVuIGRlY2lkaW5nIHRvIHVwZGF0ZSB0aGUgcnVsZXIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjNiLjAyNgpQcm9ibGVtOiAgICBXaGVuIHNlbGVjdGluZyAiYWJvcnQiIGF0IHRoZSBBVFRFTlRJT04gcHJvbXB0IGZvciBhIGZpbGUgdGhhdCBpcwoJICAgIGFscmVhZHkgYmVpbmcgZWRpdGVkIFZpbSBjcmFzaGVzLgpTb2x1dGlvbjogICBEb24ndCBhYm9ydCBjcmVhdGluZyBhIG5ldyBidWZmZXIgd2hlbiB3ZSByZWFsbHkgbmVlZCBpdC4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4zYi4wMjcKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gZW5hYmxpbmcgdGhlIG1lbnUgaW4gYSBtYXhpbWl6ZWQgd2luZG93LCBWaW0gdXNlcyBtb3JlCgkgICAgbGluZXMgdGhhbiB3aGF0IGlzIHJvb20gZm9yLiAoU2hpemh1IFBhbikKU29sdXRpb246ICAgV2hlbiBkZWNpZGluZyB0byBjYWxsIHNoZWxsX3Jlc2l6ZWQoKSwgYWxzbyBjb21wYXJlIHRoZSB0ZXh0IGFyZWEKCSAgICBzaXplIHdpdGggUm93cyBhbmQgQ29sdW1ucywgbm90IGp1c3Qgd2l0aCBzY3JlZW5fUm93cyBhbmQKCSAgICBzY3JlZW5fQ29sdW1ucy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuM2IuMDI4ClByb2JsZW06ICAgIFdoZW4gaW4gZGlmZiBtb2RlLCBzZXR0aW5nICdyaWdodGxlZnQnIGNhdXNlcyBhIGNyYXNoLiAoRWRkaW5lKQpTb2x1dGlvbjogICBDaGVjayBmb3IgbGFzdCBjb2x1bW4gZGlmZmVyZW50bHkgd2hlbiAncmlnaHRsZWZ0JyBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjNiLjAyOQpQcm9ibGVtOiAgICBXaW4zMjogd2FybmluZyBmb3IgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KU29sdXRpb246ICAgSW5pdGlhbGl6ZSB0byB6ZXJvLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjNiLjAzMApQcm9ibGVtOiAgICBBZnRlciBWaXN1YWxseSBzZWxlY3RpbmcgZm91ciBjaGFyYWN0ZXJzLCBjaGFuZ2luZyBpdCB0byBvdGhlcgoJICAgIHRleHQsIFZpc3VhbGx5IHNlbGVjdGluZyBhbmQgeWFua2luZyB0d28gY2hhcmFjdGVyczogIi4iIGNoYW5nZXMKCSAgICBmb3VyIGNoYXJhY3RlcnMsIGFub3RoZXIgIi4iIGNoYW5nZXMgdHdvIGNoYXJhY3RlcnMuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgRG9uJ3Qgc3RvcmUgdGhlIHNpemUgb2YgdGhlIFZpc3VhbCBhcmVhIHdoZW4gcmVkbyBpcyBhY3RpdmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVkVSU0lPTiA2LjQJCQkJCQkqdmVyc2lvbi02LjQqCgpUaGlzIHNlY3Rpb24gaXMgYWJvdXQgaW1wcm92ZW1lbnRzIG1hZGUgYmV0d2VlbiB2ZXJzaW9uIDYuMyBhbmQgNi40LgoKVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZS4gIFRoZXJlIGFyZSBhbHNvIGEgZmV3IG5ldyBmZWF0dXJlcy4gIFRoZSBtYWpvcgpudW1iZXIgb2YgbmV3IGl0ZW1zIGlzIGluIHRoZSBydW50aW1lIGZpbGVzIGFuZCB0cmFuc2xhdGlvbnMuCgpUaGUgYmlnIE1TLVdpbmRvd3MgdmVyc2lvbiBub3cgdXNlczoKCVJ1YnkgdmVyc2lvbiAxLjguMwoJUGVybCB2ZXJzaW9uIDUuOC43CglQeXRob24gdmVyc2lvbiAyLjQuMgoKCkNoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNi40KgotLS0tLS0tCgpSZW1vdmVkIHJ1bnRpbWUvdG9vbHMvdGNsdGFncywgRXh1YmVyYW50IGN0YWdzIGRvZXMgaXQgYmV0dGVyLgoKCkFkZGVkCQkJCQkJCSphZGRlZC02LjQqCi0tLS0tCgpBbHNhY29uZiBzeW50YXggZmlsZSAoTmlrb2xhaSBXZWlidWxsKQpFcnVieSBzeW50YXgsIGluZGVudCwgY29tcGlsZXIgYW5kIGZ0cGx1Z2luIGZpbGUgKERvdWcgS2Vhcm5zKQpFc3RlcmVsIHN5bnRheCBmaWxlIChNYXVyaXppbyBUcmFuY2hlcm8pCk1hdGhlbWF0aWNhIGluZGVudCBmaWxlIChTdGV2ZSBMYXlsYW5kKQpOZXRyYyBzeW50YXggZmlsZSAoTmlrb2xhaSBXZWlidWxsKQpQSFAgY29tcGlsZXIgZmlsZSAoRG91ZyBLZWFybnMpClBhc2NhbCBpbmRlbnQgZmlsZSAoTmVpbCBDYXJ0ZXIpClByZXNjcmliZSBzeW50YXggZmlsZSAoS2xhdXMgTXV0aCkKUnVieXVuaXQgY29tcGlsZXIgZmlsZSAoRG91ZyBLZWFybnMpClNNVFByYyBzeW50YXggZmlsZSAoS29ybmVsIEtpZWxjemV3c2tpKQpTdWRvZXJzIHN5bnRheCBmaWxlIChOaWtvbGFpIFdlaWJ1bGwpClRQUCBzeW50YXggZmlsZSAoR2VyZnJpZWQgRnVjaHMpClZIREwgZnRwbHVnaW4gZmlsZSAoUi4gU2hhbmthcikKVmVyaWxvZy1BTVMgc3ludGF4IGZpbGUgKFMuIE15bGVzIFByYXRoZXIpCgpCdWxnYXJpYW4ga2V5bWFwIChBbGJlcnRvIE1hcmRlZ2FuKQpDYW5hZGlhbiBrZXltYXAgKEVyaWMgSm9hbmlzKQoKSHVuZ2FyaWFuIG1lbnUgdHJhbnNsYXRpb25zIGluIFVURi04IChLYW50cmEgR2VyZ2VseSkKVWtyYWluaWFuIG1lbnUgdHJhbnNsYXRpb25zIChCb2hkYW4gVmxhc3l1aykKCklyaXNoIG1lc3NhZ2UgdHJhbnNsYXRpb25zIChLZXZpbiBQYXRyaWNrIFNjYW5uZWxsKQoKQ29uZmlndXJlIGFsc28gY2hlY2tzIGZvciB0Y2xzaDguNC4KCgpGaXhlZAkJCQkJCQkqZml4ZWQtNi40KgotLS0tLQoKImRGeGQ7IiBkZWxldGVkIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvciwgImQ7IiBkaWRuJ3QgcmVtZW1iZXIgdGhlCmV4Y2x1c2l2ZW5lc3Mgb2YgdGhlIG1vdGlvbi4KCldoZW4gdXNpbmcgInNldCBsYXN0c3RhdHVzPTIgY21kaGVpZ2h0PTIiIGluIHRoZSAuZ3ZpbXJjIHlvdSBtYXkgb25seSBnZXQgb25lCmxpbmUgZm9yIHRoZSBjbWRsaW5lLiAoQ2hyaXN0aWFuIFJvYmluc29uKSAgSW52b2tlIGNvbW1hbmRfaGVpZ2h0KCkgYWZ0ZXIgdGhlCkdVSSBoYXMgc3RhcnRlZCB1cC4KCkdjYyB3b3VsZCB3YXJuICJkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QgLWFsaWFzaW5nCnJ1bGVzIi4gIEF2b2lkIHVzaW5nIHR5cGVjYXN0cyBmb3IgdmFyaWFibGUgcG9pbnRlcnMuCgpHY2MgMy54IGludGVycHJldHMgdGhlIC1NTSBhcmd1bWVudCBkaWZmZXJlbnRseS4gIENoYW5nZSAiLUkgL3BhdGgiIHRvCiItaXN5c3RlbSAvcGF0aCIgZm9yICJtYWtlIGRlcGVuZCIuCgoKUGF0Y2ggNi4zLjAwMQpQcm9ibGVtOiAgICAiOmJyb3dzZSBzcGxpdCIgZ2l2ZXMgdGhlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZyB0d2ljZS4gKEdvcmRvbgoJICAgIEJhemVsZXkpICBTYW1lIHByb2JsZW0gZm9yICI6YnJvd3NlIGRpZmZwYXRjaCIuClNvbHV0aW9uOiAgIFJlc2V0IGNtZG1vZC5icm93c2UgYmVmb3JlIGNhbGxpbmcgZG9fZWNtZCgpLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjMuMDAyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdHJhbnNsYXRlZCBoZWxwIGZpbGVzIHdpdGggbm9uLUFTQ0lJIGxhdGluMSBjaGFyYWN0ZXJzCgkgICAgaW4gdGhlIGZpcnN0IGxpbmUgdGhlIHV0Zi04IGRldGVjdGlvbiBpcyB3cm9uZy4KU29sdXRpb246ICAgUHJvcGVybHkgZGV0ZWN0IHV0Zi04IGNoYXJhY3RlcnMuICBXaGVuIGEgbWl4IG9mIGVuY29kaW5ncyBpcwoJICAgIGRldGVjdGVkIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgbGFuZ3VhZ2UgYW5kIGF2b2lkIGEgIm5vIG1hdGNoZXMiCgkgICAgZXJyb3IgYmVjYXVzZSBvZiAiZ290X2ludCIgYmVpbmcgc2V0LiAgQWRkIHRoZSBkaXJlY3RvcnkgbmFtZSB0bwoJICAgIHRoZSBlcnJvciBtZXNzYWdlIGZvciBhIGR1cGxpY2F0ZSB0YWcuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zLjAwMwpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHVzaW5nIGEgY29uc29sZSBkaWFsb2cgYW5kIHRoZSBmaXJzdCBjaG9pY2UgZG9lcyBub3QKCSAgICBoYXZlIGEgZGVmYXVsdCBidXR0b24uIChEYXJpbiBPaGFzaGkpClNvbHV0aW9uOiAgIEFsbG9jYXRlIHR3byBtb3JlIGNoYXJhY3RlcnMgZm9yIHRoZSBbXSBhcm91bmQgdGhlIGNoYXJhY3RlciBmb3IKCSAgICB0aGUgZGVmYXVsdCBjaG9pY2UuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4zLjAwNApQcm9ibGVtOiAgICBXaGVuIHNlYXJjaGluZyBmb3IgYSBsb25nIHN0cmluZyAoMTQwIGNoYXJzIGluIGEgODAgY29sdW1uCgkgICAgdGVybWluYWwpIGdldCB0aHJlZSBoaXQtZW50ZXIgcHJvbXB0cy4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBBdm9pZCB0aGUgaGl0LWVudGVyIHByb21wdCB3aGVuIGdpdmluZyB0aGUgbWVzc2FnZSBmb3Igd3JhcHBpbmcKCSAgICBhcm91bmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAgRG9uJ3QgZ2l2ZSB0aGF0IG1lc3NhZ2UgYWdhaW4gd2hlbgoJICAgIHRoZSBzdHJpbmcgd2FzIG5vdCBmb3VuZC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMy4wMDUKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBzZWFyY2hpbmcgZm9yIGEgcGF0dGVybiB3aXRoIGEgY2hhcmFjdGVyIG9mZnNldCBhbmQKCSAgICBzdGFydGluZyBpbiBhIGNsb3NlZCBmb2xkLiAoRnJhbmsgQnV0bGVyKQpTb2x1dGlvbjogICBDaGVjayBmb3IgdGhlIGNvbHVtbiB0byBiZSBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUuICBBbHNvIGZpeAoJICAgIHRoYXQgYSBwYXR0ZXJuIHdpdGggYSBjaGFyYWN0ZXIgb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBlbmQgaXNuJ3QKCSAgICByZWFkIGJhY2sgZnJvbSB0aGUgdmltaW5mbyBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMy4wMDYKUHJvYmxlbTogICAgIjpicmVha2FkZCBmaWxlICpmb28iIHByZXBlbmRzIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB0byB0aGUgZmlsZQoJICAgIHBhdHRlcm4uIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgS2VlcCB0aGUgcGF0dGVybiBhcy1pcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4zLjAwNwpQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgYnVmZmVyIHdpdGggJ2J1ZnR5cGUnIHNldCB0byAibm9maWxlIiBhbmQgdXNpbmcgYQoJICAgICI6Y2QiIGNvbW1hbmQsIHRoZSBzd2FwIGZpbGUgaXMgbm90IGRlbGV0ZWQgd2hlbiBleGl0aW5nLgpTb2x1dGlvbjogICBVc2UgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgc3dhcCBmaWxlIGFsc28gZm9yICJub2ZpbGUiIGJ1ZmZlcnMuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjMuMDA4ClByb2JsZW06ICAgIENvbXBpbGluZyBmYWlscyB1bmRlciBPUy8yLgpTb2x1dGlvbjogICBJbmNsdWRlICJlX3NjcmVlbm1vZGUiIGFsc28gZm9yIE9TLzIuIChEYXZpZCBTYW5kZXJzKQpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMy4wMDkgKGFmdGVyIDYuMy4wMDYpClByb2JsZW06ICAgICI6YnJlYWthZGQgZmlsZSAvcGF0aC9mb28udmltIiBkb2VzIG5vdCBtYXRjaCB3aGVuIGEgc3ltYm9saWMgbGluawoJICAgIGlzIGludm9sdmVkLiAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERvIGV4cGFuZCB0aGUgcGF0dGVybiB3aGVuIGl0IGRvZXMgbm90IHN0YXJ0IHdpdGggIioiLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3JlcGVhdC50eHQsIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjMuMDEwClByb2JsZW06ICAgIFdoZW4gd3JpdGluZyB0byBhIG5hbWVkIHBpcGUgdGhlcmUgaXMgYW4gZXJyb3IgZm9yIGZzeW5jKCkKCSAgICBmYWlsaW5nLgpTb2x1dGlvbjogICBJZ25vcmUgdGhlIGZzeW5jKCkgZXJyb3IgZm9yIGRldmljZXMuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjMuMDExClByb2JsZW06ICAgIENyYXNoIHdoZW4gdGhlIGNvbXBsZXRpb24gZnVuY3Rpb24gb2YgYSB1c2VyLWNvbW1hbmQgdXNlcyBhCgkgICAgIm5vcm1hbCA6Y21kIiBjb21tYW5kLiAgKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBTYXZlIHRoZSBjb21tYW5kIGxpbmUgd2hlbiBpbnZva2luZyB0aGUgY29tcGxldGlvbiBmdW5jdGlvbi4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zLjAxMgpQcm9ibGVtOiAgICBJbnRlcm5hbCBsYWxsb2MoMCkgZXJyb3Igd2hlbiB1c2luZyBhIGNvbXBsaWNhdGVkIG11bHRpLWxpbmUKCSAgICBwYXR0ZXJuIGluIGEgc3Vic3RpdHV0ZSBjb21tYW5kLiAoTHVjIEhlcm1pdHRlKQpTb2x1dGlvbjogICBBdm9pZCBnb2luZyBwYXN0IHRoZSBlbmQgb2YgYSBsaW5lLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMy4wMTMKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBlZGl0aW5nIGEgY29tbWFuZCBsaW5lIGFuZCB0eXBpbmcgQ1RSTC1SID0gdG8gZXZhbHVhdGUKCSAgICBhIGZ1bmN0aW9uIHRoYXQgdXNlcyAibm9ybWFsIDpjbWQiLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIFNhdmUgYW5kIHJlc3RvcmUgdGhlIGNvbW1hbmQgbGluZSB3aGVuIGV2YWx1YXRpbmcgYW4gZXhwcmVzc2lvbgoJICAgIGZvciBDVFJMLVIgPS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vZXhfZ2V0bG4ucHJvLAoJICAgIHNyYy9wcm90by9vcHMucHJvCgpQYXRjaCA2LjMuMDE0ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgQ2hpbmVzZSBvciBUYWl3YW5lc2UgdGhlIGRlZmF1bHQgZm9yICdoZWxwbGFuZycgaXMKCSAgICB3cm9uZy4gKFNpbW9uIExpYW5nKQpTb2x1dGlvbjogICBVc2UgdGhlIHBhcnQgb2YgdGhlIGxvY2FsZSBuYW1lIGFmdGVyICJ6aF8iLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4zLjAxNQpQcm9ibGVtOiAgICBUaGUgc3RyaW5nIHRoYXQgd2lucmVzdGNtZCgpIHJldHVybnMgbWF5IGVuZCBpbiBnYXJiYWdlLgpTb2x1dGlvbjogICBOVUwtdGVybWluYXRlIHRoZSBzdHJpbmcuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjMuMDE2ClByb2JsZW06ICAgIFRoZSBkZWZhdWx0IHZhbHVlIGZvciAnZGVmaW5lJyBoYXMgIlxzIiBiZWZvcmUgJyMnLgpTb2x1dGlvbjogICBBZGQgYSBzdGFyIGFmdGVyICJccyIuIChIZXJjdWxhbm8gZGUgTGltYSBFaW5sb2Z0IE5ldG8pCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjMuMDE3ClByb2JsZW06ICAgICI4enoiIG1heSBsZWF2ZSB0aGUgY3Vyc29yIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAoTmlrbwoJICAgIE1hYXRqZXMpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGN1cnNvciBjb2x1bW4gYWZ0ZXIgbW92aW5nIHRvIGFub3RoZXIgbGluZS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMy4wMTgKUHJvYmxlbTogICAgIjowYXJnYWRkIHplcm8iIGFkZGVkIHRoZSBhcmd1bWVudCBhZnRlciB0aGUgZmlyc3Qgb25lLCBpbnN0ZWFkIG9mCgkgICAgYmVmb3JlIGl0LiAoQWRyaSBWZXJob2VmKQpTb2x1dGlvbjogICBBY2NlcHQgYSB6ZXJvIHJhbmdlIGZvciAiOmFyZ2FkZCIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuaAoKUGF0Y2ggNi4zLjAxOQpQcm9ibGVtOiAgICBDcmFzaCBpbiBzdGFydHVwIGZvciBkZWJ1ZyB2ZXJzaW9uLiAoRGF2aWQgUmVubmFscykKU29sdXRpb246ICAgTW92ZSB0aGUgY2FsbCB0byBuYmRlYnVnX3dhaXQoKSB0byBhZnRlciBhbGxvY2F0aW5nIE5hbWVCdWZmLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMy4wMjAKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIgYW5kICdkZWxjb21iaW5lJyBpcyBzZXQsICJkdyIgZG9lcyBub3QKCSAgICBkZWxldGUgYSB3b3JkIGJ1dCBvbmx5IGEgY29tYmluaW5nIGNoYXJhY3RlciBvZiB0aGUgZmlyc3QKCSAgICBjaGFyYWN0ZXIsIGlmIHRoZXJlIGlzIG9uZS4gKFJhcGhhZWwgRmlua2VsKQpTb2x1dGlvbjogICBDb3JyZWN0bHkgY2hlY2sgdGhhdCBvbmUgY2hhcmFjdGVyIGlzIGJlaW5nIGRlbGV0ZWQuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMy4wMjEKUHJvYmxlbTogICAgV2hlbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBmaWxlIG5hbWUgaXMgYSBtdWx0aS1ieXRlIGNoYXJhY3RlcgoJICAgIGFuZCB0aGUgbGFzdCBieXRlIGlzIGEgcGF0aCBzZXBhcmF0b3IsIHRoZSBmaWxlIGNhbm5vdCBiZSBlZGl0ZWQuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgbGFzdCBieXRlIHRvIGJlIHBhcnQgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KCSAgICAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zLjAyMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGZpbGUgbmFtZSBpcyBhIG11bHRpLWJ5dGUKCSAgICBjaGFyYWN0ZXIgYW5kIHRoZSBsYXN0IGJ5dGUgaXMgYSBwYXRoIHNlcGFyYXRvciwgdGhlIGZpbGUgY2Fubm90CgkgICAgYmUgd3JpdHRlbi4gIEEgdHJhaWwgYnl0ZSB0aGF0IGlzIGEgc3BhY2UgbWFrZXMgdGhhdCBhIGZpbGUgY2Fubm90CgkgICAgYmUgb3BlbmVkIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KU29sdXRpb246ICAgUmVjb2duaXplIGRvdWJsZS1ieXRlIGNoYXJhY3RlcnMgd2hlbiBwYXJzaW5nIHRoZSBjb21tYW5kIGxpbmUuCgkgICAgSW4gbWNoX3N0YXQoKSBjaGVjayBmb3IgdGhlIGxhc3QgYnl0ZSB0byBiZSBwYXJ0IG9mIGEgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3Rlci4gIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYywgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMy4wMjMKUHJvYmxlbTogICAgV2hlbiB0aGUgInRvIiBwYXJ0IG9mIGEgbWFwcGluZyBzdGFydHMgd2l0aCBpdHMgImZyb20iIHBhcnQsCgkgICAgYWJicmV2aWF0aW9ucyBmb3IgdGhlIHNhbWUgY2hhcmFjdGVycyBpcyBub3QgcG9zc2libGUuICBGb3IKCSAgICBleGFtcGxlLCB3aGVuIDxTcGFjZT4gaXMgbWFwcGVkIHRvIHNvbWV0aGluZyB0aGF0IHN0YXJ0cyB3aXRoIGEKCSAgICBzcGFjZSwgdHlwaW5nIDxTcGFjZT4gZG9lcyBub3QgZXhwYW5kIGFiYnJldmlhdGlvbnMuClNvbHV0aW9uOiAgIE9ubHkgZGlzYWJsZSBleHBhbmRpbmcgYWJicmV2aWF0aW9ucyB3aGVuIGEgbWFwcGluZyBpcyBub3QKCSAgICByZW1hcHBlZCwgZG9uJ3QgZGlzYWJsZSBpdCB3aGVuIHRoZSBSSFMgb2YgYSBtYXBwaW5nIHN0YXJ0cyB3aXRoCgkgICAgdGhlIExIUy4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvdmltLmgKClBhdGNoIDYuMy4wMjQKUHJvYmxlbTogICAgSW4gYSBmZXcgcGxhY2VzIGEgc3RyaW5nIGluIGFsbG9jYXRlZCBtZW1vcnkgaXMgbm90IHRlcm1pbmF0ZWQKCSAgICB3aXRoIGEgTlVMLgpTb2x1dGlvbjogICBBZGQgZ2FfYXBwZW5kKE5VTCkgaW4gc2NyaXB0X2dldCgpLCBndWlfZG9fZmluZHJlcGwoKSBhbmQKCSAgICBzZXJ2ZXJHZXRWaW1OYW1lcygpLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZ3VpLmMsIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjMuMDI1IChleHRyYSkKUHJvYmxlbTogICAgTWlzc2luZyBOVUwgZm9yIGxpc3Qgb2Ygc2VydmVyIG5hbWVzLgpTb2x1dGlvbjogICBBZGQgZ2FfYXBwZW5kKE5VTCkgaW4gc2VydmVyR2V0VmltTmFtZXMoKS4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4zLjAyNgpQcm9ibGVtOiAgICBXaGVuIH4vLnZpbS9hZnRlci9zeW50YXgvc3luY29sb3IudmltIGNvbnRhaW5zIGEgY29tbWFuZCB0aGF0CgkgICAgcmVsb2FkcyB0aGUgY29sb3JzIGFuIGVuZGxlc3MgbG9vcCBhbmQvb3IgYSBjcmFzaCBtYXkgb2NjdXIuClNvbHV0aW9uOiAgIE9ubHkgZnJlZSB0aGUgb2xkIHZhbHVlIG9mIGFuIG9wdGlvbiB3aGVuIGl0IHdhcyBvcmlnaW5hbGx5CgkgICAgYWxsb2NhdGVkLiAgTGltaXQgcmVjdXJzaXZlbmVzcyBvZiBpbml0X2hpZ2hsaWdodCgpIHRvIDUgbGV2ZWxzLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYywgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDI3ClByb2JsZW06ICAgIFZNUzogV3JpdGluZyBhIGZpbGUgbWF5IGluc2VydCBleHRyYSBDUiBjaGFyYWN0ZXJzLiAgTm90IGFsbAoJICAgIHRlcm1pbmFscyBhcmUgcmVjb2duaXplZCBjb3JyZWN0bHkuICBWdDMyMCBkb2Vzbid0IHN1cHBvcnQgY29sb3JzLgoJICAgIEVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm90IGV4cGFuZGVkIGNvcnJlY3RseS4KU29sdXRpb246ICAgVXNlIGFub3RoZXIgbWV0aG9kIHRvIHdyaXRlIGZpbGVzLiAgQWRkIHZ0MzIwIHRlcm1jYXAgY29kZXMgZm9yCgkgICAgY29sb3JzLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMS5jLCBzcmMvb3NfdW5peC5jLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMy4wMjgKUHJvYmxlbTogICAgV2hlbiBhcHBlbmRpbmcgdG8gYSBmaWxlIHRoZSBCT00gbWFya2VyIG1heSBiZSB3cml0dGVuLiAgKEFsZXgKCSAgICBKYWt1c2hldikKU29sdXRpb246ICAgRG8gbm90IHdyaXRlIHRoZSBCT00gbWFya2VyIHdoZW4gYXBwZW5kaW5nLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zLjAyOQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGluc2VydGluZyBhIGxpbmUgYnJlYWsuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgSW4gdGhlIHN5bnRheCBoaWdobGlnaHRpbmcgY29kZSwgZG9uJ3QgdXNlIGFuIG9sZCBzdGF0ZSBhZnRlciBhCgkgICAgY2hhbmdlIHdhcyBtYWRlLCBjdXJyZW50X2NvbCBtYXkgYmUgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4zLjAzMApQcm9ibGVtOiAgICBHVEsgMjogQ3Jhc2ggd2hlbiBzb3VyY2luZyBhIHNjcmlwdCB0aGF0IGRlbGV0ZXMgdGhlIG1lbnVzLCBzZXRzCgkgICAgJ2VuY29kaW5nJyB0byAidXRmLTgiIGFuZCBsb2FkcyB0aGUgbWVudXMgYWdhaW4uICBHVEsgZXJyb3IKCSAgICBtZXNzYWdlIHdoZW4gdG9vbHRpcCB0ZXh0IGlzIGluIGEgd3JvbmcgZW5jb2RpbmcuClNvbHV0aW9uOiAgIERvbid0IGNvcHkgY2hhcmFjdGVycyBmcm9tIHRoZSBvbGQgc2NyZWVuIHRvIHRoZSBuZXcgc2NyZWVuIHdoZW4KCSAgICBzd2l0Y2hpbmcgJ2VuY29kaW5nJyB0byB1dGYtOCwgdGhleSBtYXkgYmUgaW52YWxpZC4gIE9ubHkgc2V0IHRoZQoJICAgIHRvb2x0aXAgd2hlbiBpdCBpcyB2YWxpZCB1dGYtOC4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jLCBzcmMvbWJ5dGUuYywgc3JjL3Byb3RvL21ieXRlLnBybywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjMuMDMxClByb2JsZW06ICAgIFdoZW4gZW50ZXJpbmcgYSBtYXBwaW5nIGFuZCBwcmVzc2luZyBUYWIgaGFsZndheSB0aGUgY29tbWFuZCBsaW5lCgkgICAgaXNuJ3QgcmVkcmF3biBwcm9wZXJseS4gKEFkcmkgVmVyaG9lZikKU29sdXRpb246ICAgUmVwb3NpdGlvbiB0aGUgY3Vyc29yIGFmdGVyIGRyYXdpbmcgb3ZlciB0aGUgIi4uLiIgb2YgdGhlCgkgICAgY29tcGxldGlvbiBhdHRlbXB0LgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjMuMDMyClByb2JsZW06ICAgIFVzaW5nIFB5dGhvbiAyLjMgd2l0aCB0aHJlYWRzIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgUmVsZWFzZSB0aGUgbG9jayBhZnRlciBpbml0aWFsaXphdGlvbi4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMy4wMzMKUHJvYmxlbTogICAgV2hlbiBhIG1hcHBpbmcgZW5kcyBpbiBhIE5vcm1hbCBtb2RlIGNvbW1hbmQgb2YgbW9yZSB0aGFuIG9uZQoJICAgIGNoYXJhY3RlciBWaW0gZG9lc24ndCByZXR1cm4gdG8gSW5zZXJ0IG1vZGUuClNvbHV0aW9uOiAgIENoZWNrIHRoYXQgdGhlIG1hcHBpbmcgaGFzIGVuZGVkIGFmdGVyIG9idGFpbmluZyBhbGwgY2hhcmFjdGVycyBvZgoJICAgIHRoZSBOb3JtYWwgbW9kZSBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4zLjAzNApQcm9ibGVtOiAgICBWTVM6IGNyYXNoIHdoZW4gdXNpbmcgIjpoZWxwIi4KU29sdXRpb246ICAgQXZvaWQgdXNpbmcgInRhZ3MtPz8iLCBzb21lIE9wZW4gVk1TIHN5c3RlbXMgY2FuJ3QgaGFuZGxlIHRoZSAiPyIKCSAgICB3aWxkY2FyZC4gIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjMuMDM1IChleHRyYSkKUHJvYmxlbTogICAgUklTQyBPUzogQ29tcGlsZSBlcnJvcnMuClNvbHV0aW9uOiAgIENoYW5nZSBlX3NjcmVubW9kZSB0byBlX3NjcmVlbm1vZGUuICBDaGFuZ2UgdGhlIHdheQoJICAgIF9fcmlzY29zaWZ5X2NvbnRyb2wgaXMgc2V0LiAgSW1wcm92ZSB0aGUgbWFrZWZpbGUuICAoQW5keSBXaW5nYXRlKQpGaWxlczoJICAgIHNyYy9vc19yaXNjb3MuYywgc3JjL3NlYXJjaC5jLCBzcmMvTWFrZV9yby5tYWsKClBhdGNoIDYuMy4wMzYKUHJvYmxlbTogICAgbWxfZ2V0IGVycm9ycyB3aGVuIHRoZSB3aG9sZSBmaWxlIGlzIGEgZm9sZCwgc3dpdGNoaW5nCgkgICAgJ2ZvbGRtZXRob2QnIGFuZCBkb2luZyAiemoiLiAoQ2hyaXN0aWFuIEouIFJvYmluc29uKSBXYXMgbm90CgkgICAgZGVsZXRpbmcgdGhlIGZvbGQgYnV0IGNyZWF0aW5nIGEgZm9sZCB3aXRoIHplcm8gbGluZXMuClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgZm9sZCBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjMuMDM3IChhZnRlciA2LjMuMDMyKQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1bnVzZWQgdmFyaWFibGUuClNvbHV0aW9uOiAgIENoYW5nZSB0aGUgI2lmZGVmcyBmb3IgdGhlIHNhdmVkIHRocmVhZCBzdHVmZi4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMy4wMzggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgImZpbGUgY2hhbmdlZCIgZGlhbG9nIHBvcHMgdXAgYWZ0ZXIgYSBjbGljayB0aGF0CgkgICAgZ2l2ZXMgZ3ZpbSBmb2N1cyBhbmQgbm90IG1vdmluZyB0aGUgbW91c2UgYWZ0ZXIgdGhhdCwgdGhlIGVmZmVjdAoJICAgIG9mIHRoZSBjbGljayBtYXkgb2NjdXIgd2hlbiBtb3ZpbmcgdGhlIG1vdXNlIGxhdGVyLiAoS2VuIENsYXJrKQoJICAgIEhhcHBlbmVkIGJlY2F1c2UgdGhlIHJlbGVhc2UgZXZlbnQgd2FzIG1pc3NlZC4KU29sdXRpb246ICAgQ2xlYXIgdGhlIHNfYnV0dG9uX3BlbmRpbmcgdmFyaWFibGUgd2hlbiBhbnkgaW5wdXQgaXMgcmVjZWl2ZWQuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zLjAzOQpQcm9ibGVtOiAgICBXaGVuICdudW1iZXInIGlzIHNldCBhbmQgaW5zZXJ0aW5nIGxpbmVzIGp1c3QgYWJvdmUgdGhlIGZpcnN0CgkgICAgZGlzcGxheWVkIGxpbmUgKGluIGFub3RoZXIgd2luZG93IG9uIHRoZSBzYW1lIGJ1ZmZlciksIHRoZSBsaW5lCgkgICAgbnVtYmVycyBhcmUgbm90IHVwZGF0ZWQuICAoSGl0aWVyIFN5bHZhaW4pClNvbHV0aW9uOiAgIFdoZW4gJ251bWJlcicgaXMgc2V0IGFuZCBsaW5lcyBhcmUgaW5zZXJ0ZWQvZGVsZXRlZCByZWRyYXcgYWxsCgkgICAgbGluZXMgYmVsb3cgdGhlIGNoYW5nZS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMy4wNDAKUHJvYmxlbTogICAgRXJyb3IgaGFuZGxpbmcgZG9lcyBub3QgYWx3YXlzIHdvcmsgcHJvcGVybHkgYW5kIG1heSBjYXVzZSBhCgkgICAgYnVmZmVyIHRvIGJlIG1hcmtlZCBhcyBpZiBpdCdzIHZpZXdlZCBpbiBhIHdpbmRvdyB3aGlsZSBpdCBpc24ndC4KCSAgICBBbHNvIHdoZW4gc2VsZWN0aW5nICJBYm9ydCIgYXQgdGhlIGF0dGVudGlvbiBwcm9tcHQuClNvbHV0aW9uOiAgIEFkZCBlbnRlcl9jbGVhbnVwKCkgYW5kIGxlYXZlX2NsZWFudXAoKSBmdW5jdGlvbnMgdG8gbW92ZQoJICAgIHNhdmluZy9yZXN0b3JpbmcgdGhpbmdzIGZvciBlcnJvciBoYW5kbGluZyB0byBvbmUgcGxhY2UuCgkgICAgQ2xlYXIgYSBidWZmZXIgcmVhZCBlcnJvciB3aGVuIGl0J3MgdW5sb2FkZWQuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2V2YWwuYywKCSAgICBzcmMvcHJvdG8vZXhfZXZhbC5wcm8sIHNyYy9zdHJ1Y3RzLmgsIHNyYy92aW0uaAoKUGF0Y2ggNi4zLjA0MSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBwYXRoIHRvIGEgZmlsZSBoYXMgUnVzc2lhbiBjaGFyYWN0ZXJzLCAiOmNkICU6cDpoIgoJICAgIGRvZXNuJ3Qgd29yay4gKFZhbGVyeSBLb25kYWtvZmYpClNvbHV0aW9uOiAgIFVzZSBhIHdpZGUgZnVuY3Rpb24gdG8gY2hhbmdlIGRpcmVjdG9yeS4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4zLjA0MgpQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgY2xvc2VkIGZvbGQgYXQgdGhlIHRvcCBvZiB0aGUgd2luZG93LCBDVFJMLVgKCSAgICBDVFJMLUUgaW4gSW5zZXJ0IG1vZGUgcmVkdWNlcyB0aGUgc2l6ZSBvZiB0aGUgZm9sZCBpbnN0ZWFkIG9mCgkgICAgc2Nyb2xsaW5nIHRoZSB0ZXh0IHVwLiAoR2F1dGFtKQpTb2x1dGlvbjogICBTY3JvbGwgb3ZlciB0aGUgY2xvc2VkIGZvbGQuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4zLjA0MwpQcm9ibGVtOiAgICAnaGxzZWFyY2gnIGhpZ2hsaWdodGluZyBzb21ldGltZXMgZGlzYXBwZWFycyB3aGVuIGluc2VydGluZyB0ZXh0CgkgICAgaW4gUEhQIGNvZGUgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nLiAoTWFyY2VsIFN2aXRhbHNreSkKU29sdXRpb246ICAgRG9uJ3QgdXNlIHBvaW50ZXJzIHRvIHJlbWVtYmVyIHdoZXJlIGEgbWF0Y2ggd2FzIGZvdW5kLCB1c2UgYW4KCSAgICBpbmRleC4gIFRoZSBwb2ludGVycyBtYXkgYmVjb21lIGludmFsaWQgd2hlbiBzZWFyY2hpbmcgaW4gb3RoZXIKCSAgICBsaW5lcy4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMy4wNDQgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IFdoZW4gJ2xpbmVzcGFjZScgaXMgbm9uLXplcm8gdGhlIEluc2VydCBtb2RlIGN1cnNvciBsZWF2ZXMKCSAgICBwaXhlbHMgYmVoaW5kLiAoUmljaGFyZCBTYW5kaWxhbmRzKQpTb2x1dGlvbjogICBFcmFzZSB0aGUgY2hhcmFjdGVyIGNlbGwgYmVmb3JlIGRyYXdpbmcgdGhlIHRleHQgd2hlbiBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKClBhdGNoIDYuMy4wNDUKUHJvYmxlbTogICAgVW51c3VhbCBjaGFyYWN0ZXJzIGluIGFuIG9wdGlvbiB2YWx1ZSBtYXkgY2F1c2UgdW5leHBlY3RlZAoJICAgIGJlaGF2aW9yLCBlc3BlY2lhbGx5IGZvciBhIG1vZGVsaW5lLiAoQ2lhcmFuIE1jQ3JlZXNoKQpTb2x1dGlvbjogICBEb24ndCBhbGxvdyBzZXR0aW5nIHRlcm1jYXAgb3B0aW9ucyBvciAncHJpbnRkZXZpY2UnIGluIGEKCSAgICBtb2RlbGluZS4gIERvbid0IGxpc3Qgb3B0aW9ucyBmb3IgInRlcm1jYXAiIGFuZCAiYWxsIiBpbiBhCgkgICAgbW9kZWxpbmUuICBEb24ndCBhbGxvdyB1bnVzdWFsIGNoYXJhY3RlcnMgaW4gJ2ZpbGV0eXBlJywgJ3N5bnRheCcsCgkgICAgJ2JhY2t1cGV4dCcsICdrZXltYXAnLCAncGF0Y2htb2RlJyBhbmQgJ2xhbmdtZW51Jy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMsIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0CgpQYXRjaCA2LjMuMDQ2ClByb2JsZW06ICAgICI6cmVnaXN0ZXJzIiBkb2Vzbid0IHNob3cgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHByb3Blcmx5LgoJICAgIChWYWxlcnkgS29uZGFrb2ZmKQpTb2x1dGlvbjogICBHZXQgdGhlIGxlbmd0aCBvZiBlYWNoIGNoYXJhY3RlciBiZWZvcmUgZGlzcGxheWluZyBpdC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMy4wNDcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiB3aXRoIEJvcmxhbmQgQyA1LjUgb24gV2luZG93cyBYUDogQSBuZXcgZmlsZSBpcyBjcmVhdGVkIHdpdGgKCSAgICByZWFkLW9ubHkgYXR0cmlidXRlcy4gKFRvbnkgTWVjaGVseW5jaykKU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSBfd29wZW4oKSBmdW5jdGlvbiBmb3IgQm9ybGFuZC4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4zLjA0OCAoZXh0cmEpClByb2JsZW06ICAgIEJ1aWxkIHByb2JsZW1zIHdpdGggVk1TIG9uIElBNjQuClNvbHV0aW9uOiAgIEFkZCBkZXBlbmRlbmNpZXMgdG8gdGhlIGJ1aWxkIGZpbGUuIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL01ha2Vfdm1zLm1tcwoKUGF0Y2ggNi4zLjA0OSAoYWZ0ZXIgNi4zLjA0NSkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgImNoYXIiIHZzICJjaGFyX3UiIG1peHVwLiAoWm9sdGFuIEFycGFkZmZ5KQpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdC4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMy4wNTAKUHJvYmxlbTogICAgV2hlbiBTSUdIVVAgaXMgcmVjZWl2ZWQgd2hpbGUgYnVzeSBleGl0aW5nLCBub24tcmVlbnRyYW50CgkgICAgZnVuY3Rpb25zIHN1Y2ggYXMgZnJlZSgpIG1heSBjYXVzZSBhIGNyYXNoLgpTb2x1dGlvbjogICBJZ25vcmUgU0lHSFVQIHdoZW4gZXhpdGluZyBiZWNhdXNlIG9mIGFuIGVycm9yLiAoU2NvdHQgQW5kZXJzb24pCkZpbGVzOgkgICAgc3JjL21pc2MxLmMsIHNyYy9tYWluLmMKClBhdGNoIDYuMy4wNTEKUHJvYmxlbTogICAgV2hlbiAnd2lsZG1lbnUnIGlzIHNldCBhbmQgY29tcGxldGVkIGZpbGUgbmFtZXMgY29udGFpbiBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVycyBWaW0gbWF5IGNyYXNoLgpTb2x1dGlvbjogICBSZXNlcnZlIHJvb20gZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMy4wNTIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW5kb3dzIDk4OiB0eXBlZCBrZXlzIHRoYXQgYXJlIG5vdCBBU0NJSSBtYXkgbm90IHdvcmsgcHJvcGVybHkuCgkgICAgRm9yIGV4YW1wbGUgd2l0aCBhIFJ1c3NpYW4gaW5wdXQgbWV0aG9kLiAoSmlyaSBKZXpkaW5za3kpClNvbHV0aW9uOiAgIEFzc3VtZSB0aGF0IHRoZSBjaGFyYWN0ZXJzIGFycml2ZSBpbiB0aGUgY3VycmVudCBjb2RlcGFnZSBpbnN0ZWFkCgkgICAgb2YgVUNTLTIuICBQZXJmb3JtIGNvbnZlcnNpb24gYmFzZWQgb24gdGhhdC4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjMuMDUzClByb2JsZW06ICAgIFdpbjMyOiAiOmxvYWR2aWV3IiBjYW5ub3QgZmluZCBhIGZpbGUgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycy4KCSAgICAoVmFsZXJpZSBLb25kYWtvZmYpClNvbHV0aW9uOiAgIFVzZSBtY2hfb3BlbigpIGluc3RlYWQgb2Ygb3BlbigpIHRvIG9wZW4gdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMy4wNTQKUHJvYmxlbTogICAgV2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0IDxDLUw+NGl4eHg8Qy1MPiBoYW5ncyBWaW0uIChKZW5zIFBhdWx1cykKCSAgICBWaW0gaXMgYWN0dWFsbHkgc3RpbGwgd29ya2luZyBidXQgcmVkcmF3IGlzIGRpc2FibGVkLgpTb2x1dGlvbjogICBXaGVuIHN0b3BwaW5nIEluc2VydCBtb2RlIHdpdGggQ1RSTC1MIGRvbid0IHB1dCBhbiBFc2MgaW4gdGhlIHJlZG8KCSAgICBidWZmZXIgYnV0IGEgQ1RSTC1MLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMy4wNTUgKGFmdGVyIDYuMy4wMTMpClByb2JsZW06ICAgIENhbid0IHVzZSBnZXRjbWRsaW5lKCksIGdldGNtZHBvcygpIG9yIHNldGNtZHBvcygpIHdpdGggPEMtUj49CgkgICAgd2hlbiBlZGl0aW5nIGEgY29tbWFuZCBsaW5lLiAgVXNpbmcgPEMtXD5lIG1heSBjcmFzaCBWaW0uIChQZXRlcgoJICAgIFdpbnRlcnMpClNvbHV0aW9uOiAgIFdoZW4gbW92aW5nIGNjbGluZSBvdXQgb2YgdGhlIHdheSBmb3IgcmVjdXJzaXZlIHVzZSwgbWFrZSBpdAoJICAgIGF2YWlsYWJsZSB0byB0aGUgZnVuY3Rpb25zIHRoYXQgbmVlZCBpdC4gIEFsc28gc2F2ZSBhbmQgcmVzdG9yZQoJICAgIGNjbGluZSB3aGVuIGNhbGxpbmcgZ2V0X2V4cHJfbGluZSgpLiAgTWFrZSBjY2xpbmUuY21kYnVmIE5VTEwgYXQKCSAgICB0aGUgZW5kIG9mIGdldGNtZGxpbmUoKS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zLjA1NgpQcm9ibGVtOiAgICBUaGUgbGFzdCBjaGFyYWN0ZXJzIG9mIGEgbXVsdGktYnl0ZSBmaWxlIG5hbWUgbWF5IG5vdCBiZSBkaXNwbGF5ZWQKCSAgICBpbiB0aGUgd2luZG93IHRpdGxlLgpTb2x1dGlvbjogICBBdm9pZCB0byByZW1vdmUgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciB3aGVyZSB0aGUgbGFzdCBieXRlIGxvb2tzCgkgICAgbGlrZSBhIHBhdGggc2VwYXJhdG9yIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjMuMDU3ClByb2JsZW06ICAgIFdoZW4gZmlsdGVyaW5nIGxpbmVzIGZvbGRzIGFyZSBub3QgdXBkYXRlZC4gKENhcmwgT3N0ZXJ3aXNjaCkKU29sdXRpb246ICAgVXBkYXRlIGZvbGRzIGZvciBmaWx0ZXJlZCBsaW5lcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjMuMDU4ClByb2JsZW06ICAgIFdoZW4gJ2ZvbGRjb2x1bW4nIGlzIGVxdWFsIHRvIHRoZSB3aW5kb3cgd2lkdGggYW5kICd3cmFwJyBpcyBvbgoJICAgIFZpbSBtYXkgY3Jhc2guICBEaXNhYmxpbmcgdGhlIHZlcnRpY2FsIHNwbGl0IGZlYXR1cmUgYnJlYWtzCgkgICAgY29tcGlsaW5nLiAgKFBldGVyIFdpbnRlcnMpClNvbHV0aW9uOiAgIENoZWNrIGZvciB6ZXJvIHJvb20gZm9yIHdyYXBwZWQgdGV4dC4gIE1ha2UgY29tcGlsaW5nIHdpdGhvdXQKCSAgICB2ZXJ0aWNhbCBzcGxpdHMgcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL21vdmUuYywgc3JjL3F1aWNrZml4LmMsIHNyYy9zY3JlZW4uYywgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMy4wNTkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBleHBhbmRpbmcgYW4gIjplZGl0IiBjb21tYW5kIGNvbnRhaW5pbmcgc2V2ZXJhbCBzcGFjZXMKCSAgICB3aXRoIHRoZSBzaGVsbC4gKEJyaWFuIEhpcnQpClNvbHV0aW9uOiAgIEFsbG9jYXRlIGVub3VnaCBzcGFjZSBmb3IgdGhlIHF1b3Rlcy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjMuMDYwClByb2JsZW06ICAgIFVzaW5nIENUUkwtUiBDVFJMLU8gaW4gSW5zZXJ0IG1vZGUgd2l0aCBhbiBpbnZhbGlkIHJlZ2lzdGVyIG5hbWUKCSAgICBzdGlsbCBjYXVzZXMgc29tZXRoaW5nIHRvIGJlIGluc2VydGVkLgpTb2x1dGlvbjogICBDaGVjayB0aGUgcmVnaXN0ZXIgbmFtZSBmb3IgYmVpbmcgdmFsaWQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4zLjA2MQpQcm9ibGVtOiAgICBXaGVuIGVkaXRpbmcgYSB1dGYtOCBmaWxlIGluIGFuIHV0Zi04IHh0ZXJtIGFuZCB0aGVyZSBpcyBhCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgaW4gdGhlIGxhc3QgY29sdW1uLCBkaXNwbGF5aW5nIGlzIG1lc3NlZCB1cC4KCSAgICAoSm/rbCBSaW8pClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLCBub3QgYSBtdWx0aS1jb2x1bW4gY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zLjA2MgpQcm9ibGVtOiAgICAiOm5vcm1hbCEgZ1EiIGhhbmdzLgpTb2x1dGlvbjogICBRdWl0IGdldGNtZGxpbmUoKSBhbmQgZG9fZXhtb2RlKCkgd2hlbiBvdXQgb2YgdHlwZWFoZWFkLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4zLjA2MwpQcm9ibGVtOiAgICBXaGVuIGEgQ3Vyc29ySG9sZCBhdXRvY29tbWFuZCBjaGFuZ2VzIHRvIGFub3RoZXIgd2luZG93CgkgICAgKHRlbXBvcmFyaWx5KSAnbW91c2Vmb2N1cycgc3RvcHMgd29ya2luZy4KU29sdXRpb246ICAgQ2FsbCBndWlfbW91c2VfY29ycmVjdCgpIGFmdGVyIHRyaWdnZXJpbmcgQ3Vyc29ySG9sZC4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMy4wNjQKUHJvYmxlbTogICAgbGluZTJieXRlKGxpbmUoIiQiKSArIDEpIHNvbWV0aW1lcyByZXR1cm5zIHRoZSB3cm9uZyBudW1iZXIuCgkgICAgKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIEZsdXNoIHRoZSBjYWNoZWQgbGluZSBiZWZvcmUgY291bnRpbmcgdGhlIGJ5dGVzLgpGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMy4wNjUKUHJvYmxlbTogICAgVGhlIGV1cm8gZGlncmFwaCBkb2Vzbid0IGFsd2F5cyB3b3JrLgpTb2x1dGlvbjogICBBZGQgYW4gImU9IiBkaWdyYXBoIGZvciBVbmljb2RlIGV1cm8gY2hhcmFjdGVyIGFuZCBhZGp1c3QgdGhlCgkgICAgaGVscCBmaWxlcy4KRmlsZXM6CSAgICBzcmMvZGlncmFwaC5jLCBydW50aW1lL2RvYy9kaWdyYXBoLnR4dAoKUGF0Y2ggNi4zLjA2NgpQcm9ibGVtOiAgICBCYWNrdXAgZmlsZSBtYXkgZ2V0IHdyb25nIHBlcm1pc3Npb25zLgpTb2x1dGlvbjogICBVc2UgcGVybWlzc2lvbnMgb2Ygb3JpZ2luYWwgZmlsZSBmb3IgYmFja3VwIGZpbGUgaW4gbW9yZSBwbGFjZXMuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjMuMDY3IChhZnRlciA2LjMuMDY2KQpQcm9ibGVtOiAgICBOZXdseSBjcmVhdGVkIGZpbGUgZ2V0cyBleGVjdXRlIHBlcm1pc3Npb24uClNvbHV0aW9uOiAgIENoZWNrIGZvciAicGVybSIgdG8gYmUgbmVnYXRpdmUgYmVmb3JlIHVzaW5nIGl0LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zLjA2OApQcm9ibGVtOiAgICBXaGVuIGVkaXRpbmcgYSBjb21wcmVzc2VkIGZpbGUgeHh4Lmd6IHdoaWNoIGlzIGEgc3ltYm9saWMgbGluayB0bwoJICAgIHRoZSBhY3R1YWwgZmlsZSBhICI6d3JpdGUiIHJlbmFtZXMgdGhlIGxpbmsuClNvbHV0aW9uOiAgIFJlc29sdmUgdGhlIGxpbmssIHNvIHRoYXQgdGhlIGFjdHVhbCBmaWxlIGlzIHJlbmFtZWQgYW5kCgkgICAgY29tcHJlc3NlZC4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4zLjA2OQpQcm9ibGVtOiAgICBXaGVuIGNvbnZlcnRpbmcgdGV4dCB3aXRoIGlsbGVnYWwgY2hhcmFjdGVycyBWaW0gbWF5IGNyYXNoLgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IHRvbyBtdWNoIGlzIHN1YnRyYWN0ZWQgZnJvbSB0aGUgbGVuZ3RoLiAoRGEgV29vbiBKdW5nKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjMuMDcwClByb2JsZW06ICAgIEFmdGVyICI6c2V0IG51bWJlciBsaW5lYnJlYWsgd3JhcCIgYW5kIGEgdmVydGljYWwgc3BsaXQsIG1vdmluZwoJICAgIHRoZSB2ZXJ0aWNhbCBzZXBhcmF0b3IgZmFyIGxlZnQgd2lsbCBjcmFzaCBWaW0uIChHZW9yZyBEYWhuKQpTb2x1dGlvbjogICBBdm9pZCBkaXZpZGluZyBieSB6ZXJvLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMy4wNzEKUHJvYmxlbTogICAgVGhlIG1lc3NhZ2UgZm9yIENUUkwtWCBtb2RlIGlzIHN0aWxsIGRpc3BsYXllZCBhZnRlciBhbiBlcnJvciBmb3IKCSAgICAndGhlc2F1cnVzJyBvciAnZGljdGlvbmFyeScgYmVpbmcgZW1wdHkuClNvbHV0aW9uOiAgIENsZWFyICJlZGl0X3N1Ym1vZGUiLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMy4wNzIKUHJvYmxlbTogICAgQ3Jhc2ggaW4gZ2l2aW5nIHN1YnN0aXR1dGUgbWVzc2FnZSB3aGVuIGxhbmd1YWdlIGlzIENoaW5lc2UgYW5kCgkgICAgZW5jb2RpbmcgaXMgdXRmLTguIChZb25nd2VpKQpTb2x1dGlvbjogICBNYWtlIHRoZSBtc2dfYnVmIHNpemUgbGFyZ2VyIHdoZW4gdXNpbmcgbXVsdGktYnl0ZS4KRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMy4wNzMKUHJvYmxlbTogICAgV2luMzIgR1VJOiBXaGVuIHRoZSBWaW0gd2luZG93IGlzIHBhcnRseSBhYm92ZSBvciBiZWxvdyB0aGUKCSAgICBzY3JlZW4sIHNjcm9sbGluZyBjYXVzZXMgZGlzcGxheSBlcnJvcnMgd2hlbiB0aGUgdGFza2JhciBpcyBub3Qgb24KCSAgICB0aGF0IHNpZGUuClNvbHV0aW9uOiAgIFVzZSB0aGUgU1dfSU5WQUxJREFURSBmbGFnIHdoZW4gdGhlIFZpbSB3aW5kb3cgaXMgcGFydGx5IGJlbG93IG9yCgkgICAgYWJvdmUgdGhlIHNjcmVlbi4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjMuMDc0ClByb2JsZW06ICAgIFdoZW4gbXN3aW4udmltIGlzIHVzZWQgYW5kICdpbnNlcnRtb2RlJyBpcyBzZXQsIHR5cGluZyB0ZXh0IGluCgkgICAgU2VsZWN0IG1vZGUgYW5kIHRoZW4gdXNpbmcgQ1RSTC1WIHJlc3VsdHMgaW4gPFNOUj45OV9QYXN0ZWdpLgoJICAgIChHZW9yZyBEYWhuKQpTb2x1dGlvbjogICBXaGVuIHJlc3RhcnRfZWRpdCBpcyBzZXQgdXNlICJkIiBpbnN0ZWFkIG9mICJjIiB0byByZW1vdmUgdGhlCgkgICAgc2VsZWN0ZWQgdGV4dCB0byBhdm9pZCBjYWxsaW5nIGVkaXQoKSB0d2ljZS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMy4wNzUKUHJvYmxlbTogICAgQWZ0ZXIgdW5sb2FkaW5nIGFub3RoZXIgYnVmZmVyLCBzeW50YXggaGlnaGxpZ2h0aW5nIGluIHRoZSBjdXJyZW50CgkgICAgYnVmZmVyIG1heSBiZSB3cm9uZyB3aGVuIGl0IHVzZXMgImNvbnRhaW5lZGluIi4gKEVyaWMgQXJub2xkKQpTb2x1dGlvbjogICBVc2UgImJ1ZiIgaW5zdGVhZCBvZiAiY3VyYnVmIiBpbiBzeW50YXhfY2xlYXIoKS4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMy4wNzYKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBjc2NvcGUgYW5kIHRoZXJlIGlzIGEgcGFyc2UgZXJyb3IgKGUuZy4sIGxpbmUgdG9vCgkgICAgbG9uZykuIChBbGV4ZXkgSS4gRnJvbG9mZikKU29sdXRpb246ICAgUGFzcyB0aGUgYWN0dWFsIG51bWJlciBvZiBtYXRjaGVzIHRvIGNzX21hbmFnZV9tYXRjaGVzKCkgYW5kCgkgICAgY29ycmVjdGx5IGhhbmRsZSB0aGUgZXJyb3Igc2l0dWF0aW9uLgpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4zLjA3NyAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogRmlyc3QgY2hhcmFjdGVyIGlucHV0IGFmdGVyIEVTQyB3YXMgbm90IHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIEFkZGVkIFRSTSRNX1RNX1RJTUVEIGluIHZtc19yZWFkKCkuICAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4zLjA3OCAoZXh0cmEsIGFmdGVyIDYuMy4wNzcpClByb2JsZW06ICAgIFZNUzogUGVyZm9ybWFuY2UgaXNzdWUgYWZ0ZXIgcGF0Y2ggNi4zLjA3NwpTb2x1dGlvbjogICBBZGQgYSB0aW1lb3V0IGluIHRoZSBpdGVtbGlzdC4gIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL29zX3Ztcy5jCgpQYXRjaCA2LjMuMDc5ClByb2JsZW06ICAgIENyYXNoIHdoZW4gZXhlY3V0aW5nIGEgY29tbWFuZCBpbiB0aGUgY29tbWFuZCBsaW5lIHdpbmRvdyB3aGlsZQoJICAgIHN5bnRheCBoaWdobGlnaHRpbmcgaXMgZW5hYmxlZC4gKFBlcm8gQnJib3JhKQpTb2x1dGlvbjogICBEb24ndCB1c2UgYSBwb2ludGVyIHRvIGEgYnVmZmVyIHRoYXQgaGFzIGJlZW4gZGVsZXRlZC4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMy4wODAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2l0aCAnZW5jb2RpbmcnIHNldCB0byB1dGYtOCB3aGlsZSB0aGUgY3VycmVudCBjb2RlcGFnZSBpcwoJICAgIENoaW5lc2UgZWRpdGluZyBhIGZpbGUgd2l0aCBzb21lIHNwZWNpZmljIGNoYXJhY3RlcnMgaW4gdGhlIG5hbWUKCSAgICBmYWlscy4KU29sdXRpb246ICAgVXNlIF93ZnVsbHBhdGgoKSBpbnN0ZWFkIG9mIF9mdWxscGF0aCgpIHdoZW4gbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjMuMDgxClByb2JsZW06ICAgIFVuaXg6IGdsb2IoKSBtYXkgZXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmQgd2hlbiBpdCdzIG5vdCB3YW50ZWQuCgkgICAgKEdlb3JnaSBHdW5pbnNraSkKU29sdXRpb246ICAgVmVyaWZ5IHRoZSBzYW5kYm94IGZsYWcgaXMgbm90IHNldC4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjMuMDgyIChhZnRlciA2LjMuMDgxKQpQcm9ibGVtOiAgICBVbml4OiBleHBhbmQoKSBtYXkgZXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmQgd2hlbiBpdCdzIG5vdCB3YW50ZWQuCgkgICAgKEdlb3JnaSBHdW5pbnNraSkKU29sdXRpb246ICAgQSBtb3JlIGdlbmVyaWMgc29sdXRpb24gdGhhbiA2LjMuMDgxLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMy4wODMKUHJvYmxlbTogICAgVk1TOiBUaGUgdnQzMjAgdGVybWNhcCBlbnRyeSBpcyBpbmNvbXBsZXRlLgpTb2x1dGlvbjogICBBZGQgbWlzc2luZyBmdW5jdGlvbiBrZXlzLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjMuMDg0IChleHRyYSkKUHJvYmxlbTogICAgQ3lnd2luOiBjb21waWxpbmcgd2l0aCBERUJVRyBkb2Vzbid0IHdvcmsuICBQZXJsIHBhdGggd2FzIGlnbm9yZWQuCgkgICAgRmFpbHVyZSB3aGVuICQoT1VURElSKSBhbHJlYWR5IGV4aXN0cy4gICJwbyIgbWFrZWZpbGUgaXMgbWlzc2luZy4KU29sdXRpb246ICAgVXNlIGNoYW5nZXMgdGVzdGVkIGluIFZpbSA3LiAoVG9ueSBNZWNoZWx5bmNrKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9wby9NYWtlX2N5Zy5tYWsKClBhdGNoIDYuMy4wODUKUHJvYmxlbTogICAgQ3Jhc2ggaW4gc3ludGF4IGhpZ2hsaWdodGluZyBjb2RlLiAoTWFyYyBFc3BpZSkKU29sdXRpb246ICAgUHJldmVudCBjdXJyZW50X2NvbCBnb2luZyBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDg2IChleHRyYSkKUHJvYmxlbTogICAgQ2FuJ3QgcHJvZHVjZSBtZXNzYWdlIHRyYW5zbGF0aW9uIGZpbGUgd2l0aCBtc2dmbXQgdGhhdCBjaGVja3MKCSAgICBwcmludGYgc3RyaW5ncy4KU29sdXRpb246ICAgRml4IHRoZSBSdXNzaWFuIHRyYW5zbGF0aW9uLgpGaWxlczoJICAgIHNyYy9wby9ydS5wbywgc3JjL3BvL3J1LmNwMTI1MS5wbwoKUGF0Y2ggNi4zLjA4NwpQcm9ibGVtOiAgICBNUy1ET1M6IENyYXNoLiAoSmFzb24gSG9vZCkKU29sdXRpb246ICAgRG9uJ3QgY2FsbCBmbmFtZV9jYXNlKCkgd2l0aCBhIE5VTEwgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjMuMDg4ClByb2JsZW06ICAgIEVkaXRpbmcgIi5pbiIgY2F1c2VzIGVycm9yIEUyMTguIChTdGVmYW4gS2FybHNzb24pClNvbHV0aW9uOiAgIFJlcXVpcmUgc29tZSBjaGFyYWN0ZXJzIGJlZm9yZSAiLmluIi4gIFNhbWUgZm9yICIub3JpZyIgYW5kIG90aGVycy4KRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4zLjA4OQpQcm9ibGVtOiAgICBBIHNlc3Npb24gZmlsZSBkb2Vzbid0IHdvcmsgd2hlbiBjcmVhdGVkIHdoaWxlIHRoZSBjdXJyZW50CgkgICAgZGlyZWN0b3J5IGNvbnRhaW5zIGEgc3BhY2Ugb3IgdGhlIGRpcmVjdG9yeSBvZiB0aGUgc2Vzc2lvbiBmaWxlcwoJICAgIGNvbnRhaW5zIGEgc3BhY2UuIChQYW9sbyBHaWFycnVzc28pClNvbHV0aW9uOiAgIEVzY2FwZSBzcGFjZXMgd2l0aCBhIGJhY2tzbGFzaC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4zLjA5MApQcm9ibGVtOiAgICBBIHZlcnkgYmlnIHZhbHVlIGZvciAnY29sdW1ucycgb3IgJ2xpbmVzJyBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgTGltaXQgdGhlIHZhbHVlcyB0byAxMDAwMCBhbmQgMTAwMC4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuNGEuMDAxClByb2JsZW06ICAgIFRoZSBVbml4IE1ha2VmaWxlIGNvbnRhaW5lZCB0b28gbWFueSBkZXBlbmRlbmNpZXMgYW5kIGEgZmV3CgkgICAgdW5jb21tZW50ZWQgbGluZXMuClNvbHV0aW9uOiAgIFJ1biAibWFrZSBkZXBlbmQiIHdpdGggbWFudWFsIGNoYW5nZXMgdG8gYXZvaWQgYSBnY2MKCSAgICBpbmNvbXBhdGliaWxpdHkuICBDb21tZW50IGEgZmV3IGxpbmVzLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi40Yi4wMDEKUHJvYmxlbTogICAgVmltIHJlcG9ydHMgIlZpbSA2LjRhIiBpbiB0aGUgIjp2ZXJzaW9uIiBvdXRwdXQuClNvbHV0aW9uOiAgIENoYW5nZSAiYSIgdG8gImIiLiAoVG9ueSBNZWNoZWx5bmNrKQpGaWxlczoJICAgIHNyYy92ZXJzaW9uLmgKClBhdGNoIDYuNGIuMDAyClByb2JsZW06ICAgIEluIEluc2VydCBtb2RlLCBwYXN0aW5nIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGVuZCBvZgoJICAgIHRoZSBsaW5lIGxlYXZlcyB0aGUgY3Vyc29yIGp1c3QgYmVmb3JlIHRoYXQgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBNYWtlIHN1cmUgImdQIiBsZWF2ZXMgdGhlIGN1cnNvciBpbiB0aGUgcmlnaHQgcGxhY2Ugd2hlbgoJICAgICd2aXJ0dWFsZWRpdCcgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi40Yi4wMDMgKGFmdGVyIDYuNGIuMDAyKQpQcm9ibGVtOiAgICBUaGUgcHJvYmxlbSBzdGlsbCBleGlzdHMgd2hlbiAnZW5jb2RpbmcnIGlzIHNldCB0byAiY3A5MzYiLgpTb2x1dGlvbjogICBGaXggdGhlIHByb2JsZW0gaW4gZ2V0dnZjb2woKSwgY29tcHV0ZSB0aGUgY29sYWRkIGZpZWxkIGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvb3BzLmMKClBhdGNoIDYuNGIuMDA0ClByb2JsZW06ICAgIFNlbGVjdGluZyBhIHt9IGJsb2NrIHdpdGggInZpQiIgaW5jbHVkZXMgdGhlICd9JyB3aGVuIHRoZXJlIGlzIGFuCgkgICAgZW1wdHkgbGluZSBiZWZvcmUgaXQuClNvbHV0aW9uOiAgIERvbid0IGFkdmFuY2UgdGhlIGN1cnNvciB0byBpbmNsdWRlIGEgbGluZSBicmVhayB3aGVuIGl0J3MgYWxyZWFkeQoJICAgIGF0IHRoZSBsaW5lIGJyZWFrLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKCiB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6Cg==